diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a4fc5b7b4f111296f4ae1ddcf5dad2cc2a74fa22..87f3dd1f228c3c3c03256cc37c15375a2c2f9f96 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -22,7 +22,6 @@ src/SPIN/* @julient31 src/USER-CGDNA/* @ohenrich src/USER-CGSDK/* @akohlmey src/USER-COLVARS/* @giacomofiorin -src/USER-DPD/* @timattox src/USER-INTEL/* @wmbrownintel src/USER-MANIFOLD/* @Pakketeretet2 src/USER-MEAMC/* @martok @@ -46,7 +45,7 @@ src/GPU/pair_vashishta_gpu.* @andeplane src/KOKKOS/pair_vashishta_kokkos.* @andeplane src/MANYBODY/pair_vashishta_table.* @andeplane src/MANYBODY/pair_atm.* @sergeylishchuk -src/USER-MISC/fix_bond_react.* @jrgissing +src/USER-REACTION/fix_bond_react.* @jrgissing src/USER-MISC/*_grem.* @dstelter92 src/USER-MISC/compute_stress_mop*.* @RomainVermorel @@ -119,6 +118,7 @@ tools/emacs/* @HaoZeke # cmake cmake/* @junghans @rbberger +cmake/Modules/Packages/USER-COLVARS.cmake @junghans @rbberger @giacomofiorin # python python/* @rbberger diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 91b7e2bf4893f3848a5b643135301881915beaee..0d1d3b036419b5e80963d9eff2bf2ce3631a9a2c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -9,24 +9,24 @@ assignees: '' **Summary** -_Please provide a clear and concise description of what the bug is._ + **LAMMPS Version and Platform** -_Please specify precisely which LAMMPS version this issue was detected with (the first line of the output) and what platform (operating system and its version, hardware) you are running on. If possible, test with the most recent LAMMPS patch version_ + **Expected Behavior** -_Describe the expected behavior. Quote from the LAMMPS manual where needed, or explain why the expected behavior is meaningful, especially when it differs from the manual_ + **Actual Behavior** -_Describe the actual behavior, how it differs from the expected behavior, and how this can be observed. Try to be specific and do **not** use vague terms like "doesn't work" or "wrong result". Do not assume that the person reading this has any experience with or knowledge of your specific area of research._ + **Steps to Reproduce** -_Describe the steps required to (quickly) reproduce the issue. You can attach (small) files to the section below or add URLs where to download an archive with all necessary files. Please try to create an input set that is as minimal and small as possible and reproduces the bug as quickly as possible. **NOTE:** the less effort and time it takes to reproduce your reported bug, the more likely it becomes, that somebody will look into it and fix the problem._ + **Further Information, Files, and Links** -_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_ + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index a3a70c0d5a5237f643d7b14dc95bd534d64ba6b0..0334e086fc9e1309ca13bdf18a9fce2ca81900a8 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -9,12 +9,12 @@ assignees: '' **Summary** -_Please provide a brief and concise description of the suggested feature or change_ + **Detailed Description** -_Please explain how you would like to see LAMMPS enhanced, what feature(s) you are looking for, what specific problems this will solve. If possible, provide references to relevant background information like publications or web pages, and whether you are planning to implement the enhancement yourself or would like to participate in the implementation. If applicable add a reference to an existing bug report or issue that this will address._ + **Further Information, Files, and Links** -_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_ + diff --git a/.github/ISSUE_TEMPLATE/generic.md b/.github/ISSUE_TEMPLATE/generic.md index 15d2763919fdc531040b3110eec19832720c09dd..9e5d908bbc283da20d6665b1e804204483459727 100644 --- a/.github/ISSUE_TEMPLATE/generic.md +++ b/.github/ISSUE_TEMPLATE/generic.md @@ -9,13 +9,13 @@ assignees: '' **Summary** -_Please provide a clear and concise description of what this issue report is about._ + **LAMMPS Version and Platform** -_Please specify precisely which LAMMPS version this issue was detected with (the first line of the output) and what platform (operating system and its version, hardware) you are running on. If possible, test with the most recent LAMMPS patch version_ + **Details** -_Please explain the issue in detail here_ + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 9e43aa024440acc0557054f75e991aaf724c7171..6ef945d8d480edc99eb123a3a8634ddc5ee833f6 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,14 +1,14 @@ **Summary** -_Briefly describe the new feature(s), enhancement(s), or bugfix(es) included in this pull request._ + **Related Issues** -_If this addresses an open GitHub issue for this project, please mention the issue number here, and describe the relation. Use the phrases `fixes #221` or `closes #135`, when you want an issue to be automatically closed when the pull request is merged_ + **Author(s)** -_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request. If this pull request adds new files to the distribution, please also provide a suitable "long-lived" e-mail address (ideally something that can outlive your institution's e-mail, in case you change jobs) for the *corresponding* author, i.e. the person the LAMMPS developers can contact directly with questions and requests related to maintenance and support of this contributed code._ + **Licensing** @@ -16,15 +16,15 @@ By submitting this pull request, I agree, that my contribution will be included **Backward Compatibility** -_Please state whether any changes in the pull request will break backward compatibility for inputs, and - if yes - explain what has been changed and why_ + **Implementation Notes** -_Provide any relevant details about how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_ + **Post Submission Checklist** -_Please check the fields below as they are completed **after** the pull request has been submitted. Delete lines that don't apply_ + - [ ] The feature or features in this pull request is complete - [ ] Licensing information is complete @@ -39,6 +39,6 @@ _Please check the fields below as they are completed **after** the pull request **Further Information, Files, and Links** -_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_ + diff --git a/.github/PULL_REQUEST_TEMPLATE/bug_fix.md b/.github/PULL_REQUEST_TEMPLATE/bug_fix.md index cea04c68735160a1357446dd05772f9b83f2b397..a5a0b8c489843399dac6f16540bb29c6e65f19f5 100644 --- a/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +++ b/.github/PULL_REQUEST_TEMPLATE/bug_fix.md @@ -9,15 +9,15 @@ assignees: '' **Summary** -_Briefly describe the bug or bugs, that are eliminated by this pull request._ + **Related Issue(s)** -_If this request addresses or is related to an existing (open) GitHub issue, e.g. a bug report, mention the issue number number here following a pound sign (aka hashmark), e.g.`#222`._ + **Author(s)** -_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_ + **Licensing** @@ -25,18 +25,18 @@ By submitting this pull request I implicitly accept, that my submission is subje **Backward Compatibility** -_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_ + **Detailed Description** -_Provide any relevant details about how the fixed bug can be reproduced, how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_ + ## Post Submission Checklist -_Please check the fields below as they are completed *after* the pull request is submitted_ + - [ ] The code in this pull request is complete - [ ] The source code follows the LAMMPS formatting guidelines ## Further Information, Files, and Links -_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. to download input decks for testing)_ + diff --git a/.github/PULL_REQUEST_TEMPLATE/maintenance_refactoring.md b/.github/PULL_REQUEST_TEMPLATE/maintenance_refactoring.md index b3599cb36d5c62f23a020687db7f20531ce6b4a4..b7bf40a1e87b893f4db58e833a7cf8cc97eaba17 100644 --- a/.github/PULL_REQUEST_TEMPLATE/maintenance_refactoring.md +++ b/.github/PULL_REQUEST_TEMPLATE/maintenance_refactoring.md @@ -9,15 +9,15 @@ assignees: '' **Summary** -_Briefly describe the included changes._ + **Related Issue(s)** -_If this request addresses or is related to an existing (open) GitHub issue, e.g. a bug report, mention the issue number number here following a pound sign (aka hashmark), e.g.`#222`. + **Licensing** @@ -25,11 +25,11 @@ By submitting this pull request I implicitly accept, that my submission is subje **Detailed Description** -_Provide any relevant details about the included changes._ + ## Post Submission Checklist -_Please check the fields below as they are completed *after* the pull request is submitted_ + - [ ] The pull request is complete - [ ] The source code follows the LAMMPS formatting guidelines diff --git a/.github/PULL_REQUEST_TEMPLATE/new_feature.md b/.github/PULL_REQUEST_TEMPLATE/new_feature.md index e9d16a0fc7fff973034c4edce0c41c5818ae9ad7..563a9be4aad9651b7a88cae94a9e0806e48900c5 100644 --- a/.github/PULL_REQUEST_TEMPLATE/new_feature.md +++ b/.github/PULL_REQUEST_TEMPLATE/new_feature.md @@ -9,34 +9,34 @@ assignees: '' **Summary** -_Briefly describe the new feature(s) included in this pull request._ + **Related Issues** -_If this addresses an existing (open) GitHub issue, e.g. a feature request, mention the issue number here following a pound sign (aka hashmark), e.g. `#331`._ + **Author(s)** -_Please state name and affiliation of the author or authors that should be credited with the features added in this pull request. Please provide a suitable "long-lived" e-mail address (e.g. from gmail, yahoo, outlook, etc.) for the *corresponding* author, i.e. the person the LAMMPS developers can contact directly with questions and requests related to maintenance and support of this code. now and in the future_ + **Licensing** -_Please add *yes* or *no* to the following two statements (please contact @lammps/core if you have questions about this)_ + My contribution may be licensed as GPL v2 (default LAMMPS license): My contribution may be licensed as LGPL (for use as a library with proprietary software): **Backward Compatibility** -_Please state if any of the changes in this pull request will affect backward compatibility for inputs, and - if yes - explain what has been changed and why_ + **Implementation Notes** -_Provide any relevant details about how the new features are implemented, how correctness was verified, what platforms (OS, compiler, MPI, hardware, number of processors, accelerator(s)) it was tested on_ + ## Post Submission Checklist -_Please check the fields below as they are completed *after* the pull request has been submitted_ + - [ ] The feature or features in this pull request is complete - [ ] Licensing information is complete @@ -51,6 +51,6 @@ _Please check the fields below as they are completed *after* the pull request ha ## Further Information, Files, and Links -_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_ + diff --git a/.github/PULL_REQUEST_TEMPLATE/update_enhancement.md b/.github/PULL_REQUEST_TEMPLATE/update_enhancement.md index 52ef91e6c10909afe74c89a04fb390459267b955..9edfb587c04470dfa00bf0a63ad127e6944b2f92 100644 --- a/.github/PULL_REQUEST_TEMPLATE/update_enhancement.md +++ b/.github/PULL_REQUEST_TEMPLATE/update_enhancement.md @@ -9,11 +9,11 @@ assignees: '' **Summary** -_Briefly describe what kind of updates or enhancements for a package or feature are included. If you are not the original author of the package or feature, please mention, whether your contribution was created independently or in collaboration/cooperation with the original author._ + **Author(s)** -_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_ + **Licensing** @@ -21,15 +21,15 @@ By submitting this pull request I implicitly accept, that my submission is subje **Backward Compatibility** -_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_ + **Implementation Notes** -_Provide any relevant details about how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_ + **Post Submission Checklist** -_Please check the fields below as they are completed_ + - [ ] The feature or features in this pull request is complete - [ ] Suitable updates to the existing docs are included - [ ] One or more example input decks are included @@ -37,6 +37,6 @@ _Please check the fields below as they are completed_ **Further Information, Files, and Links** -_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_ + diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 2a48f60f2a070673854b5b777bc0a11553dd4d16..d9c82678eb85857a8e43a8702e72cd89417eef56 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -64,71 +64,50 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") set(CMAKE_TUNE_DEFAULT "-ffast-math -march=native") endif() -# we require C++11 +# we require C++11 without extensions set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) # GNU compiler specific features for testing if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF) mark_as_advanced(ENABLE_COVERAGE) if(ENABLE_COVERAGE) - set (CMAK_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") endif() endif() ######################################################################## # User input options # ######################################################################## -option(BUILD_EXE "Build lmp binary" ON) -if(BUILD_EXE) - set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically") - mark_as_advanced(LAMMPS_MACHINE) - if(LAMMPS_MACHINE) - set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}") - endif() - set(LAMMPS_BINARY lmp${LAMMPS_MACHINE}) +set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically") +mark_as_advanced(LAMMPS_MACHINE) +if(LAMMPS_MACHINE) + set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}") endif() +set(LAMMPS_BINARY lmp${LAMMPS_MACHINE}) -option(BUILD_LIB "Build LAMMPS library" OFF) -if(BUILD_LIB) - option(BUILD_SHARED_LIBS "Build shared library" OFF) - if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg - set(CMAKE_POSITION_INDEPENDENT_CODE ON) - endif() - set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file") - mark_as_advanced(LAMMPS_LIB_SUFFIX) - if(LAMMPS_LIB_SUFFIX) - set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}") - endif() +option(BUILD_SHARED_LIBS "Build shared library" OFF) +if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg + set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF) include(GNUInstallDirs) file(GLOB ALL_SOURCES ${LAMMPS_SOURCE_DIR}/[^.]*.cpp) -if(BUILD_LIB) - file(GLOB MAIN_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp) - list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES}) - add_library(lammps ${ALL_SOURCES}) - if(BUILD_EXE) - add_executable(lmp ${MAIN_SOURCES}) - target_link_libraries(lmp PRIVATE lammps) - set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY}) - install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR}) - endif() -else() - if(NOT BUILD_EXE) - message(FATAL_ERROR "You need to at least enable one of two following options: BUILD_LIB or BUILD_EXE") - endif() - add_executable(lammps ${ALL_SOURCES}) - set_target_properties(lammps PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY}) - install(TARGETS lammps DESTINATION ${CMAKE_INSTALL_BINDIR}) -endif() +file(GLOB MAIN_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp) +list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES}) +add_library(lammps ${ALL_SOURCES}) +add_executable(lmp ${MAIN_SOURCES}) +target_link_libraries(lmp PRIVATE lammps) +set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY}) +install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR}) option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF) -set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE +set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MOLECULE PERI POEMS QEQ REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESODPD USER-CGSDK USER-COLVARS @@ -137,8 +116,8 @@ set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS) -set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU) -foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) +set(SUFFIX_PACKAGES CORESHELL USER-OMP KOKKOS OPT USER-INTEL GPU) +foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES}) option(PKG_${PKG} "Build ${PKG} Package" OFF) endforeach() @@ -156,23 +135,20 @@ if(PKG_USER-ADIOS) target_link_libraries(lammps PRIVATE adios2::adios2) endif() -if (CMAKE_SYSTEM_NAME STREQUAL Windows) - option(BUILD_MPI "Build MPI version" OFF) -else() - # do MPI detection after language activation, - # in case MPI for these languages is required +if(NOT CMAKE_CROSSCOMPILING) set(MPI_CXX_SKIP_MPICXX TRUE) find_package(MPI QUIET) option(BUILD_MPI "Build MPI version" ${MPI_FOUND}) +else() + option(BUILD_MPI "Build MPI version" OFF) endif() if(BUILD_MPI) - # We use a non-standard procedure to compile with MPI on windows - if (CMAKE_SYSTEM_NAME STREQUAL Windows) + # We use a non-standard procedure to cross-compile with MPI on Windows + if((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING) include(MPI4WIN) target_link_libraries(lammps PUBLIC MPI::MPI_CXX) else() - set(MPI_CXX_SKIP_MPICXX ON) find_package(MPI REQUIRED) target_link_libraries(lammps PUBLIC MPI::MPI_CXX) option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF) @@ -184,10 +160,10 @@ else() enable_language(C) file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.c) add_library(mpi_stubs STATIC ${MPI_SOURCES}) - if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) + if(NOT BUILD_SHARED_LIBS) install(TARGETS mpi_stubs EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - set_target_properties(mpi_stubs PROPERTIES OUTPUT_NAME lammps_mpi_stubs${LAMMPS_LIB_SUFFIX}) + set_target_properties(mpi_stubs PROPERTIES OUTPUT_NAME lammps_mpi_stubs${LAMMPS_MACHINE}) target_include_directories(mpi_stubs PUBLIC $ $) install(FILES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps/mpi) if(BUILD_SHARED_LIBS) @@ -239,16 +215,7 @@ if(OpenMP_FOUND) endif() endif() -# TODO: this is a temporary workaround until a better solution is found. AK 2019-05-30 -# GNU GCC 9.x uses settings incompatible with our use of 'default(none)' in OpenMP pragmas -# where we assume older GCC semantics. For the time being, we disable OpenMP by default -# for GCC 9.x and beyond. People may manually turn it on, but need to run the script -# src/USER-OMP/hack_openmp_for_pgi_gcc9.sh on all sources to make it compatible with gcc 9. -if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.99.9)) - option(BUILD_OMP "Build with OpenMP support" OFF) -else() - option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT}) -endif() +option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT}) if(BUILD_OMP) find_package(OpenMP REQUIRED) @@ -256,6 +223,17 @@ if(BUILD_OMP) if(NOT HAVE_OMP_H_INCLUDE) message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support") endif() + + if (((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.99.9)) OR + ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.99.9)) OR + ((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 18.99.9)) + ) + # GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts. + # Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe. + target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=4) + else() + target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=3) + endif() target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX) endif() @@ -271,10 +249,10 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE) enable_language(Fortran) file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF]) add_library(linalg STATIC ${LAPACK_SOURCES}) - if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) + if(NOT BUILD_SHARED_LIBS) install(TARGETS linalg EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - set_target_properties(linalg PROPERTIES OUTPUT_NAME lammps_linalg${LAMMPS_LIB_SUFFIX}) + set_target_properties(linalg PROPERTIES OUTPUT_NAME lammps_linalg${LAMMPS_MACHINE}) set(BLAS_LIBRARIES "$") set(LAPACK_LIBRARIES "$") else() @@ -351,8 +329,9 @@ set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler specific opt separate_arguments(CMAKE_TUNE_FLAGS) include(CheckCXXCompilerFlag) foreach(_FLAG ${CMAKE_TUNE_FLAGS}) - check_cxx_compiler_flag("${_FLAG}" COMPILER_SUPPORTS${_FLAG}) - if(COMPILER_SUPPORTS${_FLAG}) + string(REGEX REPLACE "[=\"]" "" _FLAGX ${_FLAG}) + check_cxx_compiler_flag("${_FLAG}" COMPILER_SUPPORTS${_FLAGX}) + if(COMPILER_SUPPORTS${_FLAGX}) target_compile_options(lammps PRIVATE ${_FLAG}) else() message(WARNING "${_FLAG} found in CMAKE_TUNE_FLAGS, but not supported by the compiler, skipping") @@ -381,7 +360,7 @@ RegisterStyles(${LAMMPS_SOURCE_DIR}) ############################################## # add sources of enabled packages ############################################ -foreach(PKG ${DEFAULT_PACKAGES}) +foreach(PKG ${STANDARD_PACKAGES}) set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp) @@ -409,7 +388,7 @@ foreach(PKG MPIIO) endforeach() # dedicated check for entire contents of accelerator packages -foreach(PKG ${ACCEL_PACKAGES}) +foreach(PKG ${SUFFIX_PACKAGES}) set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG}) file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp) @@ -432,10 +411,10 @@ foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD) ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp) add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES}) - if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) + if(NOT BUILD_SHARED_LIBS) install(TARGETS ${PKG_LIB} EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - set_target_properties(${PKG_LIB} PROPERTIES OUTPUT_NAME lammps_${PKG_LIB}${LAMMPS_LIB_SUFFIX}) + set_target_properties(${PKG_LIB} PROPERTIES OUTPUT_NAME lammps_${PKG_LIB}${LAMMPS_MACHINE}) target_link_libraries(lammps PRIVATE ${PKG_LIB}) if(PKG_LIB STREQUAL awpmd) target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include) @@ -500,7 +479,7 @@ target_include_directories(lammps PRIVATE ${LAMMPS_STYLE_HEADERS_DIR}) ###################################### set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n") set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n") -set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) +set(temp_PKG_LIST ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES}) list(SORT temp_PKG_LIST) foreach(PKG ${temp_PKG_LIST}) if(PKG_${PKG}) @@ -532,44 +511,41 @@ list (FIND LANGUAGES "Fortran" _index) if (${_index} GREATER -1) target_link_libraries(lammps PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}) endif() -if(BUILD_LIB) - set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h compute.h dihedral.h domain.h error.h fix.h force.h group.h improper.h - input.h info.h kspace.h lammps.h lattice.h library.h lmppython.h lmptype.h memory.h modify.h neighbor.h neigh_list.h output.h - pair.h pointers.h region.h timer.h universe.h update.h variable.h) - if(LAMMPS_EXCEPTIONS) - list(APPEND LAMMPS_CXX_HEADERS exceptions.h) - endif() - - set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX}) - set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) - install(TARGETS lammps EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - target_include_directories(lammps PUBLIC $) - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps) - foreach(_HEADER ${LAMMPS_CXX_HEADERS}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/${_HEADER}) - add_custom_target(${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER}) - add_dependencies(lammps ${_HEADER}) - install(FILES ${LAMMPS_SOURCE_DIR}/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) - endforeach() - target_include_directories(lammps INTERFACE $) - add_library(LAMMPS::lammps ALIAS lammps) - get_target_property(LAMMPS_DEFINES lammps INTERFACE_COMPILE_DEFINITIONS) - set(LAMMPS_API_DEFINES) - foreach(_DEF ${LAMMPS_DEFINES}) - set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -D${_DEF}") - endforeach() - configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - install(EXPORT LAMMPS_Targets FILE LAMMPS_Targets.cmake NAMESPACE LAMMPS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) - include(CMakePackageConfigHelpers) - configure_file(LAMMPSConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake @ONLY) - write_basic_package_version_file("LAMMPSConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) -endif() - -if(BUILD_EXE) - install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1) -endif() +set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h compute.h dihedral.h domain.h error.h fix.h force.h group.h improper.h + input.h info.h kspace.h lammps.h lattice.h library.h lmppython.h lmptype.h memory.h modify.h neighbor.h neigh_list.h output.h + pair.h pointers.h region.h timer.h universe.h update.h variable.h) +if(LAMMPS_EXCEPTIONS) + list(APPEND LAMMPS_CXX_HEADERS exceptions.h) +endif() + +set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE}) +set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) +install(TARGETS lammps EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +target_include_directories(lammps PUBLIC $) +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps) +foreach(_HEADER ${LAMMPS_CXX_HEADERS}) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/${_HEADER}) + add_custom_target(${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER}) + add_dependencies(lammps ${_HEADER}) + install(FILES ${LAMMPS_SOURCE_DIR}/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) +endforeach() +target_include_directories(lammps INTERFACE $) +add_library(LAMMPS::lammps ALIAS lammps) +get_target_property(LAMMPS_DEFINES lammps INTERFACE_COMPILE_DEFINITIONS) +set(LAMMPS_API_DEFINES) +foreach(_DEF ${LAMMPS_DEFINES}) + set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -D${_DEF}") +endforeach() +configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +install(EXPORT LAMMPS_Targets FILE LAMMPS_Targets.cmake NAMESPACE LAMMPS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) +file(GLOB MODULE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Modules/Find*.cmake) +install(FILES ${MODULE_FILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) +include(CMakePackageConfigHelpers) +configure_file(LAMMPSConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake @ONLY) +write_basic_package_version_file("LAMMPSConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) +install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1) if(BUILD_TOOLS) add_executable(binary2txt ${LAMMPS_TOOLS_DIR}/binary2txt.cpp) @@ -620,16 +596,19 @@ install( # conventional build. Only available, if a shared library is built. # This is primarily for people that only want to use the Python wrapper. ############################################################################### -if(BUILD_LIB AND BUILD_SHARED_LIBS) +if(BUILD_SHARED_LIBS) if(CMAKE_VERSION VERSION_LESS 3.12) find_package(PythonInterp) # Deprecated since version 3.12 + if(PYTHONINTERP_FOUND) + set(Python_EXECUTABLE ${PYTHON_EXECUTABLE}) + endif() else() find_package(Python COMPONENTS Interpreter) endif() - if (PYTHON_EXECUTABLE) + if (Python_EXECUTABLE) add_custom_target( install-python - ${PYTHON_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h + ${Python_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h -m ${LAMMPS_PYTHON_DIR}/lammps.py -l ${CMAKE_BINARY_DIR}/liblammps${CMAKE_SHARED_LIBRARY_SUFFIX} WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR} @@ -650,14 +629,17 @@ endif() # LAMMPS for package managers and with different prefix settings. # This requires either a shared library or that the PYTHON package is included. ############################################################################### -if((BUILD_LIB AND BUILD_SHARED_LIBS) OR (PKG_PYTHON)) +if(BUILD_SHARED_LIBS OR PKG_PYTHON) if(CMAKE_VERSION VERSION_LESS 3.12) find_package(PythonInterp) # Deprecated since version 3.12 + if(PYTHONINTERP_FOUND) + set(Python_EXECUTABLE ${PYTHON_EXECUTABLE}) + endif() else() find_package(Python COMPONENTS Interpreter) endif() - if (PYTHON_EXECUTABLE) - execute_process(COMMAND ${PYTHON_EXECUTABLE} + if (Python_EXECUTABLE) + execute_process(COMMAND ${Python_EXECUTABLE} -c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))" OUTPUT_VARIABLE PYTHON_DEFAULT_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE) set(PYTHON_INSTDIR ${PYTHON_DEFAULT_INSTDIR} CACHE PATH "Installation folder for LAMMPS Python module") @@ -671,7 +653,7 @@ include(CodeCoverage) ############################################################################### # Print package summary ############################################################################### -foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES}) +foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES}) if(PKG_${PKG}) message(STATUS "Building package: ${PKG}") endif() @@ -710,9 +692,7 @@ if (${_index} GREATER -1) C Flags: ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${BTYPE}}") endif() message(STATUS "<<< Linker flags: >>>") -if(BUILD_EXE) - message(STATUS "Executable name: ${LAMMPS_BINARY}") -endif() +message(STATUS "Executable name: ${LAMMPS_BINARY}") if(CMAKE_EXE_LINKER_FLAGS) message(STATUS "Executable linker flags: ${CMAKE_EXE_LINKER_FLAGS}") endif() @@ -723,6 +703,7 @@ else() endif() if(BUILD_MPI) message(STATUS "<<< MPI flags >>> +-- MPI_defines: ${MPI_CXX_COMPILE_DEFINITIONS} -- MPI includes: ${MPI_CXX_INCLUDE_PATH} -- MPI libraries: ${MPI_CXX_LIBRARIES};${MPI_Fortran_LIBRARIES}") endif() @@ -761,7 +742,7 @@ if(PKG_KSPACE) message(STATUS "Using non-threaded FFTs") endif() if(PKG_KOKKOS) - if(KOKKOS_ENABLE_CUDA) + if(Kokkos_ENABLE_CUDA) if (${FFT} STREQUAL "KISS") message(STATUS "Kokkos FFT: KISS") else() diff --git a/cmake/LAMMPSConfig.cmake.in b/cmake/LAMMPSConfig.cmake.in index da7ca59fb97e1fa03d0ce43c65f8f7ce9abaf4a0..7cd782b3b8eb4585dd3eb4d1c75e852abf64fd29 100644 --- a/cmake/LAMMPSConfig.cmake.in +++ b/cmake/LAMMPSConfig.cmake.in @@ -1,24 +1,17 @@ +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) include(CMakeFindDependencyMacro) if(@BUILD_MPI@) find_dependency(MPI REQUIRED CXX) endif() -if(@PKG_KSPACE@ AND @FFT@ STREQUAL "FFTW3") - if(@FFTW@ STREQUAL "FFTW3" AND NOT TARGET FFTW3::FFTW3) - add_library(FFTW3::FFTW3 UNKNOWN IMPORTED) - set_target_properties(FFTW3::FFTW3 PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3_INCLUDE_DIRS@") - endif() - if(@FFTW@ STREQUAL "FFTW3F" AND NOT TARGET FFTW3F::FFTW3F) - add_library(FFTW3F::FFTW3F UNKNOWN IMPORTED) - set_target_properties(FFTW3F::FFTW3F PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3F_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3F_INCLUDE_DIRS@") +if(@PKG_KSPACE@) + if(@FFT@ STREQUAL "FFTW3") + find_dependency(@FFTW@ REQUIRED MODULE) endif() endif() if(NOT @BUILD_SHARED_LIBS@) + if(@BUILD_OMP@) + find_dependency(OpenMP REQUIRED) + endif() if(@WITH_JPEG@) find_dependency(JPEG REQUIRED) endif() @@ -26,34 +19,20 @@ if(NOT @BUILD_SHARED_LIBS@) find_dependency(PNG REQUIRED) find_dependency(ZLIB REQUIRED) endif() - if(@PKG_KIM@ AND NOT @DOWNLOAD_KIM@) + if(@PKG_KIM@) find_dependency(PkgConfig REQUIRED) pkg_check_modules(KIM-API REQUIRED IMPORTED_TARGET libkim-api>=@KIM-API_MIN_VERSION@) if(@CURL_FOUND@) find_dependency(CURL REQUIRED) endif() endif() - if(@PKG_USER-SMD@ AND NOT @DOWNLOAD_EIGEN3@) + if(@PKG_USER-SMD@) find_dependency(Eigen3 NO_MODULE REQUIRED) endif() - if(@PKG_KSPACE@ AND @FFT@ STREQUAL "FFTW3" AND @FFT_FFTW_THREADS@) - if(@FFTW@ STREQUAL "FFTW3" AND NOT TARGET FFTW3::FFTW3_OMP) - add_library(FFTW3::FFTW3_OMP UNKNOWN IMPORTED) - set_target_properties(FFTW3::FFTW3_OMP PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3_OMP_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3_OMP_INCLUDE_DIRS@") - endif() - if(@FFTW@ STREQUAL "FFTW3F" AND NOT TARGET FFTW3F::FFTW3F_OMP) - add_library(FFTW3F::FFTW3F_OMP UNKNOWN IMPORTED) - set_target_properties(FFTW3F::FFTW3F_OMP PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3F_OMP_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3F_OMP_INCLUDE_DIRS@") - endif() - endif() - if(@PKG_USER-SCAFACOS@ AND NOT @DOWNLOAD_SCAFACOS@) + if(@PKG_USER-SCAFACOS@) find_dependency(PkgConfig REQUIRED) + find_ependency(GSL REQUIRED) + find_dependency(MPI REQUIRED C Fortran) pkg_check_modules(SCAFACOS REQUIRED IMPORTED_TARGET scafacos) endif() if(@PKG_PYTHON@ AND NOT CMAKE_VERSION VERSION_LESS 3.12) @@ -67,26 +46,42 @@ if(NOT @BUILD_SHARED_LIBS@) find_dependency(Kokkos 3 REQUIRED) endif() endif() - if(@PKG_VORONOI@ AND NOT @DOWNLOAD_VORO@) - if(NOT TARGET VORO::VORO) - add_library(VORO::VORO UNKNOWN IMPORTED) - set_target_properties(VORO::VORO PROPERTIES - IMPORTED_LOCATION "@VORO_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@VORO_INCLUDE_DIR@") - endif() + if(@PKG_VORONOI@) + find_dependency(VORO REQUIRED) endif() if(@PKG_USER-INTEL@) if(@INTEL_LRT_MODE@ STREQUAL "THREADS") find_dependency(Threads REQUIRED) endif() if(@TBB_MALLOC_FOUND@) - if(NOT TARGET TBB::TBB_MALLOC) - add_library(TBB::TBB_MALLOC UNKNOWN IMPORTED) - set_target_properties(TBB::TBB_MALLOC PROPERTIES - IMPORTED_LOCATION "@TBB_MALLOC_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@TBB_MALLOC_INCLUDE_DIR@") - endif() + find_ependency(TBB_MALLOC REQUIRED) + endif() + endif() + if(@PKG_USER-ADIOS@) + find_ependency(ADIOS2 REQUIRED) + endif() + if(@PKG_LATTE@) + find_ependency(LATTE REQUIRED) + endif() + if(@PKG_MESSAGE@) + if(@MESSAGE_ZMQ@) + find_ependency(ZMQ REQUIRED) endif() endif() + if(@PKG_MSCG@) + find_ependency(GSL REQUIRED) + find_ependency(MSCG REQUIRED) + endif() + if(@USER-NETCDF@) + if(@NETCDF_FOUND@) + find_ependency(NetCDF REQUIRED) + endif() + if(@PNETCDF_FOUND@) + find_ependency(PNetCDF REQUIRED) + endif() + endif() + if(@PKG_QUIP@) + find_ependency(QUIP REQUIRED) + endif() endif() include("${CMAKE_CURRENT_LIST_DIR}/LAMMPS_Targets.cmake") diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index feff66a9b2520b4f54b214d7873337ae48269064..929d6ebd4bd9d7903494c5a1f4f5e5e82a934221 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -1,10 +1,8 @@ ############################################################################### # Build documentation ############################################################################### -option(BUILD_DOC "Build LAMMPS documentation" OFF) +option(BUILD_DOC "Build LAMMPS HTML documentation" OFF) if(BUILD_DOC) - include(ProcessorCount) - ProcessorCount(NPROCS) find_package(PythonInterp 3 REQUIRED) set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv) @@ -26,15 +24,49 @@ if(BUILD_DOC) COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters ) + # download mathjax distribution and unpack to folder "mathjax" + file(DOWNLOAD "https://github.com/mathjax/MathJax/archive/3.0.5.tar.gz" + "${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz" + EXPECTED_MD5 5d9d3799cce77a1a95eee6be04eb68e7) + + if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/mathjax) + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + file(GLOB MATHJAX_VERSION_DIR ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*) + execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${CMAKE_CURRENT_BINARY_DIR}/mathjax) + endif() + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax) + file(COPY ${CMAKE_CURRENT_BINARY_DIR}/mathjax/es5 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/html/_static/mathjax/) + + # note, this may run in parallel with other tasks, so we must not use multiple processes here add_custom_command( OUTPUT html DEPENDS ${DOC_SOURCES} docenv requirements.txt - COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html + COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html ) + # copy selected image files to html output tree + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/html/JPG) + set(HTML_EXTRA_IMAGES balance_nonuniform.jpg balance_rcb.jpg + balance_uniform.jpg bow_tutorial_01.png bow_tutorial_02.png + bow_tutorial_03.png bow_tutorial_04.png bow_tutorial_05.png + dump1.jpg dump2.jpg examples_mdpd.gif gran_funnel.png gran_mixer.png + hop1.jpg hop2.jpg saed_ewald_intersect.jpg saed_mesh.jpg + screenshot_atomeye.jpg screenshot_gl.jpg screenshot_pymol.jpg + screenshot_vmd.jpg sinusoid.jpg xrd_mesh.jpg) + set(HTML_IMAGE_TARGETS "") + foreach(_IMG ${HTML_EXTRA_IMAGES}) + string(PREPEND _IMG JPG/) + list(APPEND HTML_IMAGE_TARGETS "html/${_IMG}") + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/html/${_IMG} + DEPENDS ${LAMMPS_DOC_DIR}/src/${_IMG} html/JPG + COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/src/${_IMG} ${CMAKE_BINARY_DIR}/html/${_IMG} + ) + endforeach() + add_custom_target( doc ALL - DEPENDS html + DEPENDS html html/_static/mathjax/es5 ${HTML_IMAGE_TARGETS} SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES} ) diff --git a/cmake/Modules/MPI4WIN.cmake b/cmake/Modules/MPI4WIN.cmake index 19d2d2a13e3e94b66bb24ec4be280b1006535bba..035c6a22f3be44a597f674d281b61852964481ff 100644 --- a/cmake/Modules/MPI4WIN.cmake +++ b/cmake/Modules/MPI4WIN.cmake @@ -23,3 +23,8 @@ set_target_properties(MPI::MPI_CXX PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include" INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") add_dependencies(MPI::MPI_CXX mpi4win_build) + +# set variables for status reporting at the end of CMake run +set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") +set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") +set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index dcfe06b9111bc9b67cad1cd1b763dcd2f45e1a9a..9299914b9b39109d71966b6a15f931b767cbdaa3 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -38,7 +38,7 @@ if(GPU_API STREQUAL "CUDA") set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY") endif() - set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)") + set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)") file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu) list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu) @@ -96,7 +96,6 @@ if(GPU_API STREQUAL "CUDA") endforeach() set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LAMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h") - add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS}) target_link_libraries(gpu PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY}) target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS}) @@ -113,7 +112,6 @@ if(GPU_API STREQUAL "CUDA") target_link_libraries(nvc_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY}) target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS}) - elseif(GPU_API STREQUAL "OPENCL") if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") # download and unpack support binaries for compilation of windows binaries. @@ -213,7 +211,7 @@ elseif(GPU_API STREQUAL "HIP") set(HIP_ARCH "gfx906" CACHE STRING "HIP target architecture") elseif(HIP_PLATFORM STREQUAL "nvcc") find_package(CUDA REQUIRED) - set(HIP_ARCH "sm_30" CACHE STRING "HIP primary CUDA architecture (e.g. sm_60)") + set(HIP_ARCH "sm_50" CACHE STRING "HIP primary CUDA architecture (e.g. sm_60)") # build arch/gencode commands for nvcc based on CUDA toolkit version and use choice # --arch translates directly instead of JIT, so this should be for the preferred or most common architecture @@ -332,7 +330,7 @@ elseif(GPU_API STREQUAL "HIP") if(HIP_PLATFORM STREQUAL "nvcc") target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_NVCC__) - target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/include) + target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include) target_include_directories(gpu PRIVATE ${CUDA_INCLUDE_DIRS}) target_link_libraries(gpu PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY}) @@ -340,6 +338,12 @@ elseif(GPU_API STREQUAL "HIP") target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/include) target_include_directories(hip_get_devices PRIVATE ${CUDA_INCLUDE_DIRS}) target_link_libraries(hip_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY}) + elseif(HIP_PLATFORM STREQUAL "hcc") + target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_HCC__) + target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include) + + target_compile_definitions(hip_get_devices PRIVATE -D__HIP_PLATFORM_HCC__) + target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/../include) endif() target_link_libraries(lammps PRIVATE gpu) @@ -355,11 +359,16 @@ RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES) get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES) -target_link_libraries(gpu PRIVATE MPI::MPI_CXX) -if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) +if(NOT BUILD_MPI) + # mpistubs is aliased to MPI::MPI_CXX, but older versions of cmake won't work forward the include path + target_link_libraries(gpu PRIVATE mpi_stubs) +else() + target_link_libraries(gpu PRIVATE MPI::MPI_CXX) +endif() +if(NOT BUILD_SHARED_LIBS) install(TARGETS gpu EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() target_compile_definitions(gpu PRIVATE -DLAMMPS_${LAMMPS_SIZES}) -set_target_properties(gpu PROPERTIES OUTPUT_NAME lammps_gpu${LAMMPS_LIB_SUFFIX}) +set_target_properties(gpu PROPERTIES OUTPUT_NAME lammps_gpu${LAMMPS_MACHINE}) target_sources(lammps PRIVATE ${GPU_SOURCES}) target_include_directories(lammps PRIVATE ${GPU_SOURCES_DIR}) diff --git a/cmake/Modules/Packages/KIM.cmake b/cmake/Modules/Packages/KIM.cmake index d7fe19d55126ed97245a1f94d30463f363c70409..278a6b5afc19a6e45e761e9931a15c5e80b74e77 100644 --- a/cmake/Modules/Packages/KIM.cmake +++ b/cmake/Modules/Packages/KIM.cmake @@ -1,7 +1,12 @@ set(KIM-API_MIN_VERSION 2.1.3) find_package(CURL) if(CURL_FOUND) - target_link_libraries(lammps PRIVATE CURL::libcurl) + if(CMAKE_VERSION VERSION_LESS 3.12) + target_include_directories(lammps PRIVATE ${CURL_INCLUDE_DIRS}) + target_link_libraries(lammps PRIVATE ${CURL_LIBRARIES}) + else() + target_link_libraries(lammps PRIVATE CURL::libcurl) + endif() target_compile_definitions(lammps PRIVATE -DLMP_KIM_CURL) set(LMP_DEBUG_CURL OFF CACHE STRING "Set libcurl verbose mode on/off. If on, it displays a lot of verbose information about its operations.") mark_as_advanced(LMP_DEBUG_CURL) @@ -51,6 +56,9 @@ if(DOWNLOAD_KIM) INTERFACE_INCLUDE_DIRECTORIES "${INSTALL_DIR}/include/kim-api") target_link_libraries(lammps PRIVATE LAMMPS::KIM) add_dependencies(LAMMPS::KIM kim_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() else() find_package(PkgConfig REQUIRED) pkg_check_modules(KIM-API REQUIRED IMPORTED_TARGET libkim-api>=${KIM-API_MIN_VERSION}) diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index d2b8f19167940b2315b54e6201e53b271cde57e5..eb549519d171f89f826b4f14c05d1fa88767a67e 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -1,16 +1,43 @@ +######################################################################## +# consistency checks and Kokkos options/settings required by LAMMPS +if(Kokkos_ENABLE_CUDA) + message(STATUS "KOKKOS: Enabling CUDA LAMBDA function support") + set(Kokkos_ENABLE_CUDA_LAMBDA ON CACHE BOOL "" FORCE) +endif() +# Adding OpenMP compiler flags without the checks done for +# BUILD_OMP can result in compile failures. Enforce consistency. +if(Kokkos_ENABLE_OPENMP AND NOT BUILD_OMP) + message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP") +endif() +######################################################################## + option(EXTERNAL_KOKKOS "Build against external kokkos library" OFF) option(DOWNLOAD_KOKKOS "Download the KOKKOS library instead of using the bundled one" OFF) if(DOWNLOAD_KOKKOS) + # extract Kokkos-related variables and values so we can forward them to the Kokkos library build + get_cmake_property(_VARS VARIABLES) + list(FILTER _VARS INCLUDE REGEX ^Kokkos_) + foreach(_VAR IN LISTS _VARS) + list(APPEND KOKKOS_LIB_BUILD_ARGS "-D${_VAR}=${${_VAR}}") + endforeach() message(STATUS "KOKKOS download requested - we will build our own") - file(DOWNLOAD https://github.com/kokkos/kokkos/compare/3.0.00...stanmoore1:lammps.diff ${CMAKE_CURRENT_BINARY_DIR}/kokkos-lammps.patch) + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_INSTALL_PREFIX=") + if(CMAKE_REQUEST_PIC) + list(APPEND KOKKOS_LIB_BUILD_ARGS ${CMAKE_REQUEST_PIC}) + endif() + # append other CMake variables that need to be forwarded to CMAKE_ARGS + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_INSTALL_LIBDIR=lib") + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}") + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}") + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}") + list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") include(ExternalProject) ExternalProject_Add(kokkos_build - URL https://github.com/kokkos/kokkos/archive/3.0.00.tar.gz - URL_MD5 281c7093aa3a603276e93abdf4be23b9 - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_BINARY_DIR}/kokkos-lammps.patch - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= ${CMAKE_REQUEST_PIC} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_LIBDIR=lib - -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + URL https://github.com/kokkos/kokkos/archive/3.1.00.tar.gz + URL_MD5 f638a6c786f748a602b26faa0e96ebab + CMAKE_ARGS ${KOKKOS_LIB_BUILD_ARGS} BUILD_BYPRODUCTS /lib/libkokkoscore.a ) ExternalProject_get_property(kokkos_build INSTALL_DIR) @@ -22,10 +49,13 @@ if(DOWNLOAD_KOKKOS) INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS}) target_link_libraries(lammps PRIVATE LAMMPS::KOKKOS) add_dependencies(LAMMPS::KOKKOS kokkos_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() elseif(EXTERNAL_KOKKOS) - find_package(Kokkos 3) + find_package(Kokkos 3.1) if(NOT Kokkos_FOUND) - message(FATAL_ERROR "KOKKOS library not found, help CMake to find it by setting KOKKOS_LIBRARY, or set DOWNLOAD_KOKKOS=ON to download it") + message(FATAL_ERROR "KOKKOS library version 3.1 or later not found, help CMake to find it by setting KOKKOS_LIBRARY, or set DOWNLOAD_KOKKOS=ON to download it") endif() target_link_libraries(lammps PRIVATE Kokkos::kokkos) else() @@ -64,7 +94,7 @@ if(PKG_KSPACE) list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/fft3d_kokkos.cpp ${KOKKOS_PKG_SOURCES_DIR}/gridcomm_kokkos.cpp ${KOKKOS_PKG_SOURCES_DIR}/remap_kokkos.cpp) - if(KOKKOS_ENABLE_CUDA) + if(Kokkos_ENABLE_CUDA) if(NOT ${FFT} STREQUAL "KISS") target_compile_definitions(lammps PRIVATE -DFFT_CUFFT) target_link_libraries(lammps PRIVATE cufft) diff --git a/cmake/Modules/Packages/LATTE.cmake b/cmake/Modules/Packages/LATTE.cmake index 7b8025bf5003948eb524759026809535d7540a73..a2a94755ab0eec34f676b00476dfd47eb22cfd4a 100644 --- a/cmake/Modules/Packages/LATTE.cmake +++ b/cmake/Modules/Packages/LATTE.cmake @@ -1,4 +1,11 @@ enable_language(Fortran) + +# using lammps in a super-build setting +if(TARGET LATTE::latte) + target_link_libraries(lammps PRIVATE LATTE::latte) + return() +endif() + find_package(LATTE) if(LATTE_FOUND) set(DOWNLOAD_LATTE_DEFAULT OFF) @@ -27,10 +34,14 @@ if(DOWNLOAD_LATTE) INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}") target_link_libraries(lammps PRIVATE LAMMPS::LATTE) add_dependencies(LAMMPS::LATTE latte_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() else() find_package(LATTE) if(NOT LATTE_FOUND) message(FATAL_ERROR "LATTE library not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it") endif() - target_link_libraries(lammps PRIVATE LATTE::latte) + # latte needs lapack + target_link_libraries(lammps PRIVATE LATTE::latte ${LAPACK_LIBRARIES}) endif() diff --git a/cmake/Modules/Packages/MESSAGE.cmake b/cmake/Modules/Packages/MESSAGE.cmake index 231c5d8aa0f9bc98d1efe225e9c3d05ff85a205a..e1dc4c107236e63e5a5e4ab8b77af1bae1e4b679 100644 --- a/cmake/Modules/Packages/MESSAGE.cmake +++ b/cmake/Modules/Packages/MESSAGE.cmake @@ -7,11 +7,11 @@ file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp) add_library(cslib STATIC ${cslib_SOURCES}) -if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) +if(NOT BUILD_SHARED_LIBS) install(TARGETS cslib EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() target_compile_definitions(cslib PRIVATE -DLAMMPS_${LAMMPS_SIZES}) -set_target_properties(cslib PROPERTIES OUTPUT_NAME lammps_cslib${LAMMPS_LIB_SUFFIX}) +set_target_properties(cslib PROPERTIES OUTPUT_NAME lammps_cslib${LAMMPS_MACHINE}) if(BUILD_MPI) target_compile_definitions(cslib PRIVATE -DMPI_YES) set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi") diff --git a/cmake/Modules/Packages/MSCG.cmake b/cmake/Modules/Packages/MSCG.cmake index 55f71588fe621ce8e244c977b94902472ec48b88..668d318d689edb039cf0b3f5df0565b052a7e9e2 100644 --- a/cmake/Modules/Packages/MSCG.cmake +++ b/cmake/Modules/Packages/MSCG.cmake @@ -35,6 +35,9 @@ if(DOWNLOAD_MSCG) INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}") target_link_libraries(lammps PRIVATE LAMMPS::MSCG) add_dependencies(LAMMPS::MSCG mscg_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() else() find_package(MSCG) if(NOT MSCG_FOUND) diff --git a/cmake/Modules/Packages/USER-COLVARS.cmake b/cmake/Modules/Packages/USER-COLVARS.cmake index 18931ae60b061a429161980a8c6754b7f992a311..31e64e37909ca3557f8c9186e3643513b75b5f70 100644 --- a/cmake/Modules/Packages/USER-COLVARS.cmake +++ b/cmake/Modules/Packages/USER-COLVARS.cmake @@ -9,24 +9,28 @@ if(COLVARS_LEPTON) set(LEPTON_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton) file(GLOB LEPTON_SOURCES ${LEPTON_DIR}/src/[^.]*.cpp) add_library(lepton STATIC ${LEPTON_SOURCES}) - if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) + if(NOT BUILD_SHARED_LIBS) install(TARGETS lepton EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - set_target_properties(lepton PROPERTIES OUTPUT_NAME lammps_lepton${LAMMPS_LIB_SUFFIX}) + # Change the define below to LEPTON_BUILDING_SHARED_LIBRARY when linking Lepton as a DLL with MSVC + target_compile_definitions(lepton PRIVATE -DLEPTON_BUILDING_STATIC_LIBRARY) + set_target_properties(lepton PROPERTIES OUTPUT_NAME lammps_lepton${LAMMPS_MACHINE}) target_include_directories(lepton PRIVATE ${LEPTON_DIR}/include) endif() add_library(colvars STATIC ${COLVARS_SOURCES}) -if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) +if(NOT BUILD_SHARED_LIBS) install(TARGETS colvars EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() target_compile_definitions(colvars PRIVATE -DLAMMPS_${LAMMPS_SIZES}) -set_target_properties(colvars PROPERTIES OUTPUT_NAME lammps_colvars${LAMMPS_LIB_SUFFIX}) +set_target_properties(colvars PROPERTIES OUTPUT_NAME lammps_colvars${LAMMPS_MACHINE}) target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars) target_link_libraries(lammps PRIVATE colvars) if(COLVARS_LEPTON) target_link_libraries(lammps PRIVATE lepton) - target_compile_options(colvars PRIVATE -DLEPTON) + target_compile_definitions(colvars PRIVATE -DLEPTON) + # Disable the line below when linking Lepton as a DLL with MSVC + target_compile_definitions(colvars PRIVATE -DLEPTON_USE_STATIC_LIBRARIES) target_include_directories(colvars PUBLIC ${LEPTON_DIR}/include) endif() diff --git a/cmake/Modules/Packages/USER-MOLFILE.cmake b/cmake/Modules/Packages/USER-MOLFILE.cmake index 1a2061918fcf9dde70c22586ea655492059c8373..dd6435e56b2b41d6f8802aabf79878039c787134 100644 --- a/cmake/Modules/Packages/USER-MOLFILE.cmake +++ b/cmake/Modules/Packages/USER-MOLFILE.cmake @@ -1,6 +1,6 @@ set(MOLFILE_INCLUDE_DIRS "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers") add_library(molfile INTERFACE) -if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) +if(NOT BUILD_SHARED_LIBS) install(TARGETS molfile EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIRS}) diff --git a/cmake/Modules/Packages/USER-PLUMED.cmake b/cmake/Modules/Packages/USER-PLUMED.cmake index d47c365637331a1a09763abad4b8463dc44f47ed..102ce7a7ad4431eae7b0ff2880fe71ebc92474b7 100644 --- a/cmake/Modules/Packages/USER-PLUMED.cmake +++ b/cmake/Modules/Packages/USER-PLUMED.cmake @@ -70,13 +70,15 @@ if(DOWNLOAD_PLUMED) ExternalProject_get_property(plumed_build INSTALL_DIR) add_library(LAMMPS::PLUMED UNKNOWN IMPORTED) add_dependencies(LAMMPS::PLUMED plumed_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() if(PLUMED_MODE STREQUAL "STATIC") - set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_WRAPPER_CXX=1") set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed.a INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}") elseif(PLUMED_MODE STREQUAL "SHARED") set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}") elseif(PLUMED_MODE STREQUAL "RUNTIME") - set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_HAS_DLOPEN=1;__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") + set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumedWrapper.a INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}") endif() set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) @@ -86,12 +88,11 @@ else() pkg_check_modules(PLUMED REQUIRED plumed) add_library(LAMMPS::PLUMED INTERFACE IMPORTED) if(PLUMED_MODE STREQUAL "STATIC") - set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_WRAPPER_CXX=1") include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static) elseif(PLUMED_MODE STREQUAL "SHARED") include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared) elseif(PLUMED_MODE STREQUAL "RUNTIME") - set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_HAS_DLOPEN=1;__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") + set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime) endif() set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}") diff --git a/cmake/Modules/Packages/USER-QMMM.cmake b/cmake/Modules/Packages/USER-QMMM.cmake index 60ca488817b43059ee4412815850fca62be7afbe..76bb76fa5afe6160dc797566592fed7d145b2160 100644 --- a/cmake/Modules/Packages/USER-QMMM.cmake +++ b/cmake/Modules/Packages/USER-QMMM.cmake @@ -1,15 +1,12 @@ enable_language(C) -if(NOT BUILD_LIB) - message(FATAL_ERROR "Building a QM/MM executable with USER-QMMM requires BUILD_LIB=yes") -endif() if(NOT BUILD_SHARED_LIBS) message(WARNING "It is recommended to use BUILD_SHARED_LIBS=yes with USER-QMMM") endif() add_library(qmmm STATIC ${LAMMPS_LIB_SOURCE_DIR}/qmmm/libqmmm.c) -if(BUILD_LIB AND NOT BUILD_SHARED_LIBS) +if(NOT BUILD_SHARED_LIBS) install(TARGETS qmmm EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -set_target_properties(qmmm PROPERTIES OUTPUT_NAME lammps_qmmm${LAMMPS_LIB_SUFFIX}) +set_target_properties(qmmm PROPERTIES OUTPUT_NAME lammps_qmmm${LAMMPS_MACHINE}) target_link_libraries(lammps PRIVATE qmmm) target_include_directories(qmmm PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/qmmm) diff --git a/cmake/Modules/Packages/USER-SCAFACOS.cmake b/cmake/Modules/Packages/USER-SCAFACOS.cmake index d92a83f7c117e4d17b59676c96046a12d54c2f39..ee12e754e648b497577cb172d03271f134b6dae4 100644 --- a/cmake/Modules/Packages/USER-SCAFACOS.cmake +++ b/cmake/Modules/Packages/USER-SCAFACOS.cmake @@ -52,6 +52,9 @@ if(DOWNLOAD_SCAFACOS) INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libfcs.a;${INSTALL_DIR}/lib/libfcs_direct.a;${INSTALL_DIR}/lib/libfcs_ewald.a;${INSTALL_DIR}/lib/libfcs_fmm.a;${INSTALL_DIR}/lib/libfcs_p2nfft.a;${INSTALL_DIR}/lib/libfcs_p3m.a;GSL::gsl;${INSTALL_DIR}/lib/libfcs_near.a;${INSTALL_DIR}/lib/libfcs_gridsort.a;${INSTALL_DIR}/lib/libfcs_resort.a;${INSTALL_DIR}/lib/libfcs_redist.a;${INSTALL_DIR}/lib/libfcs_common.a;${INSTALL_DIR}/lib/libfcs_pnfft.a;${INSTALL_DIR}/lib/libfcs_pfft.a;${INSTALL_DIR}/lib/libfcs_fftw3_mpi.a;${INSTALL_DIR}/lib/libfcs_fftw3.a;MPI::MPI_Fortran;MPI::MPI_C") target_link_libraries(lammps PRIVATE LAMMPS::SCAFACOS) add_dependencies(LAMMPS::SCAFACOS scafacos_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() else() find_package(PkgConfig REQUIRED) pkg_check_modules(SCAFACOS REQUIRED IMPORTED_TARGET scafacos) diff --git a/cmake/Modules/Packages/USER-SMD.cmake b/cmake/Modules/Packages/USER-SMD.cmake index 6984b24d5207781f2aea191eb13b38b0719e1478..0a5165471c6b22949c1fe737d67fdb5f2c6b045a 100644 --- a/cmake/Modules/Packages/USER-SMD.cmake +++ b/cmake/Modules/Packages/USER-SMD.cmake @@ -18,6 +18,9 @@ if(DOWNLOAD_EIGEN3) set_target_properties(LAMMPS::EIGEN3 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}") target_link_libraries(lammps PRIVATE LAMMPS::EIGEN3) add_dependencies(LAMMPS::EIGEN3 Eigen3_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() else() find_package(Eigen3 NO_MODULE) mark_as_advanced(Eigen3_DIR) diff --git a/cmake/Modules/Packages/VORONOI.cmake b/cmake/Modules/Packages/VORONOI.cmake index 39d494928b3054edb940a31979b0acede3cf4f22..4635466a50096808744d697def16a87c4fcf0255 100644 --- a/cmake/Modules/Packages/VORONOI.cmake +++ b/cmake/Modules/Packages/VORONOI.cmake @@ -35,6 +35,9 @@ if(DOWNLOAD_VORO) INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/src") target_link_libraries(lammps PRIVATE LAMMPS::VORO) add_dependencies(LAMMPS::VORO voro_build) + if(NOT BUILD_SHARED_LIBS) + install(CODE "MESSAGE(FATAL_ERROR \"Installing liblammps with downloaded libraries is currently not supported.\")") + endif() else() find_package(VORO) if(NOT VORO_FOUND) diff --git a/cmake/Modules/Testing.cmake b/cmake/Modules/Testing.cmake index 0eeef00fe9ab4b603fe319825662a6b827f46ac7..f0a5f4519d4c3367f38f0f81b784647407df9457 100644 --- a/cmake/Modules/Testing.cmake +++ b/cmake/Modules/Testing.cmake @@ -2,7 +2,7 @@ # Testing ############################################################################### option(ENABLE_TESTING "Enable testing" OFF) -if(ENABLE_TESTING AND BUILD_EXE) +if(ENABLE_TESTING) enable_testing() option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "") option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master") @@ -28,7 +28,7 @@ if(ENABLE_TESTING AND BUILD_EXE) "https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR") endif() - add_test(ShowHelp ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -help) + add_test(NAME ShowHelp COMMAND $ -help) if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR}) message(STATUS "Running test discovery...") @@ -42,8 +42,7 @@ if(ENABLE_TESTING AND BUILD_EXE) string(REPLACE "-" "_" TEST_NAME ${TEST_NAME}) string(REPLACE "+" "_" TEST_NAME ${TEST_NAME}) set(TEST_NAME "test_core_${TEST_NAME}_serial") - add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME}) - set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR}) + add_test(NAME ${TEST_NAME} COMMAND $ -in ${SCRIPT_NAME} WORKING_DIRECTORY ${PARENT_DIR}) endforeach() list(LENGTH TEST_SCRIPTS NUM_TESTS) diff --git a/cmake/README.md b/cmake/README.md deleted file mode 100644 index b9dd6d437370c395ac1075304159c0052c097f33..0000000000000000000000000000000000000000 --- a/cmake/README.md +++ /dev/null @@ -1,2320 +0,0 @@ -# Building LAMMPS using CMake - -LAMMPS recently acquired support for building with CMake thanks to the efforts -of Christoph Junghans (LANL) and Richard Berger (Temple U). One of the key -strengths of CMake is that it can generate the necessary build system files of -your own personal preference. It also enables using common development IDEs such -as Eclipse, Visual Studio, QtCreator, Xcode and many more for LAMMPS -development. - -CMake can both be used as a command-line (CLI) utility `cmake` or through one of -its GUIs. `ccmake` is a text-based ui to configure and build CMake projects. -`cmake-gui` is a graphical frontend for running CMake operations that works on -Linux desktop environments, Windows and MacOS X. - -The following is a tutorial-style introduction in using the CMake system. It -should give you the necessary foundation to understand how to do the most common -tasks, act as a reference and provide examples of typical use cases. - -## Table of Contents - - * [Quick Start for the Impatient](#quick-start-for-the-impatient) - * [Building LAMMPS using cmake](#building-lammps-using-cmake-1) - * [Prerequisites](#prerequisites) - * [Build directory vs. Source Directory](#build-directory-vs-source-directory) - * [Defining and using presets](#defining-and-using-presets) - * [Reference](#reference) - * [Common CMake Configuration Options](#common-cmake-configuration-options) - * [LAMMPS Configuration Options](#lammps-configuration-options) - * [Parallelization and Accelerator Packages](#parallelization-and-accelerator-packages) - * [Default Packages](#default-packages) - * [Other Packages](#other-packages) - * [User Packages](#user-packages) - * [Package-Specific Configuration Options](#package-specific-configuration-options) - * [KSPACE Package](#kspace-package) - * [MKL](#mkl) - * [FFTW3](#fftw3) - * [BLAS](#blas) - * [LAPACK](#lapack) - * [PYTHON Package](#python-package) - * [GPU Package](#gpu-package) - * [MESSAGE Package](#message-package) - * [MSCG Package](#mscg-package) - * [VORONOI Package](#voronoi-package) - * [USER-LATTE Package](#user-latte-package) - * [USER-PLUMED Package](#user-plumed-package) - * [USER-SCAFACOS Package](#user-scafacos-package) - * [USER-SMD Package](#user-smd-package) - * [Optional Features](#optional-features) - * [zlib support](#zlib-support) - * [JPEG support](#jpeg-support) - * [PNG support](#png-support) - * [GZIP support](#gzip-support) - * [FFMPEG support](#ffmpeg-support) - * [Compilers](#compilers) - * [Building with GNU Compilers](#building-with-gnu-compilers) - * [Building with Intel Compilers](#building-with-intel-compilers) - * [Building with LLVM/Clang Compilers](#building-with-llvmclang-compilers) - -## Quick Start for the Impatient -If you want to skip ahead and just run the compilation using `cmake`, please -find a minimal example below. Together with the options reference below, this -should get you started. - -```bash -git clone https://github.com/lammps/lammps.git -mkdir lammps/build -cd lammps/build -cmake [-D OPTION_A=VALUE_A -D OPTION_B=VALUE_B ...] ../cmake -make -``` - -# Building LAMMPS using `cmake` - -## Prerequisites -This tutorial assumes you are running in a command-line environment using a -shell like Bash. - -* Linux: any terminal window will work -* MacOS X: launch the Terminal app -* Windows 10: install and run "Bash on Windows" (aka Ubuntu on Windows) - -Before we start, please download the latest and greatest version of LAMMPS from -GitHub. You can either download it as a tarball or ZIP file, or via git. When -you start with a fresh lammps directory, the contents should look like this: - -```bash -$ ls -bench doc lib potentials README tools -cmake examples LICENSE python src -``` - -## Build directory vs. Source Directory - -By using CMake we separate building LAMMPS into multiple phases: - -1. **Configuration**: define which features we want to enable/disable and how it should be compiled -2. **Compilation**: compile each source file and generate binaries and libraries based on the configuration -3. **Installation** (Optional): finally we can install the generated binaries on our system - -In the GNU Make based build system of LAMMPS, configuration occurs by running -special make targets like `make yes-MOLECULAR`. These targets modify the -**source directory** (`src/`) directory by copying package files and patching -Makefile. In some cases you are force to manually edit Makefiles to add compiler -options and/or correct include directory and library paths. - -These edits and copy operations are no longer necessary when compiling with -CMake. The source directory stays untouched, so you compile LAMMPS in many -different variants using the same source code checkout. It enables true -**out-of-source** builds. - -When using Cmake, you can compile in **any** folder outside of the source -directory. Any working directory you choose becomes a so-called **build -directory**. All configuration files and compilation results are stored in this -folder. We recommend calling it something like `build/`. - -Let's have a look a quick example, where we get the greatest and latest version -of LAMMPS from GitHub via git: -```bash -git clone https://github.com/lammps/lammps.git -``` - -We then create a new `build` folder and make it our current working directory: -``` -mkdir lammps/build -cd lammps/build -``` - -To configure LAMMPS we run `cmake` inside of this folder. However it requires at -least one argument. `cmake` needs to read the LAMMPS `CMakeLists.txt` file to -know what to do. This file is located in the `cmake/` subdirectory of the -lammps checkout. To run `cmake` add the relative or absolute path to the `cmake/` -directory as first argument. - -E.g., if the current working directory is `lammps/build` you can specify the -relative path to `lammps/cmake` as follows: -``` -cmake ../cmake -``` - -You could also specify the absolute path: -``` -cmake /path/to/my/lammps/folder/cmake -``` - -Please note: **This does NOT compile the code!** Running cmake only configures -the next build. It generates the necessary files to compile the code. On -Unix/Linux it defaults to generating Makefiles. You can also choose other output -formats to generate files for Eclipse, Xcode or Visual Studio which are -supported on other platorms. - -To compile LAMMPS once the Makefiles are generated, simply type `make` in the -build directory. - -``` -make -``` -# Defining and using presets - -The CMake build exposes a lot of different options. In the old build system -some of the package selections were possible by using special make target like -`make yes-std` or `make no-lib`. Achieving a similar result with cmake requires -specifying all options manually. This can quickly become a very long command -line that is hard to handle. While these could be stored in a simple script -file, there is another way of defining "presets" to compile LAMMPS in a certain -way. Since the cmake build process - contrary to the conventional build system - -includes the compilation of the bundled libraries into the standard build process, -the grouping of those presets is somewhat different. - -A preset is a regular CMake script file that can use constructs such as -variables, lists and for-loops to manipulate configuration options and create -an [*initial cache*](https://cmake.org/cmake/help/v3.12/manual/cmake.1.html). -Options must be set with the `CACHE` and `FORCE` flag to ensure they are -considered even during a second cmake run. - -Such a file can then be passed to cmake via the `-C` flag. Several examples of -presets can be found in the `cmake/presets` folder. - -```bash -# build LAMMPS with all packages enabled which don't use external libraries and enable GPU package -mkdir build -cd build -cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GPU=on ../cmake -``` - -# Reference - -## Common CMake Configuration Options - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
CMAKE_INSTALL_PREFIXInstall location where LAMMPS files will be copied to. In the Unix/Linux case with Makefiles this controls what `make install` will do. - Default setting is $HOME/.local. -
CMAKE_BUILD_TYPEControls if debugging symbols are added to the generated binaries -
-
RelWithDebInfo (default)
-
Release
-
Debug
-
MinSizeRel
-
-
CMAKE_VERBOSE_MAKEFILEEnable verbose output from Makefile builds (useful for debugging), the same can be achieved by adding `VERBOSE=1` to the `make` call. -
-
off (default)
-
on
-
-
- - -## LAMMPS Configuration Options - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
LAMMPS_SIZE_LIMITControls the integer sizes used by LAMMPS internally -
-
LAMMPS_SMALLBIG (default)
-
32bit , 64bit
-
LAMMPS_SMALLSMALL
-
32bit , 32bit
-
LAMMPS_BIGBIG
-
64bit , 64bit
-
-
LAMMPS_LONGLONG_TO_LONGWorkaround if your system or MPI version does not recognize long long data types -
-
off (default)
-
on
-
-
LAMMPS_MEMALIGNcontrols the alignment of blocks of memory allocated by LAMMPS -
-
64 (default)
-
-
LAMMPS_EXCEPTIONScontrols whether LAMMPS dies after an error or throws a C++ exception. This is particularly useful when running through the C library interface, since an error - in LAMMPS then doesn't kill the parent process -
-
off (default)
-
on
-
-
LAMMPS_MACHINEallows appending a machine suffix to the generated LAMMPS binary -
-
*none* (default)
-
-
LAMMPS_LIB_SUFFIXallows appending a suffix to the generated LAMMPS library -
-
*none* (default)
-
-
BUILD_LIBcontrol whether to build LAMMPS as a library -
-
off (default)
-
on
-
-
BUILD_EXEcontrol whether to build LAMMPS executable -
-
on (default)
-
off
-
-
BUILD_SHARED_LIBScontrol whether to build LAMMPS as a shared-library -
-
off (default)
-
on
-
-
BUILD_DOCcontrol whether to build LAMMPS documentation -
-
off (default)
-
on
-
-
BUILD_TOOLScontrol whether to build LAMMPS tools -
-
off (default)
-
on
-
-
- -## Parallelization and Accelerator Packages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
BUILD_MPIcontrol whether to build LAMMPS with MPI support. This will look for - `mpicxx` in your path and use this MPI implementation. -
-
on (default, if found)
-
off
-
-
BUILD_OMPcontrol whether to build LAMMPS with OpenMP support. -
-
on (default, if found)
-
off
-
-
PKG_OPT - A handful of pair styles which are optimized for improved CPU performance on - single or multiple cores. These include EAM, LJ, CHARMM, and Morse potentials. - -
-
off (default)
-
on
-
-
PKG_USER-OMP - Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and kspace - styles which are altered to enable threading on many-core CPUs via OpenMP - directives. - -
-
off (default)
-
on
-
-
PKG_USER-INTEL - Dozens of pair, fix, bond, angle, dihedral, improper, and kspace styles which - are optimized for Intel CPUs and KNLs (Knights Landing). - -
-
off (default)
-
on
-
-
PKG_GPU - Dozens of pair styles and a version of the PPPM long-range Coulombic solver - optimized for GPUs. All such styles have a “gpu” as a suffix in their style - name. The GPU code can be compiled with either CUDA or OpenCL, however the - OpenCL variants are no longer actively maintained and only the CUDA versions - are regularly tested. - -
-
off (default)
-
on
-
-
PKG_KOKKOSDozens of atom, pair, bond, angle, dihedral, improper, fix, compute styles adapted to compile using the Kokkos library which can convert them to OpenMP or CUDA code so that they run efficiently on multicore CPUs, KNLs, or GPUs. -
-
off (default)
-
on
-
-
- -## Default Packages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
PKG_ASPHEREComputes, time-integration fixes, and pair styles for aspherical particle models including ellipsoids, 2d lines, and 3d triangles. -
-
off (default)
-
on
-
-
PKG_BODYBody-style particles with internal structure. Computes, time-integration fixes, pair styles, as well as the body styles themselves. -
-
off (default)
-
on
-
-
PKG_CLASS2Bond, angle, dihedral, improper, and pair styles for the COMPASS CLASS2 molecular force field. -
-
off (default)
-
on
-
-
PKG_COLLOIDCoarse-grained finite-size colloidal particles. Pair styles and fix wall styles for colloidal interactions. Includes the Fast Lubrication Dynamics (FLD) method for hydrodynamic interactions, which is a simplified approximation to Stokesian dynamics. -
-
off (default)
-
on
-
-
PKG_COMPRESSCompressed output of dump files via the zlib compression library, using dump styles with a “gz” in their style name. -
-
off (default)
-
on
-
-
PKG_CORESHELLCompute and pair styles that implement the adiabatic core/shell model for polarizability. The pair styles augment Born, Buckingham, and Lennard-Jones styles with core/shell capabilities. The compute temp/cs command calculates the temperature of a system with core/shell particles. -
-
off (default)
-
on
-
-
PKG_DIPOLEAn atom style and several pair styles for point dipole models with short-range or long-range interactions. -
-
off (default)
-
on
-
-
PKG_GRANULARPair styles and fixes for finite-size granular particles, which interact with each other and boundaries via frictional and dissipative potentials. -
-
off (default)
-
on
-
-
PKG_KSPACEA variety of long-range Coulombic solvers, as well as pair styles which compute the corresponding short-range pairwise Coulombic interactions. These include Ewald, particle-particle particle-mesh (PPPM), and multilevel summation method (MSM) solvers. -
-
off (default)
-
on
-
-
PKG_MANYBODY - A variety of manybody and bond-order potentials. These include (AI)REBO, BOP, - EAM, EIM, Stillinger-Weber, and Tersoff potentials. - -
-
off (default)
-
on
-
-
PKG_MC - Several fixes and a pair style that have Monte Carlo (MC) or MC-like - attributes. These include fixes for creating, breaking, and swapping bonds, - for performing atomic swaps, and performing grand-canonical MC (GCMC) in - conjunction with dynamics. - -
-
off (default)
-
on
-
-
PKG_MISC - A variety of compute, fix, pair, dump styles with specialized capabilities that - don’t align with other packages. - -
-
off (default)
-
on
-
-
PKG_MOLECULE - A large number of atom, pair, bond, angle, dihedral, improper styles that are - used to model molecular systems with fixed covalent bonds. The pair styles - include the Dreiding (hydrogen-bonding) and CHARMM force fields, and a TIP4P - water model. - -
-
off (default)
-
on
-
-
PKG_PERI - An atom style, several pair styles which implement different Peridynamics - materials models, and several computes which calculate diagnostics. - Peridynamics is a a particle-based meshless continuum model. - -
-
off (default)
-
on
-
-
PKG_QEQ - Several fixes for performing charge equilibration (QEq) via different - algorithms. These can be used with pair styles that perform QEq as part of - their formulation. - -
-
off (default)
-
on
-
-
PKG_REPLICA - A collection of multi-replica methods which can be used when running multiple - LAMMPS simulations (replicas). See Section 6.5 for an overview of how to run - multi-replica simulations in LAMMPS. Methods in the package include nudged - elastic band (NEB), parallel replica dynamics (PRD), temperature accelerated - dynamics (TAD), parallel tempering, and a verlet/split algorithm for - performing long-range Coulombics on one set of processors, and the remainder - of the force field calcalation on another set. - -
-
off (default)
-
on
-
-
PKG_RIGID - Fixes which enforce rigid constraints on collections of atoms or particles. - This includes SHAKE and RATTLE, as well as varous rigid-body integrators for a - few large bodies or many small bodies. Also several computes which calculate - properties of rigid bodies. - -
-
off (default)
-
on
-
-
PKG_SHOCK - Fixes for running impact simulations where a shock-wave passes through a - material. - -
-
off (default)
-
on
-
-
PKG_SPINModel atomic magnetic spins classically, coupled to atoms moving in the usual manner via MD. Various pair, fix, and compute styles. -
-
off (default)
-
on
-
-
PKG_SNAP - A pair style for the spectral neighbor analysis potential (SNAP). SNAP is - methodology for deriving a highly accurate classical potential fit to a large - archive of quantum mechanical (DFT) data. Also several computes which analyze - attributes of the potential. - -
-
off (default)
-
on
-
-
PKG_SRD - A pair of fixes which implement the Stochastic Rotation Dynamics (SRD) method - for coarse-graining of a solvent, typically around large colloidal particles. - -
-
off (default)
-
on
-
-
- -## Other Packages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
PKG_KIMA pair_style kim command which is a wrapper on the Knowledge Base for Interatomic Models (KIM) repository of interatomic potentials, enabling any of them to be used in LAMMPS simulations. -
-
off (default)
-
on
-
-
PKG_PYTHONEnable support for Python scripting inside of LAMMPS. -
-
off (default)
-
on
-
-
PKG_MESSAGECommands to use LAMMPS as either a client or server and couple it to another application. -
-
off (default)
-
on
-
-
PKG_MSCG - A fix mscg command which can parameterize a Multi-Scale Coarse-Graining (MSCG) - model using the open-source MS-CG library. - -
-
off (default)
-
on
-
-
PKG_MPIIO - Support for parallel output/input of dump and restart files via the MPIIO library. - -
-
off (default)
-
on
-
-
PKG_POEMS - A fix that wraps the Parallelizable Open source Efficient Multibody Software - (POEMS) library, which is able to simulate the dynamics of articulated body - systems. These are systems with multiple rigid bodies (collections of - particles) whose motion is coupled by connections at hinge points. - -
-
off (default)
-
on
-
-
PKG_LATTE - A fix command which wraps the LATTE DFTB code, so that molecular dynamics can - be run with LAMMPS using density-functional tight-binding quantum forces - calculated by LATTE. - -
-
off (default)
-
on
-
-
PKG_VORONOI - A compute command which calculates the Voronoi tesselation of a collection of atoms by wrapping the Voro++ library. This can be used to calculate the local volume or each atoms or its near neighbors. - -
-
off (default)
-
on
-
-
- -## User Packages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
PKG_USER-ADIOSADIOS is a high-performance I/O library. This package implements the dump “atom/adios” and dump “custom/adios” commands to write data using the ADIOS library. -
-
off (default)
-
on
-
-
PKG_USER-ATC - ATC stands for atoms-to-continuum. This package implements a fix atc command - to either couple molecular dynamics with continuum finite element equations or - perform on-the-fly conversion of atomic information to continuum fields. - -
-
off (default)
-
on
-
-
PKG_USER-AWPMD - AWPMD stands for Antisymmetrized Wave Packet Molecular Dynamics. This package - implements an atom, pair, and fix style which allows electrons to be treated - as explicit particles in a classical molecular dynamics model. - -
-
off (default)
-
on
-
-
PKG_USER-BOCS - This package provides fix bocs, a modified version of fix npt which includes the pressure correction to the barostat as outlined in: N. J. H. Dunn and W. G. Noid, “Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids,” J. Chem. Phys. 143, 243148 (2015). - -
-
off (default)
-
on
-
-
PKG_USER-CGDNA - Several pair styles, a bond style, and integration fixes for coarse-grained - models of single- and double-stranded DNA based on the oxDNA model of Doye, - Louis and Ouldridge at the University of Oxford. This includes Langevin-type - rigid-body integrators with improved stability. - -
-
off (default)
-
on
-
-
PKG_USER-CGSDK - Several pair styles and an angle style which implement the coarse-grained SDK - model of Shinoda, DeVane, and Klein which enables simulation of ionic liquids, - electrolytes, lipids and charged amino acids. - -
-
off (default)
-
on
-
-
PKG_USER-COLVARS - COLVARS stands for collective variables, which can be used to implement - various enhanced sampling methods, including Adaptive Biasing Force, - Metadynamics, Steered MD, Umbrella Sampling and Restraints. A fix colvars - command is implemented which wraps a COLVARS library, which implements these - methods. simulations. - -
-
off (default)
-
on
-
-
PKG_USER-DIFFRACTION - Two computes and a fix for calculating x-ray and electron diffraction - intensities based on kinematic diffraction theory. - -
-
off (default)
-
on
-
-
PKG_USER-DPD - DPD stands for dissipative particle dynamics. This package implements - coarse-grained DPD-based models for energetic, reactive molecular crystalline - materials. It includes many pair styles specific to these systems, including - for reactive DPD, where each particle has internal state for multiple species - and a coupled set of chemical reaction ODEs are integrated each timestep. - Highly accurate time integrators for isothermal, isoenergetic, isobaric and - isenthalpic conditions are included. These enable long timesteps via the - Shardlow splitting algorithm. - -
-
off (default)
-
on
-
-
PKG_USER-DRUDE - Fixes, pair styles, and a compute to simulate thermalized Drude oscillators as - a model of polarization. - -
-
off (default)
-
on
-
-
PKG_USER-EFF - EFF stands for electron force field which allows a classical MD code to model - electrons as particles of variable radius. This package contains atom, pair, - fix and compute styles which implement the eFF as described in A. - Jaramillo-Botero, J. Su, Q. An, and W.A. Goddard III, JCC, 2010. The eFF - potential was first introduced by Su and Goddard, in 2007. - -
-
off (default)
-
on
-
-
PKG_USER-FEP - FEP stands for free energy perturbation. This package provides methods for - performing FEP simulations by using a fix adapt/fep command with soft-core - pair potentials, which have a “soft” in their style name. - -
-
off (default)
-
on
-
-
PKG_USER-H5MD - H5MD stands for HDF5 for MD. HDF5 is a portable, binary, self-describing file - format, used by many scientific simulations. H5MD is a format for molecular - simulations, built on top of HDF5. This package implements a dump h5md command - to output LAMMPS snapshots in this format. - -
-
off (default)
-
on
-
-
PKG_USER-LB - Fixes which implement a background Lattice-Boltzmann (LB) fluid, which can be - used to model MD particles influenced by hydrodynamic forces. - -
-
off (default)
-
on
-
-
PKG_USER-MANIFOLD - Several fixes and a “manifold” class which enable simulations of particles - constrained to a manifold (a 2D surface within the 3D simulation box). This is - done by applying the RATTLE constraint algorithm to formulate single-particle - constraint functions g(xi,yi,zi) = 0 and their derivative (i.e. the normal of - the manifold) n = grad(g). - -
-
off (default)
-
on
-
-
PKG_USER-MEAMC - A pair style for the modified embedded atom (MEAM) potential translated from - the Fortran version in the MEAM package to plain C++. In contrast to the MEAM - package, no library needs to be compiled and the pair style can be - instantiated multiple times. - -
-
off (default)
-
on
-
-
PKG_USER-MESO - Several extensions of the the dissipative particle dynamics (DPD) method. - Specifically, energy-conserving DPD (eDPD) that can model non-isothermal - processes, many-body DPD (mDPD) for simulating vapor-liquid coexistence, and - transport DPD (tDPD) for modeling advection-diffusion-reaction systems. The - equations of motion of these DPD extensions are integrated through a modified - velocity-Verlet (MVV) algorithm. - -
-
off (default)
-
on
-
-
PKG_USER-MGPT - A pair style which provides a fast implementation of the quantum-based MGPT - multi-ion potentials. The MGPT or model GPT method derives from - first-principles DFT-based generalized pseudopotential theory (GPT) through a - series of systematic approximations valid for mid-period transition metals - with nearly half-filled d bands. The MGPT method was originally developed by - John Moriarty at LLNL. The pair style in this package calculates forces and - energies using an optimized matrix-MGPT algorithm due to Tomas Oppelstrup at - LLNL. - -
-
off (default)
-
on
-
-
PKG_USER-MISC - A potpourri of (mostly) unrelated features contributed to LAMMPS by users. - Each feature is a single fix, compute, pair, bond, angle, dihedral, improper, - or command style. - -
-
off (default)
-
on
-
-
PKG_USER-MOFFF - Pair, angle and improper styles needed to employ the MOF-FF force field by - Schmid and coworkers with LAMMPS. MOF-FF is a first principles derived force - field with the primary aim to simulate MOFs and related porous framework - materials, using spherical Gaussian charges. It is described in S. Bureekaew - et al., Phys. Stat. Sol. B 2013, 250, 1128-1141. For the usage of MOF-FF see - the example in the example directory as well as the MOF+ website. - -
-
off (default)
-
on
-
-
PKG_USER-MOLFILE - A dump molfile command which uses molfile plugins that are bundled with the - VMD molecular visualization and analysis program, to enable LAMMPS to dump - snapshots in formats compatible with various molecular simulation tools. - -
-
off (default)
-
on
-
-
PKG_USER-NETCDF - Dump styles for writing NetCDF formatted dump files. NetCDF is a portable, - binary, self-describing file format developed on top of HDF5. The file - contents follow the AMBER NetCDF trajectory conventions - (http://ambermd.org/netcdf/nctraj.xhtml), but include extensions. - -
-
off (default)
-
on
-
-
PKG_USER-PHONON - A fix phonon command that calculates dynamical matrices, which can then be - used to compute phonon dispersion relations, directly from molecular dynamics - simulations. - -
-
off (default)
-
on
-
-
PKG_USER-PLUMED - The fix plumed command allows you to use the PLUMED free energy plugin for molecular dynamics to analyze and bias your LAMMPS trajectory on the fly. The PLUMED library is called from within the LAMMPS input script by using the fix plumed command. - -
-
off (default)
-
on
-
-
PKG_USER-PTM - A compute ptm/atom command that calculates local structure characterization using the Polyhedral Template Matching methodology. - -
-
off (default)
-
on
-
-
PKG_USER-QTB - Two fixes which provide a self-consistent quantum treatment of vibrational modes in a classical molecular dynamics simulation. By coupling the MD simulation to a colored thermostat, it introduces zero point energy into the system, altering the energy power spectrum and the heat capacity to account for their quantum nature. This is useful when modeling systems at temperatures lower than their classical limits or when temperatures ramp across the classical limits in a simulation. - -
-
off (default)
-
on
-
-
PKG_USER-QUIP - A pair_style quip command which wraps the QUIP libAtoms library, which - includes a variety of interatomic potentials, including Gaussian Approximation - Potential (GAP) models developed by the Cambridge University group. - -
-
off (default)
-
on
-
-
PKG_USER-QMMM - A fix qmmm command which allows LAMMPS to be used in a QM/MM simulation, - currently only in combination with the Quantum ESPRESSO package. - -
-
off (default)
-
on
-
-
PKG_USER-REAXC - A pair style which implements the ReaxFF potential in C/C++ (in contrast to - the REAX package and its Fortran library). ReaxFF is universal reactive force - field. See the src/USER-REAXC/README file for more info on differences between - the two packages. Also two fixes for monitoring molecules as bonds are created - and destroyed. - -
-
off (default)
-
on
-
-
PKG_USER-SCAFACOS - A KSpace style which wraps the ScaFaCoS Coulomb solver library to compute long-range Coulombic interactions. - -
-
off (default)
-
on
-
-
PKG_USER-SDPD - A pair style for smoothed dissipative particle dynamics (SDPD), which is an - extension of smoothed particle hydrodynamics (SPH) to mesoscale where thermal - fluctuations are important (see the USER-SPH package). Also two fixes for - moving and rigid body integration of SPH/SDPD particles (particles of - atom_style meso). -
-
off (default)
-
on
-
-
PKG_USER-SMD - An atom style, fixes, computes, and several pair styles which implements - smoothed Mach dynamics (SMD) for solids, which is a model related to smoothed - particle hydrodynamics (SPH) for liquids (see the USER-SPH package). - -
-
off (default)
-
on
-
-
PKG_USER-SMTBQ - A pair style which implements a Second Moment Tight Binding model with QEq - charge equilibration (SMTBQ) potential for the description of ionocovalent - bonds in oxides. - -
-
off (default)
-
on
-
-
PKG_USER-SPH - An atom style, fixes, computes, and several pair styles which implements - smoothed particle hydrodynamics (SPH) for liquids. See the related USER-SMD - package package for smooth Mach dynamics (SMD) for solids. - -
-
off (default)
-
on
-
-
PKG_USER-TALLY - Several compute styles that can be called when pairwise interactions are - calculated to tally information (forces, heat flux, energy, stress, etc) about - individual interactions. - -
-
off (default)
-
on
-
-
PKG_USER-UEF - A fix style for the integration of the equations of motion under extensional - flow with proper boundary conditions, as well as several supporting compute - styles and an output option. - -
-
off (default)
-
on
-
-
PKG_USER-VTK - A dump vtk command which outputs snapshot info in the VTK format, enabling - visualization by Paraview or other visualization packages. - -
-
off (default)
-
on
-
-
PKG_USER-YAFF - Some potentials that are also implemented in the Yet Another Force Field (YAFF) code. - The expressions and their use are discussed in the following papers: - - -
-
off (default)
-
on
-
-
- -## Package-Specific Configuration Options - -### KSPACE Package - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
FFT -

FFT library for KSPACE package

-

If either MKL or FFTW is selected cmake will try to locate - these libraries automatically. To control which one should be used please see - the options below for each FFT library. Otherwise it will default to KISS - FFT.

-
-
-
FFTW3
-
FFTW2
-
MKL
-
KISS (default)
-
-
FFT_SINGLEUse single-precision floating-point in FFT -
-
off (default = double precision)
-
on
-
-
FFT_PACKOptimization for FFT -
-
array (default)
-
pointer
-
memcpy
-
-
- -### FFTW3 - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
FFTW3_INCLUDE_DIRSpath to FFTW3 include files -
FFTW3_LIBRARIESlist of paths to FFTW3 libraries -
- -### MKL - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
MKL_INCLUDE_DIRSpath to MKL include files -
MKL_LIBRARIESlist of paths to MKL libraries -
- -### BLAS - -See [FindBLAS documentation](https://cmake.org/cmake/help/latest/module/FindBLAS.html) - -### LAPACK - -See [FindLAPACK documentation](https://cmake.org/cmake/help/latest/module/FindLAPACK.html) - -### PYTHON Package - -See [FindPYTHON documentation](https://cmake.org/cmake/help/latest/module/FindPython.html) - -### USER-INTEL Package - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
INTEL_ARCHTarget architecture for USER-INTEL package -
-
cpu (default)
-
knl
-
-
INTEL_LRT_MODEHow to support Long-range thread mode in Verlet integration -
-
threads (default, if pthreads available)
-
none (default, if pthreads not available)
-
c++11
-
-
- -### GPU Package -The GPU package builds a support library which can either use OpenCL or CUDA as -target API. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
GPU_APIAPI used by GPU package -
-
opencl (default)
-
cuda
-
-
GPU_PRECPrecision size used by GPU package kernels -
-
mixed (default)
-
single
-
double
-
-
OCL_TUNE (OpenCL only)Tuning target for OpenCL driver code -
-
generic (default)
-
intel (Intel CPU)
-
phi (Intel Xeon Phi)
-
fermi (NVIDIA)
-
kepler (NVIDIA)
-
cypress (AMD)
-
-
GPU_ARCH (CUDA only)CUDA SM architecture targeted by GPU package -
-
sm_20 (Fermi)
-
sm_30 (Kepler) (default)
-
sm_50 (Maxwell)
-
sm_60 (Pascal)
-
sm_70 (Volta)
-
sm_75 (Turing)
-
-
CUDPP_OPT (CUDA only)Enable CUDA Performance Primitives Optimizations -
-
on (default)
-
off
-
-
CUDA_MPS_SUPPORT (CUDA only)Enable tweaks for running with Nvidia CUDA Multi-process services daemon -
-
on
-
off (default)
-
-
BIN2C (CUDA only)Path to bin2c executable, will automatically pick up the first one in your $PATH.(automatic)
- -### KIM Package - -Requires installation of the KIM library with API v2 - -If `DOWNLOAD_KIM` is set, the KIM library will be downloaded and built inside -the CMake build directory. If the KIM library is already on your system (in a -location CMake cannot find it), set the `PKG_CONFIG_PATH` environment variable -so that `libkim-api` can be found. - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_KIMDownload KIM API v2 and compile it as part of the build. -
-
off (default)
-
on
-
-
- -### MESSAGE Package - -This package can optionally include support for messaging via sockets, using the open-source [ZeroMQ library](http://zeromq.org/), which must be installed on your system. - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
MESSAGE_ZMQBuild with ZeroMQ support -
-
off (default)
-
on
-
-
ZMQ_LIBRARY - ZMQ library file (only needed if at custom location) - -
ZMG_INCLUDE_DIR - Provide include directory of existing ZMQ installation (only needed if at custom location) - -
- -### MSCG Package - -Requires installation of the MSCG library - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_MSCGDownload MSCG and compile it as part of the build -
-
off (default)
-
on
-
-
MSCG_LIBRARY - MSCG library file (only needed if at custom location) - -
MSCG_INCLUDE_DIR - Provide include directory of existing MSCG installation (only needed if at custom location) - -
- -### VORONOI Package - -Requires installation of the Voro++ library - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_VORODownload Voro++ and compile it as part of the build -
-
off (default)
-
on
-
-
VORO_LIBRARY - Voro++ library file (only needed if at custom location) - -
VORO_INCLUDE_DIR - Provide include directory of existing Voro++ installation (only needed if at custom location) - -
- -### USER-COLVARS Package - -Requires a C++11 compiler to compile with the Lepton library included. - - - - - - - - - - - - - - - -
OptionDescriptionValues
COLVARS_LEPTONEnable the use of the Lepton library inside the Colvars library. - -
-
on (default)
-
off
-
-
- -### USER-LATTE Package - -Requires installation of the LATTE library - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_LATTEDownload LATTE and compile it as part of the build -
-
off (default)
-
on
-
-
LATTE_LIBRARY - LATTE library file (only needed if at custom location) - -
- -### USER-PLUMED Package - -Requires installation of the PLUMED library - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_PLUMEDDownload PLUMED and compile it as part of the build -
-
off (default)
-
on
-
-
PLUMED_MODE - Determines the linkage mode for the PLUMED library. - -
-
static (default)
-
shared
-
runtime
-
-
- -### USER-LATTE Package - -Requires installation of the LATTE library - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_LATTEDownload LATTE and compile it as part of the build -
-
off (default)
-
on
-
-
LATTE_LIBRARY - LATTE library file (only needed if at custom location) - -
- -### USER-SMD Package - -Requires installation of the Eigen3 library - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_EIGEN3Download Eigen3 and compile it as part of the build -
-
off (default)
-
on
-
-
EIGEN3_INCLUDE_DIR - Provide include directory of existing Eigen3 installation (only needed if at custom location) - -
- - -### USER-SCAFACOS Package - -To build with this package, you must download and build the [ScaFaCoS Coulomb solver library](http://www.scafacos.de/) - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
DOWNLOAD_SCAFACOSDownload SCAFACOS and compile it as part of the build -
-
off (default)
-
on
-
-
SCAFACOS_LIBRARY - SCAFACOS library file (only needed if at custom location) - -
SCAFACOS_INCLUDE_DIR - SCAFACOS include directory (only needed if at custom location) - -
- -## Optional Features - -### zlib support - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
ZLIB_INCLUDE_DIR -
ZLIB_LIBRARIES -
- -### JPEG support - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
WITH_JPEGEnables/Disable JPEG support in LAMMPS -
-
yes (default, if found)
-
no
-
-
JPEG_INCLUDE_DIR -
JPEG_LIBRARIES -
- -### PNG support -(requires zlib support) - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
WITH_PNGEnables/Disable PNG support in LAMMPS -
-
yes (default, if found)
-
no
-
-
PNG_INCLUDE_DIR -
PNG_LIBRARIES -
- -### GZIP support - -requires `gzip` to be in your `PATH` - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
WITH_GZIPEnables/Disable GZIP support in LAMMPS -
-
yes (default, if found)
-
no
-
-
GZIP_EXECUTABLEPath to gzip executable, will automatically pick up the first one in your $PATH.(automatic)
- -### FFMPEG support - -requires `ffmpeg` to be in your `PATH` - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
WITH_FFMPEGEnables/Disable FFMPEG support in LAMMPS -
-
yes (default, if found)
-
no
-
-
FFMPEG_EXECUTABLEPath to ffmpeg executable, will automatically pick up the first one in your $PATH.(automatic)
- - -## Compilers - -By default, `cmake` will use your environment C/C++/Fortran compilers for a -build. It uses the `CC`, `CXX` and `FC` environment variables to detect which -compilers should be used. However, these values will be cached after the first -run of `cmake`. Subsequent runs of `cmake` will ignore changes in these -environment variables. To ensure the correct values are used you avoid the -cache by setting the `CMAKE_C_COMPILER`, `CMAKE_CXX_COMPILER`, -`CMAKE_Fortran_COMPILER` options directly. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionDefault
CMAKE_C_COMPILERC Compiler which should be used by CMakevalue of `CC` environment variable at first `cmake` run
CMAKE_CXX_COMPILERC++ compiler which should be used by CMake - value of `CXX` environment variable at first `cmake` run -
CMAKE_Fortran_COMPILERC++ compiler which should be used by CMake - value of `FC` environment variable at first `cmake` run -
CXX_COMPILER_LAUNCHERCMake will run this tool and pass the compiler and its arguments to the tool. Some example tools are distcc and ccache. - (empty) -
- -### Building with GNU Compilers - -```bash -cmake -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_Fortran_COMPILER=gfortran ../cmake -``` - -### Building with Intel Compilers - -```bash -cmake -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icpc -D CMAKE_Fortran_COMPILER=ifort ../cmake -``` - - -### Building with LLVM/Clang Compilers - -```bash -cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=flang ../cmake -``` - -## LAMMPS Developer Options - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescriptionValues
ENABLE_TESTINGControl wheather to add tests via CTest -
-
off (default)
-
on
-
-
LAMMPS_TESTING_SOURCE_DIRCustom location of lammps-testing repository (optional). If not specified it will download it via Git -
LAMMPS_TESTING_GIT_TAGIf lammps-testing repository is cloned, this is the tag/commit that will be checked out -
-
master (default)
-
-
ENABLE_COVERAGEEnables code coverage support via gcov and adds a gcovr build target to generate a coverage report. -
-
off (default)
-
on
-
-
ENABLE_SANITIZE_ADDRESSEnables Address Sanitizer support when compiling using GCC or Clang for detecting memory leaks in binaries while running them. See https://clang.llvm.org/docs/AddressSanitizer.html -
-
off (default)
-
on
-
-
ENABLE_SANITIZE_UNDEFINEDEnables Undefined Behavior Sanitizer support when compiling using GCC or Clang for detecting code that is running into undefined behavior of the language. See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html -
-
off (default)
-
on
-
-
ENABLE_SANITIZE_THREADEnables Thread Sanitizer support when compiling using GCC or Clang for detecting data races in binaries while running them. See https://clang.llvm.org/docs/ThreadSanitizer.html -
-
off (default)
-
on
-
-
diff --git a/cmake/pkgconfig/liblammps.pc.in b/cmake/pkgconfig/liblammps.pc.in index 96dab89161dab42f281041c886f4f4681a85a528..ca2c6191b7846dc298021b60ba2b95518b3859e2 100644 --- a/cmake/pkgconfig/liblammps.pc.in +++ b/cmake/pkgconfig/liblammps.pc.in @@ -27,6 +27,6 @@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library URL: http://lammps.sandia.gov Version: @PROJECT_VERSION@ Requires: -Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@ +Libs: -L${libdir} -llammps@LAMMPS_MACHINE@ Libs.private: -lm Cflags: -I${includedir} @LAMMPS_API_DEFINES@ diff --git a/cmake/presets/clang.cmake b/cmake/presets/clang.cmake index e2b1e02cc9a385d362711dc00c7f2c6d5df8a44f..bfc355669d4405b06f7eabfafa3fd24d5a86197e 100644 --- a/cmake/presets/clang.cmake +++ b/cmake/presets/clang.cmake @@ -2,7 +2,7 @@ set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE) set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE) -set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O2 -DNDEBG" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE) set(MPI_CXX "clang++" CACHE STRING "" FORCE) set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE) unset(HAVE_OMP_H_INCLUDE CACHE) diff --git a/cmake/presets/hip.cmake b/cmake/presets/hip.cmake new file mode 100644 index 0000000000000000000000000000000000000000..047c8e8eb0350a239e98ceb7f22b24a4a8495817 --- /dev/null +++ b/cmake/presets/hip.cmake @@ -0,0 +1,12 @@ +# preset that will enable hipcc plus gcc with support for MPI and OpenMP (on Linux boxes) + +set(CMAKE_CXX_COMPILER "hipcc" CACHE STRING "" FORCE) +set(CMAKE_C_COMPILER "gcc" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE) +unset(HAVE_OMP_H_INCLUDE CACHE) + +set(OpenMP_CXX "hipcc" CACHE STRING "" FORCE) +set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE) +set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE) +set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE) + diff --git a/cmake/presets/kokkos-cuda.cmake b/cmake/presets/kokkos-cuda.cmake new file mode 100644 index 0000000000000000000000000000000000000000..36d099479d4af80a02a7f845651aa7618ff690c0 --- /dev/null +++ b/cmake/presets/kokkos-cuda.cmake @@ -0,0 +1,11 @@ +# preset that enables KOKKOS and selects CUDA compilation with OpenMP +# enabled as well. This preselects CC 5.0 as default GPU arch, since +# that is compatible with all higher CC, but not the default CC 3.5 +set(PKG_KOKKOS ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_CUDA ON CACHE BOOL "" FORCE) +set(Kokkos_ARCH_MAXWELL50 on CACHE BOOL "" FORCE) +set(BUILD_OMP ON CACHE BOOL "" FORCE) +get_filename_component(NVCC_WRAPPER_CMD ${CMAKE_CURRENT_SOURCE_DIR}/../lib/kokkos/bin/nvcc_wrapper ABSOLUTE) +set(CMAKE_CXX_COMPILER ${NVCC_WRAPPER_CMD} CACHE FILEPATH "" FORCE) diff --git a/cmake/presets/kokkos-openmp.cmake b/cmake/presets/kokkos-openmp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..27d09f62cfc454fb031a1bac4c7fe48202bbf903 --- /dev/null +++ b/cmake/presets/kokkos-openmp.cmake @@ -0,0 +1,6 @@ +# preset that enables KOKKOS and selects OpenMP (only) compilation +set(PKG_KOKKOS ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "" FORCE) +set(BUILD_OMP ON CACHE BOOL "" FORCE) diff --git a/cmake/presets/kokkos-serial.cmake b/cmake/presets/kokkos-serial.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0208d2ee3a408f4e08313d33076ea27751266bbc --- /dev/null +++ b/cmake/presets/kokkos-serial.cmake @@ -0,0 +1,5 @@ +# preset that enables KOKKOS and selects serial compilation only +set(PKG_KOKKOS ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_OPENMP OFF CACHE BOOL "" FORCE) +set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "" FORCE) diff --git a/doc/Makefile b/doc/Makefile index 895a4aa90d837f80f66fb410f7e3cdcf05cdfe31..c1f299a2f7f19957e040d69648d2ac9d42f4719d 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -57,7 +57,7 @@ help: # ------------------------------------------ clean-all: clean - rm -rf $(BUILDDIR)/docenv $(BUILDDIR)/doctrees $(BUILDDIR)/mathjax + rm -rf $(BUILDDIR)/docenv $(BUILDDIR)/doctrees $(BUILDDIR)/mathjax Manual.pdf Developer.pdf clean: clean-spelling rm -rf html epub latex @@ -83,7 +83,7 @@ html: $(ANCHORCHECK) $(MATHJAX) @rm -rf html/JPG @cp -r src/PDF html/PDF @mkdir -p html/JPG - @cp `grep -A2 '\.\. .*image::' src/*.rst | grep ':target:' | sed -e 's,.*:target: JPG/,src/JPG/,' | sort | uniq` html/JPG/ + @cp `grep -A2 '\.\. .*\(image\|figure\)::' src/*.rst | grep ':target:' | sed -e 's,.*:target: JPG/,src/JPG/,' | sort | uniq` html/JPG/ @rm -rf html/PDF/.[sg]* @mkdir -p html/_static/mathjax @cp -r $(MATHJAX)/es5 html/_static/mathjax/ @@ -194,7 +194,7 @@ $(VENV): $(VIRTUALENV) -p $(PYTHON) $(VENV); \ . $(VENV)/bin/activate; \ pip install --upgrade pip; \ - pip install Sphinx==2.4.4; \ + pip install Sphinx; \ pip install sphinxcontrib-spelling ;\ pip install breathe; \ deactivate;\ diff --git a/doc/include-file-conventions.md b/doc/include-file-conventions.md index 132f2ec4eb899a8ba045428c49a96dc05c7c5142..1b8e79d71e5730611160b1562b3d5d4424fc723b 100644 --- a/doc/include-file-conventions.md +++ b/doc/include-file-conventions.md @@ -49,22 +49,15 @@ include files provided with LAMMPS are included with double quotes For headers declaring functions of the C-library, the corresponding C++ versions should be included (examples: `#include ` or -`#include `). However, these includes are limited to those defined -in the C++98 standard. Some files thus must use the older style until -the minimum C++ standard requirement of LAMMPS is lifted to C++11 or -even beyond (examples: `#include ` versus `#include ` -or `#include ` versus `#include `). +`#include ` instead of `#include ` or +`#include` ). ### C++ Standard Compliance -LAMMPS core files currently correspond to the C++98 standard. Files -requiring C++11 or later are only permitted in (optional) packages -and particularly packages that are not part of the list of commonly -used packages such as MOLECULE, KSPACE, MANYBODY, or RIGID. - -Also, LAMMPS uses the C-style stdio library for I/O instead of iostreams. -Since using both at the same time can cause problems, iostreams should -be avoided where possible. +LAMMPS core files use standard conforming C++ compatible with the +C++11 standard, unless explicitly noted. Also, LAMMPS uses the C-style +stdio library for I/O instead of iostreams. Since using both at the +same time can cause problems, iostreams should be avoided where possible. ### Lean Header Files diff --git a/doc/lammps.1 b/doc/lammps.1 index d2851603c6d9d823532529d1a5fed82debf126ba..fd228f892fe1393b839415c375b42a23d64df523 100644 --- a/doc/lammps.1 +++ b/doc/lammps.1 @@ -1,4 +1,4 @@ -.TH LAMMPS "19 March 2020" "2020-03-19" +.TH LAMMPS "15 April 2020" "2020-04-15" .SH NAME .B LAMMPS \- Molecular Dynamics Simulator. diff --git a/doc/src/.gitignore b/doc/src/.gitignore index e0b9693457ca0dfc081cfc7da4d53a6fa6286b94..afe24cc10c7128a38123ac9eb6095acc3e239b30 100644 --- a/doc/src/.gitignore +++ b/doc/src/.gitignore @@ -1,3 +1 @@ -/Eqs -/JPG /false_positives.txt diff --git a/doc/src/Build.rst b/doc/src/Build.rst index c96fb0b5b9cb72502c2c7ca2fa7e6b748b2f7b7f..441af79009ad86069ee866aec82e001056fab0e2 100644 --- a/doc/src/Build.rst +++ b/doc/src/Build.rst @@ -1,12 +1,14 @@ Build LAMMPS ************ -LAMMPS can be built as an executable or library from source code via -either traditional makefiles (which may require manual editing) -for use with GNU make or gmake, or a build environment generated by CMake -(Unix Makefiles, Xcode, Visual Studio, KDevelop or more). As an -alternative you can download a package with pre-built executables -as described on the :doc:`Install ` doc page. +LAMMPS is built as a library and an executable from source code using +either traditional makefiles for use with GNU make (which may require +manual editing), or using a build environment generated by CMake (Unix +Makefiles, Ninja, Xcode, Visual Studio, KDevelop, CodeBlocks and more). + +As an alternative you can download a package with pre-built executables +or automated build trees as described on the :doc:`Install ` +doc page. .. toctree:: :maxdepth: 1 diff --git a/doc/src/Build_basics.rst b/doc/src/Build_basics.rst index 8ad48b0810b87147bce2ea8ecc0965fa3ccc46c5..335c1a51899836d3f818aebdb2f89c696111bfde 100644 --- a/doc/src/Build_basics.rst +++ b/doc/src/Build_basics.rst @@ -6,7 +6,8 @@ CMake and make: * :ref:`Serial vs parallel build ` * :ref:`Choice of compiler and compile/link options ` -* :ref:`Build LAMMPS as an executable or a library ` +* :ref:`Build the LAMMPS executable and library ` +* :ref:`Including and removing debug support ` * :ref:`Build the LAMMPS documentation ` * :ref:`Install LAMMPS after a build ` @@ -15,7 +16,7 @@ CMake and make: .. _serial: Serial vs parallel build -------------------------------------- +------------------------ LAMMPS is written to use the ubiquitous `MPI (Message Passing Interface) `_ library API @@ -28,8 +29,8 @@ MPI STUBS library. Independent of the distributed memory MPI parallelization, parts of LAMMPS are also written with support for shared memory parallelization -using the OpenMP threading standard. A more detailed discussion of that -is below. +using the `OpenMP `_ threading +standard. A more detailed discussion of that is below. **CMake build**\ : @@ -41,7 +42,7 @@ is below. # no default value The executable created by CMake (after running make) is named ``lmp`` unless -the LAMMPS_MACHINE option is set. When setting ``LAMMPS_MACHINE=name`` +the ``LAMMPS_MACHINE`` option is set. When setting ``LAMMPS_MACHINE=name`` the executable will be called ``lmp_name``. Using ``BUILD_MPI=no`` will enforce building a serial executable using the MPI STUBS library. @@ -55,18 +56,20 @@ The build with traditional makefiles has to be done inside the source folder ``s make serial # serial build, produces lmp_serial using Makefile/serial make mybox # uses Makefile.mybox to produce lmp_mybox -Any "make machine" command will look up the make settings from a file -Makefile.machine, create a folder Obj_machine with all objects and -generated files and an executable called ``lmp_machine``\ . The standard -parallel build with ``make mpi`` assumes a standard MPI installation with -MPI compiler wrappers where all necessary compiler and linker flags to -get access and link with the suitable MPI headers and libraries are set -by the wrapper programs. For other cases or the serial build, you have -to adjust the make file variables ``MPI_INC``, ``MPI_PATH``, ``MPI_LIB`` -as well as ``CC`` and ``LINK``\ . To enable OpenMP threading usually -a compiler specific flag needs to be added to the compile and link -commands. For the GNU compilers, this is ``-fopenmp``\ , which can be -added to the ``CC`` and ``LINK`` makefile variables. +Any ``make machine`` command will look up the make settings from a file +``Makefile.machine`` in the folder ``src/MAKE`` or one of its +sub-directories ``MINE``, ``MACHINES``, or ``OPTIONS``, create a folder +``Obj_machine`` with all objects and generated files and an executable +called ``lmp_machine``\ . The standard parallel build with ``make mpi`` +assumes a standard MPI installation with MPI compiler wrappers where all +necessary compiler and linker flags to get access and link with the +suitable MPI headers and libraries are set by the wrapper programs. For +other cases or the serial build, you have to adjust the make file +variables ``MPI_INC``, ``MPI_PATH``, ``MPI_LIB`` as well as ``CC`` and +``LINK``\ . To enable OpenMP threading usually a compiler specific flag +needs to be added to the compile and link commands. For the GNU +compilers, this is ``-fopenmp``\ , which can be added to the ``CC`` and +``LINK`` makefile variables. For the serial build the following make variables are set (see src/MAKE/Makefile.serial): @@ -80,18 +83,19 @@ For the serial build the following make variables are set (see src/MAKE/Makefile You also need to build the STUBS library for your platform before making LAMMPS itself. A ``make serial`` build does this for you automatically, -otherwise, type ``make mpi-stubs`` from the src directory, or ``make`` from -the src/STUBS dir. If the build fails, you will need to edit the -STUBS/Makefile for your platform. The stubs library does not provide -MPI/IO functions required by some LAMMPS packages, e.g. MPIIO or USER-LB, -and thus is not compatible with those packages. +otherwise, type ``make mpi-stubs`` from the src directory, or ``make`` +from the ``src/STUBS`` dir. If the build fails, you may need to edit +the ``STUBS/Makefile`` for your platform. The stubs library does not +provide MPI/IO functions required by some LAMMPS packages, +e.g. ``MPIIO`` or ``USER-LB``, and thus is not compatible with those +packages. .. note:: The file ``src/STUBS/mpi.c`` provides a CPU timer function called - MPI_Wtime() that calls gettimeofday() . If your operating system - does not support gettimeofday() , you will need to insert code to - call another timer. Note that the ANSI-standard function clock() + ``MPI_Wtime()`` that calls ``gettimeofday()``. If your operating system + does not support ``gettimeofday()``, you will need to insert code to + call another timer. Note that the ANSI-standard function ``clock()`` rolls over after an hour or so, and is therefore insufficient for timing long LAMMPS simulations. @@ -111,20 +115,22 @@ self-installed MPICH or OpenMPI, so you should study the provided documentation to find out how to build and link with it. The majority of OpenMP (threading) support in LAMMPS is provided by the -USER-OMP package; see the :doc:`Speed omp ` doc page for -details. The USER-INTEL package also includes OpenMP threading (it is -compatible with USER-OMP) and adds vectorization support when compiled -with compatible compilers, in particular the Intel compilers on top of -OpenMP. Also, the KOKKOS package can be compiled to include OpenMP -threading. +``USER-OMP`` package; see the :doc:`Speed omp ` doc page for +details. The ``USER-INTEL`` package also includes OpenMP threading (it +is compatible with ``USER-OMP`` and will usually fall back on styles +from that package, if a ``USER-INTEL`` does not exist) and adds +vectorization support when compiled with compatible compilers, in +particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS`` +package can be compiled to include OpenMP threading. In addition, there are a few commands in LAMMPS that have native OpenMP -support included as well. These are commands in the MPIIO, SNAP, -USER-DIFFRACTION, and USER-DPD packages. In addition some packages -support OpenMP threading indirectly through the libraries they interface -to: e.g. LATTE and USER-COLVARS. See the :doc:`Packages details -` doc page for more info on these packages and the doc -pages for their respective commands for OpenMP threading info. +support included as well. These are commands in the ``MPIIO``, +``SNAP``, ``USER-DIFFRACTION``, and ``USER-DPD`` packages. In addition +some packages support OpenMP threading indirectly through the libraries +they interface to: e.g. ``LATTE``, ``KSPACE``, and ``USER-COLVARS``. +See the :doc:`Packages details ` doc page for more +info on these packages and the doc pages for their respective commands +for OpenMP threading info. For CMake, if you use ``BUILD_OMP=yes``, you can use these packages and turn on their native OpenMP support and turn on their native OpenMP @@ -142,14 +148,15 @@ please refer to its documentation. **OpenMP Compiler compatibility info**\ : Some compilers do not fully support the ``default(none)`` directive -and others (e.g. GCC version 9 and beyond) may implement OpenMP 4.0 -semantics, which are incompatible with the OpenMP 3.1 semantics used -in LAMMPS (for maximal compatibility with compiler versions in use). -In those case, all ``default(none)`` directives (which aid in detecting -incorrect and unwanted sharing) can be replaced with ``default(shared)`` -while dropping all ``shared()`` directives. The script -'src/USER-OMP/hack_openmp_for_pgi_gcc9.sh' can be used to automate -this conversion. +and others (e.g. GCC version 9 and beyond, Clang version 10 and later) +may implement strict OpenMP 4.0 and later semantics, which are incompatible +with the OpenMP 3.1 semantics used in LAMMPS for maximal compatibility +with compiler versions in use. If compilation with OpenMP enabled fails +because of your compiler requiring strict OpenMP 4.0 semantic, you can +change the behavior by adding ``-D LAMMPS_OMP_COMPAT=4`` to the ``LMP_INC`` +variable in your makefile, or add it to the command line while configuring +with CMake. CMake will detect the suitable setting for the GNU, Clang, +and Intel compilers. ---------- @@ -158,15 +165,18 @@ this conversion. Choice of compiler and compile/link options --------------------------------------------------------- -The choice of compiler and compiler flags can be important for +The choice of compiler and compiler flags can be important for maximum performance. Vendor provided compilers for a specific hardware can produce faster code than open-source compilers like the GNU compilers. -On x86 hardware most popular compilers are quite similar in performance -of C/C++ code at high optimization levels. When using the USER-INTEL -package, there is a distinct advantage in using the `Intel C++ compiler -`_ due to much improved vectorization through SSE and AVX -instructions on compatible hardware as the source code includes changes -and compiler directives to enable high degrees of vectorization. +On the most common x86 hardware most popular C++ compilers are quite +similar in performance of C/C++ code at high optimization levels. When +using the ``USER-INTEL`` package, there is a distinct advantage in using +the `Intel C++ compiler `_ due to much improved vectorization +through SSE and AVX instructions on compatible hardware as the source +code includes changes and Intel compiler specific directives to enable +high degrees of vectorization. This may change over time as equivalent +vectorization directives are included into OpenMP standard revisions and +other compilers adopt them. .. _intel: https://software.intel.com/en-us/intel-compilers @@ -177,17 +187,20 @@ LAMMPS. **CMake build**\ : -By default CMake will use a compiler it finds and it will add -optimization flags appropriate to that compiler and any -:doc:`accelerator packages ` you have included in the -build. - -You can tell CMake to look for a specific compiler with these variable -settings. Likewise you can specify the corresponding ``CMAKE_*_FLAGS`` -variables if you want to experiment with alternate optimization flags. -You should specify all 3 compilers, so that the small number of LAMMPS -source files written in C or Fortran are built with a compiler consistent -with the one used for all the C++ files: +By default CMake will use a compiler it finds according to internal +preferences and it will add optimization flags appropriate to that +compiler and any :doc:`accelerator packages ` you have +included in the build. + +You can tell CMake to look for a specific compiler with setting CMake +variable during configuration. For a few common choices, there are also +presets in the ``cmake/presets`` folder. For convenience, there is a +``CMAKE_TUNE_FLAGS`` variable that can be set to apply global compiler +options. More on that below, but you can also specify the corresponding +``CMAKE_*_FLAGS`` variables individually if you want to experiment with +alternate optimization flags. You should specify all 3 compilers, so +that the (few) LAMMPS source files written in C or Fortran are built +with a compiler consistent with the one used for the C++ files: .. code-block:: bash @@ -210,16 +223,17 @@ A few example command lines are: # Building with LLVM/Clang Compilers: cmake ../cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang -For compiling with the Clang/LLVM compilers a special CMake preset is -included that can be loaded with `-C ../cmake/presets/clang.cmake`. +For compiling with the Clang/LLVM compilers a CMake preset is provided that +can be loaded with `-C ../cmake/presets/clang.cmake`. Similarly, +`-C ../cmake/presets/intel.cmake` should switch the -In addition you can set ``CMAKE_TUNE_FLAGS`` to specifically add compiler -flags to tune for optimal performance on given hosts. By default these are -initialized to some compiler specific flags, where known, to optimize the -LAMMPS executable with optimizations and instructions available on the host -where LAMMPS is compiled. For example, for Intel compilers this would be -``-xHost`` and for GNU compilers this would be ``-march=native``. To turn -these flags off, set ``-D CMAKE_TUNE_FLAGS=``. +In addition you can set ``CMAKE_TUNE_FLAGS`` to specifically add +compiler flags to tune for optimal performance on given hosts. By +default these are initialized to some compiler specific flags, to +optimize the LAMMPS executable with optimizations and instructions +available on the host where LAMMPS is compiled. For example, for Intel +compilers this would be ``-xHost`` and for GNU compilers this would be +``-march=native``. To turn these flags off, do ``-D CMAKE_TUNE_FLAGS=``. .. note:: @@ -235,11 +249,11 @@ these flags off, set ``-D CMAKE_TUNE_FLAGS=``. The "compiler/linker settings" section of a Makefile.machine lists compiler and linker settings for your C++ compiler, including optimization flags. For a parallel build it is recommended to use -mpicxx or mpiCC, since these compiler wrappers will include a variety of -settings appropriate for your MPI installation and thus avoiding the -guesswork of finding the right flags. +``mpicxx`` or ``mpiCC``, since these compiler wrappers will include a +variety of settings appropriate for your MPI installation and thus +avoiding the guesswork of finding the right flags. -Parallel build (see src/MAKE/Makefile.mpi): +Parallel build (see ``src/MAKE/Makefile.mpi``): .. code-block:: bash @@ -248,7 +262,7 @@ Parallel build (see src/MAKE/Makefile.mpi): LINK = mpicxx LINKFLAGS = -g -O -Serial build (see src/MAKE/Makefile.serial): +Serial build with GNU gcc (see ``src/MAKE/Makefile.serial``): .. code-block:: make @@ -257,17 +271,35 @@ Serial build (see src/MAKE/Makefile.serial): LINK = g++ LINKFLAGS = -g -O + .. note:: - If you build LAMMPS with any :doc:`accelerator packages ` - included, there may be specific optimization flags that are either - required or recommended to enable required features and to achieve - optimal performance. You need to include these in the CCFLAGS and - LINKFLAGS settings above. For details, see the individual package - doc pages listed on the :doc:`Speed packages ` doc - page. Or examine these files in the src/MAKE/OPTIONS directory. - They correspond to each of the 5 accelerator packages and their - hardware variants: + If compilation stops with a message like the following: + + .. code-block:: + + g++ -g -O3 -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64 -I../STUBS -c ../main.cpp + In file included from ../pointers.h:24:0, + from ../input.h:17, + from ../main.cpp:16: + ../lmptype.h:34:2: error: #error LAMMPS requires a C++11 (or later) compliant compiler. Enable C++11 compatibility or upgrade the compiler. + + then you have either an unsupported (old) compiler or you have to + turn on C++11 mode. The latter applies to GCC 4.8.x shipped with + RHEL 7.x and CentOS 7.x. For those compilers, you need to add the + ``-std=c++11`` flag. Otherwise, you would have to install a newer + compiler that supports C++11; either as a binary package or through + compiling from source. + +If you build LAMMPS with any :doc:`accelerator packages +` included, there may be specific optimization flags +that are either required or recommended to enable required features and +to achieve optimal performance. You need to include these in the +CCFLAGS and LINKFLAGS settings above. For details, see the individual +package doc pages listed on the :doc:`Speed packages ` +doc page. Or examine these files in the src/MAKE/OPTIONS directory. +They correspond to each of the 5 accelerator packages and their hardware +variants: .. code-block:: bash @@ -284,69 +316,74 @@ Serial build (see src/MAKE/Makefile.serial): .. _exe: -Build LAMMPS as an executable or a library ----------------------------------------------------- +Build the LAMMPS executable and library +--------------------------------------- -LAMMPS can be built as either an executable or as a static or shared -library. The LAMMPS library can be called from another application or -a scripting language. See the :doc:`Howto couple ` doc +LAMMPS is always built as a library of C++ classes plus an executable. +The executable is a simple ``main()`` function that sets up MPI and then +creates a LAMMPS class instance from the LAMMPS library, which +will then process commands provided via a file or from the console +input. The LAMMPS library can also be called from another application +or a scripting language. See the :doc:`Howto couple ` doc page for more info on coupling LAMMPS to other codes. See the :doc:`Python ` doc page for more info on wrapping and running LAMMPS from Python via its library interface. **CMake build**\ : -For CMake builds, you can select through setting CMake variables which -files the compilation produces during the configuration step. If none -are set, defaults are applied. +For CMake builds, you can select through setting CMake variables between +building a shared or a static LAMMPS library and what kind of suffix is +added to them (in case you want to concurrently install multiple variants +of binaries with different settings). If none are set, defaults are applied. .. code-block:: bash - -D BUILD_EXE=value # yes (default) or no - -D BUILD_LIB=value # yes or no (default) -D BUILD_SHARED_LIBS=value # yes or no (default) - -D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc + -D LAMMPS_MACHINE=name # name = mpi, serial, mybox, titan, laptop, etc # no default value -Setting ``BUILD_EXE=no`` will not produce an executable. Setting -``BUILD_LIB=yes`` will produce a static library named ``liblammps.a``\ . -Setting both ``BUILD_LIB=yes`` and ``BUILD_SHARED_LIBS=yes`` will produce a -shared library named ``liblammps.so`` instead. If ``LAMMPS_LIB_SUFFIX=name`` -is set in addition, the name of the generated libraries will be changed to -either ``liblammps_name.a`` or ``liblammps_name.so``\ , respectively. +The compilation will always produce a LAMMPS library and an executable +linked to it. By default this will be a static library named +``liblammps.a`` and an executable named ``lmp`` Setting +``BUILD_SHARED_LIBS=yes`` will instead produce a shared library called +``liblammps.so`` (or ``liblammps.dylib`` or ``liblammps.dll`` depending +on the platform) If ``LAMMPS_MACHINE=name`` is set in addition, the name +of the generated libraries will be changed to either +``liblammps_name.a`` or ``liblammps_name.so``\ , respectively and the +executable will be called ``lmp_name``. **Traditional make**\ : With the traditional makefile based build process, the choice of the generated executable or library depends on the "mode" setting. -Several options are available and ``mode=exe`` is the default. +Several options are available and ``mode=static`` is the default. .. code-block:: bash make machine # build LAMMPS executable lmp_machine - make mode=exe machine # same as "make machine" - make mode=lib machine # build LAMMPS static lib liblammps_machine.a - make mode=shlib machine # build LAMMPS shared lib liblammps_machine.so - make mode=shexe machine # same as "mode=exe" but uses objects from "mode=shlib" - -The two "exe" builds will generate and executable ``lmp_machine``\ , -while the two library builds will create a file ``liblammps_machine.a`` -or ``liblammps_machine.so``\ . They will also create generic soft links, -named ``liblammps.a`` and ``liblammps.so``\ , which point to the specific + make mode=static machine # same as "make machine" + make mode=shared machine # build LAMMPS shared lib liblammps_machine.so instead + +The "static" build will generate a static library called +``liblammps_machine.a`` and an executable named ``lmp_machine``\ , while +the "shared" build will generate a shared library +``liblammps_machine.so`` instead and ``lmp_machine`` will be linked to +it. The build step will also create generic soft links, named +``liblammps.a`` and ``liblammps.so``\ , which point to the specific ``liblammps_machine.a/so`` files. **CMake and make info**\ : -Note that for a shared library to be usable by a calling program, all -the auxiliary libraries it depends on must also exist as shared -libraries. This will be the case for libraries included with LAMMPS, -such as the dummy MPI library in src/STUBS or any package libraries in -the lib/packages directory, since they are always built in a shared -library compatible way using the ``-fPIC`` switch. However, if a library -like MPI or FFTW does not exist as a shared library, the shared library -build may generate an error. This means you will need to install a -shared library version of the auxiliary library. The build instructions -for the library should tell you how to do this. +Note that for creating a shared library, all the libraries it depends on +must be compiled to be compatible with shared libraries. This should be +the case for libraries included with LAMMPS, such as the dummy MPI +library in ``src/STUBS`` or any package libraries in the ``lib`` +directory, since they are always built in a shared library compatible +way using the ``-fPIC`` compiler switch. However, if an auxiliary +library (like MPI or FFTW) does not exist as a compatible format, the +shared library linking step may generate an error. This means you will +need to install a compatible version of the auxiliary library. The +build instructions for that library should tell you how to do this. As an example, here is how to build and install the `MPICH library `_, a popular open-source version of MPI, as a shared library @@ -360,10 +397,12 @@ in the default /usr/local/lib location: make make install -You may need to use ``sudo make install`` in place of the last line if you -do not have write privileges for ``/usr/local/lib``. The end result should -be the file ``/usr/local/lib/libmpich.so``. On many Linux installations the -folder ``${HOME}/.local`` is an alternative to using ``/usr/local`` and does +You may need to use ``sudo make install`` in place of the last line if +you do not have write privileges for ``/usr/local/lib`` or use the +``--prefix`` configuration option to select an installation folder, +where you do have write access. The end result should be the file +``/usr/local/lib/libmpich.so``. On many Linux installations the folder +``${HOME}/.local`` is an alternative to using ``/usr/local`` and does not require superuser or sudo access. In that case the configuration step becomes: @@ -371,12 +410,41 @@ step becomes: ./configure --enable-shared --prefix=${HOME}/.local -Avoiding using "sudo" for custom software installation (i.e. from source +Avoiding to use "sudo" for custom software installation (i.e. from source and not through a package manager tool provided by the OS) is generally recommended to ensure the integrity of the system software installation. ---------- +.. _debug: + +Excluding or removing debug support +----------------------------------- + +By default the compilation settings will include the *-g* flag which +instructs the compiler to include debug information (e.g. which line of +source code a particular instruction correspond to). This can be +extremely useful in case LAMMPS crashes and can help to provide crucial +information in :doc:`tracking down the origin of a crash ` +and help the LAMMPS developers fix bugs in the source code. However, +this increases the storage requirements for object files, libraries, and +the executable 3-5 fold. + +If this is a concern, you can change the compilation settings or remove +the debug information from the LAMMPS executable: + +- **Traditional make**: edit your ``Makefile.`` to remove the + *-g* flag from the ``CCFLAGS`` and ``LINKFLAGS`` definitions +- **CMake**: use ``-D CMAKE_BUILD_TYPE=Release`` or explicitly reset + the applicable compiler flags (best done using the text mode or + graphical user interface). +- **Remove debug info**: If you are only concerned about the executable + being too large, you can use the ``strip`` tool (e.g. ``strip + lmp_serial``) to remove the debug information from the executable file. + Do not strip libraries or object files, as that will render them unusable. + +---------- + .. _doc: Build the LAMMPS documentation @@ -427,7 +495,8 @@ It is also possible to create the HTML version of the manual within the :doc:`CMake build directory `. The reason for this option is to include the installation of the HTML manual pages into the "install" step when installing LAMMPS after the CMake build via -``make install``. +``make install``. The documentation build is included in the default +build target, but can also be requested independently with ``make doc``. .. code-block:: bash diff --git a/doc/src/Build_cmake.rst b/doc/src/Build_cmake.rst index 7a60ffa43754e3cdef7a79180f282cd51e3d5f69..3473d8314353140566345ad1de107d0a67e9c288 100644 --- a/doc/src/Build_cmake.rst +++ b/doc/src/Build_cmake.rst @@ -1,205 +1,158 @@ Build LAMMPS with CMake ======================= -This page is a short summary of how to use CMake to build LAMMPS. -Details on CMake variables that enable specific LAMMPS build options -are given on the pages linked to from the :doc:`Build ` doc page. - -Richard Berger (Temple U) has also written a `more comprehensive guide `_ -for how to use CMake to build LAMMPS. If you are new to CMake it is a -good place to start. - ----------- - -Building LAMMPS with CMake is a two-step process. First you use CMake -to create a build environment in a new directory. On Linux systems, -this will be by default based on Unix-style makefiles for use with make. -Then you use the *make* command to build LAMMPS, which uses the created -Makefile(s). Example: - -.. code-block:: bash - - cd lammps # change to the LAMMPS distribution directory - mkdir build; cd build # create a new directory (folder) for build - cmake [options ...] ../cmake # configuration with (command-line) cmake - cmake --build . # compilation (or type "make") - -The ``cmake`` command will detect available features, enable selected -packages and options, and will generate the build environment. By default -this build environment will be created for "Unix Makefiles" on most -platforms and particularly on Linux. However, alternate build tools -(e.g. Ninja) and project files for Integrated Development Environments -(IDEs) like Eclipse, CodeBlocks, or Kate can be generated, too. This is -selected via the ``-G`` command line flag. Further details about features -and settings for CMake are in the `CMake online documentation `_ - -.. _cmake_doc: https://cmake.org/documentation/ - -For the rest of the documentation -we will assume that the build environment is generated for "Unix Makefiles" -and thus the ``make`` command will be used to compile and link LAMMPS as -indicated above, producing (by default) an executable called ``lmp`` and -a library called ``liblammps.a`` in the ``build`` folder. - -If your machine has multiple CPU cores (most do these days), you can -compile sources in parallel with a command like ``make -j N`` (with N -being the maximum number of concurrently executed tasks). Also -installation of the ``ccache`` (= Compiler Cache) software may speed -up repeated compilation, e.g. during code development, significantly. - -After compilation, you may optionally install the LAMMPS executable into -your system with: - -.. code-block:: bash - - make install # optional, copy LAMMPS executable & library elsewhere - -This will install the lammps executable and library (if requested), some -tools (if configured) and additional files like library API headers, -manpages, potential and force field files. The location of the installation -tree is set by the CMake variable "CMAKE_INSTALL_PREFIX" which defaults -to ${HOME}/.local - ----------- - -.. _cmake_build: - -There are 3 variants of the CMake command itself: a command-line version -(``cmake`` or ``cmake3``), a text mode UI version (``ccmake`` or ``ccmake3``), -and a graphical GUI version (``cmake-gui``). You can use any of them -interchangeably to configure and create the LAMMPS build environment. -On Linux all the versions produce a Makefile as their output by default. -See more details on each below. - -You can specify a variety of options with any of the 3 versions, which -affect how the build is performed and what is included in the LAMMPS -executable. Links to pages explaining all the options are listed on -the :doc:`Build ` doc page. - -You must perform the CMake build system generation and compilation in -a new directory you create. It can be anywhere on your local machine. -In these Build pages we assume that you are building in a directory -called ``lammps/build``. You can perform separate builds independently -with different options, so long as you perform each of them in a -separate directory you create. All the auxiliary files created by one -build process (executable, object files, log files, etc) are stored in -this directory or sub-directories within it that CMake creates. +This page describes how to use `CMake `_ in general +to build LAMMPS. Details for specific compile time settings and options +to enable and configure add-on packages are discussed with those +packages. Links to those pages on the :doc:`Build overview ` +page. + +The following text assumes some familiarity with CMake and focuses on +using the command line tool ``cmake`` and what settings are supported +for building LAMMPS. A more detailed tutorial on how to use ``cmake`` +itself, the text mode or graphical user interface, change the generated +output files for different build tools and development environments is +on a :doc:`separate page `. .. note:: - To perform a CMake build, no packages can be installed or a build - been previously attempted in the LAMMPS src directory by using ``make`` - commands to :doc:`perform a conventional LAMMPS build `. - CMake detects if this is the case and generates an error, telling you - to type ``make no-all purge`` in the src directory to un-install all - packages. The purge removes all the \*.h files auto-generated by - make. - -You must have CMake version 3.10 or later on your system to build -LAMMPS. Installation instructions for CMake are below. + LAMMPS currently requires that CMake version 3.10 or later is available; + version 3.12 or later is preferred. + +.. warning:: + + You must not mix the :doc:`traditional make based ` + LAMMPS build procedure with using CMake. Thus no packages may be + installed or a build been previously attempted in the LAMMPS source + directory by using ``make ``. CMake will detect if this is + the case and generate an error. To remove conflicting files from the + ``src`` you can use the command ``make no-all purge`` which will + un-install all packages and delete all auto-generated files. + + +Advantages of using CMake +^^^^^^^^^^^^^^^^^^^^^^^^^ + +CMake is an alternative to compiling LAMMPS in the traditional way +through :doc:`(manually customized) makefiles ` and a recent +addition to LAMMPS thanks to the efforts of Christoph Junghans (LANL) +and Richard Berger (Temple U). Using CMake has multiple advantages that +are specifically helpful for people with limited experience in compiling +software or for people that want to modify or extend LAMMPS. + +- CMake can detect available hardware, tools, features, and libraries + and adapt the LAMMPS default build configuration accordingly. +- CMake can generate files for different build tools and integrated + development environments (IDE). +- CMake supports customization of settings with a text mode or graphical + user interface. No knowledge of file formats or and complex command + line syntax required. +- All enabled components are compiled in a single build operation. +- Automated dependency tracking for all files and configuration options. +- Support for true out-of-source compilation. Multiple configurations + and settings with different choices of LAMMPS packages, settings, or + compilers can be configured and built concurrently from the same + source tree. +- Simplified packaging of LAMMPS for Linux distributions, environment + modules, or automated build tools like `Homebrew `_. +- Integration of automated regression testing (the LAMMPS side for that + is still under development). -After the initial build, if you edit LAMMPS source files, or add your -own new files to the source directory, you can just re-type make from -your build directory and it will re-compile only the files that have -changed. If you want to change CMake options you can run cmake (or -ccmake or cmake-gui) again from the same build directory and alter -various options; see details below. Or you can remove the entire build -folder, recreate the directory and start over. +.. _cmake_build: ----------- +Getting started +^^^^^^^^^^^^^^^ -**Command-line version of CMake**\ : +Building LAMMPS with CMake is a two-step process. First you use CMake +to generate a build environment in a new directory. For that purpose +you can use either the command-line utility ``cmake`` (or ``cmake3``), +the text-mode UI utility ``ccmake`` (or ``ccmake3``) or the graphical +utility ``cmake-gui``, or use them interchangeably. The second step is +then the compilation and linking of all objects, libraries, and +executables. Here is a minimal example using the command line version of +CMake to build LAMMPS with no add-on packages enabled and no +customization: .. code-block:: bash - cmake [options ...] /path/to/lammps/cmake # build from any dir - cmake [options ...] ../cmake # build from lammps/build - cmake3 [options ...] ../cmake # build from lammps/build - -The cmake command takes one required argument, which is the LAMMPS -cmake directory which contains the CMakeLists.txt file. + cd lammps # change to the LAMMPS distribution directory + mkdir build; cd build # create and use a build directory + cmake ../cmake # configuration reading CMake scripts from ../cmake + cmake --build . # compilation (or type "make") + +This will create and change into a folder called ``build``, then run the +configuration step to generate build files for the default build command +and then launch that build command to compile LAMMPS. During the +configuration step CMake will try to detect whether support for MPI, +OpenMP, FFTW, gzip, JPEG, PNG, and ffmpeg are available and enable the +corresponding configuration settings. The progress of this +configuration can be followed on the screen and a summary of selected +options and settings will be printed at the end. The ``cmake --build +.`` command will launch the compilation, which, if successful, will +ultimately produce a library ``liblammps.a`` and the LAMMPS executable +``lmp`` inside the ``build`` folder. + +Compilation can take a long time, since LAMMPS is a large project with +many features. If your machine has multiple CPU cores (most do these +days), you can speed this up by compiling sources in parallel with +``make -j N`` (with N being the maximum number of concurrently executed +tasks). Also installation of the `ccache `_ (= +Compiler Cache) software may speed up repeated compilation even more, +e.g. during code development. + +After the initial build, whenever you edit LAMMPS source files, enable +or disable packages, change compiler flags or build options, you must +re-compile and relink the LAMMPS executable with ``cmake --build .`` (or +``make``). If the compilation fails for some reason, try running +``cmake .`` and then compile again. The included dependency tracking +should make certain that only the necessary subset of files are +re-compiled. You can also delete compiled objects, libraries and +executables with ``cmake --build . clean`` (or ``make clean``). -The argument can be prefixed or followed by various CMake -command-line options. Several useful ones are: +After compilation, you may optionally install the LAMMPS executable into +your system with: .. code-block:: bash - -D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired - -D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug - -G output # style of output CMake generates (e.g. "Unix Makefiles" or "Ninja") - -D CMAKE_MAKE_PROGRAM=builder # name of the builder executable (e.g. when using "gmake" instead of "make") - -DVARIABLE=value # setting for a LAMMPS feature to enable - -D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir - -C path/to/preset/file # load some CMake settings before configuring - -All the LAMMPS-specific -D variables that a LAMMPS build supports are -described on the pages linked to from the :doc:`Build ` doc page. -All of these variable names are upper-case and their values are -lower-case, e.g. -D LAMMPS_SIZES=smallbig. For boolean values, any of -these forms can be used: yes/no, on/off, 1/0. - -On Unix/Linux machines, CMake generates a Makefile by default to -perform the LAMMPS build. Alternate forms of build info can be -generated via the -G switch, e.g. Visual Studio on a Windows machine, -Xcode on MacOS, or KDevelop on Linux. Type ``cmake --help`` to see the -"Generator" styles of output your system supports. - -.. note:: + make install # optional, copy compiled files into installation location - When CMake runs, it prints configuration info to the screen. - You should review this to verify all the features you requested were - enabled, including packages. You can also see what compilers and - compile options will be used for the build. Any errors in CMake - variable syntax will also be flagged, e.g. mis-typed variable names or - variable values. +This will install the LAMMPS executable and library, some tools (if +configured) and additional files like LAMMPS API headers, manpages, +potential and force field files. The location of the installation tree +defaults to ``${HOME}/.local``. -CMake creates a CMakeCache.txt file when it runs. This stores all the -settings, so that when running CMake again you can use the current -folder '.' instead of the path to the LAMMPS cmake folder as the -required argument to the CMake command. Either way the existing -settings will be inherited unless the CMakeCache.txt file is removed. +.. _cmake_options: -If you later want to change a setting you can rerun cmake in the build -directory with different setting. Please note that some automatically -detected variables will not change their value when you rerun cmake. -In these cases it is usually better to first remove all the -files/directories in the build directory, or start with a fresh build -directory. +Configuration and build options +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ----------- +The CMake commands have one mandatory argument: a folder containing a +file called ``CMakeLists.txt`` (for LAMMPS it is located in the +``cmake`` folder) or a build folder containing a file called +``CMakeCache.txt``, which is generated at the end of the CMake +configuration step. The cache file contains all current CMake settings. -**Curses version (terminal-style menu) of CMake**\ : - -.. code-block:: bash - - ccmake ../cmake - -You initiate the configuration and build environment generation steps -separately. For the first you have to type **c**\ , for the second you -have to type **g**\ . You may need to type **c** multiple times, and may be -required to edit some of the entries of CMake configuration variables -in between. Please see the `ccmake manual `_ for -more information. - ----------- - -**GUI version of CMake**\ : - -.. code-block:: bash +To modify settings, enable or disable features, you need to set *variables* +with either the *-D* command line flag (``-D VARIABLE1_NAME=value``) or +change them in the text mode of graphical user interface. The *-D* flag +can be used several times in one command. - cmake-gui ../cmake +For your convenience we provide :ref:`CMake presets ` +that combine multiple settings to enable optional LAMMPS packages or use +a different compiler tool chain. Those are loaded with the *-C* flag +(``-C ../cmake/presets/minimal.cmake``). This step would only be needed +once, as the settings from the preset files are stored in the +``CMakeCache.txt`` file. It is also possible to customize the build +by adding one or more *-D* flags to the CMake command line. -You initiate the configuration and build environment generation steps -separately. For the first you have to click on the **Configure** button, -for the second you have to click on the **Generate** button. You may -need to click on **Configure** multiple times, and may be required to -edit some of the entries of CMake configuration variables in between. -Please see the `cmake-gui manual `_ -for more information. +Generating files for alternate build tools (e.g. Ninja) and project files +for IDEs like Eclipse, CodeBlocks, or Kate can be selected using the *-G* +command line flag. A list of available generator settings for your +specific CMake version is given when running ``cmake --help``. ----------- -**Installing CMake** +Installing CMake +^^^^^^^^^^^^^^^^ Check if your machine already has CMake installed: @@ -216,11 +169,12 @@ software packages, do this: module list # is a module for cmake already loaded? module avail # is a module for cmake available? - module load cmake3 # load cmake module with appropriate name - -Most Linux distributions offer pre-compiled cmake packages through -their package management system. If you do not have CMake or a new -enough version, you can download the latest version at -`https://cmake.org/download/ `_. -Instructions on how to install it on various platforms can be found -`on this page `_. + module load cmake # load cmake module with appropriate name + +Most Linux distributions offer pre-compiled cmake packages through their +package management system. If you do not have CMake or a recent enough +version (Note: for CentOS 7.x you need to enable the EPEL repository), +you can download the latest version from `https://cmake.org/download/ +`_. Instructions on how to install it on +various platforms can be found `on this page +`_. diff --git a/doc/src/Build_development.rst b/doc/src/Build_development.rst index 21e99d69be16bfd9efd82a597b9d73de91e7706b..474e1fb833f2cec13861a5d06e5937386ddd2dac 100644 --- a/doc/src/Build_development.rst +++ b/doc/src/Build_development.rst @@ -1,15 +1,15 @@ Development build options (CMake only) ====================================== -The CMake build of LAMMPS has a few extra options which are useful during -development, testing or debugging. +The CMake build procedure of LAMMPS offers a few extra options which are +useful during development, testing or debugging. ---------- .. _compilation: Verify compilation flags ------------------------------------------- +------------------------ Sometimes it is necessary to verify the complete sequence of compilation flags generated by the CMake build. To enable a more verbose output during @@ -30,7 +30,7 @@ Another way of doing this without reconfiguration is calling make with variable .. _sanitizer: Address, Undefined Behavior, and Thread Sanitizer Support -------------------------------------------------------------------------- +--------------------------------------------------------- Compilers such as GCC and Clang support generating instrumented binaries which use different sanitizer libraries to detect problems in code @@ -41,10 +41,11 @@ during run-time. They can detect issues like: - `data races `_ Please note that this kind of instrumentation usually comes with a small -performance hit (much less than using tools like `Valgrind `_). -The to enable these features additional compiler flags need to be added -to the compilation and linking stages. This is most easily done through -setting the ``CMAKE_TUNE_FLAGS`` variable during configuration. Examples: +performance hit (much less than using tools like `Valgrind +`_). The to enable these features additional +compiler flags need to be added to the compilation and linking stages. +This is most easily done through setting the ``CMAKE_TUNE_FLAGS`` +variable during configuration. Examples: .. code-block:: bash @@ -52,8 +53,6 @@ setting the ``CMAKE_TUNE_FLAGS`` variable during configuration. Examples: -D CMAKE_TUNE_FLAGS=-fsanitize=undefined # enable undefined behavior sanitizer -D CMAKE_TUNE_FLAGS=-fsanitize=thread # enable thread sanitizer -.. _valgrind: https://valgrind.org - ---------- .. _testing: @@ -75,24 +74,26 @@ developers can run the tests directly on their workstation. -D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location) -D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag -If you enable testing in the CMake build it will create an additional target called "test". You can run them with: +If you enable testing in the CMake build it will create an additional +target called "test". You can run them with: .. code-block:: bash - make test + cmake --build . test The test cases used come from the lammps-testing repository. They are -derivatives of the examples folder with some modifications to make the run -faster. +derivatives of the examples folder with some modifications to make the +run faster. -You can also collect code coverage metrics while running the tests by enabling -coverage support during building. +You can also collect code coverage metrics while running the tests by +enabling coverage support during building. .. code-block:: bash -D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes -This will also add the following targets to generate coverage reports after running the LAMMPS executable: +This will also add the following targets to generate coverage reports +after running the LAMMPS executable: .. code-block:: bash @@ -100,7 +101,8 @@ This will also add the following targets to generate coverage reports after runn make gen_coverage_html # generate coverage report in HTML format make gen_coverage_xml # generate coverage report in XML format -These reports require GCOVR to be installed. The easiest way to do this to install it via pip: +These reports require GCOVR to be installed. The easiest way to do this +to install it via pip: .. code-block:: bash diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 5ba3aa85f93a4fd91c3b9d509b7e73adb0c65588..5d6f2c65a7d3796cfb1a59ae1eb4e9b499e14a11 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -307,95 +307,208 @@ using. For example: .. _kokkos: KOKKOS package ---------------------------- +-------------- -To build with this package, you must choose which hardware you want to -build for, either CPUs (multi-threading via OpenMP) or KNLs (OpenMP) -or GPUs (NVIDIA Cuda). - -For a CMake or make build, these are the possible choices for the -``KOKKOS_ARCH`` settings described below. Note that for CMake, these are -really Kokkos variables, not LAMMPS variables. Hence you must use -case-sensitive values, e.g. BDW, not bdw. - -* AMDAVX = AMD 64-bit x86 CPUs -* EPYC = AMD EPYC Zen class CPUs -* ARMv80 = ARMv8.0 Compatible CPU -* ARMv81 = ARMv8.1 Compatible CPU -* ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU -* ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU -* WSM = Intel Westmere CPUs -* SNB = Intel Sandy/Ivy Bridge CPUs -* HSW = Intel Haswell CPUs -* BDW = Intel Broadwell Xeon E-class CPUs -* SKX = Intel Sky Lake Xeon E-class HPC CPUs (AVX512) -* KNC = Intel Knights Corner Xeon Phi -* KNL = Intel Knights Landing Xeon Phi -* BGQ = IBM Blue Gene/Q CPUs -* Power7 = IBM POWER8 CPUs -* Power8 = IBM POWER8 CPUs -* Power9 = IBM POWER9 CPUs -* Kepler = NVIDIA Kepler default (generation CC 3.5) -* Kepler30 = NVIDIA Kepler generation CC 3.0 -* Kepler32 = NVIDIA Kepler generation CC 3.2 -* Kepler35 = NVIDIA Kepler generation CC 3.5 -* Kepler37 = NVIDIA Kepler generation CC 3.7 -* Maxwell = NVIDIA Maxwell default (generation CC 5.0) -* Maxwell50 = NVIDIA Maxwell generation CC 5.0 -* Maxwell52 = NVIDIA Maxwell generation CC 5.2 -* Maxwell53 = NVIDIA Maxwell generation CC 5.3 -* Pascal60 = NVIDIA Pascal generation CC 6.0 -* Pascal61 = NVIDIA Pascal generation CC 6.1 -* Volta70 = NVIDIA Volta generation CC 7.0 -* Volta72 = NVIDIA Volta generation CC 7.2 -* Turing75 = NVIDIA Turing generation CC 7.5 +Using the KOKKOS package requires choosing several settings. You have +to select whether you want to compile with parallelization on the host +and whether you want to include offloading of calculations to a device +(e.g. a GPU). The default setting is to have no host parallelization +and no device offloading. In addition, you can select the hardware +architecture to select the instruction set. Since most hardware is +backward compatible, you may choose settings for an older architecture +to have an executable that will run on this and newer architectures. -**CMake build**\ : +.. note:: + If you run Kokkos on a newer GPU architecture than what LAMMPS was + compiled with, there will be a delay during device initialization + since the just-in-time compiler has to recompile all GPU kernels + for the new hardware. This is, however, not possible when compiled + for NVIDIA GPUs with CC 3.x (Kepler) for GPUs with CC 5.0 (Maxwell) + and newer as they are not compatible. + +The settings discussed below have been tested with LAMMPS and are +confirmed to work. Kokkos is an active project with ongoing improvements +and projects working on including support for additional architectures. +More information on Kokkos can be found on the +`Kokkos GitHub project `_. + +Available Architecture settings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +These are the possible choices for the Kokkos architecture ID. They must +be specified in uppercase. + +.. list-table:: + :header-rows: 0 + :widths: auto + + * - **Arch-ID** + - **HOST or GPU** + - **Description** + * - AMDAVX + - HOST + - AMD 64-bit x86 CPU (AVX 1) + * - EPYC + - HOST + - AMD EPYC Zen class CPU (AVX 2) + * - ARMV80 + - HOST + - ARMv8.0 Compatible CPU + * - ARMV81 + - HOST + - ARMv8.1 Compatible CPU + * - ARMV8_THUNDERX + - HOST + - ARMv8 Cavium ThunderX CPU + * - ARMV8_THUNDERX2 + - HOST + - ARMv8 Cavium ThunderX2 CPU + * - WSM + - HOST + - Intel Westmere CPU (SSE 4.2) + * - SNB + - HOST + - Intel Sandy/Ivy Bridge CPU (AVX 1) + * - HSW + - HOST + - Intel Haswell CPU (AVX 2) + * - BDW + - HOST + - Intel Broadwell Xeon E-class CPU (AVX 2 + transactional mem) + * - SKX + - HOST + - Intel Sky Lake Xeon E-class HPC CPU (AVX512 + transactional mem) + * - KNC + - HOST + - Intel Knights Corner Xeon Phi + * - KNL + - HOST + - Intel Knights Landing Xeon Phi + * - BGQ + - HOST + - IBM Blue Gene/Q CPU + * - POWER7 + - HOST + - IBM POWER7 CPU + * - POWER8 + - HOST + - IBM POWER8 CPU + * - POWER9 + - HOST + - IBM POWER9 CPU + * - KEPLER30 + - GPU + - NVIDIA Kepler generation CC 3.0 GPU + * - KEPLER32 + - GPU + - NVIDIA Kepler generation CC 3.2 GPU + * - KEPLER35 + - GPU + - NVIDIA Kepler generation CC 3.5 GPU + * - KEPLER37 + - GPU + - NVIDIA Kepler generation CC 3.7 GPU + * - MAXWELL50 + - GPU + - NVIDIA Maxwell generation CC 5.0 GPU + * - MAXWELL52 + - GPU + - NVIDIA Maxwell generation CC 5.2 GPU + * - MAXWELL53 + - GPU + - NVIDIA Maxwell generation CC 5.3 GPU + * - PASCAL60 + - GPU + - NVIDIA Pascal generation CC 6.0 GPU + * - PASCAL61 + - GPU + - NVIDIA Pascal generation CC 6.1 GPU + * - VOLTA70 + - GPU + - NVIDIA Volta generation CC 7.0 GPU + * - VOLTA72 + - GPU + - NVIDIA Volta generation CC 7.2 GPU + * - TURING75 + - GPU + - NVIDIA Turing generation CC 7.5 GPU + * - VEGA900 + - GPU + - AMD GPU MI25 GFX900 + * - VEGA906 + - GPU + - AMD GPU MI50/MI60 GFX906 + +Basic CMake build settings: +^^^^^^^^^^^^^^^^^^^^^^^^^^^ For multicore CPUs using OpenMP, set these 2 variables. .. code-block:: bash - -D KOKKOS_ARCH=archCPU # archCPU = CPU from list above - -D KOKKOS_ENABLE_OPENMP=yes + -D Kokkos_ARCH_HOSTARCH=yes # HOSTARCH = HOST from list above + -D Kokkos_ENABLE_OPENMP=yes + -D BUILD_OMP=yes -For Intel KNLs using OpenMP, set these 2 variables: +Please note that enabling OpenMP for KOKKOS requires that OpenMP is +also :ref:`enabled for the rest of LAMMPS `. + +For Intel KNLs using OpenMP, set these variables: .. code-block:: bash - -D KOKKOS_ARCH=KNL - -D KOKKOS_ENABLE_OPENMP=yes + -D Kokkos_ARCH_KNL=yes + -D Kokkos_ENABLE_OPENMP=yes -For NVIDIA GPUs using CUDA, set these 4 variables: +For NVIDIA GPUs using CUDA, set these variables: .. code-block:: bash - -D KOKKOS_ARCH="archCPU;archGPU" # archCPU = CPU from list above that is hosting the GPU - # archGPU = GPU from list above - -D KOKKOS_ENABLE_CUDA=yes - -D KOKKOS_ENABLE_OPENMP=yes - -D CMAKE_CXX_COMPILER=wrapper # wrapper = full path to Cuda nvcc wrapper + -D Kokkos_ARCH_HOSTARCH=yes # HOSTARCH = HOST from list above + -D Kokkos_ARCH_GPUARCH=yes # GPUARCH = GPU from list above + -D Kokkos_ENABLE_CUDA=yes + -D Kokkos_ENABLE_OPENMP=yes + -D CMAKE_CXX_COMPILER=wrapper # wrapper = full path to Cuda nvcc wrapper -The wrapper value is the Cuda nvcc compiler wrapper provided in the -Kokkos library: ``lib/kokkos/bin/nvcc_wrapper``\ . The setting should -include the full path name to the wrapper, e.g. +This will also enable executing FFTs on the GPU, either via the internal +KISSFFT library, or - by preference - with the cuFFT library bundled +with the CUDA toolkit, depending on whether CMake can identify its +location. The *wrapper* value for ``CMAKE_CXX_COMPILER`` variable is +the path to the CUDA nvcc compiler wrapper provided in the Kokkos +library: ``lib/kokkos/bin/nvcc_wrapper``\ . The setting should include +the full path name to the wrapper, e.g. .. code-block:: bash - -D CMAKE_CXX_COMPILER=/home/username/lammps/lib/kokkos/bin/nvcc_wrapper + -D CMAKE_CXX_COMPILER=${HOME}/lammps/lib/kokkos/bin/nvcc_wrapper -**Traditional make**\ : +To simplify the compilation, three preset files are included in the +``cmake/presets`` folder, ``kokkos-serial.cmake``, ``kokkos-openmp.cmake``, +and ``kokkos-cuda.cmake``. They will enable the KOKKOS package and +enable some hardware choice. So to compile with OpenMP host parallelization, +CUDA device parallelization (for GPUs with CC 5.0 and up) with some +common packages enabled, you can do the following: + +.. code-block:: bash + + mkdir build-kokkos-cuda + cd build-kokkos-cuda + cmake -C ../cmake/presets/minimal.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake + cmake --build . + +Basic traditional make settings: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Choose which hardware to support in ``Makefile.machine`` via ``KOKKOS_DEVICES`` and ``KOKKOS_ARCH`` settings. See the -``src/MAKE/OPTIONS/Makefile.kokkos\*`` files for examples. +``src/MAKE/OPTIONS/Makefile.kokkos*`` files for examples. For multicore CPUs using OpenMP: .. code-block:: make KOKKOS_DEVICES = OpenMP - KOKKOS_ARCH = archCPU # archCPU = CPU from list above + KOKKOS_ARCH = HOSTARCH # HOSTARCH = HOST from list above For Intel KNLs using OpenMP: @@ -409,22 +522,67 @@ For NVIDIA GPUs using CUDA: .. code-block:: make KOKKOS_DEVICES = Cuda - KOKKOS_ARCH = archCPU,archGPU # archCPU = CPU from list above that is hosting the GPU - # archGPU = GPU from list above - FFT_INC = -DFFT_CUFFT # enable use of cuFFT (optional) - FFT_LIB = -lcufft # link to cuFFT library + KOKKOS_ARCH = HOSTARCH,GPUARCH # HOSTARCH = HOST from list above that is hosting the GPU + KOKKOS_CUDA_OPTIONS = "enable_lambda" + # GPUARCH = GPU from list above + FFT_INC = -DFFT_CUFFT # enable use of cuFFT (optional) + FFT_LIB = -lcufft # link to cuFFT library -For GPUs, you also need the following 2 lines in your Makefile.machine -before the CC line is defined, in this case for use with OpenMPI mpicxx. -The 2 lines define a nvcc wrapper compiler, which will use nvcc for -compiling CUDA files and use a C++ compiler for non-Kokkos, non-CUDA -files. +For GPUs, you also need the following lines in your ``Makefile.machine`` +before the CC line is defined. They tell ``mpicxx`` to use an ``nvcc`` +compiler wrapper, which will use ``nvcc`` for compiling CUDA files and a +C++ compiler for non-Kokkos, non-CUDA files. .. code-block:: make + # For OpenMPI KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper - CC = mpicxx + CC = mpicxx + +.. code-block:: make + + # For MPICH and derivatives + KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) + CC = mpicxx -cxx=$(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper + + +Advanced KOKKOS compilation settings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +There are other allowed options when building with the KOKKOS package +that can improve performance or assist in debugging or profiling. Below +are some examples that may be useful in combination with LAMMPS. For +the full list (which keeps changing as the Kokkos package itself evolves), +please consult the Kokkos library documentation. + +As alternative to using multi-threading via OpenMP +(``-DKokkos_ENABLE_OPENMP=on`` or ``KOKKOS_DEVICES=OpenMP``) it is also +possible to use Posix threads directly (``-DKokkos_ENABLE_PTHREAD=on`` +or ``KOKKOS_DEVICES=Pthread``). While binding of threads to individual +or groups of CPU cores is managed in OpenMP with environment variables, +you need assistance from either the "hwloc" or "libnuma" library for the +Pthread thread parallelization option. To enable use with CMake: +``-DKokkos_ENABLE_HWLOC=on`` or ``-DKokkos_ENABLE_LIBNUMA=on``; and with +conventional make: ``KOKKOS_USE_TPLS=hwloc`` or +``KOKKOS_USE_TPLS=libnuma``. + +The CMake option ``-DKokkos_ENABLE_LIBRT=on`` or the makefile setting +``KOKKOS_USE_TPLS=librt`` enables the use of a more accurate timer +mechanism on many Unix-like platforms for internal profiling. + +The CMake option ``-DKokkos_ENABLE_DEBUG=on`` or the makefile setting +``KOKKOS_DEBUG=yes`` enables printing of run-time +debugging information that can be useful. It also enables runtime +bounds checking on Kokkos data structures. As to be expected, enabling +this option will negatively impact the performance and thus is only +recommended when developing a Kokkos-enabled style in LAMMPS. + +The CMake option ``-DKokkos_ENABLE_CUDA_UVM=on`` or the makefile +setting ``KOKKOS_CUDA_OPTIONS=enable_lambda,force_uvm`` enables the +use of CUDA "Unified Virtual Memory" in Kokkos. Please note, that +the LAMMPS KOKKOS package must **always** be compiled with the +*enable_lambda* option when using GPUs. ---------- @@ -463,7 +621,7 @@ args: $ make lib-latte args="-b" # download and build in lib/latte/LATTE-master $ make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte $ make lib-latte args="-b -m gfortran" # download and build in lib/latte and - # copy Makefile.lammps.gfortran to Makefile.lammps + # copy Makefile.lammps.gfortran to Makefile.lammps Note that 3 symbolic (soft) links, "includelink" and "liblink" and "filelink.o", are created in lib/latte to point into the LATTE home diff --git a/doc/src/Build_link.rst b/doc/src/Build_link.rst index b18dc49e38f51cd23d80298be730b9e3bbdd5860..39fc4fe40a2f43bc075478d9ad94ba758f8d3492 100644 --- a/doc/src/Build_link.rst +++ b/doc/src/Build_link.rst @@ -1,33 +1,35 @@ Link LAMMPS as a library to another code ======================================== -LAMMPS can be used as a library by another application, including -Python scripts. The files src/library.cpp and library.h define the +LAMMPS is designed as a library of C++ objects and can thus be +integrated into other applications including Python scripts. +The files ``src/library.cpp`` and ``src/library.h`` define a C-style API for using LAMMPS as a library. See the :doc:`Howto library ` doc page for a description of the interface and how to extend it for your needs. The :doc:`Build basics ` doc page explains how to build -LAMMPS as either a shared or static library. This results in one of -these 2 files: - -.. code-block:: bash - - liblammps.so # shared library - liblammps.a # static library +LAMMPS as either a shared or static library. This results in a file +in the compilation folder called ``liblammps.a`` or ``liblammps_.a`` +in case of building a static library. In case of a shared library +the name is the same only that the suffix is going to be either ``.so`` +or ``.dylib`` or ``.dll`` instead of ``.a`` depending on the OS. +In some cases the ``.so`` file may be a symbolic link to a file with +the suffix ``.so.0`` (or some other number). .. note:: - Care should be taken to use the same MPI library for the calling - code and the LAMMPS library. The library.h file includes mpi.h and - uses definitions from it so those need to be available and - consistent. When LAMMPS is compiled with the MPI STUBS library, - then its mpi.h file needs to be included. While it is technically - possible to use a full MPI library in the calling code and link to - a serial LAMMPS library compiled with MPI STUBS, it is recommended - to use the *same* MPI library for both, and then use MPI_Comm_split() - in the calling code to pass a suitable communicator with a subset - of MPI ranks to the function creating the LAMMPS instance. + Care should be taken to use the same MPI library for the calling code + and the LAMMPS library. The ``library.h`` file includes ``mpi.h`` + and uses definitions from it so those need to be available and + consistent. When LAMMPS is compiled with the included STUBS MPI + library, then its ``mpi.h`` file needs to be included. While it is + technically possible to use a full MPI library in the calling code + and link to a serial LAMMPS library compiled with MPI STUBS, it is + recommended to use the *same* MPI library for both, and then use + ``MPI_Comm_split()`` in the calling code to pass a suitable + communicator with a subset of MPI ranks to the function creating the + LAMMPS instance. ---------- @@ -42,11 +44,11 @@ executable code from the library is copied into the calling executable. *CMake build*\ : -This assumes that LAMMPS has been configured with "-D BUILD_LIB=yes" -and installed with "make install" and the PKG_CONFIG_PATH environment -variable updated to include the *liblammps.pc* file installed into the -configured destination folder, if needed. The commands to compile and -link the coupled executable are then: +This assumes that LAMMPS has been configured without setting a +``LAMMPS_MACHINE`` name, installed with "make install", and the +``PKG_CONFIG_PATH`` environment variable has been updated to include the +``liblammps.pc`` file installed into the configured destination folder. +The commands to compile and link a coupled executable are then: .. code-block:: bash @@ -56,30 +58,35 @@ link the coupled executable are then: *Traditional make*\ : This assumes that LAMMPS has been compiled in the folder -"${HOME}/lammps/src" with "make mode=lib mpi". The commands to compile -and link the coupled executable are then: +``${HOME}/lammps/src`` with "make mpi". The commands to compile and link +a coupled executable are then: .. code-block:: bash mpicc -c -O -I${HOME}/lammps/src caller.c - mpicxx -o caller caller.o -L${HOME}/lammps/src -llammps + mpicxx -o caller caller.o -L${HOME}/lammps/src -llammps_mpi -The *-I* argument is the path to the location of the *library.h* +The *-I* argument is the path to the location of the ``library.h`` header file containing the interface to the LAMMPS C-style library -interface. The *-L* argument is the path to where the *liblammps.a* -file is located. The *-llammps* argument is shorthand for telling the -compiler to link the file *liblammps.a*\ . +interface. The *-L* argument is the path to where the ``liblammps_mpi.a`` +file is located. The *-llammps_mpi* argument is shorthand for telling the +compiler to link the file ``liblammps_mpi.a``. If LAMMPS has been +built as a shared library, then the linker will use ``liblammps_mpi.so`` +instead. If both files are available, the linker will usually prefer +the shared library. In case of a shared library, you may need to update +the ``LD_LIBRARY_PATH`` environment variable or running the ``caller`` +executable will fail since it cannot find the shared library at runtime. However, it is only as simple as shown above for the case of a plain LAMMPS library without any optional packages that depend on libraries -(bundled or external). Otherwise, you need to include all flags, -libraries, and paths for the coupled executable, that are also -required to link the LAMMPS executable. +(bundled or external) or when using a shared library. Otherwise, you +need to include all flags, libraries, and paths for the coupled +executable, that are also required to link the LAMMPS executable. *CMake build*\ : When using CMake, additional libraries with sources in the lib folder -are built, but not included in liblammps.a and (currently) not +are built, but not included in ``liblammps.a`` and (currently) not installed with "make install" and not included in the *pkgconfig* configuration file. They can be found in the top level build folder, but you have to determine the necessary link flags manually. It is @@ -87,23 +94,26 @@ therefore recommended to either use the traditional make procedure to build and link with a static library or build and link with a shared library instead. +.. TODO: this needs to be updated to reflect that latest CMake changes after they are complete. + *Traditional make*\ : After you have compiled a static LAMMPS library using the conventional -build system for example with "make mode=lib serial". And you also -have installed the POEMS package after building its bundled library in -lib/poems. Then the commands to build and link the coupled executable +build system for example with "make mode=static serial". And you also +have installed the ``POEMS`` package after building its bundled library +in ``lib/poems``. Then the commands to build and link the coupled executable change to: .. code-block:: bash gcc -c -O -I${HOME}/lammps/src/STUBS -I${HOME}/lammps/src -caller.c g++ -o caller caller.o -L${HOME}/lammps/lib/poems \ - -L${HOME}/lammps/src/STUBS -L${HOME}/lammps/src -llammps -lpoems -lmpi_stubs + -L${HOME}/lammps/src/STUBS -L${HOME}/lammps/src -llammps_serial -lpoems -lmpi_stubs -Note, that you need to link with "g++" instead of "gcc", since LAMMPS -is C++ code. You can display the currently applied settings for building -LAMMPS for the "serial" machine target by using the command: +Note, that you need to link with "g++" instead of "gcc", since the +LAMMPS library is C++ code. You can display the currently applied +settings for building LAMMPS for the "serial" machine target by using +the command: .. code-block:: bash @@ -113,16 +123,16 @@ Which should output something like: .. code-block:: bash - # Compiler: + # Compiler: CXX=g++ - # Linker: + # Linker: LD=g++ - # Compilation: - CXXFLAGS=-g -O3 -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64 -I${HOME}/lammps/lib/poems -I${HOME}/lammps/src/STUBS - # Linking: + # Compilation: + CXXFLAGS=-g -O3 -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64 -I${HOME}/compile/lammps/lib/poems -I${HOME}/compile/lammps/src/STUBS + # Linking: LDFLAGS=-g -O - # Libraries: - LDLIBS=-L${HOME}/lammps/lib/poems -L${HOME}/lammps/src/STUBS -lpoems -lmpi_stubs + # Libraries: + LDLIBS=-L${HOME}/compile/lammps/src -llammps_serial -L${HOME}/compile/lammps/lib/poems -L${HOME}/compile/lammps/src/STUBS -lpoems -lmpi_stubs From this you can gather the necessary paths and flags. With makefiles for other *machine* configurations you need to do the @@ -133,14 +143,13 @@ of the makefile. **Link with LAMMPS as a shared library**\ : -When linking to LAMMPS built as a shared library, the situation -becomes much simpler, as all dependent libraries and objects are -included in the shared library, which is - technically speaking - -effectively a regular LAMMPS executable that is missing the `main()` -function. Thus those libraries need not to be specified when linking -the calling executable. Only the *-I* flags are needed. So the -example case from above of the serial version static LAMMPS library -with the POEMS package installed becomes: +When linking to LAMMPS built as a shared library, the situation becomes +much simpler, as all dependent libraries and objects are either included +in the shared library or registered as a dependent library in the shared +library file. Thus those libraries need not to be specified when +linking the calling executable. Only the *-I* flags are needed. So the +example case from above of the serial version static LAMMPS library with +the POEMS package installed becomes: *CMake build*\ : @@ -155,19 +164,19 @@ build process are the same as for the static library. *Traditional make*\ : The commands with a shared LAMMPS library compiled with the -traditional make build using "make mode=shlib serial" becomes: +traditional make build using "make mode=shared serial" becomes: .. code-block:: bash gcc -c -O -I${HOME}/lammps/src/STUBS -I${HOME}/lammps/src -caller.c - g++ -o caller caller.o -L${HOME}/lammps/src -llammps + g++ -o caller caller.o -L${HOME}/lammps/src -llammps_serial *Locating liblammps.so at runtime*\ : -However, now the `liblammps.so` file is required at runtime and needs +However, now the ``liblammps.so`` file is required at runtime and needs to be in a folder, where the shared linker program of the operating -system can find it. This would be either a folder like "/usr/local/lib64" -or "${HOME}/.local/lib64" or a folder pointed to by the LD_LIBRARY_PATH +system can find it. This would be either a folder like ``/usr/local/lib64`` +or ``${HOME}/.local/lib64`` or a folder pointed to by the ``LD_LIBRARY_PATH`` environment variable. You can type .. code-block:: bash @@ -177,11 +186,11 @@ environment variable. You can type to see what directories are in that list. Or you can add the LAMMPS src directory (or the directory you performed -a CMake style build in) to your LD_LIBRARY_PATH, so that the current +a CMake style build in) to your ``LD_LIBRARY_PATH``, so that the current version of the shared library is always available to programs that use it. For the Bourne or Korn shells (/bin/sh, /bin/ksh, /bin/bash etc.), you -would add something like this to your ~/.profile file: +would add something like this to your ``${HOME}/.profile`` file: .. code-block:: bash @@ -189,14 +198,14 @@ would add something like this to your ~/.profile file: export LD_LIBRARY_PATH For the csh or tcsh shells, you would equivalently add something like this -to your ~/.cshrc file: +to your ``${HOME}/.cshrc`` file: .. code-block:: csh setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${HOME}/lammps/src You can verify whether all required shared libraries are found with the -`ldd` tool. Example: +``ldd`` tool. Example: .. code-block:: bash @@ -229,20 +238,20 @@ If a required library is missing, you would get a 'not found' entry: Either flavor of library (static or shared) allows one or more LAMMPS objects to be instantiated from the calling program. When used from a C++ program, most of the symbols and functions in LAMMPS are wrapped -in a LAMMPS_NS namespace; you can safely use any of its classes and +in a ``LAMMPS_NS`` namespace; you can safely use any of its classes and methods from within the calling code, as needed, and you will not incur conflicts with functions and variables in your code that share the name. This, however, does not extend to all additional libraries bundled with LAMMPS in the lib folder and some of the low-level code of some packages. To be compatible with C, Fortran, Python programs, the library has a simple -C-style interface, provided in src/library.cpp and src/library.h. +C-style interface, provided in ``src/library.cpp`` and ``src/library.h``. See the :doc:`Python library ` doc page for a description of the Python interface to LAMMPS, which wraps the C-style interface from a shared library through the `ctypes python module `_. -See the sample codes in examples/COUPLE/simple for examples of C++ and +See the sample codes in ``examples/COUPLE/simple`` for examples of C++ and C and Fortran codes that invoke LAMMPS through its library interface. Other examples in the COUPLE directory use coupling ideas discussed on the :doc:`Howto couple ` doc page. diff --git a/doc/src/Build_make.rst b/doc/src/Build_make.rst index 0379a8379a1bfa42beb6acbf993dc0ce2004b400..af5e319121768b41b0016f9be88f83a31965dfb8 100644 --- a/doc/src/Build_make.rst +++ b/doc/src/Build_make.rst @@ -2,10 +2,14 @@ Build LAMMPS with make ====================== Building LAMMPS with traditional makefiles requires that you have a -Makefile."machine" file appropriate for your system in the src/MAKE, -src/MAKE/MACHINES, src/MAKE/OPTIONS, or src/MAKE/MINE directory (see -below). It can include various options for customizing your LAMMPS -build with a number of global compilation options and features. +``Makefile.`` file appropriate for your system in either the +``src/MAKE``, ``src/MAKE/MACHINES``, ``src/MAKE/OPTIONS``, or +``src/MAKE/MINE`` directory (see below). It can include various options +for customizing your LAMMPS build with a number of global compilation +options and features. + +Requirements +^^^^^^^^^^^^ Those makefiles are written for and tested with GNU make and may not be compatible with other make programs. In most cases, if the "make" @@ -16,44 +20,54 @@ with :doc:`CMake `. The makefiles of the traditional make based build process and the scripts they are calling expect a few additional tools to be available and functioning. - * a Bourne shell compatible "Unix" shell program (often this is bash) - * a few shell utilities: ls, mv, ln, rm, grep, sed, tr, cat, touch, diff, dirname - * python (optional, required for "make lib-XXX" in the src folder) - -To include LAMMPS packages (i.e. optional commands and styles) you -must enable them first, as discussed on the :doc:`Build package -` doc page. If a packages requires (provided or + * a working C/C++ compiler toolchain supporting the C++11 standard; on + Linux these are often the GNU compilers. Some older compilers + require adding flags like ``-std=c++11`` to enable the C++11 mode. + * a Bourne shell compatible "Unix" shell program (often this is ``bash``) + * a few shell utilities: ``ls``, ``mv``, ``ln``, ``rm``, ``grep``, ``sed``, ``tr``, ``cat``, ``touch``, ``diff``, ``dirname`` + * python (optional, required for ``make lib-`` in the src folder). + python scripts are currently tested with python 2.7 and 3.6. The procedure + for :doc:`building the documentation ` requires python 3. + +Getting started +^^^^^^^^^^^^^^^ + +To include LAMMPS packages (i.e. optional commands and styles) you must +enable (or "install") them first, as discussed on the :doc:`Build +package ` doc page. If a packages requires (provided or external) libraries, you must configure and build those libraries **before** building LAMMPS itself and especially **before** enabling -such a package with "make yes-". Building :doc:`LAMMPS -with CMake ` can automate much of this for many types of +such a package with ``make yes-``. Building :doc:`LAMMPS with +CMake ` can automate much of this for many types of machines, especially workstations, desktops, and laptops, so we suggest you try it first when building LAMMPS in those cases. The commands below perform a default LAMMPS build, producing the LAMMPS -executable lmp_serial and lmp_mpi in lammps/src: +executable ``lmp_serial`` and ``lmp_mpi`` in ``lammps/src``: .. code-block:: bash - cd lammps/src - make serial # build a serial LAMMPS executable + cd lammps/src # change to main LAMMPS source folder + make serial # build a serial LAMMPS executable using GNU g++ make mpi # build a parallel LAMMPS executable with MPI make # see a variety of make options -This initial compilation can take a long time, since LAMMPS is a large -project with many features. If your machine has multiple CPU cores -(most do these days), using a command like "make -jN mpi" (with N = -the number of available CPU cores) can be much faster. If you plan to -do development on LAMMPS or need to re-compile LAMMPS repeatedly, the -installation of the ccache (= Compiler Cache) software may speed up -compilation even more. +Compilation can take a long time, since LAMMPS is a large project with +many features. If your machine has multiple CPU cores (most do these +days), you can speed this up by compiling sources in parallel with +``make -j N`` (with N being the maximum number of concurrently executed +tasks). Also installation of the `ccache `_ (= +Compiler Cache) software may speed up repeated compilation even more, +e.g. during code development. After the initial build, whenever you edit LAMMPS source files, or add or remove new files to the source directory (e.g. by installing or uninstalling packages), you must re-compile and relink the LAMMPS -executable with the same "make" command. This makefiles dependencies -should insure that only the subset of files that need to be are -re-compiled. +executable with the same ``make `` command. The makefile's +dependency tracking should insure that only the necessary subset of +files are re-compiled. If you change settings in the makefile, you have +to recompile *everything*. To delete all objects you can use ``make +clean-``. .. note:: @@ -65,13 +79,15 @@ re-compiled. correctly detect which parts need to be recompiled after changes were made to the sources. ----------- +Customized builds and alternate makefiles +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The lammps/src/MAKE tree contains the Makefile.machine files included -in the LAMMPS distribution. Typing "make machine" uses -*Makefile.machine*\ . Thus the "make serial" or "make mpi" lines above -use Makefile.serial and Makefile.mpi, respectively. Other makefiles -are in these directories: +The ``src/MAKE`` directory tree contains the ``Makefile.`` +files included in the LAMMPS distribution. Typing ``make example`` uses +``Makefile.example`` from one of those folders, if available. Thus the +``make serial`` and ``make mpi`` lines above use +``src/MAKE/Makefile.serial`` and ``src/MAKE/Makefile.mpi``, +respectively. Other makefiles are in these directories: .. code-block:: bash @@ -79,11 +95,16 @@ are in these directories: MACHINES # Makefiles for specific machines MINE # customized Makefiles you create (you may need to create this folder) -Typing "make" lists all the available Makefile.machine files. A file -with the same name can appear in multiple folders (not a good idea). -The order the directories are searched is as follows: src/MAKE/MINE, -src/MAKE, src/MAKE/OPTIONS, src/MAKE/MACHINES. This gives preference -to a customized file you put in src/MAKE/MINE. +Simply typing ``make`` lists all the available ``Makefile.`` +files with a single line description toward the end of the output. A +file with the same name can appear in multiple folders (not a good +idea). The order the directories are searched is as follows: +``src/MAKE/MINE``, ``src/MAKE``, ``src/MAKE/OPTIONS``, +``src/MAKE/MACHINES``. This gives preference to a customized file you +put in ``src/MAKE/MINE``. If you create your own custom makefile under +a new name, please edit the first line with the description and machine +name, so you will not confuse yourself, when looking at the machine +summary. Makefiles you may wish to try include these (some require a package first be installed). Many of these include specific compiler flags diff --git a/doc/src/Build_package.rst b/doc/src/Build_package.rst index 2e0bea723a08befbf8fadcbfb23c5898c34aa86b..f2511bb6a4a229a2bd8ef16b69e4c1ef0b4fee46 100644 --- a/doc/src/Build_package.rst +++ b/doc/src/Build_package.rst @@ -130,6 +130,8 @@ src directory. ---------- +.. _cmake_presets: + **CMake shortcuts for installing many packages**\ : Instead of specifying all the CMake options via the command-line, diff --git a/doc/src/Commands_compute.rst b/doc/src/Commands_compute.rst index 13336fa89b40d0f30fb441172f712a7ebbffa5aa..1c46bfad6e139ee270f8d1521789ba987311b84f 100644 --- a/doc/src/Commands_compute.rst +++ b/doc/src/Commands_compute.rst @@ -87,7 +87,7 @@ KOKKOS, o = USER-OMP, t = OPT. * :doc:`msd/chunk ` * :doc:`msd/nongauss ` * :doc:`omega/chunk ` - * :doc:`orientorder/atom ` + * :doc:`orientorder/atom (k) ` * :doc:`pair ` * :doc:`pair/local ` * :doc:`pe ` diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 34b04969f9fa457cfafbf9f2f20ef2da39770372..b176e22a857af106e587d499a39cb6a7eb390016 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -131,6 +131,7 @@ OPT. * :doc:`lj/class2/coul/cut (ko) ` * :doc:`lj/class2/coul/cut/soft ` * :doc:`lj/class2/coul/long (gko) ` + * :doc:`lj/class2/coul/long/cs ` * :doc:`lj/class2/coul/long/soft ` * :doc:`lj/class2/soft ` * :doc:`lj/cubic (go) ` diff --git a/doc/src/Commands_removed.rst b/doc/src/Commands_removed.rst index b749467d13f9d5aac68d2df3d5720a242ab60ab8..e137e39a0868dc4b6b74c5dc36ce8acb1e22fc0e 100644 --- a/doc/src/Commands_removed.rst +++ b/doc/src/Commands_removed.rst @@ -48,7 +48,7 @@ The USER-CUDA package had been removed, since it had been unmaintained for a long time and had known bugs and problems. Significant parts of the design were transferred to the :ref:`KOKKOS package `, which has similar -performance characteristics on Nvidia GPUs. Both, the KOKKOS +performance characteristics on NVIDIA GPUs. Both, the KOKKOS and the :ref:`GPU package ` are maintained and allow running LAMMPS with GPU acceleration. diff --git a/doc/src/Errors.rst b/doc/src/Errors.rst index 896dfbcbef63d7f5151f437f2e1ecd0d331b3304..48db5f6472d7b039982d6a4857ff35f21482fb24 100644 --- a/doc/src/Errors.rst +++ b/doc/src/Errors.rst @@ -12,5 +12,6 @@ additional details for many of them. Errors_common Errors_bugs + Errors_debug Errors_messages Errors_warnings diff --git a/doc/src/Errors_bugs.rst b/doc/src/Errors_bugs.rst index e169b93d8189c14da09b91c20c1db0e4c26003c2..ff0b155795397efbaa0d0675c17e9a4ebb5a2821 100644 --- a/doc/src/Errors_bugs.rst +++ b/doc/src/Errors_bugs.rst @@ -1,7 +1,8 @@ Reporting bugs ============== -If you are confident that you have found a bug in LAMMPS, please follow the steps outlined below: +If you are confident that you have found a bug in LAMMPS, please follow +the steps outlined below: * Check the `New features and bug fixes `_ section of the `LAMMPS WWW site @@ -17,20 +18,22 @@ If you are confident that you have found a bug in LAMMPS, please follow the step * Check the `mailing list archives `_ to see if the issue has been discussed before. -If none of these steps yields any useful information, please file -a new bug report on the `GitHub Issue page `_\ . -The website will offer you to select a suitable template with explanations -and then you should replace those explanations with the information -that you can provide to reproduce your issue. +If none of these steps yields any useful information, please file a new +bug report on the `GitHub Issue page `_. The website will offer +you to select a suitable template with explanations and then you should +replace those explanations with the information that you can provide to +reproduce your issue. The most useful thing you can do to help us verify and fix a bug is to isolate the problem. Run it on the smallest number of atoms and fewest number of processors with the simplest input script that reproduces the -bug. Try to identify what command or combination of commands is -causing the problem and upload the complete input deck as a tar or zip -archive. Please avoid using binary restart files unless the issue requires -it. In the latter case you should also include an input deck to quickly +bug. Try to identify what command or combination of commands is causing +the problem and upload the complete input deck as a tar or zip archive. +Please avoid using binary restart files unless the issue requires it. +In the latter case you should also include an input deck to quickly generate this restart from a data file or a simple additional input. +This input deck can be used with tools like a debugger or `valgrind +`_ to further :doc:`debug the crash `. You may also send an email to the LAMMPS mailing list at "lammps-users at lists.sourceforge.net" describing the problem with the @@ -43,3 +46,4 @@ have looked at it. .. _lws: https://lammps.sandia.gov .. _gip: https://github.com/lammps/issues +.. _valgrind: https://valgrind.org diff --git a/doc/src/Errors_debug.rst b/doc/src/Errors_debug.rst new file mode 100644 index 0000000000000000000000000000000000000000..1e7e678602d83068645ae8fb721e74aa8417fbaf --- /dev/null +++ b/doc/src/Errors_debug.rst @@ -0,0 +1,237 @@ +Debugging crashes +================= + +If LAMMPS crashes with a "segmentation fault" or a "bus error" or +similar message, then you can use the following two methods to further +narrow down the origin of the issue. This will help the LAMMPS +developers (or yourself) to understand the reason for the crash and +apply a fix (either to the input script or the source code). +This requires that your LAMMPS executable includes the required +:ref:`debug information `. Otherwise it is not possible to +look up the names of functions or variables. + +The following patch will introduce a bug into the code for pair style +:doc:`lj/cut ` when using the ``examples/melt/in.melt`` input. +We use it to show how to identify the origin of a segmentation fault. + +.. code-block:: diff + + --- a/src/pair_lj_cut.cpp + +++ b/src/pair_lj_cut.cpp + @@ -81,6 +81,7 @@ void PairLJCut::compute(int eflag, int vflag) + int nlocal = atom->nlocal; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + + double comx = 0.0; + + inum = list->inum; + ilist = list->ilist; + @@ -134,8 +135,10 @@ void PairLJCut::compute(int eflag, int vflag) + evdwl,0.0,fpair,delx,dely,delz); + } + } + - } + + + comx += atom->rmass[i]*x[i][0]; /* BUG */ + + } + + printf("comx = %g\n",comx); + if (vflag_fdotr) virial_fdotr_compute(); + } + +After recompiling LAMMPS and running the input you should get something like this: + +.. code-block: + + $ ./lmp -in in.melt + LAMMPS (19 Mar 2020) + OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) + using 1 OpenMP thread(s) per MPI task + Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 + Created orthogonal box = (0 0 0) to (16.796 16.796 16.796) + 1 by 1 by 1 MPI processor grid + Created 4000 atoms + create_atoms CPU = 0.000432253 secs + Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 12 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard + Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 0.005 + Segmentation fault (core dumped) + + +Using the GDB debugger to get a stack trace +------------------------------------------- + +There are two options to use the GDB debugger for identifying the origin +of the segmentation fault or similar crash. The GDB debugger has many +more features and options, as can be seen for example its `online +documentation `_. + +Run LAMMPS from within the debugger +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Running LAMMPS under the control of the debugger as shown below only +works for a single MPI rank (for debugging a program running in parallel +you usually need a parallel debugger program). A simple way to launch +GDB is to prefix the LAMMPS command line with ``gdb --args`` and then +type the command "run" at the GDB prompt. This will launch the +debugger, load the LAMMPS executable and its debug info, and then run +it. When it reaches the code causing the segmentation fault, it will +stop with a message why it stopped, print the current line of code, and +drop back to the GDB prompt. + +.. code-block:: + + [...] + Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 0.005 + + Program received signal SIGSEGV, Segmentation fault. + 0x00000000006653ab in LAMMPS_NS::PairLJCut::compute (this=0x829740, eflag=1, vflag=) at /home/akohlmey/compile/lammps/src/pair_lj_cut.cpp:139 + 139 comx += atom->rmass[i]*x[i][0]; /* BUG */ + (gdb) + +Now typing the command "where" will show the stack of functions starting from +the current function back to "main()". + +.. code-block:: + + (gdb) where + #0 0x00000000006653ab in LAMMPS_NS::PairLJCut::compute (this=0x829740, eflag=1, vflag=) at /home/akohlmey/compile/lammps/src/pair_lj_cut.cpp:139 + #1 0x00000000004cf0a2 in LAMMPS_NS::Verlet::setup (this=0x7e6c90, flag=1) at /home/akohlmey/compile/lammps/src/verlet.cpp:131 + #2 0x000000000049db42 in LAMMPS_NS::Run::command (this=this@entry=0x7fffffffcca0, narg=narg@entry=1, arg=arg@entry=0x7e8750) + at /home/akohlmey/compile/lammps/src/run.cpp:177 + #3 0x000000000041258a in LAMMPS_NS::Input::command_creator (lmp=, narg=1, arg=0x7e8750) + at /home/akohlmey/compile/lammps/src/input.cpp:878 + #4 0x0000000000410ad3 in LAMMPS_NS::Input::execute_command (this=0x7d1410) at /home/akohlmey/compile/lammps/src/input.cpp:864 + #5 0x00000000004111fb in LAMMPS_NS::Input::file (this=0x7d1410) at /home/akohlmey/compile/lammps/src/input.cpp:229 + #6 0x000000000040933a in main (argc=, argv=) at /home/akohlmey/compile/lammps/src/main.cpp:65 + (gdb) + +You can also print the value of variables and see if there is anything +unexpected. Segmentation faults, for example, commonly happen when a +pointer variable is not assigned and still initialized to NULL. + +.. code-block:: + + (gdb) print x + $1 = (double **) 0x7ffff7ca1010 + (gdb) print i + $2 = 0 + (gdb) print x[0] + $3 = (double *) 0x7ffff6d80010 + (gdb) print x[0][0] + $4 = 0 + (gdb) print x[1][0] + $5 = 0.83979809569125363 + (gdb) print atom->rmass + $6 = (double *) 0x0 + (gdb) + + +Inspect a core dump file with the debugger +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When an executable crashes with a "core dumped" message, it creates a +file "core" or "core." which contains the information about the +current state. This file may be located in the folder where you ran +LAMMPS or in some hidden folder managed by the systemd daemon. In the +latter case, you need to "extract" the core file with the ``coredumpctl`` +utility to the current folder. Example: ``coredumpctl -o core dump lmp``. +Now you can launch the debugger to load the executable, its debug info +and the core dump and drop you to a prompt like before. + +.. code-block:: + + $ gdb lmp core + Reading symbols from lmp... + [New LWP 1928535] + [Thread debugging using libthread_db enabled] + Using host libthread_db library "/lib64/libthread_db.so.1". + Core was generated by `./lmp -in in.melt'. + Program terminated with signal SIGSEGV, Segmentation fault. + #0 0x00000000006653ab in LAMMPS_NS::PairLJCut::compute (this=0x1b10740, eflag=1, vflag=) + at /home/akohlmey/compile/lammps/src/pair_lj_cut.cpp:139 + 139 comx += atom->rmass[i]*x[i][0]; /* BUG */ + (gdb) + +From here on, you use the same commands as shown before to get a stack +trace and print current values of (pointer) variables. + + +Using valgrind to get a stack trace +----------------------------------- + +The `valgrind `_ suite of tools allows to closely +inspect the behavior of a compiled program by essentially emulating a +CPU and instrumenting the program while running. This slows down +execution quite significantly, but can also report issues that are not +resulting in a crash. The default valgrind tool is a memory checker and +you can use it by prefixing the normal command line with ``valgrind``. +Unlike GDB, this will also work for parallel execution, but it is +recommended to redirect the valgrind output to a file (e.g. with +``--log-file=crash-%p.txt``, the %p will be substituted with the +process ID) so that the messages of the multiple valgrind instances to +the console are not mixed. + +.. code-block:: + + $ valgrind ./lmp -in in.melt + ==1933642== Memcheck, a memory error detector + ==1933642== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. + ==1933642== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info + ==1933642== Command: ./lmp -in in.melt + ==1933642== + LAMMPS (19 Mar 2020) + OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) + using 1 OpenMP thread(s) per MPI task + Lattice spacing in x,y,z = 1.6796 1.6796 1.6796 + Created orthogonal box = (0 0 0) to (16.796 16.796 16.796) + 1 by 1 by 1 MPI processor grid + Created 4000 atoms + create_atoms CPU = 0.032964 secs + Neighbor list info ... + update every 20 steps, delay 0 steps, check no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.8 + ghost atom cutoff = 2.8 + binsize = 1.4, bins = 12 12 12 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d/newton + bin: standard + Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 0.005 + ==1933642== Invalid read of size 8 + ==1933642== at 0x6653AB: LAMMPS_NS::PairLJCut::compute(int, int) (pair_lj_cut.cpp:139) + ==1933642== by 0x4CF0A1: LAMMPS_NS::Verlet::setup(int) (verlet.cpp:131) + ==1933642== by 0x49DB41: LAMMPS_NS::Run::command(int, char**) (run.cpp:177) + ==1933642== by 0x412589: void LAMMPS_NS::Input::command_creator(LAMMPS_NS::LAMMPS*, int, char**) (input.cpp:881) + ==1933642== by 0x410AD2: LAMMPS_NS::Input::execute_command() (input.cpp:864) + ==1933642== by 0x4111FA: LAMMPS_NS::Input::file() (input.cpp:229) + ==1933642== by 0x409339: main (main.cpp:65) + ==1933642== Address 0x0 is not stack'd, malloc'd or (recently) free'd + ==1933642== + +As you can see, the stack trace information is similar to that obtained +from GDB. In addition you get a more specific hint about what cause the +segmentation fault, i.e. that it is a NULL pointer dereference. To find +out which pointer exactly was NULL, you need to use the debugger, though. + diff --git a/doc/src/Errors_messages.rst b/doc/src/Errors_messages.rst index 7f2b88d1fccd47456fa2a6dc1233d56e5edc74fc..2140719253c95cbc519f2928fcb29b79199b628f 100644 --- a/doc/src/Errors_messages.rst +++ b/doc/src/Errors_messages.rst @@ -5851,6 +5851,9 @@ Doc page with :doc:`WARNING messages ` Cannot use the temper command with only one processor partition. Use the -partition command-line option. +*Must not have multiple fixes change box parameter ...* + Self-explanatory. + *Must read Atoms before Angles* The Atoms section of a data file must come before an Angles section. diff --git a/doc/src/Howto.rst b/doc/src/Howto.rst index f4376898b1ba3940d37c6f9549267c398dbc78f6..0ca955ab86283c48c028864a69a6a23d52e8cf1c 100644 --- a/doc/src/Howto.rst +++ b/doc/src/Howto.rst @@ -16,6 +16,7 @@ Tutorials howto :name: tutorials :maxdepth: 1 + Howto_cmake Howto_github Howto_pylammps Howto_bash diff --git a/doc/src/Howto_cmake.rst b/doc/src/Howto_cmake.rst new file mode 100644 index 0000000000000000000000000000000000000000..fa6038efb52257fe3f69b3e722cf358298c22f88 --- /dev/null +++ b/doc/src/Howto_cmake.rst @@ -0,0 +1,483 @@ +Using CMake with LAMMPS tutorial +================================ + +The support for building LAMMPS with CMake is a recent addition to +LAMMPS thanks to the efforts of Christoph Junghans (LANL) and Richard +Berger (Temple U). One of the key strengths of CMake is that it is not +tied to a specific platform or build system and thus generate the files +necessary to build and develop for different build systems and on +different platforms. Note, that this applies to the build system itself +not the LAMMPS code. In other words, without additional porting effort, +it is not possible - for example - to compile LAMMPS with Visual C++ on +Windows. The build system output can also include support files +necessary to program LAMMPS as a project in integrated development +environments (IDE) like Eclipse, Visual Studio, QtCreator, Xcode, +CodeBlocks, Kate and others. + +A second important feature of CMake is, that it can detect and validate +available libraries, optimal settings, available support tools and so +on, so that by default LAMMPS will take advantage of available tools +without requiring to provide the details about how to enable/integrate +them. + +The downside of this approach is, that there is some complexity +associated with running CMake itself and how to customize the building +of LAMMPS. This tutorial will show how to manage this through some +selected examples. Please see the chapter about :doc:`building LAMMPS +` for descriptions of specific flags and options for LAMMPS in +general and for specific packages. + +CMake can be used through either the command-line interface (CLI) +program ``cmake`` (or ``cmake3``), a text mode interactive user +interface (TUI) program ``ccmake`` (or ``ccmake3``), or a graphical user +interface (GUI) program ``cmake-gui``. All of them are portable +software available on all supported platforms and can be used +interchangeably. The minimum supported CMake version is 3.10 (3.12 or +later is recommended). + +All details about features and settings for CMake are in the `CMake +online documentation `_. We focus +below on the most important aspects with respect to compiling LAMMPS. + +Prerequisites +------------- + +This tutorial assumes that you are operating in a command-line environment +using a shell like Bash. + +- Linux: any Terminal window will work +- MacOS X: launch the Terminal application. +- Windows 10: install and run the :doc:`Windows subsystem for Linux ` + +We also assume that you have downloaded and unpacked a recent LAMMPS source code package +or used Git to create a clone of the LAMMPS sources on your compilation machine. + +You should change into the top level directory of the LAMMPS source tree all +paths mentioned in the tutorial are relative to that. Immediately after downloading +it should look like this: + +.. code-block:: bash + + $ ls + bench doc lib potentials README tools + cmake examples LICENSE python src + +Build versus source directory +----------------------------- + +When using CMake the build procedure is separated into multiple distinct phases: + + #. **Configuration:** detect or define which features and settings + should be enable and used and how LAMMPS should be compiled + #. **Compilation:** generate and compile all necessary source files + and build libraries and executables. + #. **Installation:** copy selected files from the compilation into + your file system, so they can be used without having to keep the + source and build tree around. + +The configuration and compilation of LAMMPS has to happen in a dedicated +*build directory* which must be different from the source directory. +Also the source directory (``src``) must remain pristine, so it is not +allowed to "install" packages using the traditional make process and +after an compilation attempt all created source files must be removed. +This can be achieved with ``make no-all purge``. + +You can pick **any** folder outside the source tree. We recommend to +create a folder ``build`` in the top-level directory, or multiple +folders in case you want to have separate builds of LAMMPS with +different options (``build-parallel``, ``build-serial``) or with +different compilers (``build-gnu``, ``build-clang``, ``build-intel``) +and so on. All the auxiliary files created by one build process +(executable, object files, log files, etc) are stored in this directory +or sub-directories within it that CMake creates. + + +Running CMake +------------- + +CLI version +^^^^^^^^^^^ + +In the (empty) ``build`` directory, we now run the command ``cmake +../cmake``, which will start the configuration phase and you will see +the progress of the configuration printed to the screen followed by a +summary of the enabled features, options and compiler settings. A typical +summary screen will look like this: + +.. code-block:: + + $ cmake ../cmake/ + -- The CXX compiler identification is GNU 8.2.0 + -- Check for working CXX compiler: /opt/tools/gcc-8.2.0/bin/c++ + -- Check for working CXX compiler: /opt/tools/gcc-8.2.0/bin/c++ - works + -- Detecting CXX compiler ABI info + -- Detecting CXX compiler ABI info - done + -- Detecting CXX compile features + -- Detecting CXX compile features - done + -- Found Git: /usr/bin/git (found version "2.25.2") + -- Running check for auto-generated files from make-based build system + -- Found MPI_CXX: /usr/lib64/mpich/lib/libmpicxx.so (found version "3.1") + -- Found MPI: TRUE (found version "3.1") + -- Looking for C++ include omp.h + -- Looking for C++ include omp.h - found + -- Found OpenMP_CXX: -fopenmp (found version "4.5") + -- Found OpenMP: TRUE (found version "4.5") + -- Found JPEG: /usr/lib64/libjpeg.so (found version "62") + -- Found PNG: /usr/lib64/libpng.so (found version "1.6.37") + -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11") + -- Found GZIP: /usr/bin/gzip + -- Found FFMPEG: /usr/bin/ffmpeg + -- Performing Test COMPILER_SUPPORTS-ffast-math + -- Performing Test COMPILER_SUPPORTS-ffast-math - Success + -- Performing Test COMPILER_SUPPORTS-march=native + -- Performing Test COMPILER_SUPPORTS-march=native - Success + -- Looking for C++ include cmath + -- Looking for C++ include cmath - found + -- Generating style_angle.h... + [...] + -- Generating lmpinstalledpkgs.h... + -- The following tools and libraries have been found and configured: + * Git + * MPI + * OpenMP + * JPEG + * PNG + * ZLIB + + -- <<< Build configuration >>> + Build type: RelWithDebInfo + Install path: /home/akohlmey/.local + Generator: Unix Makefiles using /usr/bin/gmake + -- <<< Compilers and Flags: >>> + -- C++ Compiler: /opt/tools/gcc-8.2.0/bin/c++ + Type: GNU + Version: 8.2.0 + C++ Flags: -O2 -g -DNDEBUG + Defines: LAMMPS_SMALLBIG;LAMMPS_MEMALIGN=64;LAMMPS_JPEG;LAMMPS_PNG;LAMMPS_GZIP;LAMMPS_FFMPEG + Options: -ffast-math;-march=native + -- <<< Linker flags: >>> + -- Executable name: lmp + -- Static library flags: + -- <<< MPI flags >>> + -- MPI includes: /usr/include/mpich-x86_64 + -- MPI libraries: /usr/lib64/mpich/lib/libmpicxx.so;/usr/lib64/mpich/lib/libmpi.so; + -- Configuring done + -- Generating done + -- Build files have been written to: /home/akohlmey/compile/lammps/build + +The ``cmake`` command has one mandatory argument, and that is a folder +with either the file ``CMakeLists.txt`` or ``CMakeCache.txt``. The +``CMakeCache.txt`` file is created during the CMake configuration run +and contains all active settings, thus after a first run of CMake +all future runs in the build folder can use the folder ``.`` and CMake +will know where to find the CMake scripts and reload the settings +from the previous step. This means, that one can modify an existing +configuration by re-running CMake, but only needs to provide flags +indicating the desired change, everything else will be retained. One +can also mix compilation and configuration, i.e. start with a minimal +configuration and then, if needed, enable additional features and +recompile. + +The steps above **will NOT compile the code**\ . The compilation can be +started in a portable fashion with ``cmake --build .``, or you use the +selected built tool, e.g. ``make``. + +TUI version +^^^^^^^^^^^ + +For the text mode UI CMake program the basic principle is the same. +You start the command ``ccmake ../cmake`` in the ``build`` folder. + +.. list-table:: + + * - .. figure:: JPG/ccmake-initial.png + :target: JPG/ccmake-initial.png + :align: center + + Initial ``ccmake`` screen + + - .. figure:: JPG/ccmake-config.png + :target: JPG/ccmake-config.png + :align: center + + Configure output of ``ccmake`` + + - .. figure:: JPG/ccmake-options.png + :target: JPG/ccmake-options.png + :align: center + + Options screen of ``ccmake`` + +This will show you the initial screen (left image) with the empty +configuration cache. Now you type the 'c' key to run the configuration +step. That will do a first configuration run and show the summary +(center image). You exit the summary screen with 'e' and see now the +main screen with detected options and settings. You can now make changes +by moving and down with the arrow keys of the keyboard and modify +entries. For on/off settings, the enter key will toggle the state. +For others, hitting enter will allow you to modify the value and +you commit the change by hitting the enter key again or cancel using +the escape key. All "new" settings will be marked with a star '\*' +and for as long as one setting is marked like this, you have to +re-run the configuration by hitting the 'c' key again, sometimes +multiple times unless the TUI shows the word "generate" next to the +letter 'g' and by hitting the 'g' key the build files will be written +to the folder and the TUI exits. You can quit without generating +build files by hitting 'q'. + +GUI version +^^^^^^^^^^^ + +For the graphical CMake program the steps are similar to the TUI +version. You can type the command ``cmake-gui ../cmake`` in the +``build`` folder. In this case the path to the CMake script folder is +not required, it can also be entered from the GUI. + +.. list-table:: + + * - .. figure:: JPG/cmake-gui-initial.png + :target: JPG/cmake-gui-initial.png + :align: center + + Initial ``cmake-gui`` screen + + - .. figure:: JPG/cmake-gui-popup.png + :target: JPG/cmake-gui-popup.png + :align: center + + Generator selection in ``cmake-gui`` + + - .. figure:: JPG/cmake-gui-options.png + :target: JPG/cmake-gui-options.png + :align: center + + Options screen of ``cmake-gui`` + +Again, you start with an empty configuration cache (left image) and need +to start the configuration step. For the very first configuration in a +folder, you will have a pop-up dialog (center image) asking to select +the desired build tool and some configuration settings (stick with the +default) and then you get the option screen with all new settings +highlighted in red. You can modify them (or not) and click on the +"configure" button again until satisfied and click on the "generate" +button to write out the build files. You can exit the GUI from the +"File" menu or hit "ctrl-q". + + +Setting options +--------------- + +Options that enable, disable or modify settings are modified by setting +the value of CMake variables. This is done on the command line with the +*-D* flag in the format ``-D VARIABLE=value``, e.g. ``-D +CMAKE_BUILD_TYPE=Release`` or ``-D BUILD_MPI=on``. There is one quirk: +when used before the CMake directory, there may be a space between the +*-D* flag and the variable, after it must not be. Such CMake variables +can have boolean values (on/off, yes/no, or 1/0 are all valid) or are +strings representing a choice, or a path, or are free format. If the +string would contain whitespace, it must be put in quotes, for example +``-D CMAKE_TUNE_FLAGS="-ftree-vectorize -ffast-math"``. + +CMake variables fall into two categories: 1) common CMake variables that +are used by default for any CMake configuration setup and 2) project +specific variables, i.e. settings that are specific for LAMMPS. +Also CMake variables can be flagged as *advanced*, which means they are +not shown in the text mode or graphical CMake program in the overview +of all settings by default, but only when explicitly requested (by hitting +the 't' key or clicking on the 'Advanced' check-box). + +Some common CMake variables +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + + * - Variable + - Description + * - ``CMAKE_INSTALL_PREFIX`` + - root directory of install location for ``make install`` (default: ``$HOME/.local``) + * - ``CMAKE_BUILD_TYPE`` + - controls compilation options: + one of ``RelWithDebInfo`` (default), ``Release``, ``Debug``, ``MinSizeRel`` + * - ``BUILD_SHARED_LIBS`` + - if set to ``on`` build the LAMMPS library as shared library (default: ``off``) + * - ``CMAKE_MAKE_PROGRAM`` + - name/path of the compilation command (default depends on *-G* option, usually ``make``) + * - ``CMAKE_VERBOSE_MAKEFILE`` + - if set to ``on`` echo commands while executing during build (default: ``off``) + * - ``CMAKE_C_COMPILER`` + - C compiler to be used for compilation (default: system specific, ``gcc`` on Linux) + * - ``CMAKE_CXX_COMPILER`` + - C++ compiler to be used for compilation (default: system specific, ``g++`` on Linux) + * - ``CMAKE_Fortran_COMPILER`` + - Fortran compiler to be used for compilation (default: system specific, ``gfortran`` on Linux) + * - ``CXX_COMPILER_LAUNCHER`` + - tool to launch the C++ compiler, e.g. ``ccache`` or ``distcc`` for faster compilation (default: empty) + +Some common LAMMPS specific variables +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + + * - Variable + - Description + * - ``BUILD_MPI`` + - build LAMMPS with MPI support (default: ``on`` if a working MPI available, else ``off``) + * - ``BUILD_OMP`` + - build LAMMPS with OpenMP support (default: ``on`` if compiler supports OpenMP fully, else ``off``) + * - ``BUILD_TOOLS`` + - compile some additional executables from the ``tools`` folder (default: ``off``) + * - ``BUILD_DOC`` + - include building the HTML format documentation for packaging/installing (default: ``off``) + * - ``CMAKE_TUNE_FLAGS`` + - common compiler flags, for optimization or instrumentation (default: compiler specific) + * - ``LAMMPS_MACHINE`` + - when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a`` + * - ``LAMMPS_EXCEPTIONS`` + - when set to ``on`` errors will throw a C++ exception instead of aborting (default: ``off``) + * - ``FFT`` + - select which FFT library to use: ``FFTW3``, ``MKL``, ``KISS`` (default, unless FFTW3 is found) + * - ``FFT_SINGLE`` + - select whether to use single precision FFTs (default: ``off``) + * - ``WITH_JPEG`` + - whether to support JPEG format in :doc:`dump image ` (default: ``on`` if found) + * - ``WITH_PNG`` + - whether to support PNG format in :doc:`dump image ` (default: ``on`` if found) + * - ``WITH_GZIP`` + - whether to support reading and writing compressed files (default: ``on`` if found) + * - ``WITH_FFMPEG`` + - whether to support generating movies with :doc:`dump movie ` (default: ``on`` if found) + +Enabling or disabling LAMMPS packages +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The LAMMPS software is organized into a common core that is always +included and a large number of :doc:`add-on packages ` that +have to be enabled to be included into a LAMMPS executable. Packages +are enabled through setting variables of the kind ``PKG_`` to +``on`` and disabled by setting them to ``off`` (or using ``yes``, +``no``, ``1``, ``0`` correspondingly). ```` has to be replaced by +the name of the package, e.g. ``MOLECULE`` or ``USER-MISC``. + + +Using presets +------------- + +Since LAMMPS has a lot of optional features and packages, specifying +them all on the command line can be tedious. Or when selecting a +different compiler toolchain, multiple options have to be changed +consistently and that is rather error prone. Or when enabling certain +packages, they require consistent settings to be operated in a +particular mode. For this purpose, we are providing a selection of +"preset files" for CMake in the folder ``cmake/presets``. They +represent a way to pre-load or override the CMake configuration cache by +setting or changing CMake variables. Preset files are loaded using the +*-C* command line flag. You can combine loading multiple preset files or +change some variables later with additional *-D* flags. A few examples: + +.. code-block:: bash + + cmake -C ../cmake/presets/minimal.cmake -D PKG_MISC=on ../cmake + cmake -C ../cmake/presets/clang.cmake -C ../cmake/presets/most.cmake ../cmake + cmake -C ../cmake/presets/minimal.cmake -D BUILD_MPI=off ../cmake + +The first command will install the packages ``KSPACE``, ``MANYBODY``, +``MOLECULE``, ``RIGID`` and ``MISC``; the first four from the preset +file and the fifth from the explicit variable definition. The second +command will first switch the compiler toolchain to use the Clang +compilers and install a large number of packages that are not depending +on any special external libraries or tools and are not very unusual. +The third command will enable the first four packages like above and +then enforce compiling LAMMPS as a serial program (using the MPI STUBS +library). + +It is also possible to do this incrementally. + +.. code-block:: bash + + cmake -C ../cmake/presets/minimal.cmake ../cmake + cmake -D PKG_MISC=on . + +will achieve the same configuration like in the first example above. In +this scenario it is particularly convenient to do the second +configuration step using either the text mode or graphical user +interface (``ccmake`` or ``cmake-gui``). + +Compilation and build targets +----------------------------- + +The actual compilation will be started by running the selected build +command (on Linux this is by default ``make``, see below how to select +alternatives). You can also use the portable command ``cmake --build .`` +which will adapt to whatever the selected build command is. +This is particularly convenient, if you have set a custom build command +via the ``CMAKE_MAKE_PROGRAM`` variable. + +When calling the build program, you can also select which "target" is to +be build through appending the name of the target to the build command. +Example: ``cmake --build . all``. The following abstract targets are available: + +.. list-table:: + :header-rows: 1 + + * - Target + - Description + * - ``all`` + - build "everything" (default) + * - ``lammps`` + - build the LAMMPS library and executable + * - ``doc`` + - build the HTML documentation (if configured) + * - ``install`` + - install all target files into folders in ``CMAKE_INSTALL_PREFIX`` + * - ``test`` + - run some simple tests (if configured with ``-D ENABLE_TESTING=on``) + * - ``clean`` + - remove all generated files + + +Choosing generators +------------------- + +While CMake usually defaults to creating makefiles to compile software +with the ``make`` program, it supports multiple alternate build tools +(e.g. ``ninja-build`` which tends to be faster and more efficient in +parallelizing builds than ``make``) and can generate project files for +integrated development environments (IDEs) like VisualStudio, Eclipse or +CodeBlocks. This is specific to how the local CMake version was +configured and compiled. The list of available options can be seen at +the end of the output of ``cmake --help``. Example on Fedora 31 this is: + +.. code-block:: + + Generators + + The following generators are available on this platform (* marks default): + * Unix Makefiles = Generates standard UNIX makefiles. + Green Hills MULTI = Generates Green Hills MULTI files + (experimental, work-in-progress). + Ninja = Generates build.ninja files. + Ninja Multi-Config = Generates build-.ninja files. + Watcom WMake = Generates Watcom WMake makefiles. + CodeBlocks - Ninja = Generates CodeBlocks project files. + CodeBlocks - Unix Makefiles = Generates CodeBlocks project files. + CodeLite - Ninja = Generates CodeLite project files. + CodeLite - Unix Makefiles = Generates CodeLite project files. + Sublime Text 2 - Ninja = Generates Sublime Text 2 project files. + Sublime Text 2 - Unix Makefiles + = Generates Sublime Text 2 project files. + Kate - Ninja = Generates Kate project files. + Kate - Unix Makefiles = Generates Kate project files. + Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files. + Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files. + +Below is a screenshot of using the CodeBlocks IDE with the ninja build tool +after running CMake as follows: + +.. code-block:: bash + + cmake -G 'CodeBlocks - Ninja' ../cmake/presets/most.cmake ../cmake/ + +.. image:: JPG/cmake-codeblocks.png + :align: center diff --git a/doc/src/Install_linux.rst b/doc/src/Install_linux.rst index ec4f3fcc8ec984e8161da618571e399b1f033cb5..ca3f794fc23a93caa2f952926b202ef183d3b7e8 100644 --- a/doc/src/Install_linux.rst +++ b/doc/src/Install_linux.rst @@ -24,12 +24,13 @@ allows you to install LAMMPS with a single command, and stay up-to-date with the current version of LAMMPS by simply updating your operating system. -To install the appropriate personal-package archive (PPA), do the +To install the appropriate personal-package archives (PPAs), do the following once: .. code-block:: bash $ sudo add-apt-repository ppa:gladky-anton/lammps + $ sudo add-apt-repository ppa:openkim/latest $ sudo apt-get update To install LAMMPS do the following once: @@ -38,7 +39,7 @@ To install LAMMPS do the following once: $ sudo apt-get install lammps-daily -This downloads an executable named "lmp_daily" to your box, which +This downloads an executable named ``lmp_daily`` to your box, which can then be used in the usual way to run input scripts: .. code-block:: bash @@ -60,29 +61,38 @@ To get a copy of the current documentation and examples: $ sudo apt-get install lammps-daily-doc which will download the doc files in -/usr/share/doc/lammps-daily-doc/doc and example problems in -/usr/share/doc/lammps-doc/examples. +``/usr/share/doc/lammps-daily-doc/doc`` and example problems in +``/usr/share/doc/lammps-doc/examples``. -Note that you may still wish to download the tarball to get potential -files and auxiliary tools. +To get a copy of the current potentials files: -To un-install LAMMPS, do the following: +.. code-block:: bash + + $ sudo apt-get install lammps-daily-data + +which will download the potentials files to +``/usr/share/lammps-daily/potentials``. The ``lmp_daily`` binary is +hard-coded to look for potential files in this directory (it does not +use the `LAMMPS_POTENTIALS` environment variable, as described +in :doc:`pair_coeff ` command). + +The ``lmp_daily`` binary is built with the :ref:`KIM package ` which +results in the above command also installing the `kim-api` binaries when LAMMPS +is installed. In order to use potentials from `openkim.org `_, you +can install the `openkim-models` package .. code-block:: bash - $ sudo apt-get remove lammps-daily + $ sudo apt-get install openkim-models -Note that the lammps-daily executable is built with the following -sequence of make commands, as if you had done the same with the -unpacked tarball files in the src directory: +To un-install LAMMPS, do the following: .. code-block:: bash - $ make yes-all - $ make no-lib - $ make mpi + $ sudo apt-get remove lammps-daily -Thus it builds with FFTW3 and OpenMPI. +Please use ``lmp_daily -help`` to see which compilation options, packages, +and styles are included in the binary. Thanks to Anton Gladky (gladky.anton at gmail.com) for setting up this Ubuntu package capability. @@ -103,14 +113,14 @@ linking to the C library interface (lammps-devel, lammps-mpich-devel, lammps-openmpi-devel), the header for compiling programs using the C library interface (lammps-headers), and the LAMMPS python module for Python 3. All packages can be installed at the same -time and the name of the LAMMPS executable is *lmp* and *lmp_openmpi* -or *lmp_mpich* respectively. By default, *lmp* will refer to the +time and the name of the LAMMPS executable is ``lmp`` and ``lmp_openmpi`` +or ``lmp_mpich`` respectively. By default, ``lmp`` will refer to the serial executable, unless one of the MPI environment modules is loaded -("module load mpi/mpich-x86_64" or "module load mpi/openmpi-x86_64"). +(``module load mpi/mpich-x86_64`` or ``module load mpi/openmpi-x86_64``). Then the corresponding parallel LAMMPS executable can be used. The same mechanism applies when loading the LAMMPS python module. -To install LAMMPS with OpenMPI and run an input in.lj with 2 CPUs do: +To install LAMMPS with OpenMPI and run an input ``in.lj`` with 2 CPUs do: .. code-block:: bash @@ -118,10 +128,10 @@ To install LAMMPS with OpenMPI and run an input in.lj with 2 CPUs do: $ module load mpi/openmpi-x86_64 $ mpirun -np 2 lmp -in in.lj -The "dnf install" command is needed only once. In case of a new LAMMPS -stable release, "dnf update" will automatically update to the newer +The ``dnf install`` command is needed only once. In case of a new LAMMPS +stable release, ``dnf update`` will automatically update to the newer version as soon at the RPM files are built and uploaded to the download -mirrors. The "module load" command is needed once per (shell) session +mirrors. The ``module load`` command is needed once per (shell) session or shell terminal instance, unless it is automatically loaded from the shell profile. @@ -134,7 +144,7 @@ can install the `openkim-models` package $ dnf install openkim-models -Please use "lmp -help" to see which compilation options, packages, +Please use ``lmp -help`` to see which compilation options, packages, and styles are included in the binary. Thanks to Christoph Junghans (LANL) for making LAMMPS available in Fedora. @@ -153,10 +163,10 @@ in the `Extra Packages for Enterprise Linux (EPEL) repository ` which diff --git a/doc/src/Install_mac.rst b/doc/src/Install_mac.rst index 41b53c0595c4e796c0ac99192b466b1c01321b14..642169ffe5ff1ae0a5f4324e8e9a3d77a6f69922 100644 --- a/doc/src/Install_mac.rst +++ b/doc/src/Install_mac.rst @@ -34,9 +34,9 @@ install the `openkim-models` package % brew install openkim-models If you have problems with the installation you can post issues to -`this link `_. +`this link `_. -.. _homebrew: https://github.com/Homebrew/homebrew-core/issues +.. _homebrew: https://brew.sh Thanks to Derek Thomas (derekt at cello.t.u-tokyo.ac.jp) for setting up the Homebrew capability. diff --git a/doc/src/JPG/bow_tutorial_01.png b/doc/src/JPG/bow_tutorial_01.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_01_small.png b/doc/src/JPG/bow_tutorial_01_small.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_02.png b/doc/src/JPG/bow_tutorial_02.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_02_small.png b/doc/src/JPG/bow_tutorial_02_small.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_03.png b/doc/src/JPG/bow_tutorial_03.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_03_small.png b/doc/src/JPG/bow_tutorial_03_small.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_04.png b/doc/src/JPG/bow_tutorial_04.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_04_small.png b/doc/src/JPG/bow_tutorial_04_small.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_05.png b/doc/src/JPG/bow_tutorial_05.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_06.png b/doc/src/JPG/bow_tutorial_06.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_07.png b/doc/src/JPG/bow_tutorial_07.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_08.png b/doc/src/JPG/bow_tutorial_08.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_09.png b/doc/src/JPG/bow_tutorial_09.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/bow_tutorial_10.png b/doc/src/JPG/bow_tutorial_10.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/ccmake-config.png b/doc/src/JPG/ccmake-config.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7508964653c4c217f36ed39b5c4fdb93e175ce Binary files /dev/null and b/doc/src/JPG/ccmake-config.png differ diff --git a/doc/src/JPG/ccmake-initial.png b/doc/src/JPG/ccmake-initial.png new file mode 100644 index 0000000000000000000000000000000000000000..d6291afde52f96d0debf00affca6864ba821b663 Binary files /dev/null and b/doc/src/JPG/ccmake-initial.png differ diff --git a/doc/src/JPG/ccmake-options.png b/doc/src/JPG/ccmake-options.png new file mode 100644 index 0000000000000000000000000000000000000000..b05d58c1d2e87d48128fa3538d56bc935ddc3b95 Binary files /dev/null and b/doc/src/JPG/ccmake-options.png differ diff --git a/doc/src/JPG/cmake-codeblocks.png b/doc/src/JPG/cmake-codeblocks.png new file mode 100644 index 0000000000000000000000000000000000000000..d0d96fec8c5666fe3eb0721c426a435ea73c8167 Binary files /dev/null and b/doc/src/JPG/cmake-codeblocks.png differ diff --git a/doc/src/JPG/cmake-gui-initial.png b/doc/src/JPG/cmake-gui-initial.png new file mode 100644 index 0000000000000000000000000000000000000000..062bc6ba836c3ab6ecf7ea31954362e0441353b8 Binary files /dev/null and b/doc/src/JPG/cmake-gui-initial.png differ diff --git a/doc/src/JPG/cmake-gui-options.png b/doc/src/JPG/cmake-gui-options.png new file mode 100644 index 0000000000000000000000000000000000000000..abbf63494612a88e2223d28f12474d28db374613 Binary files /dev/null and b/doc/src/JPG/cmake-gui-options.png differ diff --git a/doc/src/JPG/cmake-gui-popup.png b/doc/src/JPG/cmake-gui-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..d623aad30b4be2364a466fdde4af5241a0eb87dc Binary files /dev/null and b/doc/src/JPG/cmake-gui-popup.png differ diff --git a/doc/src/JPG/offload_knc.png b/doc/src/JPG/offload_knc.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/rhodo_staggered.jpg b/doc/src/JPG/rhodo_staggered.jpg old mode 100755 new mode 100644 diff --git a/doc/src/JPG/saed_ewald_intersect.jpg b/doc/src/JPG/saed_ewald_intersect.jpg old mode 100755 new mode 100644 diff --git a/doc/src/JPG/saed_ewald_intersect_small.jpg b/doc/src/JPG/saed_ewald_intersect_small.jpg old mode 100755 new mode 100644 diff --git a/doc/src/JPG/saed_mesh.jpg b/doc/src/JPG/saed_mesh.jpg old mode 100755 new mode 100644 diff --git a/doc/src/JPG/saed_mesh_small.jpg b/doc/src/JPG/saed_mesh_small.jpg old mode 100755 new mode 100644 diff --git a/doc/src/JPG/user_intel.png b/doc/src/JPG/user_intel.png old mode 100755 new mode 100644 diff --git a/doc/src/JPG/xrd_mesh.jpg b/doc/src/JPG/xrd_mesh.jpg old mode 100755 new mode 100644 diff --git a/doc/src/JPG/xrd_mesh_small.jpg b/doc/src/JPG/xrd_mesh_small.jpg old mode 100755 new mode 100644 diff --git a/doc/src/Python_shlib.rst b/doc/src/Python_shlib.rst index 0c86362e1293d7fc6a7d5139bbf1e23ec33e3526..b02fcd7bb861aafeec10b8c6ed072f8dc2711ed9 100644 --- a/doc/src/Python_shlib.rst +++ b/doc/src/Python_shlib.rst @@ -1,6 +1,8 @@ Build LAMMPS as a shared library ================================ +.. TODO this is mostly redundant and should be addressed in the 'progguide' branch if it has not already + Build LAMMPS as a shared library using make ------------------------------------------- @@ -14,7 +16,7 @@ From the src directory, type .. code-block:: bash - make foo mode=shlib + make foo mode=shared where foo is the machine target name, such as mpi or serial. This should create the file liblammps_foo.so in the src directory, as @@ -39,7 +41,6 @@ shared library: .. code-block:: bash - -D BUILD_LIB=on # enable building LAMMPS as a library -D BUILD_SHARED_LIBS=on # enable building of LAMMPS shared library (both options are needed!) What this does is create a liblammps.so which contains the majority of LAMMPS @@ -59,7 +60,7 @@ CMAKE_INSTALL_PREFIX. # build library mkdir build cd build - cmake -D PKG_PYTHON=on -D BUILD_LIB=on -D BUILD_SHARED_LIBS=on -D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV ../cmake + cmake -D PKG_PYTHON=on -D BUILD_SHARED_LIBS=on -D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV ../cmake make -j 4 # install into prefix diff --git a/doc/src/Speed_compare.rst b/doc/src/Speed_compare.rst index d3947ec3ef856b4d22d6b8b2c5968974184516d5..4ab616a5dab8903fe864c0f4d5a2c1c8de271d4e 100644 --- a/doc/src/Speed_compare.rst +++ b/doc/src/Speed_compare.rst @@ -87,7 +87,7 @@ section below for examples where this has been done. * The GPU package requires neighbor lists to be built on the CPU when using exclusion lists, or a triclinic simulation box. * The GPU package can be compiled for CUDA or OpenCL and thus supports - both, Nvidia and AMD GPUs well. On Nvidia hardware, using CUDA is typically + both, NVIDIA and AMD GPUs well. On NVIDIA hardware, using CUDA is typically resulting in equal or better performance over OpenCL. * OpenCL in the GPU package does theoretically also support Intel CPUs or Intel Xeon Phi, but the native support for those in KOKKOS (or USER-INTEL) diff --git a/doc/src/Speed_kokkos.rst b/doc/src/Speed_kokkos.rst index ab8444b845d5e559c3c515765027b94abd9e0623..3269564d2145a51992591e2062399bc7b8ed4a56 100644 --- a/doc/src/Speed_kokkos.rst +++ b/doc/src/Speed_kokkos.rst @@ -9,10 +9,7 @@ different back end languages such as CUDA, OpenMP, or Pthreads. The Kokkos library also provides data abstractions to adjust (at compile time) the memory layout of data structures like 2d and 3d arrays to optimize performance on different hardware. For more information on -Kokkos, see `GitHub `_. Kokkos is -part of `Trilinos `_. The Kokkos -library was written primarily by Carter Edwards, Christian Trott, and -Dan Sunderland (all Sandia). +Kokkos, see `GitHub `_. The LAMMPS KOKKOS package contains versions of pair, fix, and atom styles that use data structures and macros provided by the Kokkos @@ -21,7 +18,7 @@ package was developed primarily by Christian Trott (Sandia) and Stan Moore (Sandia) with contributions of various styles by others, including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez (Sandia). For more information on developing using Kokkos abstractions -see the Kokkos programmers' guide at /lib/kokkos/doc/Kokkos_PG.pdf. +see the Kokkos `Wiki `_. Kokkos currently provides support for 3 modes of execution (per MPI task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP @@ -31,33 +28,30 @@ compatible with specific hardware. .. note:: - Kokkos support within LAMMPS must be built with a C++11 compatible - compiler. This means GCC version 4.7.2 or later, Intel 14.0.4 or later, or - Clang 3.5.2 or later is required. - -.. note:: - - To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA + To build with Kokkos support for NVIDIA GPUs, the NVIDIA CUDA toolkit software version 9.0 or later must be installed on your system. See - the discussion for the :doc:`GPU package ` for details of how - to check and do this. + the discussion for the :doc:`GPU package ` for details of + how to check and do this. .. note:: - Kokkos with CUDA currently implicitly assumes that the MPI library - is CUDA-aware. This is not always the case, especially when using - pre-compiled MPI libraries provided by a Linux distribution. This is not - a problem when using only a single GPU with a single MPI rank. When - running with multiple MPI ranks, you may see segmentation faults without - CUDA-aware MPI support. These can be avoided by adding the flags :doc:`-pk kokkos cuda/aware off ` to the LAMMPS command line or by - using the command :doc:`package kokkos cuda/aware off ` in the - input file. + Kokkos with CUDA currently implicitly assumes that the MPI library is + CUDA-aware. This is not always the case, especially when using + pre-compiled MPI libraries provided by a Linux distribution. This is + not a problem when using only a single GPU with a single MPI + rank. When running with multiple MPI ranks, you may see segmentation + faults without CUDA-aware MPI support. These can be avoided by adding + the flags :doc:`-pk kokkos cuda/aware off ` to the + LAMMPS command line or by using the command :doc:`package kokkos + cuda/aware off ` in the input file. -**Building LAMMPS with the KOKKOS package:** +Building LAMMPS with the KOKKOS package +""""""""""""""""""""""""""""""""""""""" See the :ref:`Build extras ` doc page for instructions. -**Running LAMMPS with the KOKKOS package:** +Running LAMMPS with the KOKKOS package +"""""""""""""""""""""""""""""""""""""" All Kokkos operations occur within the context of an individual MPI task running on a single node of the machine. The total number of MPI @@ -66,7 +60,8 @@ usual manner via the mpirun or mpiexec commands, and is independent of Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and -npernode switches. Ditto for MPICH via -np and -ppn. -**Running on a multi-core CPU:** +Running on a multi-core CPU +^^^^^^^^^^^^^^^^^^^^^^^^^^^ Here is a quick overview of how to use the KOKKOS package for CPU acceleration, assuming one or more 16-core nodes. @@ -142,7 +137,8 @@ atom. When using the Kokkos Serial back end or the OpenMP back end with a single thread, no duplication or atomic operations are used. For CUDA and half neighbor lists, the KOKKOS package always uses atomic operations. -**Core and Thread Affinity:** +CPU Cores, Sockets and Thread Affinity +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When using multi-threading, it is important for performance to bind both MPI tasks to physical cores, and threads to physical cores, so @@ -156,15 +152,16 @@ for your MPI installation), binding can be forced with these flags: OpenMPI 1.8: mpirun -np 2 --bind-to socket --map-by socket ./lmp_openmpi ... Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ... -For binding threads with KOKKOS OpenMP, use thread affinity -environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or -later, intel 12 or later) setting the environment variable -OMP_PROC_BIND=true should be sufficient. In general, for best -performance with OpenMP 4.0 or better set OMP_PROC_BIND=spread and -OMP_PLACES=threads. For binding threads with the KOKKOS pthreads -option, compile LAMMPS the KOKKOS HWLOC=yes option as described below. +For binding threads with KOKKOS OpenMP, use thread affinity environment +variables to force binding. With OpenMP 3.1 (gcc 4.7 or later, intel 12 +or later) setting the environment variable ``OMP_PROC_BIND=true`` should +be sufficient. In general, for best performance with OpenMP 4.0 or later +set ``OMP_PROC_BIND=spread`` and ``OMP_PLACES=threads``. For binding +threads with the KOKKOS pthreads option, compile LAMMPS with the hwloc +or libnuma support enabled as described in the :ref:`extra build options page `. -**Running on Knight's Landing (KNL) Intel Xeon Phi:** +Running on Knight's Landing (KNL) Intel Xeon Phi +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Here is a quick overview of how to use the KOKKOS package for the Intel Knight's Landing (KNL) Xeon Phi: @@ -222,7 +219,8 @@ threads/task as Nt. The product of these two values should be N, i.e. them in "native" mode, not "offload" mode like the USER-INTEL package supports. -**Running on GPUs:** +Running on GPUs +^^^^^^^^^^^^^^^ Use the "-k" :doc:`command-line switch ` to specify the number of GPUs per node. Typically the -np setting of the mpirun command @@ -257,7 +255,7 @@ one or more nodes, each with two GPUs: running on GPUs is to use "full" neighbor lists and set the Newton flag to "off" for both pairwise and bonded interactions, along with threaded communication. When running on Maxwell or Kepler GPUs, this will - typically be best. For Pascal GPUs, using "half" neighbor lists and + typically be best. For Pascal GPUs and beyond, using "half" neighbor lists and setting the Newton flag to "on" may be faster. For many pair styles, setting the neighbor binsize equal to twice the CPU default value will give speedup, which is the default when running on GPUs. Use the "-pk @@ -270,13 +268,6 @@ one or more nodes, each with two GPUs: mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff -.. note:: - - For good performance of the KOKKOS package on GPUs, you must - have Kepler generation GPUs (or later). The Kokkos library exploits - texture cache options not supported by Telsa generation GPUs (or - older). - .. note:: When using a GPU, you will achieve the best performance if your @@ -293,7 +284,8 @@ one or more nodes, each with two GPUs: kspace, etc., you must set the environment variable CUDA_LAUNCH_BLOCKING=1. However, this will reduce performance and is not recommended for production runs. -**Run with the KOKKOS package by editing an input script:** +Run with the KOKKOS package by editing an input script +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Alternatively the effect of the "-sf" or "-pk" switches can be duplicated by adding the :doc:`package kokkos ` or :doc:`suffix kk ` commands to your input script. @@ -316,17 +308,24 @@ You only need to use the :doc:`package kokkos ` command if you wish to change any of its option defaults, as set by the "-k on" :doc:`command-line switch `. -**Using OpenMP threading and CUDA together (experimental):** +**Using OpenMP threading and CUDA together:** With the KOKKOS package, both OpenMP multi-threading and GPUs can be -used together in a few special cases. In the Makefile, the -KOKKOS_DEVICES variable must include both "Cuda" and "OpenMP", as is -the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi +compiled and used together in a few special cases. In the makefile for +the conventional build, the KOKKOS_DEVICES variable must include both, +"Cuda" and "OpenMP", as is the case for ``/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi``. .. code-block:: bash KOKKOS_DEVICES=Cuda,OpenMP +When building with CMake you need to enable both features as it is done +in the ``kokkos-cuda.cmake`` CMake preset file. + +.. code-block:: bash + + cmake ../cmake -DKokkos_ENABLE_CUDA=yes -DKokkos_ENABLE_OPENMP=yes + The suffix "/kk" is equivalent to "/kk/device", and for Kokkos CUDA, using the "-sf kk" in the command line gives the default CUDA version everywhere. However, if the "/kk/host" suffix is added to a specific @@ -360,7 +359,8 @@ suffix for kspace and bonds, angles, etc. in the input file and the sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1" so CPU/GPU overlap can occur. -**Speed-ups to expect:** +Performance to expect +""""""""""""""""""""" The performance of KOKKOS running in different modes is a function of your hardware, which KOKKOS-enable styles are used, and the problem @@ -377,52 +377,26 @@ Generally speaking, the following rules of thumb apply: performance of a KOKKOS style is a bit slower than the USER-OMP package. * When running large number of atoms per GPU, KOKKOS is typically faster - than the GPU package. + than the GPU package when compiled for double precision. The benefit + of using single or mixed precision with the GPU package depends + significantly on the hardware in use and the simulated system and pair + style. * When running on Intel hardware, KOKKOS is not as fast as - the USER-INTEL package, which is optimized for that hardware. + the USER-INTEL package, which is optimized for x86 hardware (not just + from Intel) and compilation with the Intel compilers. The USER-INTEL + package also can increase the vector length of vector instructions + by switching to single or mixed precision mode. See the `Benchmark page `_ of the LAMMPS web site for performance of the KOKKOS package on different hardware. -**Advanced Kokkos options:** - -There are other allowed options when building with the KOKKOS package. -As explained on the :ref:`Build extras ` doc page, -they can be set either as variables on the make command line or in -Makefile.machine, or they can be specified as CMake variables. Each -takes a value shown below. The default value is listed, which is set -in the lib/kokkos/Makefile.kokkos file. - -* KOKKOS_DEBUG, values = *yes*\ , *no*\ , default = *no* -* KOKKOS_USE_TPLS, values = *hwloc*\ , *librt*\ , *experimental_memkind*, default = *none* -* KOKKOS_CXX_STANDARD, values = *c++11*\ , *c++1z*\ , default = *c++11* -* KOKKOS_OPTIONS, values = *aggressive_vectorization*, *disable_profiling*, default = *none* -* KOKKOS_CUDA_OPTIONS, values = *force_uvm*, *use_ldg*, *rdc*\ , *enable_lambda*, default = *enable_lambda* - -KOKKOS_USE_TPLS=hwloc binds threads to hardware cores, so they do not -migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be -used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not -necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP -provides alternative methods via environment variables for binding -threads to hardware cores. More info on binding threads to cores is -given on the :doc:`Speed omp ` doc page. - -KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism -on most Unix platforms. This library is not available on all -platforms. - -KOKKOS_DEBUG is only useful when developing a Kokkos-enabled style -within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time -debugging information that can be useful. It also enables runtime -bounds checking on Kokkos data structures. - -KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when -building LAMMPS. - -KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS -package must be compiled with the *enable_lambda* option when using -GPUs. +Advanced Kokkos options +""""""""""""""""""""""" + +There are other allowed options when building with the KOKKOS package +that can improve performance or assist in debugging or profiling. +They are explained on the :ref:`KOKKOS section of the build extras ` doc page, Restrictions """""""""""" diff --git a/doc/src/Speed_packages.rst b/doc/src/Speed_packages.rst index ab02ba7f48a20fce7afcb5b985dd46c1f5f24dff..685bd3c601e9a3ac9bdcf9d62286c2e0445a0a2a 100644 --- a/doc/src/Speed_packages.rst +++ b/doc/src/Speed_packages.rst @@ -20,7 +20,7 @@ standard or user packages: +-----------------------------------------+-------------------------------------------------------+ | :doc:`USER-INTEL Package ` | for Intel CPUs and Intel Xeon Phi | +-----------------------------------------+-------------------------------------------------------+ -| :doc:`KOKKOS Package ` | for Nvidia GPUs, Intel Xeon Phi, and OpenMP threading | +| :doc:`KOKKOS Package ` | for NVIDIA GPUs, Intel Xeon Phi, and OpenMP threading | +-----------------------------------------+-------------------------------------------------------+ | :doc:`USER-OMP Package ` | for OpenMP threading and generic CPU optimizations | +-----------------------------------------+-------------------------------------------------------+ diff --git a/doc/src/balance.rst b/doc/src/balance.rst index 5e631fdd2754941ed30c5eea7e0df04e2e0dcb45..58737249242557d5ce1e140cfc44b5c0018b73f6 100644 --- a/doc/src/balance.rst +++ b/doc/src/balance.rst @@ -175,23 +175,27 @@ a logical 3d grid of processors. They operate by changing the cutting planes (or lines) between processors in 3d (or 2d), to adjust the volume (area in 2d) assigned to each processor, as in the following 2d diagram where processor sub-domains are shown and particles are -colored by the processor that owns them. The leftmost diagram is the -default partitioning of the simulation box across processors (one -sub-box for each of 16 processors); the middle diagram is after a -"grid" method has been applied. - -.. image:: JPG/balance_uniform_small.jpg - :target: JPG/balance_uniform.jpg -.. image:: JPG/balance_nonuniform_small.jpg - :target: JPG/balance_nonuniform.jpg -.. image:: JPG/balance_rcb_small.jpg - :target: JPG/balance_rcb.jpg - -The *rcb* style is a "tiling" method which does not produce a logical -3d grid of processors. Rather it tiles the simulation domain with -rectangular sub-boxes of varying size and shape in an irregular -fashion so as to have equal numbers of particles (or weight) in each -sub-box, as in the rightmost diagram above. +colored by the processor that owns them. + +.. list-table:: + + * - .. figure:: JPG/balance_uniform_small.jpg + :target: JPG/balance_uniform.jpg + + - .. figure:: JPG/balance_nonuniform_small.jpg + :target: JPG/balance_nonuniform.jpg + + - .. figure:: JPG/balance_rcb_small.jpg + :target: JPG/balance_rcb.jpg + +The leftmost diagram is the default partitioning of the simulation box +across processors (one sub-box for each of 16 processors); the middle +diagram is after a "grid" method has been applied. The *rcb* style is a +"tiling" method which does not produce a logical 3d grid of processors. +Rather it tiles the simulation domain with rectangular sub-boxes of +varying size and shape in an irregular fashion so as to have equal +numbers of particles (or weight) in each sub-box, as in the rightmost +diagram above. The "grid" methods can be used with either of the :doc:`comm_style ` command options, *brick* or *tiled*\ . The diff --git a/doc/src/change_box.rst b/doc/src/change_box.rst index 2ab70ddec86e5a149c636b7e77146521db61c42f..a21f74e93b98f79965ff45925d00a2d95c67edb9 100644 --- a/doc/src/change_box.rst +++ b/doc/src/change_box.rst @@ -142,24 +142,40 @@ new owning processors. .. note:: - The simulation box size/shape can be changed by arbitrarily - large amounts by this command. This is not a problem, except that the + The simulation box size/shape can be changed by arbitrarily large + amounts by this command. This is not a problem, except that the mapping of processors to the simulation box is not changed from its initial 3d configuration; see the :doc:`processors ` command. Thus, if the box size/shape changes dramatically, the - mapping of processors to the simulation box may not end up as optimal - as the initial mapping attempted to be. + mapping of processors to the simulation box may not end up as + optimal as the initial mapping attempted to be. You may wish to + re-balance the atoms by using the :doc:`balance ` command + if that is the case. .. note:: - Because the keywords used in this command are applied one at a - time to the simulation box and the atoms in it, care must be taken - with triclinic cells to avoid exceeding the limits on skew after each - transformation in the sequence. If skew is exceeded before the final - transformation this can be avoided by changing the order of the - sequence, or breaking the transformation into two or more smaller - transformations. For more information on the allowed limits for box - skew see the discussion on triclinic boxes on :doc:`Howto triclinic ` doc page. + You cannot use this command after reading a restart file (and + before a run is performed) if the restart file stored per-atom + information from a fix and any of the specified keywords change the + box size or shape or boundary conditions. This is because atoms + may be moved to new processors and the restart info will not + migrate with them. LAMMPS will generate an error if this could + happen. Only the *ortho* and *triclinic* keywords do not trigger + this error. One solution is to perform a "run 0" command before + using the change_box command. This clears the per-atom restart + data, whether it has been re-assigned to a new fix or not. + +.. note:: + + Because the keywords used in this command are applied one at a time + to the simulation box and the atoms in it, care must be taken with + triclinic cells to avoid exceeding the limits on skew after each + transformation in the sequence. If skew is exceeded before the + final transformation this can be avoided by changing the order of + the sequence, or breaking the transformation into two or more + smaller transformations. For more information on the allowed + limits for box skew see the discussion on triclinic boxes on + :doc:`Howto triclinic ` doc page. ---------- @@ -283,6 +299,12 @@ match what is stored in the restart file. So if you wish to change them, you should use the change_box command after the read_restart command. +.. note:: + + Changing a periodic boundary to a non-periodic one will also + cause the image flag for that dimension to be reset to 0 for + all atoms. LAMMPS will print a warning message, if that happens. + ---------- The *ortho* and *triclinic* keywords convert the simulation box to be diff --git a/doc/src/compute_orientorder_atom.rst b/doc/src/compute_orientorder_atom.rst index 7b894b886ec856803a8ccd202a2e2fb8cf69cf69..34b12cb7454690ad9ae7c3a04c0e80f031e3c6c7 100644 --- a/doc/src/compute_orientorder_atom.rst +++ b/doc/src/compute_orientorder_atom.rst @@ -3,6 +3,9 @@ compute orientorder/atom command ================================ +compute orientorder/atom/kk command +=================================== + Syntax """""" @@ -128,6 +131,30 @@ too frequently. :doc:`special_bonds ` command that includes all pairs in the neighbor list. +---------- + + +Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are +functionally the same as the corresponding style without the suffix. +They have been optimized to run faster, depending on your available +hardware, as discussed on the :doc:`Speed packages ` doc +page. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, +USER-OMP and OPT packages, respectively. They are only enabled if +LAMMPS was built with those packages. See the :doc:`Build package ` doc page for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the :doc:`-suffix command-line switch ` when you invoke LAMMPS, or you can use the +:doc:`suffix ` command in your input script. + +See the :doc:`Speed packages ` doc page for more +instructions on how to use the accelerated styles effectively. + + +---------- + **Output info:** This compute calculates a per-atom array with *nlvalues* columns, diff --git a/doc/src/compute_stress_atom.rst b/doc/src/compute_stress_atom.rst index 48e8b9c69ce66d55c584852f66647ced8250b924..b8b3cb0ea1fb41ab6992943f9beada4b628540e4 100644 --- a/doc/src/compute_stress_atom.rst +++ b/doc/src/compute_stress_atom.rst @@ -2,6 +2,7 @@ compute stress/atom command =========================== + compute centroid/stress/atom command ==================================== @@ -223,15 +224,14 @@ The per-atom array values will be in pressure\*volume Restrictions """""""""""" -Currently, compute *centroid/stress/atom* does not support -pair styles with many-body interactions, -such as :doc:`Tersoff `, -and LAMMPS will generate an error in such cases. -In principal, equivalent formulation -to that of angle, dihedral and improper contributions -in the virial :math:`W_{ab}` formula -can also be applied to the many-body pair styles, -and is planned in the future. + +Currently (Spring 2020), compute *centroid/stress/atom* does not support +pair styles with many-body interactions, such as :doc:`Tersoff +`, or pair styles with long-range Coulomb interactions. +LAMMPS will generate an error in such cases. In principal, equivalent +formulation to that of angle, dihedral and improper contributions in the +virial :math:`W_{ab}` formula can also be applied to the many-body pair +styles, and is planned in the future. Related commands """""""""""""""" diff --git a/doc/src/fix_balance.rst b/doc/src/fix_balance.rst index 13fdf6b1c76cdf4ccb1ae6133eace2569564952e..b92644fcd916a96fe7b86ee30c81bed92ba5c01c 100644 --- a/doc/src/fix_balance.rst +++ b/doc/src/fix_balance.rst @@ -154,28 +154,27 @@ of processors. It operates by changing the cutting planes (or lines) between processors in 3d (or 2d), to adjust the volume (area in 2d) assigned to each processor, as in the following 2d diagram where processor sub-domains are shown and atoms are colored by the processor -that owns them. The leftmost diagram is the default partitioning of -the simulation box across processors (one sub-box for each of 16 -processors); the middle diagram is after a "grid" method has been -applied. - -.. |bal_uni| image:: JPG/balance_uniform_small.jpg - :target: JPG/balance_uniform.jpg - :width: 31% -.. |bal_non| image:: JPG/balance_nonuniform_small.jpg - :target: JPG/balance_nonuniform.jpg - :width: 31% -.. |bal_rcb| image:: JPG/balance_rcb_small.jpg - :target: JPG/balance_rcb.jpg - :width: 31% - -|bal_uni| |bal_non| |bal_rcb| - -The *rcb* style is a "tiling" method which does not produce a logical -3d grid of processors. Rather it tiles the simulation domain with -rectangular sub-boxes of varying size and shape in an irregular -fashion so as to have equal numbers of particles (or weight) in each -sub-box, as in the rightmost diagram above. +that owns them. + +.. list-table:: + + * - .. figure:: JPG/balance_uniform_small.jpg + :target: JPG/balance_uniform.jpg + + - .. figure:: JPG/balance_nonuniform_small.jpg + :target: JPG/balance_nonuniform.jpg + + - .. figure:: JPG/balance_rcb_small.jpg + :target: JPG/balance_rcb.jpg + +The leftmost diagram is the default partitioning of the simulation box +across processors (one sub-box for each of 16 processors); the middle +diagram is after a "grid" method has been applied. The *rcb* style is a +"tiling" method which does not produce a logical 3d grid of processors. +Rather it tiles the simulation domain with rectangular sub-boxes of +varying size and shape in an irregular fashion so as to have equal +numbers of particles (or weight) in each sub-box, as in the rightmost +diagram above. The "grid" methods can be used with either of the :doc:`comm_style ` command options, *brick* or *tiled*\ . The diff --git a/doc/src/fix_bond_react.rst b/doc/src/fix_bond_react.rst old mode 100644 new mode 100755 index 8daa52a73d2912821348eaf79862b515eafdf4a6..fc260de324e3d06bafca498efdbf7a055a079121 --- a/doc/src/fix_bond_react.rst +++ b/doc/src/fix_bond_react.rst @@ -158,7 +158,9 @@ The following comments pertain to each *react* argument (in other words, can be customized for each reaction, or reaction step): A check for possible new reaction sites is performed every *Nevery* -timesteps. +timesteps. *Nevery* can be specified with an equal-style +:doc:`variable `, whose value is rounded up to the nearest +integer. Three physical conditions must be met for a reaction to occur. First, a bonding atom pair must be identified within the reaction distance @@ -171,19 +173,29 @@ modified to match the post-reaction template. A bonding atom pair will be identified if several conditions are met. First, a pair of atoms I,J within the specified react-group-ID of type itype and jtype must be separated by a distance between *Rmin* and -*Rmax*\ . It is possible that multiple bonding atom pairs are -identified: if the bonding atoms in the pre-reacted template are 1-2 -neighbors, i.e. directly bonded, the farthest bonding atom partner is -set as its bonding partner; otherwise, the closest potential partner -is chosen. Then, if both an atom I and atom J have each other as their -bonding partners, these two atoms are identified as the bonding atom -pair of the reaction site. Once this unique bonding atom pair is -identified for each reaction, there could two or more reactions that -involve a given atom on the same timestep. If this is the case, only -one such reaction is permitted to occur. This reaction is chosen -randomly from all potential reactions. This capability allows e.g. for -different reaction pathways to proceed from identical reaction sites -with user-specified probabilities. +*Rmax*\ . *Rmin* and *Rmax* can be specified with equal-style +:doc:`variables `. For example, these reaction cutoffs can +be a function of the reaction conversion using the following commands: + +.. code-block:: LAMMPS + + variable rmax equal 0 # initialize variable before bond/react + fix myrxn all bond/react react myrxn1 all 1 0 v_rmax mol1 mol2 map_file.txt + variable rmax equal 3+f_myrxn[1]/100 # arbitrary function of reaction count + +It is possible that multiple bonding atom pairs are identified: if the +bonding atoms in the pre-reacted template are 1-2 neighbors, i.e. +directly bonded, the farthest bonding atom partner is set as its +bonding partner; otherwise, the closest potential partner is chosen. +Then, if both an atom I and atom J have each other as their bonding +partners, these two atoms are identified as the bonding atom pair of +the reaction site. Once this unique bonding atom pair is identified +for each reaction, there could two or more reactions that involve a +given atom on the same timestep. If this is the case, only one such +reaction is permitted to occur. This reaction is chosen randomly from +all potential reactions. This capability allows e.g. for different +reaction pathways to proceed from identical reaction sites with +user-specified probabilities. The pre-reacted molecule template is specified by a molecule command. This molecule template file contains a sample reaction site and its @@ -419,7 +431,8 @@ it occurs: The *prob* keyword can affect whether or not an eligible reaction actually occurs. The fraction setting must be a value between 0.0 and -1.0. A uniform random number between 0.0 and 1.0 is generated and the +1.0, and can be specified with an equal-style :doc:`variable `. +A uniform random number between 0.0 and 1.0 is generated and the eligible reaction only occurs if the random number is less than the fraction. Up to N reactions are permitted to occur, as optionally specified by the *max_rxn* keyword. @@ -489,10 +502,11 @@ local command. **Restart, fix_modify, output, run start/stop, minimize info:** -Cumulative reaction counts for each reaction are written to :doc:`binary restart files `. These values are associated with the -reaction name (react-ID). Additionally, internally-created per-atom -properties are stored to allow for smooth restarts. None of the -:doc:`fix_modify ` options are relevant to this fix. +Cumulative reaction counts for each reaction are written to :doc:`binary restart files `. +These values are associated with the reaction name (react-ID). +Additionally, internally-created per-atom properties are stored to +allow for smooth restarts. None of the :doc:`fix_modify ` +options are relevant to this fix. This fix computes one statistic for each *react* argument that it stores in a global vector, of length 'number of react arguments', that diff --git a/doc/src/fix_heat.rst b/doc/src/fix_heat.rst index 82a2b6e7f8e611fef9be955dfd91716906c7f2e7..5bb6402d4624c5cade17bbb5cf626f41ab62ca42 100644 --- a/doc/src/fix_heat.rst +++ b/doc/src/fix_heat.rst @@ -47,16 +47,22 @@ and the specified geometric :doc:`region ` in order to have energy added or subtracted to it. If not specified, then the atoms in the group are affected wherever they may move to. -Heat addition/subtraction is performed every N timesteps. The *eflux* -parameter can be specified as a numeric constant or as a variable (see -below). If it is a numeric constant or equal-style variable which -evaluates to a scalar value, then the *eflux* determines the change in -aggregate energy of the entire group of atoms per unit time, e.g. in -eV/psec for :doc:`metal units `. In this case it is an -"extensive" quantity, meaning its magnitude should be scaled with the -number of atoms in the group. Note that since *eflux* has per-time -units (i.e. it is a flux), this means that a larger value of N will -add/subtract a larger amount of energy each time the fix is invoked. +Heat addition/subtraction is performed every N timesteps. + +The *eflux* parameter can be specified as a numeric constant or as an +equal- or atom-style :doc:`variable `. If the value is a +variable, it should be specified as v_name, where *name* is the variable +name. In this case, the variable will be evaluated each timestep, and +its current value(s) used to determine the flux. + +If *eflux* is a numeric constant or equal-style variable which evaluates +to a scalar value, then *eflux* determines the change in aggregate energy +of the entire group of atoms per unit time, e.g. in eV/psec for +:doc:`metal units `. In this case it is an "extensive" quantity, +meaning its magnitude should be scaled with the number of atoms in the +group. Note that since *eflux* also has per-time units (i.e. it is a +flux), this means that a larger value of N will add/subtract a larger +amount of energy each time the fix is invoked. .. note:: @@ -71,12 +77,6 @@ the energy flux for a single atom, again in units of energy per unit time. In this case, each value is an "intensive" quantity, which need not be scaled with the number of atoms in the group. -As mentioned above, the *eflux* parameter can be specified as an -equal-style or atom_style :doc:`variable `. If the value is a -variable, it should be specified as v_name, where name is the variable -name. In this case, the variable will be evaluated each timestep, and -its value(s) used to determine the flux. - Equal-style variables can specify formulas with various mathematical functions, and include :doc:`thermo_style ` command keywords for the simulation box parameters and timestep and elapsed diff --git a/doc/src/fix_precession_spin.rst b/doc/src/fix_precession_spin.rst index 065f894926343b6ae3d930a2a12d0847d8c2731b..783963af7223a36c075a3cb2a7763e5368c73f65 100644 --- a/doc/src/fix_precession_spin.rst +++ b/doc/src/fix_precession_spin.rst @@ -76,6 +76,7 @@ function for the same parameters. .. image:: JPG/zeeman_langevin.jpg :align: center + :width: 600 The temperature effects are accounted for by connecting the spin :math:`i` to a thermal bath using a Langevin thermostat (see @@ -154,6 +155,11 @@ The *precession/spin* style is part of the SPIN package. This style is only enabled if LAMMPS was built with this package, and if the atom_style "spin" was declared. See the :doc:`Build package ` doc page for more info. +The *precession/spin* style can only be declared once. If more +than one precession type (for example combining an anisotropy and a Zeeman interactions) +has to be declared, they have to be chained in the same command +line (as shown in the examples above). + Related commands """""""""""""""" diff --git a/doc/src/fix_restrain.rst b/doc/src/fix_restrain.rst index 3965cee04dae98647efb0cc9c1d45760887e5fdc..692336bec66009f77ba88dda688d44204c96a171 100644 --- a/doc/src/fix_restrain.rst +++ b/doc/src/fix_restrain.rst @@ -17,10 +17,18 @@ Syntax .. parsed-literal:: - *bond* args = atom1 atom2 Kstart Kstop r0 + *bond* args = atom1 atom2 Kstart Kstop r0start (r0stop) atom1,atom2 = IDs of 2 atoms in bond Kstart,Kstop = restraint coefficients at start/end of run (energy units) - r0 = equilibrium bond distance (distance units) + r0start = equilibrium bond distance at start of run (distance units) + r0stop = equilibrium bond distance at end of run (optional) (distance units). If not + specified it is assumed to be equal to r0start + *lbond* args = atom1 atom2 Kstart Kstop r0start (r0stop) + atom1,atom2 = IDs of 2 atoms in bond + Kstart,Kstop = restraint coefficients at start/end of run (energy units) + r0start = equilibrium bond distance at start of run (distance units) + r0stop = equilibrium bond distance at end of run (optional) (distance units). If not + specified it is assumed to be equal to r0start *angle* args = atom1 atom2 atom3 Kstart Kstop theta0 atom1,atom2,atom3 = IDs of 3 atoms in angle, atom2 = middle atom Kstart,Kstop = restraint coefficients at start/end of run (energy units) @@ -38,6 +46,7 @@ Examples .. code-block:: LAMMPS fix holdem all restrain bond 45 48 2000.0 2000.0 2.75 + fix holdem all restrain lbond 45 48 2000.0 2000.0 2.75 fix holdem all restrain dihedral 1 2 3 4 2000.0 2000.0 120.0 fix holdem all restrain bond 45 48 2000.0 2000.0 2.75 dihedral 1 2 3 4 2000.0 2000.0 120.0 fix texas_holdem all restrain dihedral 1 2 3 4 0.0 2000.0 120.0 dihedral 1 2 3 5 0.0 2000.0 -120.0 dihedral 1 2 3 6 0.0 2000.0 0.0 @@ -141,6 +150,29 @@ is included in :math:`K`. ---------- +The *lbond* keyword applies a lower bound bond restraint to the specified atoms +using the same functional form used by the :doc:`bond_style harmonic ` command if the distance between +the atoms is smaller than the equilibrium bond distance and 0 otherwise. The potential associated with +the restraint is + +.. math:: + + E = K (r - r_0)^2 ,if\;r < r_0 + +.. math:: + + E = 0 \qquad\quad\quad ,if\;r \ge r_0 + +with the following coefficients: + +* :math:`K` (energy/distance\^2) +* :math:`r_0` (distance) + +:math:`K` and :math:`r_0` are specified with the fix. Note that the usual 1/2 factor +is included in :math:`K`. + +---------- + The *angle* keyword applies an angle restraint to the specified atoms using the same functional form used by the :doc:`angle_style harmonic ` command. The potential associated with the restraint is diff --git a/doc/src/fix_wall_body_polyhedron.rst b/doc/src/fix_wall_body_polyhedron.rst index 4b01234f0fd6c6006e9258604e03f4380c809da1..35be8e925931ea381cba1eb9903416729ad66134 100644 --- a/doc/src/fix_wall_body_polyhedron.rst +++ b/doc/src/fix_wall_body_polyhedron.rst @@ -15,15 +15,14 @@ Syntax * k_n = normal repulsion strength (force/distance units or pressure units - see discussion below) * c_n = normal damping coefficient (force/distance units or pressure units - see discussion below) * c_t = tangential damping coefficient (force/distance units or pressure units - see discussion below) -* wallstyle = *xplane* or *yplane* or *zplane* or *zcylinder* +* wallstyle = *xplane* or *yplane* or *zplane* * args = list of arguments for a particular style .. parsed-literal:: - *xplane* or *yplane* args = lo hi + *xplane* or *yplane* or *zplane* args = lo hi lo,hi = position of lower and upper plane (distance units), either can be NULL) - *zcylinder* args = radius - radius = cylinder radius (distance units) + * zero or more keyword/value pairs may be appended to args * keyword = *wiggle* @@ -60,8 +59,7 @@ those specified with the :doc:`pair_style body/rounded/polyhedron ` * :doc:`pair_style coul/wolf ` * :doc:`pair_style lj/cut/coul/long ` +* :doc:`pair_style lj/class2/coul/long ` except that they correctly treat the special case where the distance between two charged core and shell atoms in the same core/shell pair diff --git a/doc/src/pair_momb.rst b/doc/src/pair_momb.rst index ed9a0b98dd8a95f527e2a06165a2c445e011304d..99dce23bf81a1b1415cb93acbedb059a06545590 100644 --- a/doc/src/pair_momb.rst +++ b/doc/src/pair_momb.rst @@ -31,7 +31,7 @@ Style *momb* computes pairwise van der Waals (vdW) and short-range interactions using the Morse potential and :ref:`(Grimme) ` method implemented in the Many-Body Metal-Organic (MOMB) force field described comprehensively in :ref:`(Fichthorn) ` and -:ref:`(Zhou) `. Grimme's method is widely used to correct for +:ref:`(Zhou) `. Grimme's method is widely used to correct for dispersion in density functional theory calculations. .. math:: @@ -76,6 +76,6 @@ Related commands **(Fichthorn)** Fichthorn, Balankura, Qi, CrystEngComm, 18(29), 5410-5417 (2016). -.. _Zhou4: +.. _Zhou5: **(Zhou)** Zhou, Saidi, Fichthorn, J Phys Chem C, 118(6), 3366-3374 (2014). diff --git a/doc/src/pair_polymorphic.rst b/doc/src/pair_polymorphic.rst index c0db3f10a4b4730249b7ec584bed67917a5dd524..a23a9f12f933722b4005e5e2376b2962621d47f0 100644 --- a/doc/src/pair_polymorphic.rst +++ b/doc/src/pair_polymorphic.rst @@ -18,21 +18,22 @@ Examples .. code-block:: LAMMPS pair_style polymorphic - pair_coeff * * TlBr_msw.polymorphic Tl Br - pair_coeff * * AlCu_eam.polymorphic Al Cu - pair_coeff * * GaN_tersoff.polymorphic Ga N - pair_coeff * * GaN_sw.polymorphic GaN + pair_coeff * * FeCH_BOP_I.poly Fe C H + pair_coeff * * TlBr_msw.poly Tl Br + pair_coeff * * CuTa_eam.poly Cu Ta + pair_coeff * * GaN_tersoff.poly Ga N + pair_coeff * * GaN_sw.poly Ga N Description """"""""""" The *polymorphic* pair style computes a 3-body free-form potential -(:ref:`Zhou `) for the energy E of a system of atoms as +(:ref:`Zhou3 `) for the energy E of a system of atoms as .. math:: - E & = \frac{1}{2}\sum_{i=1}^{i=N}\sum_{j=1}^{j=N}\left[\left(1-\delta_{ij}\right)\cdot U_{IJ}\left(r_{ij}\right)-\left(1-\eta_{ij}\right)\cdot F_{IJ}\left(r_{ij}\right)\cdot V_{IJ}\left(r_{ij}\right)\right] \\ - X_{ij} & = \sum_{k=i_1,k\neq i,j}^{i_N}W_{IK}\left(r_{ik}\right)\cdot G_{JIK}\left(\theta_{jik}\right)\cdot P_{IK}\left(\Delta r_{jik}\right) \\ + E & = \frac{1}{2}\sum_{i=1}^{i=N}\sum_{j=1}^{j=N}\left[\left(1-\delta_{ij}\right)\cdot U_{IJ}\left(r_{ij}\right)-\left(1-\eta_{ij}\right)\cdot F_{IJ}\left(X_{ij}\right)\cdot V_{IJ}\left(r_{ij}\right)\right] \\ + X_{ij} & = \sum_{k=i_1,k\neq j}^{i_N}W_{IK}\left(r_{ik}\right)\cdot G_{JIK}\left(\cos\theta_{jik}\right)\cdot P_{JIK}\left(\Delta r_{jik}\right) \\ \Delta r_{jik} & = r_{ij}-\xi_{IJ}\cdot r_{ik} where I, J, K represent species of atoms i, j, and k, :math:`i_1, ..., @@ -42,230 +43,267 @@ Dirac constant (i.e., :math:`\delta_{ij} = 1` when :math:`i = j`, and constant that can be set either to :math:`\eta_{ij} = \delta_{ij}` or :math:`\eta_{ij} = 1 - \delta_{ij}` depending on the potential type, :math:`U_{IJ}(r_{ij})`, :math:`V_{IJ}(r_{ij})`, :math:`W_{IK}(r_{ik})` -are pair functions, :math:`G_{JIK}(\cos(\theta))` is an angular -function, :math:`P_{IK}(\Delta r_{jik})` is a function of atomic spacing -differential :math:`\Delta r_{jik} = r_{ij} - \xi_{IJ} \cdot r_{ik}` -with :math:`\xi_{IJ}` being a pair-dependent parameter, and +are pair functions, :math:`G_{JIK}(\cos\theta_{jik})` is an angular +function, :math:`P_{JIK}(\Delta r_{jik})` is a function of atomic +spacing differential :math:`\Delta r_{jik} = r_{ij} - \xi_{IJ} \cdot +r_{ik}` with :math:`\xi_{IJ}` being a pair-dependent parameter, and :math:`F_{IJ}(X_{ij})` is a function of the local environment variable :math:`X_{ij}`. This generic potential is fully defined once the constants :math:`\eta_{ij}` and :math:`\xi_{IJ}`, and the six functions :math:`U_{IJ}(r_{ij})`, :math:`V_{IJ}(r_{ij})`, :math:`W_{IK}(r_{ik})`, -:math:`G_{JIK}(\cos(\theta))`, :math:`P_{IK}(\Delta r_{jik})`, and -:math:`F_{IJ}(X_{ij})` are given. Note that these six functions are all -one dimensional, and hence can be provided in an analytic or tabular -form. This allows users to design different potentials solely based on a -manipulation of these functions. For instance, the potential reduces to -Stillinger-Weber potential (:ref:`SW `) if we set +:math:`G_{JIK}(\cos\theta_{jik})`, :math:`P_{JIK}(\Delta r_{jik})`, and +:math:`F_{IJ}(X_{ij})` are given. Here LAMMPS uses a global parameter +:math:`\eta` to represent :math:`\eta_{ij}`. When :math:`\eta = 1`, +:math:`\eta_{ij} = 1 - \delta_{ij}`, otherwise :math:`\eta_{ij} = +\delta_{ij}`. Additionally, :math:`\eta = 3` indicates that the function +:math:`P_{JIK}(\Delta r)` depends on species I, J and K, otherwise +:math:`P_{JIK}(\Delta r) = P_{IK}(\Delta r)` only depends on species I +and K. Note that these six functions are all one dimensional, and hence +can be provided in a tabular form. This allows users to design different +potentials solely based on a manipulation of these functions. For +instance, the potential reduces to a Stillinger-Weber potential +(:ref:`SW `) if we set .. math:: - \left\{\begin{array}{l} - \eta_{ij} = \delta_{ij},\xi_{IJ}=0 \\ - U_{IJ}\left(r\right)=A_{IJ}\cdot\epsilon_{IJ}\cdot \left(\frac{\sigma_{IJ}}{r}\right)^q\cdot \left[B_{IJ}\cdot \left(\frac{\sigma_{IJ}}{r}\right)^{p-q}-1\right]\cdot exp\left(\frac{\sigma_{IJ}}{r-a_{IJ}\cdot \sigma_{IJ}}\right) \\ - V_{IJ}\left(r\right)=\sqrt{\lambda_{IJ}\cdot \epsilon_{IJ}}\cdot exp\left(\frac{\gamma_{IJ}\cdot \sigma_{IJ}}{r-a_{IJ}\cdot \sigma_{IJ}}\right) \\ - F_{IJ}\left(X\right)=-X \\ - P_{IJ}\left(\Delta r\right)=1 \\ - W_{IJ}\left(r\right)=\sqrt{\lambda_{IJ}\cdot \epsilon_{IJ}}\cdot exp\left(\frac{\gamma_{IJ}\cdot \sigma_{IJ}}{r-a_{IJ}\cdot \sigma_{IJ}}\right) \\ - G_{JIK}\left(\theta\right)=\left(cos\theta+\frac{1}{3}\right)^2 - \end{array}\right. + \eta_{ij} & = \delta_{ij} (\eta = 2~or~\eta = 0),\xi_{IJ}=0 \\ + U_{IJ}\left(r\right) & = A_{IJ}\cdot\epsilon_{IJ}\cdot \left(\frac{\sigma_{IJ}}{r}\right)^q\cdot \left[B_{IJ}\cdot \left(\frac{\sigma_{IJ}}{r}\right)^{p-q}-1\right]\cdot exp\left(\frac{\sigma_{IJ}}{r-a_{IJ}\cdot \sigma_{IJ}}\right) \\ + V_{IJ}\left(r\right) & = \sqrt{\lambda_{IJ}\cdot \epsilon_{IJ}}\cdot exp\left(\frac{\gamma_{IJ}\cdot \sigma_{IJ}}{r-a_{IJ}\cdot \sigma_{IJ}}\right) \\ + F_{IJ}\left(X\right) & = -X \\ + P_{JIK}\left(\Delta r\right) & = P_{IK}\left(\Delta r\right) = 1 \\ + W_{IJ}\left(r\right) & = \sqrt{\lambda_{IJ}\cdot \epsilon_{IJ}}\cdot exp\left(\frac{\gamma_{IJ}\cdot \sigma_{IJ}}{r-a_{IJ}\cdot \sigma_{IJ}}\right) \\ + G_{JIK}\left(\cos\theta\right) & = \left(\cos\theta+\frac{1}{3}\right)^2 -The potential reduces to Tersoff types of potential -(:ref:`Tersoff ` or :ref:`Albe `) if we set +The potential reduces to a Tersoff potential (:ref:`Tersoff ` +or :ref:`Albe `) if we set .. math:: - \left\{\begin{array}{l} - \eta_{ij}=\delta_{ij},\xi_{IJ}=1 \\ - U_{IJ}\left(r\right)=\frac{D_{e,IJ}}{S_{IJ}-1}\cdot exp\left[-\beta_{IJ}\sqrt{2S_{IJ}\left(r-r_{e,IJ}\right)}\right]\cdot f_{c,IJ}\left(r\right) \\ - V_{IJ}\left(r\right)=\frac{S_{IJ}\cdot D_{e,IJ}}{S_{IJ}-1}\cdot exp\left[-\beta_{IJ}\sqrt{\frac{2}{S_{IJ}}\left(r-r_{e,IJ}\right)}\right]\cdot f_{c,IJ}\left(r\right) \\ - F_{IJ}\left(X\right)=\left(1+X\right)^{-\frac{1}{2}} \\ - P_{IJ}\left(\Delta r\right)=exp\left(2\mu_{IK}\cdot \Delta r\right) \\ - W_{IJ}\left(r\right)=f_{c,IK}\left(r\right) \\ - G_{JIK}\left(\theta\right)=\gamma_{IK}\left[1+\frac{c_{IK}^2}{d_{IK}^2}-\frac{c_{IK}^2}{d_{IK}^2+\left(h_{IK}+cos\theta\right)^2}\right] - \end{array}\right. + \eta_{ij} & = \delta_{ij} (\eta = 2~or~\eta = 0),\xi_{IJ}=1 \\ + U_{IJ}\left(r\right) & = \frac{D_{e,IJ}}{S_{IJ}-1}\cdot exp\left[-\beta_{IJ}\sqrt{2S_{IJ}}\left(r-r_{e,IJ}\right)\right]\cdot f_{c,IJ}\left(r\right) \\ + V_{IJ}\left(r\right) & = \frac{S_{IJ}\cdot D_{e,IJ}}{S_{IJ}-1}\cdot exp\left[-\beta_{IJ}\sqrt{\frac{2}{S_{IJ}}}\left(r-r_{e,IJ}\right)\right]\cdot f_{c,IJ}\left(r\right) \\ + F_{IJ}\left(X\right) & = \left(1+X\right)^{-\frac{1}{2}} \\ + P_{JIK}\left(\Delta r\right) & = P_{IK}\left(\Delta r\right) = exp\left(2\mu_{IK}\cdot \Delta r\right) \\ + W_{IJ}\left(r\right) & = f_{c,IJ}\left(r\right) \\ + G_{JIK}\left(\cos\theta\right) & = \gamma_{IK}\left[1+\frac{c_{IK}^2}{d_{IK}^2}-\frac{c_{IK}^2}{d_{IK}^2+\left(h_{IK}+\cos\theta\right)^2}\right] + +where .. math:: - f_{c,IJ}=\left\{\begin{array}{lr} - 1, & r\leq r_{s,IJ} \\ - \frac{1}{2}+\frac{1}{2} cos \left[\frac{\pi \left(r-r_{s,IJ}\right)}{r_{c,IJ}-r_{s,IJ}}\right], & r_{s,IJ}`) type if we set +The potential reduces to a modified Stillinger-Weber potential +(:ref:`Zhou3 `) if we set .. math:: - \left\{\begin{array}{l} - \eta_{ij}=\delta_{ij},\xi_{IJ}=1 \\ - U_{IJ}\left(r\right)=\left\{\begin{array}{lr} - A_{IJ}\cdot exp\left(-\lambda_{1,IJ}\cdot r\right)\cdot f_{c,IJ}\left(r\right), & r\leq r_{s,1,IJ} \\ - A_{IJ}\cdot exp\left(-\lambda_{1,IJ}\cdot r\right)\cdot f_{c,IJ}\left(r\right)\cdot f_{c,1,IJ}\left(r\right), & r_{s,1,IJ}`) if we set .. math:: - f_{c,IJ}=\left\{\begin{array}{lr} - 1, & r\leq r_{s,IJ} \\ - \frac{1}{2}+\frac{1}{2} cos \left[\frac{\pi \left(r-r_{s,IJ}\right)}{r_{c,IJ}-r_{s,IJ}}\right], & r_{s,IJ}`) if we set +The potential becomes the embedded atom method (:ref:`Daw `) +if we set .. math:: - \left\{\begin{array}{l} - \eta_{ij}=1-\delta_{ij},\xi_{IJ}=0 \\ - U_{IJ}\left(r\right)=\phi_{IJ}\left(r\right) \\ - V_{IJ}\left(r\right)=1 \\ - F_{II}\left(X\right)=-2F_I\left(X\right) \\ - P_{IJ}\left(\Delta r\right)=1 \\ - W_{IJ}\left(r\right)=f_{K}\left(r\right) \\ - G_{JIK}\left(\theta\right)=1 - \end{array}\right. + \eta_{ij} & = 1-\delta_{ij} (\eta = 1),\xi_{IJ}=0 \\ + U_{IJ}\left(r\right) & = \phi_{IJ}\left(r\right) \\ + V_{IJ}\left(r\right) & = 1 \\ + F_{II}\left(X\right) & = -2F_I\left(X\right) \\ + P_{JIK}\left(\Delta r\right) & = P_{IK}\left(\Delta r\right) = 1 \\ + W_{IJ}\left(r\right) & = f_{J}\left(r\right) \\ + G_{JIK}\left(\cos\theta\right) & = 1 -In the embedded atom method case, :math:`\phi_{IJ}(r_{ij})` is the pair +In the embedded atom method case, :math:`\phi_{IJ}(r)` is the pair energy, :math:`F_I(X)` is the embedding energy, *X* is the local -electron density, and :math:`f_K(r)` is the atomic electron density function. - -If the tabulated functions are created using the parameters of sw, -tersoff, and eam potentials, the polymorphic pair style will produce -the same global properties (energies and stresses) and the same forces -as the sw, tersoff, and eam pair styles. The polymorphic pair style -also produces the same atom properties (energies and stresses) as the -corresponding tersoff and eam pair styles. However, due to a different -partition of global properties to atom properties, the polymorphic -pair style will produce different atom properties (energies and -stresses) as the sw pair style. This does not mean that polymorphic -pair style is different from the sw pair style in this case. It just -means that the definitions of the atom energies and atom stresses are -different. - -Only a single pair_coeff command is used with the polymorphic style -which specifies an potential file for all needed elements. These are +electron density, and :math:`f_J(r)` is the atomic electron density +function. + +The potential reduces to another type of Tersoff potential (:ref:`Zhou4 +`) if we set + +.. math:: + + \eta_{ij} & = \delta_{ij} (\eta = 3),\xi_{IJ}=1 \\ + U_{IJ}\left(r\right) & = \frac{D_{e,IJ}}{S_{IJ}-1}\cdot exp\left[-\beta_{IJ}\sqrt{2S_{IJ}}\left(r-r_{e,IJ}\right)\right]\cdot f_{c,IJ}\left(r\right) \cdot T_{IJ}\left(r\right)+V_{ZBL,IJ}\left(r\right)\left[1-T_{IJ}\left(r\right)\right] \\ + V_{IJ}\left(r\right) & = \frac{S_{IJ}\cdot D_{e,IJ}}{S_{IJ}-1}\cdot exp\left[-\beta_{IJ}\sqrt{\frac{2}{S_{IJ}}}\left(r-r_{e,IJ}\right)\right]\cdot f_{c,IJ}\left(r\right) \cdot T_{IJ}\left(r\right) \\ + F_{IJ}\left(X\right) & = \left(1+X\right)^{-\frac{1}{2}} \\ + P_{JIK}\left(\Delta r\right) & = \omega_{JIK} \cdot exp\left(\alpha_{JIK}\cdot \Delta r\right) \\ + W_{IJ}\left(r\right) & = f_{c,IJ}\left(r\right) \\ + G_{JIK}\left(\cos\theta\right) & = \gamma_{JIK}\left[1+\frac{c_{JIK}^2}{d_{JIK}^2}-\frac{c_{JIK}^2}{d_{JIK}^2+\left(h_{JIK}+\cos\theta\right)^2}\right] \\ + T_{IJ}\left(r\right) & = \frac{1}{1+exp\left[-b_{f,IJ}\left(r-r_{f,IJ}\right)\right]} \\ + V_{ZBL,IJ}\left(r\right) & = 14.4 \cdot \frac{Z_I \cdot Z_J}{r}\sum_{k=1}^{4}\mu_k \cdot exp\left[-\nu_k \left(Z_I^{0.23}+Z_J^{0.23}\right) r\right] + +where :math:`f_{c,IJ}(r)` is the same as defined above. This Tersoff +potential differs from the one above because the :math:`P_{JIK}(\Delta +r)` function is now dependent on all three species I, J, and K. + +If the tabulated functions are created using the parameters of +Stillinger-Weber, Tersoff, and EAM potentials, the polymorphic pair +style will produce the same global properties (energies and stresses) +and the same forces as the :doc:`sw `, :doc:`tersoff +`, and :doc:`eam ` pair styles. The polymorphic +pair style also produces the same per-atom properties (energies and +stresses) as the corresponding :doc:`tersoff ` and +:doc:`eam ` pair styles. However, due to a different +partitioning of global properties to per-atom properties, the +polymorphic pair style will produce different per-atom properties +(energies and stresses) as the :doc:`sw ` pair style. This does +not mean that polymorphic pair style is different from the sw pair +style. It just means that the definitions of the atom energies and atom +stresses are different. + +Only a single pair_coeff command is used with the polymorphic pair style +which specifies a potential file for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after -the filename in the pair_coeff command, where N is the number of -LAMMPS atom types: +the filename in the pair_coeff command, where N is the number of LAMMPS +atom types: * filename -* N element names = mapping of Tersoff elements to atom types +* N element names = mapping of polymorphic potential elements to atom types See the pair_coeff doc page for alternate ways to specify the path for -the potential file. Several files for polymorphic potentials are -included in the potentials directory of the LAMMPS distribution. They +the potential file. Several files for polymorphic potentials are +included in the potentials directory of the LAMMPS distribution. They have a "poly" suffix. -As an example, imagine the SiC_tersoff.poly file has tabulated -functions for Si-C tersoff potential. If your LAMMPS simulation has 4 -atoms types and you want the 1st 3 to be Si, and the 4th to be C, you -would use the following pair_coeff command: +As an example, imagine the GaN_tersoff.poly file has tabulated functions +for Ga-N tersoff potential. If your LAMMPS simulation has 4 atoms types +and you want the 1st 3 to be Ga, and the 4th to be N, you would use the +following pair_coeff command: .. code-block:: LAMMPS - pair_coeff * * SiC_tersoff.poly Si Si Si C + pair_coeff * * GaN_tersoff.poly Ga Ga Ga N -The 1st 2 arguments must be \* \* so as to span all LAMMPS atom -types. The first three Si arguments map LAMMPS atom types 1,2,3 to the -Si element in the polymorphic file. The final C argument maps LAMMPS -atom type 4 to the C element in the polymorphic file. If a mapping -value is specified as NULL, the mapping is not performed. This can be -used when an polymorphic potential is used as part of the hybrid pair -style. The NULL values are placeholders for atom types that will be -used with other potentials. +The first two arguments must be \* \* to span all pairs of LAMMPS atom +types. The first three Ga arguments map LAMMPS atom types 1,2,3 to the +Ga element in the polymorphic file. The final N argument maps LAMMPS +atom type 4 to the N element in the polymorphic file. If a mapping value +is specified as NULL, the mapping is not performed. This can be used +when an polymorphic potential is used as part of the hybrid pair +style. The NULL values are placeholders for atom types that will be used +with other potentials. Potential files in the potentials directory of the LAMMPS distribution have a ".poly" suffix. At the beginning of the files, an unlimited -number of lines starting with '#' are used to describe the potential -and are ignored by LAMMPS. The next line lists two numbers: +number of lines starting with '#' are used to describe the potential and +are ignored by LAMMPS. The next line lists two numbers: .. parsed-literal:: - ntypes :math:`\eta` + ntypes eta -Here ntypes represent total number of species defined in the potential -file, and :math:`\eta = 0` or 1. The number ntypes must equal the total -number of different species defined in the pair_coeff command. When -:math:`\eta = 1`, :math:\eta_{ij}` defined in the potential functions -above is set to :math:`1 - \delta_{ij}`, otherwise :math:`\eta_{ij}` is -set to :math:`\delta_{ij}`. The next ntypes lines each lists two numbers -and a character string representing atomic number, atomic mass, and name -of the species of the ntypes elements: +Here *ntypes* represent total number of species defined in the potential +file, :math:`\eta = 1` reduces to embedded atom method, :math:`\eta = 3` +assumes a three species dependent :math:`P_{JIK}(\Delta r)` function, +and all other values of :math:`\eta` assume a two species dependent +:math:`P_{JK}(\Delta r)` function. The value of *ntypes* must equal the +total number of different species defined in the pair_coeff command. The +next *ntypes* lines each lists two numbers and a character string +representing atomic number, atomic mass, and name of the species of the +ntypes elements: .. parsed-literal:: - atomic_number atomic-mass element (1) - atomic_number atomic-mass element (2) + atomic-number atomic-mass element-name(1) + atomic-number atomic-mass element-name(2) ... - atomic_number atomic-mass element (ntypes) + atomic-number atomic-mass element-name(ntypes) + +The next line contains four numbers: + +.. parsed-literal:: + + nr ntheta nx xmax + +Here nr is total number of tabular points for radial functions U, V, W, +P, ntheta is total number of tabular points for the angular function G, +nx is total number of tabular points for the function F, xmax is a +maximum value of the argument of function F. Note that the pair +functions :math:`U_{IJ}(r)`, :math:`V_{IJ}(r)`, :math:`W_{IJ}(r)` are +uniformly tabulated between 0 and cutoff distance of the IJ pair, +:math:`G_{JIK}(\cos\theta)` is uniformly tabulated between -1 and 1, +:math:`P_{JIK}(\Delta r)` is uniformly tabulated between -rcmax and +rcmax where rcmax is the maximum cutoff distance of all pairs, and +:math:`F_{IJ}(X)` is uniformly tabulated between 0 and xmax. Linear +extrapolation is assumed if actual simulations exceed these ranges. The next ntypes\*(ntypes+1)/2 lines contain two numbers: .. parsed-literal:: - cut :math:`xi` (1) - cut :math:`xi` (2) + cut xi(1) + cut xi(2) ... - cut :math:`xi` (ntypes\*(ntypes+1)/2) + cut xi(ntypes\*(ntypes+1)/2) -Here cut means the cutoff distance of the pair functions, :math:`\xi` is -the same as defined in the potential functions above. The +Here cut means the cutoff distance of the pair functions, "xi" is +:math:`\xi` as defined in the potential functions above. The ntypes\*(ntypes+1)/2 lines are related to the pairs according to the -sequence of first ii (self) pairs, i = 1, 2, ..., ntypes, and then then -ij (cross) pairs, i = 1, 2, ..., ntypes-1, and j = i+1, i+2, ..., ntypes +sequence of first ii (self) pairs, i = 1, 2, ..., ntypes, and then ij +(cross) pairs, i = 1, 2, ..., ntypes-1, and j = i+1, i+2, ..., ntypes (i.e., the sequence of the ij pairs follows 11, 22, ..., 12, 13, 14, ..., 23, 24, ...). -The final blocks of the potential file are the U, V, W, P, G, and F -functions are listed sequentially. First, U functions are given for -each of the ntypes\*(ntypes+1)/2 pairs according to the sequence -described above. For each of the pairs, nr values are listed. Next, -similar arrays are given for V, W, and P functions. Then G functions -are given for all the ntypes\*ntypes\*ntypes ijk triplets in a natural -sequence i from 1 to ntypes, j from 1 to ntypes, and k from 1 to -ntypes (i.e., ijk = 111, 112, 113, ..., 121, 122, 123 ..., 211, 212, -...). Each of the ijk functions contains ng values. Finally, the F -functions are listed for all ntypes\*(ntypes+1)/2 pairs, each -containing nx values. Either analytic or tabulated functions can be -specified. Currently, constant, exponential, sine and cosine analytic -functions are available which are specified with: constant c1 , where -f(x) = c1 exponential c1 c2 , where f(x) = c1 exp(c2\*x) sine c1 c2 , -where f(x) = c1 sin(c2\*x) cos c1 c2 , where f(x) = c1 cos(c2\*x) -Tabulated functions are specified by spline n x1 x2, where n=number of -point, (x1,x2)=range and then followed by n values evaluated uniformly -over these argument ranges. The valid argument ranges of the -functions are between 0 <= r <= cut for the U(r), V(r), W(r) -functions, -cutmax <= delta_r <= cutmax for the P(delta_r) functions, --1 <= :math:`\cos\theta` <= 1 for the G(:math:`\cos\theta`) functions, -and 0 <= X <= maxX for the F(X) functions. +In the final blocks of the potential file, U, V, W, P, G, and F +functions are listed sequentially. First, U functions are given for each +of the ntypes\*(ntypes+1)/2 pairs according to the sequence described +above. For each of the pairs, nr values are listed. Next, similar arrays +are given for V and W functions. If P functions depend only on pair +species, i.e., :math:`\eta \neq 3`, then P functions are also listed the +same way the next. If P functions depend on three species, i.e., +:math:`\eta = 3`, then P functions are listed for all the +ntypes*ntypes*ntypes IJK triplets in a natural sequence I from 1 to +ntypes, J from 1 to ntypes, and K from 1 to ntypes (i.e., IJK = 111, +112, 113, ..., 121, 122, 123 ..., 211, 212, ...). Next, G functions are +listed for all the ntypes*ntypes*ntypes IJK triplets similarly. For each +of the G functions, ntheta values are listed. Finally, F functions are +listed for all the ntypes*(ntypes+1)/2 pairs in the same sequence as +described above. For each of the F functions, nx values are listed. **Mixing, shift, table tail correction, restart**\ : This pair styles does not support the :doc:`pair_modify ` shift, table, and tail options. -This pair style does not write their information to :doc:`binary restart files `, since it is stored in potential files. Thus, you -need to re-specify the pair_style and pair_coeff commands in an input -script that reads a restart file. +This pair style does not write their information to :doc:`binary restart +files `, since it is stored in potential files. Thus, you need +to re-specify the pair_style and pair_coeff commands in an input script +that reads a restart file. ---------- @@ -277,15 +315,15 @@ input script. If using read_data, atomic masses must be defined in the atomic structure data file. This pair style is part of the MANYBODY package. It is only enabled if -LAMMPS was built with that package. See the :doc:`Build package ` doc page for more info. +LAMMPS was built with that package. See the :doc:`Build package +` doc page for more info. This pair potential requires the :doc:`newtion ` setting to be "on" for pair interactions. -The potential files provided with LAMMPS (see the potentials -directory) are parameterized for metal :doc:`units `. You can use -any LAMMPS units, but you would need to create your own potential -files. +The potential files provided with LAMMPS (see the potentials directory) +are parameterized for metal :doc:`units `. You can use any LAMMPS +units, but you would need to create your own potential files. Related commands """""""""""""""" @@ -296,12 +334,15 @@ Related commands .. _Zhou3: -**(Zhou)** X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and -F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015). +**(Zhou3)** X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015). + +.. _Zhou4: + +**(Zhou4)** X. W. Zhou, M. E. Foster, J. A. Ronevich, and C. W. San Marchi, J. Comp. Chem., 41, 1299 (2020). .. _SW: -**(SW)** F. H. Stillinger-Weber, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985). +**(SW)** F. H. Stillinger, and T. A. Weber, Phys. Rev. B, 31, 5262 (1985). .. _Tersoff: @@ -309,8 +350,7 @@ F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015). .. _poly-Albe: -**(Albe)** K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B, -66, 035205 (2002). +**(Albe)** K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B, 66, 035205 (2002). .. _Wang3: diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 5b5e6e6fe8d224b4015c55f5677f86a9b9b24ec2..48dd2dde0fcc5ff5fd3b371d039dbbf23f901513 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -111,41 +111,41 @@ accelerated styles exist. * :doc:`born ` - Born-Mayer-Huggins potential * :doc:`born/coul/dsf ` - Born with damped-shifted-force model * :doc:`born/coul/dsf/cs ` - Born with damped-shifted-force and core/shell model -* :doc:`born/coul/long ` - Born with long-range Coulombics -* :doc:`born/coul/long/cs ` - Born with long-range Coulombics and core/shell -* :doc:`born/coul/msm ` - Born with long-range MSM Coulombics -* :doc:`born/coul/wolf ` - Born with Wolf potential for Coulombics -* :doc:`born/coul/wolf/cs ` - Born with Wolf potential for Coulombics and core/shell model +* :doc:`born/coul/long ` - Born with long-range Coulomb +* :doc:`born/coul/long/cs ` - Born with long-range Coulomb and core/shell +* :doc:`born/coul/msm ` - Born with long-range MSM Coulomb +* :doc:`born/coul/wolf ` - Born with Wolf potential for Coulomb +* :doc:`born/coul/wolf/cs ` - Born with Wolf potential for Coulomb and core/shell model * :doc:`brownian ` - Brownian potential for Fast Lubrication Dynamics * :doc:`brownian/poly ` - Brownian potential for Fast Lubrication Dynamics with polydispersity * :doc:`buck ` - Buckingham potential * :doc:`buck/coul/cut ` - Buckingham with cutoff Coulomb -* :doc:`buck/coul/long ` - Buckingham with long-range Coulombics -* :doc:`buck/coul/long/cs ` - Buckingham with long-range Coulombics and core/shell -* :doc:`buck/coul/msm ` - Buckingham with long-range MSM Coulombics -* :doc:`buck/long/coul/long ` - long-range Buckingham with long-range Coulombics +* :doc:`buck/coul/long ` - Buckingham with long-range Coulomb +* :doc:`buck/coul/long/cs ` - Buckingham with long-range Coulomb and core/shell +* :doc:`buck/coul/msm ` - Buckingham with long-range MSM Coulomb +* :doc:`buck/long/coul/long ` - long-range Buckingham with long-range Coulomb * :doc:`buck/mdf ` - Buckingham with a taper function * :doc:`buck6d/coul/gauss/dsf ` - dispersion-damped Buckingham with damped-shift-force model -* :doc:`buck6d/coul/gauss/long ` - dispersion-damped Buckingham with long-range Coulombics +* :doc:`buck6d/coul/gauss/long ` - dispersion-damped Buckingham with long-range Coulomb * :doc:`colloid ` - integrated colloidal potential * :doc:`comb ` - charge-optimized many-body (COMB) potential * :doc:`comb3 ` - charge-optimized many-body (COMB3) potential * :doc:`cosine/squared ` - Cooke-Kremer-Deserno membrane model potential -* :doc:`coul/cut ` - cutoff Coulombic potential -* :doc:`coul/cut/soft ` - Coulombic potential with a soft core -* :doc:`coul/debye ` - cutoff Coulombic potential with Debye screening +* :doc:`coul/cut ` - cutoff Coulomb potential +* :doc:`coul/cut/soft ` - Coulomb potential with a soft core +* :doc:`coul/debye ` - cutoff Coulomb potential with Debye screening * :doc:`coul/diel ` - Coulomb potential with dielectric permittivity -* :doc:`coul/dsf ` - Coulombics with damped-shifted-force model -* :doc:`coul/long ` - long-range Coulombic potential -* :doc:`coul/long/cs ` - long-range Coulombic potential and core/shell -* :doc:`coul/long/soft ` - long-range Coulombic potential with a soft core -* :doc:`coul/msm ` - long-range MSM Coulombics -* :doc:`coul/slater/cut ` - smeared out Coulombics -* :doc:`coul/slater/long ` - long-range smeared out Coulombics -* :doc:`coul/shield ` - Coulombics for boron nitride for use with :doc:`ilp/graphene/hbn ` potential -* :doc:`coul/streitz ` - Coulombics via Streitz/Mintmire Slater orbitals -* :doc:`coul/wolf ` - Coulombics via Wolf potential -* :doc:`coul/wolf/cs ` - ditto with core/shell adjustments +* :doc:`coul/dsf ` - Coulomb with damped-shifted-force model +* :doc:`coul/long ` - long-range Coulomb potential +* :doc:`coul/long/cs ` - long-range Coulomb potential and core/shell +* :doc:`coul/long/soft ` - long-range Coulomb potential with a soft core +* :doc:`coul/msm ` - long-range MSM Coulomb +* :doc:`coul/slater/cut ` - smeared out Coulomb +* :doc:`coul/slater/long ` - long-range smeared out Coulomb +* :doc:`coul/shield ` - Coulomb for boron nitride for use with :doc:`ilp/graphene/hbn ` potential +* :doc:`coul/streitz ` - Coulomb via Streitz/Mintmire Slater orbitals +* :doc:`coul/wolf ` - Coulomb via Wolf potential +* :doc:`coul/wolf/cs ` - Coulomb via Wolf potential with core/shell adjustments * :doc:`dpd ` - dissipative particle dynamics (DPD) * :doc:`dpd/fdt ` - DPD for constant temperature and pressure * :doc:`dpd/fdt/energy ` - DPD for constant energy and enthalpy @@ -189,44 +189,45 @@ accelerated styles exist. * :doc:`lj/charmm/coul/charmm/implicit ` - CHARMM for implicit solvent * :doc:`lj/charmm/coul/long ` - CHARMM with long-range Coulomb * :doc:`lj/charmm/coul/long/soft ` - CHARMM with long-range Coulomb and a soft core -* :doc:`lj/charmm/coul/msm ` - CHARMM with long-range MSM Coulombics +* :doc:`lj/charmm/coul/msm ` - CHARMM with long-range MSM Coulomb * :doc:`lj/charmmfsw/coul/charmmfsh ` - CHARMM with force switching and shifting -* :doc:`lj/charmmfsw/coul/long ` - CHARMM with force switching and long-rnage Coulombics -* :doc:`lj/class2 ` - COMPASS (class 2) force field with no Coulomb +* :doc:`lj/charmmfsw/coul/long ` - CHARMM with force switching and long-rnage Coulomb +* :doc:`lj/class2 ` - COMPASS (class 2) force field without Coulomb * :doc:`lj/class2/coul/cut ` - COMPASS with cutoff Coulomb * :doc:`lj/class2/coul/cut/soft ` - COMPASS with cutoff Coulomb with a soft core * :doc:`lj/class2/coul/long ` - COMPASS with long-range Coulomb +* :doc:`lj/class2/coul/long/cs ` - COMPASS with long-range Coulomb with core/shell adjustments * :doc:`lj/class2/coul/long/soft ` - COMPASS with long-range Coulomb with a soft core * :doc:`lj/class2/soft ` - COMPASS (class 2) force field with no Coulomb with a soft core * :doc:`lj/cubic ` - LJ with cubic after inflection point -* :doc:`lj/cut ` - cutoff Lennard-Jones potential with no Coulomb +* :doc:`lj/cut ` - cutoff Lennard-Jones potential without Coulomb * :doc:`lj/cut/coul/cut ` - LJ with cutoff Coulomb * :doc:`lj/cut/coul/cut/soft ` - LJ with cutoff Coulomb with a soft core * :doc:`lj/cut/coul/debye ` - LJ with Debye screening added to Coulomb -* :doc:`lj/cut/coul/dsf ` - LJ with Coulombics via damped shifted forces -* :doc:`lj/cut/coul/long ` - LJ with long-range Coulombics -* :doc:`lj/cut/coul/long/cs ` - ditto with core/shell adjustments -* :doc:`lj/cut/coul/long/soft ` - LJ with long-range Coulombics with a soft core -* :doc:`lj/cut/coul/msm ` - LJ with long-range MSM Coulombics -* :doc:`lj/cut/coul/wolf ` - LJ with Coulombics via Wolf potential +* :doc:`lj/cut/coul/dsf ` - LJ with Coulomb via damped shifted forces +* :doc:`lj/cut/coul/long ` - LJ with long-range Coulomb +* :doc:`lj/cut/coul/long/cs ` - LJ with long-range Coulomb with core/shell adjustments +* :doc:`lj/cut/coul/long/soft ` - LJ with long-range Coulomb with a soft core +* :doc:`lj/cut/coul/msm ` - LJ with long-range MSM Coulomb +* :doc:`lj/cut/coul/wolf ` - LJ with Coulomb via Wolf potential * :doc:`lj/cut/dipole/cut ` - point dipoles with cutoff * :doc:`lj/cut/dipole/long ` - point dipoles with long-range Ewald * :doc:`lj/cut/soft ` - LJ with a soft core -* :doc:`lj/cut/thole/long ` - LJ with Coulombics with thole damping +* :doc:`lj/cut/thole/long ` - LJ with Coulomb with thole damping * :doc:`lj/cut/tip4p/cut ` - LJ with cutoff Coulomb for TIP4P water * :doc:`lj/cut/tip4p/long ` - LJ with long-range Coulomb for TIP4P water * :doc:`lj/cut/tip4p/long/soft ` - LJ with cutoff Coulomb for TIP4P water with a soft core * :doc:`lj/expand ` - Lennard-Jones for variable size particles -* :doc:`lj/expand/coul/long ` - Lennard-Jones for variable size particles with long-range Coulombics +* :doc:`lj/expand/coul/long ` - Lennard-Jones for variable size particles with long-range Coulomb * :doc:`lj/gromacs ` - GROMACS-style Lennard-Jones potential -* :doc:`lj/gromacs/coul/gromacs ` - GROMACS-style LJ and Coulombic potential -* :doc:`lj/long/coul/long ` - long-range LJ and long-range Coulombics +* :doc:`lj/gromacs/coul/gromacs ` - GROMACS-style LJ and Coulomb potential +* :doc:`lj/long/coul/long ` - long-range LJ and long-range Coulomb * :doc:`lj/long/dipole/long ` - long-range LJ and long-range point dipoles -* :doc:`lj/long/tip4p/long ` - long-range LJ and long-range Coulombics for TIP4P water +* :doc:`lj/long/tip4p/long ` - long-range LJ and long-range Coulomb for TIP4P water * :doc:`lj/mdf ` - LJ potential with a taper function * :doc:`lj/sdk ` - LJ for SDK coarse-graining -* :doc:`lj/sdk/coul/long ` - LJ for SDK coarse-graining with long-range Coulombics -* :doc:`lj/sdk/coul/msm ` - LJ for SDK coarse-graining with long-range Coulombics via MSM +* :doc:`lj/sdk/coul/long ` - LJ for SDK coarse-graining with long-range Coulomb +* :doc:`lj/sdk/coul/msm ` - LJ for SDK coarse-graining with long-range Coulomb via MSM * :doc:`lj/sf/dipole/sf ` - LJ with dipole interaction with shifted forces * :doc:`lj/smooth ` - smoothed Lennard-Jones potential * :doc:`lj/smooth/linear ` - linear smoothed LJ potential @@ -255,7 +256,7 @@ accelerated styles exist. * :doc:`nb3b/harmonic ` - non-bonded 3-body harmonic potential * :doc:`nm/cut ` - N-M potential * :doc:`nm/cut/coul/cut ` - N-M potential with cutoff Coulomb -* :doc:`nm/cut/coul/long ` - N-M potential with long-range Coulombics +* :doc:`nm/cut/coul/long ` - N-M potential with long-range Coulomb * :doc:`oxdna/coaxstk ` - * :doc:`oxdna/excv ` - * :doc:`oxdna/hbond ` - @@ -315,7 +316,7 @@ accelerated styles exist. * :doc:`tersoff/zbl ` - Tersoff/ZBL 3-body potential * :doc:`thole ` - Coulomb interactions with thole damping * :doc:`tip4p/cut ` - Coulomb for TIP4P water w/out LJ -* :doc:`tip4p/long ` - long-range Coulombics for TIP4P water w/out LJ +* :doc:`tip4p/long ` - long-range Coulomb for TIP4P water w/out LJ * :doc:`tip4p/long/soft ` - * :doc:`tri/lj ` - LJ potential between triangles * :doc:`ufm ` - diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 396c99e2b55382b5fdd4d3a69c45339b3a50b3b3..97b7f47503746567244002a598104ecfa9a772c7 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -492,12 +492,14 @@ cstdlib cstring cstyle csvr +ctrl Ctypes ctypes cuda Cuda CUDA CuH +cuFFT Cummins Curk customIDs @@ -584,6 +586,7 @@ dephasing dequidt Dequidt der +dereference derekt Derjagin Derjaguin @@ -1542,6 +1545,7 @@ libmeam libmessage libmpi libmpich +libnuma libplumed libplumedKernel libpng @@ -1661,6 +1665,7 @@ manybody MANYBODY Maras Marchetti +Marchi Mariella Marrink Marroquin @@ -1735,6 +1740,7 @@ Melchor Meloni Melrose Mem +mem memalign MEMALIGN membered @@ -2105,7 +2111,6 @@ nvc nvcc nve nvidia -Nvidia nvk nvt Nwait @@ -2440,6 +2445,7 @@ Ravelo rc Rc Rcm +rcmax Rcmx Rcmy Rcut @@ -2558,6 +2564,7 @@ Rockett Rodrigues Rohart Ronchetti +Ronevich Rosati Rosenberger Rossky @@ -2839,6 +2846,7 @@ Synechococcus sys sysdim Syst +systemd Sz Tabbernor tabinner @@ -2960,6 +2968,7 @@ traceless tradeoff traj Tranchida +transactional transferability translational Translational diff --git a/examples/SPIN/bfo/in.spin.bfo b/examples/SPIN/bfo/in.spin.bfo index b97f7e2d619766f37298e1022943a8d646fa6ea9..47ba535ab6069626651defa38bce7b21ed55b4cc 100644 --- a/examples/SPIN/bfo/in.spin.bfo +++ b/examples/SPIN/bfo/in.spin.bfo @@ -27,7 +27,8 @@ pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 anisotropy 0.00033 0.0 0.0 1.0 +fix_modify 1 energy yes fix 2 all langevin/spin 0.0 0.1 21 fix 3 all nve/spin lattice frozen @@ -43,9 +44,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -#thermo_style custom step time v_magnorm v_emag temp etotal -thermo_style custom step time v_magnorm pe ke v_emag temp etotal -thermo 10 +thermo_style custom step time v_magnorm pe v_emag temp etotal +thermo 50 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 1 all custom 100 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] diff --git a/examples/SPIN/bfo/log.14Apr20.spin.bfo.g++.1 b/examples/SPIN/bfo/log.14Apr20.spin.bfo.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..c5ad4e70ac3e7c55bd3aee60e5549ef987a0c2c9 --- /dev/null +++ b/examples/SPIN/bfo/log.14Apr20.spin.bfo.g++.1 @@ -0,0 +1,129 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# layer sc iron atoms (in the [001] plane) in bismuth oxide + +units metal +atom_style spin +dimension 3 +boundary p p f + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice sc 3.96 +Lattice spacing in x,y,z = 3.96 3.96 3.96 +region box block 0.0 34.0 0.0 34.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 5780 atoms + create_atoms CPU = 0.00263691 secs + +# setting mass, mag. moments, and interactions for bfo + +mass 1 1.0 +set group all spin/random 11 2.50 + 5780 settings made for spin/random + +#pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5 +pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 +pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 +pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 anisotropy 0.00033 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.1 21 +fix 3 all nve/spin lattice frozen + +timestep 0.0002 + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 500 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.1 + ghost atom cutoff = 6.1 + binsize = 3.05, bins = 45 45 7 + 3 neighbor lists, perpetual/occasional/extra = 3 0 0 + (1) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard + (2) pair spin/magelec, perpetual, copy from (1) + attributes: full, newton on + pair build: copy + stencil: none + bin: none + (3) pair spin/dmi, perpetual, copy from (1) + attributes: full, newton on + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 8.154 | 8.154 | 8.154 Mbytes +Step Time v_magnorm PotEng v_emag Temp TotEng + 0 0 0.010071723 -0.69133656 -0.69133656 0 -0.69133656 + 50 0.01 0.0098309931 -1.3200811 -1.3200811 0 -1.3200811 + 100 0.02 0.0095903925 -1.9446727 -1.9446727 0 -1.9446727 + 150 0.03 0.0093489139 -2.5653446 -2.5653446 0 -2.5653446 + 200 0.04 0.0091051407 -3.1824298 -3.1824298 0 -3.1824298 + 250 0.05 0.0088575394 -3.7962506 -3.7962506 0 -3.7962506 + 300 0.06 0.0086053184 -4.4070501 -4.4070501 0 -4.4070501 + 350 0.07 0.0083490959 -5.0149813 -5.0149813 0 -5.0149813 + 400 0.08 0.0080907742 -5.6201417 -5.6201417 0 -5.6201417 + 450 0.09 0.0078327124 -6.222622 -6.222622 0 -6.222622 + 500 0.1 0.0075768488 -6.8225497 -6.8225497 0 -6.8225497 +Loop time of 12.9141 on 1 procs for 500 steps with 5780 atoms + +Performance: 0.669 ns/day, 35.873 hours/ns, 38.717 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.1844 | 3.1844 | 3.1844 | 0.0 | 24.66 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.012542 | 0.012542 | 0.012542 | 0.0 | 0.10 +Output | 0.048014 | 0.048014 | 0.048014 | 0.0 | 0.37 +Modify | 9.6569 | 9.6569 | 9.6569 | 0.0 | 74.78 +Other | | 0.01233 | | | 0.10 + +Nlocal: 5780 ave 5780 max 5780 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1065 ave 1065 max 1065 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 92480 ave 92480 max 92480 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 92480 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:12 diff --git a/examples/SPIN/bfo/log.14Apr20.spin.bfo.g++.4 b/examples/SPIN/bfo/log.14Apr20.spin.bfo.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..655bbaef8e5c71f6974048a12e2752fca87714a2 --- /dev/null +++ b/examples/SPIN/bfo/log.14Apr20.spin.bfo.g++.4 @@ -0,0 +1,129 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# layer sc iron atoms (in the [001] plane) in bismuth oxide + +units metal +atom_style spin +dimension 3 +boundary p p f + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice sc 3.96 +Lattice spacing in x,y,z = 3.96 3.96 3.96 +region box block 0.0 34.0 0.0 34.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) + 2 by 2 by 1 MPI processor grid +create_atoms 1 box +Created 5780 atoms + create_atoms CPU = 0.000847816 secs + +# setting mass, mag. moments, and interactions for bfo + +mass 1 1.0 +set group all spin/random 11 2.50 + 5780 settings made for spin/random + +#pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 +pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5 +pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 +pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 +pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 anisotropy 0.00033 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.1 21 +fix 3 all nve/spin lattice frozen + +timestep 0.0002 + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 500 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.1 + ghost atom cutoff = 6.1 + binsize = 3.05, bins = 45 45 7 + 3 neighbor lists, perpetual/occasional/extra = 3 0 0 + (1) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard + (2) pair spin/magelec, perpetual, copy from (1) + attributes: full, newton on + pair build: copy + stencil: none + bin: none + (3) pair spin/dmi, perpetual, copy from (1) + attributes: full, newton on + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 7.744 | 7.744 | 7.744 Mbytes +Step Time v_magnorm PotEng v_emag Temp TotEng + 0 0 0.010071723 -0.69133656 -0.69133656 0 -0.69133656 + 50 0.01 0.009830993 -1.3200811 -1.3200811 0 -1.3200811 + 100 0.02 0.0095903924 -1.9446727 -1.9446727 0 -1.9446727 + 150 0.03 0.0093489138 -2.5653446 -2.5653446 0 -2.5653446 + 200 0.04 0.0091051405 -3.1824298 -3.1824298 0 -3.1824298 + 250 0.05 0.0088575392 -3.7962506 -3.7962506 0 -3.7962506 + 300 0.06 0.0086053183 -4.4070501 -4.4070501 0 -4.4070501 + 350 0.07 0.0083490958 -5.0149813 -5.0149813 0 -5.0149813 + 400 0.08 0.008090774 -5.6201417 -5.6201417 0 -5.6201417 + 450 0.09 0.0078327123 -6.222622 -6.222622 0 -6.222622 + 500 0.1 0.0075768487 -6.8225497 -6.8225497 0 -6.8225497 +Loop time of 3.92182 on 4 procs for 500 steps with 5780 atoms + +Performance: 2.203 ns/day, 10.894 hours/ns, 127.492 timesteps/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.80837 | 0.82745 | 0.8485 | 1.6 | 21.10 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.045699 | 0.067487 | 0.090503 | 6.1 | 1.72 +Output | 0.01387 | 0.0139 | 0.01394 | 0.0 | 0.35 +Modify | 3.0065 | 3.0105 | 3.0138 | 0.2 | 76.76 +Other | | 0.002516 | | | 0.06 + +Nlocal: 1445 ave 1445 max 1445 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 555 ave 555 max 555 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 23120 ave 23120 max 23120 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 92480 +Ave neighs/atom = 16 +Neighbor list builds = 0 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:03 diff --git a/examples/SPIN/bfo/log.19Nov19.spin.bfo.g++.1 b/examples/SPIN/bfo/log.19Nov19.spin.bfo.g++.1 deleted file mode 100644 index b14210e9d0cddbeb1cb15e8aee3d5520b334cf36..0000000000000000000000000000000000000000 --- a/examples/SPIN/bfo/log.19Nov19.spin.bfo.g++.1 +++ /dev/null @@ -1,167 +0,0 @@ -LAMMPS (30 Oct 2019) -# layer sc iron atoms (in the [001] plane) in bismuth oxide - -units metal -atom_style spin -dimension 3 -boundary p p f - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice sc 3.96 -Lattice spacing in x,y,z = 3.96 3.96 3.96 -region box block 0.0 34.0 0.0 34.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 5780 atoms - create_atoms CPU = 0.00226784 secs - -# setting mass, mag. moments, and interactions for bfo - -mass 1 1.0 -set group all spin/random 11 2.50 - 5780 settings made for spin/random - -#pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 -pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5 -pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 -pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 -pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 21 -fix 3 all nve/spin lattice frozen - -timestep 0.0002 - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -#thermo_style custom step time v_magnorm v_emag temp etotal -thermo_style custom step time v_magnorm pe ke v_emag temp etotal -thermo 10 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 500 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.1 - ghost atom cutoff = 6.1 - binsize = 3.05, bins = 45 45 7 - 3 neighbor lists, perpetual/occasional/extra = 3 0 0 - (1) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard - (2) pair spin/magelec, perpetual, copy from (1) - attributes: full, newton on - pair build: copy - stencil: none - bin: none - (3) pair spin/dmi, perpetual, copy from (1) - attributes: full, newton on - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 8.154 | 8.154 | 8.154 Mbytes -Step Time v_magnorm PotEng KinEng v_emag Temp TotEng - 0 0 0.010071723 -0.059343109 0 -0.13132609 0 -0.059343109 - 10 0.002 0.01003044 -0.18537022 0 -0.38338861 0 -0.18537022 - 20 0.004 0.0099890716 -0.31121926 0 -0.63509581 0 -0.31121926 - 30 0.006 0.0099475919 -0.43689013 0 -0.88644739 0 -0.43689013 - 40 0.008 0.0099059782 -0.5623833 0 -1.1374442 0 -0.5623833 - 50 0.01 0.0098642085 -0.68769978 0 -1.388088 0 -0.68769978 - 60 0.012 0.0098222618 -0.81284106 0 -1.6383818 0 -0.81284106 - 70 0.014 0.0097801186 -0.93780907 0 -1.8883294 0 -0.93780907 - 80 0.016 0.0097377603 -1.0626062 0 -2.1379352 0 -1.0626062 - 90 0.018 0.0096951693 -1.187235 0 -2.3872045 0 -1.187235 - 100 0.02 0.0096523288 -1.3116986 0 -2.6361432 0 -1.3116986 - 110 0.022 0.0096092227 -1.4360002 0 -2.8847577 0 -1.4360002 - 120 0.024 0.009565836 -1.5601431 0 -3.1330547 0 -1.5601431 - 130 0.026 0.0095221542 -1.6841309 0 -3.3810411 0 -1.6841309 - 140 0.028 0.0094781635 -1.8079673 0 -3.6287241 0 -1.8079673 - 150 0.03 0.0094338509 -1.9316557 0 -3.8761109 0 -1.9316557 - 160 0.032 0.0093892044 -2.0551997 0 -4.1232085 0 -2.0551997 - 170 0.034 0.0093442126 -2.178603 0 -4.370024 0 -2.178603 - 180 0.036 0.0092988654 -2.3018687 0 -4.6165639 0 -2.3018687 - 190 0.038 0.0092531537 -2.4250002 0 -4.8628348 0 -2.4250002 - 200 0.04 0.0092070698 -2.5480003 0 -5.1088426 0 -2.5480003 - 210 0.042 0.0091606073 -2.670872 0 -5.3545929 0 -2.670872 - 220 0.044 0.0091137617 -2.7936178 0 -5.6000909 0 -2.7936178 - 230 0.046 0.0090665298 -2.9162399 0 -5.8453412 0 -2.9162399 - 240 0.048 0.0090189108 -3.0387405 0 -6.0903478 0 -3.0387405 - 250 0.05 0.0089709056 -3.1611214 0 -6.3351146 0 -3.1611214 - 260 0.052 0.0089225173 -3.2833841 0 -6.5796445 0 -3.2833841 - 270 0.054 0.0088737511 -3.4055299 0 -6.8239403 0 -3.4055299 - 280 0.056 0.0088246147 -3.52756 0 -7.0680043 0 -3.52756 - 290 0.058 0.0087751176 -3.6494754 0 -7.3118383 0 -3.6494754 - 300 0.06 0.008725272 -3.7712768 0 -7.5554438 0 -3.7712768 - 310 0.062 0.0086750916 -3.8929648 0 -7.7988222 0 -3.8929648 - 320 0.064 0.0086245927 -4.0145399 0 -8.0419744 0 -4.0145399 - 330 0.066 0.0085737928 -4.1360026 0 -8.2849013 0 -4.1360026 - 340 0.068 0.0085227116 -4.2573532 0 -8.5276035 0 -4.2573532 - 350 0.07 0.0084713698 -4.378592 0 -8.7700818 0 -4.378592 - 360 0.072 0.0084197895 -4.4997194 0 -9.0123367 0 -4.4997194 - 370 0.074 0.0083679936 -4.6207358 0 -9.2543688 0 -4.6207358 - 380 0.076 0.0083160058 -4.7416414 0 -9.496179 0 -4.7416414 - 390 0.078 0.0082638503 -4.8624367 0 -9.7377681 0 -4.8624367 - 400 0.08 0.0082115512 -4.9831222 0 -9.9791371 0 -4.9831222 - 410 0.082 0.0081591329 -5.1036986 0 -10.220287 0 -5.1036986 - 420 0.084 0.0081066195 -5.2241665 0 -10.46122 0 -5.2241665 - 430 0.086 0.0080540347 -5.3445267 0 -10.701936 0 -5.3445267 - 440 0.088 0.008001402 -5.4647802 0 -10.942439 0 -5.4647802 - 450 0.09 0.0079487439 -5.5849281 0 -11.18273 0 -5.5849281 - 460 0.092 0.0078960829 -5.7049716 0 -11.422811 0 -5.7049716 - 470 0.094 0.0078434404 -5.824912 0 -11.662686 0 -5.824912 - 480 0.096 0.0077908378 -5.9447508 0 -11.902357 0 -5.9447508 - 490 0.098 0.0077382955 -6.0644896 0 -12.141828 0 -6.0644896 - 500 0.1 0.0076858338 -6.1841301 0 -12.381101 0 -6.1841301 -Loop time of 13.543 on 1 procs for 500 steps with 5780 atoms - -Performance: 0.638 ns/day, 37.619 hours/ns, 36.919 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 3.8138 | 3.8138 | 3.8138 | 0.0 | 28.16 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.011875 | 0.011875 | 0.011875 | 0.0 | 0.09 -Output | 0.049726 | 0.049726 | 0.049726 | 0.0 | 0.37 -Modify | 9.655 | 9.655 | 9.655 | 0.0 | 71.29 -Other | | 0.01262 | | | 0.09 - -Nlocal: 5780 ave 5780 max 5780 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1065 ave 1065 max 1065 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 92480 ave 92480 max 92480 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 92480 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:13 diff --git a/examples/SPIN/bfo/log.19Nov19.spin.bfo.g++.4 b/examples/SPIN/bfo/log.19Nov19.spin.bfo.g++.4 deleted file mode 100644 index 8c701c93c13cd9c294d141c5c1ff752ec17dea5f..0000000000000000000000000000000000000000 --- a/examples/SPIN/bfo/log.19Nov19.spin.bfo.g++.4 +++ /dev/null @@ -1,167 +0,0 @@ -LAMMPS (30 Oct 2019) -# layer sc iron atoms (in the [001] plane) in bismuth oxide - -units metal -atom_style spin -dimension 3 -boundary p p f - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice sc 3.96 -Lattice spacing in x,y,z = 3.96 3.96 3.96 -region box block 0.0 34.0 0.0 34.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) - 2 by 2 by 1 MPI processor grid -create_atoms 1 box -Created 5780 atoms - create_atoms CPU = 0.00149798 secs - -# setting mass, mag. moments, and interactions for bfo - -mass 1 1.0 -set group all spin/random 11 2.50 - 5780 settings made for spin/random - -#pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 -pair_style hybrid/overlay spin/exchange 6.0 spin/magelec 4.5 spin/dmi 4.5 -pair_coeff * * spin/exchange exchange 6.0 -0.01575 0.0 1.965 -pair_coeff * * spin/magelec magelec 4.5 0.000109 1.0 1.0 1.0 -pair_coeff * * spin/dmi dmi 4.5 0.00005 1.0 1.0 1.0 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin anisotropy 0.0000033 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.1 21 -fix 3 all nve/spin lattice frozen - -timestep 0.0002 - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -#thermo_style custom step time v_magnorm v_emag temp etotal -thermo_style custom step time v_magnorm pe ke v_emag temp etotal -thermo 10 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump_bfo.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 500 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.1 - ghost atom cutoff = 6.1 - binsize = 3.05, bins = 45 45 7 - 3 neighbor lists, perpetual/occasional/extra = 3 0 0 - (1) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard - (2) pair spin/magelec, perpetual, copy from (1) - attributes: full, newton on - pair build: copy - stencil: none - bin: none - (3) pair spin/dmi, perpetual, copy from (1) - attributes: full, newton on - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 7.744 | 7.744 | 7.744 Mbytes -Step Time v_magnorm PotEng KinEng v_emag Temp TotEng - 0 0 0.010071723 -0.11868622 0 -0.12966919 0 -0.11868622 - 10 0.002 0.010030399 -0.37068593 0 -0.38171598 0 -0.37068593 - 20 0.004 0.0099889925 -0.6223216 0 -0.6334048 0 -0.6223216 - 30 0.006 0.0099474775 -0.87359359 0 -0.8847354 0 -0.87359359 - 40 0.008 0.0099058307 -1.1245034 0 -1.1357086 0 -1.1245034 - 50 0.01 0.0098640297 -1.3750538 0 -1.3863265 0 -1.3750538 - 60 0.012 0.0098220535 -1.6252482 0 -1.6365919 0 -1.6252482 - 70 0.014 0.0097798823 -1.8750914 0 -1.8865086 0 -1.8750914 - 80 0.016 0.0097374973 -2.1245886 0 -2.1360814 0 -2.1245886 - 90 0.018 0.0096948808 -2.3737458 0 -2.3853155 0 -2.3737458 - 100 0.02 0.0096520159 -2.6225698 0 -2.6342168 0 -2.6225698 - 110 0.022 0.0096088866 -2.8710677 0 -2.8827919 0 -2.8710677 - 120 0.024 0.0095654776 -3.1192469 0 -3.1310475 0 -3.1192469 - 130 0.026 0.0095217746 -3.367115 0 -3.3789906 0 -3.367115 - 140 0.028 0.0094777638 -3.61468 0 -3.6266285 0 -3.61468 - 150 0.03 0.0094334323 -3.8619496 0 -3.8739683 0 -3.8619496 - 160 0.032 0.0093887679 -4.1089316 0 -4.1210173 0 -4.1089316 - 170 0.034 0.0093437596 -4.3556335 0 -4.3677824 0 -4.3556335 - 180 0.036 0.0092983972 -4.6020625 0 -4.6142704 0 -4.6020625 - 190 0.038 0.0092526717 -4.8482255 0 -4.8604877 0 -4.8482255 - 200 0.04 0.0092065755 -5.0941291 0 -5.1064403 0 -5.0941291 - 210 0.042 0.0091601024 -5.3397792 0 -5.3521339 0 -5.3397792 - 220 0.044 0.0091132478 -5.5851813 0 -5.5975736 0 -5.5851813 - 230 0.046 0.0090660089 -5.8303404 0 -5.842764 0 -5.8303404 - 240 0.048 0.0090183847 -6.0752609 0 -6.0877092 0 -6.0752609 - 250 0.05 0.0089703764 -6.3199467 0 -6.3324129 0 -6.3199467 - 260 0.052 0.0089219873 -6.5644011 0 -6.5768782 0 -6.5644011 - 270 0.054 0.0088732228 -6.808627 0 -6.8211078 0 -6.808627 - 280 0.056 0.0088240906 -7.0526266 0 -7.0651038 0 -7.0526266 - 290 0.058 0.0087746006 -7.296402 0 -7.3088682 0 -7.296402 - 300 0.06 0.0087247648 -7.5399545 0 -7.5524024 0 -7.5399545 - 310 0.062 0.0086745976 -7.7832854 0 -7.7957077 0 -7.7832854 - 320 0.064 0.0086241149 -8.0263956 0 -8.038785 0 -8.0263956 - 330 0.066 0.008573335 -8.2692858 0 -8.281635 0 -8.2692858 - 340 0.068 0.0085222772 -8.5119564 0 -8.5242586 0 -8.5119564 - 350 0.07 0.0084709627 -8.7544078 0 -8.7666562 0 -8.7544078 - 360 0.072 0.0084194136 -8.9966403 0 -9.0088285 0 -8.9966403 - 370 0.074 0.008367653 -9.2386543 0 -9.2507761 0 -9.2386543 - 380 0.076 0.0083157046 -9.4804501 0 -9.4924997 0 -9.4804501 - 390 0.078 0.0082635925 -9.7220281 0 -9.7340001 0 -9.7220281 - 400 0.08 0.0082113412 -9.9633888 0 -9.9752784 0 -9.9633888 - 410 0.082 0.0081589747 -10.204533 0 -10.216336 0 -10.204533 - 420 0.084 0.0081065173 -10.445462 0 -10.457173 0 -10.445462 - 430 0.086 0.0080539925 -10.686176 0 -10.697793 0 -10.686176 - 440 0.088 0.0080014235 -10.926676 0 -10.938197 0 -10.926676 - 450 0.09 0.0079488329 -11.166966 0 -11.178387 0 -11.166966 - 460 0.092 0.0078962427 -11.407045 0 -11.418366 0 -11.407045 - 470 0.094 0.0078436743 -11.646917 0 -11.658136 0 -11.646917 - 480 0.096 0.0077911486 -11.886583 0 -11.8977 0 -11.886583 - 490 0.098 0.007738686 -12.126047 0 -12.137063 0 -12.126047 - 500 0.1 0.0076863062 -12.365311 0 -12.376226 0 -12.365311 -Loop time of 3.94852 on 4 procs for 500 steps with 5780 atoms - -Performance: 2.188 ns/day, 10.968 hours/ns, 126.630 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.97416 | 0.98668 | 1.0022 | 1.0 | 24.99 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.032618 | 0.04948 | 0.062614 | 5.0 | 1.25 -Output | 0.014166 | 0.014229 | 0.014374 | 0.1 | 0.36 -Modify | 2.8947 | 2.8957 | 2.8965 | 0.0 | 73.34 -Other | | 0.002385 | | | 0.06 - -Nlocal: 1445 ave 1445 max 1445 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 555 ave 555 max 555 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 23120 ave 23120 max 23120 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 92480 -Ave neighs/atom = 16 -Neighbor list builds = 0 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:03 diff --git a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc index dd9ed890ee8b3be6ff1ba9d1ffab132fee743337..f81a962e3f6c33e5734e23b63baff451f735870b 100644 --- a/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc +++ b/examples/SPIN/cobalt_fcc/in.spin.cobalt_fcc @@ -45,8 +45,6 @@ compute out_pe all pe compute out_ke all ke compute out_temp all temp -thermo_style custom f_1 - variable magx equal c_out_mag[1] variable magy equal c_out_mag[2] variable magz equal c_out_mag[3] @@ -54,7 +52,7 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal +thermo_style custom step time v_magx v_magy v_magnorm pe v_emag temp etotal thermo 50 # compute outsp all property/atom spx spy spz sp fmx fmy fmz diff --git a/examples/SPIN/cobalt_fcc/log.14Apr20.spin.cobalt_fcc.g++.1 b/examples/SPIN/cobalt_fcc/log.14Apr20.spin.cobalt_fcc.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..f233c5e9ea6794d0846704b2294426be3fcc6a4e --- /dev/null +++ b/examples/SPIN/cobalt_fcc/log.14Apr20.spin.cobalt_fcc.g++.1 @@ -0,0 +1,144 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# fcc cobalt in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.54 +Lattice spacing in x,y,z = 3.54 3.54 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.7 17.7 17.7) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.00057292 secs + +# setting mass, mag. moments, and interactions for fcc cobalt + +mass 1 58.93 + +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 + 500 settings made for spin +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix_modify 1 energy yes + +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magx equal c_out_mag[1] +variable magy equal c_out_mag[2] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magx v_magy v_magnorm pe v_emag temp etotal +thermo 50 + +# compute outsp all property/atom spx spy spz sp fmx fmy fmz +# dump 1 all custom 100 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.718 | 5.718 | 5.718 Mbytes +Step Time v_magx v_magy v_magnorm PotEng v_emag Temp TotEng + 0 0 0 0 1 -2285.0679 -94.095041 100.00543 -2278.6175 + 50 0.005 0 0 1 -2284.7512 -94.095025 95.095146 -2278.6175 + 100 0.01 0 0 1 -2283.8798 -94.094815 81.584879 -2278.6175 + 150 0.015 0 0 1 -2282.6701 -94.09401 62.831647 -2278.6175 + 200 0.02 0 0 1 -2281.4185 -94.092175 43.426664 -2278.6174 + 250 0.025 0 0 1 -2280.4165 -94.089084 27.892653 -2278.6174 + 300 0.03 0 0 1 -2279.8662 -94.084906 19.36049 -2278.6174 + 350 0.035 0 0 1 -2279.8238 -94.080244 18.702888 -2278.6174 + 400 0.04 0 0 1 -2280.1962 -94.076013 24.47725 -2278.6174 + 450 0.045 0 0 1 -2280.7898 -94.073181 33.678697 -2278.6175 + 500 0.05 0 0 1 -2281.3871 -94.072475 42.940446 -2278.6175 + 550 0.055 0 0 1 -2281.8215 -94.074138 49.675032 -2278.6175 + 600 0.06 0 0 1 -2282.0209 -94.077829 52.765336 -2278.6175 + 650 0.065 0 0 1 -2282.0136 -94.082703 52.652501 -2278.6175 + 700 0.07 0 0 1 -2281.8997 -94.087644 50.88749 -2278.6174 + 750 0.075 0 0 1 -2281.8013 -94.091583 49.361723 -2278.6174 + 800 0.08 0 0 1 -2281.8108 -94.093792 49.508108 -2278.6174 + 850 0.085 0 0 1 -2281.9558 -94.094064 51.756992 -2278.6174 + 900 0.09 0 0 1 -2282.1927 -94.092723 55.428834 -2278.6175 + 950 0.095 0 0 1 -2282.4277 -94.090469 59.072774 -2278.6175 + 1000 0.1 0 0 1 -2282.5578 -94.088121 61.090565 -2278.6175 +Loop time of 4.4001 on 1 procs for 1000 steps with 500 atoms + +Performance: 1.964 ns/day, 12.222 hours/ns, 227.268 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.0815 | 2.0815 | 2.0815 | 0.0 | 47.31 +Neigh | 0.011835 | 0.011835 | 0.011835 | 0.0 | 0.27 +Comm | 0.033331 | 0.033331 | 0.033331 | 0.0 | 0.76 +Output | 0.00045395 | 0.00045395 | 0.00045395 | 0.0 | 0.01 +Modify | 2.2677 | 2.2677 | 2.2677 | 0.0 | 51.54 +Other | | 0.005309 | | | 0.12 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 24088 ave 24088 max 24088 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 48176 ave 48176 max 48176 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 48176 +Ave neighs/atom = 96.352 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/cobalt_fcc/log.14Apr20.spin.cobalt_fcc.g++.4 b/examples/SPIN/cobalt_fcc/log.14Apr20.spin.cobalt_fcc.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..3cbcd942686ef00d9c80b46ede39d141d033b652 --- /dev/null +++ b/examples/SPIN/cobalt_fcc/log.14Apr20.spin.cobalt_fcc.g++.4 @@ -0,0 +1,144 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# fcc cobalt in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.54 +Lattice spacing in x,y,z = 3.54 3.54 3.54 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.7 17.7 17.7) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.000688791 secs + +# setting mass, mag. moments, and interactions for fcc cobalt + +mass 1 58.93 + +#set group all spin/random 31 1.72 +set group all spin 1.72 0.0 0.0 1.0 + 500 settings made for spin +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 +fix_modify 1 energy yes + +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magx equal c_out_mag[1] +variable magy equal c_out_mag[2] +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magx v_magy v_magnorm pe v_emag temp etotal +thermo 50 + +# compute outsp all property/atom spx spy spz sp fmx fmy fmz +# dump 1 all custom 100 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.664 | 5.664 | 5.664 Mbytes +Step Time v_magx v_magy v_magnorm PotEng v_emag Temp TotEng + 0 0 0 0 1 -2285.0679 -94.095041 100.00543 -2278.6175 + 50 0.005 0 0 1 -2284.7564 -94.094967 95.176149 -2278.6175 + 100 0.01 0 0 1 -2283.8977 -94.094606 81.863661 -2278.6175 + 150 0.015 0 0 1 -2282.7006 -94.09362 63.303924 -2278.6175 + 200 0.02 0 0 1 -2281.452 -94.091648 43.94572 -2278.6174 + 250 0.025 0 0 1 -2280.4374 -94.08853 28.216468 -2278.6174 + 300 0.03 0 0 1 -2279.859 -94.084466 19.248729 -2278.6174 + 350 0.035 0 0 1 -2279.78 -94.080048 18.024631 -2278.6174 + 400 0.04 0 0 1 -2280.1196 -94.076134 23.288369 -2278.6174 + 450 0.045 0 0 1 -2280.697 -94.073612 32.240137 -2278.6175 + 500 0.05 0 0 1 -2281.305 -94.073124 41.666374 -2278.6175 + 550 0.055 0 0 1 -2281.7792 -94.074853 49.019175 -2278.6175 + 600 0.06 0 0 1 -2282.0409 -94.078438 53.075365 -2278.6175 + 650 0.065 0 0 1 -2282.1031 -94.083056 54.040647 -2278.6175 + 700 0.07 0 0 1 -2282.0468 -94.087642 53.167271 -2278.6175 + 750 0.075 0 0 1 -2281.9765 -94.09119 52.076935 -2278.6174 + 800 0.08 0 0 1 -2281.9742 -94.093023 52.041607 -2278.6174 + 850 0.085 0 0 1 -2282.0669 -94.09296 53.478909 -2278.6174 + 900 0.09 0 0 1 -2282.2193 -94.091331 55.842481 -2278.6175 + 950 0.095 0 0 1 -2282.354 -94.088827 57.930866 -2278.6175 + 1000 0.1 0 0 1 -2282.3885 -94.086262 58.464579 -2278.6175 +Loop time of 2.75 on 4 procs for 1000 steps with 500 atoms + +Performance: 3.142 ns/day, 7.639 hours/ns, 363.637 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.57529 | 0.60652 | 0.63664 | 3.2 | 22.06 +Neigh | 0.0026889 | 0.0029447 | 0.0030761 | 0.3 | 0.11 +Comm | 0.10943 | 0.14471 | 0.17847 | 7.5 | 5.26 +Output | 0.00045419 | 0.00050056 | 0.00060511 | 0.0 | 0.02 +Modify | 1.9865 | 1.9926 | 1.998 | 0.3 | 72.46 +Other | | 0.002738 | | | 0.10 + +Nlocal: 125 ave 132 max 116 min +Histogram: 1 0 0 0 0 1 1 0 0 1 +Nghost: 1099 ave 1108 max 1092 min +Histogram: 1 0 0 1 1 0 0 0 0 1 +Neighs: 6033 ave 6372 max 5495 min +Histogram: 1 0 0 0 0 0 0 2 0 1 +FullNghs: 12066 ave 12964 max 10977 min +Histogram: 1 0 0 0 0 1 1 0 0 1 + +Total # of neighbors = 48264 +Ave neighs/atom = 96.528 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:02 diff --git a/examples/SPIN/cobalt_fcc/log.19Nov19.spin.cobalt_fcc.g++.1 b/examples/SPIN/cobalt_fcc/log.19Nov19.spin.cobalt_fcc.g++.1 deleted file mode 100644 index 06774d08580242bac91bffff8d89150bcf1f80f6..0000000000000000000000000000000000000000 --- a/examples/SPIN/cobalt_fcc/log.19Nov19.spin.cobalt_fcc.g++.1 +++ /dev/null @@ -1,142 +0,0 @@ -LAMMPS (30 Oct 2019) -# fcc cobalt in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice fcc 3.54 -Lattice spacing in x,y,z = 3.54 3.54 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (17.7 17.7 17.7) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.000470161 secs - -# setting mass, mag. moments, and interactions for fcc cobalt - -mass 1 58.93 - -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 - 500 settings made for spin -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 -fix_modify 1 energy yes - -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -thermo_style custom f_1 - -variable magx equal c_out_mag[1] -variable magy equal c_out_mag[2] -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal -thermo 50 - -# compute outsp all property/atom spx spy spz sp fmx fmy fmz -# dump 1 all custom 100 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.59954 - ghost atom cutoff = 6.59954 - binsize = 3.29977, bins = 6 6 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 5.718 | 5.718 | 5.718 Mbytes -Step Time f_1 v_magx v_magy v_magnorm v_emag Temp TotEng - 0 0 -0.099570972 0 0 1 -188.09051 100.00543 -2278.6175 - 50 0.005 -0.099570972 0 0 1 -188.09048 95.094679 -2278.6175 - 100 0.01 -0.099570972 0 0 1 -188.09007 81.578321 -2278.6177 - 150 0.015 -0.099570972 0 0 1 -188.08848 62.802727 -2278.6185 - 200 0.02 -0.099570972 0 0 1 -188.08487 43.35108 -2278.6203 - 250 0.025 -0.099570972 0 0 1 -188.07877 27.749821 -2278.6233 - 300 0.03 -0.099570972 0 0 1 -188.07054 19.149389 -2278.6274 - 350 0.035 -0.099570972 0 0 1 -188.06135 18.453387 -2278.632 - 400 0.04 -0.099570972 0 0 1 -188.053 24.249423 -2278.6362 - 450 0.045 -0.099570972 0 0 1 -188.04742 33.548008 -2278.639 - 500 0.05 -0.099570972 0 0 1 -188.04604 42.973172 -2278.6397 - 550 0.055 -0.099570972 0 0 1 -188.04935 49.902539 -2278.638 - 600 0.06 -0.099570972 0 0 1 -188.0567 53.166772 -2278.6344 - 650 0.065 -0.099570972 0 0 1 -188.06642 53.153416 -2278.6295 - 700 0.07 -0.099570972 0 0 1 -188.07628 51.377187 -2278.6246 - 750 0.075 -0.099570972 0 0 1 -188.08415 49.725449 -2278.6206 - 800 0.08 -0.099570972 0 0 1 -188.08857 49.663576 -2278.6184 - 850 0.085 -0.099570972 0 0 1 -188.0891 51.681567 -2278.6182 - 900 0.09 -0.099570972 0 0 1 -188.08636 55.166554 -2278.6195 - 950 0.095 -0.099570972 0 0 1 -188.08174 58.718232 -2278.6218 - 1000 0.1 -0.099570972 0 0 1 -188.0769 60.75567 -2278.6243 -Loop time of 4.6196 on 1 procs for 1000 steps with 500 atoms - -Performance: 1.870 ns/day, 12.832 hours/ns, 216.469 timesteps/s -99.9% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 2.3116 | 2.3116 | 2.3116 | 0.0 | 50.04 -Neigh | 0.011227 | 0.011227 | 0.011227 | 0.0 | 0.24 -Comm | 0.032837 | 0.032837 | 0.032837 | 0.0 | 0.71 -Output | 0.00039411 | 0.00039411 | 0.00039411 | 0.0 | 0.01 -Modify | 2.2584 | 2.2584 | 2.2584 | 0.0 | 48.89 -Other | | 0.005152 | | | 0.11 - -Nlocal: 500 ave 500 max 500 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1956 ave 1956 max 1956 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 24065 ave 24065 max 24065 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 48130 ave 48130 max 48130 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 48130 -Ave neighs/atom = 96.26 -Neighbor list builds = 6 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:04 diff --git a/examples/SPIN/cobalt_fcc/log.19Nov19.spin.cobalt_fcc.g++.4 b/examples/SPIN/cobalt_fcc/log.19Nov19.spin.cobalt_fcc.g++.4 deleted file mode 100644 index 331ed60315a408c4cc2d221e13b18348b540b87b..0000000000000000000000000000000000000000 --- a/examples/SPIN/cobalt_fcc/log.19Nov19.spin.cobalt_fcc.g++.4 +++ /dev/null @@ -1,142 +0,0 @@ -LAMMPS (30 Oct 2019) -# fcc cobalt in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice fcc 3.54 -Lattice spacing in x,y,z = 3.54 3.54 3.54 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (17.7 17.7 17.7) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.000808001 secs - -# setting mass, mag. moments, and interactions for fcc cobalt - -mass 1 58.93 - -#set group all spin/random 31 1.72 -set group all spin 1.72 0.0 0.0 1.0 - 500 settings made for spin -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * spin/exchange exchange 4.0 0.0446928 0.003496 1.4885 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 -fix_modify 1 energy yes - -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -thermo_style custom f_1 - -variable magx equal c_out_mag[1] -variable magy equal c_out_mag[2] -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time f_1 v_magx v_magy v_magnorm v_emag temp etotal -thermo 50 - -# compute outsp all property/atom spx spy spz sp fmx fmy fmz -# dump 1 all custom 100 dump_cobalt_fcc.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.59954 - ghost atom cutoff = 6.59954 - binsize = 3.29977, bins = 6 6 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 5.664 | 5.664 | 5.664 Mbytes -Step Time f_1 v_magx v_magy v_magnorm v_emag Temp TotEng - 0 0 -0.099570972 0 0 1 -188.09051 100.00543 -2372.6129 - 50 0.005 -0.099570972 0 0 1 -188.09036 95.174807 -2372.6129 - 100 0.01 -0.099570972 0 0 1 -188.08965 81.854304 -2372.6129 - 150 0.015 -0.099570972 0 0 1 -188.0877 63.270938 -2372.6129 - 200 0.02 -0.099570972 0 0 1 -188.08381 43.867262 -2372.6129 - 250 0.025 -0.099570972 0 0 1 -188.07767 28.075261 -2372.6129 - 300 0.03 -0.099570972 0 0 1 -188.06966 19.046222 -2372.6129 - 350 0.035 -0.099570972 0 0 1 -188.06096 17.79071 -2372.6129 - 400 0.04 -0.099570972 0 0 1 -188.05326 23.079994 -2372.6129 - 450 0.045 -0.099570972 0 0 1 -188.04831 32.127316 -2372.6129 - 500 0.05 -0.099570972 0 0 1 -188.04737 41.709644 -2372.6129 - 550 0.055 -0.099570972 0 0 1 -188.05082 49.246292 -2372.6129 - 600 0.06 -0.099570972 0 0 1 -188.05795 53.465535 -2372.6129 - 650 0.065 -0.099570972 0 0 1 -188.06713 54.522857 -2372.6129 - 700 0.07 -0.099570972 0 0 1 -188.07626 53.635521 -2372.6129 - 750 0.075 -0.099570972 0 0 1 -188.08332 52.419678 -2372.6129 - 800 0.08 -0.099570972 0 0 1 -188.08696 52.176558 -2372.6129 - 850 0.085 -0.099570972 0 0 1 -188.0868 53.380592 -2372.6129 - 900 0.09 -0.099570972 0 0 1 -188.08348 55.551378 -2372.6129 - 950 0.095 -0.099570972 0 0 1 -188.07838 57.540047 -2372.6129 - 1000 0.1 -0.099570972 0 0 1 -188.07314 58.088674 -2372.6129 -Loop time of 2.54753 on 4 procs for 1000 steps with 500 atoms - -Performance: 3.392 ns/day, 7.076 hours/ns, 392.538 timesteps/s -100.0% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.62017 | 0.6485 | 0.66275 | 2.1 | 25.46 -Neigh | 0.0027115 | 0.0029724 | 0.0030868 | 0.3 | 0.12 -Comm | 0.095047 | 0.1102 | 0.13819 | 5.0 | 4.33 -Output | 0.00039029 | 0.00042999 | 0.00049996 | 0.0 | 0.02 -Modify | 1.7801 | 1.7834 | 1.7852 | 0.1 | 70.01 -Other | | 0.002028 | | | 0.08 - -Nlocal: 125 ave 133 max 116 min -Histogram: 1 0 0 0 0 2 0 0 0 1 -Nghost: 1099 ave 1108 max 1091 min -Histogram: 1 0 0 0 2 0 0 0 0 1 -Neighs: 6032.5 ave 6417 max 5489 min -Histogram: 1 0 0 0 0 0 1 1 0 1 -FullNghs: 12065 ave 13062 max 10970 min -Histogram: 1 0 0 0 0 2 0 0 0 1 - -Total # of neighbors = 48260 -Ave neighs/atom = 96.52 -Neighbor list builds = 6 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:02 diff --git a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp index dd114202cb7dce70f07dedf74077da08e36d2c90..2bfa8393f387c1d5b5646f0deff19fa930a0543c 100644 --- a/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp +++ b/examples/SPIN/cobalt_hcp/in.spin.cobalt_hcp @@ -32,10 +32,9 @@ pair_coeff * * spin/exchange exchange 4.0 -0.3593 1.135028015e-05 1.064568567 neighbor 0.1 bin neigh_modify every 10 check yes delay 20 -#fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0 -#fix 2 all langevin/spin 0.0 0.0 21 -fix 2 all langevin/spin 0.0 0.1 21 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice moving timestep 0.0001 @@ -51,8 +50,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp press etotal -thermo 10 +thermo_style custom step time v_magnorm pe v_emag temp press etotal +thermo 50 compute outsp all property/atom spx spy spz sp fmx fmy fmz dump 1 all custom 100 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] diff --git a/examples/SPIN/cobalt_hcp/log.14Apr20.spin.cobalt_hcp.g++.1 b/examples/SPIN/cobalt_hcp/log.14Apr20.spin.cobalt_hcp.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..b26892f6e9831524682bd1314917ce2ced478975 --- /dev/null +++ b/examples/SPIN/cobalt_hcp/log.14Apr20.spin.cobalt_hcp.g++.1 @@ -0,0 +1,142 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# hcp cobalt in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice hcp 2.5071 +Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.00121403 secs + +# setting mass, mag. moments, and interactions for hcp cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 + 500 settings made for spin/random +#set group all spin 1.72 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 -0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice moving + +timestep 0.0001 + + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp press etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 4 7 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.902 | 7.902 | 7.902 Mbytes +Step Time v_magnorm PotEng v_emag Temp Press TotEng + 0 0 0.076558814 -2197.5536 -2.5536882 100.00543 -552.75983 -2191.1032 + 50 0.005 0.079437931 -2197.3113 -2.6177795 96.18776 -337.75504 -2191.1071 + 100 0.01 0.079575823 -2196.5768 -2.7375927 84.740309 571.91195 -2191.1109 + 150 0.015 0.078526145 -2195.4996 -2.8719243 67.984081 1845.185 -2191.1146 + 200 0.02 0.077001318 -2194.3502 -3.019723 50.107518 3008.9709 -2191.1182 + 250 0.025 0.077628454 -2193.403 -3.1832392 35.364524 4018.0217 -2191.122 + 300 0.03 0.077407462 -2192.8618 -3.3557644 26.910583 4535.9542 -2191.126 + 350 0.035 0.078090775 -2192.8052 -3.5305639 25.971561 4733.0322 -2191.13 + 400 0.04 0.078594494 -2193.135 -3.6772939 31.026665 4309.2088 -2191.1338 + 450 0.045 0.079898162 -2193.6965 -3.8044501 39.672566 3591.9593 -2191.1376 + 500 0.05 0.079885039 -2194.3293 -3.9435795 49.423774 2698.4519 -2191.1414 + 550 0.055 0.077196547 -2194.8554 -4.0868278 57.523322 1934.2444 -2191.1451 + 600 0.06 0.075430904 -2195.1797 -4.2355252 62.494025 1597.2543 -2191.1488 + 650 0.065 0.076510964 -2195.2854 -4.3752086 64.080496 1656.2312 -2191.1522 + 700 0.07 0.07649426 -2195.2723 -4.5226349 63.825926 1521.7541 -2191.1555 + 750 0.075 0.076254777 -2195.2746 -4.6937954 63.804162 1505.1323 -2191.1592 + 800 0.08 0.074211447 -2195.3567 -4.8567561 65.022623 1203.5409 -2191.1627 + 850 0.085 0.072034236 -2195.5531 -5.0007443 68.003461 900.03381 -2191.1668 + 900 0.09 0.071097702 -2195.8563 -5.1391578 72.641879 548.08834 -2191.1709 + 950 0.095 0.072642434 -2196.2007 -5.2853353 77.926596 194.45928 -2191.1743 + 1000 0.1 0.07306537 -2196.46 -5.4169261 81.891897 -404.70871 -2191.1779 +Loop time of 4.78824 on 1 procs for 1000 steps with 500 atoms + +Performance: 1.804 ns/day, 13.301 hours/ns, 208.845 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.3284 | 2.3284 | 2.3284 | 0.0 | 48.63 +Neigh | 0.01273 | 0.01273 | 0.01273 | 0.0 | 0.27 +Comm | 0.042432 | 0.042432 | 0.042432 | 0.0 | 0.89 +Output | 0.0083201 | 0.0083201 | 0.0083201 | 0.0 | 0.17 +Modify | 2.3895 | 2.3895 | 2.3895 | 0.0 | 49.90 +Other | | 0.006823 | | | 0.14 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2444 ave 2444 max 2444 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 27036 ave 27036 max 27036 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 54072 ave 54072 max 54072 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 54072 +Ave neighs/atom = 108.144 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/cobalt_hcp/log.14Apr20.spin.cobalt_hcp.g++.4 b/examples/SPIN/cobalt_hcp/log.14Apr20.spin.cobalt_hcp.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..ad8bf1807f0925c3e74a9697392bf7d44376ce82 --- /dev/null +++ b/examples/SPIN/cobalt_hcp/log.14Apr20.spin.cobalt_hcp.g++.4 @@ -0,0 +1,142 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# hcp cobalt in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice hcp 2.5071 +Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.000710964 secs + +# setting mass, mag. moments, and interactions for hcp cobalt + +mass 1 58.93 + +set group all spin/random 31 1.72 + 500 settings made for spin/random +#set group all spin 1.72 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co +pair_coeff * * spin/exchange exchange 4.0 -0.3593 1.135028015e-05 1.064568567 +#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 +fix 3 all nve/spin lattice moving + +timestep 0.0001 + + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp press etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.59954 + ghost atom cutoff = 6.59954 + binsize = 3.29977, bins = 4 7 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.814 | 7.814 | 7.815 Mbytes +Step Time v_magnorm PotEng v_emag Temp Press TotEng + 0 0 0.076558814 -2197.5536 -2.5536882 100.00543 -552.75983 -2191.1032 + 50 0.005 0.079452711 -2197.3115 -2.6266704 96.190558 -328.47868 -2191.1071 + 100 0.01 0.079678568 -2196.5823 -2.7759025 84.826338 585.21827 -2191.1109 + 150 0.015 0.078665787 -2195.5034 -2.9426881 68.043637 1872.5465 -2191.1146 + 200 0.02 0.076875906 -2194.3466 -3.1163511 50.052941 2986.3962 -2191.1181 + 250 0.025 0.076865073 -2193.3857 -3.2792912 35.095608 4003.4846 -2191.122 + 300 0.03 0.07675751 -2192.8611 -3.4452905 26.902302 4561.1429 -2191.1259 + 350 0.035 0.077351833 -2192.8579 -3.6193072 26.792986 4523.2641 -2191.1297 + 400 0.04 0.077672952 -2193.275 -3.7845654 33.199609 4108.3226 -2191.1336 + 450 0.045 0.077553541 -2193.9028 -3.9247064 42.874729 3267.3626 -2191.1373 + 500 0.05 0.076992612 -2194.5433 -4.0593738 52.743363 2317.5276 -2191.1413 + 550 0.055 0.074971927 -2195.0364 -4.1961092 60.332059 1620.5766 -2191.145 + 600 0.06 0.072652113 -2195.3154 -4.3458839 64.600641 1265.4418 -2191.1486 + 650 0.065 0.071405665 -2195.392 -4.5049778 65.734457 1221.4637 -2191.1521 + 700 0.07 0.072030336 -2195.337 -4.6535106 64.831697 1224.9583 -2191.1553 + 750 0.075 0.072468553 -2195.2702 -4.7829549 63.746912 1220.2392 -2191.1585 + 800 0.08 0.071546019 -2195.3271 -4.9161885 64.581676 1134.3858 -2191.1616 + 850 0.085 0.071414723 -2195.5618 -5.0652271 68.168922 864.52044 -2191.1648 + 900 0.09 0.073428472 -2195.9219 -5.219789 73.702937 556.14868 -2191.168 + 950 0.095 0.0745891 -2196.3065 -5.3782699 79.616238 -64.458151 -2191.1711 + 1000 0.1 0.074027925 -2196.6049 -5.5446493 84.189424 -640.80166 -2191.1746 +Loop time of 2.86028 on 4 procs for 1000 steps with 500 atoms + +Performance: 3.021 ns/day, 7.945 hours/ns, 349.616 timesteps/s +100.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.6266 | 0.66621 | 0.68577 | 3.0 | 23.29 +Neigh | 0.0030921 | 0.0031813 | 0.0032392 | 0.1 | 0.11 +Comm | 0.1184 | 0.14023 | 0.18062 | 6.6 | 4.90 +Output | 0.0031779 | 0.0032207 | 0.0033176 | 0.1 | 0.11 +Modify | 2.0432 | 2.0445 | 2.0467 | 0.1 | 71.48 +Other | | 0.002987 | | | 0.10 + +Nlocal: 125 ave 128 max 121 min +Histogram: 1 0 1 0 0 0 0 0 0 2 +Nghost: 1324 ave 1331 max 1318 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Neighs: 6756.5 ave 6978 max 6543 min +Histogram: 1 1 0 0 0 0 0 0 1 1 +FullNghs: 13513 ave 13915 max 13042 min +Histogram: 1 1 0 0 0 0 0 0 0 2 + +Total # of neighbors = 54052 +Ave neighs/atom = 108.104 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:02 diff --git a/examples/SPIN/cobalt_hcp/log.19Nov19.spin.cobalt_hcp.g++.1 b/examples/SPIN/cobalt_hcp/log.19Nov19.spin.cobalt_hcp.g++.1 deleted file mode 100644 index 781e2264a73438a7f71bbacbca8ec749fa19403e..0000000000000000000000000000000000000000 --- a/examples/SPIN/cobalt_hcp/log.19Nov19.spin.cobalt_hcp.g++.1 +++ /dev/null @@ -1,219 +0,0 @@ -LAMMPS (30 Oct 2019) -# hcp cobalt in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice hcp 2.5071 -Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.00105 secs - -# setting mass, mag. moments, and interactions for hcp cobalt - -mass 1 58.93 - -set group all spin/random 31 1.72 - 500 settings made for spin/random -#set group all spin 1.72 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * spin/exchange exchange 4.0 -0.3593 1.135028015e-05 1.064568567 -#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -#fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 -fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0 -#fix 2 all langevin/spin 0.0 0.0 21 -fix 2 all langevin/spin 0.0 0.1 21 -fix 3 all nve/spin lattice moving - -timestep 0.0001 - - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_emag temp press etotal -thermo 10 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.59954 - ghost atom cutoff = 6.59954 - binsize = 3.29977, bins = 4 7 7 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.902 | 7.902 | 7.902 Mbytes -Step Time v_magnorm v_emag Temp Press TotEng - 0 0 0.076558814 -5.1073764 100.00543 -552.75983 -2189.4486 - 10 0.001 0.074494403 -6.2746901 100.01038 -1571.7966 -2190.0317 - 20 0.002 0.072366265 -7.4280779 99.885587 -2535.9845 -2190.5874 - 30 0.003 0.070127018 -8.5667999 99.611653 -3445.9872 -2191.1169 - 40 0.004 0.067755946 -9.6899272 99.164813 -4302.5715 -2191.6215 - 50 0.005 0.065261592 -10.79648 98.520535 -5107.2841 -2192.103 - 60 0.006 0.062676613 -11.885341 97.657148 -5862.7198 -2192.5638 - 70 0.007 0.060046709 -12.955115 96.558718 -6572.0571 -2193.0064 - 80 0.008 0.057417313 -14.004096 95.216748 -7238.1396 -2193.4327 - 90 0.009 0.054822275 -15.030416 93.630634 -7862.5226 -2193.8437 - 100 0.01 0.052277835 -16.032345 91.80711 -8445.2646 -2194.2391 - 110 0.011 0.049783153 -17.008652 89.759163 -8985.5937 -2194.6181 - 120 0.012 0.047326373 -17.958895 87.504922 -9483.1141 -2194.98 - 130 0.013 0.044893289 -18.883574 85.066818 -9938.8838 -2195.3247 - 140 0.014 0.042474822 -19.784052 82.471014 -10355.911 -2195.6533 - 150 0.015 0.040070404 -20.662271 79.746901 -10739.081 -2195.9677 - 160 0.016 0.037686856 -21.520294 76.926428 -11094.793 -2196.2709 - 170 0.017 0.035334961 -22.359822 74.043181 -11430.247 -2196.5659 - 180 0.018 0.033026799 -23.181822 71.131269 -11752.268 -2196.8556 - 190 0.019 0.030775544 -23.986406 68.224204 -12065.774 -2197.1412 - 200 0.02 0.028597121 -24.773013 65.353995 -12372.712 -2197.4226 - 210 0.021 0.026511775 -25.540835 62.55053 -12672.055 -2197.6975 - 220 0.022 0.02454383 -26.289327 59.841288 -12961.112 -2197.9631 - 230 0.023 0.02271918 -27.018625 57.251361 -13237.544 -2198.2165 - 240 0.024 0.021061271 -27.729714 54.80373 -13501.028 -2198.4564 - 250 0.025 0.019587072 -28.42449 52.519717 -13754.325 -2198.6833 - 260 0.026 0.018304494 -29.105398 50.419388 -14002.718 -2198.8994 - 270 0.027 0.017211977 -29.775134 48.521812 -14253.089 -2199.1079 - 280 0.028 0.016300002 -30.436204 46.845075 -14512.437 -2199.3119 - 290 0.029 0.015553519 -31.090499 45.405985 -14786.53 -2199.5143 - 300 0.03 0.014954102 -31.739026 44.219544 -15079.165 -2199.7168 - 310 0.031 0.014481189 -32.381585 43.298175 -15391.531 -2199.9198 - 320 0.032 0.014112494 -33.016984 42.650874 -15722.828 -2200.1226 - 330 0.033 0.013824206 -33.643289 42.282535 -16070.874 -2200.324 - 340 0.034 0.013591568 -34.258323 42.19365 -16433.065 -2200.5226 - 350 0.035 0.013390035 -34.860184 42.380506 -16807.186 -2200.7174 - 360 0.036 0.01319679 -35.447655 42.835832 -17191.816 -2200.9077 - 370 0.037 0.012992271 -36.020512 43.549656 -17586.676 -2201.0935 - 380 0.038 0.012761486 -36.579332 44.510078 -17991.857 -2201.2754 - 390 0.039 0.012494918 -37.125414 45.703757 -18407.738 -2201.4538 - 400 0.04 0.0121888 -37.660321 47.115967 -18834.276 -2201.6292 - 410 0.041 0.011844474 -38.185489 48.730291 -19270.674 -2201.8019 - 420 0.042 0.011466715 -38.70192 50.528119 -19715.276 -2201.9716 - 430 0.043 0.011061388 -39.21005 52.488204 -20165.66 -2202.1377 - 440 0.044 0.010633241 -39.709778 54.586528 -20618.997 -2202.2998 - 450 0.045 0.010184696 -40.200724 56.79654 -21072.538 -2202.4571 - 460 0.046 0.0097161044 -40.682449 59.089699 -21523.873 -2202.6094 - 470 0.047 0.0092271788 -41.154614 61.436133 -21970.922 -2202.7565 - 480 0.048 0.0087187266 -41.617256 63.805414 -22412.32 -2202.8989 - 490 0.049 0.0081937768 -42.070708 66.167399 -22847.061 -2203.037 - 500 0.05 0.0076576327 -42.51563 68.493235 -23274.619 -2203.172 - 510 0.051 0.0071170477 -42.952841 70.756444 -23694.559 -2203.3046 - 520 0.052 0.006579078 -43.383338 72.933996 -24106.717 -2203.4358 - 530 0.053 0.006050144 -43.807962 75.007131 -24510.338 -2203.5662 - 540 0.054 0.0055354475 -44.227552 76.961803 -24904.495 -2203.6957 - 550 0.055 0.0050386503 -44.64268 78.788647 -25287.341 -2203.8241 - 560 0.056 0.0045617699 -45.053996 80.4825 -25657.11 -2203.9504 - 570 0.057 0.0041054334 -45.461923 82.041527 -26011.443 -2204.0737 - 580 0.058 0.003669689 -45.866895 83.466142 -26348.265 -2204.1931 - 590 0.059 0.0032553824 -46.269219 84.757926 -26665.834 -2204.3077 - 600 0.06 0.0028655752 -46.669125 85.918711 -26963.24 -2204.4173 - 610 0.061 0.0025060765 -47.066641 86.95 -27240.331 -2204.5218 - 620 0.062 0.0021839971 -47.461566 87.852838 -27497.728 -2204.6218 - 630 0.063 0.0019039581 -47.853462 88.628142 -27736.503 -2204.7177 - 640 0.064 0.0016633855 -48.241747 89.277364 -27957.91 -2204.81 - 650 0.065 0.0014502904 -48.625803 89.803307 -28163.11 -2204.899 - 660 0.066 0.0012463786 -49.005026 90.210807 -28352.881 -2204.9847 - 670 0.067 0.0010345087 -49.378935 90.507107 -28527.721 -2205.0668 - 680 0.068 0.00080788134 -49.747325 90.701795 -28688.395 -2205.1453 - 690 0.069 0.000586442 -50.110227 90.80636 -28836.094 -2205.22 - 700 0.07 0.00046855102 -50.467799 90.833539 -28972.361 -2205.2911 - 710 0.071 0.00061091693 -50.82044 90.796649 -29099.44 -2205.3592 - 720 0.072 0.00094960177 -51.168606 90.709122 -29219.676 -2205.4249 - 730 0.073 0.0013742455 -51.512913 90.584346 -29335.643 -2205.4887 - 740 0.074 0.0018397629 -51.853957 90.435783 -29449.521 -2205.5511 - 750 0.075 0.0023216474 -52.192407 90.277231 -29563.316 -2205.6124 - 760 0.076 0.0028000512 -52.528883 90.123061 -29678.726 -2205.6729 - 770 0.077 0.0032569295 -52.863859 89.98824 -29797.079 -2205.7329 - 780 0.078 0.0036765431 -53.197843 89.888047 -29919.964 -2205.7925 - 790 0.079 0.0040467094 -53.530921 89.837568 -30048.271 -2205.8521 - 800 0.08 0.0043597837 -53.862938 89.850978 -30182.622 -2205.9119 - 810 0.081 0.0046129296 -54.193489 89.940884 -30323.293 -2205.9718 - 820 0.082 0.0048076151 -54.522077 90.117797 -30470.468 -2206.0321 - 830 0.083 0.004948533 -54.84813 90.389814 -30624.056 -2206.0926 - 840 0.084 0.0050423324 -55.171024 90.762454 -30783.658 -2206.1532 - 850 0.085 0.0050965581 -55.490357 91.238681 -30949.141 -2206.2139 - 860 0.086 0.0051190641 -55.805904 91.818973 -31120.5 -2206.2745 - 870 0.087 0.0051180301 -56.117429 92.501449 -31297.412 -2206.3349 - 880 0.088 0.0051024116 -56.424751 93.281992 -31479.436 -2206.3949 - 890 0.089 0.005082454 -56.727832 94.154367 -31666.293 -2206.4544 - 900 0.09 0.0050697645 -57.026442 95.110386 -31857.043 -2206.513 - 910 0.091 0.0050765431 -57.320291 96.140056 -32050.436 -2206.5703 - 920 0.092 0.0051139309 -57.609075 97.231838 -32245.079 -2206.6257 - 930 0.093 0.0051899535 -57.89236 98.372982 -32439.141 -2206.6788 - 940 0.094 0.0053078572 -58.169742 99.54995 -32630.727 -2206.7288 - 950 0.095 0.0054654923 -58.44083 100.74893 -32817.882 -2206.7752 - 960 0.096 0.0056558757 -58.705483 101.95638 -32999.116 -2206.8176 - 970 0.097 0.0058685513 -58.963698 103.15953 -33173.159 -2206.8557 - 980 0.098 0.0060912487 -59.215624 104.34681 -33338.961 -2206.8893 - 990 0.099 0.0063114886 -59.461806 105.50819 -33496.345 -2206.9188 - 1000 0.1 0.0065179843 -59.702883 106.63524 -33645.259 -2206.9444 -Loop time of 5.20295 on 1 procs for 1000 steps with 500 atoms - -Performance: 1.661 ns/day, 14.453 hours/ns, 192.199 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 2.6241 | 2.6241 | 2.6241 | 0.0 | 50.43 -Neigh | 0.01424 | 0.01424 | 0.01424 | 0.0 | 0.27 -Comm | 0.041207 | 0.041207 | 0.041207 | 0.0 | 0.79 -Output | 0.0090086 | 0.0090086 | 0.0090086 | 0.0 | 0.17 -Modify | 2.5084 | 2.5084 | 2.5084 | 0.0 | 48.21 -Other | | 0.006008 | | | 0.12 - -Nlocal: 500 ave 500 max 500 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 2442 ave 2442 max 2442 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 27581 ave 27581 max 27581 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 55162 ave 55162 max 55162 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 55162 -Ave neighs/atom = 110.324 -Neighbor list builds = 7 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:05 diff --git a/examples/SPIN/cobalt_hcp/log.19Nov19.spin.cobalt_hcp.g++.4 b/examples/SPIN/cobalt_hcp/log.19Nov19.spin.cobalt_hcp.g++.4 deleted file mode 100644 index de00d5be320fbd1d24663e2c1c303edcb428326c..0000000000000000000000000000000000000000 --- a/examples/SPIN/cobalt_hcp/log.19Nov19.spin.cobalt_hcp.g++.4 +++ /dev/null @@ -1,219 +0,0 @@ -LAMMPS (30 Oct 2019) -# hcp cobalt in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice hcp 2.5071 -Lattice spacing in x,y,z = 2.5071 4.34242 4.09408 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.00101995 secs - -# setting mass, mag. moments, and interactions for hcp cobalt - -mass 1 58.93 - -set group all spin/random 31 1.72 - 500 settings made for spin/random -#set group all spin 1.72 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -#pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Co_PurjaPun_2012.eam.alloy Co -pair_coeff * * spin/exchange exchange 4.0 -0.3593 1.135028015e-05 1.064568567 -#pair_coeff * * spin/neel neel 4.0 0.0048 0.234 1.168 2.6905 0.705 0.652 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -#fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0 -fix 1 all precession/spin anisotropy 0.01 0.0 0.0 1.0 -#fix 2 all langevin/spin 0.0 0.0 21 -fix 2 all langevin/spin 0.0 0.1 21 -fix 3 all nve/spin lattice moving - -timestep 0.0001 - - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_emag temp press etotal -thermo 10 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump_cobalt_hcp.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.59954 - ghost atom cutoff = 6.59954 - binsize = 3.29977, bins = 4 7 7 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.814 | 7.814 | 7.815 Mbytes -Step Time v_magnorm v_emag Temp Press TotEng - 0 0 0.076558814 -5.1073764 100.00543 -552.75983 -2190.3478 - 10 0.001 0.074494512 -6.2728301 99.980769 -1570.0726 -2191.5261 - 20 0.002 0.072367013 -7.4259977 99.847801 -2531.5119 -2192.6655 - 30 0.003 0.070129365 -8.566306 99.586282 -3438.1309 -2193.7672 - 40 0.004 0.067761178 -9.6929189 99.171132 -4291.017 -2194.8323 - 50 0.005 0.065270916 -10.8048 98.575397 -5091.9111 -2195.8628 - 60 0.006 0.062690557 -11.900573 97.773618 -5843.4528 -2196.8612 - 70 0.007 0.060064592 -12.978381 96.745047 -6548.726 -2197.8306 - 80 0.008 0.05743694 -14.035923 95.476292 -7210.2954 -2198.773 - 90 0.009 0.054839883 -15.07074 93.963026 -7829.4252 -2199.689 - 100 0.01 0.052288504 -16.08066 92.210482 -8405.9983 -2200.5773 - 110 0.011 0.049782155 -17.064251 90.232741 -8939.3051 -2201.4357 - 120 0.012 0.047311759 -18.021135 88.051042 -9429.1353 -2202.2626 - 130 0.013 0.044869196 -18.952065 85.691573 -9876.5628 -2203.0575 - 140 0.014 0.042453961 -19.858739 83.18315 -10284.249 -2203.8215 - 150 0.015 0.040074171 -20.743348 80.555177 -10656.417 -2204.5569 - 160 0.016 0.037742459 -21.608 77.836156 -10998.818 -2205.2677 - 170 0.017 0.035470168 -22.454209 75.052994 -11318.525 -2205.9587 - 180 0.018 0.033263447 -23.282658 72.231211 -11623.118 -2206.6354 - 190 0.019 0.031122821 -24.093311 69.395936 -11919.248 -2207.3023 - 200 0.02 0.029045634 -24.88579 66.573223 -12211.306 -2207.9613 - 210 0.021 0.027029857 -25.659817 63.791041 -12500.812 -2208.6115 - 220 0.022 0.025077742 -26.415541 61.079413 -12787.018 -2209.2498 - 230 0.023 0.023198048 -27.153652 58.469604 -13068.277 -2209.8722 - 240 0.024 0.02140599 -27.875313 55.992687 -13343.621 -2210.4756 - 250 0.025 0.019720922 -28.581973 53.678031 -13613.86 -2211.0588 - 260 0.026 0.018162738 -29.275283 51.552191 -13882.15 -2211.6232 - 270 0.027 0.016748514 -29.956802 49.638467 -14153.137 -2212.1718 - 280 0.028 0.01549075 -30.628043 47.957071 -14432.246 -2212.7087 - 290 0.029 0.014397611 -31.290177 46.525552 -14724.005 -2213.2371 - 300 0.03 0.013474315 -31.943984 45.359085 -15031.315 -2213.759 - 310 0.031 0.012723957 -32.589853 44.47023 -15355.595 -2214.275 - 320 0.032 0.012146358 -33.227585 43.868153 -15696.845 -2214.7851 - 330 0.033 0.011734827 -33.856656 43.557623 -16054.887 -2215.289 - 340 0.034 0.011472508 -34.476313 43.538346 -16429.77 -2215.7871 - 350 0.035 0.011330772 -35.085716 43.805034 -16821.627 -2216.2802 - 360 0.036 0.011271169 -35.684147 44.348312 -17230.21 -2216.7687 - 370 0.037 0.01125027 -36.271215 45.156046 -17654.485 -2217.2524 - 380 0.038 0.011225354 -36.847053 46.214576 -18092.623 -2217.7301 - 390 0.039 0.011159026 -37.412284 47.509345 -18542.156 -2218.2003 - 400 0.04 0.011022073 -37.967916 49.024843 -19000.554 -2218.6614 - 410 0.041 0.01079477 -38.515123 50.744046 -19465.713 -2219.1128 - 420 0.042 0.010467095 -39.054921 52.647653 -19935.873 -2219.5544 - 430 0.043 0.010038219 -39.588034 54.713405 -20409.666 -2219.9869 - 440 0.044 0.0095155267 -40.114703 56.915658 -20885.556 -2220.4109 - 450 0.045 0.0089134996 -40.634722 59.225397 -21361.621 -2220.8268 - 460 0.046 0.0082528918 -41.147681 61.610799 -21835.762 -2221.2347 - 470 0.047 0.0075606723 -41.653088 64.038349 -22305.687 -2221.6343 - 480 0.048 0.0068707613 -42.150486 66.474377 -22768.948 -2222.0253 - 490 0.049 0.0062249854 -42.639704 68.886721 -23223.418 -2222.4076 - 500 0.05 0.0056723593 -43.120772 71.24617 -23667.077 -2222.7814 - 510 0.051 0.00526312 -43.59404 73.527392 -24098.459 -2223.147 - 520 0.052 0.0050342241 -44.059917 75.709206 -24516.163 -2223.5051 - 530 0.053 0.0049906301 -44.518898 77.774314 -24919.192 -2223.8564 - 540 0.054 0.0050976586 -44.971364 79.708763 -25306.611 -2224.2014 - 550 0.055 0.0052941974 -45.417577 81.501347 -25677.67 -2224.5405 - 560 0.056 0.0055157717 -45.857628 83.143173 -26031.673 -2224.8736 - 570 0.057 0.0057113414 -46.291426 84.627457 -26367.904 -2225.2003 - 580 0.058 0.0058493207 -46.718709 85.949497 -26685.6 -2225.52 - 590 0.059 0.0059162201 -47.139052 87.10679 -26984.124 -2225.8316 - 600 0.06 0.0059118584 -47.551892 88.099176 -27263.145 -2226.1347 - 610 0.061 0.005843747 -47.956571 88.928929 -27522.773 -2226.4287 - 620 0.062 0.0057222223 -48.352422 89.600763 -27763.549 -2226.7139 - 630 0.063 0.0055570967 -48.738876 90.12173 -27986.321 -2226.9905 - 640 0.064 0.0053558993 -49.115723 90.501081 -28192.238 -2227.2593 - 650 0.065 0.0051233209 -49.483122 90.750056 -28382.3 -2227.5205 - 660 0.066 0.0048614512 -49.841791 90.881635 -28557.623 -2227.7746 - 670 0.067 0.0045706003 -50.192974 90.910245 -28719.422 -2228.0219 - 680 0.068 0.0042506564 -50.538196 90.851397 -28868.809 -2228.2627 - 690 0.069 0.0039028575 -50.879364 90.721317 -29007.619 -2228.4973 - 700 0.07 0.0035319814 -51.218193 90.536521 -29137.623 -2228.7265 - 710 0.071 0.0031491486 -51.556251 90.313501 -29261.193 -2228.9511 - 720 0.072 0.0027758205 -51.894643 90.068503 -29380.924 -2229.1724 - 730 0.073 0.002449449 -52.233987 89.817462 -29499.606 -2229.3917 - 740 0.074 0.0022276613 -52.574465 89.57612 -29620.196 -2229.6103 - 750 0.075 0.0021767124 -52.915641 89.360246 -29744.882 -2229.829 - 760 0.076 0.0023310362 -53.256843 89.185838 -29875.573 -2230.0485 - 770 0.077 0.0026637349 -53.597197 89.069228 -30013.477 -2230.2685 - 780 0.078 0.0031129938 -53.93565 89.026943 -30158.812 -2230.4882 - 790 0.079 0.0036204667 -54.271339 89.075322 -30311.602 -2230.7066 - 800 0.08 0.0041448552 -54.603455 89.229912 -30471.244 -2230.9226 - 810 0.081 0.0046613106 -54.931421 89.504766 -30636.938 -2231.1352 - 820 0.082 0.0051580947 -55.255056 89.911726 -30808.087 -2231.3434 - 830 0.083 0.0056329652 -55.574491 90.459766 -30984.153 -2231.5469 - 840 0.084 0.0060893356 -55.890024 91.154456 -31164.372 -2231.7452 - 850 0.085 0.0065324419 -56.202052 91.997528 -31347.792 -2231.9379 - 860 0.086 0.0069661977 -56.511206 92.986622 -31533.977 -2232.1249 - 870 0.087 0.0073913051 -56.817814 94.115192 -31721.92 -2232.306 - 880 0.088 0.0078048547 -57.122061 95.372548 -31910.795 -2232.4809 - 890 0.089 0.008201165 -57.423984 96.744135 -32100.108 -2232.65 - 900 0.09 0.0085732702 -57.723377 98.212046 -32289.532 -2232.8136 - 910 0.091 0.0089144724 -58.019938 99.755667 -32479.154 -2232.9728 - 920 0.092 0.0092194916 -58.313266 101.35254 -32669.227 -2233.1285 - 930 0.093 0.0094849872 -58.602956 102.97932 -32860.091 -2233.2822 - 940 0.094 0.0097093572 -58.888668 104.61271 -33051.981 -2233.4348 - 950 0.095 0.0098920175 -59.169925 106.23045 -33244.279 -2233.5871 - 960 0.096 0.01003244 -59.44662 107.81212 -33436.562 -2233.7396 - 970 0.097 0.010129313 -59.718668 109.33976 -33627.714 -2233.8925 - 980 0.098 0.010180127 -59.986126 110.79823 -33816.218 -2234.0455 - 990 0.099 0.010181304 -60.24929 112.17528 -34000.522 -2234.1984 - 1000 0.1 0.01012881 -60.508632 113.46137 -34179.052 -2234.3508 -Loop time of 2.93788 on 4 procs for 1000 steps with 500 atoms - -Performance: 2.941 ns/day, 8.161 hours/ns, 340.381 timesteps/s -100.0% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.72349 | 0.73783 | 0.7554 | 1.3 | 25.11 -Neigh | 0.00353 | 0.0036981 | 0.0038559 | 0.2 | 0.13 -Comm | 0.12285 | 0.14476 | 0.16041 | 3.6 | 4.93 -Output | 0.0046515 | 0.0047909 | 0.0050418 | 0.2 | 0.16 -Modify | 2.0407 | 2.0439 | 2.0482 | 0.2 | 69.57 -Other | | 0.00288 | | | 0.10 - -Nlocal: 125 ave 136 max 119 min -Histogram: 1 1 1 0 0 0 0 0 0 1 -Nghost: 1324 ave 1331 max 1310 min -Histogram: 1 0 0 0 0 0 0 0 2 1 -Neighs: 6897.25 ave 7552 max 6604 min -Histogram: 2 1 0 0 0 0 0 0 0 1 -FullNghs: 13794.5 ave 15117 max 13164 min -Histogram: 2 0 1 0 0 0 0 0 0 1 - -Total # of neighbors = 55178 -Ave neighs/atom = 110.356 -Neighbor list builds = 7 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:02 diff --git a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_cut.g++.1 b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_cut.g++.1 similarity index 75% rename from examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_cut.g++.1 rename to examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_cut.g++.1 index c2af23d16773e899bf63ec83bfdd5a1cd8c47de6..db58eec01d1061cb904f6d0da4ed462f6fa6ec15 100644 --- a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_cut.g++.1 +++ b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_cut.g++.1 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (34.398 34.398 34.398) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 3456 atoms - create_atoms CPU = 0.000741005 secs + create_atoms CPU = 0.00106382 secs # setting mass, mag. moments, and interactions for bcc iron @@ -88,23 +92,23 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 13.4 | 13.4 | 13.4 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 1.0737264e-35 -768.37511 -15175.868 -15131.207 - 50 0.005 -1 -2.7722752e-10 -2.1828666e-10 1 6.8846921e-09 -768.35793 -15174.244 -15131.215 - 100 0.01 -1 -2.0983066e-09 -1.7330951e-09 1 1.0038885e-08 -768.30868 -15169.656 -15131.24 -Loop time of 7.86359 on 1 procs for 100 steps with 3456 atoms + 0 0 -1 0 0 1 1.0737264e-35 -384.18755 -15175.868 -15131.207 + 50 0.005 -1 -2.7725069e-10 -2.182903e-10 1 6.8851185e-09 -384.17896 -15174.244 -15131.207 + 100 0.01 -1 -2.0990209e-09 -1.7332235e-09 1 1.0040825e-08 -384.15433 -15169.655 -15131.207 +Loop time of 7.47017 on 1 procs for 100 steps with 3456 atoms -Performance: 0.110 ns/day, 218.433 hours/ns, 12.717 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 0.116 ns/day, 207.505 hours/ns, 13.387 timesteps/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 3.6134 | 3.6134 | 3.6134 | 0.0 | 45.95 +Pair | 3.1998 | 3.1998 | 3.1998 | 0.0 | 42.83 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.014062 | 0.014062 | 0.014062 | 0.0 | 0.18 -Output | 0.006057 | 0.006057 | 0.006057 | 0.0 | 0.08 -Modify | 4.226 | 4.226 | 4.226 | 0.0 | 53.74 -Other | | 0.004064 | | | 0.05 +Comm | 0.015094 | 0.015094 | 0.015094 | 0.0 | 0.20 +Output | 0.006531 | 0.006531 | 0.006531 | 0.0 | 0.09 +Modify | 4.2443 | 4.2443 | 4.2443 | 0.0 | 56.82 +Other | | 0.004467 | | | 0.06 Nlocal: 3456 ave 3456 max 3456 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_cut.g++.4 b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_cut.g++.4 similarity index 75% rename from examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_cut.g++.4 rename to examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_cut.g++.4 index 1f8157bb29a9f32f791e77c02e53928626895db8..a014aae3cd3b1c84ec7e8a5cd3cfbbd1602fe525 100644 --- a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_cut.g++.4 +++ b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_cut.g++.4 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (34.398 34.398 34.398) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 3456 atoms - create_atoms CPU = 0.00090003 secs + create_atoms CPU = 0.00132084 secs # setting mass, mag. moments, and interactions for bcc iron @@ -88,23 +92,23 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 9.217 | 9.217 | 9.217 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 1.0737264e-35 -768.37511 -15560.055 -15515.394 - 50 0.005 -1 9.6204015e-11 -3.3767807e-10 1 6.6905249e-09 -768.35767 -15558.438 -15515.394 - 100 0.01 -1 7.8881609e-10 -2.7017321e-09 1 9.8111281e-09 -768.30769 -15553.868 -15515.394 -Loop time of 2.29116 on 4 procs for 100 steps with 3456 atoms + 0 0 -1 0 0 1 1.0737264e-35 -384.18755 -15175.868 -15131.207 + 50 0.005 -1 9.6205501e-11 -3.3769045e-10 1 6.6909444e-09 -384.17884 -15174.259 -15131.207 + 100 0.01 -1 7.8887025e-10 -2.7021386e-09 1 9.8130686e-09 -384.15383 -15169.712 -15131.207 +Loop time of 2.27865 on 4 procs for 100 steps with 3456 atoms -Performance: 0.377 ns/day, 63.643 hours/ns, 43.646 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads +Performance: 0.379 ns/day, 63.296 hours/ns, 43.886 timesteps/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.92259 | 0.92963 | 0.93393 | 0.4 | 40.57 +Pair | 0.80959 | 0.8184 | 0.82996 | 0.9 | 35.92 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.02284 | 0.027597 | 0.035185 | 2.8 | 1.20 -Output | 0.0018489 | 0.0018544 | 0.0018642 | 0.0 | 0.08 -Modify | 1.3296 | 1.3303 | 1.3308 | 0.0 | 58.06 -Other | | 0.001818 | | | 0.08 +Comm | 0.035061 | 0.046857 | 0.055443 | 3.9 | 2.06 +Output | 0.0018592 | 0.0018642 | 0.0018783 | 0.0 | 0.08 +Modify | 1.4085 | 1.4095 | 1.41 | 0.1 | 61.86 +Other | | 0.002023 | | | 0.09 Nlocal: 864 ave 864 max 864 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_ewald.g++.1 b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_ewald.g++.1 similarity index 72% rename from examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_ewald.g++.1 rename to examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_ewald.g++.1 index 9a38445af5c112676ec020710edf5516e1b82769..f6c015bb20defef8915767cfe263ab3ac0c12b06 100644 --- a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_ewald.g++.1 +++ b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_ewald.g++.1 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (34.398 34.398 34.398) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 3456 atoms - create_atoms CPU = 0.00166988 secs + create_atoms CPU = 0.00187302 secs # setting mass, mag. moments, and interactions for bcc iron @@ -67,10 +71,10 @@ dump 1 all custom 100 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_o run 100 EwaldDipoleSpin initialization ... - using 12-bit tables for long-range coulomb (../kspace.cpp:323) + using 12-bit tables for long-range coulomb (../kspace.cpp:332) G vector (1/distance) = 0.324623 - estimated absolute RMS force accuracy = 9.55526e-84 - estimated relative force accuracy = 6.63576e-85 + estimated absolute RMS force accuracy = 1.69788e-59 + estimated relative force accuracy = 1.17911e-60 KSpace vectors: actual max1d max3d = 2084 10 4630 kxmax kymax kzmax = 10 10 10 Neighbor list info ... @@ -97,24 +101,24 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 30.07 | 30.07 | 30.07 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 2.5872886e-37 -767.88567 -15175.39 -15130.729 - 50 0.005 -1 4.3660916e-09 -2.1918692e-09 1 5.3480999e-10 -767.86847 -15173.766 -15130.738 - 100 0.01 -1 9.9854966e-09 -4.2823677e-09 1 2.3267629e-09 -767.81917 -15169.178 -15130.762 -Loop time of 24.9345 on 1 procs for 100 steps with 3456 atoms + 0 0 -1 0 0 1 2.5872886e-37 -383.94283 -15175.635 -15130.974 + 50 0.005 -1 4.3660908e-09 -2.1918693e-09 1 5.3484784e-10 -383.93423 -15174.011 -15130.974 + 100 0.01 -1 9.9854743e-09 -4.282369e-09 1 2.3273467e-09 -383.90957 -15169.421 -15130.974 +Loop time of 24.8682 on 1 procs for 100 steps with 3456 atoms -Performance: 0.035 ns/day, 692.624 hours/ns, 4.011 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 0.035 ns/day, 690.783 hours/ns, 4.021 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.8022 | 4.8022 | 4.8022 | 0.0 | 19.26 -Kspace | 10.337 | 10.337 | 10.337 | 0.0 | 41.46 +Pair | 4.6097 | 4.6097 | 4.6097 | 0.0 | 18.54 +Kspace | 10.303 | 10.303 | 10.303 | 0.0 | 41.43 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.013856 | 0.013856 | 0.013856 | 0.0 | 0.06 -Output | 0.007138 | 0.007138 | 0.007138 | 0.0 | 0.03 -Modify | 9.7705 | 9.7705 | 9.7705 | 0.0 | 39.18 -Other | | 0.004077 | | | 0.02 +Comm | 0.015258 | 0.015258 | 0.015258 | 0.0 | 0.06 +Output | 0.006583 | 0.006583 | 0.006583 | 0.0 | 0.03 +Modify | 9.9285 | 9.9285 | 9.9285 | 0.0 | 39.92 +Other | | 0.004751 | | | 0.02 Nlocal: 3456 ave 3456 max 3456 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_ewald.g++.4 b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_ewald.g++.4 similarity index 72% rename from examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_ewald.g++.4 rename to examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_ewald.g++.4 index 306799f57651676e6de0729655d11ddc12a25b69..b70221f6031195133a27159fe75135a5f41ee716 100644 --- a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_ewald.g++.4 +++ b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_ewald.g++.4 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (34.398 34.398 34.398) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 3456 atoms - create_atoms CPU = 0.00088191 secs + create_atoms CPU = 0.000773907 secs # setting mass, mag. moments, and interactions for bcc iron @@ -67,10 +71,10 @@ dump 1 all custom 100 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_o run 100 EwaldDipoleSpin initialization ... - using 12-bit tables for long-range coulomb (../kspace.cpp:323) + using 12-bit tables for long-range coulomb (../kspace.cpp:332) G vector (1/distance) = 0.324623 - estimated absolute RMS force accuracy = 9.29828e-84 - estimated relative force accuracy = 6.4573e-85 + estimated absolute RMS force accuracy = 2.94041e-64 + estimated relative force accuracy = 2.042e-65 KSpace vectors: actual max1d max3d = 2084 10 4630 kxmax kymax kzmax = 10 10 10 Neighbor list info ... @@ -97,24 +101,24 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 25.89 | 25.89 | 25.89 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 3.5107565e-37 -767.88567 -15559.577 -15514.916 - 50 0.005 -1 4.3196063e-09 -2.1966927e-09 1 5.1719577e-10 -767.86822 -15557.96 -15514.916 - 100 0.01 -1 9.7636593e-09 -4.3236953e-09 1 2.2443181e-09 -767.81819 -15553.39 -15514.916 -Loop time of 6.80139 on 4 procs for 100 steps with 3456 atoms + 0 0 -1 0 0 1 3.5107565e-37 -383.94283 -15175.635 -15130.974 + 50 0.005 -1 4.3196054e-09 -2.1966927e-09 1 5.1723249e-10 -383.93411 -15174.026 -15130.974 + 100 0.01 -1 9.7636345e-09 -4.3236965e-09 1 2.2448849e-09 -383.90908 -15169.479 -15130.974 +Loop time of 7.03264 on 4 procs for 100 steps with 3456 atoms -Performance: 0.127 ns/day, 188.927 hours/ns, 14.703 timesteps/s -100.0% CPU use with 4 MPI tasks x no OpenMP threads +Performance: 0.123 ns/day, 195.351 hours/ns, 14.219 timesteps/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 1.248 | 1.2649 | 1.2816 | 1.1 | 18.60 -Kspace | 2.523 | 2.5743 | 2.6505 | 3.0 | 37.85 +Pair | 1.1743 | 1.207 | 1.2416 | 2.2 | 17.16 +Kspace | 2.6173 | 2.6542 | 2.7273 | 2.7 | 37.74 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.029461 | 0.087268 | 0.13754 | 13.0 | 1.28 -Output | 0.0018618 | 0.001869 | 0.0018811 | 0.0 | 0.03 -Modify | 2.8692 | 2.8709 | 2.8741 | 0.1 | 42.21 -Other | | 0.002119 | | | 0.03 +Comm | 0.042837 | 0.11362 | 0.1882 | 16.9 | 1.62 +Output | 0.0018778 | 0.0018882 | 0.0019088 | 0.0 | 0.03 +Modify | 3.0484 | 3.0535 | 3.0606 | 0.3 | 43.42 +Other | | 0.002387 | | | 0.03 Nlocal: 864 ave 864 max 864 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -132,4 +136,4 @@ Dangerous builds = 0 Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:06 +Total wall time: 0:00:07 diff --git a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_pppm.g++.1 b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_pppm.g++.1 similarity index 77% rename from examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_pppm.g++.1 rename to examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_pppm.g++.1 index b0e87d786d70a634276f9b92d1b70f8eecfad26a..3b2c36b40cf9774fc813d4a7a18edd13bfff00f6 100644 --- a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_pppm.g++.1 +++ b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_pppm.g++.1 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (34.398 34.398 34.398) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 3456 atoms - create_atoms CPU = 0.00166583 secs + create_atoms CPU = 0.00192595 secs # setting mass, mag. moments, and interactions for bcc iron @@ -99,24 +103,24 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 16.27 | 16.27 | 16.27 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 3.7996771e-37 -767.89759 -15175.402 -15130.741 - 50 0.005 -1 3.6585337e-09 -1.9445403e-09 1 5.1405121e-10 -767.88039 -15173.779 -15130.75 - 100 0.01 -1 7.3585728e-09 -3.8640878e-09 1 2.0194927e-09 -767.83109 -15169.191 -15130.774 -Loop time of 15.3615 on 1 procs for 100 steps with 3456 atoms + 0 0 -1 0 0 1 3.7996771e-37 -383.94879 -15175.641 -15130.98 + 50 0.005 -1 3.6585337e-09 -1.9445403e-09 1 5.1408909e-10 -383.94019 -15174.017 -15130.98 + 100 0.01 -1 7.3585736e-09 -3.8640869e-09 1 2.0200831e-09 -383.91553 -15169.428 -15130.98 +Loop time of 15.1465 on 1 procs for 100 steps with 3456 atoms -Performance: 0.056 ns/day, 426.709 hours/ns, 6.510 timesteps/s -99.9% CPU use with 1 MPI tasks x no OpenMP threads +Performance: 0.057 ns/day, 420.737 hours/ns, 6.602 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.8418 | 4.8418 | 4.8418 | 0.0 | 31.52 -Kspace | 0.66626 | 0.66626 | 0.66626 | 0.0 | 4.34 +Pair | 4.6008 | 4.6008 | 4.6008 | 0.0 | 30.38 +Kspace | 0.65995 | 0.65995 | 0.65995 | 0.0 | 4.36 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.014248 | 0.014248 | 0.014248 | 0.0 | 0.09 -Output | 0.0064788 | 0.0064788 | 0.0064788 | 0.0 | 0.04 -Modify | 9.8279 | 9.8279 | 9.8279 | 0.0 | 63.98 -Other | | 0.00478 | | | 0.03 +Comm | 0.01495 | 0.01495 | 0.01495 | 0.0 | 0.10 +Output | 0.0065951 | 0.0065951 | 0.0065951 | 0.0 | 0.04 +Modify | 9.8589 | 9.8589 | 9.8589 | 0.0 | 65.09 +Other | | 0.005332 | | | 0.04 Nlocal: 3456 ave 3456 max 3456 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_pppm.g++.4 b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_pppm.g++.4 similarity index 76% rename from examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_pppm.g++.4 rename to examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_pppm.g++.4 index 4fbd0eb52b77b526dd571705cd2638775603f963..1c3394dfbf0c923899cc0d3ef618ceb9e5747878 100644 --- a/examples/SPIN/dipole_spin/log.19Nov19.spin.iron_dipole_pppm.g++.4 +++ b/examples/SPIN/dipole_spin/log.14Apr20.spin.iron_dipole_pppm.g++.4 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (34.398 34.398 34.398) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 3456 atoms - create_atoms CPU = 0.00123286 secs + create_atoms CPU = 0.0007658 secs # setting mass, mag. moments, and interactions for bcc iron @@ -99,24 +103,24 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 10.42 | 10.42 | 10.42 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 2.3173191e-37 -767.89759 -15559.59 -15514.929 - 50 0.005 -1 3.6593054e-09 -1.9379563e-09 1 4.9747018e-10 -767.88014 -15557.972 -15514.929 - 100 0.01 -1 7.3731919e-09 -3.8151563e-09 1 1.9544299e-09 -767.8301 -15553.402 -15514.929 -Loop time of 4.4084 on 4 procs for 100 steps with 3456 atoms + 0 0 -1 0 0 1 2.3173191e-37 -383.94879 -15175.641 -15130.98 + 50 0.005 -1 3.6593053e-09 -1.9379563e-09 1 4.9750695e-10 -383.94007 -15174.032 -15130.98 + 100 0.01 -1 7.3731899e-09 -3.8151552e-09 1 1.9550037e-09 -383.91504 -15169.485 -15130.98 +Loop time of 4.3717 on 4 procs for 100 steps with 3456 atoms -Performance: 0.196 ns/day, 122.455 hours/ns, 22.684 timesteps/s -100.0% CPU use with 4 MPI tasks x no OpenMP threads +Performance: 0.198 ns/day, 121.436 hours/ns, 22.874 timesteps/s +100.0% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 1.2326 | 1.2513 | 1.2693 | 1.3 | 28.38 -Kspace | 0.22823 | 0.24585 | 0.26385 | 2.8 | 5.58 +Pair | 1.1624 | 1.1869 | 1.2125 | 1.8 | 27.15 +Kspace | 0.24468 | 0.26758 | 0.29157 | 3.6 | 6.12 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.025352 | 0.028409 | 0.032299 | 1.6 | 0.64 -Output | 0.001868 | 0.0018761 | 0.0018861 | 0.0 | 0.04 -Modify | 2.8753 | 2.8788 | 2.8818 | 0.1 | 65.30 -Other | | 0.002175 | | | 0.05 +Comm | 0.027149 | 0.030758 | 0.033902 | 1.7 | 0.70 +Output | 0.0030079 | 0.0030248 | 0.0030622 | 0.0 | 0.07 +Modify | 2.8782 | 2.8806 | 2.8837 | 0.1 | 65.89 +Other | | 0.002793 | | | 0.06 Nlocal: 864 ave 864 max 864 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/iron/in.spin.iron b/examples/SPIN/iron/in.spin.iron index d60e6b86f5fb0626fcd5b473cc7ee435dc133548..58c0537af786a8004dc72258e62a50fcfefa24f0 100644 --- a/examples/SPIN/iron/in.spin.iron +++ b/examples/SPIN/iron/in.spin.iron @@ -31,6 +31,7 @@ neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice moving diff --git a/examples/SPIN/iron/log.14Apr20.spin.iron.g++.1 b/examples/SPIN/iron/log.14Apr20.spin.iron.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..0f3257bc0546a990ddd9d90821310ca2a9f1f388 --- /dev/null +++ b/examples/SPIN/iron/log.14Apr20.spin.iron.g++.1 @@ -0,0 +1,141 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# bcc iron in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +Lattice spacing in x,y,z = 2.8665 2.8665 2.8665 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 250 atoms + create_atoms CPU = 0.00103498 secs + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 + +set group all spin/random 31 2.2 + 250 settings made for spin/random +# set group all spin 2.2 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe press etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.77337 + ghost atom cutoff = 5.77337 + binsize = 2.88668, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.82 | 7.82 | 7.82 Mbytes +Step Time v_magnorm v_tmag Temp v_emag KinEng PotEng Press TotEng + 0 0 0.076456975 4554.5462 100.00358 -0.42895634 3.2186929 -1070.429 394.43342 -1067.2103 + 50 0.005 0.076456974 4671.3033 96.520068 -0.43128393 3.1065733 -1070.3169 707.2166 -1067.2103 + 100 0.01 0.076456983 4793.2674 86.525198 -0.43550567 2.7848806 -1069.9952 1456.8628 -1067.2103 + 150 0.015 0.076456973 4894.1924 71.664875 -0.44035101 2.3065896 -1069.5169 2510.4447 -1067.2103 + 200 0.02 0.076456944 4859.9379 54.610496 -0.44591875 1.7576812 -1068.968 3686.7124 -1067.2103 + 250 0.025 0.076456953 4636.3427 38.560198 -0.45258831 1.2410899 -1068.4514 4757.3215 -1067.2103 + 300 0.03 0.076457027 4333.5734 26.459387 -0.45961266 0.85161592 -1068.0619 5505.1963 -1067.2103 + 350 0.035 0.076457102 4124.1453 20.205123 -0.46569388 0.65031758 -1067.8606 5768.9329 -1067.2103 + 400 0.04 0.076457116 4064.6843 20.142986 -0.47038245 0.64831763 -1067.8586 5521.4162 -1067.2103 + 450 0.045 0.076457072 4076.2576 25.084719 -0.4741092 0.80737114 -1068.0176 4890.8714 -1067.2103 + 500 0.05 0.076457001 4105.5788 32.863873 -0.47765283 1.0577493 -1068.268 4093.2603 -1067.2103 + 550 0.055 0.076456962 4109.0613 41.126745 -0.48188168 1.3236962 -1068.534 3337.5111 -1067.2103 + 600 0.06 0.076456996 3993.3891 47.996188 -0.48790867 1.5447946 -1068.7551 2767.4353 -1067.2103 + 650 0.065 0.076457077 3776.2342 52.386407 -0.49621451 1.6860972 -1068.8964 2458.9058 -1067.2103 + 700 0.07 0.076457137 3586.7963 54.031337 -0.50582777 1.7390405 -1068.9493 2397.5333 -1067.2103 + 750 0.075 0.076457135 3535.1994 53.389736 -0.51542639 1.7183901 -1068.9287 2514.1889 -1067.2103 + 800 0.08 0.076457118 3585.6546 51.428399 -0.52423597 1.6552629 -1068.8655 2732.6669 -1067.2103 + 850 0.085 0.076457118 3634.4891 49.293001 -0.53165471 1.5865335 -1068.7968 2977.6259 -1067.2103 + 900 0.09 0.076457126 3660.3333 47.999274 -0.53780479 1.5448939 -1068.7552 3176.4112 -1067.2103 + 950 0.095 0.076457129 3671.3259 48.180409 -0.54376787 1.5507239 -1068.761 3283.2242 -1067.2103 + 1000 0.1 0.076457139 3628.6038 49.917341 -0.55029097 1.6066284 -1068.8169 3283.2361 -1067.2103 +Loop time of 1.66624 on 1 procs for 1000 steps with 250 atoms + +Performance: 5.185 ns/day, 4.628 hours/ns, 600.152 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.73884 | 0.73884 | 0.73884 | 0.0 | 44.34 +Neigh | 0.0045731 | 0.0045731 | 0.0045731 | 0.0 | 0.27 +Comm | 0.023681 | 0.023681 | 0.023681 | 0.0 | 1.42 +Output | 0.0042441 | 0.0042441 | 0.0042441 | 0.0 | 0.25 +Modify | 0.89131 | 0.89131 | 0.89131 | 0.0 | 53.49 +Other | | 0.003589 | | | 0.22 + +Nlocal: 250 ave 250 max 250 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1407 ave 1407 max 1407 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 7868 ave 7868 max 7868 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 15736 ave 15736 max 15736 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 15736 +Ave neighs/atom = 62.944 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:01 diff --git a/examples/SPIN/iron/log.14Apr20.spin.iron.g++.4 b/examples/SPIN/iron/log.14Apr20.spin.iron.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..1cfa74559ba6f15a3491bd9d8108108645ec42ad --- /dev/null +++ b/examples/SPIN/iron/log.14Apr20.spin.iron.g++.4 @@ -0,0 +1,141 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# bcc iron in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +Lattice spacing in x,y,z = 2.8665 2.8665 2.8665 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 250 atoms + create_atoms CPU = 0.000688791 secs + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 + +set group all spin/random 31 2.2 + 250 settings made for spin/random +# set group all spin 2.2 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe press etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.77337 + ghost atom cutoff = 5.77337 + binsize = 2.88668, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.766 | 7.766 | 7.766 Mbytes +Step Time v_magnorm v_tmag Temp v_emag KinEng PotEng Press TotEng + 0 0 0.076456975 4554.5462 100.00358 -0.42895634 3.2186929 -1070.429 394.43342 -1067.2103 + 50 0.005 0.076456995 4714.366 96.279315 -0.42705836 3.0988245 -1070.3091 714.16563 -1067.2103 + 100 0.01 0.076457028 4844.7708 86.007787 -0.43034795 2.7682274 -1069.9785 1479.8537 -1067.2103 + 150 0.015 0.076457073 4938.5943 70.888778 -0.43554708 2.2816103 -1069.4919 2538.6386 -1067.2103 + 200 0.02 0.076457107 4910.2627 53.612031 -0.44069391 1.7255448 -1068.9358 3702.0713 -1067.2103 + 250 0.025 0.07645713 4705.3075 37.374184 -0.44525189 1.2029171 -1068.4132 4749.8323 -1067.2103 + 300 0.03 0.076457162 4418.4389 25.117093 -0.44873668 0.80841314 -1068.0187 5473.2266 -1067.2103 + 350 0.035 0.07645722 4233.0963 18.792985 -0.45135838 0.60486682 -1067.8151 5710.4039 -1067.2103 + 400 0.04 0.07645726 4204.002 18.876267 -0.4546575 0.60754729 -1067.8178 5437.712 -1067.2103 + 450 0.045 0.076457242 4221.8277 24.290539 -0.45989731 0.78180986 -1067.9921 4788.1384 -1067.2103 + 500 0.05 0.076457208 4226.337 32.849365 -0.46668115 1.0572823 -1068.2676 3961.2587 -1067.2103 + 550 0.055 0.076457211 4195.1414 42.028524 -0.47379263 1.3527207 -1068.563 3159.4718 -1067.2103 + 600 0.06 0.076457222 4043.6401 49.722783 -0.48155951 1.6003664 -1068.8106 2554.4057 -1067.2103 + 650 0.065 0.07645721 3784.8692 54.624328 -0.49066003 1.7581264 -1068.9684 2266.0816 -1067.2103 + 700 0.07 0.076457187 3576.7472 56.274292 -0.49932577 1.8112318 -1069.0215 2298.3908 -1067.2103 + 750 0.075 0.07645717 3531.6724 55.083486 -0.50591093 1.7729047 -1068.9832 2557.6667 -1067.2103 + 800 0.08 0.076457176 3593.0894 52.172747 -0.51103604 1.6792204 -1068.8895 2933.0411 -1067.2103 + 850 0.085 0.076457206 3688.4988 48.957423 -0.51573858 1.5757327 -1068.786 3313.8291 -1067.2103 + 900 0.09 0.076457231 3788.943 46.719714 -0.52043742 1.5037103 -1068.714 3600.8734 -1067.2103 + 950 0.095 0.076457251 3854.0552 46.272425 -0.52460019 1.4893139 -1068.6996 3718.2987 -1067.2103 + 1000 0.1 0.076457302 3859.0984 47.806309 -0.52719778 1.5386831 -1068.749 3641.2287 -1067.2103 +Loop time of 1.55258 on 4 procs for 1000 steps with 250 atoms + +Performance: 5.565 ns/day, 4.313 hours/ns, 644.089 timesteps/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.2109 | 0.21798 | 0.22568 | 1.1 | 14.04 +Neigh | 0.0011308 | 0.0011812 | 0.0012279 | 0.1 | 0.08 +Comm | 0.074407 | 0.082247 | 0.090297 | 2.0 | 5.30 +Output | 0.0019011 | 0.0019355 | 0.0020187 | 0.1 | 0.12 +Modify | 1.2468 | 1.2477 | 1.249 | 0.1 | 80.36 +Other | | 0.001532 | | | 0.10 + +Nlocal: 62.5 ave 66 max 60 min +Histogram: 1 1 0 0 0 1 0 0 0 1 +Nghost: 846.25 ave 861 max 831 min +Histogram: 1 0 1 0 0 0 0 1 0 1 +Neighs: 1962.25 ave 2091 max 1866 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +FullNghs: 3924.5 ave 4138 max 3771 min +Histogram: 1 1 0 0 0 1 0 0 0 1 + +Total # of neighbors = 15698 +Ave neighs/atom = 62.792 +Neighbor list builds = 6 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:01 diff --git a/examples/SPIN/iron/log.19Nov19.spin.iron_cubic.g++.1 b/examples/SPIN/iron/log.14Apr20.spin.iron_cubic.g++.1 similarity index 65% rename from examples/SPIN/iron/log.19Nov19.spin.iron_cubic.g++.1 rename to examples/SPIN/iron/log.14Apr20.spin.iron_cubic.g++.1 index 22957c84984cf14d31cff1626ee7a5bca9eca688..5d07f1b71a5dbeebadd3433a3cd0f78d6c7d7a46 100644 --- a/examples/SPIN/iron/log.19Nov19.spin.iron_cubic.g++.1 +++ b/examples/SPIN/iron/log.14Apr20.spin.iron_cubic.g++.1 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 250 atoms - create_atoms CPU = 0.00101709 secs + create_atoms CPU = 0.000530005 secs # setting mass, mag. moments, and interactions for bcc iron @@ -81,53 +85,53 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 7.82 | 7.82 | 7.82 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 0 -55.58269 -1097.7914 -1094.5727 - 50 0.005 -1 0 0 1 0 -55.581417 -1097.6764 -1094.5733 - 100 0.01 -1 0 0 1 0 -55.577759 -1097.35 -1094.5751 - 150 0.015 -1 0 0 1 0 -55.57219 -1096.8677 -1094.5779 - 200 0.02 -1 0 0 1 0 -55.565438 -1096.3163 -1094.5813 - 250 0.025 -1 0 0 1 0 -55.558379 -1095.7987 -1094.5848 - 300 0.03 -1 0 0 1 0 -55.551886 -1095.4103 -1094.5881 - 350 0.035 -1 0 0 1 0 -55.546675 -1095.2124 -1094.5907 - 400 0.04 -1 0 0 1 0 -55.543187 -1095.2153 -1094.5924 - 450 0.045 -1 0 0 1 0 -55.54154 -1095.379 -1094.5932 - 500 0.05 -1 0 0 1 0 -55.541574 -1095.633 -1094.5932 - 550 0.055 -1 0 0 1 0 -55.542941 -1095.9006 -1094.5925 - 600 0.06 -1 0 0 1 0 -55.545209 -1096.1205 -1094.5914 - 650 0.065 -1 0 0 1 0 -55.547951 -1096.2575 -1094.59 - 700 0.07 -1 0 0 1 0 -55.550801 -1096.3044 -1094.5886 - 750 0.075 -1 0 0 1 0 -55.553483 -1096.2778 -1094.5873 - 800 0.08 -1 0 0 1 0 -55.555816 -1096.2098 -1094.5861 - 850 0.085 -1 0 0 1 0 -55.557706 -1096.1372 -1094.5852 - 900 0.09 -1 0 0 1 0 -55.55913 -1096.0919 -1094.5844 - 950 0.095 -1 0 0 1 0 -55.560111 -1096.0925 -1094.584 - 1000 0.1 -1 0 0 1 0 -55.560705 -1096.1411 -1094.5837 -Loop time of 1.74825 on 1 procs for 1000 steps with 250 atoms - -Performance: 4.942 ns/day, 4.856 hours/ns, 571.999 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads + 0 0 -1 0 0 1 0 -27.791345 -1097.7914 -1094.5727 + 50 0.005 -1 0 0 1 0 -27.790708 -1097.6764 -1094.5727 + 100 0.01 -1 0 0 1 0 -27.788879 -1097.3499 -1094.5727 + 150 0.015 -1 0 0 1 0 -27.78609 -1096.8672 -1094.5727 + 200 0.02 -1 0 0 1 0 -27.782705 -1096.3147 -1094.5727 + 250 0.025 -1 0 0 1 0 -27.779157 -1095.7952 -1094.5727 + 300 0.03 -1 0 0 1 0 -27.775883 -1095.4038 -1094.5727 + 350 0.035 -1 0 0 1 0 -27.773241 -1095.2023 -1094.5727 + 400 0.04 -1 0 0 1 0 -27.771451 -1095.201 -1094.5727 + 450 0.045 -1 0 0 1 0 -27.770578 -1095.3608 -1094.5727 + 500 0.05 -1 0 0 1 0 -27.770546 -1095.6113 -1094.5727 + 550 0.055 -1 0 0 1 0 -27.771185 -1095.8764 -1094.5727 + 600 0.06 -1 0 0 1 0 -27.772282 -1096.0948 -1094.5727 + 650 0.065 -1 0 0 1 0 -27.773629 -1096.2313 -1094.5727 + 700 0.07 -1 0 0 1 0 -27.775042 -1096.2787 -1094.5727 + 750 0.075 -1 0 0 1 0 -27.776384 -1096.2534 -1094.5727 + 800 0.08 -1 0 0 1 0 -27.777564 -1096.1872 -1094.5727 + 850 0.085 -1 0 0 1 0 -27.778533 -1096.117 -1094.5727 + 900 0.09 -1 0 0 1 0 -27.779276 -1096.0741 -1094.5727 + 950 0.095 -1 0 0 1 0 -27.779802 -1096.0771 -1094.5727 + 1000 0.1 -1 0 0 1 0 -27.780134 -1096.1278 -1094.5727 +Loop time of 1.70062 on 1 procs for 1000 steps with 250 atoms + +Performance: 5.080 ns/day, 4.724 hours/ns, 588.019 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.80384 | 0.80384 | 0.80384 | 0.0 | 45.98 -Neigh | 0.004528 | 0.004528 | 0.004528 | 0.0 | 0.26 -Comm | 0.022954 | 0.022954 | 0.022954 | 0.0 | 1.31 -Output | 0.0034568 | 0.0034568 | 0.0034568 | 0.0 | 0.20 -Modify | 0.91007 | 0.91007 | 0.91007 | 0.0 | 52.06 -Other | | 0.003404 | | | 0.19 +Pair | 0.72617 | 0.72617 | 0.72617 | 0.0 | 42.70 +Neigh | 0.0045958 | 0.0045958 | 0.0045958 | 0.0 | 0.27 +Comm | 0.023132 | 0.023132 | 0.023132 | 0.0 | 1.36 +Output | 0.0035856 | 0.0035856 | 0.0035856 | 0.0 | 0.21 +Modify | 0.93966 | 0.93966 | 0.93966 | 0.0 | 55.25 +Other | | 0.003483 | | | 0.20 Nlocal: 250 ave 250 max 250 min Histogram: 1 0 0 0 0 0 0 0 0 0 Nghost: 1415 ave 1415 max 1415 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 7873 ave 7873 max 7873 min +Neighs: 7872 ave 7872 max 7872 min Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 15746 ave 15746 max 15746 min +FullNghs: 15744 ave 15744 max 15744 min Histogram: 1 0 0 0 0 0 0 0 0 0 -Total # of neighbors = 15746 -Ave neighs/atom = 62.984 +Total # of neighbors = 15744 +Ave neighs/atom = 62.976 Neighbor list builds = 6 Dangerous builds = 0 # min_style spin diff --git a/examples/SPIN/iron/log.19Nov19.spin.iron_cubic.g++.4 b/examples/SPIN/iron/log.14Apr20.spin.iron_cubic.g++.4 similarity index 65% rename from examples/SPIN/iron/log.19Nov19.spin.iron_cubic.g++.4 rename to examples/SPIN/iron/log.14Apr20.spin.iron_cubic.g++.4 index 60db1064e0d41d7975c4ddcd370f5402291d3185..d1d0868e2fc8522ecd8890169d6e9c61d755f823 100644 --- a/examples/SPIN/iron/log.19Nov19.spin.iron_cubic.g++.4 +++ b/examples/SPIN/iron/log.14Apr20.spin.iron_cubic.g++.4 @@ -1,7 +1,11 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal atom_style spin @@ -19,7 +23,7 @@ Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 250 atoms - create_atoms CPU = 0.000651121 secs + create_atoms CPU = 0.00071311 secs # setting mass, mag. moments, and interactions for bcc iron @@ -81,53 +85,53 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 7.766 | 7.766 | 7.766 Mbytes Step Time v_magx v_magy v_magz v_magnorm v_tmag v_emag PotEng TotEng - 0 0 -1 0 0 1 0 -55.58269 -1125.5827 -1122.364 - 50 0.005 -1 0 0 1 0 -55.581457 -1125.4635 -1122.364 - 100 0.01 -1 0 0 1 0 -55.577922 -1125.1262 -1122.364 - 150 0.015 -1 0 0 1 0 -55.572562 -1124.6305 -1122.364 - 200 0.02 -1 0 0 1 0 -55.566098 -1124.067 -1122.364 - 250 0.025 -1 0 0 1 0 -55.559384 -1123.5412 -1122.364 - 300 0.03 -1 0 0 1 0 -55.553261 -1123.1491 -1122.364 - 350 0.035 -1 0 0 1 0 -55.548413 -1122.9526 -1122.364 - 400 0.04 -1 0 0 1 0 -55.545248 -1122.9623 -1122.364 - 450 0.045 -1 0 0 1 0 -55.54387 -1123.1395 -1122.364 - 500 0.05 -1 0 0 1 0 -55.544101 -1123.4126 -1122.364 - 550 0.055 -1 0 0 1 0 -55.54558 -1123.7021 -1122.364 - 600 0.06 -1 0 0 1 0 -55.547857 -1123.9414 -1122.364 - 650 0.065 -1 0 0 1 0 -55.550495 -1124.0897 -1122.364 - 700 0.07 -1 0 0 1 0 -55.553127 -1124.136 -1122.364 - 750 0.075 -1 0 0 1 0 -55.555497 -1124.0961 -1122.364 - 800 0.08 -1 0 0 1 0 -55.557466 -1124.0053 -1122.364 - 850 0.085 -1 0 0 1 0 -55.559001 -1123.9069 -1122.364 - 900 0.09 -1 0 0 1 0 -55.560147 -1123.8404 -1122.364 - 950 0.095 -1 0 0 1 0 -55.560992 -1123.8312 -1122.364 - 1000 0.1 -1 0 0 1 0 -55.561635 -1123.8853 -1122.364 -Loop time of 1.5074 on 4 procs for 1000 steps with 250 atoms - -Performance: 5.732 ns/day, 4.187 hours/ns, 663.393 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads + 0 0 -1 0 0 1 0 -27.791345 -1097.7914 -1094.5727 + 50 0.005 -1 0 0 1 0 -27.790728 -1097.6727 -1094.5727 + 100 0.01 -1 0 0 1 0 -27.78896 -1097.3371 -1094.5727 + 150 0.015 -1 0 0 1 0 -27.786276 -1096.8437 -1094.5727 + 200 0.02 -1 0 0 1 0 -27.783035 -1096.2824 -1094.5727 + 250 0.025 -1 0 0 1 0 -27.779661 -1095.758 -1094.5727 + 300 0.03 -1 0 0 1 0 -27.776574 -1095.3661 -1094.5727 + 350 0.035 -1 0 0 1 0 -27.774114 -1095.1684 -1094.5727 + 400 0.04 -1 0 0 1 0 -27.772489 -1095.1758 -1094.5727 + 450 0.045 -1 0 0 1 0 -27.771753 -1095.3498 -1094.5727 + 500 0.05 -1 0 0 1 0 -27.771823 -1095.6196 -1094.5727 + 550 0.055 -1 0 0 1 0 -27.772521 -1095.9061 -1094.5727 + 600 0.06 -1 0 0 1 0 -27.773627 -1096.1431 -1094.5727 + 650 0.065 -1 0 0 1 0 -27.774925 -1096.2899 -1094.5727 + 700 0.07 -1 0 0 1 0 -27.776234 -1096.3356 -1094.5727 + 750 0.075 -1 0 0 1 0 -27.777423 -1096.2961 -1094.5727 + 800 0.08 -1 0 0 1 0 -27.778424 -1096.2063 -1094.5727 + 850 0.085 -1 0 0 1 0 -27.779215 -1096.1093 -1094.5727 + 900 0.09 -1 0 0 1 0 -27.779817 -1096.0443 -1094.5727 + 950 0.095 -1 0 0 1 0 -27.780271 -1096.0363 -1094.5727 + 1000 0.1 -1 0 0 1 0 -27.780622 -1096.0914 -1094.5727 +Loop time of 1.54663 on 4 procs for 1000 steps with 250 atoms + +Performance: 5.586 ns/day, 4.296 hours/ns, 646.566 timesteps/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.22156 | 0.23223 | 0.24219 | 1.5 | 15.41 -Neigh | 0.0011292 | 0.0011852 | 0.0012362 | 0.1 | 0.08 -Comm | 0.067507 | 0.076341 | 0.087237 | 2.6 | 5.06 -Output | 0.0015073 | 0.0015442 | 0.0015914 | 0.1 | 0.10 -Modify | 1.1934 | 1.1947 | 1.1955 | 0.1 | 79.25 -Other | | 0.001434 | | | 0.10 +Pair | 0.2086 | 0.21716 | 0.22473 | 1.2 | 14.04 +Neigh | 0.0011575 | 0.0011975 | 0.001235 | 0.1 | 0.08 +Comm | 0.070766 | 0.080324 | 0.088558 | 2.3 | 5.19 +Output | 0.0016837 | 0.0017157 | 0.0017838 | 0.1 | 0.11 +Modify | 1.2424 | 1.2446 | 1.2467 | 0.1 | 80.47 +Other | | 0.001639 | | | 0.11 Nlocal: 62.5 ave 66 max 60 min Histogram: 1 1 0 0 0 1 0 0 0 1 Nghost: 848.25 ave 861 max 834 min Histogram: 1 0 0 0 1 0 1 0 0 1 -Neighs: 1962.75 ave 2087 max 1870 min +Neighs: 1962.25 ave 2085 max 1870 min Histogram: 1 1 0 0 0 0 1 0 0 1 -FullNghs: 3925.5 ave 4138 max 3776 min +FullNghs: 3924.5 ave 4136 max 3776 min Histogram: 1 1 0 0 0 1 0 0 0 1 -Total # of neighbors = 15702 -Ave neighs/atom = 62.808 +Total # of neighbors = 15698 +Ave neighs/atom = 62.792 Neighbor list builds = 6 Dangerous builds = 0 # min_style spin diff --git a/examples/SPIN/iron/log.19Nov19.spin.iron.g++.1 b/examples/SPIN/iron/log.19Nov19.spin.iron.g++.1 deleted file mode 100644 index cbc749a1f7b61a36cd96cd6862baf5ce45222b9e..0000000000000000000000000000000000000000 --- a/examples/SPIN/iron/log.19Nov19.spin.iron.g++.1 +++ /dev/null @@ -1,136 +0,0 @@ -LAMMPS (30 Oct 2019) -# bcc iron in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice bcc 2.8665 -Lattice spacing in x,y,z = 2.8665 2.8665 2.8665 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 250 atoms - create_atoms CPU = 0.000422955 secs - -# setting mass, mag. moments, and interactions for bcc iron - -mass 1 55.845 - -set group all spin/random 31 2.2 - 250 settings made for spin/random -# set group all spin 2.2 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 3.5 -pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe -pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe press etotal -thermo 50 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.77337 - ghost atom cutoff = 5.77337 - binsize = 2.88668, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.82 | 7.82 | 7.82 Mbytes -Step Time v_magnorm v_tmag Temp v_emag KinEng PotEng Press TotEng - 0 0 0.076456975 4554.5462 100.00358 -0.85791269 3.2186929 -1070.429 394.43342 -1067.2103 - 50 0.005 0.076456974 4658.383 96.663685 -0.86504718 3.1111957 -1070.3179 709.50826 -1067.2067 - 100 0.01 0.076456983 4744.1872 86.965803 -0.88035771 2.7990619 -1069.9981 1466.6938 -1067.1991 - 150 0.015 0.076456973 4794.5283 72.421197 -0.8996913 2.3309324 -1069.5203 2534.3867 -1067.1894 - 200 0.02 0.076456944 4707.6548 55.633188 -0.921682 1.7905973 -1068.969 3732.183 -1067.1784 - 250 0.025 0.076456953 4439.4697 39.802206 -0.94649004 1.2810649 -1068.447 4831.5559 -1067.166 - 300 0.03 0.076457027 4101.6694 27.882295 -0.97253854 0.8974133 -1068.0504 5612.0928 -1067.153 - 350 0.035 0.076457103 3860.1545 21.776538 -0.99708692 0.70089477 -1067.8416 5906.3057 -1067.1407 - 400 0.04 0.076457117 3765.5341 21.857102 -1.0190244 0.70348778 -1067.8332 5682.0053 -1067.1297 - 450 0.045 0.076457072 3739.9037 26.959407 -1.0389343 0.86770942 -1067.9875 5066.5077 -1067.1198 - 500 0.05 0.076457001 3730.8342 34.92521 -1.0582008 1.124095 -1068.2342 4279.2424 -1067.1101 - 550 0.055 0.076456962 3698.0556 43.405912 -1.0785156 1.397053 -1068.497 3533.4153 -1067.1 - 600 0.06 0.076456997 3560.947 50.544844 -1.102048 1.626825 -1068.715 2975.8479 -1067.0882 - 650 0.065 0.076457079 3341.7402 55.261218 -1.1296588 1.7786252 -1068.853 2683.3023 -1067.0744 - 700 0.07 0.076457136 3156.8448 57.25083 -1.1595102 1.8426624 -1068.9021 2640.5967 -1067.0595 - 750 0.075 0.076457132 3099.5181 56.934336 -1.1893875 1.8324758 -1068.877 2778.3261 -1067.0445 - 800 0.08 0.076457116 3132.9985 55.266343 -1.2181223 1.7787901 -1068.809 3020.1175 -1067.0302 - 850 0.085 0.076457116 3163.2943 53.376453 -1.2443326 1.7179626 -1068.735 3287.9042 -1067.0171 - 900 0.09 0.076457121 3168.063 52.279557 -1.2676425 1.6826581 -1068.6881 3504.7334 -1067.0054 - 950 0.095 0.076457122 3144.2102 52.667743 -1.2902335 1.6951522 -1068.6893 3622.1382 -1066.9941 - 1000 0.1 0.076457135 3061.0811 54.684094 -1.314147 1.76005 -1068.7422 3625.2935 -1066.9822 -Loop time of 1.6779 on 1 procs for 1000 steps with 250 atoms - -Performance: 5.149 ns/day, 4.661 hours/ns, 595.982 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.78285 | 0.78285 | 0.78285 | 0.0 | 46.66 -Neigh | 0.004487 | 0.004487 | 0.004487 | 0.0 | 0.27 -Comm | 0.022926 | 0.022926 | 0.022926 | 0.0 | 1.37 -Output | 0.003927 | 0.003927 | 0.003927 | 0.0 | 0.23 -Modify | 0.86033 | 0.86033 | 0.86033 | 0.0 | 51.27 -Other | | 0.003381 | | | 0.20 - -Nlocal: 250 ave 250 max 250 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1399 ave 1399 max 1399 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 7855 ave 7855 max 7855 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 15710 ave 15710 max 15710 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 15710 -Ave neighs/atom = 62.84 -Neighbor list builds = 6 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:01 diff --git a/examples/SPIN/iron/log.19Nov19.spin.iron.g++.4 b/examples/SPIN/iron/log.19Nov19.spin.iron.g++.4 deleted file mode 100644 index a5cc9d7f0b2cde1e6a59bbc277f7fff63af451aa..0000000000000000000000000000000000000000 --- a/examples/SPIN/iron/log.19Nov19.spin.iron.g++.4 +++ /dev/null @@ -1,136 +0,0 @@ -LAMMPS (30 Oct 2019) -# bcc iron in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice bcc 2.8665 -Lattice spacing in x,y,z = 2.8665 2.8665 2.8665 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 250 atoms - create_atoms CPU = 0.000705957 secs - -# setting mass, mag. moments, and interactions for bcc iron - -mass 1 55.845 - -set group all spin/random 31 2.2 - 250 settings made for spin/random -# set group all spin 2.2 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 3.5 -pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe -pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_tmag temp v_emag ke pe press etotal -thermo 50 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump_iron.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.77337 - ghost atom cutoff = 5.77337 - binsize = 2.88668, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.766 | 7.766 | 7.766 Mbytes -Step Time v_magnorm v_tmag Temp v_emag KinEng PotEng Press TotEng - 0 0 0.076456975 4554.5462 100.00358 -0.85791269 3.2186929 -1070.8579 394.43342 -1067.6392 - 50 0.005 0.076456995 4701.2004 96.298333 -0.85659448 3.0994366 -1070.7387 714.37866 -1067.6392 - 100 0.01 0.076457028 4794.5923 86.330828 -0.87003341 2.7786247 -1070.4179 1484.2951 -1067.6392 - 150 0.015 0.076457074 4836.9634 71.603402 -0.89006992 2.3046111 -1069.9438 2551.9258 -1067.6392 - 200 0.02 0.076457106 4754.5574 54.648817 -0.91124541 1.7589146 -1069.3981 3731.1494 -1067.6392 - 250 0.025 0.076457128 4502.135 38.599515 -0.93187522 1.2423553 -1068.8816 4804.619 -1067.6392 - 300 0.03 0.076457157 4176.7186 26.383018 -0.95082226 0.8491579 -1068.4884 5563.3287 -1067.6392 - 350 0.035 0.076457207 3955.5658 20.01039 -0.96826468 0.64404992 -1068.2833 5839.6479 -1067.6392 - 400 0.04 0.076457243 3887.9746 20.097682 -0.98706373 0.64685949 -1068.2861 5601.1255 -1067.6392 - 450 0.045 0.076457231 3868.5613 25.687511 -1.0095684 0.82677249 -1068.466 4974.0031 -1067.6392 - 500 0.05 0.076457204 3838.4905 34.604697 -1.0349855 1.113779 -1068.753 4157.1837 -1067.6392 - 550 0.055 0.076457196 3775.1404 44.251809 -1.0609123 1.4242788 -1069.0635 3357.1 -1067.6392 - 600 0.06 0.076457188 3604.8828 52.475202 -1.0880854 1.6889551 -1069.3282 2752.0424 -1067.6392 - 650 0.065 0.07645718 3345.5894 57.926479 -1.1179657 1.8644087 -1069.5036 2467.7403 -1067.6392 - 700 0.07 0.076457185 3138.2001 60.030548 -1.1469999 1.9321298 -1069.5714 2510.1752 -1067.6392 - 750 0.075 0.07645719 3074.9626 59.122504 -1.1721939 1.9029037 -1069.5421 2788.7489 -1067.6392 - 800 0.08 0.076457195 3103.5294 56.349146 -1.1949365 1.813641 -1069.4529 3192.5158 -1067.6392 - 850 0.085 0.076457199 3164.2317 53.154464 -1.2164642 1.7108177 -1069.35 3602.931 -1067.6392 - 900 0.09 0.076457199 3228.1358 50.837416 -1.2366018 1.6362417 -1069.2755 3917.0758 -1067.6392 - 950 0.095 0.076457222 3247.5532 50.234549 -1.2539657 1.6168379 -1069.2561 4059.9275 -1067.6392 - 1000 0.1 0.076457266 3208.3875 51.592727 -1.2671834 1.6605519 -1069.2998 4001.4995 -1067.6392 -Loop time of 1.47769 on 4 procs for 1000 steps with 250 atoms - -Performance: 5.847 ns/day, 4.105 hours/ns, 676.731 timesteps/s -100.0% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.21791 | 0.22724 | 0.23568 | 1.4 | 15.38 -Neigh | 0.001137 | 0.0011771 | 0.0012221 | 0.1 | 0.08 -Comm | 0.066727 | 0.074288 | 0.083826 | 2.3 | 5.03 -Output | 0.0017431 | 0.0017657 | 0.0018256 | 0.1 | 0.12 -Modify | 1.1707 | 1.1718 | 1.1725 | 0.1 | 79.30 -Other | | 0.001427 | | | 0.10 - -Nlocal: 62.5 ave 66 max 60 min -Histogram: 1 0 0 2 0 0 0 0 0 1 -Nghost: 844 ave 857 max 829 min -Histogram: 1 0 0 1 0 0 0 0 1 1 -Neighs: 1962.5 ave 2096 max 1855 min -Histogram: 1 0 1 0 0 1 0 0 0 1 -FullNghs: 3925 ave 4139 max 3766 min -Histogram: 1 0 0 2 0 0 0 0 0 1 - -Total # of neighbors = 15700 -Ave neighs/atom = 62.8 -Neighbor list builds = 6 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:01 diff --git a/examples/SPIN/nickel/in.spin.nickel b/examples/SPIN/nickel/in.spin.nickel index 1d62188d8f8496f4b75ad8df7e68516e1b20de99..0fd2e5f345d32210b96cc1400476cd1765b8b013 100644 --- a/examples/SPIN/nickel/in.spin.nickel +++ b/examples/SPIN/nickel/in.spin.nickel @@ -31,6 +31,7 @@ neighbor 0.1 bin neigh_modify every 10 check yes delay 20 fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes fix 2 all langevin/spin 0.0 0.0 21 fix 3 all nve/spin lattice moving @@ -48,7 +49,7 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp v_tmag etotal +thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal thermo 50 compute outsp all property/atom spx spy spz sp fmx fmy fmz diff --git a/examples/SPIN/nickel/in.spin.nickel_cubic b/examples/SPIN/nickel/in.spin.nickel_cubic index 1ae069a64f26b429fb136eff0d734dc66b7c1c7c..88c477132ea8c930b272da8cf7a67a43429e8e01 100644 --- a/examples/SPIN/nickel/in.spin.nickel_cubic +++ b/examples/SPIN/nickel/in.spin.nickel_cubic @@ -50,7 +50,7 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp v_tmag etotal +thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal thermo 50 compute outsp all property/atom spx spy spz sp fmx fmy fmz diff --git a/examples/SPIN/nickel/log.14Apr20.spin.nickel.g++.1 b/examples/SPIN/nickel/log.14Apr20.spin.nickel.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..e4bcd538c8e8ab5449f025f5285a4c18f464f22c --- /dev/null +++ b/examples/SPIN/nickel/log.14Apr20.spin.nickel.g++.1 @@ -0,0 +1,141 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# fcc nickel in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.524 +Lattice spacing in x,y,z = 3.524 3.524 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.00111699 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.69 + +set group all spin/random 31 0.63 + 500 settings made for spin/random +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.90375 + ghost atom cutoff = 5.90375 + binsize = 2.95187, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.885 | 7.885 | 7.885 Mbytes +Step Time v_magnorm PotEng v_emag Temp v_tmag TotEng + 0 0 0.028733803 -2224.7591 0.20498788 100.03408 -4775.0671 -2218.3068 + 50 0.005 0.028733807 -2224.6271 0.093798492 97.987469 -10540.61 -2218.3068 + 100 0.01 0.028733815 -2224.1217 -0.12620081 90.153107 8107.9288 -2218.3068 + 150 0.015 0.028733823 -2223.2984 -0.433762 77.388213 2482.6323 -2218.3068 + 200 0.02 0.028733827 -2222.3037 -0.80329408 61.9663 1426.722 -2218.3068 + 250 0.025 0.028733825 -2221.3495 -1.21118 47.173828 1010.1027 -2218.3068 + 300 0.03 0.028733813 -2220.6532 -1.6389575 36.378126 789.93596 -2218.3068 + 350 0.035 0.028733795 -2220.3656 -2.0724228 31.919862 648.39236 -2218.3068 + 400 0.04 0.028733778 -2220.5225 -2.498882 34.352305 545.8856 -2218.3068 + 450 0.045 0.02873377 -2221.0414 -2.9067963 42.396008 468.97305 -2218.3068 + 500 0.05 0.02873377 -2221.7614 -3.2881407 53.559839 411.03247 -2218.3068 + 550 0.055 0.028733775 -2222.5025 -3.6391769 65.048917 366.0991 -2218.3068 + 600 0.06 0.028733784 -2223.1215 -3.9612604 74.645803 330.37583 -2218.3068 + 650 0.065 0.028733794 -2223.5495 -4.2623843 81.281536 303.0489 -2218.3068 + 700 0.07 0.028733802 -2223.795 -4.5550161 85.087649 283.0897 -2218.3068 + 750 0.075 0.028733805 -2223.9222 -4.8523832 87.059996 267.48601 -2218.3068 + 800 0.08 0.028733804 -2224.0176 -5.1656984 88.538724 253.94215 -2218.3068 + 850 0.085 0.028733799 -2224.1506 -5.4981915 90.600346 242.22988 -2218.3068 + 900 0.09 0.028733794 -2224.3425 -5.8400709 93.576582 232.32115 -2218.3068 + 950 0.095 0.028733796 -2224.5674 -6.1746129 97.063173 222.64192 -2218.3068 + 1000 0.1 0.028733805 -2224.7832 -6.4920444 100.40752 212.7708 -2218.3068 +Loop time of 4.1438 on 1 procs for 1000 steps with 500 atoms + +Performance: 2.085 ns/day, 11.511 hours/ns, 241.324 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.8846 | 1.8846 | 1.8846 | 0.0 | 45.48 +Neigh | 0.012244 | 0.012244 | 0.012244 | 0.0 | 0.30 +Comm | 0.033385 | 0.033385 | 0.033385 | 0.0 | 0.81 +Output | 0.014202 | 0.014202 | 0.014202 | 0.0 | 0.34 +Modify | 2.1938 | 2.1938 | 2.1938 | 0.0 | 52.94 +Other | | 0.005526 | | | 0.13 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19500 ave 19500 max 19500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 39000 ave 39000 max 39000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 39000 +Ave neighs/atom = 78 +Neighbor list builds = 7 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/nickel/log.14Apr20.spin.nickel.g++.4 b/examples/SPIN/nickel/log.14Apr20.spin.nickel.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..2ef20e47899234b2c8f5b3ca0e49f14892989236 --- /dev/null +++ b/examples/SPIN/nickel/log.14Apr20.spin.nickel.g++.4 @@ -0,0 +1,141 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# fcc nickel in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.524 +Lattice spacing in x,y,z = 3.524 3.524 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.000680923 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.69 + +set group all spin/random 31 0.63 + 500 settings made for spin/random +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.90375 + ghost atom cutoff = 5.90375 + binsize = 2.95187, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.799 | 7.799 | 7.799 Mbytes +Step Time v_magnorm PotEng v_emag Temp v_tmag TotEng + 0 0 0.028733803 -2224.7591 0.20498788 100.03408 -4775.0671 -2218.3068 + 50 0.005 0.028733805 -2224.5402 0.18523081 96.640497 -5356.0839 -2218.3068 + 100 0.01 0.028733812 -2223.9764 0.042321266 87.900506 -24443.229 -2218.3068 + 150 0.015 0.028733818 -2223.1275 -0.20362758 74.73931 5409.1535 -2218.3068 + 200 0.02 0.028733826 -2222.1368 -0.52607498 59.379029 2258.3662 -2218.3068 + 250 0.025 0.028733831 -2221.2102 -0.90147712 45.013713 1422.5963 -2218.3068 + 300 0.03 0.028733827 -2220.558 -1.3121131 34.902868 1037.9833 -2218.3068 + 350 0.035 0.028733817 -2220.3198 -1.7411113 31.20948 805.99534 -2218.3068 + 400 0.04 0.028733807 -2220.5162 -2.1695831 34.253525 646.07984 -2218.3068 + 450 0.045 0.028733802 -2221.0547 -2.581156 42.602248 532.25918 -2218.3068 + 500 0.05 0.028733805 -2221.7784 -2.9684862 53.822318 451.09419 -2218.3068 + 550 0.055 0.028733814 -2222.5255 -3.3338614 65.405638 392.41628 -2218.3068 + 600 0.06 0.028733822 -2223.1693 -3.6823124 75.38674 349.28401 -2218.3068 + 650 0.065 0.028733828 -2223.6339 -4.0182131 82.590109 317.40382 -2218.3068 + 700 0.07 0.028733827 -2223.907 -4.3515619 86.82355 294.41794 -2218.3068 + 750 0.075 0.028733822 -2224.0293 -4.6966825 88.720045 278.64174 -2218.3068 + 800 0.08 0.02873382 -2224.064 -5.0589353 89.257884 267.43696 -2218.3068 + 850 0.085 0.028733824 -2224.0702 -5.4291065 89.354006 257.51219 -2218.3068 + 900 0.09 0.028733833 -2224.0977 -5.7927329 89.780835 246.96548 -2218.3068 + 950 0.095 0.028733835 -2224.1852 -6.1414644 91.136895 236.30442 -2218.3068 + 1000 0.1 0.028733828 -2224.3442 -6.472877 93.602509 227.18362 -2218.3068 +Loop time of 2.57923 on 4 procs for 1000 steps with 500 atoms + +Performance: 3.350 ns/day, 7.165 hours/ns, 387.713 timesteps/s +99.4% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.52633 | 0.53745 | 0.55615 | 1.6 | 20.84 +Neigh | 0.0030599 | 0.0031699 | 0.0032969 | 0.2 | 0.12 +Comm | 0.10599 | 0.1261 | 0.13713 | 3.4 | 4.89 +Output | 0.0051079 | 0.0051572 | 0.0052865 | 0.1 | 0.20 +Modify | 1.9032 | 1.9052 | 1.9065 | 0.1 | 73.87 +Other | | 0.002202 | | | 0.09 + +Nlocal: 125 ave 138 max 115 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +Nghost: 1099 ave 1109 max 1086 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 4875 ave 5336 max 4525 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +FullNghs: 9750 ave 10764 max 8970 min +Histogram: 1 0 0 2 0 0 0 0 0 1 + +Total # of neighbors = 39000 +Ave neighs/atom = 78 +Neighbor list builds = 7 +Dangerous builds = 0 + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:02 diff --git a/examples/SPIN/nickel/log.14Apr20.spin.nickel_cubic.g++.1 b/examples/SPIN/nickel/log.14Apr20.spin.nickel_cubic.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..a9c6dc1ea40f5b9348b7d557cc86fcd13c84f2c6 --- /dev/null +++ b/examples/SPIN/nickel/log.14Apr20.spin.nickel_cubic.g++.1 @@ -0,0 +1,142 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# fcc nickel in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.524 +Lattice spacing in x,y,z = 3.524 3.524 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.000916958 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.69 + +set group all spin/random 31 0.63 + 500 settings made for spin/random +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.90375 + ghost atom cutoff = 5.90375 + binsize = 2.95187, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.885 | 7.885 | 7.885 Mbytes +Step Time v_magnorm PotEng v_emag Temp v_tmag TotEng + 0 0 0.028733803 -2224.7478 0.21626519 100.03408 -4301.853 -2218.2955 + 50 0.005 0.028732018 -2224.6158 0.10507552 97.987527 -8506.178 -2218.2955 + 100 0.01 0.028730353 -2224.1105 -0.11492231 90.153208 9821.9545 -2218.2955 + 150 0.015 0.028729179 -2223.2871 -0.42247044 77.388252 2612.6762 -2218.2955 + 200 0.02 0.028730623 -2222.2924 -0.79199024 61.966499 1465.6684 -2218.2955 + 250 0.025 0.02873338 -2221.3383 -1.199896 47.175023 1028.0909 -2218.2955 + 300 0.03 0.028732667 -2220.6421 -1.6277461 36.381371 800.14526 -2218.2955 + 350 0.035 0.028726646 -2220.3547 -2.0613125 31.92537 654.96081 -2218.2955 + 400 0.04 0.028719587 -2220.5116 -2.4878332 34.358607 550.47697 -2218.2955 + 450 0.045 0.028713837 -2221.0303 -2.8957078 42.400515 472.35844 -2218.2955 + 500 0.05 0.028707813 -2221.7502 -3.2769128 53.560569 413.68656 -2218.2955 + 550 0.055 0.028706758 -2222.4909 -3.627757 65.045564 368.28172 -2218.2955 + 600 0.06 0.02871485 -2223.1098 -3.9496387 74.639348 332.20637 -2218.2955 + 650 0.065 0.028726143 -2223.5376 -4.2505578 81.273271 304.61479 -2218.2954 + 700 0.07 0.028732341 -2223.7831 -4.5429323 85.078158 284.47251 -2218.2954 + 750 0.075 0.028732637 -2223.9102 -4.8399235 87.049135 268.76484 -2218.2954 + 800 0.08 0.028731303 -2224.0055 -5.1527352 88.526667 255.14878 -2218.2954 + 850 0.085 0.028728379 -2224.1384 -5.4846326 90.587963 243.32753 -2218.2954 + 900 0.09 0.028721628 -2224.3304 -5.8258679 93.565089 233.2995 -2218.2954 + 950 0.095 0.028715574 -2224.5555 -6.1597678 97.054035 223.54492 -2218.2954 + 1000 0.1 0.02871582 -2224.7714 -6.4766454 100.40218 213.59853 -2218.2954 +Loop time of 4.15073 on 1 procs for 1000 steps with 500 atoms + +Performance: 2.082 ns/day, 11.530 hours/ns, 240.921 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.8514 | 1.8514 | 1.8514 | 0.0 | 44.60 +Neigh | 0.012244 | 0.012244 | 0.012244 | 0.0 | 0.29 +Comm | 0.032971 | 0.032971 | 0.032971 | 0.0 | 0.79 +Output | 0.027815 | 0.027815 | 0.027815 | 0.0 | 0.67 +Modify | 2.2209 | 2.2209 | 2.2209 | 0.0 | 53.51 +Other | | 0.005408 | | | 0.13 + +Nlocal: 500 ave 500 max 500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1956 ave 1956 max 1956 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 19500 ave 19500 max 19500 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 39000 ave 39000 max 39000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 39000 +Ave neighs/atom = 78 +Neighbor list builds = 7 +Dangerous builds = 0 + + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:04 diff --git a/examples/SPIN/nickel/log.14Apr20.spin.nickel_cubic.g++.4 b/examples/SPIN/nickel/log.14Apr20.spin.nickel_cubic.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..9a25cb1fb33cc19b3cd97124709858bd1ac28668 --- /dev/null +++ b/examples/SPIN/nickel/log.14Apr20.spin.nickel_cubic.g++.4 @@ -0,0 +1,142 @@ +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# fcc nickel in a 3d periodic box + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice fcc 3.524 +Lattice spacing in x,y,z = 3.524 3.524 3.524 +region box block 0.0 5.0 0.0 5.0 0.0 5.0 +create_box 1 box +Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 500 atoms + create_atoms CPU = 0.000750065 secs + +# setting mass, mag. moments, and interactions for cobalt + +mass 1 58.69 + +set group all spin/random 31 0.63 + 500 settings made for spin/random +#set group all spin 0.63 0.0 0.0 1.0 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 +pair_coeff * * eam/alloy Ni99.eam.alloy Ni +pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 zeeman 0.0 0.0 0.0 1.0 +fix_modify 1 energy yes +fix 2 all langevin/spin 0.0 0.0 21 + +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable magz equal c_out_mag[3] +variable magnorm equal c_out_mag[4] +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_magnorm pe v_emag temp v_tmag etotal +thermo 50 + +compute outsp all property/atom spx spy spz sp fmx fmy fmz +dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] + +run 1000 +Neighbor list info ... + update every 10 steps, delay 20 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.90375 + ghost atom cutoff = 5.90375 + binsize = 2.95187, bins = 6 6 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair eam/alloy, perpetual, half/full from (2) + attributes: half, newton on + pair build: halffull/newton + stencil: none + bin: none + (2) pair spin/exchange, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.799 | 7.799 | 7.799 Mbytes +Step Time v_magnorm PotEng v_emag Temp v_tmag TotEng + 0 0 0.028733803 -2224.7478 0.21626519 100.03408 -4301.853 -2218.2955 + 50 0.005 0.028732084 -2224.5289 0.19650376 96.640616 -4777.5312 -2218.2955 + 100 0.01 0.028730714 -2223.9652 0.053583455 87.900827 -16071.152 -2218.2955 + 150 0.015 0.028730068 -2223.1163 -0.19237362 74.739735 6053.4731 -2218.2955 + 200 0.02 0.028732658 -2222.1255 -0.5148243 59.37938 2354.2236 -2218.2955 + 250 0.025 0.028736824 -2221.1989 -0.89021871 45.013765 1456.8539 -2218.2955 + 300 0.03 0.028734673 -2220.5467 -1.3008412 34.902634 1054.9996 -2218.2955 + 350 0.035 0.028726346 -2220.3085 -1.7298348 31.209321 816.00699 -2218.2955 + 400 0.04 0.028721022 -2220.5048 -2.1583012 34.253626 652.5234 -2218.2955 + 450 0.045 0.028722238 -2221.0433 -2.5698412 42.602344 536.67287 -2218.2955 + 500 0.05 0.02872462 -2221.767 -2.9571093 53.822165 454.37668 -2218.2955 + 550 0.055 0.02872545 -2222.5141 -3.3223962 65.405129 395.00593 -2218.2955 + 600 0.06 0.02873171 -2223.1579 -3.6706939 75.385253 351.37664 -2218.2955 + 650 0.065 0.028744439 -2223.6223 -4.0063211 82.586428 319.12437 -2218.2954 + 700 0.07 0.028756808 -2223.8952 -4.3392538 86.816357 295.88017 -2218.2954 + 750 0.075 0.028765368 -2224.0172 -4.6838051 88.708218 279.91792 -2218.2954 + 800 0.08 0.028773583 -2224.0515 -5.0453234 89.24056 268.55561 -2218.2954 + 850 0.085 0.028781239 -2224.0574 -5.4146399 89.331407 258.50935 -2218.2954 + 900 0.09 0.028787568 -2224.0847 -5.7774277 89.755159 247.86416 -2218.2954 + 950 0.095 0.028794703 -2224.1722 -6.1254539 91.111184 237.12719 -2218.2954 + 1000 0.1 0.028801253 -2224.3313 -6.4562841 93.577969 227.97114 -2218.2954 +Loop time of 2.49458 on 4 procs for 1000 steps with 500 atoms + +Performance: 3.464 ns/day, 6.929 hours/ns, 400.868 timesteps/s +100.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.52895 | 0.53652 | 0.54117 | 0.6 | 21.51 +Neigh | 0.003077 | 0.0032379 | 0.003371 | 0.2 | 0.13 +Comm | 0.11315 | 0.1193 | 0.12956 | 1.8 | 4.78 +Output | 0.0093312 | 0.0093816 | 0.0094745 | 0.1 | 0.38 +Modify | 1.8206 | 1.8239 | 1.8254 | 0.1 | 73.11 +Other | | 0.00229 | | | 0.09 + +Nlocal: 125 ave 138 max 115 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +Nghost: 1099 ave 1109 max 1086 min +Histogram: 1 0 0 0 0 0 2 0 0 1 +Neighs: 4875 ave 5337 max 4528 min +Histogram: 1 0 0 2 0 0 0 0 0 1 +FullNghs: 9750 ave 10764 max 8970 min +Histogram: 1 0 0 2 0 0 0 0 0 1 + +Total # of neighbors = 39000 +Ave neighs/atom = 78 +Neighbor list builds = 7 +Dangerous builds = 0 + + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:02 diff --git a/examples/SPIN/nickel/log.19Nov19.spin.nickel.g++.1 b/examples/SPIN/nickel/log.19Nov19.spin.nickel.g++.1 deleted file mode 100644 index 7871d82ae9bbfc6588e5fd3f2dc2e57bcea59aea..0000000000000000000000000000000000000000 --- a/examples/SPIN/nickel/log.19Nov19.spin.nickel.g++.1 +++ /dev/null @@ -1,136 +0,0 @@ -LAMMPS (30 Oct 2019) -# fcc nickel in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice fcc 3.524 -Lattice spacing in x,y,z = 3.524 3.524 3.524 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.000484943 secs - -# setting mass, mag. moments, and interactions for cobalt - -mass 1 58.69 - -set group all spin/random 31 0.63 - 500 settings made for spin/random -#set group all spin 0.63 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Ni99.eam.alloy Ni -pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_emag temp v_tmag etotal -thermo 50 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.90375 - ghost atom cutoff = 5.90375 - binsize = 2.95187, bins = 6 6 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.885 | 7.885 | 7.885 Mbytes -Step Time v_magnorm v_emag Temp v_tmag TotEng - 0 0 0.028733803 0.40997576 100.03408 -4775.0671 -2218.3068 - 50 0.005 0.028733807 0.070491717 101.47879 -28153.519 -2218.1371 - 100 0.01 0.028733815 -0.70937134 101.7311 2925.8177 -2217.7471 - 150 0.015 0.028733823 -1.853981 99.63039 1197.9339 -2217.1748 - 200 0.02 0.028733828 -3.2679239 94.850105 741.17431 -2216.4678 - 250 0.025 0.028733824 -4.863967 88.444584 550.36979 -2215.6698 - 300 0.03 0.028733807 -6.5763457 82.689581 449.78321 -2214.8136 - 350 0.035 0.028733783 -8.3489158 80.108798 384.32228 -2213.9273 - 400 0.04 0.028733763 -10.120216 82.374947 335.01545 -2213.0417 - 450 0.045 0.028733755 -11.828932 89.814597 296.88965 -2212.1873 - 500 0.05 0.028733762 -13.423712 101.39613 267.51686 -2211.39 - 550 0.055 0.028733783 -14.866724 115.07399 244.96012 -2210.6684 - 600 0.06 0.028733801 -16.135279 128.57849 229.33327 -2210.0342 - 650 0.065 0.028733804 -17.222838 140.22402 220.05718 -2209.4904 - 700 0.07 0.028733795 -18.154813 149.61295 212.95678 -2209.0244 - 750 0.075 0.028733781 -18.996903 157.5814 206.41327 -2208.6034 - 800 0.08 0.028733768 -19.804249 164.92075 203.88977 -2208.1997 - 850 0.085 0.028733752 -20.579151 171.67278 203.42363 -2207.8122 - 900 0.09 0.028733728 -21.294277 177.67238 199.84817 -2207.4547 - 950 0.095 0.028733715 -21.943945 183.2621 194.9614 -2207.1298 - 1000 0.1 0.02873374 -22.551277 188.99284 191.59796 -2206.8262 -Loop time of 4.30614 on 1 procs for 1000 steps with 500 atoms - -Performance: 2.006 ns/day, 11.961 hours/ns, 232.227 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 2.038 | 2.038 | 2.038 | 0.0 | 47.33 -Neigh | 0.01566 | 0.01566 | 0.01566 | 0.0 | 0.36 -Comm | 0.032802 | 0.032802 | 0.032802 | 0.0 | 0.76 -Output | 0.014146 | 0.014146 | 0.014146 | 0.0 | 0.33 -Modify | 2.2003 | 2.2003 | 2.2003 | 0.0 | 51.10 -Other | | 0.005288 | | | 0.12 - -Nlocal: 500 ave 500 max 500 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1956 ave 1956 max 1956 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 19504 ave 19504 max 19504 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 39008 ave 39008 max 39008 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 39008 -Ave neighs/atom = 78.016 -Neighbor list builds = 9 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:04 diff --git a/examples/SPIN/nickel/log.19Nov19.spin.nickel.g++.4 b/examples/SPIN/nickel/log.19Nov19.spin.nickel.g++.4 deleted file mode 100644 index 638ab5e63516510e9a53e5d15ff54577a8cf9d27..0000000000000000000000000000000000000000 --- a/examples/SPIN/nickel/log.19Nov19.spin.nickel.g++.4 +++ /dev/null @@ -1,136 +0,0 @@ -LAMMPS (30 Oct 2019) -# fcc nickel in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice fcc 3.524 -Lattice spacing in x,y,z = 3.524 3.524 3.524 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.000733852 secs - -# setting mass, mag. moments, and interactions for cobalt - -mass 1 58.69 - -set group all spin/random 31 0.63 - 500 settings made for spin/random -#set group all spin 0.63 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Ni99.eam.alloy Ni -pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_emag temp v_tmag etotal -thermo 50 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.90375 - ghost atom cutoff = 5.90375 - binsize = 2.95187, bins = 6 6 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.799 | 7.799 | 7.799 Mbytes -Step Time v_magnorm v_emag Temp v_tmag TotEng - 0 0 0.028733803 0.40997576 100.03408 -4775.0671 -2218.1018 - 50 0.005 0.028733805 0.25324083 98.741633 -7863.8744 -2218.1018 - 100 0.01 0.028733812 -0.37320751 97.073875 5622.1863 -2218.1018 - 150 0.015 0.028733819 -1.3971549 94.073447 1625.0258 -2218.1018 - 200 0.02 0.028733825 -2.7238372 89.419944 919.37601 -2218.1018 - 250 0.025 0.028733829 -4.2684428 84.07494 652.18375 -2218.1018 - 300 0.03 0.028733824 -5.9636712 80.06368 512.89077 -2218.1018 - 350 0.035 0.02873381 -7.7386326 79.366702 422.24864 -2218.1018 - 400 0.04 0.028733802 -9.5148059 83.052751 357.60379 -2218.1018 - 450 0.045 0.028733806 -11.234935 91.282747 310.87776 -2218.1018 - 500 0.05 0.02873381 -12.875184 103.49836 275.0224 -2218.1018 - 550 0.055 0.028733808 -14.413473 118.16526 247.85208 -2218.1018 - 600 0.06 0.028733803 -15.812466 132.83837 230.67903 -2218.1018 - 650 0.065 0.028733808 -17.061311 145.41049 222.19476 -2218.1018 - 700 0.07 0.028733818 -18.181903 154.83414 219.42933 -2218.1018 - 750 0.075 0.028733823 -19.176259 160.58645 218.45231 -2218.1018 - 800 0.08 0.028733825 -20.035157 163.02829 214.86596 -2218.1018 - 850 0.085 0.028733825 -20.806548 164.4197 209.86881 -2218.1018 - 900 0.09 0.028733829 -21.571419 167.8571 205.79849 -2218.1018 - 950 0.095 0.028733825 -22.365879 175.00875 201.33088 -2218.1018 - 1000 0.1 0.028733821 -23.133464 184.68305 195.52912 -2218.1018 -Loop time of 2.47211 on 4 procs for 1000 steps with 500 atoms - -Performance: 3.495 ns/day, 6.867 hours/ns, 404.513 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.5549 | 0.56708 | 0.58627 | 1.6 | 22.94 -Neigh | 0.0039728 | 0.0041007 | 0.0042598 | 0.2 | 0.17 -Comm | 0.087296 | 0.10802 | 0.11917 | 3.8 | 4.37 -Output | 0.0046923 | 0.0047188 | 0.0047917 | 0.1 | 0.19 -Modify | 1.7832 | 1.7862 | 1.7879 | 0.1 | 72.25 -Other | | 0.002016 | | | 0.08 - -Nlocal: 125 ave 139 max 112 min -Histogram: 1 0 1 0 0 0 1 0 0 1 -Nghost: 1099 ave 1112 max 1085 min -Histogram: 1 0 0 1 0 0 0 1 0 1 -Neighs: 4876 ave 5386 max 4426 min -Histogram: 1 0 0 1 0 1 0 0 0 1 -FullNghs: 9752 ave 10845 max 8737 min -Histogram: 1 0 1 0 0 0 1 0 0 1 - -Total # of neighbors = 39008 -Ave neighs/atom = 78.016 -Neighbor list builds = 9 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:02 diff --git a/examples/SPIN/nickel/log.19Nov19.spin.nickel_cubic.g++.1 b/examples/SPIN/nickel/log.19Nov19.spin.nickel_cubic.g++.1 deleted file mode 100644 index 4f3b94df5308dfb1a203e0647fefea78edabbafe..0000000000000000000000000000000000000000 --- a/examples/SPIN/nickel/log.19Nov19.spin.nickel_cubic.g++.1 +++ /dev/null @@ -1,138 +0,0 @@ -LAMMPS (30 Oct 2019) -# fcc nickel in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice fcc 3.524 -Lattice spacing in x,y,z = 3.524 3.524 3.524 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.00109196 secs - -# setting mass, mag. moments, and interactions for cobalt - -mass 1 58.69 - -set group all spin/random 31 0.63 - 500 settings made for spin/random -#set group all spin 0.63 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Ni99.eam.alloy Ni -pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 zeeman 0.0 0.0 0.0 1.0 -fix_modify 1 energy yes -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_emag temp v_tmag etotal -thermo 50 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.90375 - ghost atom cutoff = 5.90375 - binsize = 2.95187, bins = 6 6 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.885 | 7.885 | 7.885 Mbytes -Step Time v_magnorm v_emag Temp v_tmag TotEng - 0 0 0.028733803 0.455085 100.03408 -4301.853 -2218.2955 - 50 0.005 0.028732021 0.11535308 101.47887 -17203.944 -2218.1258 - 100 0.01 0.0287304 -0.665283 101.73105 3119.2267 -2217.7358 - 150 0.015 0.028729403 -1.8105707 99.629794 1226.3803 -2217.1636 - 200 0.02 0.028731067 -3.224763 94.849715 750.93124 -2216.4566 - 250 0.025 0.028732765 -4.8207784 88.447019 555.16456 -2215.6585 - 300 0.03 0.028728169 -6.5331538 82.697813 452.6101 -2214.8022 - 350 0.035 0.02871707 -8.3059526 80.122838 386.20109 -2213.9158 - 400 0.04 0.028706605 -10.077613 82.389555 336.36118 -2213.03 - 450 0.045 0.028701727 -11.78634 89.823176 297.91478 -2212.1758 - 500 0.05 0.028706691 -13.380919 101.39804 268.32933 -2211.3785 - 550 0.055 0.028714065 -14.824128 115.07511 245.62893 -2210.6569 - 600 0.06 0.028713691 -16.093505 128.58093 229.91054 -2210.0225 - 650 0.065 0.028713232 -17.181217 140.22137 220.57591 -2209.4787 - 700 0.07 0.02871245 -18.113035 149.60156 213.40077 -2209.0127 - 750 0.075 0.028712431 -18.954952 157.56849 206.80962 -2208.5916 - 800 0.08 0.02872489 -19.762756 164.91833 204.24742 -2208.1876 - 850 0.085 0.028733709 -20.538757 171.69348 203.73934 -2207.7993 - 900 0.09 0.028737031 -21.256095 177.71981 200.12043 -2207.4406 - 950 0.095 0.028743446 -21.908156 183.31613 195.23386 -2207.1149 - 1000 0.1 0.028751809 -22.516179 189.01672 191.90401 -2206.8111 -Loop time of 4.3661 on 1 procs for 1000 steps with 500 atoms - -Performance: 1.979 ns/day, 12.128 hours/ns, 229.037 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 2.0467 | 2.0467 | 2.0467 | 0.0 | 46.88 -Neigh | 0.015636 | 0.015636 | 0.015636 | 0.0 | 0.36 -Comm | 0.032918 | 0.032918 | 0.032918 | 0.0 | 0.75 -Output | 0.027737 | 0.027737 | 0.027737 | 0.0 | 0.64 -Modify | 2.2379 | 2.2379 | 2.2379 | 0.0 | 51.26 -Other | | 0.005233 | | | 0.12 - -Nlocal: 500 ave 500 max 500 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1956 ave 1956 max 1956 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 19504 ave 19504 max 19504 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 39008 ave 39008 max 39008 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 39008 -Ave neighs/atom = 78.016 -Neighbor list builds = 9 -Dangerous builds = 0 - - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:04 diff --git a/examples/SPIN/nickel/log.19Nov19.spin.nickel_cubic.g++.4 b/examples/SPIN/nickel/log.19Nov19.spin.nickel_cubic.g++.4 deleted file mode 100644 index 1724ef9df8eafd81bf5397a226c9e2e2c7a010f0..0000000000000000000000000000000000000000 --- a/examples/SPIN/nickel/log.19Nov19.spin.nickel_cubic.g++.4 +++ /dev/null @@ -1,138 +0,0 @@ -LAMMPS (30 Oct 2019) -# fcc nickel in a 3d periodic box - -clear -units metal -atom_style spin - -dimension 3 -boundary p p p - -# necessary for the serial algorithm (sametag) -atom_modify map array - -lattice fcc 3.524 -Lattice spacing in x,y,z = 3.524 3.524 3.524 -region box block 0.0 5.0 0.0 5.0 0.0 5.0 -create_box 1 box -Created orthogonal box = (0 0 0) to (17.62 17.62 17.62) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 500 atoms - create_atoms CPU = 0.000827074 secs - -# setting mass, mag. moments, and interactions for cobalt - -mass 1 58.69 - -set group all spin/random 31 0.63 - 500 settings made for spin/random -#set group all spin 0.63 0.0 0.0 1.0 -velocity all create 100 4928459 rot yes dist gaussian - -pair_style hybrid/overlay eam/alloy spin/exchange 4.0 -pair_coeff * * eam/alloy Ni99.eam.alloy Ni -pair_coeff * * spin/exchange exchange 4.0 0.50 0.2280246862 1.229983475 - -neighbor 0.1 bin -neigh_modify every 10 check yes delay 20 - -fix 1 all precession/spin cubic -0.0001 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 zeeman 0.0 0.0 0.0 1.0 -fix_modify 1 energy yes -fix 2 all langevin/spin 0.0 0.0 21 - -fix 3 all nve/spin lattice moving -timestep 0.0001 - -# compute and output options - -compute out_mag all spin -compute out_pe all pe -compute out_ke all ke -compute out_temp all temp - -variable magz equal c_out_mag[3] -variable magnorm equal c_out_mag[4] -variable emag equal c_out_mag[5] -variable tmag equal c_out_mag[6] - -thermo_style custom step time v_magnorm v_emag temp v_tmag etotal -thermo 50 - -compute outsp all property/atom spx spy spz sp fmx fmy fmz -dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3] c_outsp[4] c_outsp[5] c_outsp[6] c_outsp[7] - -run 1000 -Neighbor list info ... - update every 10 steps, delay 20 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 5.90375 - ghost atom cutoff = 5.90375 - binsize = 2.95187, bins = 6 6 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair eam/alloy, perpetual, half/full from (2) - attributes: half, newton on - pair build: halffull/newton - stencil: none - bin: none - (2) pair spin/exchange, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 7.799 | 7.799 | 7.799 Mbytes -Step Time v_magnorm v_emag Temp v_tmag TotEng - 0 0 0.028733803 0.455085 100.03408 -4301.853 -2218.0905 - 50 0.005 0.028732088 0.2980989 98.74184 -6680.4308 -2218.0904 - 100 0.01 0.02873076 -0.32911738 97.074246 6374.7026 -2218.09 - 150 0.015 0.028730298 -1.3537059 94.073558 1676.9365 -2218.0897 - 200 0.02 0.028733079 -2.6807428 89.419616 934.03305 -2218.0895 - 250 0.025 0.028735725 -4.2256641 84.074249 658.72816 -2218.0893 - 300 0.03 0.028728939 -5.9209085 80.063263 516.58161 -2218.0893 - 350 0.035 0.028716731 -7.6957087 79.36782 424.59625 -2218.0893 - 400 0.04 0.02871114 -9.4720832 83.055773 359.18204 -2218.0893 - 450 0.045 0.02870879 -11.19254 91.28713 312.02076 -2218.0891 - 500 0.05 0.028708873 -12.832707 103.50343 275.92991 -2218.0892 - 550 0.055 0.028710315 -14.370603 118.16778 248.59763 -2218.0893 - 600 0.06 0.028707016 -15.769641 132.83264 231.2886 -2218.089 - 650 0.065 0.028706727 -17.018362 145.39247 222.70304 -2218.0888 - 700 0.07 0.028710482 -18.137792 154.80131 219.85838 -2218.0889 - 750 0.075 0.028705169 -19.130471 160.53663 218.83811 -2218.0892 - 800 0.08 0.028695336 -19.988452 162.95918 215.21456 -2218.089 - 850 0.085 0.028688393 -20.758389 164.33238 210.21496 -2218.0889 - 900 0.09 0.028684101 -21.521505 167.76167 206.14977 -2218.089 - 950 0.095 0.028684705 -22.314351 174.918 201.65878 -2218.0891 - 1000 0.1 0.028691284 -23.080026 184.60192 195.8385 -2218.0893 -Loop time of 2.5947 on 4 procs for 1000 steps with 500 atoms - -Performance: 3.330 ns/day, 7.207 hours/ns, 385.402 timesteps/s -99.9% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.56409 | 0.58139 | 0.605 | 2.0 | 22.41 -Neigh | 0.0039618 | 0.0041058 | 0.0042889 | 0.2 | 0.16 -Comm | 0.095324 | 0.12147 | 0.13892 | 4.8 | 4.68 -Output | 0.008945 | 0.0089793 | 0.0090477 | 0.0 | 0.35 -Modify | 1.8745 | 1.8765 | 1.8795 | 0.1 | 72.32 -Other | | 0.002217 | | | 0.09 - -Nlocal: 125 ave 139 max 112 min -Histogram: 1 0 1 0 0 0 1 0 0 1 -Nghost: 1099 ave 1112 max 1085 min -Histogram: 1 0 0 1 0 0 0 1 0 1 -Neighs: 4876 ave 5385 max 4427 min -Histogram: 1 0 0 1 0 1 0 0 0 1 -FullNghs: 9752 ave 10845 max 8737 min -Histogram: 1 0 1 0 0 0 1 0 0 1 - -Total # of neighbors = 39008 -Ave neighs/atom = 78.016 -Neighbor list builds = 9 -Dangerous builds = 0 - - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:02 diff --git a/examples/SPIN/read_restart/in.spin.read_data b/examples/SPIN/read_restart/in.spin.read_data index e788ecf67eff4657a0cc7270178fd4fd59b0fddf..b2b55a9fcbc7b90669e472c2d2bc39545bf35aa1 100644 --- a/examples/SPIN/read_restart/in.spin.read_data +++ b/examples/SPIN/read_restart/in.spin.read_data @@ -35,8 +35,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo 20 +thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz diff --git a/examples/SPIN/read_restart/in.spin.restart b/examples/SPIN/read_restart/in.spin.restart index ccce25b2544a664875c98ac4e1db1e666fe1eb49..985da65eb484d586f99a9e2cccfe682934087a76 100644 --- a/examples/SPIN/read_restart/in.spin.restart +++ b/examples/SPIN/read_restart/in.spin.restart @@ -39,8 +39,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo 20 +thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz diff --git a/examples/SPIN/read_restart/in.spin.write_restart b/examples/SPIN/read_restart/in.spin.write_restart index c1271010937f37f2051240e4055b831657ef2987..19ab8e6b30abbe76bbcb7caf5b42a45985ef982a 100644 --- a/examples/SPIN/read_restart/in.spin.write_restart +++ b/examples/SPIN/read_restart/in.spin.write_restart @@ -44,7 +44,7 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal +thermo_style custom step time v_magnorm pe v_emag temp etotal thermo 100 compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -52,4 +52,3 @@ dump 100 all custom 1 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[ run 1000 write_restart restart_hcp_cobalt.equil - diff --git a/examples/SPIN/read_restart/log.19Nov19.spin.read_data.g++.1 b/examples/SPIN/read_restart/log.14Apr20.spin.read_data.g++.1 similarity index 51% rename from examples/SPIN/read_restart/log.19Nov19.spin.read_data.g++.1 rename to examples/SPIN/read_restart/log.14Apr20.spin.read_data.g++.1 index d5c38a996701ca7544ee2752824422a97c32a0b0..4a744700f9fd7e350ecb22fdd212dffd494863ca 100644 --- a/examples/SPIN/read_restart/log.19Nov19.spin.read_data.g++.1 +++ b/examples/SPIN/read_restart/log.14Apr20.spin.read_data.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal dimension 3 boundary p p p @@ -12,7 +14,7 @@ read_data Norm_randXY_8x8x32.data 1 by 1 by 1 MPI processor grid reading atoms ... 8192 atoms - read_data CPU = 0.0127251 secs + read_data CPU = 0.022048 secs mass 1 58.93 @@ -41,8 +43,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo 20 +thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -66,33 +68,28 @@ Neighbor list info ... pair build: full/bin/atomonly stencil: full/bin/3d bin: standard -Per MPI rank memory allocation (min/avg/max) = 19.68 | 19.68 | 19.68 Mbytes -Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0177864461018737 -1323.65841279979 1274.398774669 0 -36558.7284872918 - 10 0.001 0.0177864363786085 -1323.66900862123 1270.76616762926 0.0100007025152235 -36558.7231900452 - 20 0.002 0.0177864377251544 -1323.70032173151 1259.90270462032 0.0394803272360477 -36558.7075350597 - 30 0.003 0.0177864511986563 -1323.75117991179 1243.50772254923 0.0871132837928349 -36558.6821082609 - 40 0.004 0.0177864729727686 -1323.81992477224 1223.91535595806 0.150986538096776 -36558.6477386289 - 50 0.005 0.017786495620418 -1323.90456907402 1203.45497846157 0.22877054554493 -36558.6054195788 - 60 0.006 0.0177865119365897 -1324.00293472823 1183.95496070422 0.317876389336898 -36558.556239967 - 70 0.007 0.0177865186121948 -1324.11277680481 1166.52445270059 0.415601818818485 -36558.5013220755 - 80 0.008 0.0177865171615599 -1324.23190710734 1151.59958937508 0.519276751090729 -36558.4417598279 - 90 0.009 0.0177865117923882 -1324.35831839963 1139.14485136813 0.626407059487507 -36558.3785566998 - 100 0.01 0.0177865063215865 -1324.49029089774 1128.88117273962 0.734797362055872 -36558.3125725035 -Loop time of 14.8985 on 1 procs for 100 steps with 8192 atoms - -Performance: 0.058 ns/day, 413.847 hours/ns, 6.712 timesteps/s -99.6% CPU use with 1 MPI tasks x no OpenMP threads +Per MPI rank memory allocation (min/avg/max) = 19.99 | 19.99 | 19.99 Mbytes +Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng + 0 0 0.0177864461018737 -36558.7284872918 -661.829206399896 1274.398774669 0 -36558.7284872918 + 20 0.002 0.0177864377256184 -36558.7389378387 -661.839683504936 1259.94171978912 0.00986992693139795 -36558.7284878577 + 40 0.004 0.017786472977471 -36558.7684525639 -661.869582914286 1224.05894016152 0.0377451568363827 -36558.7284891299 + 60 0.006 0.0177865119543331 -36558.8126238543 -661.915330492427 1184.24369688088 0.0794631076347515 -36558.728490712 + 80 0.008 0.0177865172048059 -36558.8659242367 -661.972562482488 1152.05459929593 0.129803482511904 -36558.7284922233 + 100 0.01 0.0177865063752424 -36558.9229549739 -662.037138807935 1129.51470280479 0.183667498513087 -36558.7284933644 +Loop time of 14.3276 on 1 procs for 100 steps with 8192 atoms + +Performance: 0.060 ns/day, 397.988 hours/ns, 6.980 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.5996 | 4.5996 | 4.5996 | 0.0 | 30.87 -Neigh | 3.6 | 3.6 | 3.6 | 0.0 | 24.16 -Comm | 0.057512 | 0.057512 | 0.057512 | 0.0 | 0.39 -Output | 2.4463 | 2.4463 | 2.4463 | 0.0 | 16.42 -Modify | 4.1766 | 4.1766 | 4.1766 | 0.0 | 28.03 -Other | | 0.01854 | | | 0.12 +Pair | 4.0409 | 4.0409 | 4.0409 | 0.0 | 28.20 +Neigh | 3.6219 | 3.6219 | 3.6219 | 0.0 | 25.28 +Comm | 0.055327 | 0.055327 | 0.055327 | 0.0 | 0.39 +Output | 2.4259 | 2.4259 | 2.4259 | 0.0 | 16.93 +Modify | 4.1688 | 4.1688 | 4.1688 | 0.0 | 29.10 +Other | | 0.01477 | | | 0.10 Nlocal: 8192 ave 8192 max 8192 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -110,4 +107,4 @@ Dangerous builds not checked Please see the log.cite file for references relevant to this simulation -Total wall time: 0:00:15 +Total wall time: 0:00:14 diff --git a/examples/SPIN/read_restart/log.19Nov19.spin.read_data.g++.4 b/examples/SPIN/read_restart/log.14Apr20.spin.read_data.g++.4 similarity index 51% rename from examples/SPIN/read_restart/log.19Nov19.spin.read_data.g++.4 rename to examples/SPIN/read_restart/log.14Apr20.spin.read_data.g++.4 index decd7f66de713e60b53f838854d2259bee0d94ea..6ce648abf35dabe4b4f685064d4e1e4337ddd072 100644 --- a/examples/SPIN/read_restart/log.19Nov19.spin.read_data.g++.4 +++ b/examples/SPIN/read_restart/log.14Apr20.spin.read_data.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal dimension 3 boundary p p p @@ -12,7 +14,7 @@ read_data Norm_randXY_8x8x32.data 1 by 1 by 4 MPI processor grid reading atoms ... 8192 atoms - read_data CPU = 0.0103889 secs + read_data CPU = 0.013634 secs mass 1 58.93 @@ -41,8 +43,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo 20 +thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -66,33 +68,28 @@ Neighbor list info ... pair build: full/bin/atomonly stencil: full/bin/3d bin: standard -Per MPI rank memory allocation (min/avg/max) = 8.422 | 8.508 | 8.751 Mbytes -Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0177864461018739 -1323.65841279979 1274.398774669 0 -37220.5576936996 - 10 0.001 0.0177864050983603 -1323.66900862096 1270.76618998865 0.0100007022583634 -37220.5576943555 - 20 0.002 0.0177863936833753 -1323.70032172864 1259.90276925185 0.0394803245313843 -37220.5576959254 - 30 0.003 0.0177864120892274 -1323.75117990111 1243.50783331745 0.087113273744231 -37220.5576982173 - 40 0.004 0.0177864533855652 -1323.8199247464 1223.91551103958 0.150986513868405 -37220.557701015 - 50 0.005 0.0177865078997919 -1323.90456902433 1203.45516787752 0.228770499151177 -37220.5577041159 - 60 0.006 0.0177865576955448 -1324.0029346455 1183.95517338662 0.317876312538184 -37220.5577073314 - 70 0.007 0.0177865860816348 -1324.11277667948 1166.52467969539 0.415601703342581 -37220.5577104775 - 80 0.008 0.0177865881669081 -1324.23190693081 1151.59982868413 0.519276589926842 -37220.557713381 - 90 0.009 0.0177865780982769 -1324.35831816525 1139.14509878533 0.626406847905203 -37220.557715901 - 100 0.01 0.017786564605084 -1324.49029060173 1128.88143013641 0.734797098519806 -37220.557717952 -Loop time of 4.32342 on 4 procs for 100 steps with 8192 atoms - -Performance: 0.200 ns/day, 120.095 hours/ns, 23.130 timesteps/s -99.8% CPU use with 4 MPI tasks x no OpenMP threads +Per MPI rank memory allocation (min/avg/max) = 8.961 | 9.047 | 9.29 Mbytes +Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng + 0 0 0.0177864461018739 -36558.7284872997 -661.829206399894 1274.398774669 0 -36558.7284872997 + 20 0.002 0.0177863981273124 -36558.7389378386 -661.839683504262 1259.94177798388 0.00986992629371963 -36558.7284878582 + 40 0.004 0.0177864622701489 -36558.7684525586 -661.869582908114 1224.05908191331 0.0377451510479599 -36558.7284891308 + 60 0.006 0.0177865625037858 -36558.8126238326 -661.915330472361 1184.24389640891 0.0794630890177406 -36558.72849071 + 80 0.008 0.0177865898045059 -36558.8659241943 -661.972562439245 1152.05483020781 0.129803443061299 -36558.7284922226 + 100 0.01 0.017786565190115 -36558.9229549058 -662.037138735432 1129.51495182843 0.183667434061771 -36558.7284933646 +Loop time of 4.35911 on 4 procs for 100 steps with 8192 atoms + +Performance: 0.198 ns/day, 121.086 hours/ns, 22.940 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 1.185 | 1.1925 | 1.1991 | 0.5 | 27.58 -Neigh | 0.93459 | 0.93934 | 0.94983 | 0.6 | 21.73 -Comm | 0.042462 | 0.059373 | 0.069249 | 4.1 | 1.37 -Output | 0.61823 | 0.63273 | 0.64528 | 1.3 | 14.63 -Modify | 1.4827 | 1.4955 | 1.5099 | 0.8 | 34.59 -Other | | 0.003968 | | | 0.09 +Pair | 1.0924 | 1.1043 | 1.1117 | 0.7 | 25.33 +Neigh | 0.93575 | 0.94926 | 0.98325 | 2.0 | 21.78 +Comm | 0.044663 | 0.088288 | 0.11128 | 8.7 | 2.03 +Output | 0.64199 | 0.6587 | 0.67226 | 1.4 | 15.11 +Modify | 1.5412 | 1.5535 | 1.5706 | 0.9 | 35.64 +Other | | 0.005046 | | | 0.12 Nlocal: 2048 ave 2061 max 2035 min Histogram: 1 0 0 1 0 0 1 0 0 1 diff --git a/examples/SPIN/read_restart/log.19Nov19.spin.restart.g++.1 b/examples/SPIN/read_restart/log.14Apr20.spin.restart.g++.1 similarity index 53% rename from examples/SPIN/read_restart/log.19Nov19.spin.restart.g++.1 rename to examples/SPIN/read_restart/log.14Apr20.spin.restart.g++.1 index c7544dedfad129b06f2f0a1bcdc9ee6454028fb4..652f7da4742f166c05d29cf6b2f1167886da1828 100644 --- a/examples/SPIN/read_restart/log.19Nov19.spin.restart.g++.1 +++ b/examples/SPIN/read_restart/log.14Apr20.spin.restart.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # start a spin-lattice simulation from a data file units metal atom_style spin @@ -10,13 +12,13 @@ boundary p p p atom_modify map array read_restart restart_hcp_cobalt.equil -WARNING: Restart file used different # of processors: 4 vs. 1 (../read_restart.cpp:742) +WARNING: Restart file used different # of processors: 4 vs. 1 (../read_restart.cpp:736) restoring atom style spin from restart orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) 1 by 1 by 1 MPI processor grid restoring pair style spin/exchange from restart 500 atoms - read_restart CPU = 0.000396967 secs + read_restart CPU = 0.00179696 secs # setting mass, mag. moments, and interactions @@ -47,8 +49,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo 20 +thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -72,33 +74,28 @@ Neighbor list info ... pair build: full/bin/atomonly stencil: full/bin/3d bin: standard -Per MPI rank memory allocation (min/avg/max) = 6.816 | 6.816 | 6.816 Mbytes -Step Time v_magnorm v_emag v_tmag Temp TotEng - 1000 0 0.108317262557656 -10.7649197733649 2538.4247868621 0 -2200.38241212222 - 1010 0.001 0.108317281393701 -10.7743543303502 2527.22692799144 0.146167392153018 -2200.3776953858 - 1020 0.002 0.108317318482233 -10.8022550516195 2509.47863584151 0.577304300153637 -2200.36374625815 - 1030 0.003 0.108317366763426 -10.8476659807571 2487.5614649682 1.27529086243277 -2200.34104256596 - 1040 0.004 0.108317415532953 -10.9092708333549 2463.97963921611 2.21443906326453 -2200.31024227618 - 1050 0.005 0.108317453851058 -10.98553406179 2440.70473642157 3.36396898978859 -2200.27211302201 - 1060 0.006 0.108317473584086 -11.0748008072977 2418.66477599297 4.68991434259399 -2200.22748216359 - 1070 0.007 0.108317471632913 -11.175325501803 2397.59274785581 6.15596240129541 -2200.17722244953 - 1080 0.008 0.108317450667394 -11.2852665400894 2376.32871275528 7.7237909750654 -2200.12225459883 - 1090 0.009 0.108317417687893 -11.4027246787047 2353.52646917989 9.35409156720424 -2200.06352807392 - 1100 0.01 0.108317381194814 -11.52585602487 2328.41541723561 11.0087303030003 -2200.0019646458 -Loop time of 0.964681 on 1 procs for 100 steps with 500 atoms - -Performance: 0.896 ns/day, 26.797 hours/ns, 103.661 timesteps/s -100.0% CPU use with 1 MPI tasks x no OpenMP threads +Per MPI rank memory allocation (min/avg/max) = 7.422 | 7.422 | 7.422 Mbytes +Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng + 1000 0 0.108317262557656 -2200.38241212222 -5.38245988668244 2538.4247868621 0 -2200.38241212222 + 1020 0.002 0.108317318495042 -2200.39172132133 -5.39179331134703 2513.42968070374 0.144319963844279 -2200.38241256643 + 1040 0.004 0.108317415558744 -2200.41811580407 -5.418541526637 2478.87571728648 0.553516420254567 -2200.38241354532 + 1060 0.006 0.108317473592946 -2200.45801216332 -5.45990062771403 2449.77257658726 1.17203792179707 -2200.38241476526 + 1080 0.008 0.108317450745396 -2200.5068824087 -5.51245983698347 2427.25022669715 1.92968606059505 -2200.3824160902 + 1100 0.01 0.108317381572202 -2200.55976028827 -5.57250071024394 2400.86131889957 2.74946927499959 -2200.38241728649 +Loop time of 0.954493 on 1 procs for 100 steps with 500 atoms + +Performance: 0.905 ns/day, 26.514 hours/ns, 104.768 timesteps/s +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.29842 | 0.29842 | 0.29842 | 0.0 | 30.93 -Neigh | 0.25359 | 0.25359 | 0.25359 | 0.0 | 26.29 -Comm | 0.0069926 | 0.0069926 | 0.0069926 | 0.0 | 0.72 -Output | 0.14398 | 0.14398 | 0.14398 | 0.0 | 14.93 -Modify | 0.26045 | 0.26045 | 0.26045 | 0.0 | 27.00 -Other | | 0.001249 | | | 0.13 +Pair | 0.27043 | 0.27043 | 0.27043 | 0.0 | 28.33 +Neigh | 0.26148 | 0.26148 | 0.26148 | 0.0 | 27.40 +Comm | 0.0071123 | 0.0071123 | 0.0071123 | 0.0 | 0.75 +Output | 0.14169 | 0.14169 | 0.14169 | 0.0 | 14.84 +Modify | 0.2726 | 0.2726 | 0.2726 | 0.0 | 28.56 +Other | | 0.001178 | | | 0.12 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/read_restart/log.19Nov19.spin.restart.g++.4 b/examples/SPIN/read_restart/log.14Apr20.spin.restart.g++.4 similarity index 53% rename from examples/SPIN/read_restart/log.19Nov19.spin.restart.g++.4 rename to examples/SPIN/read_restart/log.14Apr20.spin.restart.g++.4 index 6443d341cd06049525e3a8f1e9a46f09265bb24f..c22c672f6b82fdd030f3a971bc4161cdfc0562e8 100644 --- a/examples/SPIN/read_restart/log.19Nov19.spin.restart.g++.4 +++ b/examples/SPIN/read_restart/log.14Apr20.spin.restart.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # start a spin-lattice simulation from a data file units metal atom_style spin @@ -15,7 +17,7 @@ read_restart restart_hcp_cobalt.equil 1 by 2 by 2 MPI processor grid restoring pair style spin/exchange from restart 500 atoms - read_restart CPU = 0.000922918 secs + read_restart CPU = 0.00173593 secs # setting mass, mag. moments, and interactions @@ -46,8 +48,8 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo 10 -thermo_style custom step time v_magnorm v_emag v_tmag temp etotal +thermo 20 +thermo_style custom step time v_magnorm pe v_emag v_tmag temp etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -71,33 +73,28 @@ Neighbor list info ... pair build: full/bin/atomonly stencil: full/bin/3d bin: standard -Per MPI rank memory allocation (min/avg/max) = 6.704 | 6.704 | 6.704 Mbytes -Step Time v_magnorm v_emag v_tmag Temp TotEng - 1000 0 0.108317262557656 -10.7649197733649 2538.4247868621 0 -2205.7648720085 - 1010 0.001 0.108317290362529 -10.7743543303489 2527.22680531097 0.146167392137698 -2205.76487255096 - 1020 0.002 0.108317316207642 -10.8022550521284 2509.47840782645 0.577304308061779 -2205.76487378396 - 1030 0.003 0.108317335980455 -10.8476659832667 2487.56119588937 1.27529090130452 -2205.76487555634 - 1040 0.004 0.108317347902639 -10.9092708400684 2463.97936529674 2.21443916694928 -2205.76487769286 - 1050 0.005 0.108317349786635 -10.9855340757384 2440.7044253165 3.36396920446814 -2205.76488005291 - 1060 0.006 0.108317342445881 -11.0748008315013 2418.66438763214 4.68991471343994 -2205.76488256723 - 1070 0.007 0.10831733355314 -11.1753255362286 2397.59228728929 6.15596292529133 -2205.76488520046 - 1080 0.008 0.108317320750099 -11.2852665775656 2376.32820919279 7.7237915384778 -2205.76488786888 - 1090 0.009 0.108317304079233 -11.402724701646 2353.52588586648 9.35409189724323 -2205.7648904133 - 1100 0.01 0.108317284409678 -11.5258560062539 2328.41472376239 11.0087299868288 -2205.76489265829 -Loop time of 0.410707 on 4 procs for 100 steps with 500 atoms - -Performance: 2.104 ns/day, 11.409 hours/ns, 243.483 timesteps/s -99.7% CPU use with 4 MPI tasks x no OpenMP threads +Per MPI rank memory allocation (min/avg/max) = 7.324 | 7.324 | 7.324 Mbytes +Step Time v_magnorm PotEng v_emag v_tmag Temp TotEng + 1000 0 0.108317262557656 -2200.38241212182 -5.38245988668244 2538.4247868621 0 -2200.38241212182 + 1020 0.002 0.108317316216432 -2200.39172132147 -5.39179331147409 2513.42945241007 0.14431996581917 -2200.38241256644 + 1040 0.004 0.108317347939802 -2200.41811580574 -5.41854152831072 2478.87544274124 0.553516446104432 -2200.38241354532 + 1060 0.006 0.108317342440309 -2200.45801216927 -5.45990063373049 2449.77218633122 1.17203801398165 -2200.38241476526 + 1080 0.008 0.108317320345284 -2200.50688241767 -5.51245984623572 2427.2497145488 1.92968619968329 -2200.3824160902 + 1100 0.01 0.10831728372281 -2200.55976028296 -5.57250070536486 2400.86059511731 2.74946919265255 -2200.38241728649 +Loop time of 0.405615 on 4 procs for 100 steps with 500 atoms + +Performance: 2.130 ns/day, 11.267 hours/ns, 246.539 timesteps/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.083043 | 0.083714 | 0.084202 | 0.1 | 20.38 -Neigh | 0.063158 | 0.064429 | 0.065314 | 0.3 | 15.69 -Comm | 0.012237 | 0.013588 | 0.014798 | 0.8 | 3.31 -Output | 0.039088 | 0.040653 | 0.042176 | 0.6 | 9.90 -Modify | 0.20645 | 0.20795 | 0.20945 | 0.2 | 50.63 -Other | | 0.0003724 | | | 0.09 +Pair | 0.075661 | 0.076798 | 0.077343 | 0.2 | 18.93 +Neigh | 0.063154 | 0.064974 | 0.066991 | 0.5 | 16.02 +Comm | 0.012538 | 0.013787 | 0.015151 | 0.8 | 3.40 +Output | 0.039155 | 0.040842 | 0.042502 | 0.6 | 10.07 +Modify | 0.20709 | 0.20883 | 0.21036 | 0.3 | 51.49 +Other | | 0.0003826 | | | 0.09 Nlocal: 125 ave 127 max 122 min Histogram: 1 0 0 0 1 0 0 0 0 2 diff --git a/examples/SPIN/read_restart/log.19Nov19.spin.write_restart.g++.1 b/examples/SPIN/read_restart/log.14Apr20.spin.write_restart.g++.1 similarity index 59% rename from examples/SPIN/read_restart/log.19Nov19.spin.write_restart.g++.1 rename to examples/SPIN/read_restart/log.14Apr20.spin.write_restart.g++.1 index 9dbe1a354805b687d5f66aaddb5f66027fa36a24..8ad14c55c05d2d4bf43f751df6c75bc175bdf745 100644 --- a/examples/SPIN/read_restart/log.19Nov19.spin.write_restart.g++.1 +++ b/examples/SPIN/read_restart/log.14Apr20.spin.write_restart.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # fcc cobalt in a 3d periodic box units metal @@ -18,7 +20,7 @@ Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 500 atoms - create_atoms CPU = 0.000552893 secs + create_atoms CPU = 0.000952005 secs # setting mass, mag. moments, and interactions for cobalt @@ -51,7 +53,7 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal +thermo_style custom step time v_magnorm pe v_emag temp etotal thermo 100 compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -71,32 +73,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 6.947 | 6.947 | 6.947 Mbytes -Step Time v_magnorm v_emag Temp TotEng - 0 0 0.076558814 1.7982359 0 0.89911794 - 100 0.01 0.077628154 0.73387834 0 0.36693917 - 200 0.02 0.076678996 -0.4048463 0 -0.20242315 - 300 0.03 0.079174837 -1.3519103 0 -0.67595514 - 400 0.04 0.085031632 -3.0345702 0 -1.5172851 - 500 0.05 0.08702747 -4.0853256 0 -2.0426628 - 600 0.06 0.087066482 -5.259549 0 -2.6297745 - 700 0.07 0.089788894 -6.629076 0 -3.314538 - 800 0.08 0.091699611 -8.0574087 0 -4.0287043 - 900 0.09 0.090038899 -9.2012019 0 -4.600601 - 1000 0.1 0.093257309 -10.470452 0 -5.2352261 -Loop time of 3.37852 on 1 procs for 1000 steps with 500 atoms - -Performance: 2.557 ns/day, 9.385 hours/ns, 295.987 timesteps/s -99.6% CPU use with 1 MPI tasks x no OpenMP threads +Step Time v_magnorm PotEng v_emag Temp TotEng + 0 0 0.076558814 0.89911794 0.89911794 0 0.89911794 + 100 0.01 0.077628154 0.36693917 0.36693917 0 0.36693917 + 200 0.02 0.076678996 -0.20242315 -0.20242315 0 -0.20242315 + 300 0.03 0.079174837 -0.67595514 -0.67595514 0 -0.67595514 + 400 0.04 0.085031632 -1.5172851 -1.5172851 0 -1.5172851 + 500 0.05 0.08702747 -2.0426628 -2.0426628 0 -2.0426628 + 600 0.06 0.087066482 -2.6297745 -2.6297745 0 -2.6297745 + 700 0.07 0.089788894 -3.314538 -3.314538 0 -3.314538 + 800 0.08 0.091699611 -4.0287043 -4.0287043 0 -4.0287043 + 900 0.09 0.090038899 -4.600601 -4.600601 0 -4.600601 + 1000 0.1 0.093257309 -5.2352261 -5.2352261 0 -5.2352261 +Loop time of 3.30071 on 1 procs for 1000 steps with 500 atoms + +Performance: 2.618 ns/day, 9.169 hours/ns, 302.965 timesteps/s +99.3% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.45808 | 0.45808 | 0.45808 | 0.0 | 13.56 +Pair | 0.3844 | 0.3844 | 0.3844 | 0.0 | 11.65 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.019707 | 0.019707 | 0.019707 | 0.0 | 0.58 -Output | 1.3865 | 1.3865 | 1.3865 | 0.0 | 41.04 -Modify | 1.5106 | 1.5106 | 1.5106 | 0.0 | 44.71 -Other | | 0.003624 | | | 0.11 +Comm | 0.019863 | 0.019863 | 0.019863 | 0.0 | 0.60 +Output | 1.3844 | 1.3844 | 1.3844 | 0.0 | 41.94 +Modify | 1.5084 | 1.5084 | 1.5084 | 0.0 | 45.70 +Other | | 0.00367 | | | 0.11 Nlocal: 500 ave 500 max 500 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -113,7 +115,6 @@ Neighbor list builds = 0 Dangerous builds = 0 write_restart restart_hcp_cobalt.equil - Please see the log.cite file for references relevant to this simulation Total wall time: 0:00:03 diff --git a/examples/SPIN/read_restart/log.19Nov19.spin.write_restart.g++.4 b/examples/SPIN/read_restart/log.14Apr20.spin.write_restart.g++.4 similarity index 59% rename from examples/SPIN/read_restart/log.19Nov19.spin.write_restart.g++.4 rename to examples/SPIN/read_restart/log.14Apr20.spin.write_restart.g++.4 index cb9827460322a5edfb9b537bd771a6322255163b..c0c1ec130c9f0ca42f92fac4fd3a9f0c4cc61dff 100644 --- a/examples/SPIN/read_restart/log.19Nov19.spin.write_restart.g++.4 +++ b/examples/SPIN/read_restart/log.14Apr20.spin.write_restart.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # fcc cobalt in a 3d periodic box units metal @@ -18,7 +20,7 @@ Created orthogonal box = (0 0 0) to (12.5355 21.7121 20.4704) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 500 atoms - create_atoms CPU = 0.000751972 secs + create_atoms CPU = 0.000663042 secs # setting mass, mag. moments, and interactions for cobalt @@ -51,7 +53,7 @@ variable magnorm equal c_out_mag[4] variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] -thermo_style custom step time v_magnorm v_emag temp etotal +thermo_style custom step time v_magnorm pe v_emag temp etotal thermo 100 compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -71,32 +73,32 @@ Neighbor list info ... stencil: full/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 6.868 | 6.868 | 6.868 Mbytes -Step Time v_magnorm v_emag Temp TotEng - 0 0 0.076558814 1.7982359 0 1.7982359 - 100 0.01 0.078299981 0.88259584 0 0.88259584 - 200 0.02 0.081260508 -0.43484722 0 -0.43484722 - 300 0.03 0.081195603 -1.7408209 0 -1.7408209 - 400 0.04 0.087298495 -3.4139038 0 -3.4139038 - 500 0.05 0.087663924 -4.3766089 0 -4.3766089 - 600 0.06 0.091713683 -5.8534921 0 -5.8534921 - 700 0.07 0.093779119 -6.706628 0 -6.706628 - 800 0.08 0.097960611 -7.8688568 0 -7.8688568 - 900 0.09 0.10193463 -9.5888008 0 -9.5888008 - 1000 0.1 0.10831726 -10.76492 0 -10.76492 -Loop time of 1.70473 on 4 procs for 1000 steps with 500 atoms - -Performance: 5.068 ns/day, 4.735 hours/ns, 586.602 timesteps/s -99.6% CPU use with 4 MPI tasks x no OpenMP threads +Step Time v_magnorm PotEng v_emag Temp TotEng + 0 0 0.076558814 0.89911794 0.89911794 0 0.89911794 + 100 0.01 0.078299981 0.44129792 0.44129792 0 0.44129792 + 200 0.02 0.081260508 -0.21742361 -0.21742361 0 -0.21742361 + 300 0.03 0.081195603 -0.87041046 -0.87041046 0 -0.87041046 + 400 0.04 0.087298495 -1.7069519 -1.7069519 0 -1.7069519 + 500 0.05 0.087663924 -2.1883045 -2.1883045 0 -2.1883045 + 600 0.06 0.091713683 -2.9267461 -2.9267461 0 -2.9267461 + 700 0.07 0.093779119 -3.353314 -3.353314 0 -3.353314 + 800 0.08 0.097960611 -3.9344284 -3.9344284 0 -3.9344284 + 900 0.09 0.10193463 -4.7944004 -4.7944004 0 -4.7944004 + 1000 0.1 0.10831726 -5.3824599 -5.3824599 0 -5.3824599 +Loop time of 1.7839 on 4 procs for 1000 steps with 500 atoms + +Performance: 4.843 ns/day, 4.955 hours/ns, 560.569 timesteps/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.11636 | 0.11927 | 0.12069 | 0.5 | 7.00 +Pair | 0.10068 | 0.10749 | 0.11461 | 1.5 | 6.03 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.049208 | 0.052445 | 0.057424 | 1.4 | 3.08 -Output | 0.38579 | 0.40345 | 0.4199 | 2.0 | 23.67 -Modify | 1.1138 | 1.1282 | 1.1436 | 1.1 | 66.18 -Other | | 0.001322 | | | 0.08 +Comm | 0.052378 | 0.062171 | 0.07177 | 2.8 | 3.49 +Output | 0.4054 | 0.42334 | 0.44025 | 2.0 | 23.73 +Modify | 1.174 | 1.1893 | 1.2043 | 1.1 | 66.67 +Other | | 0.001558 | | | 0.09 Nlocal: 125 ave 125 max 125 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -113,7 +115,6 @@ Neighbor list builds = 0 Dangerous builds = 0 write_restart restart_hcp_cobalt.equil - Please see the log.cite file for references relevant to this simulation Total wall time: 0:00:01 diff --git a/examples/SPIN/read_restart/restart_hcp_cobalt.equil b/examples/SPIN/read_restart/restart_hcp_cobalt.equil new file mode 100644 index 0000000000000000000000000000000000000000..d7f92285db0bd7e3b4c36fcdf88d53180f491962 Binary files /dev/null and b/examples/SPIN/read_restart/restart_hcp_cobalt.equil differ diff --git a/examples/SPIN/run_spin_examples.sh b/examples/SPIN/run_spin_examples.sh index a71da82a04a8a5e03598363a7ca3faf27cffb844..432d70c2ba536bab6d0287ecfc6ea6bfce68e5a5 100755 --- a/examples/SPIN/run_spin_examples.sh +++ b/examples/SPIN/run_spin_examples.sh @@ -1,6 +1,6 @@ #!/bin/bash -DATE=19Nov19 +DATE=14Apr20 # bfo cd bfo/ diff --git a/examples/SPIN/run_spin_examples_serial.sh b/examples/SPIN/run_spin_examples_serial.sh new file mode 100755 index 0000000000000000000000000000000000000000..f367dfd8f494a63dc31cd19e141ef08af22d9ae1 --- /dev/null +++ b/examples/SPIN/run_spin_examples_serial.sh @@ -0,0 +1,120 @@ +#!/bin/bash + +DATE=21Fev20 + +# bfo +cd bfo/ +../../../src/lmp_serial -in in.spin.bfo +cp log.lammps log.${DATE}.spin.bfo.g++.1 +../../../src/lmp_serial -in in.spin.bfo +cp log.lammps log.${DATE}.spin.bfo.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# fcc cobalt +cd cobalt_fcc/ +../../../src/lmp_serial -in in.spin.cobalt_fcc +cp log.lammps log.${DATE}.spin.cobalt_fcc.g++.1 +../../../src/lmp_serial -in in.spin.cobalt_fcc +cp log.lammps log.${DATE}.spin.cobalt_fcc.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# hcp cobalt +cd cobalt_hcp/ +../../../src/lmp_serial -in in.spin.cobalt_hcp +cp log.lammps log.${DATE}.spin.cobalt_hcp.g++.1 +../../../src/lmp_serial -in in.spin.cobalt_hcp +cp log.lammps log.${DATE}.spin.cobalt_hcp.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# dipole spin +cd dipole_spin/ +../../../src/lmp_serial -in in.spin.iron_dipole_cut +cp log.lammps log.${DATE}.spin.iron_dipole_cut.g++.1 +../../../src/lmp_serial -in in.spin.iron_dipole_cut +cp log.lammps log.${DATE}.spin.iron_dipole_cut.g++.4 +../../../src/lmp_serial -in in.spin.iron_dipole_ewald +cp log.lammps log.${DATE}.spin.iron_dipole_ewald.g++.1 +../../../src/lmp_serial -in in.spin.iron_dipole_ewald +cp log.lammps log.${DATE}.spin.iron_dipole_ewald.g++.4 +../../../src/lmp_serial -in in.spin.iron_dipole_pppm +cp log.lammps log.${DATE}.spin.iron_dipole_pppm.g++.1 +../../../src/lmp_serial -in in.spin.iron_dipole_pppm +cp log.lammps log.${DATE}.spin.iron_dipole_pppm.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# bcc iron +cd iron/ +../../../src/lmp_serial -in in.spin.iron +cp log.lammps log.${DATE}.spin.iron.g++.1 +../../../src/lmp_serial -in in.spin.iron +cp log.lammps log.${DATE}.spin.iron.g++.4 +../../../src/lmp_serial -in in.spin.iron_cubic +cp log.lammps log.${DATE}.spin.iron_cubic.g++.1 +../../../src/lmp_serial -in in.spin.iron_cubic +cp log.lammps log.${DATE}.spin.iron_cubic.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# fcc nickel +cd nickel/ +../../../src/lmp_serial -in in.spin.nickel +cp log.lammps log.${DATE}.spin.nickel.g++.1 +../../../src/lmp_serial -in in.spin.nickel +cp log.lammps log.${DATE}.spin.nickel.g++.4 +../../../src/lmp_serial -in in.spin.nickel_cubic +cp log.lammps log.${DATE}.spin.nickel_cubic.g++.1 +../../../src/lmp_serial -in in.spin.nickel_cubic +cp log.lammps log.${DATE}.spin.nickel_cubic.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# read restart +cd read_restart/ +../../../src/lmp_serial -in in.spin.write_restart +cp log.lammps log.${DATE}.spin.write_restart.g++.1 +../../../src/lmp_serial -in in.spin.write_restart +cp log.lammps log.${DATE}.spin.write_restart.g++.4 +../../../src/lmp_serial -in in.spin.restart +cp log.lammps log.${DATE}.spin.restart.g++.1 +../../../src/lmp_serial -in in.spin.restart +cp log.lammps log.${DATE}.spin.restart.g++.4 +../../../src/lmp_serial -in in.spin.read_data +cp log.lammps log.${DATE}.spin.read_data.g++.1 +../../../src/lmp_serial -in in.spin.read_data +cp log.lammps log.${DATE}.spin.read_data.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# setforce +cd setforce_spin/ +../../../src/lmp_serial -in in.spin.setforce +cp log.lammps log.${DATE}.spin.setforce.g++.1 +../../../src/lmp_serial -in in.spin.setforce +cp log.lammps log.${DATE}.spin.setforce.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. + +# spin minimizers +cd spinmin/ +../../../src/lmp_serial -in in.spin.bfo_min +cp log.lammps log.${DATE}.spin.bfo_min.g++.1 +../../../src/lmp_serial -in in.spin.bfo_min +cp log.lammps log.${DATE}.spin.bfo_min.g++.4 +../../../src/lmp_serial -in in.spin.bfo_min_cg +cp log.lammps log.${DATE}.spin.bfo_min_cg.g++.1 +../../../src/lmp_serial -in in.spin.bfo_min_cg +cp log.lammps log.${DATE}.spin.bfo_min_cg.g++.4 +../../../src/lmp_serial -in in.spin.bfo_min_lbfgs +cp log.lammps log.${DATE}.spin.bfo_min_lbfgs.g++.1 +../../../src/lmp_serial -in in.spin.bfo_min_lbfgs +cp log.lammps log.${DATE}.spin.bfo_min_lbfgs.g++.4 +../../../src/lmp_serial -in in.spin.iron_min +cp log.lammps log.${DATE}.spin.iron_min.g++.1 +../../../src/lmp_serial -in in.spin.iron_min +cp log.lammps log.${DATE}.spin.iron_min.g++.4 +rm log.lammps log.cite dump*.lammpstrj +cd .. diff --git a/examples/SPIN/setforce_spin/in.spin.setforce b/examples/SPIN/setforce_spin/in.spin.setforce index 0d65955a296b592f7403c3f2537cc9abcd5ef5b6..4edf70eb52d0f963a813be6bec297632923ca4f1 100644 --- a/examples/SPIN/setforce_spin/in.spin.setforce +++ b/examples/SPIN/setforce_spin/in.spin.setforce @@ -48,7 +48,7 @@ variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] thermo 100 -thermo_style custom step time v_magx v_magz v_magnorm v_tmag etotal +thermo_style custom step time v_magx v_magz v_magnorm v_tmag pe v_emag etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz diff --git a/examples/SPIN/setforce_spin/log.19Nov19.spin.setforce.g++.1 b/examples/SPIN/setforce_spin/log.14Apr20.spin.setforce.g++.1 similarity index 79% rename from examples/SPIN/setforce_spin/log.19Nov19.spin.setforce.g++.1 rename to examples/SPIN/setforce_spin/log.14Apr20.spin.setforce.g++.1 index ed5c037feb9f11dbb919924743cb96ee29ebfa10..ef5e86b0b3746acca22626e592bbfd88ad6cc830 100644 --- a/examples/SPIN/setforce_spin/log.19Nov19.spin.setforce.g++.1 +++ b/examples/SPIN/setforce_spin/log.14Apr20.spin.setforce.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal dimension 3 @@ -18,10 +20,10 @@ region reg1 block 0.0 10.0 0.0 5.0 0.0 1.0 region reg2 block 0.0 10.0 6.0 10.0 0.0 1.0 create_atoms 1 region reg1 Created 120 atoms - create_atoms CPU = 0.000998974 secs + create_atoms CPU = 0.000992775 secs create_atoms 2 region reg2 Created 80 atoms - create_atoms CPU = 4.1008e-05 secs + create_atoms CPU = 0.000215054 secs # setting mass, mag. moments, and interactions for bcc iron @@ -59,7 +61,7 @@ variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] thermo 100 -thermo_style custom step time v_magx v_magz v_magnorm v_tmag etotal +thermo_style custom step time v_magx v_magz v_magnorm v_tmag pe v_emag etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -68,7 +70,7 @@ dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[ min_style spin min_modify alpha_damp 1.0 discrete_factor 20.0 minimize 1.0e-16 1.0e-16 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -87,21 +89,21 @@ Neighbor list info ... stencil: none bin: none Per MPI rank memory allocation (min/avg/max) = 7.215 | 7.215 | 7.215 Mbytes -Step Time v_magx v_magz v_magnorm v_tmag TotEng - 0 0 0.000143282585570239 0.615515043943419 0.615726279597251 24.9364200982478 0.121881906963737 - 100 0.01 0.000616167502203097 0.594467364025194 0.594498630048783 0.00188964439583802 0.0371335982020527 - 200 0.02 0.000498981016106215 0.595175581059792 0.595218717456538 0.000158614984300385 0.036877233648055 - 300 0.03 0.000211899815837572 0.595357874794342 0.595402442288391 1.44454891242177e-05 0.0368548794182375 - 400 0.04 7.98967577397158e-05 0.595395828381057 0.595440657806237 1.50721782707597e-06 0.0368527556548781 - 500 0.05 2.9121648914103e-05 0.595403174462525 0.595448064489507 1.74330474543395e-07 0.0368525254239539 - 600 0.06 1.04772320898497e-05 0.595404457003426 0.595449362424563 2.12204214498221e-08 0.0368524982492743 - 700 0.07 3.74634771616422e-06 0.595404627382825 0.595449536940641 2.63852407890463e-09 0.036852494912626 - 800 0.08 1.33525617457914e-06 0.595404626884198 0.595449537611055 3.30772506699851e-10 0.0368524944963445 - 900 0.09 4.75054785504803e-07 0.595404613763238 0.595449524836571 4.15940445257144e-11 0.0368524944440918 - 1000 0.1 1.68843135202601e-07 0.59540460640039 0.595449517580793 5.23632581178917e-12 0.036852494437518 -Loop time of 0.0966749 on 1 procs for 1000 steps with 200 atoms - -100.0% CPU use with 1 MPI tasks x no OpenMP threads +Step Time v_magx v_magz v_magnorm v_tmag PotEng v_emag TotEng + 0 0 0.000143282585570239 0.615515043943419 0.615726279597251 24.9364200982478 0.121881906963737 0.121881906963737 0.121881906963737 + 100 0.01 0.000616167502203097 0.594467364025194 0.594498630048783 0.00188964439583802 0.0371335982020527 0.0371335982020522 0.0371335982020527 + 200 0.02 0.000498981016106215 0.595175581059792 0.595218717456538 0.000158614984300385 0.036877233648055 0.0368772336480544 0.036877233648055 + 300 0.03 0.000211899815837572 0.595357874794342 0.595402442288391 1.44454891242177e-05 0.0368548794182375 0.0368548794182369 0.0368548794182375 + 400 0.04 7.98967577397158e-05 0.595395828381057 0.595440657806237 1.50721782707597e-06 0.0368527556548781 0.0368527556548775 0.0368527556548781 + 500 0.05 2.9121648914103e-05 0.595403174462525 0.595448064489507 1.74330474543395e-07 0.0368525254239539 0.0368525254239533 0.0368525254239539 + 600 0.06 1.04772320898497e-05 0.595404457003426 0.595449362424563 2.12204214498221e-08 0.0368524982492743 0.0368524982492735 0.0368524982492743 + 700 0.07 3.74634771616422e-06 0.595404627382825 0.595449536940641 2.63852407890463e-09 0.036852494912626 0.0368524949126256 0.036852494912626 + 800 0.08 1.33525617457914e-06 0.595404626884198 0.595449537611055 3.30772506699851e-10 0.0368524944963445 0.0368524944963439 0.0368524944963445 + 900 0.09 4.75054785504803e-07 0.595404613763238 0.595449524836571 4.15940445257144e-11 0.0368524944440918 0.0368524944440912 0.0368524944440918 + 1000 0.1 1.68843135202601e-07 0.59540460640039 0.595449517580793 5.23632581178917e-12 0.036852494437518 0.0368524944375173 0.036852494437518 +Loop time of 0.093256 on 1 procs for 1000 steps with 200 atoms + +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations @@ -115,12 +117,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.08679 | 0.08679 | 0.08679 | 0.0 | 89.77 +Pair | 0.08325 | 0.08325 | 0.08325 | 0.0 | 89.27 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 7.2956e-05 | 7.2956e-05 | 7.2956e-05 | 0.0 | 0.08 -Output | 0.0033231 | 0.0033231 | 0.0033231 | 0.0 | 3.44 -Modify | 0.0022919 | 0.0022919 | 0.0022919 | 0.0 | 2.37 -Other | | 0.004197 | | | 4.34 +Comm | 6.032e-05 | 6.032e-05 | 6.032e-05 | 0.0 | 0.06 +Output | 0.0033138 | 0.0033138 | 0.0033138 | 0.0 | 3.55 +Modify | 0.0023961 | 0.0023961 | 0.0023961 | 0.0 | 2.57 +Other | | 0.004236 | | | 4.54 Nlocal: 200 ave 200 max 200 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/setforce_spin/log.19Nov19.spin.setforce.g++.4 b/examples/SPIN/setforce_spin/log.14Apr20.spin.setforce.g++.4 similarity index 57% rename from examples/SPIN/setforce_spin/log.19Nov19.spin.setforce.g++.4 rename to examples/SPIN/setforce_spin/log.14Apr20.spin.setforce.g++.4 index 4ce1497957d374a4f43ca83d63b124997b0e2887..c99bad0b402d7e4f52a54248b0dc8089f7b16dae 100644 --- a/examples/SPIN/setforce_spin/log.19Nov19.spin.setforce.g++.4 +++ b/examples/SPIN/setforce_spin/log.14Apr20.spin.setforce.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task units metal dimension 3 @@ -18,10 +20,10 @@ region reg1 block 0.0 10.0 0.0 5.0 0.0 1.0 region reg2 block 0.0 10.0 6.0 10.0 0.0 1.0 create_atoms 1 region reg1 Created 120 atoms - create_atoms CPU = 0.000770092 secs + create_atoms CPU = 0.000747204 secs create_atoms 2 region reg2 Created 80 atoms - create_atoms CPU = 7.9155e-05 secs + create_atoms CPU = 0.000154018 secs # setting mass, mag. moments, and interactions for bcc iron @@ -59,7 +61,7 @@ variable emag equal c_out_mag[5] variable tmag equal c_out_mag[6] thermo 100 -thermo_style custom step time v_magx v_magz v_magnorm v_tmag etotal +thermo_style custom step time v_magx v_magz v_magnorm v_tmag pe v_emag etotal thermo_modify format float %20.15g compute outsp all property/atom spx spy spz sp fmx fmy fmz @@ -68,7 +70,7 @@ dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[ min_style spin min_modify alpha_damp 1.0 discrete_factor 20.0 minimize 1.0e-16 1.0e-16 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -87,26 +89,26 @@ Neighbor list info ... stencil: none bin: none Per MPI rank memory allocation (min/avg/max) = 7.2 | 7.2 | 7.2 Mbytes -Step Time v_magx v_magz v_magnorm v_tmag TotEng - 0 0 0.000143282585570239 0.615515043943419 0.615726279597251 21.735436446264 0.251043691626527 - 100 0.01 -0.00116085697754605 0.590264559350799 0.590315072966953 0.00283413081085227 0.0846048989956832 - 200 0.02 -0.000147570523236238 0.5896197627388 0.589686497206689 0.000451051163122381 0.0839054390713705 - 300 0.03 2.64982966536902e-05 0.59002969475615 0.590102003120244 5.22539631503911e-05 0.0838351677819014 - 400 0.04 1.77805448780033e-05 0.590195117338991 0.590268726215095 4.46490059775722e-06 0.0838382933245032 - 500 0.05 6.71566571038784e-06 0.590243842081075 0.590317756995865 3.63227563542099e-07 0.0838411433937997 - 600 0.06 2.2410340743112e-06 0.590257551861528 0.590331542128336 2.99360370345601e-08 0.0838420708305252 - 700 0.07 7.12179152897591e-07 0.5902614042958 0.590335413637884 2.51559188415894e-09 0.0838423375091767 - 800 0.08 2.20574733079126e-07 0.590262494529884 0.590336508799302 2.14455748236281e-10 0.0838424126463497 - 900 0.09 6.72564339365689e-08 0.590262805532644 0.590336821097688 1.84495767133404e-11 0.0838424338620728 - 1000 0.1 2.03001940390912e-08 0.590262894882646 0.590336910794094 1.5958531383517e-12 0.0838424398944951 -Loop time of 0.0617704 on 4 procs for 1000 steps with 200 atoms - -98.7% CPU use with 4 MPI tasks x no OpenMP threads +Step Time v_magx v_magz v_magnorm v_tmag PotEng v_emag TotEng + 0 0 0.000143282585570239 0.615515043943419 0.615726279597251 24.9364200982478 0.121881906963737 0.121881906963737 0.121881906963737 + 100 0.01 0.000616167502203098 0.594467364025194 0.594498630048784 0.00188964439583802 0.0371335982020525 0.037133598202052 0.0371335982020525 + 200 0.02 0.000498981016106215 0.595175581059791 0.595218717456538 0.000158614984300385 0.0368772336480548 0.0368772336480543 0.0368772336480548 + 300 0.03 0.000211899815837572 0.595357874794342 0.595402442288391 1.44454891242177e-05 0.0368548794182373 0.0368548794182367 0.0368548794182373 + 400 0.04 7.9896757739716e-05 0.595395828381057 0.595440657806237 1.50721782707597e-06 0.0368527556548779 0.0368527556548773 0.0368527556548779 + 500 0.05 2.91216489141033e-05 0.595403174462525 0.595448064489507 1.74330474543395e-07 0.0368525254239537 0.0368525254239531 0.0368525254239537 + 600 0.06 1.04772320898493e-05 0.595404457003426 0.595449362424563 2.12204214498221e-08 0.036852498249274 0.0368524982492735 0.036852498249274 + 700 0.07 3.74634771616408e-06 0.595404627382825 0.59544953694064 2.63852407890464e-09 0.0368524949126259 0.0368524949126254 0.0368524949126259 + 800 0.08 1.33525617457997e-06 0.595404626884198 0.595449537611055 3.30772506699851e-10 0.0368524944963442 0.0368524944963437 0.0368524944963442 + 900 0.09 4.75054785504803e-07 0.595404613763238 0.595449524836571 4.15940445257144e-11 0.0368524944440915 0.036852494444091 0.0368524944440915 + 1000 0.1 1.68843135202462e-07 0.59540460640039 0.595449517580793 5.23632581178917e-12 0.0368524944375178 0.0368524944375172 0.0368524944375178 +Loop time of 0.041718 on 4 procs for 1000 steps with 200 atoms + +97.4% CPU use with 4 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations Energy initial, next-to-last, final = - 0.251043691627 0.0838424398641 0.0838424398945 + 0.121881906964 0.0368524944375 0.0368524944375 Force two-norm initial, final = 0 0 Force max component initial, final = 0 0 Final line search alpha, max atom move = 0 0 @@ -115,12 +117,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.023753 | 0.029762 | 0.035936 | 3.3 | 48.18 +Pair | 0.020462 | 0.021665 | 0.024967 | 1.3 | 51.93 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.011783 | 0.019131 | 0.025404 | 4.3 | 30.97 -Output | 0.0019517 | 0.0019774 | 0.0020368 | 0.1 | 3.20 -Modify | 0.0006361 | 0.00087249 | 0.0011525 | 0.0 | 1.41 -Other | | 0.01003 | | | 16.23 +Comm | 0.0074174 | 0.010855 | 0.012527 | 2.0 | 26.02 +Output | 0.0012774 | 0.0012916 | 0.0013213 | 0.0 | 3.10 +Modify | 0.00056291 | 0.00068498 | 0.00096655 | 0.0 | 1.64 +Other | | 0.007222 | | | 17.31 Nlocal: 50 ave 50 max 50 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min.g++.1 b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min.g++.1 similarity index 54% rename from examples/SPIN/spinmin/log.19Nov19.spin.bfo_min.g++.1 rename to examples/SPIN/spinmin/log.14Apr20.spin.bfo_min.g++.1 index 61b6ad87006857e2aff6cb03a0844c34c83a5e29..49a5f4dd3fd58993ec8776c57e4395385dfb0ef2 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min.g++.1 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bfo in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 5780 atoms - create_atoms CPU = 0.00107217 secs + create_atoms CPU = 0.00207901 secs # setting mass, mag. moments, and interactions for bcc iron @@ -60,10 +62,10 @@ dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3 min_style spin min_modify alpha_damp 1.0 discrete_factor 10.0 minimize 1.0e-10 0.0 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -88,30 +90,30 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 8.331 | 8.331 | 8.331 Mbytes Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0100717228668283 -0.163834417271778 14831.3069413956 0 -0.0819172086358848 - 50 0.005 0.000106105812337003 -128.307447484203 0.104264818055985 0 -64.1537237421011 - 100 0.01 7.95347901119144e-06 -131.449389798071 0.0221943604064967 0 -65.7246948990356 - 150 0.015 5.63006161138875e-07 -132.296453030419 0.0085472877724348 0 -66.1482265152089 - 200 0.02 5.07390677383517e-07 -132.622857703805 0.00361380451198708 0 -66.3114288519012 - 250 0.025 3.28458336892231e-07 -132.774411992703 0.00187753161968493 0 -66.3872059963511 - 300 0.03 1.93294839202864e-07 -132.861283726084 0.00121374398924599 0 -66.4306418630428 - 350 0.035 1.13872157437693e-07 -132.923137019136 0.000954736871701507 0 -66.4615685095675 - 400 0.04 6.42075545620808e-08 -132.975239148591 0.000854064736183609 0 -66.4876195742954 - 450 0.045 3.44210513403008e-08 -133.023523287306 0.000812909459005007 0 -66.5117616436536 - 500 0.05 1.80394981485933e-08 -133.070071976252 0.000789742875305133 0 -66.5350359881254 - 550 0.055 9.54697157105863e-09 -133.11541233939 0.000769860218895372 0 -66.5577061696963 - 600 0.06 5.22455110720346e-09 -133.159676447906 0.000752941158466282 0 -66.5798382239526 - 650 0.065 2.95172977724016e-09 -133.203196195612 0.000745065216626277 0 -66.6015980978057 - 700 0.07 1.6727567441294e-09 -133.246696814329 0.000752898926000619 0 -66.6233484071653 - 750 0.075 9.17127001723567e-10 -133.291227007554 0.000780491405791262 0 -66.6456135037769 - 800 0.08 4.72669535949609e-10 -133.337962593396 0.000827942834401386 0 -66.6689812966976 - 850 0.085 2.25696738407094e-10 -133.387945245851 0.000890246383931885 0 -66.6939726229243 - 900 0.09 1.0030717061716e-10 -133.441737087546 0.000955403731484674 0 -66.720868543773 - 950 0.095 4.19867626359036e-11 -133.498969798312 0.00100352240545389 0 -66.7494848991554 - 1000 0.1 1.64283478182092e-11 -133.557979904763 0.00101162410316333 0 -66.7789899523816 -Loop time of 9.23057 on 1 procs for 1000 steps with 5780 atoms - -99.9% CPU use with 1 MPI tasks x no OpenMP threads + 0 0 0.0100717228668283 -0.0819172086358897 14831.3069413956 0 -0.0819172086358848 + 50 0.005 0.000106105812337003 -64.1537237421016 0.104264818055985 0 -64.1537237421011 + 100 0.01 7.95347901119144e-06 -65.7246948990358 0.0221943604064967 0 -65.7246948990356 + 150 0.015 5.63006161138875e-07 -66.1482265152101 0.0085472877724348 0 -66.1482265152089 + 200 0.02 5.07390677383517e-07 -66.3114288519027 0.00361380451198708 0 -66.3114288519012 + 250 0.025 3.28458336892231e-07 -66.3872059963515 0.00187753161968493 0 -66.3872059963511 + 300 0.03 1.93294839202864e-07 -66.430641863042 0.00121374398924599 0 -66.4306418630428 + 350 0.035 1.13872157437693e-07 -66.461568509568 0.000954736871701507 0 -66.4615685095675 + 400 0.04 6.42075545620808e-08 -66.4876195742958 0.000854064736183609 0 -66.4876195742954 + 450 0.045 3.44210513403008e-08 -66.5117616436528 0.000812909459005007 0 -66.5117616436536 + 500 0.05 1.80394981485933e-08 -66.535035988126 0.000789742875305133 0 -66.5350359881254 + 550 0.055 9.54697157105863e-09 -66.5577061696949 0.000769860218895372 0 -66.5577061696963 + 600 0.06 5.22455110720346e-09 -66.5798382239523 0.000752941158466282 0 -66.5798382239526 + 650 0.065 2.95172977724016e-09 -66.6015980978057 0.000745065216626277 0 -66.6015980978057 + 700 0.07 1.6727567441294e-09 -66.6233484071647 0.000752898926000619 0 -66.6233484071653 + 750 0.075 9.17127001723567e-10 -66.6456135037774 0.000780491405791262 0 -66.6456135037769 + 800 0.08 4.72669535949609e-10 -66.6689812966982 0.000827942834401386 0 -66.6689812966976 + 850 0.085 2.25696738407094e-10 -66.6939726229253 0.000890246383931885 0 -66.6939726229243 + 900 0.09 1.0030717061716e-10 -66.7208685437728 0.000955403731484674 0 -66.720868543773 + 950 0.095 4.19867626359036e-11 -66.7494848991559 0.00100352240545389 0 -66.7494848991554 + 1000 0.1 1.64283478182092e-11 -66.778989952382 0.00101162410316333 0 -66.7789899523816 +Loop time of 8.81793 on 1 procs for 1000 steps with 5780 atoms + +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations @@ -125,12 +127,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 8.7576 | 8.7576 | 8.7576 | 0.0 | 94.88 +Pair | 8.3388 | 8.3388 | 8.3388 | 0.0 | 94.57 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.023815 | 0.023815 | 0.023815 | 0.0 | 0.26 -Output | 0.31665 | 0.31665 | 0.31665 | 0.0 | 3.43 -Modify | 0.029446 | 0.029446 | 0.029446 | 0.0 | 0.32 -Other | | 0.1031 | | | 1.12 +Comm | 0.023951 | 0.023951 | 0.023951 | 0.0 | 0.27 +Output | 0.3172 | 0.3172 | 0.3172 | 0.0 | 3.60 +Modify | 0.034405 | 0.034405 | 0.034405 | 0.0 | 0.39 +Other | | 0.1036 | | | 1.17 Nlocal: 5780 ave 5780 max 5780 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -145,4 +147,4 @@ Total # of neighbors = 92480 Ave neighs/atom = 16 Neighbor list builds = 0 Dangerous builds = 0 -Total wall time: 0:00:09 +Total wall time: 0:00:08 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min.g++.4 b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min.g++.4 similarity index 51% rename from examples/SPIN/spinmin/log.19Nov19.spin.bfo_min.g++.4 rename to examples/SPIN/spinmin/log.14Apr20.spin.bfo_min.g++.4 index efc4628b9e578675e85718aa03e47393f13ce723..6ffa5eb86139ecf243dd33ec4eae72469f6c997d 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min.g++.4 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bfo in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) 2 by 2 by 1 MPI processor grid create_atoms 1 box Created 5780 atoms - create_atoms CPU = 0.00102711 secs + create_atoms CPU = 0.00117207 secs # setting mass, mag. moments, and interactions for bcc iron @@ -60,10 +62,10 @@ dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3 min_style spin min_modify alpha_damp 1.0 discrete_factor 10.0 minimize 1.0e-10 0.0 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -88,35 +90,35 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 7.788 | 7.788 | 7.788 Mbytes Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0100717228668283 -0.162177519662199 14970.709092345 0 -0.157514482753586 - 50 0.005 0.000134061770654521 -128.226118665465 0.102634444037434 0 -128.286182424672 - 100 0.01 7.67769618983817e-06 -131.374599259781 0.0222596977749883 0 -131.428418504308 - 150 0.015 6.02904602224806e-07 -132.224372015825 0.00974271828169071 0 -132.273190134602 - 200 0.02 6.50197247050491e-07 -132.573383315469 0.00374227079785921 0 -132.617565541034 - 250 0.025 4.4053438575152e-07 -132.729743470508 0.0019334097282578 0 -132.770567114743 - 300 0.03 2.78356316513274e-07 -132.819255077939 0.00124938353773497 0 -132.857574876413 - 350 0.035 1.79684785125388e-07 -132.882714312877 0.000973166792896165 0 -132.919261229742 - 400 0.04 1.10949878459078e-07 -132.935357748213 0.000852955460997588 0 -132.970786605995 - 450 0.045 6.49064465617817e-08 -132.982991683198 0.000790741148426224 0 -133.017887798927 - 500 0.05 3.70514666559952e-08 -133.027689959766 0.00074794913288275 0 -133.06256199189 - 550 0.055 2.12433814830885e-08 -133.070148920145 0.00071263732127117 0 -133.105417593745 - 600 0.06 1.24676590171361e-08 -133.110772798503 0.000685051841817325 0 -133.14676746928 - 650 0.065 7.53611859129351e-09 -133.150126417754 0.000669443562813208 0 -133.187094895708 - 700 0.07 4.63539338651321e-09 -133.189024073453 0.000669619853917953 0 -133.227152349439 - 750 0.075 2.82145833974835e-09 -133.22844627026 0.000687338035086961 0 -133.267881315198 - 800 0.08 1.64378151566173e-09 -133.269413776733 0.000722197692175127 0 -133.310284062463 - 850 0.085 8.883310104497e-10 -133.312863108454 0.000771645398804486 0 -133.355293578462 - 900 0.09 4.33874801863461e-10 -133.359507749172 0.000830255722998156 0 -133.403626236688 - 950 0.095 1.8812784924272e-10 -133.409630495316 0.000888348219681112 0 -133.455560507802 - 1000 0.1 7.17748875671948e-11 -133.462806227865 0.000931427722404681 0 -133.510640942679 -Loop time of 2.53419 on 4 procs for 1000 steps with 5780 atoms - -99.9% CPU use with 4 MPI tasks x no OpenMP threads + 0 0 0.0100717228668283 -0.0819172086358889 14831.3069413956 0 -0.0819172086358937 + 50 0.005 0.000106105812337003 -64.1537237421014 0.104264818055985 0 -64.1537237421015 + 100 0.01 7.95347901119157e-06 -65.7246948990355 0.0221943604064966 0 -65.7246948990356 + 150 0.015 5.63006161138918e-07 -66.1482265152097 0.0085472877724348 0 -66.1482265152095 + 200 0.02 5.07390677383159e-07 -66.3114288519023 0.00361380451198709 0 -66.3114288519024 + 250 0.025 3.28458336892466e-07 -66.3872059963513 0.00187753161968492 0 -66.3872059963514 + 300 0.03 1.93294839202718e-07 -66.4306418630421 0.00121374398924599 0 -66.4306418630421 + 350 0.035 1.1387215743759e-07 -66.461568509568 0.00095473687170151 0 -66.4615685095675 + 400 0.04 6.42075545625297e-08 -66.4876195742954 0.000854064736183607 0 -66.4876195742956 + 450 0.045 3.44210513402635e-08 -66.5117616436528 0.000812909459005008 0 -66.5117616436531 + 500 0.05 1.80394981487191e-08 -66.5350359881262 0.000789742875305131 0 -66.5350359881262 + 550 0.055 9.54697157097866e-09 -66.5577061696951 0.000769860218895372 0 -66.5577061696951 + 600 0.06 5.22455110708009e-09 -66.5798382239529 0.000752941158466282 0 -66.5798382239528 + 650 0.065 2.95172977729162e-09 -66.601598097806 0.000745065216626281 0 -66.6015980978062 + 700 0.07 1.67275674393186e-09 -66.6233484071645 0.000752898926000615 0 -66.6233484071643 + 750 0.075 9.17127001716818e-10 -66.6456135037772 0.000780491405791264 0 -66.6456135037769 + 800 0.08 4.72669535990986e-10 -66.6689812966981 0.000827942834401387 0 -66.668981296698 + 850 0.085 2.25696738737671e-10 -66.6939726229253 0.000890246383931887 0 -66.6939726229253 + 900 0.09 1.00307170296094e-10 -66.7208685437728 0.000955403731484673 0 -66.7208685437728 + 950 0.095 4.19867626693269e-11 -66.7494848991562 0.00100352240545389 0 -66.7494848991562 + 1000 0.1 1.64283481770759e-11 -66.7789899523816 0.00101162410316333 0 -66.7789899523818 +Loop time of 2.42884 on 4 procs for 1000 steps with 5780 atoms + +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations Energy initial, next-to-last, final = - -0.157514482754 -133.509516066 -133.510640943 + -0.0819172086359 -66.778399627 -66.7789899524 Force two-norm initial, final = 0 0 Force max component initial, final = 0 0 Final line search alpha, max atom move = 0 0 @@ -125,12 +127,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 2.2697 | 2.2995 | 2.3564 | 2.2 | 90.74 +Pair | 2.1221 | 2.164 | 2.2349 | 2.9 | 89.10 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.05711 | 0.11414 | 0.14368 | 10.1 | 4.50 -Output | 0.084883 | 0.084915 | 0.084985 | 0.0 | 3.35 -Modify | 0.0071826 | 0.0072024 | 0.0072234 | 0.0 | 0.28 -Other | | 0.02847 | | | 1.12 +Comm | 0.065814 | 0.13626 | 0.17868 | 11.7 | 5.61 +Output | 0.090046 | 0.090083 | 0.090171 | 0.0 | 3.71 +Modify | 0.0081615 | 0.0083774 | 0.008673 | 0.2 | 0.34 +Other | | 0.03009 | | | 1.24 Nlocal: 1445 ave 1445 max 1445 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_cg.g++.1 b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_cg.g++.1 similarity index 65% rename from examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_cg.g++.1 rename to examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_cg.g++.1 index ffd244b146e487cff3f6d9e287fc6490e2e821cb..cef54797eb842f6506559b1908ded82f5925cfdd 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_cg.g++.1 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_cg.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bfo in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 5780 atoms - create_atoms CPU = 0.00135589 secs + create_atoms CPU = 0.00267482 secs # setting mass, mag. moments, and interactions for bcc iron @@ -59,11 +61,11 @@ dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3 min_style spin/cg # min_modify line spin_none discrete_factor 10.0 minimize 1.0e-10 1.0e-10 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) WARNING: Line search incompatible gneb (../min_spin_cg.cpp:105) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -88,20 +90,20 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 8.331 | 8.331 | 8.331 Mbytes Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0100717228668283 -0.163834417271778 14831.3069413956 0 -0.0819172086358848 - 100 0.01 8.80197005314557e-06 -132.80634639767 0.00226660536216922 0 -66.4031731988347 - 200 0.02 6.70903250218956e-06 -133.127078243354 0.00103783628361662 0 -66.563539121677 - 300 0.03 4.5381603452565e-06 -133.471076972345 0.00144833375067451 0 -66.7355384861738 - 400 0.04 9.04820921016732e-07 -133.767843456662 0.000682239601485924 0 -66.8839217283314 - 500 0.05 1.6866160174916e-06 -133.893922160731 0.00032462625992713 0 -66.946961080365 - 600 0.06 1.78038217785001e-06 -133.957222680701 0.000160730704849448 0 -66.9786113403509 - 700 0.07 1.49199057723078e-06 -133.987255887786 7.39864656758093e-05 0 -66.9936279438931 - 800 0.08 1.15173756711067e-06 -134.000921126053 3.33959465206462e-05 0 -67.0004605630278 - 900 0.09 8.48526364752965e-07 -134.007049858868 1.49345737358251e-05 0 -67.0035249294347 - 1000 0.1 6.10346492876059e-07 -134.009791515671 6.71648807105468e-06 0 -67.0048957578347 -Loop time of 9.4449 on 1 procs for 1000 steps with 5780 atoms - -100.0% CPU use with 1 MPI tasks x no OpenMP threads + 0 0 0.0100717228668283 -0.0819172086358897 14831.3069413956 0 -0.0819172086358848 + 100 0.01 8.80197005314557e-06 -66.4031731988352 0.00226660536216922 0 -66.4031731988347 + 200 0.02 6.70903250218956e-06 -66.5635391216766 0.00103783628361662 0 -66.563539121677 + 300 0.03 4.5381603452565e-06 -66.7355384861724 0.00144833375067451 0 -66.7355384861738 + 400 0.04 9.04820921016732e-07 -66.8839217283316 0.000682239601485924 0 -66.8839217283314 + 500 0.05 1.6866160174916e-06 -66.9469610803664 0.00032462625992713 0 -66.946961080365 + 600 0.06 1.78038217785001e-06 -66.9786113403508 0.000160730704849448 0 -66.9786113403509 + 700 0.07 1.49199057723078e-06 -66.9936279438935 7.39864656758093e-05 0 -66.9936279438931 + 800 0.08 1.15173756711067e-06 -67.0004605630263 3.33959465206462e-05 0 -67.0004605630278 + 900 0.09 8.48526364752965e-07 -67.0035249294341 1.49345737358251e-05 0 -67.0035249294347 + 1000 0.1 6.10346492876059e-07 -67.004895757836 6.71648807105468e-06 0 -67.0048957578347 +Loop time of 9.0061 on 1 procs for 1000 steps with 5780 atoms + +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations @@ -115,12 +117,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 8.7686 | 8.7686 | 8.7686 | 0.0 | 92.84 +Pair | 8.3237 | 8.3237 | 8.3237 | 0.0 | 92.42 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.02386 | 0.02386 | 0.02386 | 0.0 | 0.25 -Output | 0.31808 | 0.31808 | 0.31808 | 0.0 | 3.37 -Modify | 0.029416 | 0.029416 | 0.029416 | 0.0 | 0.31 -Other | | 0.305 | | | 3.23 +Comm | 0.023927 | 0.023927 | 0.023927 | 0.0 | 0.27 +Output | 0.31783 | 0.31783 | 0.31783 | 0.0 | 3.53 +Modify | 0.034633 | 0.034633 | 0.034633 | 0.0 | 0.38 +Other | | 0.306 | | | 3.40 Nlocal: 5780 ave 5780 max 5780 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_cg.g++.4 b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_cg.g++.4 similarity index 62% rename from examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_cg.g++.4 rename to examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_cg.g++.4 index 730bf477d437f37cff0bab75b42769d081e347ca..26dd99046bd4b8c6244900456e56d36edcbede59 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_cg.g++.4 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_cg.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bfo in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (134.64 134.64 19.8) 2 by 2 by 1 MPI processor grid create_atoms 1 box Created 5780 atoms - create_atoms CPU = 0.00138712 secs + create_atoms CPU = 0.000908136 secs # setting mass, mag. moments, and interactions for bcc iron @@ -59,11 +61,11 @@ dump 1 all custom 50 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[3 min_style spin/cg # min_modify line spin_none discrete_factor 10.0 minimize 1.0e-10 1.0e-10 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) WARNING: Line search incompatible gneb (../min_spin_cg.cpp:105) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -88,25 +90,25 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 7.788 | 7.788 | 7.788 Mbytes Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0100717228668283 -0.162177519662199 14970.709092345 0 -0.157514482753586 - 100 0.01 8.97646420936397e-06 -132.756468673032 0.00226858475243123 0 -132.79881239587 - 200 0.02 5.7049674439631e-06 -133.065966570145 0.000924384747875186 0 -133.105411060402 - 300 0.03 7.08166486348038e-06 -133.359072681024 0.00128114254070688 0 -133.406669528642 - 400 0.04 4.60224970353229e-06 -133.668643035703 0.000822334798448062 0 -133.725353643022 - 500 0.05 3.13737045264193e-06 -133.819548711647 0.000369678417461456 0 -133.878037514585 - 600 0.06 2.55239214469856e-06 -133.889302880669 0.0001696142482835 0 -133.948327309746 - 700 0.07 1.92236411979341e-06 -133.920147501261 7.31985644003847e-05 0 -133.979597440788 - 800 0.08 1.40879742055238e-06 -133.933445418833 3.19349095035109e-05 0 -133.993344750158 - 900 0.09 1.02629246257047e-06 -133.939321574068 1.44399877051467e-05 0 -133.999611147322 - 1000 0.1 7.52253147824893e-07 -133.942032102451 6.85789018963965e-06 0 -134.002604512509 -Loop time of 2.49676 on 4 procs for 1000 steps with 5780 atoms - -100.0% CPU use with 4 MPI tasks x no OpenMP threads + 0 0 0.0100717228668283 -0.0819172086358889 14831.3069413956 0 -0.0819172086358937 + 100 0.01 8.80197005315463e-06 -66.403173198835 0.00226660536216922 0 -66.4031731988351 + 200 0.02 6.7090325022051e-06 -66.563539121677 0.00103783628361663 0 -66.5635391216769 + 300 0.03 4.53816034526952e-06 -66.7355384861727 0.00144833375067451 0 -66.7355384861724 + 400 0.04 9.04820921046463e-07 -66.8839217283311 0.000682239601485917 0 -66.883921728331 + 500 0.05 1.68661601751279e-06 -66.9469610803655 0.00032462625992713 0 -66.9469610803655 + 600 0.06 1.78038217786708e-06 -66.9786113403506 0.000160730704849447 0 -66.9786113403508 + 700 0.07 1.4919905772389e-06 -66.9936279438931 7.39864656758075e-05 0 -66.9936279438932 + 800 0.08 1.15173756711682e-06 -67.0004605630262 3.33959465206457e-05 0 -67.0004605630265 + 900 0.09 8.48526364761828e-07 -67.0035249294341 1.49345737358251e-05 0 -67.0035249294341 + 1000 0.1 6.10346492874848e-07 -67.0048957578355 6.71648807105468e-06 0 -67.0048957578356 +Loop time of 2.40179 on 4 procs for 1000 steps with 5780 atoms + +100.0% CPU use with 4 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations Energy initial, next-to-last, final = - -0.157514482754 -134.00257032 -134.002604513 + -0.0819172086359 -67.0048809251 -67.0048957578 Force two-norm initial, final = 0 0 Force max component initial, final = 0 0 Final line search alpha, max atom move = 0 0 @@ -115,12 +117,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 2.2509 | 2.2589 | 2.2629 | 0.3 | 90.47 +Pair | 2.1174 | 2.1533 | 2.179 | 1.6 | 89.66 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.06036 | 0.064254 | 0.072356 | 1.9 | 2.57 -Output | 0.084002 | 0.085009 | 0.085985 | 0.3 | 3.40 -Modify | 0.0072496 | 0.0072694 | 0.0073116 | 0.0 | 0.29 -Other | | 0.08134 | | | 3.26 +Comm | 0.049849 | 0.075596 | 0.11152 | 8.4 | 3.15 +Output | 0.082974 | 0.084081 | 0.085145 | 0.3 | 3.50 +Modify | 0.0082345 | 0.008339 | 0.008424 | 0.1 | 0.35 +Other | | 0.08043 | | | 3.35 Nlocal: 1445 ave 1445 max 1445 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_lbfgs.g++.1 b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_lbfgs.g++.1 similarity index 69% rename from examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_lbfgs.g++.1 rename to examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_lbfgs.g++.1 index a8685eb2cf9b337e849c72d14d18d6d5819a03bb..2d8b319b3cff54162ec41037ea95ce7879c611e1 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_lbfgs.g++.1 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_lbfgs.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bfo in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (134.64 134.64 3.96) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 1156 atoms - create_atoms CPU = 0.00136805 secs + create_atoms CPU = 0.00159788 secs # setting mass, mag. moments, and interactions for bcc iron @@ -60,11 +62,11 @@ min_style spin/lbfgs # min_modify line spin_cubic discrete_factor 10.0 min_modify norm max minimize 1.0e-15 1.0e-10 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) WARNING: Line search incompatible gneb (../min_spin_lbfgs.cpp:109) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -89,17 +91,17 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 7.748 | 7.748 | 7.748 Mbytes Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0205636053306396 -0.218504643888467 1537.40479337332 0 -0.109252321944233 - 50 0.005 0.000800557938107919 -19.2937186217138 0.293526226015746 0 -9.65918446070018 - 100 0.01 0.000434178067296136 -19.6225314972776 0.136842093090897 0 -9.81803976806459 - 150 0.015 9.48307628510239e-06 -19.7062424007137 0.000835148627123792 0 -9.85315267460932 - 200 0.02 9.40072944704056e-06 -19.7072931204571 7.72334770010361e-06 0 -9.85364693487844 - 250 0.025 5.05117500164935e-07 -19.7072952885901 5.72437821949831e-08 0 -9.85364764712939 - 300 0.03 2.15063977474981e-09 -19.707295295749 2.09970244523395e-12 0 -9.8536476478746 - 303 0.0303 1.43831710574092e-09 -19.7072952957498 1.70336397715489e-13 0 -9.85364764787493 -Loop time of 0.335897 on 1 procs for 303 steps with 1156 atoms - -100.0% CPU use with 1 MPI tasks x no OpenMP threads + 0 0 0.0205636053306396 -0.109252321944233 1537.40479337332 0 -0.109252321944233 + 50 0.005 0.000800557938107919 -9.65918446070017 0.293526226015746 0 -9.65918446070018 + 100 0.01 0.000434178067296136 -9.81803976806455 0.136842093090897 0 -9.81803976806459 + 150 0.015 9.48307628510239e-06 -9.85315267460926 0.000835148627123792 0 -9.85315267460932 + 200 0.02 9.40072944704056e-06 -9.85364693487847 7.72334770010361e-06 0 -9.85364693487844 + 250 0.025 5.05117500164935e-07 -9.85364764712935 5.72437821949831e-08 0 -9.85364764712939 + 300 0.03 2.15063977474981e-09 -9.85364764787459 2.09970244523395e-12 0 -9.8536476478746 + 303 0.0303 1.43831710574092e-09 -9.85364764787493 1.70336397715489e-13 0 -9.85364764787493 +Loop time of 0.328641 on 1 procs for 303 steps with 1156 atoms + +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = energy tolerance @@ -113,12 +115,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.28129 | 0.28129 | 0.28129 | 0.0 | 83.74 +Pair | 0.27332 | 0.27332 | 0.27332 | 0.0 | 83.17 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0010796 | 0.0010796 | 0.0010796 | 0.0 | 0.32 -Output | 0.017942 | 0.017942 | 0.017942 | 0.0 | 5.34 -Modify | 0.001771 | 0.001771 | 0.001771 | 0.0 | 0.53 -Other | | 0.03382 | | | 10.07 +Comm | 0.001117 | 0.001117 | 0.001117 | 0.0 | 0.34 +Output | 0.018038 | 0.018038 | 0.018038 | 0.0 | 5.49 +Modify | 0.0020421 | 0.0020421 | 0.0020421 | 0.0 | 0.62 +Other | | 0.03412 | | | 10.38 Nlocal: 1156 ave 1156 max 1156 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_lbfgs.g++.4 b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_lbfgs.g++.4 similarity index 66% rename from examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_lbfgs.g++.4 rename to examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_lbfgs.g++.4 index f2756d0f5ed9f0d9450edae668125ecfa82941d9..2c26f64b564c7af82ab8a81d7184c242e179f26c 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.bfo_min_lbfgs.g++.4 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.bfo_min_lbfgs.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bfo in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (134.64 134.64 3.96) 2 by 2 by 1 MPI processor grid create_atoms 1 box Created 1156 atoms - create_atoms CPU = 0.000981808 secs + create_atoms CPU = 0.00098896 secs # setting mass, mag. moments, and interactions for bcc iron @@ -60,11 +62,11 @@ min_style spin/lbfgs # min_modify line spin_cubic discrete_factor 10.0 min_modify norm max minimize 1.0e-15 1.0e-10 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) WARNING: Line search incompatible gneb (../min_spin_lbfgs.cpp:109) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -89,36 +91,36 @@ Neighbor list info ... bin: none Per MPI rank memory allocation (min/avg/max) = 7.619 | 7.619 | 7.619 Mbytes Step Time v_magnorm v_emag v_tmag Temp TotEng - 0 0 0.0205636053306396 -0.217760509274282 1541.29975585882 0 -0.217230771393012 - 50 0.005 0.000966655616837406 -19.2878369426356 0.312860071233841 0 -19.3229939390148 - 100 0.01 0.00154452800191107 -19.5948898197917 0.365367666925029 0 -19.6389064900413 - 150 0.015 4.89955946750017e-05 -19.6962580067431 0.000385536538802408 0 -19.7047140195852 - 200 0.02 5.66300530875654e-05 -19.6975252647309 9.8679922880911e-05 0 -19.7059140354146 - 250 0.025 5.21141123128679e-08 -19.6975359469038 2.52554968535685e-09 0 -19.7059189333986 - 300 0.03 2.9845103782958e-09 -19.6975359475094 2.31782597655471e-11 0 -19.7059191124033 - 342 0.0342 1.0526549233076e-10 -19.6975359475123 3.65641352240487e-16 0 -19.7059191178145 -Loop time of 0.117672 on 4 procs for 342 steps with 1156 atoms - -99.4% CPU use with 4 MPI tasks x no OpenMP threads + 0 0 0.0205636053306396 -0.109252321944234 1537.40479337332 0 -0.109252321944234 + 50 0.005 0.00080055793810568 -9.65918446070018 0.293526226015742 0 -9.65918446070018 + 100 0.01 0.000434178089299568 -9.81803976800935 0.136842091062742 0 -9.81803976800936 + 150 0.015 9.48305696976556e-06 -9.85315267463944 0.000835124161214539 0 -9.85315267463943 + 200 0.02 9.48404729540188e-06 -9.85364693589303 7.83955637621785e-06 0 -9.85364693589302 + 250 0.025 2.53129638591035e-07 -9.85364764689316 5.38044599466511e-08 0 -9.85364764689315 + 300 0.03 1.70353573452093e-08 -9.85364764787448 5.65371929906417e-11 0 -9.85364764787448 + 318 0.0318 1.78606698438076e-09 -9.85364764787558 5.01580212144594e-14 0 -9.85364764787559 +Loop time of 0.107177 on 4 procs for 318 steps with 1156 atoms + +99.6% CPU use with 4 MPI tasks x 1 OpenMP threads Minimization stats: - Stopping criterion = force tolerance + Stopping criterion = energy tolerance Energy initial, next-to-last, final = - -0.217230771393 -19.7059191178 -19.7059191178 + -0.109252321944 -9.85364764788 -9.85364764788 Force two-norm initial, final = 0 0 Force max component initial, final = 0 0 Final line search alpha, max atom move = 0 0 - Iterations, force evaluations = 342 342 + Iterations, force evaluations = 318 318 MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.084558 | 0.086668 | 0.091471 | 1.0 | 73.65 +Pair | 0.074155 | 0.077992 | 0.081876 | 1.2 | 72.77 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0052197 | 0.010042 | 0.012191 | 2.8 | 8.53 -Output | 0.0050647 | 0.0050726 | 0.0050921 | 0.0 | 4.31 -Modify | 0.00052595 | 0.00053537 | 0.00055242 | 0.0 | 0.45 -Other | | 0.01535 | | | 13.05 +Comm | 0.005573 | 0.0094561 | 0.013285 | 3.4 | 8.82 +Output | 0.005054 | 0.0050632 | 0.0050869 | 0.0 | 4.72 +Modify | 0.00055051 | 0.00058657 | 0.00066018 | 0.0 | 0.55 +Other | | 0.01408 | | | 13.14 Nlocal: 289 ave 289 max 289 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.iron_min.g++.1 b/examples/SPIN/spinmin/log.14Apr20.spin.iron_min.g++.1 similarity index 87% rename from examples/SPIN/spinmin/log.19Nov19.spin.iron_min.g++.1 rename to examples/SPIN/spinmin/log.14Apr20.spin.iron_min.g++.1 index 6df5959c0b371641644cfb43625da94c2f972661..7fe5920c1c2093c4cafd02c227347dde117ff685 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.iron_min.g++.1 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.iron_min.g++.1 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) 1 by 1 by 1 MPI processor grid create_atoms 1 box Created 250 atoms - create_atoms CPU = 0.000965834 secs + create_atoms CPU = 0.00106812 secs # setting mass, mag. moments, and interactions for bcc iron @@ -60,8 +62,8 @@ dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[ min_style spin min_modify alpha_damp 1.0 discrete_factor 10.0 minimize 1.0e-10 1.0e-10 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -87,9 +89,9 @@ Step Time v_magx v_magz v_magnorm v_tmag TotEng 800 0.08 -0.584017381477007 -0.0766850043611195 0.999999999999999 6.70634191991825e-06 -25.289508192325 900 0.09 -0.583812040722351 -0.0811143180675364 0.999999999999999 7.49814943594148e-06 -25.2895256658925 1000 0.1 -0.583582389243979 -0.0857958823565731 0.999999999999998 8.38204259112222e-06 -25.2895452009133 -Loop time of 0.195254 on 1 procs for 1000 steps with 250 atoms +Loop time of 0.199799 on 1 procs for 1000 steps with 250 atoms -100.0% CPU use with 1 MPI tasks x no OpenMP threads +100.0% CPU use with 1 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations @@ -103,12 +105,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.17668 | 0.17668 | 0.17668 | 0.0 | 90.49 +Pair | 0.1795 | 0.1795 | 0.1795 | 0.0 | 89.84 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0052176 | 0.0052176 | 0.0052176 | 0.0 | 2.67 -Output | 0.0067751 | 0.0067751 | 0.0067751 | 0.0 | 3.47 -Modify | 0.0013788 | 0.0013788 | 0.0013788 | 0.0 | 0.71 -Other | | 0.005203 | | | 2.66 +Comm | 0.0056038 | 0.0056038 | 0.0056038 | 0.0 | 2.80 +Output | 0.0074773 | 0.0074773 | 0.0074773 | 0.0 | 3.74 +Modify | 0.0016823 | 0.0016823 | 0.0016823 | 0.0 | 0.84 +Other | | 0.005533 | | | 2.77 Nlocal: 250 ave 250 max 250 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/SPIN/spinmin/log.19Nov19.spin.iron_min.g++.4 b/examples/SPIN/spinmin/log.14Apr20.spin.iron_min.g++.4 similarity index 72% rename from examples/SPIN/spinmin/log.19Nov19.spin.iron_min.g++.4 rename to examples/SPIN/spinmin/log.14Apr20.spin.iron_min.g++.4 index b0cdd4f94adfbce6ae64b45bd546e0b6de6f3373..0eb7bd1783058f547ee4c1499e24041bba305edb 100644 --- a/examples/SPIN/spinmin/log.19Nov19.spin.iron_min.g++.4 +++ b/examples/SPIN/spinmin/log.14Apr20.spin.iron_min.g++.4 @@ -1,4 +1,6 @@ -LAMMPS (30 Oct 2019) +LAMMPS (19 Mar 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:94) + using 1 OpenMP thread(s) per MPI task # bcc iron in a 3d periodic box units metal @@ -17,7 +19,7 @@ Created orthogonal box = (0 0 0) to (14.3325 14.3325 14.3325) 1 by 2 by 2 MPI processor grid create_atoms 1 box Created 250 atoms - create_atoms CPU = 0.000759125 secs + create_atoms CPU = 0.000731945 secs # setting mass, mag. moments, and interactions for bcc iron @@ -60,8 +62,8 @@ dump 1 all custom 100 dump.lammpstrj type x y z c_outsp[1] c_outsp[2] c_outsp[ min_style spin min_modify alpha_damp 1.0 discrete_factor 10.0 minimize 1.0e-10 1.0e-10 1000 100 -WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:177) -WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:87) +WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:190) +WARNING: Using spin pair style without nve/spin or neb/spin (../pair_spin.cpp:88) Neighbor list info ... update every 1 steps, delay 0 steps, check yes max neighbors/atom: 2000, page size: 100000 @@ -76,25 +78,25 @@ Neighbor list info ... bin: standard Per MPI rank memory allocation (min/avg/max) = 6.828 | 6.829 | 6.829 Mbytes Step Time v_magx v_magz v_magnorm v_tmag TotEng - 0 0 -0.0285071136621457 -0.00948990815281275 0.0764569750905723 5048.5607623768 -0.701465876910695 - 100 0.01 -0.584953861980204 -0.0517163256267969 0.999992350892306 6.25556948778489e-05 -50.5787443620229 - 200 0.02 -0.584864756506845 -0.0547143484057154 0.999999990495506 3.49782260454051e-06 -50.5787971409246 - 300 0.03 -0.5847600493607 -0.0578846348986585 0.999999999988173 3.83095226804998e-06 -50.5788061208592 - 400 0.04 -0.584642875238891 -0.06123730753627 0.999999999999984 4.28575832708228e-06 -50.5788161053499 - 500 0.05 -0.584511765589526 -0.0647826190376232 0.999999999999999 4.79421486949061e-06 -50.5788272748473 - 600 0.06 -0.584365074206158 -0.0685313536438759 0.999999999999999 5.36242072641826e-06 -50.5788397688148 - 700 0.07 -0.584200963215272 -0.0724948469588718 1 5.99725249459218e-06 -50.5788537427249 - 800 0.08 -0.584017381477007 -0.0766850043611196 1 6.7063419199184e-06 -50.5788693699014 - 900 0.09 -0.583812040722352 -0.0811143180675365 0.999999999999998 7.49814943594153e-06 -50.5788868434688 - 1000 0.1 -0.583582389243979 -0.0857958823565732 0.999999999999999 8.38204259112203e-06 -50.5789063784897 -Loop time of 0.0845464 on 4 procs for 1000 steps with 250 atoms - -99.8% CPU use with 4 MPI tasks x no OpenMP threads + 0 0 -0.0285071136621457 -0.00948990815281275 0.0764569750905723 5048.5607623768 -0.354774619362399 + 100 0.01 -0.584953861980204 -0.0517163256267969 0.999992350892306 6.25556948778489e-05 -25.2894057771132 + 200 0.02 -0.584864756506845 -0.0547143484057154 0.999999990495506 3.49782260454051e-06 -25.2894359914181 + 300 0.03 -0.5847600493607 -0.0578846348986585 0.999999999988173 3.83095226804998e-06 -25.2894449433168 + 400 0.04 -0.584642875238891 -0.06123730753627 0.999999999999984 4.28575832708228e-06 -25.2894549277729 + 500 0.05 -0.584511765589526 -0.0647826190376232 0.999999999999999 4.79421486949061e-06 -25.2894660972702 + 600 0.06 -0.584365074206158 -0.0685313536438759 0.999999999999999 5.36242072641826e-06 -25.2894785912378 + 700 0.07 -0.584200963215272 -0.0724948469588718 1 5.99725249459218e-06 -25.2894925651479 + 800 0.08 -0.584017381477007 -0.0766850043611196 1 6.7063419199184e-06 -25.2895081923244 + 900 0.09 -0.583812040722352 -0.0811143180675365 0.999999999999998 7.49814943594153e-06 -25.2895256658919 + 1000 0.1 -0.583582389243979 -0.0857958823565732 0.999999999999999 8.38204259112203e-06 -25.2895452009127 +Loop time of 0.086317 on 4 procs for 1000 steps with 250 atoms + +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads Minimization stats: Stopping criterion = max iterations Energy initial, next-to-last, final = - -0.701465876911 -50.5789061722 -50.5789063785 + -0.354774619362 -25.2895449946 -25.2895452009 Force two-norm initial, final = 0 0 Force max component initial, final = 0 0 Final line search alpha, max atom move = 0 0 @@ -103,12 +105,12 @@ Minimization stats: MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.043007 | 0.045307 | 0.04776 | 0.8 | 53.59 +Pair | 0.042744 | 0.045964 | 0.049416 | 1.2 | 53.25 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.026827 | 0.029139 | 0.031438 | 1.0 | 34.47 -Output | 0.0023198 | 0.0023302 | 0.0023572 | 0.0 | 2.76 -Modify | 0.00041103 | 0.0004673 | 0.00054026 | 0.0 | 0.55 -Other | | 0.007303 | | | 8.64 +Comm | 0.026905 | 0.030113 | 0.033464 | 1.5 | 34.89 +Output | 0.0023746 | 0.0023909 | 0.0024335 | 0.1 | 2.77 +Modify | 0.00052047 | 0.00055218 | 0.00058579 | 0.0 | 0.64 +Other | | 0.007297 | | | 8.45 Nlocal: 62.5 ave 65 max 60 min Histogram: 2 0 0 0 0 0 0 0 0 2 diff --git a/examples/SPIN/test_problems/README b/examples/SPIN/test_problems/README index 5557e3d42b688428929b87ad3d31cef9f3e39baa..0a1362ec9c54f188ac7a56e766bb4e50890c2428 100644 --- a/examples/SPIN/test_problems/README +++ b/examples/SPIN/test_problems/README @@ -1,4 +1,4 @@ -** The objective of the benchmark examples in this directory +** The objective of the test problems in this directory is the following twofold: - verify the implementation of the LAMMPS' SPIN package by comparing its results to well-known analytic results, or @@ -6,39 +6,39 @@ - provide users with simple comparisons, allowing them to better understand what is implemented in the code. -The LAMMPS input file (bench-*) can be modified, as well as the +The LAMMPS input file (test-*) can be modified, as well as the associated python script, in order to try different comparisons. All scripts can be run by executing the shell script from its directory. Example: -./run-bench-exchange.sh from the benchmarck_damped_exchange/ +./run-test-exchange.sh from the validation_damped_exchange/ directory. -** Below a brief description of the different benchmark +** Below a brief description of the different validation problems: -- benchmarck_damped_precession: +- validation_damped_precession: simulates the damped precession of a single spin in a magnetic field. - Run as: ./run-bench-prec.sh + Run as: ./run-test-prec.sh Output: x, y and z components of the magnetization, and magnetic energy. -- benchmarck_damped_exchange: +- validation_damped_exchange: simulates two spins interacting through the exchange interaction. The parameters in the LAMMPS input script - (bench-spin-precession.in) are calibrated to match the + (test-spin-precession.in) are calibrated to match the exchange definition in the python script (llg_exchange.py). - Run as: ./run-bench-exchange.sh + Run as: ./run-test-exchange.sh Output: average magnetization resulting from the damped precession of the two interacting spins. Also plots the evolution of the magnetic energy. -- benchmarck_langevin_precession: +- validation_langevin_precession: simulates a single spin in a magnetic field and in contact with a thermal bath, and compares the statistical averages of the output to the analytical result of the Langevin function. - Run as: ./run-bench-prec.sh + Run as: ./run-test-prec.sh Output: statistical average of the z-component of the magnetization (along the applied field) and of the magnetic energy versus temperature. Comparison to the Langevin function diff --git a/examples/SPIN/test_problems/validation_damped_exchange/llg_exchange.py b/examples/SPIN/test_problems/validation_damped_exchange/llg_exchange.py index dd1c543bb3558f2b811d4c73e9210ad259d3329f..49eecb5b44d08c5d880c1f34bb6cd4d23476fbd0 100755 --- a/examples/SPIN/test_problems/validation_damped_exchange/llg_exchange.py +++ b/examples/SPIN/test_problems/validation_damped_exchange/llg_exchange.py @@ -65,6 +65,6 @@ for t in range (0,N): # calc. average magnetization Sm = (S1+S2)*0.5 # calc. energy - en = -J0*(np.dot(S1,S2)) + en = -2.0*J0*(np.dot(S1,S2)) # print res. in ps for comparison with LAMMPS print(t*dt/1000.0,Sm[0],Sm[1],Sm[2],en) diff --git a/examples/SPIN/test_problems/validation_damped_exchange/run-test-exchange.sh b/examples/SPIN/test_problems/validation_damped_exchange/run-test-exchange.sh index 15de8d350e09431dc6d3ef6932ebe446d635af68..599730fe7b88e55c91cb1ef87e93b4ad05ca2eb1 100755 --- a/examples/SPIN/test_problems/validation_damped_exchange/run-test-exchange.sh +++ b/examples/SPIN/test_problems/validation_damped_exchange/run-test-exchange.sh @@ -5,7 +5,7 @@ rm res_*.dat # compute Lammps ./../../../../src/lmp_serial \ - -in bench-spin-precession.in + -in test-spin-precession.in in="$(grep -n Step log.lammps | awk -F ':' '{print $1}')" en="$(grep -n Loop log.lammps | awk -F ':' '{print $1}')" in="$(echo "$in+1" | bc -l)" diff --git a/examples/SPIN/test_problems/validation_damped_exchange/bench-spin-precession.in b/examples/SPIN/test_problems/validation_damped_exchange/test-spin-precession.in similarity index 100% rename from examples/SPIN/test_problems/validation_damped_exchange/bench-spin-precession.in rename to examples/SPIN/test_problems/validation_damped_exchange/test-spin-precession.in diff --git a/examples/SPIN/test_problems/validation_damped_exchange/two_spins.data b/examples/SPIN/test_problems/validation_damped_exchange/two_spins.data new file mode 100644 index 0000000000000000000000000000000000000000..013f8137511fd02e1d16d0f2a4f7106cc4300209 --- /dev/null +++ b/examples/SPIN/test_problems/validation_damped_exchange/two_spins.data @@ -0,0 +1,22 @@ +LAMMPS data file via write_data, version 19 Sep 2019, timestep = 0 + +2 atoms +1 atom types + +0.0 6.0 xlo xhi +0.0 3.0 ylo yhi +0.0 3.0 zlo zhi + +Masses + +1 1 + +Atoms # spin + +1 1 2.0 0.0 0.0 0.0 1.0 0.0 0.0 0 0 0 +2 1 2.0 3.0 0.0 0.0 0.0 1.0 0.0 0 0 0 + +Velocities + +1 0.0 0.0 0.0 +2 0.0 0.0 0.0 diff --git a/examples/SPIN/test_problems/validation_damped_precession/run-test-prec.sh b/examples/SPIN/test_problems/validation_damped_precession/run-test-prec.sh index 49ebc2ac4efd19895877fe847d5e728b0c731096..86091793767c7300328e9a76252b54143410d79e 100755 --- a/examples/SPIN/test_problems/validation_damped_precession/run-test-prec.sh +++ b/examples/SPIN/test_problems/validation_damped_precession/run-test-prec.sh @@ -5,7 +5,7 @@ rm res_*.dat # compute Lammps ./../../../../src/lmp_serial \ - -in bench-spin-precession.in + -in test-spin-precession.in in="$(grep -n Step log.lammps | awk -F ':' '{print $1}')" en="$(grep -n Loop log.lammps | awk -F ':' '{print $1}')" in="$(echo "$in+1" | bc -l)" @@ -13,7 +13,7 @@ en="$(echo "$en-$in" | bc -l)" tail -n +$in log.lammps | head -n $en > res_lammps.dat # compute Langevin -python3 -m llg_precession.py > res_llg.dat +python3 llg_precession.py > res_llg.dat # plot results -python3 -m plot_precession.py res_lammps.dat res_llg.dat +python3 plot_precession.py res_lammps.dat res_llg.dat diff --git a/examples/SPIN/test_problems/validation_damped_precession/bench-spin-precession.in b/examples/SPIN/test_problems/validation_damped_precession/test-spin-precession.in similarity index 90% rename from examples/SPIN/test_problems/validation_damped_precession/bench-spin-precession.in rename to examples/SPIN/test_problems/validation_damped_precession/test-spin-precession.in index ed8a5caeaf747f8bc77c83a77ad74828c865255c..b8e943e579cc6caa67417ea21f534eb316e67137 100644 --- a/examples/SPIN/test_problems/validation_damped_precession/bench-spin-precession.in +++ b/examples/SPIN/test_problems/validation_damped_precession/test-spin-precession.in @@ -3,7 +3,7 @@ units metal atom_style spin atom_modify map array -boundary p p p +boundary f f f # read_data singlespin.data @@ -26,6 +26,7 @@ variable Temperature equal 0.0 variable Nsteps equal 500000 fix 1 all nve/spin lattice no +# fix 2 all precession/spin zeeman ${H} 0.0 0.0 1.0 anisotropy ${Kan} 0.0 0.0 1.0 fix 2 all precession/spin zeeman ${H} 0.0 0.0 1.0 anisotropy ${Kan} 0.0 0.0 1.0 fix_modify 2 energy yes fix 3 all langevin/spin ${Temperature} 0.01 12345 diff --git a/examples/SPIN/test_problems/validation_langevin_precession/langevin.py b/examples/SPIN/test_problems/validation_langevin_precession/langevin.py index 7acb78014316abf67ace7355b7899c4e5e983a43..0e9b634eeba7f0c1997d27c0c7640423a6b8689a 100755 --- a/examples/SPIN/test_problems/validation_langevin_precession/langevin.py +++ b/examples/SPIN/test_problems/validation_langevin_precession/langevin.py @@ -1,12 +1,8 @@ #!/usr/bin/env python3 -#Program fitting the exchange interaction -#Model curve: Bethe-Slater function import numpy as np, pylab, tkinter import matplotlib.pyplot as plt import mpmath as mp -# from scipy.optimize import curve_fit -# from decimal import * mub=5.78901e-5 # Bohr magneton (eV/T) kb=8.617333262145e-5 # Boltzman constant (eV/K) @@ -24,4 +20,3 @@ tf=20.0 for i in range (0,npoints): temp=ti+i*(tf-ti)/npoints print('%lf %lf %lf' % (temp,func(temp),-g*mub*Hz*func(temp))) - diff --git a/examples/SPIN/test_problems/validation_langevin_precession/run-test-prec.sh b/examples/SPIN/test_problems/validation_langevin_precession/run-test-prec.sh index 98fceeca956f26661abc03fca7ffb1760e0526de..bcdd33790380e04e94e965b262dc6a95ec737f03 100755 --- a/examples/SPIN/test_problems/validation_langevin_precession/run-test-prec.sh +++ b/examples/SPIN/test_problems/validation_langevin_precession/run-test-prec.sh @@ -10,10 +10,9 @@ N=20 for (( i=0; i<$N; i++ )) do temp="$(echo "$tempi+$i*($tempf-$tempi)/$N" | bc -l)" - sed s/temperature/${temp}/g bench-prec-spin.template > \ - bench-prec-spin.in - ./../../../../src/lmp_serial \ - -in bench-prec-spin.in + sed s/temperature/${temp}/g test-prec-spin.template > \ + test-prec-spin.in + ./../../../../src/lmp_serial -in test-prec-spin.in Hz="$(tail -n 1 average_spin | awk -F " " '{print $3}')" sz="$(tail -n 1 average_spin | awk -F " " '{print $5}')" en="$(tail -n 1 average_spin | awk -F " " '{print $6}')" @@ -21,7 +20,7 @@ do done # compute Langevin -python3 -m langevin.py > res_langevin.dat +python3 langevin.py > res_langevin.dat # plot results -python3 -m plot_precession.py res_lammps.dat res_langevin.dat +python3 plot_precession.py res_lammps.dat res_langevin.dat diff --git a/examples/SPIN/test_problems/validation_langevin_precession/bench-prec-spin.template b/examples/SPIN/test_problems/validation_langevin_precession/test-prec-spin.template similarity index 100% rename from examples/SPIN/test_problems/validation_langevin_precession/bench-prec-spin.template rename to examples/SPIN/test_problems/validation_langevin_precession/test-prec-spin.template diff --git a/examples/SPIN/test_problems/validation_nve/Fe_Mishin2006.eam.alloy b/examples/SPIN/test_problems/validation_nve/Fe_Mishin2006.eam.alloy new file mode 100644 index 0000000000000000000000000000000000000000..69231bb7eeed5677009482896fe520f4445413dd --- /dev/null +++ b/examples/SPIN/test_problems/validation_nve/Fe_Mishin2006.eam.alloy @@ -0,0 +1,15009 @@ +comment 1 +comment 2 +Converted by Ganga P Purja Pun using C++ code on Mon Nov 3 10:48:17 2014 +1 Fe +5001 2.400000000000000e-03 5001 1.134673400048920e-03 5.673367000244601e+00 +26 5.584700000000000e+01 2.855300000000000e+00 BCC + 0.000000000000000e+00 + -2.338738741480766e-02 + -4.628214468925276e-02 + -6.912258036387915e-02 + -9.175603963501618e-02 + -1.141497214000000e-01 + -1.363388222824136e-01 + -1.583226111166723e-01 + -1.800965752913192e-01 + -2.016645989796093e-01 + -2.230289901000000e-01 + -2.441907391820846e-01 + -2.651515164004249e-01 + -2.859130554412839e-01 + -3.064769176965011e-01 + -3.268446844000000e-01 + -3.470179531091855e-01 + -3.669982968636285e-01 + -3.867872784635140e-01 + -4.063864535839295e-01 + -4.257973671999999e-01 + -4.450215551034667e-01 + -4.640605423684923e-01 + -4.829158454463851e-01 + -5.015889707095635e-01 + -5.200814146000000e-01 + -5.383946650297390e-01 + -5.565301991603658e-01 + -5.744894857268537e-01 + -5.922739837155686e-01 + -6.098851423000000e-01 + -6.273244022645037e-01 + -6.445931939756846e-01 + -6.616929394780281e-01 + -6.786250511352716e-01 + -6.953909318999999e-01 + -7.119919765952718e-01 + -7.284295696432279e-01 + -7.447050873484842e-01 + -7.608198966551055e-01 + -7.767753551999997e-01 + -7.925728126189590e-01 + -8.082136084644670e-01 + -8.236990743647939e-01 + -8.390305327768360e-01 + -8.542092970000001e-01 + -8.692366724924486e-01 + -8.841139549244775e-01 + -8.988424321942350e-01 + -9.134233831702263e-01 + -9.278580778000000e-01 + -9.421477783833053e-01 + -9.562937376266863e-01 + -9.702972006149804e-01 + -9.841594035897939e-01 + -9.978815741999999e-01 + -1.011464932626877e+00 + -1.024910689374227e+00 + -1.038220047492379e+00 + -1.051394201530088e+00 + -1.064434338000000e+00 + -1.077341636148692e+00 + -1.090117264995124e+00 + -1.102762386491716e+00 + -1.115278154872840e+00 + -1.127665716000000e+00 + -1.139926208397942e+00 + -1.152060761127338e+00 + -1.164070496370367e+00 + -1.175956528594255e+00 + -1.187719964000000e+00 + -1.199361901614307e+00 + -1.210883431375302e+00 + -1.222285636497208e+00 + -1.233569592577916e+00 + -1.244736367000000e+00 + -1.255787020138112e+00 + -1.266722603828963e+00 + -1.277544163022812e+00 + -1.288252734706093e+00 + -1.298849349000000e+00 + -1.309335029515858e+00 + -1.319710789766606e+00 + -1.329977637188551e+00 + -1.340136572985217e+00 + -1.350188590000000e+00 + -1.360134674013246e+00 + -1.369975802739515e+00 + -1.379712947700534e+00 + -1.389347073262624e+00 + -1.398879136000000e+00 + -1.408310086019347e+00 + -1.417640866058629e+00 + -1.426872412303706e+00 + -1.436005653062347e+00 + -1.445041510000000e+00 + -1.453980898788701e+00 + -1.462824726507764e+00 + -1.471573894410746e+00 + -1.480229297407323e+00 + -1.488791823000000e+00 + -1.497262352264216e+00 + -1.505641758273629e+00 + -1.513930908641532e+00 + -1.522130664940848e+00 + -1.530241881000000e+00 + -1.538265404312065e+00 + -1.546202075663511e+00 + -1.554052729949587e+00 + -1.561818194964572e+00 + -1.569499292000000e+00 + -1.577096836740392e+00 + -1.584611637631811e+00 + -1.592044497451960e+00 + -1.599396212413425e+00 + -1.606667572000000e+00 + -1.613859360067553e+00 + -1.620972353850301e+00 + -1.628007324820493e+00 + -1.634965037585305e+00 + -1.641846251000000e+00 + -1.648651718746855e+00 + -1.655382187120556e+00 + -1.662038397074428e+00 + -1.668621083574689e+00 + -1.675130975000000e+00 + -1.681568794320005e+00 + -1.687935258528783e+00 + -1.694231079461267e+00 + -1.700456962682860e+00 + -1.706613607000000e+00 + -1.712701705964896e+00 + -1.718721948142722e+00 + -1.724675016499694e+00 + -1.730561586828580e+00 + -1.736382330000000e+00 + -1.742137912457411e+00 + -1.747828994017656e+00 + -1.753456229026646e+00 + -1.759020265526974e+00 + -1.764521747000000e+00 + -1.769961312537754e+00 + -1.775339594027171e+00 + -1.780657218386706e+00 + -1.785914807192779e+00 + -1.791112977000000e+00 + -1.796252339747382e+00 + -1.801333500673453e+00 + -1.806357060360666e+00 + -1.811323614328498e+00 + -1.816233753000000e+00 + -1.821088062150410e+00 + -1.825887120985276e+00 + -1.830631504346673e+00 + -1.835321782397329e+00 + -1.839958520000000e+00 + -1.844542277375300e+00 + -1.849073608812209e+00 + -1.853553064572349e+00 + -1.857981190434394e+00 + -1.862358526000000e+00 + -1.866685606181999e+00 + -1.870962962067843e+00 + -1.875191119963197e+00 + -1.879370599902195e+00 + -1.883501918000000e+00 + -1.887585586736770e+00 + -1.891622112755978e+00 + -1.895611998485404e+00 + -1.899555741651499e+00 + -1.903453835000000e+00 + -1.907306767129976e+00 + -1.911115021853308e+00 + -1.914879078883785e+00 + -1.918599413067872e+00 + -1.922276495000000e+00 + -1.925910791456493e+00 + -1.929502763824010e+00 + -1.933052869645757e+00 + -1.936561562187136e+00 + -1.940029290000000e+00 + -1.943456497684402e+00 + -1.946843625242175e+00 + -1.950191109032846e+00 + -1.953499381145042e+00 + -1.956768869000000e+00 + -1.959999996258605e+00 + -1.963193182622893e+00 + -1.966348843806269e+00 + -1.969467390558660e+00 + -1.972549230000000e+00 + -1.975594766012145e+00 + -1.978604397775412e+00 + -1.981578520793180e+00 + -1.984517526364655e+00 + -1.987421802000000e+00 + -1.990291731861874e+00 + -1.993127695559656e+00 + -1.995930069364364e+00 + -1.998699225767272e+00 + -2.001435533000000e+00 + -2.004139355858378e+00 + -2.006811055538481e+00 + -2.009450989763890e+00 + -2.012059511961222e+00 + -2.014636972000000e+00 + -2.017183716742461e+00 + -2.019700089231340e+00 + -2.022186429001382e+00 + -2.024643071393187e+00 + -2.027070349000000e+00 + -2.029468591629637e+00 + -2.031838124095820e+00 + -2.034179268100215e+00 + -2.036492342201070e+00 + -2.038777662000000e+00 + -2.041035540156417e+00 + -2.043266284490031e+00 + -2.045470200083453e+00 + -2.047647589335177e+00 + -2.049798751000000e+00 + -2.051923980684690e+00 + -2.054023570214561e+00 + -2.056097808968247e+00 + -2.058146983649728e+00 + -2.060171377000000e+00 + -2.062171268551674e+00 + -2.064146934640815e+00 + -2.066098649159696e+00 + -2.068026683134947e+00 + -2.069931304000000e+00 + -2.071812776276246e+00 + -2.073671361471072e+00 + -2.075507318519566e+00 + -2.077320903301032e+00 + -2.079112369000000e+00 + -2.080881966139512e+00 + -2.082629940879466e+00 + -2.084356537486872e+00 + -2.086061998635378e+00 + -2.087746563000000e+00 + -2.089410466229110e+00 + -2.091053941828707e+00 + -2.092677220771137e+00 + -2.094280530723314e+00 + -2.095864097000000e+00 + -2.097428142794787e+00 + -2.098972888139794e+00 + -2.100498550462023e+00 + -2.102005344216306e+00 + -2.103493482000000e+00 + -2.104963174393948e+00 + -2.106414628045970e+00 + -2.107848047779690e+00 + -2.109263636820768e+00 + -2.110661595000000e+00 + -2.112042119471926e+00 + -2.113405405101743e+00 + -2.114751645122076e+00 + -2.116081030815763e+00 + -2.117393750000000e+00 + -2.118689987937912e+00 + -2.119969928191390e+00 + -2.121233752504371e+00 + -2.122481640223532e+00 + -2.123713768000000e+00 + -2.124930310308645e+00 + -2.126131439345980e+00 + -2.127317325650607e+00 + -2.128488137848567e+00 + -2.129644042000000e+00 + -2.130785202020548e+00 + -2.131911779449632e+00 + -2.133023934312029e+00 + -2.134121824962966e+00 + -2.135205607000000e+00 + -2.136275433910872e+00 + -2.137331457489147e+00 + -2.138373827747866e+00 + -2.139402692469194e+00 + -2.140418197999999e+00 + -2.141420489142081e+00 + -2.142409707722756e+00 + -2.143385994030927e+00 + -2.144349486926974e+00 + -2.145300323000000e+00 + -2.146238637076898e+00 + -2.147164562479522e+00 + -2.148078231051947e+00 + -2.148979772720135e+00 + -2.149869315000000e+00 + -2.150746983835218e+00 + -2.151612904662093e+00 + -2.152467200947815e+00 + -2.153309993218032e+00 + -2.154141401000000e+00 + -2.154961542883784e+00 + -2.155770535619624e+00 + -2.156568494253713e+00 + -2.157355531798206e+00 + -2.158131760000000e+00 + -2.158897289576013e+00 + -2.159652229917454e+00 + -2.160396688379106e+00 + -2.161130769707277e+00 + -2.161854579000000e+00 + -2.162568220747540e+00 + -2.163271795520776e+00 + -2.163965403104795e+00 + -2.164649143391419e+00 + -2.165323114000000e+00 + -2.165987410839904e+00 + -2.166642128874188e+00 + -2.167287362019562e+00 + -2.167923202786971e+00 + -2.168549742000000e+00 + -2.169167069289456e+00 + -2.169775273557456e+00 + -2.170374442741976e+00 + -2.170964663390078e+00 + -2.171546020000000e+00 + -2.172118595836383e+00 + -2.172682474202094e+00 + -2.173237737093693e+00 + -2.173784464448991e+00 + -2.174322736000000e+00 + -2.174852630794634e+00 + -2.175374225221640e+00 + -2.175887595177988e+00 + -2.176392816678372e+00 + -2.176889964000000e+00 + -2.177379110090651e+00 + -2.177860327096639e+00 + -2.178333686466943e+00 + -2.178799258747679e+00 + -2.179257113000000e+00 + -2.179707317299531e+00 + -2.180149939409128e+00 + -2.180585046165010e+00 + -2.181012703042297e+00 + -2.181432975000000e+00 + -2.181845926509731e+00 + -2.182251621108717e+00 + -2.182650121032542e+00 + -2.183041486916871e+00 + -2.183425780000000e+00 + -2.183803061402426e+00 + -2.184173389857596e+00 + -2.184536823542827e+00 + -2.184893420600431e+00 + -2.185243238000000e+00 + -2.185586332004080e+00 + -2.185922759056265e+00 + -2.186252574500474e+00 + -2.186575831916728e+00 + -2.186892585000000e+00 + -2.187202887393400e+00 + -2.187506791832633e+00 + -2.187804350256584e+00 + -2.188095613705712e+00 + -2.188380633000000e+00 + -2.188659458643119e+00 + -2.188932140238827e+00 + -2.189198726845117e+00 + -2.189459267002233e+00 + -2.189713809000000e+00 + -2.189962400732430e+00 + -2.190205089044370e+00 + -2.190441920581333e+00 + -2.190672942002169e+00 + -2.190898199000000e+00 + -2.191117736662499e+00 + -2.191331600149922e+00 + -2.191539834109547e+00 + -2.191742482380937e+00 + -2.191939589000000e+00 + -2.192131197889608e+00 + -2.192317351831708e+00 + -2.192498093290244e+00 + -2.192673464653123e+00 + -2.192843508000000e+00 + -2.193008265149897e+00 + -2.193167777657277e+00 + -2.193322086821774e+00 + -2.193471233640668e+00 + -2.193615259000000e+00 + -2.193754203483761e+00 + -2.193888106693908e+00 + -2.194017008313546e+00 + -2.194140948496115e+00 + -2.194259967000000e+00 + -2.194374103230534e+00 + -2.194483396307522e+00 + -2.194587885225862e+00 + -2.194687608881331e+00 + -2.194782606000000e+00 + -2.194872915200472e+00 + -2.194958575082935e+00 + -2.195039623893670e+00 + -2.195116099394696e+00 + -2.195188040000000e+00 + -2.195255484352944e+00 + -2.195318470219860e+00 + -2.195377035223315e+00 + -2.195431217130485e+00 + -2.195481054000000e+00 + -2.195526583926446e+00 + -2.195567844428364e+00 + -2.195604873029958e+00 + -2.195637707516086e+00 + -2.195666386000000e+00 + -2.195690946583878e+00 + -2.195711426545218e+00 + -2.195727863658885e+00 + -2.195740296673043e+00 + -2.195748763000000e+00 + -2.195753299607926e+00 + -2.195753945356280e+00 + -2.195750739132009e+00 + -2.195743719093693e+00 + -2.195732923000000e+00 + -2.195718388771941e+00 + -2.195700155840199e+00 + -2.195678263244660e+00 + -2.195652748934943e+00 + -2.195623652000000e+00 + -2.195591012099144e+00 + -2.195554867993407e+00 + -2.195515258985693e+00 + -2.195472225489285e+00 + -2.195425807000000e+00 + -2.195376042760528e+00 + -2.195322973614639e+00 + -2.195266640267298e+00 + -2.195207082686241e+00 + -2.195144342000000e+00 + -2.195078459809379e+00 + -2.195009476453377e+00 + -2.194937433066797e+00 + -2.194862372466152e+00 + -2.194784337000000e+00 + -2.194703368615792e+00 + -2.194619509257747e+00 + -2.194532801771278e+00 + -2.194443290305841e+00 + -2.194351018000000e+00 + -2.194256027737437e+00 + -2.194158364279782e+00 + -2.194058072250755e+00 + -2.193955195446114e+00 + -2.193849779000000e+00 + -2.193741868885436e+00 + -2.193631510785602e+00 + -2.193518750557477e+00 + -2.193403634464252e+00 + -2.193286209000000e+00 + -2.193166521091908e+00 + -2.193044618884907e+00 + -2.192920550384463e+00 + -2.192794362988794e+00 + -2.192666105000000e+00 + -2.192535825071375e+00 + -2.192403570783236e+00 + -2.192269389306454e+00 + -2.192133327558461e+00 + -2.191995432000000e+00 + -2.191855748732582e+00 + -2.191714323538803e+00 + -2.191571201647935e+00 + -2.191426427571225e+00 + -2.191280046000000e+00 + -2.191132101498374e+00 + -2.190982637495000e+00 + -2.190831697104933e+00 + -2.190679323369808e+00 + -2.190525559000000e+00 + -2.190370446239990e+00 + -2.190214026313205e+00 + -2.190056340263544e+00 + -2.189897429222788e+00 + -2.189737334000000e+00 + -2.189576094894156e+00 + -2.189413751026334e+00 + -2.189250341662785e+00 + -2.189085906605225e+00 + -2.188920484000000e+00 + -2.188754111167896e+00 + -2.188586826517446e+00 + -2.188418667831656e+00 + -2.188249671505532e+00 + -2.188079874000000e+00 + -2.187909311655257e+00 + -2.187738019850499e+00 + -2.187566033827133e+00 + -2.187393388939138e+00 + -2.187220120000000e+00 + -2.187046261198758e+00 + -2.186871845656608e+00 + -2.186696906557450e+00 + -2.186521477499284e+00 + -2.186345591000000e+00 + -2.186169278929348e+00 + -2.185992573469870e+00 + -2.185815507881449e+00 + -2.185638116930091e+00 + -2.185460435000000e+00 + -2.185282496723147e+00 + -2.185104339046128e+00 + -2.184925999471230e+00 + -2.184747515559985e+00 + -2.184568926000000e+00 + -2.184390270419004e+00 + -2.184211589307456e+00 + -2.184032923638580e+00 + -2.183854314918697e+00 + -2.183675806000000e+00 + -2.183497440664645e+00 + -2.183319263062145e+00 + -2.183141318226586e+00 + -2.182963652427783e+00 + -2.182786312000000e+00 + -2.182609343803448e+00 + -2.182432796909005e+00 + -2.182256720850984e+00 + -2.182081165100584e+00 + -2.181906180000000e+00 + -2.181731816772078e+00 + -2.181558127901617e+00 + -2.181385166690271e+00 + -2.181212987245827e+00 + -2.181041644000000e+00 + -2.180871191888493e+00 + -2.180701687214938e+00 + -2.180533187286951e+00 + -2.180365750436408e+00 + -2.180199435000000e+00 + -2.180034299706266e+00 + -2.179870405073628e+00 + -2.179707812476292e+00 + -2.179546583956951e+00 + -2.179386782000000e+00 + -2.179228469569652e+00 + -2.179071710572415e+00 + -2.178916570209873e+00 + -2.178763115274171e+00 + -2.178611412000000e+00 + -2.178461526719817e+00 + -2.178313527960817e+00 + -2.178167485170301e+00 + -2.178023468394170e+00 + -2.177881548000000e+00 + -2.177741794911888e+00 + -2.177604281585152e+00 + -2.177469081134519e+00 + -2.177336267165003e+00 + -2.177205914000000e+00 + -2.177078096781969e+00 + -2.176952892179310e+00 + -2.176830377266735e+00 + -2.176710629289710e+00 + -2.176593727000000e+00 + -2.176479750089725e+00 + -2.176368778170715e+00 + -2.176260892035270e+00 + -2.176156174290115e+00 + -2.176054707000000e+00 + -2.175956572480315e+00 + -2.175861855847520e+00 + -2.175770642395214e+00 + -2.175683016800304e+00 + -2.175599066000000e+00 + -2.175518878125867e+00 + -2.175442540126260e+00 + -2.175370140365612e+00 + -2.175301769822078e+00 + -2.175237519000000e+00 + -2.175177478422601e+00 + -2.175121740498959e+00 + -2.175070398200953e+00 + -2.175023544771637e+00 + -2.174981275000000e+00 + -2.174943684570890e+00 + -2.174910868831887e+00 + -2.174882924320826e+00 + -2.174859949548785e+00 + -2.174842043000000e+00 + -2.174829303331104e+00 + -2.174821830410927e+00 + -2.174819725228089e+00 + -2.174823090027552e+00 + -2.174832027000000e+00 + -2.174846638699704e+00 + -2.174867029559900e+00 + -2.174893304738549e+00 + -2.174925569834485e+00 + -2.174963931000000e+00 + -2.175008495084293e+00 + -2.175059370394289e+00 + -2.175116665887380e+00 + -2.175180491027200e+00 + -2.175250956000000e+00 + -2.175328171805043e+00 + -2.175412250937077e+00 + -2.175503306357684e+00 + -2.175601451271103e+00 + -2.175706800000000e+00 + -2.175819467765500e+00 + -2.175939570549688e+00 + -2.176067225041086e+00 + -2.176202548787411e+00 + -2.176345660000000e+00 + -2.176496677644949e+00 + -2.176655722183164e+00 + -2.176822914601843e+00 + -2.176998376191533e+00 + -2.177182229000000e+00 + -2.177374595921169e+00 + -2.177575601341799e+00 + -2.177785370087074e+00 + -2.178004027196875e+00 + -2.178231699000000e+00 + -2.178468512862275e+00 + -2.178714597011325e+00 + -2.178970080062299e+00 + -2.179235091002944e+00 + -2.179509760000000e+00 + -2.179794218272507e+00 + -2.180088598277346e+00 + -2.180393032665419e+00 + -2.180707654074028e+00 + -2.181032597000000e+00 + -2.181367997183408e+00 + -2.181713990526695e+00 + -2.182070713375897e+00 + -2.182438302803596e+00 + -2.182816897000000e+00 + -2.183206635150288e+00 + -2.183607657686531e+00 + -2.184020105275964e+00 + -2.184444118610974e+00 + -2.184879840000000e+00 + -2.185327412889597e+00 + -2.185786981109685e+00 + -2.186258689137973e+00 + -2.186742682377725e+00 + -2.187239107000000e+00 + -2.187748109862624e+00 + -2.188269838801850e+00 + -2.188804442677439e+00 + -2.189352071523296e+00 + -2.189912875000000e+00 + -2.190487003093955e+00 + -2.191074608322116e+00 + -2.191675843787203e+00 + -2.192290862610885e+00 + -2.192919819000000e+00 + -2.193562867915730e+00 + -2.194220164552147e+00 + -2.194891865404003e+00 + -2.195578128862665e+00 + -2.196279113000000e+00 + -2.196994976008069e+00 + -2.197725877814248e+00 + -2.198471979076637e+00 + -2.199233441010543e+00 + -2.200010426000000e+00 + -2.200803097224683e+00 + -2.201611618154960e+00 + -2.202436152922896e+00 + -2.203276866629103e+00 + -2.204133924999999e+00 + -2.205007494076377e+00 + -2.205897739759803e+00 + -2.206804828380775e+00 + -2.207728927012060e+00 + -2.208670203000000e+00 + -2.209628824019662e+00 + -2.210604958519273e+00 + -2.211598775212799e+00 + -2.212610442959744e+00 + -2.213640131000000e+00 + -2.214688008997179e+00 + -2.215754247358006e+00 + -2.216839016713686e+00 + -2.217942487809252e+00 + -2.219064832000000e+00 + -2.220206221175054e+00 + -2.221366827800435e+00 + -2.222546824259503e+00 + -2.223746382727115e+00 + -2.224965677000000e+00 + -2.226204881636015e+00 + -2.227464170011377e+00 + -2.228743716360184e+00 + -2.230043696636770e+00 + -2.231364286000000e+00 + -2.232705659360148e+00 + -2.234067993079961e+00 + -2.235451464138931e+00 + -2.236856249856844e+00 + -2.238282527000000e+00 + -2.239730472524265e+00 + -2.241200265638654e+00 + -2.242692085287406e+00 + -2.244206109271373e+00 + -2.245742517000000e+00 + -2.247301488882056e+00 + -2.248883204910052e+00 + -2.250487845315945e+00 + -2.252115590911750e+00 + -2.253766623000000e+00 + -2.255441123360801e+00 + -2.257139274542631e+00 + -2.258861259219423e+00 + -2.260607260005651e+00 + -2.262377460000000e+00 + -2.264172042724291e+00 + -2.265991192137124e+00 + -2.267835092970031e+00 + -2.269703930922391e+00 + -2.271597891000000e+00 + -2.273517158096056e+00 + -2.275461918662951e+00 + -2.277432359442962e+00 + -2.279428667085979e+00 + -2.281451029000000e+00 + -2.283499633104788e+00 + -2.285574667389452e+00 + -2.287676320195930e+00 + -2.289804780398682e+00 + -2.291960237000000e+00 + -2.294142879454985e+00 + -2.296352898805551e+00 + -2.298590485768695e+00 + -2.300855830078550e+00 + -2.303149122999999e+00 + -2.305470556795997e+00 + -2.307820323545887e+00 + -2.310198615647936e+00 + -2.312605626084681e+00 + -2.315041548000000e+00 + -2.317506574745174e+00 + -2.320000900224320e+00 + -2.322524719122656e+00 + -2.325078227061991e+00 + -2.327661619000000e+00 + -2.330275089774933e+00 + -2.332918835677479e+00 + -2.335593053485966e+00 + -2.338297940187764e+00 + -2.341033693000000e+00 + -2.343800509406319e+00 + -2.346598587410773e+00 + -2.349428125303093e+00 + -2.352289321686241e+00 + -2.355182376000000e+00 + -2.358107488272472e+00 + -2.361064858786305e+00 + -2.364054687769198e+00 + -2.367077175375671e+00 + -2.370132523000000e+00 + -2.373220932737141e+00 + -2.376342606269360e+00 + -2.379497745810629e+00 + -2.382686554578887e+00 + -2.385909236000000e+00 + -2.389165993580208e+00 + -2.392457030846979e+00 + -2.395782552198058e+00 + -2.399142763298191e+00 + -2.402537869000000e+00 + -2.405968074028050e+00 + -2.409433584975734e+00 + -2.412934608682329e+00 + -2.416471351683178e+00 + -2.420044020999999e+00 + -2.423652824137149e+00 + -2.427297969206864e+00 + -2.430979664728804e+00 + -2.434698119632543e+00 + -2.438453543000000e+00 + -2.442246144168148e+00 + -2.446076133195298e+00 + -2.449943720571852e+00 + -2.453849117184546e+00 + -2.457792534000000e+00 + -2.461774182279110e+00 + -2.465794274341647e+00 + -2.469853022790889e+00 + -2.473950640299041e+00 + -2.478087340000000e+00 + -2.482263335430129e+00 + -2.486478840559030e+00 + -2.490734069661931e+00 + -2.495029237377275e+00 + -2.499364559000000e+00 + -2.503740250274207e+00 + -2.508156527124766e+00 + -2.512613605692700e+00 + -2.517111702474631e+00 + -2.521651035000000e+00 + -2.526231821279088e+00 + -2.530854278665131e+00 + -2.535518625205626e+00 + -2.540225080261870e+00 + -2.544973863000000e+00 + -2.549765192573217e+00 + -2.554599288888442e+00 + -2.559476372494764e+00 + -2.564396664604125e+00 + -2.569360386000000e+00 + -2.574367757513646e+00 + -2.579419001423863e+00 + -2.584514340338642e+00 + -2.589653996851589e+00 + -2.594838193999999e+00 + -2.600067155253186e+00 + -2.605341104662645e+00 + -2.610660266783872e+00 + -2.616024866689215e+00 + -2.621435129000000e+00 + -2.626891278432673e+00 + -2.632393541366548e+00 + -2.637942144571998e+00 + -2.643537314797249e+00 + -2.649179279000000e+00 + -2.654868264471787e+00 + -2.660604499292826e+00 + -2.666388211776204e+00 + -2.672219630341834e+00 + -2.678098984000000e+00 + -2.684026502306392e+00 + -2.690002415494505e+00 + -2.696026954017429e+00 + -2.702100348331385e+00 + -2.708222828000000e+00 + -2.714394620651795e+00 + -2.720615948464916e+00 + -2.726887030965477e+00 + -2.733208085290139e+00 + -2.739579324000000e+00 + -2.746000955816228e+00 + -2.752473185385865e+00 + -2.758996214641690e+00 + -2.765570242469367e+00 + -2.772195463000000e+00 + -2.778872066776275e+00 + -2.785600241574056e+00 + -2.792380171842594e+00 + -2.799212037606767e+00 + -2.806096015000000e+00 + -2.813032277129447e+00 + -2.820020994035244e+00 + -2.827062331911353e+00 + -2.834156451970738e+00 + -2.841303512999999e+00 + -2.848503671252426e+00 + -2.855757077985244e+00 + -2.863063881095023e+00 + -2.870424224890850e+00 + -2.877838249999999e+00 + -2.885306093928394e+00 + -2.892827890388094e+00 + -2.900403769651381e+00 + -2.908033857857018e+00 + -2.915718277999999e+00 + -2.923457150039019e+00 + -2.931250588977881e+00 + -2.939098706889091e+00 + -2.947001612872150e+00 + -2.954959411999998e+00 + -2.962972205810575e+00 + -2.971040091434060e+00 + -2.979163163083816e+00 + -2.987341511831155e+00 + -2.995575224999998e+00 + -3.003864386499012e+00 + -3.012209075546996e+00 + -3.020609368336417e+00 + -3.029065337835770e+00 + -3.037577052999999e+00 + -3.046144579520789e+00 + -3.054767979666142e+00 + -3.063447312238444e+00 + -3.072182631692820e+00 + -3.080973988999999e+00 + -3.089821432099915e+00 + -3.098725004829577e+00 + -3.107684748048404e+00 + -3.116700699185534e+00 + -3.125772890999999e+00 + -3.134901352715559e+00 + -3.144086110699870e+00 + -3.153327188100508e+00 + -3.162624603843408e+00 + -3.171978372999998e+00 + -3.181388507546933e+00 + -3.190855016073102e+00 + -3.200377903469057e+00 + -3.209957169965227e+00 + -3.219592812999998e+00 + -3.229284827363896e+00 + -3.239033203402719e+00 + -3.248837927724427e+00 + -3.258698982652799e+00 + -3.268616347999998e+00 + -3.278590000914418e+00 + -3.288619913401403e+00 + -3.298706054004673e+00 + -3.308848387625167e+00 + -3.319046875999998e+00 + -3.329301477934322e+00 + -3.339612147844228e+00 + -3.349978836592516e+00 + -3.360401490990458e+00 + -3.370880054999998e+00 + -3.381414469596773e+00 + -3.392004670266620e+00 + -3.402650589976440e+00 + -3.413352159446950e+00 + -3.424109303999998e+00 + -3.434921945057392e+00 + -3.445790001867386e+00 + -3.456713390096515e+00 + -3.467692020464062e+00 + -3.478725800999998e+00 + -3.489814636890736e+00 + -3.500958427789171e+00 + -3.512157070764700e+00 + -3.523410460589800e+00 + -3.534718486999998e+00 + -3.546081035880271e+00 + -3.557497990199610e+00 + -3.568969229634993e+00 + -3.580494629586285e+00 + -3.592074061999998e+00 + -3.603707395759104e+00 + -3.615394495446970e+00 + -3.627135222559569e+00 + -3.638929435115233e+00 + -3.650776987000000e+00 + -3.662677728742245e+00 + -3.674631507325805e+00 + -3.686638166579447e+00 + -3.698697546469576e+00 + -3.710809483000000e+00 + -3.722973808828209e+00 + -3.735190352595157e+00 + -3.747458940125227e+00 + -3.759779394010754e+00 + -3.772151532000000e+00 + -3.784575168342916e+00 + -3.797050115062026e+00 + -3.809576180292756e+00 + -3.822153166803174e+00 + -3.834780875000000e+00 + -3.847459102820189e+00 + -3.860187643203489e+00 + -3.872966285667494e+00 + -3.885794816080159e+00 + -3.898673017000000e+00 + -3.911600667911320e+00 + -3.924577543724543e+00 + -3.937603416269590e+00 + -3.950678053996523e+00 + -3.963801221000000e+00 + -3.976972678103186e+00 + -3.990192183512261e+00 + -4.003459491521890e+00 + -4.016774351164608e+00 + -4.030136509000000e+00 + -4.043545709147031e+00 + -4.057001691149858e+00 + -4.070504190840202e+00 + -4.084052939835804e+00 + -4.097647667000000e+00 + -4.111288098419088e+00 + -4.124973955231095e+00 + -4.138704955371648e+00 + -4.152480813397504e+00 + -4.166301240000000e+00 + -4.180165942572286e+00 + -4.194074624537170e+00 + -4.208026986370140e+00 + -4.222022725101974e+00 + -4.236061533000000e+00 + -4.250143098846027e+00 + -4.264267108996074e+00 + -4.278433246261039e+00 + -4.292641188627767e+00 + -4.306890611000000e+00 + -4.321181185386233e+00 + -4.335512579090955e+00 + -4.349884456391911e+00 + -4.364296478350024e+00 + -4.378748302000000e+00 + -4.393239580901771e+00 + -4.407769964394226e+00 + -4.422339098999587e+00 + -4.436946628138934e+00 + -4.451592191000000e+00 + -4.466275423153566e+00 + -4.480995955945297e+00 + -4.495753418053649e+00 + -4.510547435209278e+00 + -4.525377628000000e+00 + -4.540243613376725e+00 + -4.555145006346341e+00 + -4.570081418154680e+00 + -4.585052454714511e+00 + -4.600057719000000e+00 + -4.615096811360685e+00 + -4.630169328028963e+00 + -4.645274861878902e+00 + -4.660413001844071e+00 + -4.675583333000000e+00 + -4.690785437259527e+00 + -4.706018892955582e+00 + -4.721283275134317e+00 + -4.736578154793736e+00 + -4.751903099000000e+00 + -4.767257671719769e+00 + -4.782641433752779e+00 + -4.798053942304498e+00 + -4.813494749953581e+00 + -4.828963406000000e+00 + -4.844459456896403e+00 + -4.859982445123970e+00 + -4.875531909767719e+00 + -4.891107385884028e+00 + -4.906708405000000e+00 + -4.922334495555203e+00 + -4.937985181840751e+00 + -4.953659984814029e+00 + -4.969358421588884e+00 + -4.985080006000000e+00 + -5.000824248840914e+00 + -5.016590656340991e+00 + -5.032378731598668e+00 + -5.048187974277996e+00 + -5.064017880000000e+00 + -5.079867940973151e+00 + -5.095737645459726e+00 + -5.111626480823102e+00 + -5.127533934923204e+00 + -5.143459499999997e+00 + -5.159402672483111e+00 + -5.175362954369220e+00 + -5.191339851303958e+00 + -5.207332872891304e+00 + -5.223341533999998e+00 + -5.239365353688981e+00 + -5.255403855076862e+00 + -5.271456565155025e+00 + -5.287523015792912e+00 + -5.303602743999997e+00 + -5.319695290809813e+00 + -5.335800201177900e+00 + -5.351917023850607e+00 + -5.368045312413205e+00 + -5.384184625999997e+00 + -5.400334527792659e+00 + -5.416494583936292e+00 + -5.432664365069262e+00 + -5.448843447960337e+00 + -5.465031412999998e+00 + -5.481227843963791e+00 + -5.497432330198948e+00 + -5.513644465003656e+00 + -5.529863846001168e+00 + -5.546090074999998e+00 + -5.562322757794160e+00 + -5.578561506278419e+00 + -5.594805935740466e+00 + -5.611055664858841e+00 + -5.627310317999997e+00 + -5.643569523867812e+00 + -5.659832914603254e+00 + -5.676100126691991e+00 + -5.692370802379017e+00 + -5.708644587999997e+00 + -5.724921133351554e+00 + -5.741200092816319e+00 + -5.757481124931912e+00 + -5.773763893288205e+00 + -5.790048065999996e+00 + -5.806333315035348e+00 + -5.822619317227983e+00 + -5.838905753168464e+00 + -5.855192307810226e+00 + -5.871478670999998e+00 + -5.887764536642293e+00 + -5.904049603224381e+00 + -5.920333573291820e+00 + -5.936616154283948e+00 + -5.952897057999997e+00 + -5.969175999997380e+00 + -5.985452700712029e+00 + -6.001726884408804e+00 + -6.017998279848357e+00 + -6.034266620999998e+00 + -6.050531645917840e+00 + -6.066793096565948e+00 + -6.083050719154321e+00 + -6.099304265265417e+00 + -6.115553489999997e+00 + -6.131798152082848e+00 + -6.148038016850530e+00 + -6.164272852974367e+00 + -6.180502432221914e+00 + -6.196726531999996e+00 + -6.212944934149927e+00 + -6.229157424398349e+00 + -6.245363792906498e+00 + -6.261563835474968e+00 + -6.277757350999996e+00 + -6.293944141712862e+00 + -6.310124016459128e+00 + -6.326296787703612e+00 + -6.342462271423720e+00 + -6.358620288999997e+00 + -6.374770666045148e+00 + -6.390913231950829e+00 + -6.407047820441565e+00 + -6.423174270811367e+00 + -6.439292425999997e+00 + -6.455402132459349e+00 + -6.471503242529590e+00 + -6.487595612302881e+00 + -6.503679101824962e+00 + -6.519753575999998e+00 + -6.535818903908587e+00 + -6.551874959678351e+00 + -6.567921621040533e+00 + -6.583958769810407e+00 + -6.599986292999997e+00 + -6.616004081814032e+00 + -6.632012031732002e+00 + -6.648010042213294e+00 + -6.663998017633650e+00 + -6.679975866999997e+00 + -6.695943503153600e+00 + -6.711900843425355e+00 + -6.727847809100131e+00 + -6.743784326279565e+00 + -6.759710325999998e+00 + -6.775625743222601e+00 + -6.791530516957345e+00 + -6.807424590371784e+00 + -6.823307911868753e+00 + -6.839180434000000e+00 + -6.855042113095231e+00 + -6.870892911056689e+00 + -6.886732793343159e+00 + -6.902561729209182e+00 + -6.918379693000000e+00 + -6.934186663377454e+00 + -6.949982623974822e+00 + -6.965767562024019e+00 + -6.981541468861679e+00 + -6.997304341000000e+00 + -7.013056179149240e+00 + -7.028796988372566e+00 + -7.044526777567921e+00 + -7.060245560311449e+00 + -7.075953355000000e+00 + -7.091650184045992e+00 + -7.107336074531737e+00 + -7.123011057484204e+00 + -7.138675168614964e+00 + -7.154328448000000e+00 + -7.169970939523060e+00 + -7.185602692089082e+00 + -7.201223758621499e+00 + -7.216834196750369e+00 + -7.232434069000000e+00 + -7.248023441650831e+00 + -7.263602384451917e+00 + -7.279170972021925e+00 + -7.294729285389790e+00 + -7.310277408000000e+00 + -7.325815426345584e+00 + -7.341343434315181e+00 + -7.356861529294433e+00 + -7.372369811668458e+00 + -7.387868387000000e+00 + -7.403357365322682e+00 + -7.418836861854650e+00 + -7.434306995371617e+00 + -7.449767888578398e+00 + -7.465219669000000e+00 + -7.480662468362842e+00 + -7.496096423635060e+00 + -7.511521675509539e+00 + -7.526938368822738e+00 + -7.542346653000000e+00 + -7.557746681513402e+00 + -7.573138613106206e+00 + -7.588522610348394e+00 + -7.603898840111169e+00 + -7.619267474000000e+00 + -7.634628687556104e+00 + -7.649982660818226e+00 + -7.665329578157865e+00 + -7.680669629212444e+00 + -7.696003007000000e+00 + -7.711329908041110e+00 + -7.726650535322031e+00 + -7.741965095546557e+00 + -7.757273799081691e+00 + -7.772576861000000e+00 + -7.787874500482072e+00 + -7.803166941820082e+00 + -7.818454413357075e+00 + -7.833737148083599e+00 + -7.849015383000000e+00 + -7.864289358883056e+00 + -7.879559322305754e+00 + -7.894825523493435e+00 + -7.910088216491122e+00 + -7.925347660000000e+00 + -7.940604117030949e+00 + -7.955857856656654e+00 + -7.971109151088187e+00 + -7.986358275553978e+00 + -8.001605510999999e+00 + -8.016851143003514e+00 + -8.032095461580266e+00 + -8.047338760488806e+00 + -8.062581337981985e+00 + -8.077823497000001e+00 + -8.093065544394179e+00 + -8.108307791577566e+00 + -8.123550554205780e+00 + -8.138794153086785e+00 + -8.154038912999997e+00 + -8.169285162395173e+00 + -8.184533235306290e+00 + -8.199783469410583e+00 + -8.215036206329255e+00 + -8.230291792999997e+00 + -8.245550580528674e+00 + -8.260812923863309e+00 + -8.276079182235739e+00 + -8.291349720375887e+00 + -8.306624906999998e+00 + -8.321905114401627e+00 + -8.337190720129563e+00 + -8.352482105562956e+00 + -8.367779656388556e+00 + -8.383083762999997e+00 + -8.398394819954635e+00 + -8.413713227271362e+00 + -8.429039388338369e+00 + -8.444373710123081e+00 + -8.459716604999997e+00 + -8.475068489773328e+00 + -8.490429785807564e+00 + -8.505800918193746e+00 + -8.521182316459129e+00 + -8.536574414999997e+00 + -8.551977652264261e+00 + -8.567392471335332e+00 + -8.582819319266729e+00 + -8.598258647834163e+00 + -8.613710912999998e+00 + -8.629176574613023e+00 + -8.644656098315155e+00 + -8.660149953296175e+00 + -8.675658612460374e+00 + -8.691182553999997e+00 + -8.706722260346437e+00 + -8.722278218076596e+00 + -8.737850917931995e+00 + -8.753440855866357e+00 + -8.769048531999996e+00 + -8.784674450012169e+00 + -8.800319118245726e+00 + -8.815983049456063e+00 + -8.831666761752983e+00 + -8.847370776999997e+00 + -8.863095620572640e+00 + -8.878841823409489e+00 + -8.894609920288579e+00 + -8.910400450202564e+00 + -8.926213956999996e+00 + -8.942050988642462e+00 + -8.957912097948702e+00 + -8.973797841249739e+00 + -8.989708778929735e+00 + -9.005645476999996e+00 + -9.021608505891232e+00 + -9.037598440089864e+00 + -9.053615857732957e+00 + -9.069661341483132e+00 + -9.085735478999997e+00 + -9.101838862125330e+00 + -9.117972087538210e+00 + -9.134135755396374e+00 + -9.150330469883286e+00 + -9.166556840999997e+00 + -9.182815483079517e+00 + -9.199107013675079e+00 + -9.215432054583626e+00 + -9.231791233265957e+00 + -9.248185180999997e+00 + -9.264614532683632e+00 + -9.281079929109534e+00 + -9.297582014702897e+00 + -9.314121437654787e+00 + -9.330698850999996e+00 + -9.347314912003528e+00 + -9.363970283188971e+00 + -9.380665630745685e+00 + -9.397401624940878e+00 + -9.414178940999998e+00 + -9.430998258244742e+00 + -9.447860260503859e+00 + -9.464765635761319e+00 + -9.481715077019253e+00 + -9.498709280999996e+00 + -9.515748948037771e+00 + -9.532834784442173e+00 + -9.549967500513571e+00 + -9.567147810785697e+00 + -9.584376433999996e+00 + -9.601654092679016e+00 + -9.618981514566920e+00 + -9.636359431588877e+00 + -9.653788580476306e+00 + -9.671269701999998e+00 + -9.688803540653204e+00 + -9.706390846469759e+00 + -9.724032373152683e+00 + -9.741728878390186e+00 + -9.759481124999997e+00 + -9.777289880050315e+00 + -9.795155915261526e+00 + -9.813080006095444e+00 + -9.831062932433847e+00 + -9.849105478999997e+00 + -9.867208434586416e+00 + -9.885372592754736e+00 + -9.903598750780114e+00 + -9.921887710289466e+00 + -9.940240277999996e+00 + -9.958657264807959e+00 + -9.977139486156000e+00 + -9.995687760994512e+00 + -1.001430291248964e+01 + -1.003298577000000e+01 + -1.005173716741557e+01 + -1.007055794170109e+01 + -1.008944893313717e+01 + -1.010841098632109e+01 + -1.012744495000000e+01 + -1.014655167843811e+01 + -1.016573203809090e+01 + -1.018498689280856e+01 + -1.020431709913334e+01 + -1.022372353000000e+01 + -1.024320706932260e+01 + -1.026276860085199e+01 + -1.028240900753776e+01 + -1.030212917226508e+01 + -1.032192999000000e+01 + -1.034181236270672e+01 + -1.036177718920571e+01 + -1.038182537682789e+01 + -1.040195784652257e+01 + -1.042217551000000e+01 + -1.044247927800797e+01 + -1.046287008429113e+01 + -1.048334886197221e+01 + -1.050391653528098e+01 + -1.052457404000000e+01 + -1.054532232135862e+01 + -1.056616233045517e+01 + -1.058709501821704e+01 + -1.060812133414642e+01 + -1.062924224000000e+01 + -1.065045870478386e+01 + -1.067177169452023e+01 + -1.069318217826154e+01 + -1.071469113174534e+01 + -1.073629954000000e+01 + -1.075800839260036e+01 + -1.077981867489276e+01 + -1.080173138018267e+01 + -1.082374751517595e+01 + -1.084586808000000e+01 + -1.086809407471729e+01 + -1.089042651905600e+01 + -1.091286643223940e+01 + -1.093541482646511e+01 + -1.095807273000000e+01 + -1.098084118002027e+01 + -1.100372120627546e+01 + -1.102671384288809e+01 + -1.104982013415814e+01 + -1.107304113000000e+01 + -1.109637788366843e+01 + -1.111983144958023e+01 + -1.114340288661973e+01 + -1.116709326043168e+01 + -1.119090364000000e+01 + -1.121483509746141e+01 + -1.123888871051257e+01 + -1.126306556352589e+01 + -1.128736674843474e+01 + -1.131179335000000e+01 + -1.133634645465832e+01 + -1.136102717560643e+01 + -1.138583662099362e+01 + -1.141077588304154e+01 + -1.143584608000000e+01 + -1.146104834278586e+01 + -1.148638378227322e+01 + -1.151185351768562e+01 + -1.153745868860526e+01 + -1.156320043000000e+01 + -1.158907987623694e+01 + -1.161509817570602e+01 + -1.164125647703402e+01 + -1.166755592508495e+01 + -1.169399768000000e+01 + -1.172058291041322e+01 + -1.174731277861368e+01 + -1.177418844974534e+01 + -1.180121109657743e+01 + -1.182838189999999e+01 + -1.185570204579555e+01 + -1.188317272006268e+01 + -1.191079511332836e+01 + -1.193857042312863e+01 + -1.196649984999999e+01 + -1.199458459773775e+01 + -1.202282587700695e+01 + -1.205122490269986e+01 + -1.207978289369385e+01 + -1.210850107000000e+01 + -1.213738065440104e+01 + -1.216642287877588e+01 + -1.219562898067898e+01 + -1.222500020303083e+01 + -1.225453779000000e+01 + -1.228424298812801e+01 + -1.231411705144751e+01 + -1.234416123799292e+01 + -1.237437680934280e+01 + -1.240476502999999e+01 + -1.243532716862228e+01 + -1.246606450371358e+01 + -1.249697831672881e+01 + -1.252806989018327e+01 + -1.255934050999999e+01 + -1.259079146663310e+01 + -1.262242406008652e+01 + -1.265423959346900e+01 + -1.268623937120698e+01 + -1.271842469999999e+01 + -1.275079689157634e+01 + -1.278335727210730e+01 + -1.281610716656313e+01 + -1.284904789393346e+01 + -1.288218078999999e+01 + -1.291550719883721e+01 + -1.294902845305343e+01 + -1.298274589252790e+01 + -1.301666087289315e+01 + -1.305077474999999e+01 + -1.308508888000826e+01 + -1.311960462335401e+01 + -1.315432334734565e+01 + -1.318924642810263e+01 + -1.322437523999999e+01 + -1.325971115825294e+01 + -1.329525556797775e+01 + -1.333100986045822e+01 + -1.336697543256989e+01 + -1.340315367999999e+01 + -1.343954599979837e+01 + -1.347615379884262e+01 + -1.351297848978655e+01 + -1.355002149050285e+01 + -1.358728421999999e+01 + -1.362476809975143e+01 + -1.366247455932581e+01 + -1.370040503112116e+01 + -1.373856094968169e+01 + -1.377694375999999e+01 + -1.381555491216690e+01 + -1.385439585021465e+01 + -1.389346802391279e+01 + -1.393277289476898e+01 + -1.397231192999999e+01 + -1.401208659972945e+01 + -1.405209837359219e+01 + -1.409234872413346e+01 + -1.413283912961124e+01 + -1.417357107999999e+01 + -1.421454607102127e+01 + -1.425576559243092e+01 + -1.429723113890712e+01 + -1.433894421536596e+01 + -1.438090632999999e+01 + -1.442311899332400e+01 + -1.446558371903957e+01 + -1.450830202765583e+01 + -1.455127544879836e+01 + -1.459450550999999e+01 + -1.463799373973040e+01 + -1.468174167767078e+01 + -1.472575086722947e+01 + -1.477002285383887e+01 + -1.481455918999999e+01 + -1.485936143285468e+01 + -1.490443114031971e+01 + -1.494976987417127e+01 + -1.499537920245961e+01 + -1.504126069999999e+01 + -1.508741594534576e+01 + -1.513384651602358e+01 + -1.518055399754435e+01 + -1.522753998778076e+01 + -1.527480607999999e+01 + -1.532235386668537e+01 + -1.537018495189360e+01 + -1.541830094448208e+01 + -1.546670345694024e+01 + -1.551539410999999e+01 + -1.556437452805486e+01 + -1.561364632974880e+01 + -1.566321114034704e+01 + -1.571307059764629e+01 + -1.576322633999999e+01 + -1.581368000886133e+01 + -1.586443325932826e+01 + -1.591548774371123e+01 + -1.596684510633198e+01 + -1.601850700999999e+01 + -1.607047512763592e+01 + -1.612275112310131e+01 + -1.617533666634843e+01 + -1.622823344044972e+01 + -1.628144312999999e+01 + -1.633496741991010e+01 + -1.638880799548294e+01 + -1.644296655089035e+01 + -1.649744479372194e+01 + -1.655224442999999e+01 + -1.660736716535794e+01 + -1.666281471098534e+01 + -1.671858878335293e+01 + -1.677469110504862e+01 + -1.683112339999999e+01 + -1.688788739643611e+01 + -1.694498483759857e+01 + -1.700241746523662e+01 + -1.706018701398879e+01 + -1.711829522999999e+01 + -1.717674386844329e+01 + -1.723553468924849e+01 + -1.729466945458232e+01 + -1.735414992865347e+01 + -1.741397788000000e+01 + -1.747415508099178e+01 + -1.753468330867943e+01 + -1.759556434768274e+01 + -1.765679999203036e+01 + -1.771839203000000e+01 + -1.778034225038387e+01 + -1.784265246094084e+01 + -1.790532446959567e+01 + -1.796836007816754e+01 + -1.803176110000000e+01 + -1.809552935720682e+01 + -1.815966667575656e+01 + -1.822417488078262e+01 + -1.828905579597735e+01 + -1.835431126000000e+01 + -1.841994311958100e+01 + -1.848595321475806e+01 + -1.855234338946741e+01 + -1.861911549709020e+01 + -1.868627140000000e+01 + -1.875381296458075e+01 + -1.882174205218422e+01 + -1.889006052915166e+01 + -1.895877027181235e+01 + -1.902787316000000e+01 + -1.909737107797965e+01 + -1.916726592078253e+01 + -1.923755957952593e+01 + -1.930825393714747e+01 + -1.937935090000000e+01 + -1.945085238647674e+01 + -1.952276030080435e+01 + -1.959507655061933e+01 + -1.966780305499929e+01 + -1.974094174000000e+01 + -1.981449453618971e+01 + -1.988846337667131e+01 + -1.996285019538828e+01 + -2.003765692760933e+01 + -2.011288552000000e+01 + -2.018853792621815e+01 + -2.026461609876727e+01 + -2.034112199510926e+01 + -2.041805758075517e+01 + -2.049542482000000e+01 + -2.057322568006621e+01 + -2.065146214471047e+01 + -2.073013619484967e+01 + -2.080924980240138e+01 + -2.088880495999999e+01 + -2.096880367169853e+01 + -2.104924793164823e+01 + -2.113013973534757e+01 + -2.121148108557274e+01 + -2.129327399999999e+01 + -2.137552050224973e+01 + -2.145822260294134e+01 + -2.154138232011573e+01 + -2.162500168821614e+01 + -2.170908273999999e+01 + -2.179362750931509e+01 + -2.187863804236205e+01 + -2.196411638687395e+01 + -2.205006458870765e+01 + -2.213648469999998e+01 + -2.222337877888525e+01 + -2.231074889087196e+01 + -2.239859710699802e+01 + -2.248692550346576e+01 + -2.257573614999999e+01 + -2.266503111825121e+01 + -2.275481250533621e+01 + -2.284508240538831e+01 + -2.293584289979252e+01 + -2.302709608999998e+01 + -2.311884408797131e+01 + -2.321108899308483e+01 + -2.330383291176923e+01 + -2.339707796636268e+01 + -2.349082627999998e+01 + -2.358507997580010e+01 + -2.367984117841246e+01 + -2.377511201965127e+01 + -2.387089464198777e+01 + -2.396719118999998e+01 + -2.406400380890314e+01 + -2.416133464354705e+01 + -2.425918584868402e+01 + -2.435755959379285e+01 + -2.445645803999998e+01 + -2.455588334675619e+01 + -2.465583769169985e+01 + -2.475632325621871e+01 + -2.485734222078360e+01 + -2.495889676999998e+01 + -2.506098909313465e+01 + -2.516362138717989e+01 + -2.526679585042222e+01 + -2.537051468121954e+01 + -2.547478008999998e+01 + -2.557959429416147e+01 + -2.568495950782481e+01 + -2.579087794894506e+01 + -2.589735184307986e+01 + -2.600438342000000e+01 + -2.611197491414786e+01 + -2.622012856937007e+01 + -2.632884662779481e+01 + -2.643813132670684e+01 + -2.654798492000000e+01 + -2.665840967182968e+01 + -2.676940784333127e+01 + -2.688098169572292e+01 + -2.699313349264397e+01 + -2.710586551000000e+01 + -2.721918002998715e+01 + -2.733307932892397e+01 + -2.744756569229334e+01 + -2.756264142140602e+01 + -2.767830881000000e+01 + -2.779457014947893e+01 + -2.791142774510221e+01 + -2.802888390934165e+01 + -2.814694096000261e+01 + -2.826560121000000e+01 + -2.838486697334714e+01 + -2.850474058224100e+01 + -2.862522436986088e+01 + -2.874632066501767e+01 + -2.886803181000000e+01 + -2.899036015446983e+01 + -2.911330804180568e+01 + -2.923687781925054e+01 + -2.936107184331833e+01 + -2.948589248000000e+01 + -2.961134209910011e+01 + -2.973742306338333e+01 + -2.986413774439124e+01 + -2.999148852946843e+01 + -3.011947780000000e+01 + -3.024810793640462e+01 + -3.037738133418102e+01 + -3.050730039248281e+01 + -3.063786751048302e+01 + -3.076908508999995e+01 + -3.090095553801825e+01 + -3.103348127528379e+01 + -3.116666472242296e+01 + -3.130050829541340e+01 + -3.143501442000000e+01 + -3.157018552904646e+01 + -3.170602405762165e+01 + -3.184253244456109e+01 + -3.197971313442012e+01 + -3.211756857999995e+01 + -3.225610123724459e+01 + -3.239531355479052e+01 + -3.253520799120049e+01 + -3.267578702273956e+01 + -3.281705312000000e+01 + -3.295900875199519e+01 + -3.310165640007095e+01 + -3.324499854981137e+01 + -3.338903768896250e+01 + -3.353377630999994e+01 + -3.367921690900354e+01 + -3.382536198480008e+01 + -3.397221404252836e+01 + -3.411977559608952e+01 + -3.426804916000000e+01 + -3.441703725062087e+01 + -3.456674239208418e+01 + -3.471716711255165e+01 + -3.486831394366235e+01 + -3.502018541999994e+01 + -3.517278408030963e+01 + -3.532611247314257e+01 + -3.548017315006599e+01 + -3.563496866378715e+01 + -3.579050157000000e+01 + -3.594677442911821e+01 + -3.610378981290209e+01 + -3.626155029281482e+01 + -3.642005843692588e+01 + -3.657931682999995e+01 + -3.673932806450152e+01 + -3.690009471994529e+01 + -3.706161938636306e+01 + -3.722390467398576e+01 + -3.738695318000000e+01 + -3.755076749872251e+01 + -3.771535025114206e+01 + -3.788070405790332e+01 + -3.804683152981476e+01 + -3.821373528999994e+01 + -3.838141797088579e+01 + -3.854988220802454e+01 + -3.871913063690455e+01 + -3.888916589260551e+01 + -3.905999062000000e+01 + -3.923160747217621e+01 + -3.940401910958111e+01 + -3.957722819105772e+01 + -3.975123737141870e+01 + -3.992604931999993e+01 + -4.010166671506960e+01 + -4.027809223215413e+01 + -4.045532854769397e+01 + -4.063337834194039e+01 + -4.081224431000000e+01 + -4.099192915380458e+01 + -4.117243556512365e+01 + -4.135376624213356e+01 + -4.153592389680070e+01 + -4.171891123999993e+01 + -4.190273098404973e+01 + -4.208738585293229e+01 + -4.227287857304115e+01 + -4.245921187066173e+01 + -4.264638848000000e+01 + -4.283441114000928e+01 + -4.302328258823673e+01 + -4.321300556988346e+01 + -4.340358284230594e+01 + -4.359501715999993e+01 + -4.378731127802528e+01 + -4.398046796379431e+01 + -4.417448998677844e+01 + -4.436938011574802e+01 + -4.456514113000000e+01 + -4.476177581459606e+01 + -4.495928695037842e+01 + -4.515767732491430e+01 + -4.535694973791337e+01 + -4.555710698999992e+01 + -4.575815188265746e+01 + -4.596008722124420e+01 + -4.616291581815827e+01 + -4.636664049491562e+01 + -4.657126407000000e+01 + -4.677678936329625e+01 + -4.698321921012249e+01 + -4.719055644645270e+01 + -4.739880390447049e+01 + -4.760796442999992e+01 + -4.781804087601476e+01 + -4.802903608806237e+01 + -4.824095291782189e+01 + -4.845379422957746e+01 + -4.866756289000000e+01 + -4.888226176793614e+01 + -4.909789373759357e+01 + -4.931446167624577e+01 + -4.953196846445736e+01 + -4.975041698999991e+01 + -4.996981014490353e+01 + -5.019015082042799e+01 + -5.041144191483806e+01 + -5.063368633767777e+01 + -5.085688700000000e+01 + -5.108104681363623e+01 + -5.130616869222998e+01 + -5.153225555529192e+01 + -5.175931033093434e+01 + -5.198733594999992e+01 + -5.221633534632925e+01 + -5.244631146064819e+01 + -5.267726723814258e+01 + -5.290920562821528e+01 + -5.314212958000000e+01 + -5.337604204603855e+01 + -5.361094599406351e+01 + -5.384684439089011e+01 + -5.408374019738633e+01 + -5.432163638999991e+01 + -5.456053595406303e+01 + -5.480044186892415e+01 + -5.504135712069162e+01 + -5.528328470761400e+01 + -5.552622762000000e+01 + -5.577018884907901e+01 + -5.601517141284037e+01 + -5.626117832498171e+01 + -5.650821258404100e+01 + -5.675627720999991e+01 + -5.700537523542541e+01 + -5.725550968441112e+01 + -5.750668358361924e+01 + -5.775889996777224e+01 + -5.801216188000000e+01 + -5.826647236807500e+01 + -5.852183447842080e+01 + -5.877825126017432e+01 + -5.903572576827786e+01 + -5.929426106999990e+01 + -5.955386023803142e+01 + -5.981452633626228e+01 + -6.007626243395679e+01 + -6.033907161265666e+01 + -6.060295696000000e+01 + -6.086792156620618e+01 + -6.113396851889991e+01 + -6.140110091270849e+01 + -6.166932185413050e+01 + -6.193863444999990e+01 + -6.220904180836374e+01 + -6.248054704389698e+01 + -6.275315327303672e+01 + -6.302686361375484e+01 + -6.330168120000000e+01 + -6.357760917255472e+01 + -6.385465065869710e+01 + -6.413280879313753e+01 + -6.441208672717147e+01 + -6.469248761000000e+01 + -6.497401459207148e+01 + -6.525667083785252e+01 + -6.554045951020694e+01 + -6.582538376572784e+01 + -6.611144677999999e+01 + -6.639865173804421e+01 + -6.668700181225154e+01 + -6.697650018322166e+01 + -6.726715004865791e+01 + -6.755895460000001e+01 + -6.785191702754956e+01 + -6.814604053706709e+01 + -6.844132833746227e+01 + -6.873778363702108e+01 + -6.903540965000001e+01 + -6.933420959649558e+01 + -6.963418670433917e+01 + -6.993534420146086e+01 + -7.023768531400407e+01 + -7.054121327999999e+01 + -7.084593134500037e+01 + -7.115184275353549e+01 + -7.145895075432828e+01 + -7.176725860332733e+01 + -7.207676955999989e+01 + -7.238748688676215e+01 + -7.269941385037480e+01 + -7.301255372170849e+01 + -7.332690977697268e+01 + -7.364248530000000e+01 + -7.395928357816831e+01 + -7.427730789465394e+01 + -7.459656154154558e+01 + -7.491704782593285e+01 + -7.523877004999987e+01 + -7.556173151464178e+01 + -7.588593553169946e+01 + -7.621138541944168e+01 + -7.653808450163682e+01 + -7.686603610000000e+01 + -7.719524353805981e+01 + -7.752571015313293e+01 + -7.785743928572181e+01 + -7.819043427631229e+01 + -7.852469846999988e+01 + -7.886023521608357e+01 + -7.919704786882774e+01 + -7.953513978918475e+01 + -7.987451434652237e+01 + -8.021517491000000e+01 + -8.055712484895521e+01 + -8.090036753598372e+01 + -8.124490635250547e+01 + -8.159074469172391e+01 + -8.193788593999987e+01 + -8.228633348416081e+01 + -8.263609073313938e+01 + -8.298716109541151e+01 + -8.333954797103145e+01 + -8.369325477000000e+01 + -8.404828491028280e+01 + -8.440464181412719e+01 + -8.476232890793086e+01 + -8.512134962287996e+01 + -8.548170738999985e+01 + -8.584340564352934e+01 + -8.620644783199920e+01 + -8.657083740482393e+01 + -8.693657780824788e+01 + -8.730367250000000e+01 + -8.767212494371194e+01 + -8.804193859639375e+01 + -8.841311692593891e+01 + -8.878566341870939e+01 + -8.915958154999986e+01 + -8.953487479168578e+01 + -8.991154663471849e+01 + -9.028960057395298e+01 + -9.066904010318096e+01 + -9.104986872000001e+01 + -9.143208992686800e+01 + -9.181570723560402e+01 + -9.220072416114067e+01 + -9.258714421980083e+01 + -9.297497092999986e+01 + -9.336420781525349e+01 + -9.375485841426487e+01 + -9.414692626313253e+01 + -9.454041488965315e+01 + -9.493532784000000e+01 + -9.533166867059026e+01 + -9.572944092950100e+01 + -9.612864816948191e+01 + -9.652929395407540e+01 + -9.693138184999984e+01 + -9.733491542620831e+01 + -9.773989825487583e+01 + -9.814633391500892e+01 + -9.855422599474231e+01 + -9.896357808000000e+01 + -9.937439375553778e+01 + -9.978667660951464e+01 + -1.002004302498873e+02 + -1.006156583113964e+02 + -1.010323643999998e+02 + -1.014505521033422e+02 + -1.018702250167552e+02 + -1.022913867648504e+02 + -1.027140410123223e+02 + -1.031381914000000e+02 + -1.035638415489902e+02 + -1.039909950728156e+02 + -1.044196556182856e+02 + -1.048498268814360e+02 + -1.052815124999998e+02 + -1.057147160851634e+02 + -1.061494413040264e+02 + -1.065856918490972e+02 + -1.070234714266025e+02 + -1.074627837000000e+02 + -1.079036323073108e+02 + -1.083460208994117e+02 + -1.087899531790557e+02 + -1.092354329168266e+02 + -1.096824637999998e+02 + -1.101310494754678e+02 + -1.105811936593542e+02 + -1.110329000832090e+02 + -1.114861724712110e+02 + -1.119410145000000e+02 + -1.123974298499644e+02 + -1.128554223365672e+02 + -1.133149957276709e+02 + -1.137761536721920e+02 + -1.142388998999998e+02 + -1.147032381951767e+02 + -1.151691723223398e+02 + -1.156367060267053e+02 + -1.161058430340008e+02 + -1.165765871000000e+02 + -1.170489420136372e+02 + -1.175229116129598e+02 + -1.179984996644491e+02 + -1.184757098197581e+02 + -1.189545458999998e+02 + -1.194350118004852e+02 + -1.199171112501401e+02 + -1.204008480035419e+02 + -1.208862259161727e+02 + -1.213732488000000e+02 + -1.218619204419225e+02 + -1.223522446637547e+02 + -1.228442252993658e+02 + -1.233378661832514e+02 + -1.238331710999998e+02 + -1.243301438371392e+02 + -1.248287883218059e+02 + -1.253291084262349e+02 + -1.258311078947497e+02 + -1.263347906000000e+02 + -1.268401604692280e+02 + -1.273472212887372e+02 + -1.278559768940106e+02 + -1.283664312433523e+02 + -1.288785881999998e+02 + -1.293924515790011e+02 + -1.299080252758494e+02 + -1.304253131892150e+02 + -1.309443191941241e+02 + -1.314650472000000e+02 + -1.319875011267033e+02 + -1.325116848422910e+02 + -1.330376022476014e+02 + -1.335652573069860e+02 + -1.340946538999998e+02 + -1.346257958892211e+02 + -1.351586873010075e+02 + -1.356933320835031e+02 + -1.362297340185993e+02 + -1.367678971000000e+02 + -1.373078254089903e+02 + -1.378495227933144e+02 + -1.383929931342302e+02 + -1.389382404506380e+02 + -1.394852686999998e+02 + -1.400340818144768e+02 + -1.405846838138316e+02 + -1.411370786853171e+02 + -1.416912703410207e+02 + -1.422472628000000e+02 + -1.428050601118040e+02 + -1.433646661562381e+02 + -1.439260848884736e+02 + -1.444893204354731e+02 + -1.450543767999998e+02 + -1.456212579173106e+02 + -1.461899678121767e+02 + -1.467605105156440e+02 + -1.473328900351724e+02 + -1.479071104000000e+02 + -1.484831756560318e+02 + -1.490610898537698e+02 + -1.496408570188282e+02 + -1.502224811435522e+02 + -1.508059663000000e+02 + -1.513913165938295e+02 + -1.519785360517816e+02 + -1.525676287092765e+02 + -1.531585986433134e+02 + -1.537514498999998e+02 + -1.543461865304275e+02 + -1.549428126935839e+02 + -1.555413324987964e+02 + -1.561417499433451e+02 + -1.567440691000000e+02 + -1.573482940967384e+02 + -1.579544290618548e+02 + -1.585624781173004e+02 + -1.591724453723425e+02 + -1.597843348999998e+02 + -1.603981507727703e+02 + -1.610138971515657e+02 + -1.616315781879854e+02 + -1.622511979884414e+02 + -1.628727607000000e+02 + -1.634962704824068e+02 + -1.641217314319286e+02 + -1.647491476962519e+02 + -1.653785235159056e+02 + -1.660098629999998e+02 + -1.666431702132707e+02 + -1.672784494025457e+02 + -1.679157047805161e+02 + -1.685549404452619e+02 + -1.691961606000000e+02 + -1.698393694891200e+02 + -1.704845712252935e+02 + -1.711317699673001e+02 + -1.717809699904770e+02 + -1.724321754999998e+02 + -1.730853906636835e+02 + -1.737406197069920e+02 + -1.743978668390772e+02 + -1.750571362267288e+02 + -1.757184321000000e+02 + -1.763817587329360e+02 + -1.770471204015179e+02 + -1.777145213342737e+02 + -1.783839656916257e+02 + -1.790554576999997e+02 + -1.797290016348361e+02 + -1.804046017812607e+02 + -1.810822624074922e+02 + -1.817619877551305e+02 + -1.824437821000000e+02 + -1.831276497291853e+02 + -1.838135948809234e+02 + -1.845016218201234e+02 + -1.851917348679873e+02 + -1.858839382999998e+02 + -1.865782363787204e+02 + -1.872746334451072e+02 + -1.879731338116912e+02 + -1.886737417231232e+02 + -1.893764615000000e+02 + -1.900812975069574e+02 + -1.907882540726982e+02 + -1.914973354967214e+02 + -1.922085460544087e+02 + -1.929218900999998e+02 + -1.936373720194894e+02 + -1.943549961169706e+02 + -1.950747667123967e+02 + -1.957966881820183e+02 + -1.965207649000000e+02 + -1.972470012275908e+02 + -1.979754014928308e+02 + -1.987059700466389e+02 + -1.994387112870401e+02 + -2.001736295999997e+02 + -2.009107293657797e+02 + -2.016500149830146e+02 + -2.023914908231823e+02 + -2.031351612174878e+02 + -2.038810306000000e+02 + -2.046291034502658e+02 + -2.053793841544099e+02 + -2.061318770718700e+02 + -2.068865865659776e+02 + -2.076435170999997e+02 + -2.084026731731890e+02 + -2.091640591716557e+02 + -2.099276794995817e+02 + -2.106935386300690e+02 + -2.114616410000000e+02 + -2.122319910255027e+02 + -2.130045931490896e+02 + -2.137794518362718e+02 + -2.145565715736208e+02 + -2.153359567999997e+02 + -2.161176119510612e+02 + -2.169015415764713e+02 + -2.176877501734888e+02 + -2.184762421224458e+02 + -2.192670219000000e+02 + -2.200600940505141e+02 + -2.208554631128035e+02 + -2.216531335679009e+02 + -2.224531098207831e+02 + -2.232553963999997e+02 + -2.240599978997985e+02 + -2.248669188401317e+02 + -2.256761637092654e+02 + -2.264877369816284e+02 + -2.273016432000000e+02 + -2.281178869415660e+02 + -2.289364727411434e+02 + -2.297574051254879e+02 + -2.305806886273285e+02 + -2.314063277999997e+02 + -2.322343272067604e+02 + -2.330646913987978e+02 + -2.338974249389632e+02 + -2.347325324124834e+02 + -2.355700184000000e+02 + -2.364098874788788e+02 + -2.372521442301691e+02 + -2.380967932316097e+02 + -2.389438390563173e+02 + -2.397932862999997e+02 + -2.406451395699314e+02 + -2.414994034603918e+02 + -2.423560825773335e+02 + -2.432151815494090e+02 + -2.440767050000000e+02 + -2.449406575494712e+02 + -2.458070438246558e+02 + -2.466758684438366e+02 + -2.475471360143982e+02 + -2.484208511999996e+02 + -2.492970186823550e+02 + -2.501756430678903e+02 + -2.510567289807632e+02 + -2.519402811010791e+02 + -2.528263041000000e+02 + -2.537148026392507e+02 + -2.546057813786489e+02 + -2.554992449908618e+02 + -2.563951981686694e+02 + -2.572936455999996e+02 + -2.581945919701986e+02 + -2.590980419711499e+02 + -2.600040002856254e+02 + -2.609124715849065e+02 + -2.618234606000000e+02 + -2.627369720784054e+02 + -2.636530106775519e+02 + -2.645715811006028e+02 + -2.654926881465747e+02 + -2.664163364999997e+02 + -2.673425308135112e+02 + -2.682712759281322e+02 + -2.692025766270102e+02 + -2.701364375396030e+02 + -2.710728634000000e+02 + -2.720118590149941e+02 + -2.729534291763713e+02 + -2.738975786300543e+02 + -2.748443120676544e+02 + -2.757936342999997e+02 + -2.767455501787848e+02 + -2.777000643997414e+02 + -2.786571816989448e+02 + -2.796169069311608e+02 + -2.805792449000000e+02 + -2.815442003833780e+02 + -2.825117782146733e+02 + -2.834819832031981e+02 + -2.844548201023671e+02 + -2.854302936999997e+02 + -2.864084088239409e+02 + -2.873891703596309e+02 + -2.883725831483384e+02 + -2.893586519481404e+02 + -2.903473816000000e+02 + -2.913387769892773e+02 + -2.923328429461174e+02 + -2.933295843055886e+02 + -2.943290059327143e+02 + -2.953311126999996e+02 + -2.963359094688269e+02 + -2.973434010446480e+02 + -2.983535922946355e+02 + -2.993664881931061e+02 + -3.003820936000000e+02 + -3.014004133189056e+02 + -3.024214522481863e+02 + -3.034452153213495e+02 + -3.044717074825456e+02 + -3.055009335999997e+02 + -3.065328985120693e+02 + -3.075676071368449e+02 + -3.086050644279766e+02 + -3.096452753553112e+02 + -3.106882447999996e+02 + -3.117339776182681e+02 + -3.127824787990806e+02 + -3.138337533166528e+02 + -3.148878060732492e+02 + -3.159446419999996e+02 + -3.170042660531784e+02 + -3.180666831989414e+02 + -3.191318984100575e+02 + -3.201999166629245e+02 + -3.212707428999996e+02 + -3.223443820580361e+02 + -3.234208391391681e+02 + -3.245001191331626e+02 + -3.255822269890704e+02 + -3.266671677000000e+02 + -3.277549462905472e+02 + -3.288455677875165e+02 + -3.299390371822755e+02 + -3.310353594166140e+02 + -3.321345394999996e+02 + -3.332365824854958e+02 + -3.343414934139734e+02 + -3.354492773045120e+02 + -3.365599391517927e+02 + -3.376734840000000e+02 + -3.387899169180687e+02 + -3.399092429402671e+02 + -3.410314670886827e+02 + -3.421565943845668e+02 + -3.432846298999996e+02 + -3.444155787253185e+02 + -3.455494458929433e+02 + -3.466862364711880e+02 + -3.478259555971263e+02 + -3.489686083000000e+02 + -3.501141995805723e+02 + -3.512627346186799e+02 + -3.524142185495274e+02 + -3.535686563776662e+02 + -3.547260531999996e+02 + -3.558864141649047e+02 + -3.570497443588797e+02 + -3.582160488781844e+02 + -3.593853328562213e+02 + -3.605576014000000e+02 + -3.617328596203877e+02 + -3.629111127187760e+02 + -3.640923658296630e+02 + -3.652766239636252e+02 + -3.664638922999996e+02 + -3.676541760949210e+02 + -3.688474804479435e+02 + -3.700438104641370e+02 + -3.712431713192604e+02 + -3.724455682000000e+02 + -3.736510062917217e+02 + -3.748594907617601e+02 + -3.760710267615897e+02 + -3.772856194324323e+02 + -3.785032739999995e+02 + -3.797239957155368e+02 + -3.809477897125092e+02 + -3.821746611611994e+02 + -3.834046153278488e+02 + -3.846376574000000e+02 + -3.858737925371631e+02 + -3.871130260109560e+02 + -3.883553630688227e+02 + -3.896008088834330e+02 + -3.908493686999996e+02 + -3.921010477895665e+02 + -3.933558513233559e+02 + -3.946137845264227e+02 + -3.958748527376295e+02 + -3.971390612000000e+02 + -3.984064151109821e+02 + -3.996769197585321e+02 + -4.009505804131749e+02 + -4.022274022910074e+02 + -4.035073906999995e+02 + -4.047905509809469e+02 + -4.060768883569506e+02 + -4.073664080804837e+02 + -4.086591154923789e+02 + -4.099550159000000e+02 + -4.112541145837781e+02 + -4.125564168232350e+02 + -4.138619279264533e+02 + -4.151706532436620e+02 + -4.164825980999995e+02 + -4.177977678009782e+02 + -4.191161676484082e+02 + -4.204378029703449e+02 + -4.217626791355866e+02 + -4.230908015000000e+02 + -4.244221753941545e+02 + -4.257568060915354e+02 + -4.270946989435893e+02 + -4.284358594322071e+02 + -4.297802928999995e+02 + -4.311280046181774e+02 + -4.324789999621266e+02 + -4.338332843406102e+02 + -4.351908631680312e+02 + -4.365517418000000e+02 + -4.379159255766193e+02 + -4.392834199290754e+02 + -4.406542302894571e+02 + -4.420283620541414e+02 + -4.434058205999995e+02 + -4.447866113008026e+02 + -4.461707395611302e+02 + -4.475582108324218e+02 + -4.489490306166049e+02 + -4.503432043000000e+02 + -4.517407372272212e+02 + -4.531416348857516e+02 + -4.545459027469901e+02 + -4.559535462055746e+02 + -4.573645706999994e+02 + -4.587789817092769e+02 + -4.601967847429616e+02 + -4.616179852648949e+02 + -4.630425886631084e+02 + -4.644706004000000e+02 + -4.659020259847504e+02 + -4.673368709042424e+02 + -4.687751406384571e+02 + -4.702168406679589e+02 + -4.716619764999995e+02 + -4.731105536500806e+02 + -4.745625775980045e+02 + -4.760180538297375e+02 + -4.774769878558138e+02 + -4.789393852000000e+02 + -4.804052513950263e+02 + -4.818745919803221e+02 + -4.833474124743740e+02 + -4.848237183656923e+02 + -4.863035151999994e+02 + -4.877868085453354e+02 + -4.892736039052198e+02 + -4.907639068268139e+02 + -4.922577229425711e+02 + -4.937550578000000e+02 + -4.952559169027076e+02 + -4.967603058178435e+02 + -4.982682301416788e+02 + -4.997796954853789e+02 + -5.012947073999994e+02 + -5.028132714194502e+02 + -5.043353931676896e+02 + -5.058610782730644e+02 + -5.073903323321115e+02 + -5.089231609000000e+02 + -5.104595695386481e+02 + -5.119995639358939e+02 + -5.135431497453484e+02 + -5.150903325247945e+02 + -5.166411178999995e+02 + -5.181955115300345e+02 + -5.197535190105982e+02 + -5.213151459679927e+02 + -5.228803980937674e+02 + -5.244492810000000e+02 + -5.260218002787250e+02 + -5.275979616609960e+02 + -5.291777708470047e+02 + -5.307612334400695e+02 + -5.323483550999995e+02 + -5.339391415258532e+02 + -5.355335984055753e+02 + -5.371317314077364e+02 + -5.387335461786030e+02 + -5.403390484000000e+02 + -5.419482437848817e+02 + -5.435611380730882e+02 + -5.451777369746786e+02 + -5.467980461477442e+02 + -5.484220712999994e+02 + -5.500498181706811e+02 + -5.516812924850077e+02 + -5.533164999617454e+02 + -5.549554463178829e+02 + -5.565981372999994e+02 + -5.582445786620732e+02 + -5.598947761113077e+02 + -5.615487353817318e+02 + -5.632064622631164e+02 + -5.648679624999994e+02 + -5.665332418238921e+02 + -5.682023060429622e+02 + -5.698751609401672e+02 + -5.715518122344557e+02 + -5.732322656999993e+02 + -5.749165271427032e+02 + -5.766046023386582e+02 + -5.782964970855437e+02 + -5.799922172195480e+02 + -5.816917684999994e+02 + -5.833951566715182e+02 + -5.851023876259811e+02 + -5.868134672043320e+02 + -5.885284011210334e+02 + -5.902471951999993e+02 + -5.919698553287222e+02 + -5.936963873375214e+02 + -5.954267970459595e+02 + -5.971610902818754e+02 + -5.988992728999993e+02 + -6.006413507613062e+02 + -6.023873296844711e+02 + -6.041372155081436e+02 + -6.058910141182311e+02 + -6.076487313999993e+02 + -6.094103732273231e+02 + -6.111759454411804e+02 + -6.129454539033432e+02 + -6.147189045204622e+02 + -6.164963032000001e+02 + -6.182776558378988e+02 + -6.200629682925465e+02 + -6.218522464515877e+02 + -6.236454962577363e+02 + -6.254427235999993e+02 + -6.272439343587159e+02 + -6.290491345295636e+02 + -6.308583300588987e+02 + -6.326715267788347e+02 + -6.344887306000001e+02 + -6.363099474872770e+02 + -6.381351833941451e+02 + -6.399644442896572e+02 + -6.417977361628546e+02 + -6.436350648999993e+02 + -6.454764363684590e+02 + -6.473218566292518e+02 + -6.491713317125350e+02 + -6.510248675271151e+02 + -6.528824700000000e+02 + -6.547441451008573e+02 + -6.566098988943567e+02 + -6.584797373808955e+02 + -6.603536664383599e+02 + -6.622316920999993e+02 + -6.641138204605409e+02 + -6.660000574329696e+02 + -6.678904089961051e+02 + -6.697848812885560e+02 + -6.716834803000000e+02 + -6.735862119462199e+02 + -6.754930822688247e+02 + -6.774040973560088e+02 + -6.793192633079277e+02 + -6.812385860999992e+02 + -6.831620716800010e+02 + -6.850897262089175e+02 + -6.870215557906422e+02 + -6.889575663679858e+02 + -6.908977640000001e+02 + -6.928421548145254e+02 + -6.947907448778678e+02 + -6.967435402481692e+02 + -6.987005469959722e+02 + -7.006617711999993e+02 + -7.026272189534540e+02 + -7.045968963883171e+02 + -7.065708096021641e+02 + -7.085489646318440e+02 + -7.105313676000000e+02 + -7.125180246666655e+02 + -7.145089419064375e+02 + -7.165041254104643e+02 + -7.185035813280965e+02 + -7.205073157999993e+02 + -7.225153349567163e+02 + -7.245276449240899e+02 + -7.265442518464891e+02 + -7.285651618951177e+02 + -7.305903812000000e+02 + -7.326199158832851e+02 + -7.346537721472801e+02 + -7.366919561576724e+02 + -7.387344740033407e+02 + -7.407813318999993e+02 + -7.428325361060332e+02 + -7.448880927069067e+02 + -7.469480078569493e+02 + -7.490122878703525e+02 + -7.510809389000000e+02 + -7.531539670309830e+02 + -7.552313785295614e+02 + -7.573131796529314e+02 + -7.593993765758833e+02 + -7.614899754999992e+02 + -7.635849826556215e+02 + -7.656844042998581e+02 + -7.677882466626152e+02 + -7.698965159244972e+02 + -7.720092183000000e+02 + -7.741263600422619e+02 + -7.762479474594095e+02 + -7.783739868214470e+02 + -7.805044843222228e+02 + -7.826394461999992e+02 + -7.847788787331309e+02 + -7.869227882276110e+02 + -7.890711809493379e+02 + -7.912240631015031e+02 + -7.933814410000000e+02 + -7.955433210068886e+02 + -7.977097093640062e+02 + -7.998806123337483e+02 + -8.020560362523712e+02 + -8.042359873999992e+02 + -8.064204720446323e+02 + -8.086094965664213e+02 + -8.108030673053524e+02 + -8.130011905039750e+02 + -8.152038725000000e+02 + -8.174111196729889e+02 + -8.196229383028856e+02 + -8.218393347070877e+02 + -8.240603152936806e+02 + -8.262858863999992e+02 + -8.285160543327190e+02 + -8.307508254786889e+02 + -8.329902062108882e+02 + -8.352342028550189e+02 + -8.374828218000000e+02 + -8.397360694583805e+02 + -8.419939521636865e+02 + -8.442564762682848e+02 + -8.465236481828920e+02 + -8.487954742999991e+02 + -8.510719610066617e+02 + -8.533531147279726e+02 + -8.556389418758610e+02 + -8.579294488297842e+02 + -8.602246420000000e+02 + -8.625245278111681e+02 + -8.648291126593311e+02 + -8.671384029773127e+02 + -8.694524052578884e+02 + -8.717711258999991e+02 + -8.740945712693658e+02 + -8.764227478547659e+02 + -8.787556621558366e+02 + -8.810933206360036e+02 + -8.834357297000000e+02 + -8.857828957473700e+02 + -8.881348253000285e+02 + -8.904915248639498e+02 + -8.928530008754832e+02 + -8.952192597999992e+02 + -8.975903081273602e+02 + -8.999661523549036e+02 + -9.023467989915350e+02 + -9.047322545556517e+02 + -9.071225255000001e+02 + -9.095176182642568e+02 + -9.119175394073789e+02 + -9.143222954857910e+02 + -9.167318930073794e+02 + -9.191463384999990e+02 + -9.215656384936522e+02 + -9.239897994653498e+02 + -9.264188279352956e+02 + -9.288527305046009e+02 + -9.312915136999991e+02 + -9.337351840217814e+02 + -9.361837480744202e+02 + -9.386372124507991e+02 + -9.410955836845210e+02 + -9.435588682999991e+02 + -9.460270728408829e+02 + -9.485002039375468e+02 + -9.509782681943145e+02 + -9.534612721474879e+02 + -9.559492223999991e+02 + -9.584421255818636e+02 + -9.609399882443452e+02 + -9.634428169536077e+02 + -9.659506183300578e+02 + -9.684633989999990e+02 + -9.709811655949806e+02 + -9.735039247636544e+02 + -9.760316831188370e+02 + -9.785644472182881e+02 + -9.811022236999991e+02 + -9.836450192407020e+02 + -9.861928404528198e+02 + -9.887456939756197e+02 + -9.913035865101050e+02 + -9.938665246999991e+02 + -9.964345151588749e+02 + -9.990075645416573e+02 + -1.001585679508894e+03 + -1.004168866725833e+03 + -1.006757132999999e+03 + -1.009350485088950e+03 + -1.011948929193798e+03 + -1.014552472017065e+03 + -1.017161121149714e+03 + -1.019774882999999e+03 + -1.022393763477281e+03 + -1.025017769745607e+03 + -1.027646908706880e+03 + -1.030281186449000e+03 + -1.032920609999999e+03 + -1.035565186772393e+03 + -1.038214923106640e+03 + -1.040869825393126e+03 + -1.043529900494233e+03 + -1.046195154999999e+03 + -1.048865595518282e+03 + -1.051541229525064e+03 + -1.054222063914517e+03 + -1.056908104442841e+03 + -1.059599357999999e+03 + -1.062295832060889e+03 + -1.064997533253958e+03 + -1.067704468147946e+03 + -1.070416643533965e+03 + -1.073134066000000e+03 + -1.075856742179453e+03 + -1.078584679453085e+03 + -1.081317884808236e+03 + -1.084056364390976e+03 + -1.086800124999999e+03 + -1.089549173751501e+03 + -1.092303517161580e+03 + -1.095063162007773e+03 + -1.097828115663242e+03 + -1.100598385000000e+03 + -1.103373976558467e+03 + -1.106154896984741e+03 + -1.108941153067517e+03 + -1.111732751768433e+03 + -1.114529699999999e+03 + -1.117332004656191e+03 + -1.120139672719820e+03 + -1.122952711033347e+03 + -1.125771126202256e+03 + -1.128594925000000e+03 + -1.131424114391635e+03 + -1.134258701616623e+03 + -1.137098693726371e+03 + -1.139944097362279e+03 + -1.142794918999999e+03 + -1.145651165298781e+03 + -1.148512843975744e+03 + -1.151379962155369e+03 + -1.154252525751212e+03 + -1.157130542000000e+03 + -1.160014018647746e+03 + -1.162902961796701e+03 + -1.165797378002409e+03 + -1.168697275086654e+03 + -1.171602659999999e+03 + -1.174513539162380e+03 + -1.177429919411751e+03 + -1.180351807863387e+03 + -1.183279211838743e+03 + -1.186212138000000e+03 + -1.189150592852472e+03 + -1.192094584016226e+03 + -1.195044118757429e+03 + -1.197999203418656e+03 + -1.200959844999999e+03 + -1.203926050837031e+03 + -1.206897827704460e+03 + -1.209875182550288e+03 + -1.212858122751144e+03 + -1.215846655000000e+03 + -1.218840785789916e+03 + -1.221840522671824e+03 + -1.224845872987532e+03 + -1.227856843385819e+03 + -1.230873440999999e+03 + -1.233895673111333e+03 + -1.236923546192640e+03 + -1.239957067026041e+03 + -1.242996243170224e+03 + -1.246041082000000e+03 + -1.249091590572761e+03 + -1.252147775334870e+03 + -1.255209643154299e+03 + -1.258277201722480e+03 + -1.261350457999999e+03 + -1.264429418673061e+03 + -1.267514091394071e+03 + -1.270604483350415e+03 + -1.273700600740823e+03 + -1.276802451000000e+03 + -1.279910042060014e+03 + -1.283023380429426e+03 + -1.286142472688095e+03 + -1.289267326090673e+03 + -1.292397947999999e+03 + -1.295534345774196e+03 + -1.298676526619691e+03 + -1.301824497524618e+03 + -1.304978265240164e+03 + -1.308137837000000e+03 + -1.311303220289759e+03 + -1.314474422298625e+03 + -1.317651449999705e+03 + -1.320834310180745e+03 + -1.324023009999999e+03 + -1.327217556910311e+03 + -1.330417958531748e+03 + -1.333624221890711e+03 + -1.336836353161044e+03 + -1.340054360000000e+03 + -1.343278250622039e+03 + -1.346508031450468e+03 + -1.349743709083262e+03 + -1.352985291084887e+03 + -1.356232784999999e+03 + -1.359486198143600e+03 + -1.362745537187869e+03 + -1.366010809195683e+03 + -1.369282022032803e+03 + -1.372559183000000e+03 + -1.375842299046690e+03 + -1.379131377356324e+03 + -1.382426425045151e+03 + -1.385727449081319e+03 + -1.389034456999999e+03 + -1.392347456524483e+03 + -1.395666454635196e+03 + -1.398991458464414e+03 + -1.402322475610563e+03 + -1.405659513000000e+03 + -1.409002577344138e+03 + -1.412351676333446e+03 + -1.415706817605260e+03 + -1.419068008353351e+03 + -1.422435255999999e+03 + -1.425808567964313e+03 + -1.429187950969556e+03 + -1.432573411998037e+03 + -1.435964958719179e+03 + -1.439362599000000e+03 + -1.442766340439504e+03 + -1.446176189225631e+03 + -1.449592152360744e+03 + -1.453014238529275e+03 + -1.456442454999999e+03 + -1.459876808245435e+03 + -1.463317305593544e+03 + -1.466763954627232e+03 + -1.470216762966463e+03 + -1.473675738000000e+03 + -1.477140887005819e+03 + -1.480612217422037e+03 + -1.484089736511155e+03 + -1.487573451238554e+03 + -1.491063368999999e+03 + -1.494559497483912e+03 + -1.498061844364458e+03 + -1.501570417048641e+03 + -1.505085222548716e+03 + -1.508606267999999e+03 + -1.512133560790714e+03 + -1.515667108906144e+03 + -1.519206919999463e+03 + -1.522753000996140e+03 + -1.526305358999999e+03 + -1.529864001422905e+03 + -1.533428936276007e+03 + -1.537000171179230e+03 + -1.540577712963951e+03 + -1.544161568999999e+03 + -1.547751747018138e+03 + -1.551348254621497e+03 + -1.554951099280540e+03 + -1.558560288310355e+03 + -1.562175828999999e+03 + -1.565797728689906e+03 + -1.569425994958102e+03 + -1.573060635400619e+03 + -1.576701657553543e+03 + -1.580349068999999e+03 + -1.584002877314684e+03 + -1.587663089901193e+03 + -1.591329713983250e+03 + -1.595002756657312e+03 + -1.598682225999999e+03 + -1.602368130282464e+03 + -1.606060476003810e+03 + -1.609759270166310e+03 + -1.613464521194204e+03 + -1.617176236999999e+03 + -1.620894424965112e+03 + -1.624619091996676e+03 + -1.628350245392540e+03 + -1.632087893195996e+03 + -1.635832042999999e+03 + -1.639582702219653e+03 + -1.643339878880967e+03 + -1.647103580589531e+03 + -1.650873814125992e+03 + -1.654650586999999e+03 + -1.658433907212865e+03 + -1.662223782656940e+03 + -1.666020220927786e+03 + -1.669823229228366e+03 + -1.673632814999999e+03 + -1.677448985879331e+03 + -1.681271749582079e+03 + -1.685101113981527e+03 + -1.688937087086922e+03 + -1.692779675999999e+03 + -1.696628887589857e+03 + -1.700484730162859e+03 + -1.704347211664743e+03 + -1.708216339003609e+03 + -1.712092119999999e+03 + -1.715974562928047e+03 + -1.719863675285195e+03 + -1.723759464515762e+03 + -1.727661938269359e+03 + -1.731571103999999e+03 + -1.735486969207614e+03 + -1.739409542118944e+03 + -1.743338830603560e+03 + -1.747274841733617e+03 + -1.751217582999999e+03 + -1.755167062315964e+03 + -1.759123288009624e+03 + -1.763086267739076e+03 + -1.767056008086542e+03 + -1.771032516999999e+03 + -1.775015803098183e+03 + -1.779005873908525e+03 + -1.783002736756524e+03 + -1.787006399126180e+03 + -1.791016869000000e+03 + -1.795034154506543e+03 + -1.799058263107071e+03 + -1.803089202321619e+03 + -1.807126980015989e+03 + -1.811171603999998e+03 + -1.815223082025504e+03 + -1.819281421835726e+03 + -1.823346631247284e+03 + -1.827418718154363e+03 + -1.831497690000000e+03 + -1.835583554215247e+03 + -1.839676319355180e+03 + -1.843775993459518e+03 + -1.847882583413063e+03 + -1.851996096999998e+03 + -1.856116542493618e+03 + -1.860243927542824e+03 + -1.864378259929794e+03 + -1.868519547846306e+03 + -1.872667799000000e+03 + -1.876823020804590e+03 + -1.880985220849939e+03 + -1.885154407199114e+03 + -1.889330588466962e+03 + -1.893513771999998e+03 + -1.897703964771626e+03 + -1.901901175652285e+03 + -1.906105412964281e+03 + -1.910316683519642e+03 + -1.914534995000000e+03 + -1.918760355678869e+03 + -1.922992773607248e+03 + -1.927232256642219e+03 + -1.931478812455566e+03 + -1.935732448999998e+03 + -1.939993174351127e+03 + -1.944260996306766e+03 + -1.948535922544343e+03 + -1.952817960710870e+03 + -1.957107119000000e+03 + -1.961403405774432e+03 + -1.965706828656891e+03 + -1.970017395435863e+03 + -1.974335114379128e+03 + -1.978659992999998e+03 + -1.982992038634364e+03 + -1.987331259958815e+03 + -1.991677665406797e+03 + -1.996031262526477e+03 + -2.000392059000000e+03 + -2.004760062662544e+03 + -2.009135281420714e+03 + -2.013517723394651e+03 + -2.017907396963966e+03 + -2.022304309999998e+03 + -2.026708470129302e+03 + -2.031119885371980e+03 + -2.035538563783372e+03 + -2.039964513323241e+03 + -2.044397742000000e+03 + -2.048838257821666e+03 + -2.053286068652342e+03 + -2.057741182613919e+03 + -2.062203608203423e+03 + -2.066673352999998e+03 + -2.071150424296029e+03 + -2.075634830690161e+03 + -2.080126580708826e+03 + -2.084625682242698e+03 + -2.089132143000000e+03 + -2.093645970720743e+03 + -2.098167173603271e+03 + -2.102695759983049e+03 + -2.107231738184183e+03 + -2.111775115999998e+03 + -2.116325901057278e+03 + -2.120884101683680e+03 + -2.125449726108530e+03 + -2.130022782163747e+03 + -2.134603278000000e+03 + -2.139191221924691e+03 + -2.143786621957349e+03 + -2.148389485981318e+03 + -2.152999821836896e+03 + -2.157617637999998e+03 + -2.162242943074696e+03 + -2.166875744534069e+03 + -2.171516050262848e+03 + -2.176163869133622e+03 + -2.180819209000000e+03 + -2.185482077327040e+03 + -2.190152482871076e+03 + -2.194830433950524e+03 + -2.199515937814626e+03 + -2.204209002999998e+03 + -2.208909638535144e+03 + -2.213617851857877e+03 + -2.218333650781778e+03 + -2.223057044225780e+03 + -2.227788040000000e+03 + -2.232526645541351e+03 + -2.237272869895315e+03 + -2.242026721580949e+03 + -2.246788207788726e+03 + -2.251557336999999e+03 + -2.256334118250544e+03 + -2.261118559161676e+03 + -2.265910667352767e+03 + -2.270710451040453e+03 + -2.275517918999998e+03 + -2.280333080014267e+03 + -2.285155941593499e+03 + -2.289986511539142e+03 + -2.294824798563590e+03 + -2.299670810999998e+03 + -2.304524556927484e+03 + -2.309386044592275e+03 + -2.314255282195762e+03 + -2.319132277836808e+03 + -2.324017039999998e+03 + -2.328909577220459e+03 + -2.333809897224200e+03 + -2.338718008145149e+03 + -2.343633918994289e+03 + -2.348557637999998e+03 + -2.353489172912608e+03 + -2.358428531797252e+03 + -2.363375723128402e+03 + -2.368330755820120e+03 + -2.373293637999998e+03 + -2.378264377427878e+03 + -2.383242982526706e+03 + -2.388229461889857e+03 + -2.393223824063392e+03 + -2.398226076999998e+03 + -2.403236228525699e+03 + -2.408254287477974e+03 + -2.413280262494937e+03 + -2.418314161547432e+03 + -2.423355992999998e+03 + -2.428405765403690e+03 + -2.433463486890615e+03 + -2.438529165661329e+03 + -2.443602810190047e+03 + -2.448684428999998e+03 + -2.453774030522361e+03 + -2.458871622761939e+03 + -2.463977214083831e+03 + -2.469090813490053e+03 + -2.474212428999998e+03 + -2.479342068313477e+03 + -2.484479740528551e+03 + -2.489625454539379e+03 + -2.494779218375099e+03 + -2.499941039999998e+03 + -2.505110927624773e+03 + -2.510288890409285e+03 + -2.515474937052364e+03 + -2.520669075212765e+03 + -2.525871312999998e+03 + -2.531081658990217e+03 + -2.536300122220549e+03 + -2.541526711425658e+03 + -2.546761434689014e+03 + -2.552004299999998e+03 + -2.557255315555890e+03 + -2.562514490474060e+03 + -2.567781833501355e+03 + -2.573057352510476e+03 + -2.578341055999998e+03 + -2.583632952807378e+03 + -2.588933051312229e+03 + -2.594241359879810e+03 + -2.599557887014108e+03 + -2.604882640999998e+03 + -2.610215630196411e+03 + -2.615556863841929e+03 + -2.620906350516468e+03 + -2.626264097579904e+03 + -2.631630113999998e+03 + -2.637004409331177e+03 + -2.642386991059378e+03 + -2.647777867311749e+03 + -2.653177047878767e+03 + -2.658584540999998e+03 + -2.664000354190328e+03 + -2.669424496446296e+03 + -2.674856976816473e+03 + -2.680297803844182e+03 + -2.685746985999998e+03 + -2.691204531699670e+03 + -2.696670449221115e+03 + -2.702144747143579e+03 + -2.707627434527642e+03 + -2.713118519999998e+03 + -2.718618011850782e+03 + -2.724125918263655e+03 + -2.729642247949266e+03 + -2.735167010382318e+03 + -2.740700213999998e+03 + -2.746241866699575e+03 + -2.751791977076697e+03 + -2.757350554006517e+03 + -2.762917606479738e+03 + -2.768493143000000e+03 + -2.774077171851313e+03 + -2.779669701724049e+03 + -2.785270741295763e+03 + -2.790880299095185e+03 + -2.796498383999998e+03 + -2.802125004968091e+03 + -2.807760170344632e+03 + -2.813403888501788e+03 + -2.819056168106567e+03 + -2.824717018000000e+03 + -2.830386447079949e+03 + -2.836064464083062e+03 + -2.841751077483182e+03 + -2.847446295475182e+03 + -2.853150126999998e+03 + -2.858862581346520e+03 + -2.864583667200011e+03 + -2.870313392988722e+03 + -2.876051767015894e+03 + -2.881798798000000e+03 + -2.887554494917011e+03 + -2.893318866668325e+03 + -2.899091922031221e+03 + -2.904873669618204e+03 + -2.910664117999998e+03 + -2.916463275808826e+03 + -2.922271151990944e+03 + -2.928087755363771e+03 + -2.933913094445438e+03 + -2.939747178000000e+03 + -2.945590014959967e+03 + -2.951441614226611e+03 + -2.957301984588625e+03 + -2.963171134666888e+03 + -2.969049072999998e+03 + -2.974935808208847e+03 + -2.980831349417174e+03 + -2.986735705755709e+03 + -2.992648886132359e+03 + -2.998570899000000e+03 + -3.004501752659864e+03 + -3.010441455936329e+03 + -3.016390017858416e+03 + -3.022347447554316e+03 + -3.028313753999998e+03 + -3.034288946006182e+03 + -3.040273032141582e+03 + -3.046266021078663e+03 + -3.052267921739149e+03 + -3.058278743000000e+03 + -3.064298493698561e+03 + -3.070327182685398e+03 + -3.076364818827055e+03 + -3.082411411001809e+03 + -3.088466967999998e+03 + -3.094531498652569e+03 + -3.100605012177602e+03 + -3.106687517554494e+03 + -3.112779023262762e+03 + -3.118879538000000e+03 + -3.124989070695736e+03 + -3.131107630527278e+03 + -3.137235226491168e+03 + -3.143371867254447e+03 + -3.149517561999998e+03 + -3.155672319953097e+03 + -3.161836149115856e+03 + -3.168009058152651e+03 + -3.174191057129923e+03 + -3.180382155000000e+03 + -3.186582360055111e+03 + -3.192791681144167e+03 + -3.199010127274887e+03 + -3.205237707493432e+03 + -3.211474430999998e+03 + -3.217720306909038e+03 + -3.223975343611381e+03 + -3.230239549889151e+03 + -3.236512935355519e+03 + -3.242795509000000e+03 + -3.249087279482800e+03 + -3.255388255944051e+03 + -3.261698447489179e+03 + -3.268017862963467e+03 + -3.274346510999998e+03 + -3.280684400401313e+03 + -3.287031541121871e+03 + -3.293387942369432e+03 + -3.299753611888159e+03 + -3.306128559000000e+03 + -3.312512793688797e+03 + -3.318906324190636e+03 + -3.325309159228279e+03 + -3.331721308860119e+03 + -3.338142781999998e+03 + -3.344573586933190e+03 + -3.351013732692941e+03 + -3.357463228591956e+03 + -3.363922084041577e+03 + -3.370390307999997e+03 + -3.376867909193196e+03 + -3.383354896616435e+03 + -3.389851279509897e+03 + -3.396357067337695e+03 + -3.402872268999997e+03 + -3.409396893188545e+03 + -3.415930949268335e+03 + -3.422474446597307e+03 + -3.429027394238212e+03 + -3.435589800999997e+03 + -3.442161675674332e+03 + -3.448743027574159e+03 + -3.455333866086035e+03 + -3.461934200499129e+03 + -3.468544039999997e+03 + -3.475163393634110e+03 + -3.481792270131310e+03 + -3.488430678432703e+03 + -3.495078627927044e+03 + -3.501736127999997e+03 + -3.508403187927853e+03 + -3.515079816661691e+03 + -3.521766023349286e+03 + -3.528461817510494e+03 + -3.535167207999998e+03 + -3.541882203477436e+03 + -3.548606813620608e+03 + -3.555341047964333e+03 + -3.562084915431213e+03 + -3.568838424999997e+03 + -3.575601585773337e+03 + -3.582374407066678e+03 + -3.589156898185297e+03 + -3.595949068354316e+03 + -3.602750926999998e+03 + -3.609562483468940e+03 + -3.616383746264014e+03 + -3.623214724488114e+03 + -3.630055428392298e+03 + -3.636905866999997e+03 + -3.643766048793625e+03 + -3.650635983516456e+03 + -3.657515680680700e+03 + -3.664405149014039e+03 + -3.671304397999997e+03 + -3.678213437374473e+03 + -3.685132275760156e+03 + -3.692060922035369e+03 + -3.698999385901594e+03 + -3.705947676999997e+03 + -3.712905804797643e+03 + -3.719873778403308e+03 + -3.726851606752037e+03 + -3.733839298718909e+03 + -3.740836863999997e+03 + -3.747844312547997e+03 + -3.754861653211674e+03 + -3.761888895074585e+03 + -3.768926047955085e+03 + -3.775973120999997e+03 + -3.783030123074376e+03 + -3.790097063813473e+03 + -3.797173952745452e+03 + -3.804260798968512e+03 + -3.811357611999997e+03 + -3.818464401472386e+03 + -3.825581176303607e+03 + -3.832707945585785e+03 + -3.839844718954238e+03 + -3.846991505999998e+03 + -3.854148316201428e+03 + -3.861315158822798e+03 + -3.868492043129635e+03 + -3.875678978458987e+03 + -3.882875973999997e+03 + -3.890083038997269e+03 + -3.897300183310783e+03 + -3.904527416633095e+03 + -3.911764748154242e+03 + -3.919012186999997e+03 + -3.926269742452437e+03 + -3.933537424464352e+03 + -3.940815242621297e+03 + -3.948103205720294e+03 + -3.955401322999997e+03 + -3.962709604107895e+03 + -3.970028058998795e+03 + -3.977356697163350e+03 + -3.984695527326294e+03 + -3.992044558999997e+03 + -3.999403802144854e+03 + -4.006773266302151e+03 + -4.014152960820400e+03 + -4.021542894928240e+03 + -4.028943077999997e+03 + -4.036353519583599e+03 + -4.043774229513202e+03 + -4.051205217431756e+03 + -4.058646492564995e+03 + -4.066098063999997e+03 + -4.073559940995820e+03 + -4.081032133755226e+03 + -4.088514652104142e+03 + -4.096007504979870e+03 + -4.103510702000000e+03 + -4.111024253097677e+03 + -4.118548167510886e+03 + -4.126082454416708e+03 + -4.133627123225803e+03 + -4.141182184000000e+03 + -4.148747646853033e+03 + -4.156323520486682e+03 + -4.163909814098826e+03 + -4.171506538118098e+03 + -4.179113701999993e+03 + -4.186731314728609e+03 + -4.194359386189681e+03 + -4.201997926116393e+03 + -4.209646943720986e+03 + -4.217306449000000e+03 + -4.224976452122954e+03 + -4.232656961817923e+03 + -4.240347987240753e+03 + -4.248049538718602e+03 + -4.255761626000000e+03 + -4.263484258397591e+03 + -4.271217445246016e+03 + -4.278961196276451e+03 + -4.286715521743729e+03 + -4.294480431000000e+03 + -4.302255933066315e+03 + -4.310042038085233e+03 + -4.317838756007569e+03 + -4.325646096087124e+03 + -4.333464067999995e+03 + -4.341292681602012e+03 + -4.349131946225953e+03 + -4.356981871466000e+03 + -4.364842467485710e+03 + -4.372713744000000e+03 + -4.380595710372718e+03 + -4.388488375861229e+03 + -4.396391750264422e+03 + -4.404305844160006e+03 + -4.412230667000000e+03 + -4.420166227736474e+03 + -4.428112536405837e+03 + -4.436069603088062e+03 + -4.444037437481978e+03 + -4.452016049000000e+03 + -4.460005447074678e+03 + -4.468005641867199e+03 + -4.476016643204103e+03 + -4.484038460200805e+03 + -4.492071102999995e+03 + -4.500114582060231e+03 + -4.508168906299815e+03 + -4.516234085098625e+03 + -4.524310129075975e+03 + -4.532397048000000e+03 + -4.540494851104932e+03 + -4.548603547974418e+03 + -4.556723148595408e+03 + -4.564853663376500e+03 + -4.572995102000000e+03 + -4.581147473755137e+03 + -4.589310788334117e+03 + -4.597485055595826e+03 + -4.605670285497996e+03 + -4.613866488000000e+03 + -4.622073673035890e+03 + -4.630291850451470e+03 + -4.638521029781397e+03 + -4.646761220207367e+03 + -4.655012431999994e+03 + -4.663274675842531e+03 + -4.671547961173437e+03 + -4.679832297267551e+03 + -4.688127693710799e+03 + -4.696434161000000e+03 + -4.704751709752170e+03 + -4.713080348793824e+03 + -4.721420087561993e+03 + -4.729770937031085e+03 + -4.738132907000000e+03 + -4.746506006604411e+03 + -4.754890245715343e+03 + -4.763285634540516e+03 + -4.771692183448750e+03 + -4.780109901999994e+03 + -4.788538799466528e+03 + -4.796978886096308e+03 + -4.805430172162917e+03 + -4.813892667577567e+03 + -4.822366381999994e+03 + -4.830851325088147e+03 + -4.839347507060687e+03 + -4.847854938123849e+03 + -4.856373628221604e+03 + -4.864903587000000e+03 + -4.873444824101478e+03 + -4.881997349859994e+03 + -4.890561174364984e+03 + -4.899136307099045e+03 + -4.907722758000000e+03 + -4.916320537362784e+03 + -4.924929655587317e+03 + -4.933550122528648e+03 + -4.942181947260091e+03 + -4.950825139999994e+03 + -4.959479711457802e+03 + -4.968145671175524e+03 + -4.976823028809056e+03 + -4.985511794647833e+03 + -4.994211978999993e+03 + -5.002923592007461e+03 + -5.011646643245516e+03 + -5.020381142480443e+03 + -5.029127099988444e+03 + -5.037884526000000e+03 + -5.046653430641881e+03 + -5.055433823857634e+03 + -5.064225715527905e+03 + -5.073029115529123e+03 + -5.081844034000000e+03 + -5.090670481166524e+03 + -5.099508466925161e+03 + -5.108358001180135e+03 + -5.117219094017154e+03 + -5.126091755999993e+03 + -5.134975997626908e+03 + -5.143871827953957e+03 + -5.152779256704796e+03 + -5.161698295082459e+03 + -5.170628952999993e+03 + -5.179571239778229e+03 + -5.188525166029071e+03 + -5.197490742130520e+03 + -5.206467977662855e+03 + -5.215456883000000e+03 + -5.224457468752808e+03 + -5.233469744262066e+03 + -5.242493719420175e+03 + -5.251529405361101e+03 + -5.260576812000000e+03 + -5.269635948683524e+03 + -5.278706825911151e+03 + -5.287789454172008e+03 + -5.296883843495917e+03 + -5.305990003999993e+03 + -5.315107945871962e+03 + -5.324237679253967e+03 + -5.333379214299059e+03 + -5.342532561186867e+03 + -5.351697729999993e+03 + -5.360874730862462e+03 + -5.370063574314554e+03 + -5.379264270604972e+03 + -5.388476829418795e+03 + -5.397701261000000e+03 + -5.406937575887649e+03 + -5.416185784228891e+03 + -5.425445896082409e+03 + -5.434717921547790e+03 + -5.444001871000000e+03 + -5.453297754883592e+03 + -5.462605583222671e+03 + -5.471925366229407e+03 + -5.481257114511772e+03 + -5.490600837999993e+03 + -5.499956546429602e+03 + -5.509324250592133e+03 + -5.518703961068116e+03 + -5.528095687743725e+03 + -5.537499440999993e+03 + -5.546915231361128e+03 + -5.556343068498348e+03 + -5.565782962476614e+03 + -5.575234924238452e+03 + -5.584698964000000e+03 + -5.594175091687396e+03 + -5.603663318133420e+03 + -5.613163653827974e+03 + -5.622676108416792e+03 + -5.632200692000000e+03 + -5.641737415094019e+03 + -5.651286288507457e+03 + -5.660847322604374e+03 + -5.670420527008017e+03 + -5.680005911999993e+03 + -5.689603488367688e+03 + -5.699213267038800e+03 + -5.708835258184300e+03 + -5.718469470901945e+03 + -5.728115915999992e+03 + -5.737774605002216e+03 + -5.747445547634946e+03 + -5.757128753652110e+03 + -5.766824233562706e+03 + -5.776531998000000e+03 + -5.786252057564687e+03 + -5.795984422575620e+03 + -5.805729103393980e+03 + -5.815486110517342e+03 + -5.825255454000000e+03 + -5.835037143865786e+03 + -5.844831191184440e+03 + -5.854637606668529e+03 + -5.864456400127173e+03 + -5.874287581999993e+03 + -5.884131163070459e+03 + -5.893987153665426e+03 + -5.903855564090225e+03 + -5.913736404781277e+03 + -5.923629686000000e+03 + -5.933535418061928e+03 + -5.943453611973397e+03 + -5.953384278439786e+03 + -5.963327427438455e+03 + -5.973283069000000e+03 + -5.983251213525049e+03 + -5.993231872573540e+03 + -6.003225056744913e+03 + -6.013230774891098e+03 + -6.023249038000000e+03 + -6.033279857947543e+03 + -6.043323244258373e+03 + -6.053379206808452e+03 + -6.063447756872029e+03 + -6.073528904999992e+03 + -6.083622661322729e+03 + -6.093729036471069e+03 + -6.103848041095609e+03 + -6.113979685699232e+03 + -6.124123981000000e+03 + -6.134280937646101e+03 + -6.144450565430006e+03 + -6.154632874755873e+03 + -6.164827877191976e+03 + -6.175035583000000e+03 + -6.185256001935748e+03 + -6.195489145360168e+03 + -6.205735024246584e+03 + -6.215993648382001e+03 + -6.226265028000000e+03 + -6.236549173839082e+03 + -6.246846097225249e+03 + -6.257155808917487e+03 + -6.267478318647532e+03 + -6.277813636999993e+03 + -6.288161775039973e+03 + -6.298522743318929e+03 + -6.308896552332133e+03 + -6.319283212690151e+03 + -6.329682735000000e+03 + -6.340095129841887e+03 + -6.350520407726451e+03 + -6.360958579315570e+03 + -6.371409655512612e+03 + -6.381873647000000e+03 + -6.392350564293673e+03 + -6.402840417873253e+03 + -6.413343218449801e+03 + -6.423858977046060e+03 + -6.434387704000000e+03 + -6.444929409479182e+03 + -6.455484104800415e+03 + -6.466051800878468e+03 + -6.476632507643834e+03 + -6.487226235999992e+03 + -6.497832997260840e+03 + -6.508452801649206e+03 + -6.519085659445890e+03 + -6.529731581482401e+03 + -6.540390579000000e+03 + -6.551062663116751e+03 + -6.561747843536938e+03 + -6.572446130639311e+03 + -6.583157536279329e+03 + -6.593882071000000e+03 + -6.604619744763902e+03 + -6.615370568925604e+03 + -6.626134554413510e+03 + -6.636911711064461e+03 + -6.647702049999992e+03 + -6.658505582840396e+03 + -6.669322319643610e+03 + -6.680152270785791e+03 + -6.690995447680221e+03 + -6.701851860999993e+03 + -6.712721521095499e+03 + -6.723604439166686e+03 + -6.734500626205399e+03 + -6.745410092579864e+03 + -6.756332849000000e+03 + -6.767268906377159e+03 + -6.778218275408767e+03 + -6.789180966973428e+03 + -6.800156992270870e+03 + -6.811146362000000e+03 + -6.822149086596000e+03 + -6.833165176809022e+03 + -6.844194643583943e+03 + -6.855237498022965e+03 + -6.866293750999992e+03 + -6.877363413246921e+03 + -6.888446495554016e+03 + -6.899543008749155e+03 + -6.910652963678518e+03 + -6.921776370999992e+03 + -6.932913241460104e+03 + -6.944063586638155e+03 + -6.955227417524035e+03 + -6.966404743973952e+03 + -6.977595577000000e+03 + -6.988799928187199e+03 + -7.000017808173458e+03 + -7.011249227729020e+03 + -7.022494198140058e+03 + -7.033752730000000e+03 + -7.045024833685246e+03 + -7.056310520605544e+03 + -7.067609802022496e+03 + -7.078922688575014e+03 + -7.090249190999992e+03 + -7.101589320140114e+03 + -7.112943086874141e+03 + -7.124310502404821e+03 + -7.135691578318693e+03 + -7.147086324999992e+03 + -7.158494752468790e+03 + -7.169916872475182e+03 + -7.181352696510882e+03 + -7.192802235036809e+03 + -7.204265499000000e+03 + -7.215742499578333e+03 + -7.227233247391960e+03 + -7.238737753333357e+03 + -7.250256028887258e+03 + -7.261788085000000e+03 + -7.273333932305611e+03 + -7.284893581718426e+03 + -7.296467044458082e+03 + -7.308054332025791e+03 + -7.319655454999992e+03 + -7.331270423697963e+03 + -7.342899249833889e+03 + -7.354541944862027e+03 + -7.366198519315069e+03 + -7.377868983999992e+03 + -7.389553350032372e+03 + -7.401251628839381e+03 + -7.412963831476617e+03 + -7.424689968390403e+03 + -7.436430051000000e+03 + -7.448184091042194e+03 + -7.459952098877861e+03 + -7.471734085033887e+03 + -7.483530060856024e+03 + -7.495340038000000e+03 + -7.507164027981260e+03 + -7.519002041143363e+03 + -7.530854088088799e+03 + -7.542720180263871e+03 + -7.554600328999991e+03 + -7.566494545476364e+03 + -7.578402840747203e+03 + -7.590325225748156e+03 + -7.602261711334166e+03 + -7.614212308999990e+03 + -7.626177030375796e+03 + -7.638155885970103e+03 + -7.650148886679111e+03 + -7.662156044359298e+03 + -7.674177370000000e+03 + -7.686212874133715e+03 + -7.698262567927072e+03 + -7.710326462858042e+03 + -7.722404570574414e+03 + -7.734496902000000e+03 + -7.746603467726753e+03 + -7.758724278933637e+03 + -7.770859347070250e+03 + -7.783008683730720e+03 + -7.795172299999991e+03 + -7.807350206747154e+03 + -7.819542415323729e+03 + -7.831748936928582e+03 + -7.843969782379609e+03 + -7.856204962999991e+03 + -7.868454490389281e+03 + -7.880718375856472e+03 + -7.892996630459527e+03 + -7.905289265033489e+03 + -7.917596291000000e+03 + -7.929917719977670e+03 + -7.942253562811284e+03 + -7.954603830544003e+03 + -7.966968534806996e+03 + -7.979347687000000e+03 + -7.991741298275563e+03 + -8.004149379532312e+03 + -8.016571941875890e+03 + -8.029008996834256e+03 + -8.041460555999991e+03 + -8.053926630829063e+03 + -8.066407232164392e+03 + -8.078902371093302e+03 + -8.091412059283156e+03 + -8.103936307999991e+03 + -8.116475128348727e+03 + -8.129028531951320e+03 + -8.141596530160446e+03 + -8.154179133753471e+03 + -8.166776354000000e+03 + -8.179388202500601e+03 + -8.192014690774517e+03 + -8.204655830155478e+03 + -8.217311631752342e+03 + -8.229982107000000e+03 + -8.242667267443709e+03 + -8.255367124181290e+03 + -8.268081688506129e+03 + -8.280810972124258e+03 + -8.293554985999990e+03 + -8.306313740930424e+03 + -8.319087249046417e+03 + -8.331875522237864e+03 + -8.344678571514016e+03 + -8.357496408000001e+03 + -8.370329042981793e+03 + -8.383176487893126e+03 + -8.396038754236946e+03 + -8.408915853538949e+03 + -8.421807796999999e+03 + -8.434714595760075e+03 + -8.447636261558551e+03 + -8.460572806112319e+03 + -8.473524240852536e+03 + -8.486490577000000e+03 + -8.499471825734363e+03 + -8.512467998550057e+03 + -8.525479106914012e+03 + -8.538505162160651e+03 + -8.551546175999989e+03 + -8.564602160205039e+03 + -8.577673125806519e+03 + -8.590759084111069e+03 + -8.603860047081474e+03 + -8.616976026000000e+03 + -8.630107031891077e+03 + -8.643253076647045e+03 + -8.656414171854482e+03 + -8.669590328370747e+03 + -8.682781558000001e+03 + -8.695987872906602e+03 + -8.709209284090668e+03 + -8.722445802791402e+03 + -8.735697441007769e+03 + -8.748964210000000e+03 + -8.762246120773598e+03 + -8.775543185390141e+03 + -8.788855415760128e+03 + -8.802182823160678e+03 + -8.815525418999991e+03 + -8.828883214778334e+03 + -8.842256221886048e+03 + -8.855644451817980e+03 + -8.869047916276779e+03 + -8.882466627000000e+03 + -8.895900595656447e+03 + -8.909349833599377e+03 + -8.922814352320849e+03 + -8.936294163622882e+03 + -8.949789279000001e+03 + -8.963299709806102e+03 + -8.976825467697834e+03 + -8.990366564425331e+03 + -9.003923011733321e+03 + -9.017494820999989e+03 + -9.031082003570244e+03 + -9.044684571593196e+03 + -9.058302536801553e+03 + -9.071935910043938e+03 + -9.085584702999991e+03 + -9.099248927805194e+03 + -9.112928596071970e+03 + -9.126623719398038e+03 + -9.140334309541779e+03 + -9.154060378000000e+03 + -9.167801936143134e+03 + -9.181558995552323e+03 + -9.195331568052554e+03 + -9.209119665711642e+03 + -9.222923300000000e+03 + -9.236742482191501e+03 + -9.250577224366738e+03 + -9.264427538348678e+03 + -9.278293435300837e+03 + -9.292174926999989e+03 + -9.306072025514850e+03 + -9.319984742353185e+03 + -9.333913089239737e+03 + -9.347857078372264e+03 + -9.361816720999988e+03 + -9.375792028076301e+03 + -9.389783011923670e+03 + -9.403789684689073e+03 + -9.417812057757259e+03 + -9.431850143000000e+03 + -9.445903952452922e+03 + -9.459973497383473e+03 + -9.474058789280491e+03 + -9.488159840242311e+03 + -9.502276662000000e+03 + -9.516409266099370e+03 + -9.530557664431180e+03 + -9.544721868948835e+03 + -9.558901891554557e+03 + -9.573097743999990e+03 + -9.587309437907974e+03 + -9.601536984771086e+03 + -9.615780396443668e+03 + -9.630039685320193e+03 + -9.644314862999989e+03 + -9.658605940694017e+03 + -9.672912930240365e+03 + -9.687235843732506e+03 + -9.701574693379191e+03 + -9.715929491000001e+03 + -9.730300248146514e+03 + -9.744686976337332e+03 + -9.759089687418043e+03 + -9.773508393705906e+03 + -9.787943106999999e+03 + -9.802393838806964e+03 + -9.816860600913731e+03 + -9.831343405392694e+03 + -9.845842264577648e+03 + -9.860357189999990e+03 + -9.874888192875391e+03 + -9.889435285292540e+03 + -9.903998479577405e+03 + -9.918577788007758e+03 + -9.933173221999989e+03 + -9.947784792760667e+03 + -9.962412512866247e+03 + -9.977056394630243e+03 + -9.991716449514770e+03 + -1.000639269000000e+04 + -1.002108512827329e+04 + -1.003579377260607e+04 + -1.005051863510592e+04 + -1.006525973450424e+04 + -1.008001708000000e+04 + -1.009479067738785e+04 + -1.010958054488143e+04 + -1.012438669671707e+04 + -1.013920913701616e+04 + -1.015404787999999e+04 + -1.016890294387830e+04 + -1.018377433451942e+04 + -1.019866206104612e+04 + -1.021356614193473e+04 + -1.022848658999999e+04 + -1.024342341422066e+04 + -1.025837662498870e+04 + -1.027334623400460e+04 + -1.028833225445739e+04 + -1.030333470000000e+04 + -1.031835358368700e+04 + -1.033338891534757e+04 + -1.034844070623467e+04 + -1.036350897076085e+04 + -1.037859372000000e+04 + -1.039369496373519e+04 + -1.040881271589677e+04 + -1.042394698923176e+04 + -1.043909779325773e+04 + -1.045426513999999e+04 + -1.046944904320307e+04 + -1.048464951626011e+04 + -1.049986657147346e+04 + -1.051510021951631e+04 + -1.053035046999999e+04 + -1.054561733346490e+04 + -1.056090082649770e+04 + -1.057620096382862e+04 + -1.059151775501402e+04 + -1.060685121000000e+04 + -1.062220133982168e+04 + -1.063756815769902e+04 + -1.065295167679853e+04 + -1.066835190951487e+04 + -1.068376887000000e+04 + -1.069920257172756e+04 + -1.071465302083269e+04 + -1.073012022736731e+04 + -1.074560420973240e+04 + -1.076110497999999e+04 + -1.077662254698522e+04 + -1.079215692468130e+04 + -1.080770812602064e+04 + -1.082327616047952e+04 + -1.083886103999999e+04 + -1.085446277832030e+04 + -1.087008138917964e+04 + -1.088571688451933e+04 + -1.090136927381244e+04 + -1.091703857000000e+04 + -1.093272478707855e+04 + -1.094842793381667e+04 + -1.096414802233435e+04 + -1.097988507119364e+04 + -1.099563909000000e+04 + -1.101141008471468e+04 + -1.102719807131307e+04 + -1.104300306633410e+04 + -1.105882508291791e+04 + -1.107466412999999e+04 + -1.109052021511841e+04 + -1.110639335038349e+04 + -1.112228355101184e+04 + -1.113819083451417e+04 + -1.115411520999999e+04 + -1.117005668368749e+04 + -1.118601527242516e+04 + -1.120199099177015e+04 + -1.121798385114509e+04 + -1.123399386000000e+04 + -1.125002102929127e+04 + -1.126606537454743e+04 + -1.128212691149971e+04 + -1.129820565394142e+04 + -1.131430161000000e+04 + -1.133041478676655e+04 + -1.134654520134832e+04 + -1.136269286880464e+04 + -1.137885779750048e+04 + -1.139503999999999e+04 + -1.141123949060806e+04 + -1.142745627830015e+04 + -1.144369037489935e+04 + -1.145994179819328e+04 + -1.147621056000000e+04 + -1.149249666929363e+04 + -1.150880014040390e+04 + -1.152512098586926e+04 + -1.154145921396878e+04 + -1.155781484000000e+04 + -1.157418788116290e+04 + -1.159057834325663e+04 + -1.160698623573862e+04 + -1.162341157750990e+04 + -1.163985437999999e+04 + -1.165631465167572e+04 + -1.167279241049137e+04 + -1.168928767028212e+04 + -1.170580043559586e+04 + -1.172233071999999e+04 + -1.173887854137991e+04 + -1.175544390951204e+04 + -1.177202683447122e+04 + -1.178862732998528e+04 + -1.180524541000000e+04 + -1.182188108744826e+04 + -1.183853437152247e+04 + -1.185520527417456e+04 + -1.187189381268968e+04 + -1.188860000000000e+04 + -1.190532384555031e+04 + -1.192206535739879e+04 + -1.193882454957090e+04 + -1.195560144455150e+04 + -1.197239604999999e+04 + -1.198920836801576e+04 + -1.200603841862060e+04 + -1.202288622005816e+04 + -1.203975178087160e+04 + -1.205663510999999e+04 + -1.207353621858988e+04 + -1.209045512337030e+04 + -1.210739183876488e+04 + -1.212434637372514e+04 + -1.214131874000000e+04 + -1.215830895146994e+04 + -1.217531702204386e+04 + -1.219234296344827e+04 + -1.220938678454126e+04 + -1.222644850000000e+04 + -1.224352812665298e+04 + -1.226062567426862e+04 + -1.227774115320455e+04 + -1.229487457740941e+04 + -1.231202595999999e+04 + -1.232919531361497e+04 + -1.234638265190763e+04 + -1.236358798719477e+04 + -1.238081132944854e+04 + -1.239805268999999e+04 + -1.241531208224867e+04 + -1.243258952373459e+04 + -1.244988502746729e+04 + -1.246719859854622e+04 + -1.248453025000000e+04 + -1.250187999937352e+04 + -1.251924785997314e+04 + -1.253663384322633e+04 + -1.255403795942784e+04 + -1.257146022000000e+04 + -1.258890063824787e+04 + -1.260635923174130e+04 + -1.262383601348307e+04 + -1.264133098848631e+04 + -1.265884416999999e+04 + -1.267637557565735e+04 + -1.269392521755929e+04 + -1.271149310837373e+04 + -1.272907926320349e+04 + -1.274668368999999e+04 + -1.276430639533002e+04 + -1.278194739917555e+04 + -1.279960671868295e+04 + -1.281728436173200e+04 + -1.283498034000000e+04 + -1.285269466774105e+04 + -1.287042735763161e+04 + -1.288817842259290e+04 + -1.290594787633268e+04 + -1.292373573000000e+04 + -1.294154199365508e+04 + -1.295936667981993e+04 + -1.297720980264566e+04 + -1.299507137776778e+04 + -1.301295141999999e+04 + -1.303084994203483e+04 + -1.304876695061188e+04 + -1.306670245535235e+04 + -1.308465647270176e+04 + -1.310262901999999e+04 + -1.312062011245361e+04 + -1.313862975604251e+04 + -1.315665796055223e+04 + -1.317470474462057e+04 + -1.319277012000000e+04 + -1.321085409533674e+04 + -1.322895668661698e+04 + -1.324707790969205e+04 + -1.326521777718879e+04 + -1.328337630000000e+04 + -1.330155348851537e+04 + -1.331974935491385e+04 + -1.333796391362056e+04 + -1.335619718140170e+04 + -1.337444916999999e+04 + -1.339271988874384e+04 + -1.341100935082290e+04 + -1.342931756987852e+04 + -1.344764455872234e+04 + -1.346599032999999e+04 + -1.348435489664480e+04 + -1.350273827293541e+04 + -1.352114047045672e+04 + -1.353956149695641e+04 + -1.355800137000000e+04 + -1.357646010972569e+04 + -1.359493772045508e+04 + -1.361343421245217e+04 + -1.363194960986463e+04 + -1.365048392000000e+04 + -1.366903714425879e+04 + -1.368760930691950e+04 + -1.370620042690972e+04 + -1.372481050688227e+04 + -1.374343955999999e+04 + -1.376208760473736e+04 + -1.378075465005087e+04 + -1.379944070672178e+04 + -1.381814579185646e+04 + -1.383686991999999e+04 + -1.385561310323773e+04 + -1.387437535187516e+04 + -1.389315667691767e+04 + -1.391195709130158e+04 + -1.393077661000000e+04 + -1.394961524865979e+04 + -1.396847302075987e+04 + -1.398734993803961e+04 + -1.400624601054151e+04 + -1.402516125000000e+04 + -1.404409566989268e+04 + -1.406304928589068e+04 + -1.408202211294199e+04 + -1.410101416389908e+04 + -1.412002544999999e+04 + -1.413905598164077e+04 + -1.415810576964489e+04 + -1.417717482985645e+04 + -1.419626318438561e+04 + -1.421537083999999e+04 + -1.423449779870650e+04 + -1.425364408441530e+04 + -1.427280971628262e+04 + -1.429199469812906e+04 + -1.431119904000000e+04 + -1.433042275698022e+04 + -1.434966586475864e+04 + -1.436892837784737e+04 + -1.438821030874347e+04 + -1.440751167000000e+04 + -1.442683247464153e+04 + -1.444617273693482e+04 + -1.446553246845352e+04 + -1.448491167696990e+04 + -1.450431037999999e+04 + -1.452372859766022e+04 + -1.454316633455064e+04 + -1.456262360064903e+04 + -1.458210041914065e+04 + -1.460159679999998e+04 + -1.462111274782618e+04 + -1.464064828275210e+04 + -1.466020342227678e+04 + -1.467977817411577e+04 + -1.469937255000000e+04 + -1.471898656425745e+04 + -1.473862022905967e+04 + -1.475827355783788e+04 + -1.477794656667906e+04 + -1.479763927000000e+04 + -1.481735168022591e+04 + -1.483708380678435e+04 + -1.485683566151257e+04 + -1.487660726097236e+04 + -1.489639861999999e+04 + -1.491620975095499e+04 + -1.493604066191429e+04 + -1.495589136614776e+04 + -1.497576188555746e+04 + -1.499565223000000e+04 + -1.501556240451360e+04 + -1.503549242791256e+04 + -1.505544231896391e+04 + -1.507541209051985e+04 + -1.509540175000000e+04 + -1.511541130465759e+04 + -1.513544077375174e+04 + -1.515549017500820e+04 + -1.517555951933053e+04 + -1.519564881999999e+04 + -1.521575809081157e+04 + -1.523588734003694e+04 + -1.525603658036919e+04 + -1.527620583277191e+04 + -1.529639510999998e+04 + -1.531660442034102e+04 + -1.533683377728779e+04 + -1.535708319443415e+04 + -1.537735268372974e+04 + -1.539764226000000e+04 + -1.541795193921473e+04 + -1.543828173411788e+04 + -1.545863165713528e+04 + -1.547900172144165e+04 + -1.549939194000000e+04 + -1.551980232569260e+04 + -1.554023289178161e+04 + -1.556068365093051e+04 + -1.558115461506463e+04 + -1.560164579999999e+04 + -1.562215722197032e+04 + -1.564268888875843e+04 + -1.566324081295743e+04 + -1.568381301679686e+04 + -1.570440550999999e+04 + -1.572501829745089e+04 + -1.574565139909988e+04 + -1.576630483256334e+04 + -1.578697860613842e+04 + -1.580767273000000e+04 + -1.582838721786272e+04 + -1.584912209052793e+04 + -1.586987736246908e+04 + -1.589065303680525e+04 + -1.591144913000000e+04 + -1.593226566336701e+04 + -1.595310264072689e+04 + -1.597396007256353e+04 + -1.599483798518879e+04 + -1.601573638999999e+04 + -1.603665529105288e+04 + -1.605759470511345e+04 + -1.607855464838671e+04 + -1.609953513161670e+04 + -1.612053616999998e+04 + -1.614155778004294e+04 + -1.616259997081388e+04 + -1.618366275348782e+04 + -1.620474614514243e+04 + -1.622585016000000e+04 + -1.624697481007329e+04 + -1.626812010728422e+04 + -1.628928606592670e+04 + -1.631047270337715e+04 + -1.633168003000000e+04 + -1.635290805454565e+04 + -1.637415679800609e+04 + -1.639542627592296e+04 + -1.641671649164588e+04 + -1.643802745999998e+04 + -1.645935920179283e+04 + -1.648071172935930e+04 + -1.650208505431875e+04 + -1.652347919039644e+04 + -1.654489414999998e+04 + -1.656632994566724e+04 + -1.658778659427021e+04 + -1.660926410974226e+04 + -1.663076250029903e+04 + -1.665228178000000e+04 + -1.667382196574960e+04 + -1.669538306946903e+04 + -1.671696510420377e+04 + -1.673856808645374e+04 + -1.676019203000000e+04 + -1.678183694695306e+04 + -1.680350285053965e+04 + -1.682518975366077e+04 + -1.684689766850574e+04 + -1.686862660999998e+04 + -1.689037659405139e+04 + -1.691214763326874e+04 + -1.693393974023558e+04 + -1.695575292860696e+04 + -1.697758720999999e+04 + -1.699944259677470e+04 + -1.702131910964586e+04 + -1.704321676352935e+04 + -1.706513556209216e+04 + -1.708707552000000e+04 + -1.710903665790321e+04 + -1.713101898938551e+04 + -1.715302252479822e+04 + -1.717504727292061e+04 + -1.719709325000000e+04 + -1.721916047545785e+04 + -1.724124896174670e+04 + -1.726335872072246e+04 + -1.728548976595536e+04 + -1.730764210999998e+04 + -1.732981576548871e+04 + -1.735201074834581e+04 + -1.737422707347338e+04 + -1.739646475299950e+04 + -1.741872379999999e+04 + -1.744100422776899e+04 + -1.746330604747148e+04 + -1.748562927386205e+04 + -1.750797392735042e+04 + -1.753034002000000e+04 + -1.755272756012299e+04 + -1.757513656385630e+04 + -1.759756704698003e+04 + -1.762001902165879e+04 + -1.764249250000000e+04 + -1.766498749503509e+04 + -1.768750402279969e+04 + -1.771004209797560e+04 + -1.773260173223158e+04 + -1.775518293999998e+04 + -1.777778573725219e+04 + -1.780041013823985e+04 + -1.782305615380817e+04 + -1.784572379125812e+04 + -1.786841306999998e+04 + -1.789112401297027e+04 + -1.791385662520795e+04 + -1.793661091551944e+04 + -1.795938690506571e+04 + -1.798218461000000e+04 + -1.800500404157250e+04 + -1.802784520726593e+04 + -1.805070812126097e+04 + -1.807359280836476e+04 + -1.809649928000000e+04 + -1.811942754077938e+04 + -1.814237760512274e+04 + -1.816534949154946e+04 + -1.818834322012563e+04 + -1.821135879999998e+04 + -1.823439623670011e+04 + -1.825745554979138e+04 + -1.828053675712656e+04 + -1.830363986886144e+04 + -1.832676489999998e+04 + -1.834991186721417e+04 + -1.837308077964562e+04 + -1.839627164834952e+04 + -1.841948449011883e+04 + -1.844271932000000e+04 + -1.846597615248214e+04 + -1.848925500551537e+04 + -1.851255589141731e+04 + -1.853587881367952e+04 + -1.855922379000000e+04 + -1.858259084403384e+04 + -1.860597998459446e+04 + -1.862939122130964e+04 + -1.865282457086503e+04 + -1.867628004999998e+04 + -1.869975767367864e+04 + -1.872325745125265e+04 + -1.874677939400045e+04 + -1.877032351829797e+04 + -1.879388983999998e+04 + -1.881747837395618e+04 + -1.884108913346766e+04 + -1.886472213066709e+04 + -1.888837737699991e+04 + -1.891205489000000e+04 + -1.893575468867888e+04 + -1.895947678210836e+04 + -1.898322118083019e+04 + -1.900698790146692e+04 + -1.903077696000000e+04 + -1.905458837122149e+04 + -1.907842214817702e+04 + -1.910227830328199e+04 + -1.912615684887913e+04 + -1.915005779999998e+04 + -1.917398117252360e+04 + -1.919792697876641e+04 + -1.922189523162585e+04 + -1.924588594641727e+04 + -1.926989913999998e+04 + -1.929393482787026e+04 + -1.931799301676958e+04 + -1.934207372057390e+04 + -1.936617696590223e+04 + -1.939030276000000e+04 + -1.941445110358184e+04 + -1.943862202401437e+04 + -1.946281554213054e+04 + -1.948703165938676e+04 + -1.951127038999998e+04 + -1.953553175531375e+04 + -1.955981576784185e+04 + -1.958412243887696e+04 + -1.960845178142548e+04 + -1.963280380999998e+04 + -1.965717854010317e+04 + -1.968157598764983e+04 + -1.970599616682758e+04 + -1.973043908928781e+04 + -1.975490477000000e+04 + -1.977939322508017e+04 + -1.980390446612710e+04 + -1.982843850672890e+04 + -1.985299536464853e+04 + -1.987757505000000e+04 + -1.990217757132781e+04 + -1.992680295149982e+04 + -1.995145120910892e+04 + -1.997612235106852e+04 + -2.000081638999998e+04 + -2.002553334291399e+04 + -2.005027322692212e+04 + -2.007503605456619e+04 + -2.009982183242756e+04 + -2.012463057999998e+04 + -2.014946232050470e+04 + -2.017431705750974e+04 + -2.019919480128925e+04 + -2.022409557869796e+04 + -2.024901940000000e+04 + -2.027396626876084e+04 + -2.029893620825063e+04 + -2.032392923791251e+04 + -2.034894536415857e+04 + -2.037398460000000e+04 + -2.039904696273123e+04 + -2.042413246681671e+04 + -2.044924112749899e+04 + -2.047437296177629e+04 + -2.049952797999998e+04 + -2.052470619105544e+04 + -2.054990761544010e+04 + -2.057513226917888e+04 + -2.060038015795331e+04 + -2.062565129999998e+04 + -2.065094571854568e+04 + -2.067626342205840e+04 + -2.070160442063917e+04 + -2.072696873225083e+04 + -2.075235637000000e+04 + -2.077776734528838e+04 + -2.080320167696219e+04 + -2.082865938214449e+04 + -2.085414047244347e+04 + -2.087964496000000e+04 + -2.090517285805777e+04 + -2.093072418166662e+04 + -2.095629894648643e+04 + -2.098189716820891e+04 + -2.100751885999998e+04 + -2.103316403410750e+04 + -2.105883270565323e+04 + -2.108452489048020e+04 + -2.111024060421226e+04 + -2.113597985999998e+04 + -2.116174267011207e+04 + -2.118752904964539e+04 + -2.121333901446366e+04 + -2.123917258027344e+04 + -2.126502976000000e+04 + -2.129091056582378e+04 + -2.131681501406569e+04 + -2.134274311932949e+04 + -2.136869489244911e+04 + -2.139467035000000e+04 + -2.142066951097057e+04 + -2.144669238829770e+04 + -2.147273899344209e+04 + -2.149880933837191e+04 + -2.152490343999998e+04 + -2.155102131698669e+04 + -2.157716298229367e+04 + -2.160332844744082e+04 + -2.162951772437019e+04 + -2.165573082999998e+04 + -2.168196778300156e+04 + -2.170822859627157e+04 + -2.173451328139519e+04 + -2.176082185053812e+04 + -2.178715432000000e+04 + -2.181351070821111e+04 + -2.183989103150391e+04 + -2.186629530288904e+04 + -2.189272353140778e+04 + -2.191917573000000e+04 + -2.194565191497987e+04 + -2.197215210512397e+04 + -2.199867631637375e+04 + -2.202522455969623e+04 + -2.205179684999998e+04 + -2.207839320363563e+04 + -2.210501363148952e+04 + -2.213165814783550e+04 + -2.215832677350680e+04 + -2.218501951999998e+04 + -2.221173639532642e+04 + -2.223847741910094e+04 + -2.226524260850044e+04 + -2.229203197306979e+04 + -2.231884553000000e+04 + -2.234568329890952e+04 + -2.237254528774074e+04 + -2.239943150806158e+04 + -2.242634198094407e+04 + -2.245327672000000e+04 + -2.248023573585785e+04 + -2.250721904853940e+04 + -2.253422667413636e+04 + -2.256125861967753e+04 + -2.258831489999998e+04 + -2.261539553480252e+04 + -2.264250054093014e+04 + -2.266962993052693e+04 + -2.269678371062339e+04 + -2.272396189999998e+04 + -2.275116452153000e+04 + -2.277839158301363e+04 + -2.280564309534358e+04 + -2.283291907950545e+04 + -2.286021955000000e+04 + -2.288754451771620e+04 + -2.291489399812011e+04 + -2.294226800704672e+04 + -2.296966655917324e+04 + -2.299708967000000e+04 + -2.302453735490683e+04 + -2.305200962641978e+04 + -2.307950649734620e+04 + -2.310702798236498e+04 + -2.313457409999998e+04 + -2.316214486856879e+04 + -2.318974029613145e+04 + -2.321736039447026e+04 + -2.324500518448656e+04 + -2.327267467999998e+04 + -2.330036889175501e+04 + -2.332808783850466e+04 + -2.335583153764027e+04 + -2.338360000121357e+04 + -2.341139324000000e+04 + -2.343921126672951e+04 + -2.346705410394532e+04 + -2.349492176951476e+04 + -2.352281427072812e+04 + -2.355073162000000e+04 + -2.357867383414989e+04 + -2.360664093193761e+04 + -2.363463292919098e+04 + -2.366264983684289e+04 + -2.369069166999998e+04 + -2.371875844507638e+04 + -2.374685017193912e+04 + -2.377496686591387e+04 + -2.380310855200050e+04 + -2.383127523999998e+04 + -2.385946693403709e+04 + -2.388768365690810e+04 + -2.391592542840760e+04 + -2.394419225713039e+04 + -2.397248416000000e+04 + -2.400080115691363e+04 + -2.402914325571854e+04 + -2.405751046800998e+04 + -2.408590281513924e+04 + -2.411432031000000e+04 + -2.414276296293371e+04 + -2.417123079796694e+04 + -2.419972383203242e+04 + -2.422824206706797e+04 + -2.425678551999998e+04 + -2.428535421485334e+04 + -2.431394816200073e+04 + -2.434256737430352e+04 + -2.437121187300517e+04 + -2.439988166999998e+04 + -2.442857677325164e+04 + -2.445729720103540e+04 + -2.448604297194451e+04 + -2.451481410082247e+04 + -2.454361060000000e+04 + -2.457243248182022e+04 + -2.460127976431730e+04 + -2.463015246522100e+04 + -2.465905059942621e+04 + -2.468797417999998e+04 + -2.471692321945616e+04 + -2.474589773222362e+04 + -2.477489773480251e+04 + -2.480392324581322e+04 + -2.483297427999998e+04 + -2.486205084917968e+04 + -2.489115296405446e+04 + -2.492028064024748e+04 + -2.494943390068509e+04 + -2.497861275999998e+04 + -2.500781722863925e+04 + -2.503704732334474e+04 + -2.506630305872901e+04 + -2.509558444448151e+04 + -2.512489150000000e+04 + -2.515422424757818e+04 + -2.518358269497819e+04 + -2.521296685328307e+04 + -2.524237674371633e+04 + -2.527181237999998e+04 + -2.530127377273551e+04 + -2.533076094162915e+04 + -2.536027390311031e+04 + -2.538981266594794e+04 + -2.541937724999998e+04 + -2.544896767801531e+04 + -2.547858395406606e+04 + -2.550822608802068e+04 + -2.553789410507042e+04 + -2.556758802000000e+04 + -2.559730784246711e+04 + -2.562705359189478e+04 + -2.565682528525429e+04 + -2.568662293247029e+04 + -2.571644655000000e+04 + -2.574629615713407e+04 + -2.577617176604459e+04 + -2.580607338891535e+04 + -2.583600104095400e+04 + -2.586595473999998e+04 + -2.589593450400127e+04 + -2.592594034522632e+04 + -2.595597227610649e+04 + -2.598603031176017e+04 + -2.601611446999998e+04 + -2.604622476879967e+04 + -2.607636122042706e+04 + -2.610652383730750e+04 + -2.613671263455693e+04 + -2.616692763000000e+04 + -2.619716884161440e+04 + -2.622743628160562e+04 + -2.625772996246335e+04 + -2.628804989951923e+04 + -2.631839611000000e+04 + -2.634876861165059e+04 + -2.637916741999917e+04 + -2.640959254907723e+04 + -2.644004401148305e+04 + -2.647052181999998e+04 + -2.650102598983489e+04 + -2.653155654491748e+04 + -2.656211350103963e+04 + -2.659269685960091e+04 + -2.662330663999998e+04 + -2.665394286925502e+04 + -2.668460555517195e+04 + -2.671529470758218e+04 + -2.674601034670874e+04 + -2.677675249000000e+04 + -2.680752115154265e+04 + -2.683831634157976e+04 + -2.686913807564717e+04 + -2.689998637786448e+04 + -2.693086126000000e+04 + -2.696176272916689e+04 + -2.699269080763921e+04 + -2.702364551500381e+04 + -2.705462686113689e+04 + -2.708563485999998e+04 + -2.711666952809900e+04 + -2.714773087942122e+04 + -2.717881892991400e+04 + -2.720993369901594e+04 + -2.724107519999998e+04 + -2.727224344400496e+04 + -2.730343845029767e+04 + -2.733466023562860e+04 + -2.736590881019403e+04 + -2.739718419000000e+04 + -2.742848639412166e+04 + -2.745981543741902e+04 + -2.749117133427855e+04 + -2.752255410001475e+04 + -2.755396375000000e+04 + -2.758540029934807e+04 + -2.761686376223195e+04 + -2.764835415476579e+04 + -2.767987149599797e+04 + -2.771141579999997e+04 + -2.774298707825893e+04 + -2.777458534547961e+04 + -2.780621061813955e+04 + -2.783786291408934e+04 + -2.786954224999998e+04 + -2.790124864062599e+04 + -2.793298209650868e+04 + -2.796474263269793e+04 + -2.799653027215609e+04 + -2.802834503000000e+04 + -2.806018691678819e+04 + -2.809205594694776e+04 + -2.812395213748840e+04 + -2.815587550739401e+04 + -2.818782607000000e+04 + -2.821980383662756e+04 + -2.825180882556652e+04 + -2.828384105454396e+04 + -2.831590053775406e+04 + -2.834798728999998e+04 + -2.838010132665882e+04 + -2.841224266303304e+04 + -2.844441131398464e+04 + -2.847660729395342e+04 + -2.850883061999998e+04 + -2.854108131015271e+04 + -2.857335937943549e+04 + -2.860566484233479e+04 + -2.863799771378746e+04 + -2.867035801000000e+04 + -2.870274574643904e+04 + -2.873516093256026e+04 + -2.876760358436649e+04 + -2.880007372909855e+04 + -2.883257138000000e+04 + -2.886509654365616e+04 + -2.889764923870952e+04 + -2.893022948372628e+04 + -2.896283729252707e+04 + -2.899547267999998e+04 + -2.902813566168059e+04 + -2.906082625190441e+04 + -2.909354446650575e+04 + -2.912629032389195e+04 + -2.915906383999998e+04 + -2.919186502919167e+04 + -2.922469390650106e+04 + -2.925755048733507e+04 + -2.929043478725063e+04 + -2.932334682000000e+04 + -2.935628660019129e+04 + -2.938925415043921e+04 + -2.942224948806936e+04 + -2.945527261979538e+04 + -2.948832356000000e+04 + -2.952140232838030e+04 + -2.955450894361826e+04 + -2.958764342089699e+04 + -2.962080577090842e+04 + -2.965399600999997e+04 + -2.968721415715336e+04 + -2.972046022629084e+04 + -2.975373423280592e+04 + -2.978703619592538e+04 + -2.982036612999997e+04 + -2.985372404652352e+04 + -2.988710995909819e+04 + -2.992052388535540e+04 + -2.995396584761164e+04 + -2.998743586000000e+04 + -3.002093393306212e+04 + -3.005446008516229e+04 + -3.008801433415196e+04 + -3.012159669410924e+04 + -3.015520717999998e+04 + -3.018884580728562e+04 + -3.022251259030155e+04 + -3.025620754490144e+04 + -3.028993068950620e+04 + -3.032368203999997e+04 + -3.035746161072607e+04 + -3.039126941699663e+04 + -3.042510547393189e+04 + -3.045896979612689e+04 + -3.049286239999998e+04 + -3.052678330335746e+04 + -3.056073252467363e+04 + -3.059471007984014e+04 + -3.062871598061521e+04 + -3.066275024000000e+04 + -3.069681287356475e+04 + -3.073090390293319e+04 + -3.076502334621974e+04 + -3.079917121404217e+04 + -3.083334751999997e+04 + -3.086755228023463e+04 + -3.090178551167921e+04 + -3.093604723225209e+04 + -3.097033746063074e+04 + -3.100465620999998e+04 + -3.103900349175437e+04 + -3.107337932446759e+04 + -3.110778372555016e+04 + -3.114221670819769e+04 + -3.117667828999997e+04 + -3.121116848957679e+04 + -3.124568731744623e+04 + -3.128023478769976e+04 + -3.131481092268889e+04 + -3.134941574000000e+04 + -3.138404925321087e+04 + -3.141871147408727e+04 + -3.145340241670125e+04 + -3.148812209933996e+04 + -3.152287053999997e+04 + -3.155764775577736e+04 + -3.159245376185456e+04 + -3.162728857279384e+04 + -3.166215220315186e+04 + -3.169704466999997e+04 + -3.173196599132658e+04 + -3.176691618227545e+04 + -3.180189525721778e+04 + -3.183690323068162e+04 + -3.187194012000000e+04 + -3.190700594323912e+04 + -3.194210071422084e+04 + -3.197722444868163e+04 + -3.201237716636405e+04 + -3.204755888000000e+04 + -3.208276960047787e+04 + -3.211800935023939e+04 + -3.215327814773632e+04 + -3.218857600158763e+04 + -3.222390292999997e+04 + -3.225925895535199e+04 + -3.229464408973093e+04 + -3.233005834462857e+04 + -3.236550173499735e+04 + -3.240097427999997e+04 + -3.243647600017841e+04 + -3.247200691143220e+04 + -3.250756702669824e+04 + -3.254315635678932e+04 + -3.257877492000000e+04 + -3.261442273792899e+04 + -3.265009982555360e+04 + -3.268580619650297e+04 + -3.272154186523808e+04 + -3.275730685000000e+04 + -3.279310116911321e+04 + -3.282892483177912e+04 + -3.286477785354587e+04 + -3.290066026202923e+04 + -3.293657206999998e+04 + -3.297251328378459e+04 + -3.300848392497173e+04 + -3.304448401407080e+04 + -3.308051356412061e+04 + -3.311657258999998e+04 + -3.315266110752813e+04 + -3.318877912993135e+04 + -3.322492667413289e+04 + -3.326110376297835e+04 + -3.329731041000000e+04 + -3.333354662539115e+04 + -3.336981243131684e+04 + -3.340610784669931e+04 + -3.344243288124504e+04 + -3.347878755000000e+04 + -3.351517187197135e+04 + -3.355158586607149e+04 + -3.358802954742114e+04 + -3.362450292603845e+04 + -3.366100601999997e+04 + -3.369753885113907e+04 + -3.373410143432544e+04 + -3.377069378324004e+04 + -3.380731591267414e+04 + -3.384396783999997e+04 + -3.388064958319757e+04 + -3.391736115628571e+04 + -3.395410257481684e+04 + -3.399087385786547e+04 + -3.402767502000000e+04 + -3.406450607498593e+04 + -3.410136704569621e+04 + -3.413825794940452e+04 + -3.417517879208190e+04 + -3.421212959000000e+04 + -3.424911036577375e+04 + -3.428612113814977e+04 + -3.432316192150666e+04 + -3.436023272579379e+04 + -3.439733356999998e+04 + -3.443446447621852e+04 + -3.447162545467578e+04 + -3.450881651888796e+04 + -3.454603769159935e+04 + -3.458328898999997e+04 + -3.462057042742187e+04 + -3.465788201822977e+04 + -3.469522377879945e+04 + -3.473259572783916e+04 + -3.476999788000000e+04 + -3.480743024920274e+04 + -3.484489285737491e+04 + -3.488238572274076e+04 + -3.491990885516477e+04 + -3.495746227000000e+04 + -3.499504598627476e+04 + -3.503266002163332e+04 + -3.507030439252002e+04 + -3.510797911399110e+04 + -3.514568419999997e+04 + -3.518341966538968e+04 + -3.522118553105182e+04 + -3.525898181605689e+04 + -3.529680853433678e+04 + -3.533466569999997e+04 + -3.537255332834070e+04 + -3.541047143775194e+04 + -3.544842004484196e+04 + -3.548639916273562e+04 + -3.552440881000000e+04 + -3.556244900769237e+04 + -3.560051977192599e+04 + -3.563862111528000e+04 + -3.567675304773126e+04 + -3.571491559000000e+04 + -3.575310876677514e+04 + -3.579133259025522e+04 + -3.582958707123636e+04 + -3.586787222387752e+04 + -3.590618806999997e+04 + -3.594453463328037e+04 + -3.598291192576281e+04 + -3.602131995866808e+04 + -3.605975874687618e+04 + -3.609822830999997e+04 + -3.613672866872384e+04 + -3.617525983663845e+04 + -3.621382182906358e+04 + -3.625241466608051e+04 + -3.629103836000000e+04 + -3.632969292147818e+04 + -3.636837837559645e+04 + -3.640709474306420e+04 + -3.644584203277781e+04 + -3.648462026000000e+04 + -3.652342944409004e+04 + -3.656226960170399e+04 + -3.660114075023598e+04 + -3.664004290875195e+04 + -3.667897608999997e+04 + -3.671794030512006e+04 + -3.675693557547587e+04 + -3.679596192058374e+04 + -3.683501935339895e+04 + -3.687410788999997e+04 + -3.691322754870546e+04 + -3.695237834723054e+04 + -3.699156030212950e+04 + -3.703077342834224e+04 + -3.707001774000000e+04 + -3.710929325203417e+04 + -3.714859998429457e+04 + -3.718793795692067e+04 + -3.722730718808447e+04 + -3.726670768999997e+04 + -3.730613947399677e+04 + -3.734560256273038e+04 + -3.738509697431393e+04 + -3.742462271654350e+04 + -3.746417980999997e+04 + -3.750376828013417e+04 + -3.754338813660564e+04 + -3.758303939267375e+04 + -3.762272207245150e+04 + -3.766243618999997e+04 + -3.770218175518502e+04 + -3.774195878945678e+04 + -3.778176731257176e+04 + -3.782160733741773e+04 + -3.786147888000000e+04 + -3.790138195864309e+04 + -3.794131659132003e+04 + -3.798128279431332e+04 + -3.802128058166662e+04 + -3.806130996999997e+04 + -3.810137097737330e+04 + -3.814146362046005e+04 + -3.818158791697343e+04 + -3.822174388615621e+04 + -3.826193153999997e+04 + -3.830215088938532e+04 + -3.834240195971708e+04 + -3.838268477130731e+04 + -3.842299933188884e+04 + -3.846334565999997e+04 + -3.850372377842891e+04 + -3.854413369633216e+04 + -3.858457542816681e+04 + -3.862504900090371e+04 + -3.866555443000000e+04 + -3.870609172486966e+04 + -3.874666090332934e+04 + -3.878726198409722e+04 + -3.882789498399841e+04 + -3.886855991999997e+04 + -3.890925680946781e+04 + -3.894998567054054e+04 + -3.899074651957592e+04 + -3.903153937021765e+04 + -3.907236423999997e+04 + -3.911322114736439e+04 + -3.915411010384250e+04 + -3.919503112747372e+04 + -3.923598424716172e+04 + -3.927696946999997e+04 + -3.931798680038228e+04 + -3.935903628964794e+04 + -3.940011793259103e+04 + -3.944123164809230e+04 + -3.948237770000000e+04 + -3.952355620675491e+04 + -3.956476584662273e+04 + -3.960600801403134e+04 + -3.964728735507886e+04 + -3.968859104999997e+04 + 1.819886919039960e+01 + 1.816405130921966e+01 + 1.812918280091599e+01 + 1.809426424653407e+01 + 1.805929622711938e+01 + 1.802427932371738e+01 + 1.798921411737356e+01 + 1.795410118913339e+01 + 1.791894112004234e+01 + 1.788373449114589e+01 + 1.784848188348950e+01 + 1.781318387811866e+01 + 1.777784105607885e+01 + 1.774245399841551e+01 + 1.770702328617416e+01 + 1.767154950040025e+01 + 1.763603322213927e+01 + 1.760047503243666e+01 + 1.756487551233793e+01 + 1.752923524288855e+01 + 1.749355480513398e+01 + 1.745783478011969e+01 + 1.742207574889119e+01 + 1.738627829249391e+01 + 1.735044299197335e+01 + 1.731457042837498e+01 + 1.727866118274428e+01 + 1.724271583612671e+01 + 1.720673496956776e+01 + 1.717071916411290e+01 + 1.713466900080759e+01 + 1.709858506069732e+01 + 1.706246792482757e+01 + 1.702631817424381e+01 + 1.699013638999150e+01 + 1.695392315311613e+01 + 1.691767904466317e+01 + 1.688140464567809e+01 + 1.684510053720637e+01 + 1.680876730029348e+01 + 1.677240551598491e+01 + 1.673601576532611e+01 + 1.669959862936258e+01 + 1.666315468913977e+01 + 1.662668452570318e+01 + 1.659018872009826e+01 + 1.655366785337049e+01 + 1.651712250656536e+01 + 1.648055326072833e+01 + 1.644396069690488e+01 + 1.640734539614049e+01 + 1.637070793948063e+01 + 1.633404890797076e+01 + 1.629736888265638e+01 + 1.626066844458294e+01 + 1.622394817479593e+01 + 1.618720865434082e+01 + 1.615045046426309e+01 + 1.611367418560821e+01 + 1.607688039942165e+01 + 1.604006968674890e+01 + 1.600324262863542e+01 + 1.596639980612668e+01 + 1.592954180026817e+01 + 1.589266919210536e+01 + 1.585578256268371e+01 + 1.581888249304872e+01 + 1.578196956424585e+01 + 1.574504435732057e+01 + 1.570810745331836e+01 + 1.567115943328470e+01 + 1.563420087826506e+01 + 1.559723236930490e+01 + 1.556025448744972e+01 + 1.552326781374499e+01 + 1.548627292923617e+01 + 1.544927041496875e+01 + 1.541226085198818e+01 + 1.537524482133997e+01 + 1.533822290406956e+01 + 1.530119568122245e+01 + 1.526416373384410e+01 + 1.522712764298000e+01 + 1.519008798967561e+01 + 1.515304535497640e+01 + 1.511600031992786e+01 + 1.507895346557546e+01 + 1.504190537296467e+01 + 1.500485662314096e+01 + 1.496780779714983e+01 + 1.493075947603672e+01 + 1.489371224084713e+01 + 1.485666667262652e+01 + 1.481962335242037e+01 + 1.478258286127416e+01 + 1.474554578023335e+01 + 1.470851269034343e+01 + 1.467148417264987e+01 + 1.463446080819813e+01 + 1.459744317803371e+01 + 1.456043186320207e+01 + 1.452342744474869e+01 + 1.448643050371903e+01 + 1.444944162115858e+01 + 1.441246137811282e+01 + 1.437549035562720e+01 + 1.433852913474722e+01 + 1.430157829651834e+01 + 1.426463842198604e+01 + 1.422771009219579e+01 + 1.419079388819307e+01 + 1.415389039102334e+01 + 1.411700018173210e+01 + 1.408012384136481e+01 + 1.404326195096694e+01 + 1.400641509158398e+01 + 1.396958384426139e+01 + 1.393276879004464e+01 + 1.389597050997923e+01 + 1.385918958511061e+01 + 1.382242659648426e+01 + 1.378568212514566e+01 + 1.374895675214029e+01 + 1.371225105851361e+01 + 1.367556562531110e+01 + 1.363890103357824e+01 + 1.360225786436050e+01 + 1.356563669870335e+01 + 1.352903811765228e+01 + 1.349246270225274e+01 + 1.345591103355023e+01 + 1.341938369259021e+01 + 1.338288126041816e+01 + 1.334640431807955e+01 + 1.330995344661985e+01 + 1.327352922708455e+01 + 1.323713224051912e+01 + 1.320076306796902e+01 + 1.316442229047974e+01 + 1.312811048909675e+01 + 1.309182824486553e+01 + 1.305557613883154e+01 + 1.301935475204027e+01 + 1.298316466553718e+01 + 1.294700646036776e+01 + 1.291088071757748e+01 + 1.287478801821181e+01 + 1.283872894331622e+01 + 1.280270407393619e+01 + 1.276671399111720e+01 + 1.273075927590472e+01 + 1.269484050934423e+01 + 1.265895827248119e+01 + 1.262311314636109e+01 + 1.258730571202939e+01 + 1.255153655053158e+01 + 1.251580624291313e+01 + 1.248011537021950e+01 + 1.244446451349619e+01 + 1.240885425378865e+01 + 1.237328517214237e+01 + 1.233775784960283e+01 + 1.230227286721548e+01 + 1.226683080602582e+01 + 1.223143224707931e+01 + 1.219607777142142e+01 + 1.216076796009764e+01 + 1.212550339415344e+01 + 1.209028465463429e+01 + 1.205511232258567e+01 + 1.201998697905305e+01 + 1.198490920508190e+01 + 1.194987958171770e+01 + 1.191489869000593e+01 + 1.187996711099206e+01 + 1.184508542572157e+01 + 1.181025421523992e+01 + 1.177547406059259e+01 + 1.174074554282507e+01 + 1.170606924298281e+01 + 1.167144574211130e+01 + 1.163687562125602e+01 + 1.160235946146243e+01 + 1.156789784377601e+01 + 1.153349134924223e+01 + 1.149914055890657e+01 + 1.146484605381452e+01 + 1.143060841501152e+01 + 1.139642822354308e+01 + 1.136230606045464e+01 + 1.132824250679170e+01 + 1.129423814359974e+01 + 1.126029355192421e+01 + 1.122640931281059e+01 + 1.119258600730437e+01 + 1.115882421645102e+01 + 1.112512452129600e+01 + 1.109148750288479e+01 + 1.105791374226288e+01 + 1.102440382047573e+01 + 1.099095831856882e+01 + 1.095757781758762e+01 + 1.092426289857761e+01 + 1.089101414258426e+01 + 1.085783213065305e+01 + 1.082471744382945e+01 + 1.079167066315892e+01 + 1.075869236968697e+01 + 1.072578314445905e+01 + 1.069294356852064e+01 + 1.066017422291721e+01 + 1.062747568869424e+01 + 1.059484854689720e+01 + 1.056229337857157e+01 + 1.052981076476282e+01 + 1.049740128651643e+01 + 1.046506552487787e+01 + 1.043280406089261e+01 + 1.040061747560614e+01 + 1.036850635006392e+01 + 1.033647126531143e+01 + 1.030451280239414e+01 + 1.027263154235754e+01 + 1.024082806624708e+01 + 1.020910295510825e+01 + 1.017745678998653e+01 + 1.014589015192738e+01 + 1.011440362197629e+01 + 1.008299778117872e+01 + 1.005167321058014e+01 + 1.002043049122605e+01 + 9.989270204161905e+00 + 9.958192930433185e+00 + 9.927199251085362e+00 + 9.896289747163912e+00 + 9.865464999714312e+00 + 9.834725589782032e+00 + 9.804072098412551e+00 + 9.773505106651340e+00 + 9.743025195543877e+00 + 9.712632946135633e+00 + 9.682328939472086e+00 + 9.652113756598707e+00 + 9.621987978560973e+00 + 9.591952186404358e+00 + 9.562006961174337e+00 + 9.532152883916382e+00 + 9.502390535675973e+00 + 9.472720497498580e+00 + 9.443143350429677e+00 + 9.413659675514742e+00 + 9.384270053799249e+00 + 9.354975066328668e+00 + 9.325775294148480e+00 + 9.296671318304156e+00 + 9.267663719841170e+00 + 9.238753079804999e+00 + 9.209939979241115e+00 + 9.181224999194994e+00 + 9.152608720712111e+00 + 9.124091724837941e+00 + 9.095674592617954e+00 + 9.067357905097630e+00 + 9.039142243322441e+00 + 9.011028188337864e+00 + 8.983016292445305e+00 + 8.955106689123129e+00 + 8.927299195109086e+00 + 8.899593619314148e+00 + 8.871989770649284e+00 + 8.844487458025464e+00 + 8.817086490353660e+00 + 8.789786676544839e+00 + 8.762587825509975e+00 + 8.735489746160036e+00 + 8.708492247405990e+00 + 8.681595138158814e+00 + 8.654798227329470e+00 + 8.628101323828931e+00 + 8.601504236568170e+00 + 8.575006774458155e+00 + 8.548608746409855e+00 + 8.522309961334242e+00 + 8.496110228142285e+00 + 8.470009355744955e+00 + 8.444007153053219e+00 + 8.418103428978053e+00 + 8.392297992430423e+00 + 8.366590652321301e+00 + 8.340981217561657e+00 + 8.315469497062459e+00 + 8.290055299734679e+00 + 8.264738434489287e+00 + 8.239518710237252e+00 + 8.214395935889545e+00 + 8.189369920357137e+00 + 8.164440472550996e+00 + 8.139607401382095e+00 + 8.114870515761401e+00 + 8.090229624599887e+00 + 8.065684536808520e+00 + 8.041235061298275e+00 + 8.016881006980118e+00 + 7.992622182765018e+00 + 7.968458397563950e+00 + 7.944389460287880e+00 + 7.920415179847782e+00 + 7.896535365154623e+00 + 7.872749825119373e+00 + 7.849058368653004e+00 + 7.825460804666484e+00 + 7.801956942070785e+00 + 7.778546589776878e+00 + 7.755229556695729e+00 + 7.732005651738313e+00 + 7.708874683815599e+00 + 7.685836461838553e+00 + 7.662890794718152e+00 + 7.640037491365358e+00 + 7.617276360691148e+00 + 7.594607211606489e+00 + 7.572029853022352e+00 + 7.549544093849708e+00 + 7.527149742999527e+00 + 7.504846609382777e+00 + 7.482634501910429e+00 + 7.460513229493455e+00 + 7.438482601042820e+00 + 7.416542425469502e+00 + 7.394692511684465e+00 + 7.372932668598682e+00 + 7.351262705123121e+00 + 7.329682430168755e+00 + 7.308191652646553e+00 + 7.286790181467484e+00 + 7.265477825542517e+00 + 7.244254393782626e+00 + 7.223119695098779e+00 + 7.202073538401945e+00 + 7.181115732603097e+00 + 7.160246086613204e+00 + 7.139464409343233e+00 + 7.118770509704159e+00 + 7.098164196606950e+00 + 7.077645278962576e+00 + 7.057213565682006e+00 + 7.036868865676214e+00 + 7.016610987856166e+00 + 6.996439741132834e+00 + 6.976354934417186e+00 + 6.956356376620197e+00 + 6.936443876652832e+00 + 6.916617243426063e+00 + 6.896876285850862e+00 + 6.877220812838198e+00 + 6.857650633299039e+00 + 6.838165556144358e+00 + 6.818765390285123e+00 + 6.799449944632306e+00 + 6.780219028096876e+00 + 6.761072449589803e+00 + 6.742010018022058e+00 + 6.723031542304612e+00 + 6.704136831348434e+00 + 6.685325694064492e+00 + 6.666597939363759e+00 + 6.647953376157203e+00 + 6.629391813355797e+00 + 6.610913059870509e+00 + 6.592516924612310e+00 + 6.574203216492170e+00 + 6.555971744421058e+00 + 6.537822317309946e+00 + 6.519754744069803e+00 + 6.501768833611600e+00 + 6.483864394846306e+00 + 6.466041236684891e+00 + 6.448299168038327e+00 + 6.430637997817582e+00 + 6.413057534933630e+00 + 6.395557588297437e+00 + 6.378137966819973e+00 + 6.360798479412210e+00 + 6.343538934985117e+00 + 6.326359142449666e+00 + 6.309258910716826e+00 + 6.292238048697567e+00 + 6.275296365302859e+00 + 6.258433669443673e+00 + 6.241649770030978e+00 + 6.224944475975745e+00 + 6.208317596188945e+00 + 6.191768939581546e+00 + 6.175298315064517e+00 + 6.158905531548833e+00 + 6.142590397945462e+00 + 6.126352723165372e+00 + 6.110192316119535e+00 + 6.094108985718921e+00 + 6.078102540874499e+00 + 6.062172790497243e+00 + 6.046319543498117e+00 + 6.030542608788095e+00 + 6.014841795278149e+00 + 5.999216911879244e+00 + 5.983667767502356e+00 + 5.968194171058448e+00 + 5.952795931458497e+00 + 5.937472857613470e+00 + 5.922224758434336e+00 + 5.907051442832068e+00 + 5.891952719717633e+00 + 5.876928398002004e+00 + 5.861978286596150e+00 + 5.847102194411042e+00 + 5.832299930357648e+00 + 5.817571303346941e+00 + 5.802916122289888e+00 + 5.788334196097460e+00 + 5.773825333680629e+00 + 5.759389343950365e+00 + 5.745026035817635e+00 + 5.730735218193414e+00 + 5.716516699988668e+00 + 5.702370290114368e+00 + 5.688295797481486e+00 + 5.674293031000990e+00 + 5.660361799583851e+00 + 5.646501912141039e+00 + 5.632713177583526e+00 + 5.618995404822279e+00 + 5.605348402768269e+00 + 5.591771980332467e+00 + 5.578265946425844e+00 + 5.564830109959368e+00 + 5.551464279844009e+00 + 5.538168264990741e+00 + 5.524941874310529e+00 + 5.511784916714348e+00 + 5.498697201113163e+00 + 5.485678536417949e+00 + 5.472728731539672e+00 + 5.459847595389306e+00 + 5.447031950668924e+00 + 5.434258417587328e+00 + 5.421509378931341e+00 + 5.408790202589383e+00 + 5.396101725502927e+00 + 5.383442552149385e+00 + 5.370812984345576e+00 + 5.358213038980171e+00 + 5.345642546622406e+00 + 5.333101463094469e+00 + 5.320589727671893e+00 + 5.308107264570896e+00 + 5.295654006874094e+00 + 5.283229887334054e+00 + 5.270834837715376e+00 + 5.258468789944041e+00 + 5.246131676000384e+00 + 5.233823428164784e+00 + 5.221543979540164e+00 + 5.209293263422158e+00 + 5.197071212820756e+00 + 5.184877759775030e+00 + 5.172712837552656e+00 + 5.160576380473933e+00 + 5.148468322098453e+00 + 5.136388595958436e+00 + 5.124337135726472e+00 + 5.112313875048248e+00 + 5.100318748362747e+00 + 5.088351690727316e+00 + 5.076412636057685e+00 + 5.064501518839616e+00 + 5.052618274474592e+00 + 5.040762837425790e+00 + 5.028935142799786e+00 + 5.017135126690616e+00 + 5.005362723409764e+00 + 4.993617868159293e+00 + 4.981900498164465e+00 + 4.970210548621045e+00 + 4.958547954855285e+00 + 4.946912653797631e+00 + 4.935304581602165e+00 + 4.923723674430540e+00 + 4.912169869219803e+00 + 4.900643102722201e+00 + 4.889143311682699e+00 + 4.877670433140317e+00 + 4.866224404407401e+00 + 4.854805162838305e+00 + 4.843412645620055e+00 + 4.832046790470948e+00 + 4.820707535433044e+00 + 4.809394818449872e+00 + 4.798108577205163e+00 + 4.786848749644187e+00 + 4.775615274885523e+00 + 4.764408091170769e+00 + 4.753227136475494e+00 + 4.742072350593207e+00 + 4.730943672320340e+00 + 4.719841039761676e+00 + 4.708764392793848e+00 + 4.697713670947889e+00 + 4.686688813308958e+00 + 4.675689760077749e+00 + 4.664716450776882e+00 + 4.653768824355144e+00 + 4.642846821849820e+00 + 4.631950383864691e+00 + 4.621079449911801e+00 + 4.610233960271208e+00 + 4.599413855814052e+00 + 4.588619077726644e+00 + 4.577849566594633e+00 + 4.567105263324451e+00 + 4.556386109499332e+00 + 4.545692045920192e+00 + 4.535023013830533e+00 + 4.524378955558838e+00 + 4.513759812087895e+00 + 4.503165524982657e+00 + 4.492596037765430e+00 + 4.482051291649467e+00 + 4.471531227881555e+00 + 4.461035790191556e+00 + 4.450564920902143e+00 + 4.440118561957067e+00 + 4.429696656605228e+00 + 4.419299148008472e+00 + 4.408925979093191e+00 + 4.398577092681390e+00 + 4.388252432408600e+00 + 4.377951941955149e+00 + 4.367675563647617e+00 + 4.357423241911437e+00 + 4.347194921954801e+00 + 4.336990545878941e+00 + 4.326810057907454e+00 + 4.316653403787664e+00 + 4.306520526395858e+00 + 4.296411370095723e+00 + 4.286325880845187e+00 + 4.276264002847886e+00 + 4.266225680614548e+00 + 4.256210859410026e+00 + 4.246219484255977e+00 + 4.236251500111860e+00 + 4.226306852214246e+00 + 4.216385487075638e+00 + 4.206487350454588e+00 + 4.196612386873075e+00 + 4.186760542346591e+00 + 4.176931763412669e+00 + 4.167125996517556e+00 + 4.157343187931778e+00 + 4.147583283659849e+00 + 4.137846229598449e+00 + 4.128131973158434e+00 + 4.118440461620333e+00 + 4.108771640965568e+00 + 4.099125458381889e+00 + 4.089501861348100e+00 + 4.079900796648449e+00 + 4.070322211621146e+00 + 4.060766054068578e+00 + 4.051232271987449e+00 + 4.041720812903752e+00 + 4.032231624389123e+00 + 4.022764654839604e+00 + 4.013319852102482e+00 + 4.003897163974346e+00 + 3.994496539375360e+00 + 3.985117927005318e+00 + 3.975761275162846e+00 + 3.966426531955261e+00 + 3.957113646635731e+00 + 3.947822569087183e+00 + 3.938553247905866e+00 + 3.929305631685672e+00 + 3.920079669524097e+00 + 3.910875311427285e+00 + 3.901692507178291e+00 + 3.892531206204140e+00 + 3.883391358396833e+00 + 3.874272913657344e+00 + 3.865175821793835e+00 + 3.856100032879644e+00 + 3.847045497225832e+00 + 3.838012165320722e+00 + 3.828999987558789e+00 + 3.820008914413926e+00 + 3.811038896595444e+00 + 3.802089885254187e+00 + 3.793161831237620e+00 + 3.784254684890362e+00 + 3.775368398252875e+00 + 3.766502923100440e+00 + 3.757658209579520e+00 + 3.748834209295840e+00 + 3.740030874433959e+00 + 3.731248156753105e+00 + 3.722486008117639e+00 + 3.713744380387517e+00 + 3.705023225280349e+00 + 3.696322495070079e+00 + 3.687642142318910e+00 + 3.678982119432947e+00 + 3.670342378801804e+00 + 3.661722872867589e+00 + 3.653123554235752e+00 + 3.644544376023881e+00 + 3.635985291634798e+00 + 3.627446254192749e+00 + 3.618927216218316e+00 + 3.610428130335504e+00 + 3.601948951051534e+00 + 3.593489632231203e+00 + 3.585050126838500e+00 + 3.576630388153148e+00 + 3.568230370457688e+00 + 3.559850028500160e+00 + 3.551489315016799e+00 + 3.543148183918080e+00 + 3.534826590807976e+00 + 3.526524489935861e+00 + 3.518241835011243e+00 + 3.509978579991082e+00 + 3.501734680809670e+00 + 3.493510092697708e+00 + 3.485304769188242e+00 + 3.477118665289576e+00 + 3.468951736765370e+00 + 3.460803939385451e+00 + 3.452675227557384e+00 + 3.444565556219660e+00 + 3.436474882078371e+00 + 3.428403160505571e+00 + 3.420350346590145e+00 + 3.412316396304707e+00 + 3.404301265792477e+00 + 3.396304911176187e+00 + 3.388327288491305e+00 + 3.380368354160161e+00 + 3.372428064623584e+00 + 3.364506375833607e+00 + 3.356603244211646e+00 + 3.348718626640740e+00 + 3.340852480236101e+00 + 3.333004761693424e+00 + 3.325175427644580e+00 + 3.317364435527293e+00 + 3.309571742493616e+00 + 3.301797305408617e+00 + 3.294041081414062e+00 + 3.286303028194412e+00 + 3.278583103726798e+00 + 3.270881265443555e+00 + 3.263197471011956e+00 + 3.255531678390248e+00 + 3.247883845209004e+00 + 3.240253929642225e+00 + 3.232641890347850e+00 + 3.225047684908113e+00 + 3.217471271425511e+00 + 3.209912608923088e+00 + 3.202371655667555e+00 + 3.194848370181972e+00 + 3.187342711658790e+00 + 3.179854638881827e+00 + 3.172384110380890e+00 + 3.164931084707051e+00 + 3.157495521384956e+00 + 3.150077380058776e+00 + 3.142676619877814e+00 + 3.135293200073600e+00 + 3.127927079946843e+00 + 3.120578218905895e+00 + 3.113246577218404e+00 + 3.105932114937815e+00 + 3.098634790846833e+00 + 3.091354565058342e+00 + 3.084091398271724e+00 + 3.076845250485478e+00 + 3.069616081755534e+00 + 3.062403852244847e+00 + 3.055208522175611e+00 + 3.048030052549899e+00 + 3.040868404439169e+00 + 3.033723537524932e+00 + 3.026595412527113e+00 + 3.019483991059011e+00 + 3.012389234177664e+00 + 3.005311102428361e+00 + 2.998249556405217e+00 + 2.991204558170310e+00 + 2.984176069441633e+00 + 2.977164051262350e+00 + 2.970168464749357e+00 + 2.963189271462946e+00 + 2.956226433370632e+00 + 2.949279912203107e+00 + 2.942349669912605e+00 + 2.935435668735732e+00 + 2.928537870478263e+00 + 2.921656236941307e+00 + 2.914790730227295e+00 + 2.907941313056430e+00 + 2.901107948114753e+00 + 2.894290597705669e+00 + 2.887489224186201e+00 + 2.880703790004707e+00 + 2.873934257778331e+00 + 2.867180590721052e+00 + 2.860442752157053e+00 + 2.853720705060128e+00 + 2.847014412004529e+00 + 2.840323835735203e+00 + 2.833648939802342e+00 + 2.826989688360529e+00 + 2.820346045051714e+00 + 2.813717971838249e+00 + 2.807105432809830e+00 + 2.800508392739872e+00 + 2.793926814285955e+00 + 2.787360661385112e+00 + 2.780809898806732e+00 + 2.774274490318202e+00 + 2.767754399418414e+00 + 2.761249589980850e+00 + 2.754760027276096e+00 + 2.748285675987487e+00 + 2.741826499952791e+00 + 2.735382462817888e+00 + 2.728953529693038e+00 + 2.722539666591989e+00 + 2.716140837199994e+00 + 2.709757005928732e+00 + 2.703388138477217e+00 + 2.697034199719776e+00 + 2.690695154612969e+00 + 2.684370968516638e+00 + 2.678061606722120e+00 + 2.671767034388748e+00 + 2.665487216663756e+00 + 2.659222119420964e+00 + 2.652971708466898e+00 + 2.646735949170681e+00 + 2.640514807328682e+00 + 2.634308248813400e+00 + 2.628116239351709e+00 + 2.621938745026414e+00 + 2.615775731978081e+00 + 2.609627166192403e+00 + 2.603493014125890e+00 + 2.597373242133807e+00 + 2.591267815972944e+00 + 2.585176702619338e+00 + 2.579099869106871e+00 + 2.573037281022092e+00 + 2.566988905295047e+00 + 2.560954709471109e+00 + 2.554934660124372e+00 + 2.548928723658388e+00 + 2.542936866838776e+00 + 2.536959057454498e+00 + 2.530995262744329e+00 + 2.525045449466102e+00 + 2.519109584724339e+00 + 2.513187636248425e+00 + 2.507279571988880e+00 + 2.501385358975255e+00 + 2.495504964649074e+00 + 2.489638357011514e+00 + 2.483785503877440e+00 + 2.477946372993181e+00 + 2.472120932153270e+00 + 2.466309149445497e+00 + 2.460510993028623e+00 + 2.454726431004756e+00 + 2.448955431279121e+00 + 2.443197962222979e+00 + 2.437453992749473e+00 + 2.431723490873920e+00 + 2.426006424702946e+00 + 2.420302763016215e+00 + 2.414612474849150e+00 + 2.408935529060812e+00 + 2.403271894158963e+00 + 2.397621539164549e+00 + 2.391984432987164e+00 + 2.386360544006294e+00 + 2.380749841635097e+00 + 2.375152295549876e+00 + 2.369567874852914e+00 + 2.363996548806182e+00 + 2.358438286639424e+00 + 2.352893057314327e+00 + 2.347360830870365e+00 + 2.341841577523073e+00 + 2.336335266205249e+00 + 2.330841866367291e+00 + 2.325361348038680e+00 + 2.319893681430557e+00 + 2.314438836350213e+00 + 2.308996782525400e+00 + 2.303567490482044e+00 + 2.298150930506590e+00 + 2.292747072570897e+00 + 2.287355886755380e+00 + 2.281977343203661e+00 + 2.276611412298537e+00 + 2.271258065216148e+00 + 2.265917272602903e+00 + 2.260589004572198e+00 + 2.255273232290290e+00 + 2.249969926489583e+00 + 2.244679057245269e+00 + 2.239400595715412e+00 + 2.234134513404378e+00 + 2.228880781619142e+00 + 2.223639370658599e+00 + 2.218410251587366e+00 + 2.213193396784469e+00 + 2.207988776668006e+00 + 2.202796362022329e+00 + 2.197616125439223e+00 + 2.192448038696543e+00 + 2.187292072961057e+00 + 2.182148199232985e+00 + 2.177016389630072e+00 + 2.171896616273634e+00 + 2.166788850281173e+00 + 2.161693063906081e+00 + 2.156609229682959e+00 + 2.151537319229026e+00 + 2.146477304323076e+00 + 2.141429157241363e+00 + 2.136392850965788e+00 + 2.131368357474257e+00 + 2.126355648357996e+00 + 2.121354696293322e+00 + 2.116365474412895e+00 + 2.111387955644702e+00 + 2.106422111701483e+00 + 2.101467915161587e+00 + 2.096525339256323e+00 + 2.091594356269759e+00 + 2.086674939419586e+00 + 2.081767062556874e+00 + 2.076870697792070e+00 + 2.071985817585338e+00 + 2.067112395385072e+00 + 2.062250405333861e+00 + 2.057399820685575e+00 + 2.052560613690088e+00 + 2.047732757766644e+00 + 2.042916226752948e+00 + 2.038110994473384e+00 + 2.033317034456518e+00 + 2.028534320143143e+00 + 2.023762825026766e+00 + 2.019002522786289e+00 + 2.014253387371010e+00 + 2.009515392980107e+00 + 2.004788513366984e+00 + 2.000072722331970e+00 + 1.995367994084281e+00 + 1.990674302528751e+00 + 1.985991621875054e+00 + 1.981319927135009e+00 + 1.976659192144684e+00 + 1.972009390577169e+00 + 1.967370497271926e+00 + 1.962742487042732e+00 + 1.958125334423246e+00 + 1.953519013586483e+00 + 1.948923499307053e+00 + 1.944338766657414e+00 + 1.939764790288013e+00 + 1.935201544608222e+00 + 1.930649004305472e+00 + 1.926107145248571e+00 + 1.921575942429786e+00 + 1.917055370205972e+00 + 1.912545403920843e+00 + 1.908046018818900e+00 + 1.903557190023903e+00 + 1.899078893306255e+00 + 1.894611103753838e+00 + 1.890153795996532e+00 + 1.885706946418488e+00 + 1.881270530851602e+00 + 1.876844524133795e+00 + 1.872428902057808e+00 + 1.868023640555410e+00 + 1.863628715350075e+00 + 1.859244102235784e+00 + 1.854869776995271e+00 + 1.850505715382929e+00 + 1.846151893336109e+00 + 1.841808287113597e+00 + 1.837474873250078e+00 + 1.833151627500553e+00 + 1.828838525627810e+00 + 1.824535544058799e+00 + 1.820242659570220e+00 + 1.815959848693184e+00 + 1.811687087278560e+00 + 1.807424351697017e+00 + 1.803171618832717e+00 + 1.798928865872756e+00 + 1.794696068965575e+00 + 1.790473204047284e+00 + 1.786260248130819e+00 + 1.782057178544553e+00 + 1.777863972462110e+00 + 1.773680606381003e+00 + 1.769507057021776e+00 + 1.765343301422396e+00 + 1.761189316819223e+00 + 1.757045080431908e+00 + 1.752910569457795e+00 + 1.748785761158555e+00 + 1.744670632638435e+00 + 1.740565161064786e+00 + 1.736469324420783e+00 + 1.732383100261040e+00 + 1.728306465595185e+00 + 1.724239397824929e+00 + 1.720181874717039e+00 + 1.716133874165168e+00 + 1.712095373335323e+00 + 1.708066350172305e+00 + 1.704046783495335e+00 + 1.700036650108550e+00 + 1.696035927584721e+00 + 1.692044595228792e+00 + 1.688062630443701e+00 + 1.684090010658294e+00 + 1.680126714513943e+00 + 1.676172720475745e+00 + 1.672228006742128e+00 + 1.668292551293985e+00 + 1.664366332353613e+00 + 1.660449328407859e+00 + 1.656541518177628e+00 + 1.652642880144113e+00 + 1.648753392536404e+00 + 1.644873033459887e+00 + 1.641001782122826e+00 + 1.637139617814172e+00 + 1.633286518510287e+00 + 1.629442462986198e+00 + 1.625607430332010e+00 + 1.621781398816242e+00 + 1.617964347766720e+00 + 1.614156256896447e+00 + 1.610357104501046e+00 + 1.606566869528149e+00 + 1.602785531410984e+00 + 1.599013068753329e+00 + 1.595249460964023e+00 + 1.591494688099418e+00 + 1.587748729316499e+00 + 1.584011563661260e+00 + 1.580283170366302e+00 + 1.576563528988570e+00 + 1.572852618951484e+00 + 1.569150419635379e+00 + 1.565456911345500e+00 + 1.561772073862832e+00 + 1.558095886092752e+00 + 1.554428327545355e+00 + 1.550769378486889e+00 + 1.547119019605569e+00 + 1.543477229774924e+00 + 1.539843988467248e+00 + 1.536219276909035e+00 + 1.532603074921508e+00 + 1.528995362108325e+00 + 1.525396118748853e+00 + 1.521805324624735e+00 + 1.518222960029189e+00 + 1.514649006474386e+00 + 1.511083443428444e+00 + 1.507526250258141e+00 + 1.503977408416516e+00 + 1.500436898413773e+00 + 1.496904700394939e+00 + 1.493380795245864e+00 + 1.489865163193006e+00 + 1.486357784560608e+00 + 1.482858641108495e+00 + 1.479367713055452e+00 + 1.475884980161266e+00 + 1.472410424507970e+00 + 1.468944026943859e+00 + 1.465485767394345e+00 + 1.462035627142284e+00 + 1.458593587684006e+00 + 1.455159630175685e+00 + 1.451733734815932e+00 + 1.448315882934573e+00 + 1.444906056735074e+00 + 1.441504236540235e+00 + 1.438110403156542e+00 + 1.434724538391589e+00 + 1.431346623689521e+00 + 1.427976640530080e+00 + 1.424614570482120e+00 + 1.421260394583763e+00 + 1.417914094214416e+00 + 1.414575651360096e+00 + 1.411245047472556e+00 + 1.407922264020345e+00 + 1.404607282835409e+00 + 1.401300085863839e+00 + 1.398000654669480e+00 + 1.394708970355802e+00 + 1.391425015768138e+00 + 1.388148773421020e+00 + 1.384880223867722e+00 + 1.381619349200565e+00 + 1.378366132070768e+00 + 1.375120554406545e+00 + 1.371882598139520e+00 + 1.368652245409923e+00 + 1.365429478679455e+00 + 1.362214280063096e+00 + 1.359006631544336e+00 + 1.355806515436745e+00 + 1.352613914349998e+00 + 1.349428810943258e+00 + 1.346251187518860e+00 + 1.343081026346772e+00 + 1.339918309785753e+00 + 1.336763020411036e+00 + 1.333615141050152e+00 + 1.330474654669161e+00 + 1.327341544046787e+00 + 1.324215791384803e+00 + 1.321097378844990e+00 + 1.317986290481943e+00 + 1.314882509034005e+00 + 1.311786015892630e+00 + 1.308696795174431e+00 + 1.305614830505543e+00 + 1.302540104058677e+00 + 1.299472598550161e+00 + 1.296412297281467e+00 + 1.293359183920592e+00 + 1.290313241355424e+00 + 1.287274452437336e+00 + 1.284242800425524e+00 + 1.281218268758570e+00 + 1.278200840971845e+00 + 1.275190500607243e+00 + 1.272187230813499e+00 + 1.269191014801793e+00 + 1.266201836184906e+00 + 1.263219678244913e+00 + 1.260244524601725e+00 + 1.257276359774731e+00 + 1.254315166659556e+00 + 1.251360928048363e+00 + 1.248413628680403e+00 + 1.245473252809453e+00 + 1.242539783866816e+00 + 1.239613204552696e+00 + 1.236693499248504e+00 + 1.233780652886690e+00 + 1.230874648458874e+00 + 1.227975469917747e+00 + 1.225083101914005e+00 + 1.222197528080320e+00 + 1.219318732110022e+00 + 1.216446698153004e+00 + 1.213581411119631e+00 + 1.210722855169846e+00 + 1.207871013783067e+00 + 1.205025871252235e+00 + 1.202187412198626e+00 + 1.199355621285526e+00 + 1.196530482820713e+00 + 1.193711981112556e+00 + 1.190900100540550e+00 + 1.188094825240966e+00 + 1.185296139829988e+00 + 1.182504029475636e+00 + 1.179718478336080e+00 + 1.176939470878376e+00 + 1.174166992368249e+00 + 1.171401026812090e+00 + 1.168641558834780e+00 + 1.165888574598542e+00 + 1.163142057955574e+00 + 1.160401992993886e+00 + 1.157668365957760e+00 + 1.154941161055026e+00 + 1.152220362585152e+00 + 1.149505957086653e+00 + 1.146797929075238e+00 + 1.144096262593592e+00 + 1.141400943461258e+00 + 1.138711957183691e+00 + 1.136029288721929e+00 + 1.133352922646698e+00 + 1.130682844729473e+00 + 1.128019040871752e+00 + 1.125361495026299e+00 + 1.122710192813904e+00 + 1.120065120718956e+00 + 1.117426263156838e+00 + 1.114793605478939e+00 + 1.112167133798269e+00 + 1.109546832911627e+00 + 1.106932688501257e+00 + 1.104324686965964e+00 + 1.101722813149718e+00 + 1.099127052563592e+00 + 1.096537391606932e+00 + 1.093953815681381e+00 + 1.091376310184498e+00 + 1.088804860939953e+00 + 1.086239454210304e+00 + 1.083680075729654e+00 + 1.081126710640132e+00 + 1.078579345517792e+00 + 1.076037966489376e+00 + 1.073502558540405e+00 + 1.070973108232868e+00 + 1.068449602380304e+00 + 1.065932027008114e+00 + 1.063420367175204e+00 + 1.060914608734753e+00 + 1.058414739347230e+00 + 1.055920744292059e+00 + 1.053432609053344e+00 + 1.050950321750202e+00 + 1.048473868029229e+00 + 1.046003233045439e+00 + 1.043538404185668e+00 + 1.041079368203120e+00 + 1.038626111099421e+00 + 1.036178618557632e+00 + 1.033736877638818e+00 + 1.031300875738098e+00 + 1.028870598541307e+00 + 1.026446032279889e+00 + 1.024027163804816e+00 + 1.021613979927458e+00 + 1.019206467749757e+00 + 1.016804614201984e+00 + 1.014408404816817e+00 + 1.012017826403038e+00 + 1.009632866898133e+00 + 1.007253512894913e+00 + 1.004879750675442e+00 + 1.002511566831996e+00 + 1.000148949144661e+00 + 9.977918847145494e-01 + 9.954403597206510e-01 + 9.930943614528360e-01 + 9.907538771638876e-01 + 9.884188936740620e-01 + 9.860893982148410e-01 + 9.837653780132122e-01 + 9.814468200970017e-01 + 9.791337116433633e-01 + 9.768260399168340e-01 + 9.745237922184445e-01 + 9.722269558574113e-01 + 9.699355181124353e-01 + 9.676494662336389e-01 + 9.653687876978898e-01 + 9.630934699744002e-01 + 9.608235003289306e-01 + 9.585588662885656e-01 + 9.562995554410040e-01 + 9.540455551859868e-01 + 9.517968530931009e-01 + 9.495534368089285e-01 + 9.473152938858177e-01 + 9.450824119343849e-01 + 9.428547786515334e-01 + 9.406323818265262e-01 + 9.384152091378831e-01 + 9.362032482272097e-01 + 9.339964869112888e-01 + 9.317949130473703e-01 + 9.295985145023118e-01 + 9.274072791539573e-01 + 9.252211948367504e-01 + 9.230402494034374e-01 + 9.208644309329761e-01 + 9.186937274260252e-01 + 9.165281267878318e-01 + 9.143676170947915e-01 + 9.122121864230248e-01 + 9.100618228160294e-01 + 9.079165144228375e-01 + 9.057762494101416e-01 + 9.036410159434681e-01 + 9.015108022852656e-01 + 8.993855966397851e-01 + 8.972653871281971e-01 + 8.951501621417270e-01 + 8.930399100640233e-01 + 8.909346191274636e-01 + 8.888342777366450e-01 + 8.867388743114113e-01 + 8.846483971822027e-01 + 8.825628348501290e-01 + 8.804821758633001e-01 + 8.784064086961259e-01 + 8.763355218399448e-01 + 8.742695038377348e-01 + 8.722083433110044e-01 + 8.701520288632569e-01 + 8.681005490981059e-01 + 8.660538926659707e-01 + 8.640120483003465e-01 + 8.619750047630993e-01 + 8.599427507590320e-01 + 8.579152750196485e-01 + 8.558925663402844e-01 + 8.538746136199826e-01 + 8.518614056598554e-01 + 8.498529312415619e-01 + 8.478491793952468e-01 + 8.458501390477595e-01 + 8.438557990450950e-01 + 8.418661484572341e-01 + 8.398811762963594e-01 + 8.379008715007146e-01 + 8.359252231704962e-01 + 8.339542204095658e-01 + 8.319878522912720e-01 + 8.300261079597043e-01 + 8.280689765769632e-01 + 8.261164473121154e-01 + 8.241685093974929e-01 + 8.222251520716921e-01 + 8.202863645582569e-01 + 8.183521361157176e-01 + 8.164224560764958e-01 + 8.144973138478017e-01 + 8.125766987264839e-01 + 8.106606000443977e-01 + 8.087490072689457e-01 + 8.068419098143643e-01 + 8.049392971238847e-01 + 8.030411587461223e-01 + 8.011474841608780e-01 + 7.992582628576694e-01 + 7.973734844327619e-01 + 7.954931384582111e-01 + 7.936172145055983e-01 + 7.917457022017643e-01 + 7.898785912282000e-01 + 7.880158712799969e-01 + 7.861575320154112e-01 + 7.843035631939634e-01 + 7.824539546080472e-01 + 7.806086959262468e-01 + 7.787677769423338e-01 + 7.769311875560446e-01 + 7.750989176225404e-01 + 7.732709569908990e-01 + 7.714472955211897e-01 + 7.696279231052234e-01 + 7.678128297211314e-01 + 7.660020053954494e-01 + 7.641954400346342e-01 + 7.623931236302374e-01 + 7.605950462809293e-01 + 7.588011979868697e-01 + 7.570115688113509e-01 + 7.552261489288551e-01 + 7.534449284973839e-01 + 7.516678976340316e-01 + 7.498950464317325e-01 + 7.481263651057625e-01 + 7.463618439154999e-01 + 7.446014731170009e-01 + 7.428452429690515e-01 + 7.410931437272748e-01 + 7.393451656574506e-01 + 7.376012991597445e-01 + 7.358615346418724e-01 + 7.341258624174279e-01 + 7.323942728636854e-01 + 7.306667564033948e-01 + 7.289433034811010e-01 + 7.272239046205010e-01 + 7.255085503342084e-01 + 7.237972310231134e-01 + 7.220899372662432e-01 + 7.203866596915919e-01 + 7.186873887451811e-01 + 7.169921150530395e-01 + 7.153008293485266e-01 + 7.136135222426403e-01 + 7.119301843519804e-01 + 7.102508063464710e-01 + 7.085753789925818e-01 + 7.069038930034782e-01 + 7.052363390742027e-01 + 7.035727080638011e-01 + 7.019129907750439e-01 + 7.002571779481277e-01 + 6.986052604437083e-01 + 6.969572291357313e-01 + 6.953130748988353e-01 + 6.936727887020229e-01 + 6.920363614522840e-01 + 6.904037839913317e-01 + 6.887750473773369e-01 + 6.871501426160253e-01 + 6.855290605871678e-01 + 6.839117924040222e-01 + 6.822983292013320e-01 + 6.806886620123715e-01 + 6.790827818618205e-01 + 6.774806798407976e-01 + 6.758823471448717e-01 + 6.742877749381793e-01 + 6.726969543916550e-01 + 6.711098767181217e-01 + 6.695265330883416e-01 + 6.679469147191758e-01 + 6.663710129607012e-01 + 6.647988190816884e-01 + 6.632303243195694e-01 + 6.616655199754741e-01 + 6.601043974442724e-01 + 6.585469481315596e-01 + 6.569931633409668e-01 + 6.554430344698831e-01 + 6.538965529680326e-01 + 6.523537102216029e-01 + 6.508144977390269e-01 + 6.492789070902356e-01 + 6.477469297088367e-01 + 6.462185570471877e-01 + 6.446937806333431e-01 + 6.431725921186934e-01 + 6.416549831028872e-01 + 6.401409451291091e-01 + 6.386304698205402e-01 + 6.371235488250266e-01 + 6.356201737964903e-01 + 6.341203364004929e-01 + 6.326240283504814e-01 + 6.311312414023209e-01 + 6.296419672600960e-01 + 6.281561976359686e-01 + 6.266739242956670e-01 + 6.251951391194286e-01 + 6.237198339322255e-01 + 6.222480004492102e-01 + 6.207796305731890e-01 + 6.193147162378443e-01 + 6.178532493027741e-01 + 6.163952216645050e-01 + 6.149406252489860e-01 + 6.134894519984210e-01 + 6.120416938491114e-01 + 6.105973427932988e-01 + 6.091563909278429e-01 + 6.077188302116784e-01 + 6.062846526061169e-01 + 6.048538502614210e-01 + 6.034264152733694e-01 + 6.020023397068369e-01 + 6.005816156757759e-01 + 5.991642353027361e-01 + 5.977501907311656e-01 + 5.963394741611191e-01 + 5.949320777981851e-01 + 5.935279938331314e-01 + 5.921272144271874e-01 + 5.907297318514260e-01 + 5.893355384452119e-01 + 5.879446264415406e-01 + 5.865569881004723e-01 + 5.851726157460215e-01 + 5.837915017610071e-01 + 5.824136384878618e-01 + 5.810390182425506e-01 + 5.796676334763571e-01 + 5.782994765837256e-01 + 5.769345398883866e-01 + 5.755728159164172e-01 + 5.742142971757567e-01 + 5.728589760824728e-01 + 5.715068451452269e-01 + 5.701578968814059e-01 + 5.688121237820786e-01 + 5.674695184134964e-01 + 5.661300733449661e-01 + 5.647937811172017e-01 + 5.634606343850478e-01 + 5.621306258016221e-01 + 5.608037479323033e-01 + 5.594799934047830e-01 + 5.581593548937616e-01 + 5.568418251014721e-01 + 5.555273967809645e-01 + 5.542160626584934e-01 + 5.529078153599613e-01 + 5.516026476869607e-01 + 5.503005524879265e-01 + 5.490015224489507e-01 + 5.477055503706971e-01 + 5.464126291394721e-01 + 5.451227516109934e-01 + 5.438359105997491e-01 + 5.425520989229732e-01 + 5.412713094911021e-01 + 5.399935352390902e-01 + 5.387187691034094e-01 + 5.374470040087604e-01 + 5.361782329113639e-01 + 5.349124487848638e-01 + 5.336496445514358e-01 + 5.323898132502169e-01 + 5.311329480044003e-01 + 5.298790417206248e-01 + 5.286280874266170e-01 + 5.273800783238198e-01 + 5.261350074387794e-01 + 5.248928678300107e-01 + 5.236536526638225e-01 + 5.224173550711992e-01 + 5.211839681868924e-01 + 5.199534851768893e-01 + 5.187258992380968e-01 + 5.175012035574781e-01 + 5.162793913049719e-01 + 5.150604557657682e-01 + 5.138443902158373e-01 + 5.126311878387027e-01 + 5.114208419243966e-01 + 5.102133457996210e-01 + 5.090086927559088e-01 + 5.078068761246483e-01 + 5.066078892445277e-01 + 5.054117254264059e-01 + 5.042183780707232e-01 + 5.030278406156905e-01 + 5.018401064512819e-01 + 5.006551689399448e-01 + 4.994730214827681e-01 + 4.982936576173500e-01 + 4.971170708196209e-01 + 4.959432545161117e-01 + 4.947722021784954e-01 + 4.936039073158257e-01 + 4.924383634713059e-01 + 4.912755642215030e-01 + 4.901155031029966e-01 + 4.889581736357913e-01 + 4.878035694426762e-01 + 4.866516841617155e-01 + 4.855025114095978e-01 + 4.843560447562852e-01 + 4.832122778219742e-01 + 4.820712043014287e-01 + 4.809328179063641e-01 + 4.797971123302187e-01 + 4.786640812406847e-01 + 4.775337183184862e-01 + 4.764060173050261e-01 + 4.752809720122764e-01 + 4.741585762111217e-01 + 4.730388236459319e-01 + 4.719217080626099e-01 + 4.708072233097221e-01 + 4.696953632391141e-01 + 4.685861216425942e-01 + 4.674794923970907e-01 + 4.663754693817960e-01 + 4.652740464091041e-01 + 4.641752174102053e-01 + 4.630789763262008e-01 + 4.619853169869301e-01 + 4.608942333544824e-01 + 4.598057194461572e-01 + 4.587197692038988e-01 + 4.576363766028796e-01 + 4.565555356433393e-01 + 4.554772403132010e-01 + 4.544014845983438e-01 + 4.533282625263808e-01 + 4.522575682421708e-01 + 4.511893957834002e-01 + 4.501237391381080e-01 + 4.490605924783677e-01 + 4.479999499003729e-01 + 4.469418054464263e-01 + 4.458861533467765e-01 + 4.448329877503518e-01 + 4.437823027182840e-01 + 4.427340924804984e-01 + 4.416883512661691e-01 + 4.406450732493647e-01 + 4.396042525949710e-01 + 4.385658835318161e-01 + 4.375299603591805e-01 + 4.364964773180230e-01 + 4.354654286529535e-01 + 4.344368086449737e-01 + 4.334106115882546e-01 + 4.323868317973252e-01 + 4.313654636098987e-01 + 4.303465013528135e-01 + 4.293299393608014e-01 + 4.283157719943348e-01 + 4.273039936389254e-01 + 4.262945986862648e-01 + 4.252875815207442e-01 + 4.242829365388910e-01 + 4.232806581737543e-01 + 4.222807409163533e-01 + 4.212831792180283e-01 + 4.202879675160039e-01 + 4.192951002821390e-01 + 4.183045720190468e-01 + 4.173163772308877e-01 + 4.163305103895081e-01 + 4.153469660738844e-01 + 4.143657388899517e-01 + 4.133868232899575e-01 + 4.124102138463511e-01 + 4.114359052122226e-01 + 4.104638919136763e-01 + 4.094941685453110e-01 + 4.085267297797091e-01 + 4.075615702608746e-01 + 4.065986846247451e-01 + 4.056380675149961e-01 + 4.046797136100241e-01 + 4.037236175791848e-01 + 4.027697740867438e-01 + 4.018181778668817e-01 + 4.008688236537185e-01 + 3.999217061664900e-01 + 3.989768201804763e-01 + 3.980341604347806e-01 + 3.970937216243767e-01 + 3.961554986257766e-01 + 3.952194862561716e-01 + 3.942856791749246e-01 + 3.933540722797152e-01 + 3.924246604937682e-01 + 3.914974386057962e-01 + 3.905724013991230e-01 + 3.896495437210211e-01 + 3.887288605266558e-01 + 3.878103467384126e-01 + 3.868939972364765e-01 + 3.859798068708922e-01 + 3.850677705778728e-01 + 3.841578833358520e-01 + 3.832501400994028e-01 + 3.823445358203205e-01 + 3.814410654593080e-01 + 3.805397240004402e-01 + 3.796405064500310e-01 + 3.787434078281850e-01 + 3.778484231550217e-01 + 3.769555474293507e-01 + 3.760647756653435e-01 + 3.751761029803938e-01 + 3.742895244689736e-01 + 3.734050351897463e-01 + 3.725226302131253e-01 + 3.716423046174657e-01 + 3.707640535037849e-01 + 3.698878720450124e-01 + 3.690137553825144e-01 + 3.681416986254492e-01 + 3.672716969834960e-01 + 3.664037456169829e-01 + 3.655378396196581e-01 + 3.646739742353085e-01 + 3.638121447254376e-01 + 3.629523462980791e-01 + 3.620945741078652e-01 + 3.612388233782960e-01 + 3.603850894480597e-01 + 3.595333675652969e-01 + 3.586836529581271e-01 + 3.578359408972814e-01 + 3.569902267099870e-01 + 3.561465057284826e-01 + 3.553047732480240e-01 + 3.544650245489661e-01 + 3.536272549462773e-01 + 3.527914598373741e-01 + 3.519576346281267e-01 + 3.511257746893044e-01 + 3.502958753213151e-01 + 3.494679319027064e-01 + 3.486419398734283e-01 + 3.478178946841421e-01 + 3.469957917542031e-01 + 3.461756264906874e-01 + 3.453573943334770e-01 + 3.445410907466465e-01 + 3.437267112053919e-01 + 3.429142511753236e-01 + 3.421037061357636e-01 + 3.412950715914754e-01 + 3.404883430871680e-01 + 3.396835161220511e-01 + 3.388805861778083e-01 + 3.380795488742585e-01 + 3.372803997559251e-01 + 3.364831342820857e-01 + 3.356877480644493e-01 + 3.348942367473924e-01 + 3.341025959445759e-01 + 3.333128211902062e-01 + 3.325249080644813e-01 + 3.317388522349806e-01 + 3.309546493345364e-01 + 3.301722950123494e-01 + 3.293917849546400e-01 + 3.286131147929292e-01 + 3.278362801760134e-01 + 3.270612768173198e-01 + 3.262881004205997e-01 + 3.255167466776044e-01 + 3.247472112772871e-01 + 3.239794899591130e-01 + 3.232135784952971e-01 + 3.224494726613195e-01 + 3.216871681318617e-01 + 3.209266606147330e-01 + 3.201679460077643e-01 + 3.194110200806869e-01 + 3.186558785671545e-01 + 3.179025173467112e-01 + 3.171509322207308e-01 + 3.164011189537259e-01 + 3.156530734030461e-01 + 3.149067914068442e-01 + 3.141622688005587e-01 + 3.134195014964591e-01 + 3.126784853846941e-01 + 3.119392163234083e-01 + 3.112016901727622e-01 + 3.104659028247113e-01 + 3.097318502149898e-01 + 3.089995283319454e-01 + 3.082689330721005e-01 + 3.075400602663161e-01 + 3.068129059444455e-01 + 3.060874661234649e-01 + 3.053637367362504e-01 + 3.046417137079979e-01 + 3.039213930418579e-01 + 3.032027708160949e-01 + 3.024858429572295e-01 + 3.017706054435225e-01 + 3.010570543910775e-01 + 3.003451858060657e-01 + 2.996349956970866e-01 + 2.989264801519126e-01 + 2.982196352437723e-01 + 2.975144570351090e-01 + 2.968109415899733e-01 + 2.961090850010212e-01 + 2.954088833712375e-01 + 2.947103327960572e-01 + 2.940134293733013e-01 + 2.933181692489545e-01 + 2.926245486550200e-01 + 2.919325636534309e-01 + 2.912422103009782e-01 + 2.905534849067459e-01 + 2.898663836341845e-01 + 2.891809025716850e-01 + 2.884970379499296e-01 + 2.878147859946116e-01 + 2.871341429080666e-01 + 2.864551048929091e-01 + 2.857776681836698e-01 + 2.851018290276999e-01 + 2.844275836247271e-01 + 2.837549281975342e-01 + 2.830838590248334e-01 + 2.824143724756855e-01 + 2.817464648036653e-01 + 2.810801321714598e-01 + 2.804153709678348e-01 + 2.797521775256636e-01 + 2.790905480675208e-01 + 2.784304789557904e-01 + 2.777719665515425e-01 + 2.771150071618110e-01 + 2.764595971293084e-01 + 2.758057328280932e-01 + 2.751534106502780e-01 + 2.745026269461392e-01 + 2.738533780697315e-01 + 2.732056604090851e-01 + 2.725594703611444e-01 + 2.719148043516682e-01 + 2.712716588414341e-01 + 2.706300302048149e-01 + 2.699899148252890e-01 + 2.693513091897057e-01 + 2.687142097803046e-01 + 2.680786130525787e-01 + 2.674445154290628e-01 + 2.668119133864937e-01 + 2.661808034370396e-01 + 2.655511820876730e-01 + 2.649230457933240e-01 + 2.642963910212357e-01 + 2.636712143601993e-01 + 2.630475123173707e-01 + 2.624252813696634e-01 + 2.618045181320832e-01 + 2.611852191534089e-01 + 2.605673809346502e-01 + 2.599510000768786e-01 + 2.593360731482656e-01 + 2.587225966857610e-01 + 2.581105673020023e-01 + 2.574999816218594e-01 + 2.568908362541323e-01 + 2.562831277681717e-01 + 2.556768527608984e-01 + 2.550720078808991e-01 + 2.544685898158210e-01 + 2.538665952029344e-01 + 2.532660206235198e-01 + 2.526668627769018e-01 + 2.520691183671673e-01 + 2.514727840477828e-01 + 2.508778564832650e-01 + 2.502843323450471e-01 + 2.496922083184503e-01 + 2.491014811741685e-01 + 2.485121476502302e-01 + 2.479242043768022e-01 + 2.473376480750936e-01 + 2.467524755330193e-01 + 2.461686835577825e-01 + 2.455862688342147e-01 + 2.450052280577099e-01 + 2.444255580815592e-01 + 2.438472556710649e-01 + 2.432703175621061e-01 + 2.426947405763887e-01 + 2.421205215374063e-01 + 2.415476572469543e-01 + 2.409761444715131e-01 + 2.404059800179439e-01 + 2.398371607406130e-01 + 2.392696835287547e-01 + 2.387035451998669e-01 + 2.381387425460481e-01 + 2.375752724876774e-01 + 2.370131319015487e-01 + 2.364523176042576e-01 + 2.358928264341899e-01 + 2.353346553264918e-01 + 2.347778012643444e-01 + 2.342222610470114e-01 + 2.336680315481888e-01 + 2.331151097630285e-01 + 2.325634926002070e-01 + 2.320131769932555e-01 + 2.314641599195968e-01 + 2.309164382391606e-01 + 2.303700088852327e-01 + 2.298248689205450e-01 + 2.292810152383314e-01 + 2.287384447851956e-01 + 2.281971546639490e-01 + 2.276571417710518e-01 + 2.271184030444375e-01 + 2.265809356255705e-01 + 2.260447364485637e-01 + 2.255098024678978e-01 + 2.249761308577043e-01 + 2.244437185775247e-01 + 2.239125625576918e-01 + 2.233826599324974e-01 + 2.228540078061592e-01 + 2.223266032159731e-01 + 2.218004431318401e-01 + 2.212755246546400e-01 + 2.207518449320089e-01 + 2.202294009962271e-01 + 2.197081899542086e-01 + 2.191882089472320e-01 + 2.186694550184439e-01 + 2.181519252528444e-01 + 2.176356167922184e-01 + 2.171205268020538e-01 + 2.166066524055817e-01 + 2.160939907132310e-01 + 2.155825389406823e-01 + 2.150722942170351e-01 + 2.145632535999474e-01 + 2.140554143128364e-01 + 2.135487735713488e-01 + 2.130433285376680e-01 + 2.125390763961598e-01 + 2.120360143225986e-01 + 2.115341394866721e-01 + 2.110334491301104e-01 + 2.105339404911263e-01 + 2.100356107692428e-01 + 2.095384571593845e-01 + 2.090424768875718e-01 + 2.085476672286868e-01 + 2.080540254649787e-01 + 2.075615488420417e-01 + 2.070702345483775e-01 + 2.065800798220710e-01 + 2.060910819584345e-01 + 2.056032383022174e-01 + 2.051165461242101e-01 + 2.046310026800104e-01 + 2.041466052775261e-01 + 2.036633511978056e-01 + 2.031812377402102e-01 + 2.027002622847228e-01 + 2.022204221329609e-01 + 2.017417145657832e-01 + 2.012641369577989e-01 + 2.007876866366623e-01 + 2.003123609141739e-01 + 1.998381571847571e-01 + 1.993650728223044e-01 + 1.988931051658790e-01 + 1.984222515391579e-01 + 1.979525093566432e-01 + 1.974838760798574e-01 + 1.970163490394448e-01 + 1.965499255924087e-01 + 1.960846031634822e-01 + 1.956203792216227e-01 + 1.951572511456189e-01 + 1.946952162469976e-01 + 1.942342720345011e-01 + 1.937744160087473e-01 + 1.933156455855021e-01 + 1.928579581617409e-01 + 1.924013511601302e-01 + 1.919458220512063e-01 + 1.914913683490730e-01 + 1.910379875218400e-01 + 1.905856769690048e-01 + 1.901344342343178e-01 + 1.896842568245793e-01 + 1.892351421122624e-01 + 1.887870876905098e-01 + 1.883400911382459e-01 + 1.878941498265747e-01 + 1.874492612709913e-01 + 1.870054230608876e-01 + 1.865626327533365e-01 + 1.861208878413260e-01 + 1.856801858136446e-01 + 1.852405242290795e-01 + 1.848019006561455e-01 + 1.843643126785636e-01 + 1.839277579090688e-01 + 1.834922338318696e-01 + 1.830577379260484e-01 + 1.826242679175190e-01 + 1.821918214082343e-01 + 1.817603959062191e-01 + 1.813299890419420e-01 + 1.809005984096844e-01 + 1.804722215715290e-01 + 1.800448561676805e-01 + 1.796184998471616e-01 + 1.791931502428031e-01 + 1.787688049585256e-01 + 1.783454616010165e-01 + 1.779231178061076e-01 + 1.775017712916434e-01 + 1.770814197185338e-01 + 1.766620606643876e-01 + 1.762436917707559e-01 + 1.758263107475443e-01 + 1.754099153420786e-01 + 1.749945031691721e-01 + 1.745800718793870e-01 + 1.741666192327871e-01 + 1.737541428912765e-01 + 1.733426405128906e-01 + 1.729321098263452e-01 + 1.725225486037993e-01 + 1.721139545737653e-01 + 1.717063253659770e-01 + 1.712996586978482e-01 + 1.708939523524782e-01 + 1.704892041326627e-01 + 1.700854117308264e-01 + 1.696825728315613e-01 + 1.692806852413719e-01 + 1.688797467224855e-01 + 1.684797550119726e-01 + 1.680807078836749e-01 + 1.676826031516292e-01 + 1.672854386236076e-01 + 1.668892120257625e-01 + 1.664939211364053e-01 + 1.660995637803862e-01 + 1.657061377653481e-01 + 1.653136408872399e-01 + 1.649220709518862e-01 + 1.645314258210089e-01 + 1.641417032838678e-01 + 1.637529010922642e-01 + 1.633650171697226e-01 + 1.629780493848234e-01 + 1.625919955117979e-01 + 1.622068533722165e-01 + 1.618226208359533e-01 + 1.614392958070308e-01 + 1.610568761629498e-01 + 1.606753597398519e-01 + 1.602947443525945e-01 + 1.599150279328092e-01 + 1.595362083976419e-01 + 1.591582835876941e-01 + 1.587812513806259e-01 + 1.584051096895935e-01 + 1.580298564486488e-01 + 1.576554895336735e-01 + 1.572820068494865e-01 + 1.569094063844064e-01 + 1.565376859935812e-01 + 1.561668435389086e-01 + 1.557968770322644e-01 + 1.554277844430587e-01 + 1.550595637013555e-01 + 1.546922127252644e-01 + 1.543257294352004e-01 + 1.539601117962810e-01 + 1.535953578647676e-01 + 1.532314655336160e-01 + 1.528684326732572e-01 + 1.525062574192351e-01 + 1.521449377506904e-01 + 1.517844715391133e-01 + 1.514248568043021e-01 + 1.510660915767141e-01 + 1.507081738546517e-01 + 1.503511015850067e-01 + 1.499948728018673e-01 + 1.496394855976185e-01 + 1.492849379312514e-01 + 1.489312277844460e-01 + 1.485783532079666e-01 + 1.482263122946834e-01 + 1.478751030581660e-01 + 1.475247234388987e-01 + 1.471751715323068e-01 + 1.468264454469171e-01 + 1.464785432366154e-01 + 1.461314629165984e-01 + 1.457852025452889e-01 + 1.454397602433564e-01 + 1.450951340257908e-01 + 1.447513219420110e-01 + 1.444083221508569e-01 + 1.440661327109938e-01 + 1.437247516822454e-01 + 1.433841772072484e-01 + 1.430444073901374e-01 + 1.427054403077353e-01 + 1.423672740371242e-01 + 1.420299067307786e-01 + 1.416933365389871e-01 + 1.413575615237460e-01 + 1.410225798197031e-01 + 1.406883895901710e-01 + 1.403549889435149e-01 + 1.400223760032770e-01 + 1.396905489310608e-01 + 1.393595059398338e-01 + 1.390292451224472e-01 + 1.386997645496112e-01 + 1.383710625136722e-01 + 1.380431371824567e-01 + 1.377159866326167e-01 + 1.373896091055998e-01 + 1.370640027752214e-01 + 1.367391657592925e-01 + 1.364150963290927e-01 + 1.360917926783734e-01 + 1.357692529162330e-01 + 1.354474752994454e-01 + 1.351264580487222e-01 + 1.348061993122180e-01 + 1.344866973181728e-01 + 1.341679503229942e-01 + 1.338499565682958e-01 + 1.335327142013654e-01 + 1.332162214320106e-01 + 1.329004765902875e-01 + 1.325854779258548e-01 + 1.322712236439755e-01 + 1.319577119415115e-01 + 1.316449410589970e-01 + 1.313329092858229e-01 + 1.310216149439378e-01 + 1.307110562100912e-01 + 1.304012313067827e-01 + 1.300921386594473e-01 + 1.297837764741680e-01 + 1.294761429396481e-01 + 1.291692364743583e-01 + 1.288630553353233e-01 + 1.285575977268189e-01 + 1.282528620001082e-01 + 1.279488464604472e-01 + 1.276455493846629e-01 + 1.273429690961771e-01 + 1.270411039265308e-01 + 1.267399521912149e-01 + 1.264395121606617e-01 + 1.261397821624623e-01 + 1.258407605612416e-01 + 1.255424456647032e-01 + 1.252448358003494e-01 + 1.249479293256652e-01 + 1.246517245985584e-01 + 1.243562199440227e-01 + 1.240614136699035e-01 + 1.237673041530004e-01 + 1.234738897833225e-01 + 1.231811689369122e-01 + 1.228891399541342e-01 + 1.225978011897444e-01 + 1.223071510285007e-01 + 1.220171878485729e-01 + 1.217279100221359e-01 + 1.214393159216827e-01 + 1.211514039479249e-01 + 1.208641725134118e-01 + 1.205776200272462e-01 + 1.202917448643591e-01 + 1.200065453999493e-01 + 1.197220200388544e-01 + 1.194381672203820e-01 + 1.191549853738593e-01 + 1.188724728867774e-01 + 1.185906281982059e-01 + 1.183094497403516e-01 + 1.180289358802264e-01 + 1.177490851172322e-01 + 1.174698959467804e-01 + 1.171913666738082e-01 + 1.169134957966049e-01 + 1.166362818664215e-01 + 1.163597231976005e-01 + 1.160838182295854e-01 + 1.158085654926154e-01 + 1.155339634301463e-01 + 1.152600105152270e-01 + 1.149867052503320e-01 + 1.147140461081585e-01 + 1.144420315115333e-01 + 1.141706598827868e-01 + 1.138999297876022e-01 + 1.136298397724347e-01 + 1.133603883121320e-01 + 1.130915738073908e-01 + 1.128233947404400e-01 + 1.125558496925181e-01 + 1.122889371862514e-01 + 1.120226557224089e-01 + 1.117570037925019e-01 + 1.114919798574519e-01 + 1.112275824488763e-01 + 1.109638101830490e-01 + 1.107006615250319e-01 + 1.104381349837027e-01 + 1.101762291935612e-01 + 1.099149425817940e-01 + 1.096542736337556e-01 + 1.093942210611990e-01 + 1.091347833750166e-01 + 1.088759590309823e-01 + 1.086177465849946e-01 + 1.083601446468375e-01 + 1.081031518187680e-01 + 1.078467666394599e-01 + 1.075909876365943e-01 + 1.073358133695979e-01 + 1.070812424691808e-01 + 1.068272734935852e-01 + 1.065739049762412e-01 + 1.063211355273724e-01 + 1.060689637753818e-01 + 1.058173883167701e-01 + 1.055664076522099e-01 + 1.053160204177178e-01 + 1.050662253083730e-01 + 1.048170208178578e-01 + 1.045684055544151e-01 + 1.043203782231123e-01 + 1.040729373745031e-01 + 1.038260815947437e-01 + 1.035798095388146e-01 + 1.033341198496129e-01 + 1.030890111353506e-01 + 1.028444819874746e-01 + 1.026005310752415e-01 + 1.023571570589419e-01 + 1.021143585605686e-01 + 1.018721342063349e-01 + 1.016304826397723e-01 + 1.013894025261397e-01 + 1.011488925387934e-01 + 1.009089513225976e-01 + 1.006695774897203e-01 + 1.004307697412456e-01 + 1.001925267601519e-01 + 9.995484714928184e-02 + 9.971772961029543e-02 + 9.948117285600222e-02 + 9.924517553207431e-02 + 9.900973631553432e-02 + 9.877485389836264e-02 + 9.854052696321766e-02 + 9.830675420513860e-02 + 9.807353432053509e-02 + 9.784086599274402e-02 + 9.760874792461041e-02 + 9.737717882679013e-02 + 9.714615739564664e-02 + 9.691568233864475e-02 + 9.668575237168565e-02 + 9.645636620785530e-02 + 9.622752256709627e-02 + 9.599922017186617e-02 + 9.577145773476621e-02 + 9.554423398421420e-02 + 9.531754766036228e-02 + 9.509139748951084e-02 + 9.486578220406576e-02 + 9.464070054491446e-02 + 9.441615125061270e-02 + 9.419213306609350e-02 + 9.396864474309072e-02 + 9.374568502973517e-02 + 9.352325267700241e-02 + 9.330134644110695e-02 + 9.307996508088016e-02 + 9.285910736057421e-02 + 9.263877204899980e-02 + 9.241895790580944e-02 + 9.219966369924239e-02 + 9.198088821288498e-02 + 9.176263021506216e-02 + 9.154488848131032e-02 + 9.132766180778470e-02 + 9.111094897456264e-02 + 9.089474876186458e-02 + 9.067905996494766e-02 + 9.046388137755315e-02 + 9.024921179550818e-02 + 9.003505002157913e-02 + 8.982139485394958e-02 + 8.960824509461397e-02 + 8.939559956013639e-02 + 8.918345705664489e-02 + 8.897181638949078e-02 + 8.876067638185769e-02 + 8.855003585659860e-02 + 8.833989363307079e-02 + 8.813024852794749e-02 + 8.792109937217552e-02 + 8.771244500411417e-02 + 8.750428424959714e-02 + 8.729661594151820e-02 + 8.708943892038122e-02 + 8.688275202450782e-02 + 8.667655409894154e-02 + 8.647084399500883e-02 + 8.626562056133152e-02 + 8.606088264727801e-02 + 8.585662910508592e-02 + 8.565285879275303e-02 + 8.544957056834111e-02 + 8.524676329099723e-02 + 8.504443583456130e-02 + 8.484258706983651e-02 + 8.464121585953427e-02 + 8.444032107793580e-02 + 8.423990160173883e-02 + 8.403995630660985e-02 + 8.384048408000297e-02 + 8.364148380739438e-02 + 8.344295436518863e-02 + 8.324489464319758e-02 + 8.304730353631981e-02 + 8.285017993778075e-02 + 8.265352274723796e-02 + 8.245733086610936e-02 + 8.226160319325253e-02 + 8.206633863307464e-02 + 8.187153609323948e-02 + 8.167719448173898e-02 + 8.148331271120264e-02 + 8.128988969775824e-02 + 8.109692435907066e-02 + 8.090441561287741e-02 + 8.071236238052074e-02 + 8.052076359329230e-02 + 8.032961817777003e-02 + 8.013892505875637e-02 + 7.994868317110082e-02 + 7.975889145271257e-02 + 7.956954884117817e-02 + 7.938065427030368e-02 + 7.919220668490153e-02 + 7.900420503735811e-02 + 7.881664826626886e-02 + 7.862953532075569e-02 + 7.844286516277023e-02 + 7.825663674598571e-02 + 7.807084902471831e-02 + 7.788550095723919e-02 + 7.770059150356423e-02 + 7.751611963202924e-02 + 7.733208431808952e-02 + 7.714848452080215e-02 + 7.696531920714285e-02 + 7.678258736267791e-02 + 7.660028796508990e-02 + 7.641841999039113e-02 + 7.623698241865759e-02 + 7.605597423593993e-02 + 7.587539442823407e-02 + 7.569524197859213e-02 + 7.551551588287067e-02 + 7.533621514035872e-02 + 7.515733874432233e-02 + 7.497888568830134e-02 + 7.480085497230264e-02 + 7.462324560850588e-02 + 7.444605660139321e-02 + 7.426928695221670e-02 + 7.409293566891996e-02 + 7.391700176673981e-02 + 7.374148426439617e-02 + 7.356638217848553e-02 + 7.339169452681224e-02 + 7.321742033027905e-02 + 7.304355861552074e-02 + 7.287010840815517e-02 + 7.269706873346385e-02 + 7.252443862192341e-02 + 7.235221710900047e-02 + 7.218040323296335e-02 + 7.200899602923243e-02 + 7.183799453782064e-02 + 7.166739780328910e-02 + 7.149720486628935e-02 + 7.132741477295296e-02 + 7.115802657678706e-02 + 7.098903933028558e-02 + 7.082045208266741e-02 + 7.065226388294948e-02 + 7.048447379884398e-02 + 7.031708089501212e-02 + 7.015008422428966e-02 + 6.998348285005500e-02 + 6.981727584178653e-02 + 6.965146227138255e-02 + 6.948604121024822e-02 + 6.932101172952453e-02 + 6.915637290177927e-02 + 6.899212381049466e-02 + 6.882826353831664e-02 + 6.866479115768206e-02 + 6.850170575553913e-02 + 6.833900642241270e-02 + 6.817669223943085e-02 + 6.801476230171261e-02 + 6.785321570853013e-02 + 6.769205154760372e-02 + 6.753126891476798e-02 + 6.737086691265436e-02 + 6.721084464422118e-02 + 6.705120121123045e-02 + 6.689193571639933e-02 + 6.673304726820108e-02 + 6.657453497707803e-02 + 6.641639795452120e-02 + 6.625863531334618e-02 + 6.610124617104705e-02 + 6.594422964866814e-02 + 6.578758486543299e-02 + 6.563131094165708e-02 + 6.547540700031643e-02 + 6.531987216906585e-02 + 6.516470557837332e-02 + 6.500990635997374e-02 + 6.485547364331327e-02 + 6.470140656204018e-02 + 6.454770425495959e-02 + 6.439436585565442e-02 + 6.424139050518185e-02 + 6.408877735587415e-02 + 6.393652554954243e-02 + 6.378463422860429e-02 + 6.363310254304622e-02 + 6.348192964216136e-02 + 6.333111467891862e-02 + 6.318065681259971e-02 + 6.303055519506789e-02 + 6.288080898167979e-02 + 6.273141734118348e-02 + 6.258237943694549e-02 + 6.243369443027962e-02 + 6.228536148636779e-02 + 6.213737977420020e-02 + 6.198974846629291e-02 + 6.184246673830131e-02 + 6.169553375986874e-02 + 6.154894870195880e-02 + 6.140271075002260e-02 + 6.125681908485271e-02 + 6.111127288458502e-02 + 6.096607133498923e-02 + 6.082121362330186e-02 + 6.067669893778977e-02 + 6.053252647002724e-02 + 6.038869541057570e-02 + 6.024520494995262e-02 + 6.010205428441878e-02 + 5.995924261312039e-02 + 5.981676913606451e-02 + 5.967463305068377e-02 + 5.953283356000520e-02 + 5.939136987405440e-02 + 5.925024120274393e-02 + 5.910944675075109e-02 + 5.896898572024133e-02 + 5.882885733338872e-02 + 5.868906080796419e-02 + 5.854959534943303e-02 + 5.841046018167366e-02 + 5.827165452667381e-02 + 5.813317759547484e-02 + 5.799502862000658e-02 + 5.785720683145133e-02 + 5.771971144629215e-02 + 5.758254169802959e-02 + 5.744569682168989e-02 + 5.730917604038396e-02 + 5.717297859181381e-02 + 5.703710371771920e-02 + 5.690155065150715e-02 + 5.676631863514842e-02 + 5.663140691176988e-02 + 5.649681471550019e-02 + 5.636254129818796e-02 + 5.622858591623749e-02 + 5.609494780637568e-02 + 5.596162621719655e-02 + 5.582862040612746e-02 + 5.569592962469259e-02 + 5.556355312969728e-02 + 5.543149018219354e-02 + 5.529974004038473e-02 + 5.516830196534387e-02 + 5.503717522021812e-02 + 5.490635906464716e-02 + 5.477585276550550e-02 + 5.464565559606692e-02 + 5.451576682310098e-02 + 5.438618571514530e-02 + 5.425691154653305e-02 + 5.412794360021059e-02 + 5.399928115030668e-02 + 5.387092346220070e-02 + 5.374286982722595e-02 + 5.361511953114147e-02 + 5.348767184376742e-02 + 5.336052605560348e-02 + 5.323368145967647e-02 + 5.310713734132736e-02 + 5.298089299097181e-02 + 5.285494769998652e-02 + 5.272930075794034e-02 + 5.260395145882699e-02 + 5.247889910164562e-02 + 5.235414299012888e-02 + 5.222968242359068e-02 + 5.210551670083303e-02 + 5.198164512479836e-02 + 5.185806699751586e-02 + 5.173478162567831e-02 + 5.161178832737659e-02 + 5.148908640731603e-02 + 5.136667516904735e-02 + 5.124455393713079e-02 + 5.112272202541198e-02 + 5.100117874145336e-02 + 5.087992340415878e-02 + 5.075895533879782e-02 + 5.063827387090040e-02 + 5.051787831631814e-02 + 5.039776799903027e-02 + 5.027794224956293e-02 + 5.015840039018700e-02 + 5.003914174911826e-02 + 4.992016566217095e-02 + 4.980147146451835e-02 + 4.968305848565534e-02 + 4.956492605368701e-02 + 4.944707351707827e-02 + 4.932950021762891e-02 + 4.921220548403189e-02 + 4.909518865563611e-02 + 4.897844908008390e-02 + 4.886198610990230e-02 + 4.874579909103274e-02 + 4.862988736593407e-02 + 4.851425027765261e-02 + 4.839888718215429e-02 + 4.828379743688660e-02 + 4.816898039344981e-02 + 4.805443540666063e-02 + 4.794016183433197e-02 + 4.782615903628512e-02 + 4.771242637003347e-02 + 4.759896319572905e-02 + 4.748576888074151e-02 + 4.737284278529100e-02 + 4.726018427180961e-02 + 4.714779271742187e-02 + 4.703566749191604e-02 + 4.692380796083007e-02 + 4.681221349433169e-02 + 4.670088346648602e-02 + 4.658981725459431e-02 + 4.647901423861556e-02 + 4.636847379587147e-02 + 4.625819530165282e-02 + 4.614817813294777e-02 + 4.603842167462240e-02 + 4.592892531626435e-02 + 4.581968844113481e-02 + 4.571071043517037e-02 + 4.560199068716930e-02 + 4.549352858172214e-02 + 4.538532351139604e-02 + 4.527737487551017e-02 + 4.516968206047602e-02 + 4.506224446147816e-02 + 4.495506148526871e-02 + 4.484813252205796e-02 + 4.474145696749865e-02 + 4.463503423038843e-02 + 4.452886371233129e-02 + 4.442294481444441e-02 + 4.431727694184067e-02 + 4.421185950249874e-02 + 4.410669190344264e-02 + 4.400177354999718e-02 + 4.389710385863231e-02 + 4.379268224561385e-02 + 4.368850811842072e-02 + 4.358458089102907e-02 + 4.348089998166713e-02 + 4.337746480946211e-02 + 4.327427479290449e-02 + 4.317132935104961e-02 + 4.306862790538591e-02 + 4.296616988021409e-02 + 4.286395470044128e-02 + 4.276198178905291e-02 + 4.266025057462805e-02 + 4.255876048879523e-02 + 4.245751096050290e-02 + 4.235650142249979e-02 + 4.225573130868781e-02 + 4.215520004666404e-02 + 4.205490707118502e-02 + 4.195485182346907e-02 + 4.185503374212908e-02 + 4.175545226547943e-02 + 4.165610683241490e-02 + 4.155699688308426e-02 + 4.145812186261490e-02 + 4.135948121993713e-02 + 4.126107439911159e-02 + 4.116290084444992e-02 + 4.106496000347922e-02 + 4.096725133001662e-02 + 4.086977427671171e-02 + 4.077252829257245e-02 + 4.067551282880393e-02 + 4.057872734137224e-02 + 4.048217129089726e-02 + 4.038584413229004e-02 + 4.028974532214836e-02 + 4.019387432351806e-02 + 4.009823059884492e-02 + 4.000281360871143e-02 + 3.990762281263916e-02 + 3.981265768084040e-02 + 3.971791768404272e-02 + 3.962340228400397e-02 + 3.952911094818634e-02 + 3.943504314911767e-02 + 3.934119836154264e-02 + 3.924757605343093e-02 + 3.915417569553582e-02 + 3.906099677494528e-02 + 3.896803876462888e-02 + 3.887530113159737e-02 + 3.878278335807980e-02 + 3.869048493136602e-02 + 3.859840533540703e-02 + 3.850654403935494e-02 + 3.841490053099362e-02 + 3.832347430867683e-02 + 3.823226484521238e-02 + 3.814127162485314e-02 + 3.805049414568009e-02 + 3.795993189727254e-02 + 3.786958436838804e-02 + 3.777945104950908e-02 + 3.768953143238456e-02 + 3.759982501241896e-02 + 3.751033128919119e-02 + 3.742104976390229e-02 + 3.733197993101921e-02 + 3.724312127956968e-02 + 3.715447331892652e-02 + 3.706603555538170e-02 + 3.697780748276271e-02 + 3.688978860838169e-02 + 3.680197844047203e-02 + 3.671437648083043e-02 + 3.662698223859462e-02 + 3.653979522528233e-02 + 3.645281495050149e-02 + 3.636604092401768e-02 + 3.627947265609178e-02 + 3.619310965841749e-02 + 3.610695145022991e-02 + 3.602099755007137e-02 + 3.593524746722872e-02 + 3.584970072102484e-02 + 3.576435683502647e-02 + 3.567921532660211e-02 + 3.559427571435374e-02 + 3.550953752116312e-02 + 3.542500027693078e-02 + 3.534066350384148e-02 + 3.525652672170999e-02 + 3.517258946309138e-02 + 3.508885125628003e-02 + 3.500531162678291e-02 + 3.492197010940873e-02 + 3.483882623525817e-02 + 3.475587953263527e-02 + 3.467312953919303e-02 + 3.459057578876406e-02 + 3.450821781198862e-02 + 3.442605515251815e-02 + 3.434408734999198e-02 + 3.426231393723483e-02 + 3.418073445581654e-02 + 3.409934844816886e-02 + 3.401815545480084e-02 + 3.393715501912345e-02 + 3.385634668688416e-02 + 3.377573000557660e-02 + 3.369530452244349e-02 + 3.361506978424043e-02 + 3.353502533757853e-02 + 3.345517073173793e-02 + 3.337550551749302e-02 + 3.329602924688495e-02 + 3.321674147756795e-02 + 3.313764176353938e-02 + 3.305872964905672e-02 + 3.298000469915312e-02 + 3.290146647870388e-02 + 3.282311452928582e-02 + 3.274494841443989e-02 + 3.266696770524984e-02 + 3.258917195579586e-02 + 3.251156072835543e-02 + 3.243413358906379e-02 + 3.235689009597382e-02 + 3.227982981604406e-02 + 3.220295232152501e-02 + 3.212625717796667e-02 + 3.204974395335523e-02 + 3.197341221860803e-02 + 3.189726154412311e-02 + 3.182129149811844e-02 + 3.174550164996338e-02 + 3.166989158019418e-02 + 3.159446086552403e-02 + 3.151920907660396e-02 + 3.144413578635114e-02 + 3.136924057603768e-02 + 3.129452303273958e-02 + 3.121998273049806e-02 + 3.114561924523454e-02 + 3.107143216011856e-02 + 3.099742105799270e-02 + 3.092358552474080e-02 + 3.084992514925186e-02 + 3.077643951122557e-02 + 3.070312819305190e-02 + 3.062999078663620e-02 + 3.055702688363699e-02 + 3.048423607160382e-02 + 3.041161793396379e-02 + 3.033917207015753e-02 + 3.026689807846873e-02 + 3.019479554128978e-02 + 3.012286404982057e-02 + 3.005110320361238e-02 + 2.997951260681279e-02 + 2.990809185255966e-02 + 2.983684053226568e-02 + 2.976575824919644e-02 + 2.969484460522792e-02 + 2.962409920087884e-02 + 2.955352163824170e-02 + 2.948311151647172e-02 + 2.941286843696999e-02 + 2.934279201383451e-02 + 2.927288185012002e-02 + 2.920313754405053e-02 + 2.913355871301240e-02 + 2.906414496442064e-02 + 2.899489589842786e-02 + 2.892581113440367e-02 + 2.885689028447655e-02 + 2.878813295173805e-02 + 2.871953875071393e-02 + 2.865110730129668e-02 + 2.858283822298987e-02 + 2.851473112218837e-02 + 2.844678561226344e-02 + 2.837900131834860e-02 + 2.831137785774055e-02 + 2.824391484910513e-02 + 2.817661191561155e-02 + 2.810946867322990e-02 + 2.804248474261467e-02 + 2.797565975421473e-02 + 2.790899332866750e-02 + 2.784248508684310e-02 + 2.777613465729838e-02 + 2.770994166752542e-02 + 2.764390574354870e-02 + 2.757802651096095e-02 + 2.751230360164656e-02 + 2.744673664902718e-02 + 2.738132528259552e-02 + 2.731606912935157e-02 + 2.725096782054994e-02 + 2.718602099881922e-02 + 2.712122829441404e-02 + 2.705658933533107e-02 + 2.699210376654040e-02 + 2.692777122629619e-02 + 2.686359134766074e-02 + 2.679956376855050e-02 + 2.673568813034148e-02 + 2.667196407449100e-02 + 2.660839123653040e-02 + 2.654496925932325e-02 + 2.648169779209303e-02 + 2.641857647953893e-02 + 2.635560496230991e-02 + 2.629278288047702e-02 + 2.623010988365326e-02 + 2.616758562366618e-02 + 2.610520975031933e-02 + 2.604298190560967e-02 + 2.598090173551063e-02 + 2.591896889422694e-02 + 2.585718303968204e-02 + 2.579554382343284e-02 + 2.573405088890056e-02 + 2.567270388987125e-02 + 2.561150248485746e-02 + 2.555044633271165e-02 + 2.548953508798725e-02 + 2.542876840653832e-02 + 2.536814594843316e-02 + 2.530766736730480e-02 + 2.524733231969847e-02 + 2.518714047250964e-02 + 2.512709148651639e-02 + 2.506718502244662e-02 + 2.500742074738894e-02 + 2.494779831751132e-02 + 2.488831739145854e-02 + 2.482897764751662e-02 + 2.476977875068464e-02 + 2.471072035836960e-02 + 2.465180213557270e-02 + 2.459302375909131e-02 + 2.453438490494015e-02 + 2.447588522684439e-02 + 2.441752439632618e-02 + 2.435930209686822e-02 + 2.430121799563831e-02 + 2.424327176191257e-02 + 2.418546306971884e-02 + 2.412779159320392e-02 + 2.407025701015483e-02 + 2.401285899981317e-02 + 2.395559723318545e-02 + 2.389847138352894e-02 + 2.384148113010493e-02 + 2.378462615809818e-02 + 2.372790614977233e-02 + 2.367132078182184e-02 + 2.361486973012364e-02 + 2.355855267628842e-02 + 2.350236930912776e-02 + 2.344631931433045e-02 + 2.339040237260871e-02 + 2.333461816188979e-02 + 2.327896637661412e-02 + 2.322344670789084e-02 + 2.316805883183489e-02 + 2.311280243515378e-02 + 2.305767721100430e-02 + 2.300268285332459e-02 + 2.294781904779433e-02 + 2.289308548135576e-02 + 2.283848185163481e-02 + 2.278400785322520e-02 + 2.272966317657758e-02 + 2.267544750906289e-02 + 2.262136054576819e-02 + 2.256740198705395e-02 + 2.251357153295969e-02 + 2.245986887460843e-02 + 2.240629370372433e-02 + 2.235284572997816e-02 + 2.229952464835474e-02 + 2.224633014749699e-02 + 2.219326193897085e-02 + 2.214031972536749e-02 + 2.208750320104361e-02 + 2.203481207216736e-02 + 2.198224604054712e-02 + 2.192980480490446e-02 + 2.187748807809197e-02 + 2.182529556587840e-02 + 2.177322696546572e-02 + 2.172128198614426e-02 + 2.166946034002218e-02 + 2.161776173674180e-02 + 2.156618587797776e-02 + 2.151473246970182e-02 + 2.146340122648612e-02 + 2.141219186176581e-02 + 2.136110408595206e-02 + 2.131013760699968e-02 + 2.125929213929720e-02 + 2.120856739943827e-02 + 2.115796310282077e-02 + 2.110747896148574e-02 + 2.105711468773744e-02 + 2.100686999708853e-02 + 2.095674460640470e-02 + 2.090673823470377e-02 + 2.085685060390323e-02 + 2.080708143284909e-02 + 2.075743043865024e-02 + 2.070789733896461e-02 + 2.065848185338519e-02 + 2.060918370358626e-02 + 2.056000261352416e-02 + 2.051093830731156e-02 + 2.046199050841276e-02 + 2.041315893918832e-02 + 2.036444332670061e-02 + 2.031584339811113e-02 + 2.026735887003067e-02 + 2.021898947028043e-02 + 2.017073493461869e-02 + 2.012259498752183e-02 + 2.007456935661649e-02 + 2.002665777297167e-02 + 1.997885996051357e-02 + 1.993117564943755e-02 + 1.988360457741823e-02 + 1.983614647798445e-02 + 1.978880107994216e-02 + 1.974156811085027e-02 + 1.969444731166336e-02 + 1.964743841723802e-02 + 1.960054115227784e-02 + 1.955375525837354e-02 + 1.950708047707909e-02 + 1.946051654129042e-02 + 1.941406318497287e-02 + 1.936772014474174e-02 + 1.932148716119990e-02 + 1.927536398140690e-02 + 1.922935034564512e-02 + 1.918344598004621e-02 + 1.913765063001423e-02 + 1.909196404425976e-02 + 1.904638595925336e-02 + 1.900091612254435e-02 + 1.895555428061772e-02 + 1.891030016469744e-02 + 1.886515352637163e-02 + 1.882011411999479e-02 + 1.877518167521970e-02 + 1.873035594232305e-02 + 1.868563668110157e-02 + 1.864102363246424e-02 + 1.859651653826993e-02 + 1.855211514697215e-02 + 1.850781921692858e-02 + 1.846362849811174e-02 + 1.841954273425713e-02 + 1.837556167722399e-02 + 1.833168508274460e-02 + 1.828791270638760e-02 + 1.824424429587613e-02 + 1.820067960186819e-02 + 1.815721838079814e-02 + 1.811386039242822e-02 + 1.807060539155448e-02 + 1.802745312809132e-02 + 1.798440336027523e-02 + 1.794145584667328e-02 + 1.789861034396235e-02 + 1.785586661445831e-02 + 1.781322441713358e-02 + 1.777068350457842e-02 + 1.772824363606736e-02 + 1.768590457480606e-02 + 1.764366608520215e-02 + 1.760152792777148e-02 + 1.755948986314423e-02 + 1.751755165530868e-02 + 1.747571306959304e-02 + 1.743397386795286e-02 + 1.739233380686453e-02 + 1.735079266012027e-02 + 1.730935019969591e-02 + 1.726800617515195e-02 + 1.722676035861175e-02 + 1.718561252878033e-02 + 1.714456244423200e-02 + 1.710360987245781e-02 + 1.706275458478830e-02 + 1.702199634263978e-02 + 1.698133492251816e-02 + 1.694077010510486e-02 + 1.690030164730331e-02 + 1.685992932068962e-02 + 1.681965290804600e-02 + 1.677947217681714e-02 + 1.673938689521877e-02 + 1.669939683666028e-02 + 1.665950177991986e-02 + 1.661970150205939e-02 + 1.657999577711447e-02 + 1.654038437906895e-02 + 1.650086708478969e-02 + 1.646144367321789e-02 + 1.642211391798679e-02 + 1.638287759543946e-02 + 1.634373448754158e-02 + 1.630468437732129e-02 + 1.626572704186934e-02 + 1.622686225251448e-02 + 1.618808979718675e-02 + 1.614940946170872e-02 + 1.611082101996680e-02 + 1.607232425440962e-02 + 1.603391895041710e-02 + 1.599560489122978e-02 + 1.595738185903658e-02 + 1.591924963852954e-02 + 1.588120801872957e-02 + 1.584325677844977e-02 + 1.580539569909259e-02 + 1.576762457813194e-02 + 1.572994319938502e-02 + 1.569235134492561e-02 + 1.565484881311209e-02 + 1.561743538476679e-02 + 1.558011083839993e-02 + 1.554287497958433e-02 + 1.550572759639263e-02 + 1.546866846769255e-02 + 1.543169739218311e-02 + 1.539481416304957e-02 + 1.535801856691179e-02 + 1.532131039389481e-02 + 1.528468944222785e-02 + 1.524815551153465e-02 + 1.521170838270258e-02 + 1.517534784896265e-02 + 1.513907371629201e-02 + 1.510288577422132e-02 + 1.506678381600347e-02 + 1.503076764230081e-02 + 1.499483704594779e-02 + 1.495899182406707e-02 + 1.492323178010325e-02 + 1.488755670734373e-02 + 1.485196640180961e-02 + 1.481646066682016e-02 + 1.478103929846549e-02 + 1.474570209596410e-02 + 1.471044886603309e-02 + 1.467527940456368e-02 + 1.464019351058384e-02 + 1.460519099481427e-02 + 1.457027165550810e-02 + 1.453543528903122e-02 + 1.450068170024789e-02 + 1.446601069487559e-02 + 1.443142207965322e-02 + 1.439691566271563e-02 + 1.436249124410753e-02 + 1.432814862414793e-02 + 1.429388761459182e-02 + 1.425970802314729e-02 + 1.422560965483165e-02 + 1.419159231701311e-02 + 1.415765581387266e-02 + 1.412379995194592e-02 + 1.409002455116132e-02 + 1.405632941792580e-02 + 1.402271435207008e-02 + 1.398917917303820e-02 + 1.395572369124169e-02 + 1.392234770932106e-02 + 1.388905104392205e-02 + 1.385583350997071e-02 + 1.382269491788422e-02 + 1.378963507987753e-02 + 1.375665380791922e-02 + 1.372375091366015e-02 + 1.369092621121959e-02 + 1.365817951715469e-02 + 1.362551064978645e-02 + 1.359291942581090e-02 + 1.356040565686591e-02 + 1.352796915179558e-02 + 1.349560973812908e-02 + 1.346332723540702e-02 + 1.343112144483463e-02 + 1.339899219360082e-02 + 1.336693930891053e-02 + 1.333496260043193e-02 + 1.330306188734133e-02 + 1.327123699224855e-02 + 1.323948773476910e-02 + 1.320781393642416e-02 + 1.317621541705235e-02 + 1.314469199166208e-02 + 1.311324348463446e-02 + 1.308186972415766e-02 + 1.305057053367403e-02 + 1.301934573289238e-02 + 1.298819514247371e-02 + 1.295711859027024e-02 + 1.292611590142988e-02 + 1.289518689817567e-02 + 1.286433140253433e-02 + 1.283354924175516e-02 + 1.280284024626999e-02 + 1.277220424320462e-02 + 1.274164105512193e-02 + 1.271115050454398e-02 + 1.268073242580564e-02 + 1.265038664885281e-02 + 1.262011299771964e-02 + 1.258991130045622e-02 + 1.255978138928737e-02 + 1.252972309744999e-02 + 1.249973624798444e-02 + 1.246982067106488e-02 + 1.243997620568067e-02 + 1.241020267461013e-02 + 1.238049990730756e-02 + 1.235086774662455e-02 + 1.232130602051964e-02 + 1.229181455798258e-02 + 1.226239319685087e-02 + 1.223304176770951e-02 + 1.220376010347082e-02 + 1.217454804486660e-02 + 1.214540542341299e-02 + 1.211633207079968e-02 + 1.208732782681391e-02 + 1.205839252771904e-02 + 1.202952600673308e-02 + 1.200072809652295e-02 + 1.197199864009422e-02 + 1.194333748171596e-02 + 1.191474445503102e-02 + 1.188621939116683e-02 + 1.185776212675846e-02 + 1.182937251288597e-02 + 1.180105038815069e-02 + 1.177279558400601e-02 + 1.174460794107161e-02 + 1.171648730396891e-02 + 1.168843351609301e-02 + 1.166044641171630e-02 + 1.163252583370262e-02 + 1.160467163102319e-02 + 1.157688364263099e-02 + 1.154916170933044e-02 + 1.152150567570712e-02 + 1.149391538555893e-02 + 1.146639068095789e-02 + 1.143893140447911e-02 + 1.141153740781534e-02 + 1.138420853673168e-02 + 1.135694462854312e-02 + 1.132974552839056e-02 + 1.130261108533809e-02 + 1.127554114921167e-02 + 1.124853556496432e-02 + 1.122159417997002e-02 + 1.119471684585664e-02 + 1.116790340283271e-02 + 1.114115369710312e-02 + 1.111446758944324e-02 + 1.108784492177717e-02 + 1.106128553754357e-02 + 1.103478929728668e-02 + 1.100835604711145e-02 + 1.098198563223047e-02 + 1.095567791133747e-02 + 1.092943273475230e-02 + 1.090324994987072e-02 + 1.087712940981543e-02 + 1.085107096608238e-02 + 1.082507447053145e-02 + 1.079913977931768e-02 + 1.077326674497864e-02 + 1.074745521859533e-02 + 1.072170505538783e-02 + 1.069601611066200e-02 + 1.067038823886727e-02 + 1.064482129354728e-02 + 1.061931513219808e-02 + 1.059386961330933e-02 + 1.056848458681972e-02 + 1.054315990640127e-02 + 1.051789543133304e-02 + 1.049269102209236e-02 + 1.046754653920045e-02 + 1.044246184044743e-02 + 1.041743677288729e-02 + 1.039247119540387e-02 + 1.036756497988909e-02 + 1.034271797805630e-02 + 1.031793004647734e-02 + 1.029320105343422e-02 + 1.026853085073464e-02 + 1.024391929539164e-02 + 1.021936625852857e-02 + 1.019487159885800e-02 + 1.017043517132599e-02 + 1.014605683522427e-02 + 1.012173646293816e-02 + 1.009747392058842e-02 + 1.007326905588179e-02 + 1.004912173629082e-02 + 1.002503183346208e-02 + 1.000099920653610e-02 + 9.977023717087764e-03 + 9.953105229386335e-03 + 9.929243608872406e-03 + 9.905438720973011e-03 + 9.881690430827046e-03 + 9.857998603258316e-03 + 9.834363104786413e-03 + 9.810783802355094e-03 + 9.787260560990621e-03 + 9.763793247942843e-03 + 9.740381731591760e-03 + 9.717025877967826e-03 + 9.693725554510663e-03 + 9.670480630152000e-03 + 9.647290973567844e-03 + 9.624156453317901e-03 + 9.601076938062841e-03 + 9.578052297039983e-03 + 9.555082399653962e-03 + 9.532167115690399e-03 + 9.509306316445141e-03 + 9.486499872512266e-03 + 9.463747653553711e-03 + 9.441049530896879e-03 + 9.418405376662433e-03 + 9.395815063104617e-03 + 9.373278461427175e-03 + 9.350795443499088e-03 + 9.328365882617906e-03 + 9.305989651970981e-03 + 9.283666624824176e-03 + 9.261396674723778e-03 + 9.239179675408710e-03 + 9.217015500757821e-03 + 9.194904024947497e-03 + 9.172845123632957e-03 + 9.150838672277813e-03 + 9.128884544858834e-03 + 9.106982617538152e-03 + 9.085132766987650e-03 + 9.063334868396023e-03 + 9.041588798714301e-03 + 9.019894435479832e-03 + 8.998251654894885e-03 + 8.976660334271958e-03 + 8.955120351755344e-03 + 8.933631585369030e-03 + 8.912193913264732e-03 + 8.890807213885918e-03 + 8.869471366214972e-03 + 8.848186249259440e-03 + 8.826951742251321e-03 + 8.805767725383001e-03 + 8.784634078744540e-03 + 8.763550682317645e-03 + 8.742517416743529e-03 + 8.721534162832835e-03 + 8.700600801502468e-03 + 8.679717214101214e-03 + 8.658883282492529e-03 + 8.638098888885700e-03 + 8.617363915025602e-03 + 8.596678243443276e-03 + 8.576041757693640e-03 + 8.555454340593486e-03 + 8.534915875110577e-03 + 8.514426244844865e-03 + 8.493985333674233e-03 + 8.473593025909724e-03 + 8.453249206335058e-03 + 8.432953759374154e-03 + 8.412706569850796e-03 + 8.392507523503252e-03 + 8.372356505624580e-03 + 8.352253401838657e-03 + 8.332198098800467e-03 + 8.312190482450988e-03 + 8.292230438871008e-03 + 8.272317855399050e-03 + 8.252452619663047e-03 + 8.232634619050869e-03 + 8.212863740331295e-03 + 8.193139871755427e-03 + 8.173462902270600e-03 + 8.153832719956143e-03 + 8.134249213438031e-03 + 8.114712271802299e-03 + 8.095221784035302e-03 + 8.075777639824947e-03 + 8.056379729417138e-03 + 8.037027942938956e-03 + 8.017722170154111e-03 + 7.998462301028743e-03 + 7.979248227381455e-03 + 7.960079840401237e-03 + 7.940957030626293e-03 + 7.921879690329333e-03 + 7.902847711453821e-03 + 7.883860985421759e-03 + 7.864919405368889e-03 + 7.846022864037674e-03 + 7.827171253341911e-03 + 7.808364466777525e-03 + 7.789602397948123e-03 + 7.770884940051978e-03 + 7.752211987488857e-03 + 7.733583434567862e-03 + 7.714999174963997e-03 + 7.696459103766686e-03 + 7.677963116338556e-03 + 7.659511107448910e-03 + 7.641102971817726e-03 + 7.622738605046243e-03 + 7.604417904226960e-03 + 7.586140765207791e-03 + 7.567907083543369e-03 + 7.549716755813157e-03 + 7.531569679511053e-03 + 7.513465752109027e-03 + 7.495404870064185e-03 + 7.477386931039745e-03 + 7.459411833357052e-03 + 7.441479474804043e-03 + 7.423589753808636e-03 + 7.405742569108545e-03 + 7.387937818890154e-03 + 7.370175402616828e-03 + 7.352455220325825e-03 + 7.334777170378787e-03 + 7.317141152312192e-03 + 7.299547066866589e-03 + 7.281994814230038e-03 + 7.264484294760120e-03 + 7.247015409129196e-03 + 7.229588058070396e-03 + 7.212202142721502e-03 + 7.194857564639825e-03 + 7.177554225359851e-03 + 7.160292026920549e-03 + 7.143070871828701e-03 + 7.125890661781023e-03 + 7.108751299151369e-03 + 7.091652687463649e-03 + 7.074594729473165e-03 + 7.057577328092346e-03 + 7.040600386920140e-03 + 7.023663809440293e-03 + 7.006767499621119e-03 + 6.989911362283671e-03 + 6.973095301761098e-03 + 6.956319222246642e-03 + 6.939583028242014e-03 + 6.922886624933184e-03 + 6.906229917977133e-03 + 6.889612813237578e-03 + 6.873035215956658e-03 + 6.856497031627250e-03 + 6.839998167124653e-03 + 6.823538528849983e-03 + 6.807118022950776e-03 + 6.790736556102037e-03 + 6.774394036012678e-03 + 6.758090370503938e-03 + 6.741825465874382e-03 + 6.725599229831710e-03 + 6.709411571076730e-03 + 6.693262397262002e-03 + 6.677151616823099e-03 + 6.661079138883049e-03 + 6.645044871881905e-03 + 6.629048724424302e-03 + 6.613090605727208e-03 + 6.597170426169362e-03 + 6.581288095176429e-03 + 6.565443521393368e-03 + 6.549636616015259e-03 + 6.533867289690503e-03 + 6.518135451870410e-03 + 6.502441013826720e-03 + 6.486783886693610e-03 + 6.471163980906190e-03 + 6.455581208648475e-03 + 6.440035481784445e-03 + 6.424526710952946e-03 + 6.409054808194274e-03 + 6.393619686148648e-03 + 6.378221257389647e-03 + 6.362859434216829e-03 + 6.347534129405275e-03 + 6.332245256702231e-03 + 6.316992728926398e-03 + 6.301776458848883e-03 + 6.286596360249587e-03 + 6.271452347303485e-03 + 6.256344334335297e-03 + 6.241272235637497e-03 + 6.226235965289892e-03 + 6.211235437617355e-03 + 6.196270567881593e-03 + 6.181341271239764e-03 + 6.166447462747857e-03 + 6.151589057705613e-03 + 6.136765971896623e-03 + 6.121978121401951e-03 + 6.107225422158738e-03 + 6.092507790132517e-03 + 6.077825141615326e-03 + 6.063177393866219e-03 + 6.048564463915550e-03 + 6.033986268442907e-03 + 6.019442724444331e-03 + 6.004933749322879e-03 + 5.990459260846786e-03 + 5.976019176895193e-03 + 5.961613415583682e-03 + 5.947241895231883e-03 + 5.932904533953020e-03 + 5.918601250164555e-03 + 5.904331962789744e-03 + 5.890096590861083e-03 + 5.875895053571317e-03 + 5.861727270328322e-03 + 5.847593160694864e-03 + 5.833492644473149e-03 + 5.819425641715960e-03 + 5.805392072163253e-03 + 5.791391855962741e-03 + 5.777424914193254e-03 + 5.763491167389796e-03 + 5.749590536018355e-03 + 5.735722941127108e-03 + 5.721888304505554e-03 + 5.708086547766434e-03 + 5.694317591457392e-03 + 5.680581357894303e-03 + 5.666877769868901e-03 + 5.653206748498332e-03 + 5.639568216215936e-03 + 5.625962096156960e-03 + 5.612388310444156e-03 + 5.598846782244085e-03 + 5.585337435180374e-03 + 5.571860191464977e-03 + 5.558414974887664e-03 + 5.545001710146245e-03 + 5.531620319651646e-03 + 5.518270727342278e-03 + 5.504952858629092e-03 + 5.491666637149790e-03 + 5.478411987013346e-03 + 5.465188833301630e-03 + 5.451997101098349e-03 + 5.438836715460566e-03 + 5.425707601454353e-03 + 5.412609684284744e-03 + 5.399542889597323e-03 + 5.386507143481766e-03 + 5.373502371672819e-03 + 5.360528500347250e-03 + 5.347585456320476e-03 + 5.334673165238440e-03 + 5.321791553290573e-03 + 5.308940548233661e-03 + 5.296120077396591e-03 + 5.283330067535706e-03 + 5.270570445063373e-03 + 5.257841138170363e-03 + 5.245142075198895e-03 + 5.232473183108559e-03 + 5.219834389656078e-03 + 5.207225623450342e-03 + 5.194646813662877e-03 + 5.182097888019903e-03 + 5.169578774433769e-03 + 5.157089403379224e-03 + 5.144629703265777e-03 + 5.132199601938705e-03 + 5.119799030212023e-03 + 5.107427917986021e-03 + 5.095086194230444e-03 + 5.082773788422456e-03 + 5.070490630851877e-03 + 5.058236652191947e-03 + 5.046011782411770e-03 + 5.033815952050060e-03 + 5.021649092096963e-03 + 5.009511132708167e-03 + 4.997402004872952e-03 + 4.985321640554899e-03 + 4.973269971256597e-03 + 4.961246927915243e-03 + 4.949252441362114e-03 + 4.937286444284467e-03 + 4.925348869112448e-03 + 4.913439647407981e-03 + 4.901558711796497e-03 + 4.889705994683389e-03 + 4.877881427891544e-03 + 4.866084944974813e-03 + 4.854316479151838e-03 + 4.842575962313763e-03 + 4.830863328342665e-03 + 4.819178511323663e-03 + 4.807521444209243e-03 + 4.795892060902922e-03 + 4.784290295384500e-03 + 4.772716080911616e-03 + 4.761169351999607e-03 + 4.749650043687660e-03 + 4.738158090505544e-03 + 4.726693426328077e-03 + 4.715255985490762e-03 + 4.703845704177584e-03 + 4.692462517255530e-03 + 4.681106359266913e-03 + 4.669777166671382e-03 + 4.658474874679097e-03 + 4.647199418051047e-03 + 4.635950733693824e-03 + 4.624728757814554e-03 + 4.613533426035275e-03 + 4.602364675085555e-03 + 4.591222441193854e-03 + 4.580106660340010e-03 + 4.569017270133631e-03 + 4.557954207729684e-03 + 4.546917409606468e-03 + 4.535906813063030e-03 + 4.524922355662980e-03 + 4.513963975024341e-03 + 4.503031608847450e-03 + 4.492125194604706e-03 + 4.481244669721014e-03 + 4.470389973075004e-03 + 4.459561043403103e-03 + 4.448757818627942e-03 + 4.437980237157132e-03 + 4.427228237584914e-03 + 4.416501758569245e-03 + 4.405800739475310e-03 + 4.395125119625431e-03 + 4.384474837838549e-03 + 4.373849833628650e-03 + 4.363250046735974e-03 + 4.352675416676511e-03 + 4.342125883231542e-03 + 4.331601386396421e-03 + 4.321101866314548e-03 + 4.310627263408189e-03 + 4.300177518182486e-03 + 4.289752570999768e-03 + 4.279352362569397e-03 + 4.268976833692708e-03 + 4.258625924837488e-03 + 4.248299577436886e-03 + 4.237997733292803e-03 + 4.227720333115902e-03 + 4.217467318344088e-03 + 4.207238631130676e-03 + 4.197034213451204e-03 + 4.186854006892898e-03 + 4.176697952964437e-03 + 4.166565994071401e-03 + 4.156458073034852e-03 + 4.146374132669977e-03 + 4.136314114934178e-03 + 4.126277962231265e-03 + 4.116265617785051e-03 + 4.106277025130100e-03 + 4.096312127225507e-03 + 4.086370866498099e-03 + 4.076453186851077e-03 + 4.066559032318193e-03 + 4.056688346384167e-03 + 4.046841072375552e-03 + 4.037017154234894e-03 + 4.027216536753351e-03 + 4.017439163691562e-03 + 4.007684978984143e-03 + 3.997953927616382e-03 + 3.988245954341580e-03 + 3.978561003853811e-03 + 3.968899020987378e-03 + 3.959259950174110e-03 + 3.949643736363211e-03 + 3.940050325917084e-03 + 3.930479663940112e-03 + 3.920931695287086e-03 + 3.911406366153988e-03 + 3.901903622192779e-03 + 3.892423408886956e-03 + 3.882965672529350e-03 + 3.873530359308857e-03 + 3.864117415340676e-03 + 3.854726787040829e-03 + 3.845358421069152e-03 + 3.836012264203419e-03 + 3.826688263119290e-03 + 3.817386364639579e-03 + 3.808106515834866e-03 + 3.798848664119608e-03 + 3.789612756624806e-03 + 3.780398740246358e-03 + 3.771206562411011e-03 + 3.762036171140922e-03 + 3.752887514765301e-03 + 3.743760540740341e-03 + 3.734655196719529e-03 + 3.725571430980986e-03 + 3.716509192135922e-03 + 3.707468428387338e-03 + 3.698449087559120e-03 + 3.689451119263604e-03 + 3.680474472533827e-03 + 3.671519094850921e-03 + 3.662584935894309e-03 + 3.653671945297336e-03 + 3.644780071212910e-03 + 3.635909263417586e-03 + 3.627059471971036e-03 + 3.618230645951014e-03 + 3.609422734605362e-03 + 3.600635687799489e-03 + 3.591869456282116e-03 + 3.583123989955615e-03 + 3.574399238584414e-03 + 3.565695152845392e-03 + 3.557011682930304e-03 + 3.548348778903569e-03 + 3.539706391532652e-03 + 3.531084471778191e-03 + 3.522482970666699e-03 + 3.513901839239252e-03 + 3.505341028388093e-03 + 3.496800489111114e-03 + 3.488280173119797e-03 + 3.479780031892506e-03 + 3.471300016604386e-03 + 3.462840078578430e-03 + 3.454400170006921e-03 + 3.445980243580072e-03 + 3.437580250715228e-03 + 3.429200142992534e-03 + 3.420839872683964e-03 + 3.412499392748279e-03 + 3.404178655562702e-03 + 3.395877612913789e-03 + 3.387596218304602e-03 + 3.379334424898988e-03 + 3.371092184764359e-03 + 3.362869450661228e-03 + 3.354666175991870e-03 + 3.346482314543412e-03 + 3.338317819175880e-03 + 3.330172642972068e-03 + 3.322046740007612e-03 + 3.313940064235304e-03 + 3.305852569386344e-03 + 3.297784208976364e-03 + 3.289734936574093e-03 + 3.281704706272533e-03 + 3.273693473070924e-03 + 3.265701191257636e-03 + 3.257727814803984e-03 + 3.249773298074863e-03 + 3.241837595979994e-03 + 3.233920663596386e-03 + 3.226022455622204e-03 + 3.218142926555998e-03 + 3.210282031163023e-03 + 3.202439725215123e-03 + 3.194615964134223e-03 + 3.186810703067027e-03 + 3.179023897602838e-03 + 3.171255503398923e-03 + 3.163505475998486e-03 + 3.155773770652277e-03 + 3.148060343553685e-03 + 3.140365151430291e-03 + 3.132688149313277e-03 + 3.125029293443853e-03 + 3.117388541383308e-03 + 3.109765848736372e-03 + 3.102161171408776e-03 + 3.094574466373093e-03 + 3.087005690728782e-03 + 3.079454801280003e-03 + 3.071921754555924e-03 + 3.064406507880629e-03 + 3.056909018530570e-03 + 3.049429243338136e-03 + 3.041967139485151e-03 + 3.034522664377966e-03 + 3.027095775562892e-03 + 3.019686430816400e-03 + 3.012294588055786e-03 + 3.004920205212209e-03 + 2.997563239705405e-03 + 2.990223649173174e-03 + 2.982901392198357e-03 + 2.975596427311395e-03 + 2.968308712822513e-03 + 2.961038206776656e-03 + 2.953784867392937e-03 + 2.946548653201694e-03 + 2.939329523194637e-03 + 2.932127436582907e-03 + 2.924942352269057e-03 + 2.917774228121468e-03 + 2.910623023643702e-03 + 2.903488699056754e-03 + 2.896371212514376e-03 + 2.889270523304112e-03 + 2.882186591679052e-03 + 2.875119376658924e-03 + 2.868068837676741e-03 + 2.861034934776638e-03 + 2.854017627809473e-03 + 2.847016876513213e-03 + 2.840032640686938e-03 + 2.833064880681456e-03 + 2.826113557103426e-03 + 2.819178630449384e-03 + 2.812260060105674e-03 + 2.805357806481411e-03 + 2.798471831428214e-03 + 2.791602094948384e-03 + 2.784748557109701e-03 + 2.777911179108391e-03 + 2.771089922400815e-03 + 2.764284748007964e-03 + 2.757495616304825e-03 + 2.750722488782177e-03 + 2.743965327115693e-03 + 2.737224092409578e-03 + 2.730498746008289e-03 + 2.723789249648372e-03 + 2.717095565426717e-03 + 2.710417654358784e-03 + 2.703755477800617e-03 + 2.697108999073383e-03 + 2.690478179939920e-03 + 2.683862981660020e-03 + 2.677263366970269e-03 + 2.670679298051182e-03 + 2.664110736894467e-03 + 2.657557646411518e-03 + 2.651019989061974e-03 + 2.644497727126834e-03 + 2.637990823748049e-03 + 2.631499241776077e-03 + 2.625022943767310e-03 + 2.618561892619121e-03 + 2.612116051581085e-03 + 2.605685383984310e-03 + 2.599269852507916e-03 + 2.592869420565223e-03 + 2.586484052278204e-03 + 2.580113710814501e-03 + 2.573758359383719e-03 + 2.567417961609419e-03 + 2.561092481362380e-03 + 2.554781882413309e-03 + 2.548486128464411e-03 + 2.542205184036424e-03 + 2.535939013422343e-03 + 2.529687580238901e-03 + 2.523450848436006e-03 + 2.517228782352248e-03 + 2.511021346720505e-03 + 2.504828506444104e-03 + 2.498650225958320e-03 + 2.492486468967693e-03 + 2.486337200680032e-03 + 2.480202386472821e-03 + 2.474081990653096e-03 + 2.467975978460781e-03 + 2.461884315215007e-03 + 2.455806965243642e-03 + 2.449743893777428e-03 + 2.443695066608286e-03 + 2.437660449328877e-03 + 2.431640007119714e-03 + 2.425633705211946e-03 + 2.419641509634817e-03 + 2.413663385966202e-03 + 2.407699299632079e-03 + 2.401749216909934e-03 + 2.395813103777745e-03 + 2.389890925926915e-03 + 2.383982649399740e-03 + 2.378088240561300e-03 + 2.372207665865560e-03 + 2.366340891258303e-03 + 2.360487883037754e-03 + 2.354648608018378e-03 + 2.348823033118129e-03 + 2.343011124539103e-03 + 2.337212848054228e-03 + 2.331428171390765e-03 + 2.325657062040943e-03 + 2.319899486412222e-03 + 2.314155410784699e-03 + 2.308424802407836e-03 + 2.302707629600105e-03 + 2.297003858807791e-03 + 2.291313456815245e-03 + 2.285636391934661e-03 + 2.279972631361444e-03 + 2.274322142294874e-03 + 2.268684892803898e-03 + 2.263060850445441e-03 + 2.257449982675230e-03 + 2.251852257331842e-03 + 2.246267642469826e-03 + 2.240696106224612e-03 + 2.235137616698782e-03 + 2.229592141925271e-03 + 2.224059650030012e-03 + 2.218540109447705e-03 + 2.213033488566449e-03 + 2.207539755750870e-03 + 2.202058879448589e-03 + 2.196590827868759e-03 + 2.191135569406817e-03 + 2.185693073538250e-03 + 2.180263309295804e-03 + 2.174846245146934e-03 + 2.169441849486111e-03 + 2.164050091629877e-03 + 2.158670941358884e-03 + 2.153304367034930e-03 + 2.147950337590323e-03 + 2.142608822828710e-03 + 2.137279792340324e-03 + 2.131963215445541e-03 + 2.126659061301170e-03 + 2.121367299363035e-03 + 2.116087899310018e-03 + 2.110820830985273e-03 + 2.105566064252215e-03 + 2.100323568822542e-03 + 2.095093314356113e-03 + 2.089875271479949e-03 + 2.084669410319118e-03 + 2.079475699908646e-03 + 2.074294110902819e-03 + 2.069124614088778e-03 + 2.063967179294363e-03 + 2.058821776747180e-03 + 2.053688376991423e-03 + 2.048566950718572e-03 + 2.043457468582260e-03 + 2.038359901240009e-03 + 2.033274219398007e-03 + 2.028200393563254e-03 + 2.023138394473247e-03 + 2.018088193625467e-03 + 2.013049761808302e-03 + 2.008023069533293e-03 + 2.003008088023720e-03 + 1.998004788922133e-03 + 1.993013143739461e-03 + 1.988033123025423e-03 + 1.983064698401174e-03 + 1.978107841939004e-03 + 1.973162523959716e-03 + 1.968228716337500e-03 + 1.963306391971906e-03 + 1.958395521239848e-03 + 1.953496075620802e-03 + 1.948608028019931e-03 + 1.943731350228688e-03 + 1.938866013789267e-03 + 1.934011990485791e-03 + 1.929169252901841e-03 + 1.924337773155020e-03 + 1.919517522737516e-03 + 1.914708474346116e-03 + 1.909910600724645e-03 + 1.905123874118434e-03 + 1.900348266781407e-03 + 1.895583751238830e-03 + 1.890830300301618e-03 + 1.886087886140893e-03 + 1.881356481302734e-03 + 1.876636059328014e-03 + 1.871926593048255e-03 + 1.867228054886164e-03 + 1.862540417322874e-03 + 1.857863653843670e-03 + 1.853197738035545e-03 + 1.848542642643349e-03 + 1.843898340659710e-03 + 1.839264805482605e-03 + 1.834642010884087e-03 + 1.830029929675155e-03 + 1.825428534756660e-03 + 1.820837800826725e-03 + 1.816257700994342e-03 + 1.811688207883416e-03 + 1.807129296515363e-03 + 1.802580940478343e-03 + 1.798043112569654e-03 + 1.793515787775185e-03 + 1.788998939681262e-03 + 1.784492541016137e-03 + 1.779996567290557e-03 + 1.775510992946437e-03 + 1.771035790955467e-03 + 1.766570935188881e-03 + 1.762116400368900e-03 + 1.757672161650980e-03 + 1.753238193179788e-03 + 1.748814468721301e-03 + 1.744400962234815e-03 + 1.739997649147064e-03 + 1.735604504535336e-03 + 1.731221502449809e-03 + 1.726848617398671e-03 + 1.722485824273258e-03 + 1.718133098140551e-03 + 1.713790413411143e-03 + 1.709457744960287e-03 + 1.705135068710917e-03 + 1.700822359316501e-03 + 1.696519591326764e-03 + 1.692226740206531e-03 + 1.687943780998710e-03 + 1.683670689031842e-03 + 1.679407440586236e-03 + 1.675154010255336e-03 + 1.670910372590760e-03 + 1.666676504276520e-03 + 1.662452380680008e-03 + 1.658237976786625e-03 + 1.654033269138933e-03 + 1.649838233189823e-03 + 1.645652843894769e-03 + 1.641477077483747e-03 + 1.637310910181093e-03 + 1.633154317979306e-03 + 1.629007276710043e-03 + 1.624869761977525e-03 + 1.620741749539434e-03 + 1.616623216289868e-03 + 1.612514138626602e-03 + 1.608414492386588e-03 + 1.604324254066237e-03 + 1.600243399893093e-03 + 1.596171905775712e-03 + 1.592109748332882e-03 + 1.588056904380057e-03 + 1.584013350591343e-03 + 1.579979063015354e-03 + 1.575954018417919e-03 + 1.571938194458784e-03 + 1.567931567017785e-03 + 1.563934112240304e-03 + 1.559945807641685e-03 + 1.555966630779868e-03 + 1.551996558434039e-03 + 1.548035566441649e-03 + 1.544083632647983e-03 + 1.540140734902817e-03 + 1.536206849423688e-03 + 1.532281953055403e-03 + 1.528366023373284e-03 + 1.524459038476067e-03 + 1.520560975283225e-03 + 1.516671810636623e-03 + 1.512791522697568e-03 + 1.508920088807869e-03 + 1.505057486015793e-03 + 1.501203692209861e-03 + 1.497358685322736e-03 + 1.493522443062933e-03 + 1.489694942724099e-03 + 1.485876162194853e-03 + 1.482066079697174e-03 + 1.478264672890618e-03 + 1.474471919644568e-03 + 1.470687798121700e-03 + 1.466912286519041e-03 + 1.463145362594138e-03 + 1.459387003990816e-03 + 1.455637189563730e-03 + 1.451895897787254e-03 + 1.448163106500405e-03 + 1.444438793947980e-03 + 1.440722938760434e-03 + 1.437015519703072e-03 + 1.433316514691718e-03 + 1.429625901910583e-03 + 1.425943660193772e-03 + 1.422269768088744e-03 + 1.418604204318803e-03 + 1.414946947952337e-03 + 1.411297977567125e-03 + 1.407657271824714e-03 + 1.404024809794961e-03 + 1.400400570139807e-03 + 1.396784531434119e-03 + 1.393176672533590e-03 + 1.389576972970703e-03 + 1.385985412235932e-03 + 1.382401969107074e-03 + 1.378826622443783e-03 + 1.375259351219489e-03 + 1.371700134514839e-03 + 1.368148952079336e-03 + 1.364605783757036e-03 + 1.361070608632290e-03 + 1.357543405835987e-03 + 1.354024154621594e-03 + 1.350512834317403e-03 + 1.347009424934256e-03 + 1.343513906652181e-03 + 1.340026258589547e-03 + 1.336546459739890e-03 + 1.333074489680093e-03 + 1.329610329681042e-03 + 1.326153959375566e-03 + 1.322705357081586e-03 + 1.319264503327096e-03 + 1.315831378649060e-03 + 1.312405962942001e-03 + 1.308988235813027e-03 + 1.305578177302038e-03 + 1.302175767936687e-03 + 1.298780987783750e-03 + 1.295393816813521e-03 + 1.292014235092867e-03 + 1.288642222828844e-03 + 1.285277760581296e-03 + 1.281920829182064e-03 + 1.278571408463430e-03 + 1.275229478684235e-03 + 1.271895021211065e-03 + 1.268568016022571e-03 + 1.265248443161927e-03 + 1.261936283866222e-03 + 1.258631518851812e-03 + 1.255334128626978e-03 + 1.252044093890807e-03 + 1.248761395151665e-03 + 1.245486013113075e-03 + 1.242217929129610e-03 + 1.238957124307338e-03 + 1.235703579418827e-03 + 1.232457274959363e-03 + 1.229218191838193e-03 + 1.225986311430220e-03 + 1.222761615473843e-03 + 1.219544084856006e-03 + 1.216333699988417e-03 + 1.213130441964228e-03 + 1.209934292565758e-03 + 1.206745233676102e-03 + 1.203563245963205e-03 + 1.200388310525061e-03 + 1.197220409053557e-03 + 1.194059523052293e-03 + 1.190905633902454e-03 + 1.187758723052301e-03 + 1.184618772531461e-03 + 1.181485763720917e-03 + 1.178359677471923e-03 + 1.175240496495629e-03 + 1.172128202790389e-03 + 1.169022777016151e-03 + 1.165924201427151e-03 + 1.162832457974330e-03 + 1.159747527667428e-03 + 1.156669393342115e-03 + 1.153598037513975e-03 + 1.150533441195656e-03 + 1.147475586343000e-03 + 1.144424455192698e-03 + 1.141380029693999e-03 + 1.138342292070108e-03 + 1.135311224784675e-03 + 1.132286810371483e-03 + 1.129269030382949e-03 + 1.126257866687504e-03 + 1.123253302806332e-03 + 1.120255320585528e-03 + 1.117263901594027e-03 + 1.114279029333705e-03 + 1.111300685926414e-03 + 1.108328853214485e-03 + 1.105363515126287e-03 + 1.102404653695880e-03 + 1.099452250276090e-03 + 1.096506289065756e-03 + 1.093566752790314e-03 + 1.090633622975802e-03 + 1.087706882683815e-03 + 1.084786514992603e-03 + 1.081872502714538e-03 + 1.078964828755093e-03 + 1.076063476054719e-03 + 1.073168427526746e-03 + 1.070279665938792e-03 + 1.067397174442816e-03 + 1.064520936417689e-03 + 1.061650934087830e-03 + 1.058787150577005e-03 + 1.055929570192933e-03 + 1.053078175257412e-03 + 1.050232948596978e-03 + 1.047393874491941e-03 + 1.044560935952646e-03 + 1.041734115621369e-03 + 1.038913396581877e-03 + 1.036098763274602e-03 + 1.033290199394467e-03 + 1.030487686748966e-03 + 1.027691209748195e-03 + 1.024900752824401e-03 + 1.022116298137994e-03 + 1.019337829638554e-03 + 1.016565331581354e-03 + 1.013798786681050e-03 + 1.011038178744547e-03 + 1.008283492069452e-03 + 1.005534710312413e-03 + 1.002791817167788e-03 + 1.000054796401326e-03 + 9.973236317525795e-04 + 9.945983071579347e-04 + 9.918788066535795e-04 + 9.891651141399331e-04 + 9.864572135795289e-04 + 9.837550890187182e-04 + 9.810587245440681e-04 + 9.783681042165289e-04 + 9.756832121036981e-04 + 9.730040324093254e-04 + 9.703305493295432e-04 + 9.676627470403841e-04 + 9.650006098016114e-04 + 9.623441219373007e-04 + 9.596932677964791e-04 + 9.570480316324495e-04 + 9.544083978205768e-04 + 9.517743508934125e-04 + 9.491458752396962e-04 + 9.465229553012878e-04 + 9.439055756501852e-04 + 9.412937207895038e-04 + 9.386873752809525e-04 + 9.360865238076440e-04 + 9.334911509791107e-04 + 9.309012414140627e-04 + 9.283167798171848e-04 + 9.257377509839119e-04 + 9.231641396993918e-04 + 9.205959306774516e-04 + 9.180331088080401e-04 + 9.154756590138127e-04 + 9.129235660962607e-04 + 9.103768149701878e-04 + 9.078353906321772e-04 + 9.052992780955343e-04 + 9.027684623946166e-04 + 9.002429285800444e-04 + 8.977226617159664e-04 + 8.952076469091944e-04 + 8.926978693026045e-04 + 8.901933140640126e-04 + 8.876939664445818e-04 + 8.851998117353022e-04 + 8.827108351548252e-04 + 8.802270219825557e-04 + 8.777483575705740e-04 + 8.752748272927118e-04 + 8.728064165680979e-04 + 8.703431108522175e-04 + 8.678848955854838e-04 + 8.654317562117358e-04 + 8.629836782258149e-04 + 8.605406473168484e-04 + 8.581026490766350e-04 + 8.556696689660546e-04 + 8.532416927295966e-04 + 8.508187061075220e-04 + 8.484006947265324e-04 + 8.459876443379812e-04 + 8.435795407180884e-04 + 8.411763696276702e-04 + 8.387781169670006e-04 + 8.363847686436173e-04 + 8.339963104952486e-04 + 8.316127284703911e-04 + 8.292340085393665e-04 + 8.268601366269382e-04 + 8.244910987818749e-04 + 8.221268810991789e-04 + 8.197674696351961e-04 + 8.174128504795555e-04 + 8.150630097863373e-04 + 8.127179337987174e-04 + 8.103776086785577e-04 + 8.080420206116735e-04 + 8.057111559859151e-04 + 8.033850010442538e-04 + 8.010635420033148e-04 + 7.987467653572807e-04 + 7.964346575211490e-04 + 7.941272048473775e-04 + 7.918243938145987e-04 + 7.895262109139402e-04 + 7.872326426395918e-04 + 7.849436755404454e-04 + 7.826592961986925e-04 + 7.803794912312032e-04 + 7.781042473133076e-04 + 7.758335511109105e-04 + 7.735673892815593e-04 + 7.713057485643111e-04 + 7.690486157536814e-04 + 7.667959776727836e-04 + 7.645478211004869e-04 + 7.623041328912646e-04 + 7.600649000053854e-04 + 7.578301093264215e-04 + 7.555997477583347e-04 + 7.533738022910566e-04 + 7.511522599897612e-04 + 7.489351079282785e-04 + 7.467223331578882e-04 + 7.445139227962291e-04 + 7.423098639775247e-04 + 7.401101438263767e-04 + 7.379147496119391e-04 + 7.357236686066337e-04 + 7.335368879604144e-04 + 7.313543950177981e-04 + 7.291761771981462e-04 + 7.270022218267318e-04 + 7.248325162821272e-04 + 7.226670479949025e-04 + 7.205058044241288e-04 + 7.183487730730944e-04 + 7.161959414766152e-04 + 7.140472971809699e-04 + 7.119028277561113e-04 + 7.097625208231147e-04 + 7.076263641063239e-04 + 7.054943452576004e-04 + 7.033664519218169e-04 + 7.012426719956601e-04 + 6.991229932510109e-04 + 6.970074033540157e-04 + 6.948958902400331e-04 + 6.927884418689321e-04 + 6.906850461485944e-04 + 6.885856909689247e-04 + 6.864903643067344e-04 + 6.843990542306164e-04 + 6.823117487354689e-04 + 6.802284359113009e-04 + 6.781491039842488e-04 + 6.760737410664455e-04 + 6.740023352773578e-04 + 6.719348748282754e-04 + 6.698713480434448e-04 + 6.678117432465053e-04 + 6.657560487034911e-04 + 6.637042527655789e-04 + 6.616563438432147e-04 + 6.596123103782944e-04 + 6.575721408025738e-04 + 6.555358236048545e-04 + 6.535033473936704e-04 + 6.514747007198682e-04 + 6.494498721244171e-04 + 6.474288502266283e-04 + 6.454116237722280e-04 + 6.433981815196293e-04 + 6.413885120963034e-04 + 6.393826043225120e-04 + 6.373804471016686e-04 + 6.353820291728463e-04 + 6.333873394523912e-04 + 6.313963669651093e-04 + 6.294091005879305e-04 + 6.274255292885601e-04 + 6.254456421348147e-04 + 6.234694281911996e-04 + 6.214968766042923e-04 + 6.195279765738893e-04 + 6.175627172048796e-04 + 6.156010877068991e-04 + 6.136430774102346e-04 + 6.116886755862946e-04 + 6.097378715435904e-04 + 6.077906546697107e-04 + 6.058470144286753e-04 + 6.039069402835228e-04 + 6.019704216802507e-04 + 6.000374481409778e-04 + 5.981080092530985e-04 + 5.961820946588096e-04 + 5.942596940083503e-04 + 5.923407969721301e-04 + 5.904253932616448e-04 + 5.885134726736782e-04 + 5.866050250202793e-04 + 5.847000400980857e-04 + 5.827985078791194e-04 + 5.809004183470366e-04 + 5.790057613579966e-04 + 5.771145269606196e-04 + 5.752267052829598e-04 + 5.733422863841403e-04 + 5.714612604000550e-04 + 5.695836175305099e-04 + 5.677093480037018e-04 + 5.658384420678564e-04 + 5.639708900266142e-04 + 5.621066823022896e-04 + 5.602458092869138e-04 + 5.583882613744714e-04 + 5.565340290827777e-04 + 5.546831029664671e-04 + 5.528354736013446e-04 + 5.509911316015094e-04 + 5.491500676402182e-04 + 5.473122724461832e-04 + 5.454777367810608e-04 + 5.436464514412940e-04 + 5.418184072613321e-04 + 5.399935951226492e-04 + 5.381720060069473e-04 + 5.363536309736959e-04 + 5.345384609776805e-04 + 5.327264870731968e-04 + 5.309177004752346e-04 + 5.291120923593077e-04 + 5.273096539494221e-04 + 5.255103765544823e-04 + 5.237142514407170e-04 + 5.219212699733492e-04 + 5.201314236865307e-04 + 5.183447040146093e-04 + 5.165611024246747e-04 + 5.147806105331874e-04 + 5.130032200114061e-04 + 5.112289225530487e-04 + 5.094577098620987e-04 + 5.076895736854020e-04 + 5.059245058583464e-04 + 5.041624983517820e-04 + 5.024035430839573e-04 + 5.006476319990773e-04 + 4.988947572035529e-04 + 4.971449107942239e-04 + 4.953980848818115e-04 + 4.936542716805855e-04 + 4.919134634956966e-04 + 4.901756526846954e-04 + 4.884408316006080e-04 + 4.867089926403434e-04 + 4.849801282731475e-04 + 4.832542310892493e-04 + 4.815312937309208e-04 + 4.798113088560132e-04 + 4.780942690954599e-04 + 4.763801672259719e-04 + 4.746689961731605e-04 + 4.729607488395965e-04 + 4.712554181333483e-04 + 4.695529970142063e-04 + 4.678534786182833e-04 + 4.661568561056742e-04 + 4.644631226216267e-04 + 4.627722714285577e-04 + 4.610842958399921e-04 + 4.593991892076899e-04 + 4.577169450300335e-04 + 4.560375568336446e-04 + 4.543610181249096e-04 + 4.526873225594637e-04 + 4.510164638467393e-04 + 4.493484356950898e-04 + 4.476832319569833e-04 + 4.460208465382815e-04 + 4.443612733350173e-04 + 4.427045064285867e-04 + 4.410505399510805e-04 + 4.393993679504339e-04 + 4.377509846774214e-04 + 4.361053844834223e-04 + 4.344625616662297e-04 + 4.328225106365193e-04 + 4.311852259097922e-04 + 4.295507020701359e-04 + 4.279189337521271e-04 + 4.262899156467061e-04 + 4.246636425301464e-04 + 4.230401092565931e-04 + 4.214193107478168e-04 + 4.198012419839599e-04 + 4.181858979868060e-04 + 4.165732738692198e-04 + 4.149633649793705e-04 + 4.133561665739344e-04 + 4.117516738453971e-04 + 4.101498823326724e-04 + 4.085507876181731e-04 + 4.069543852399522e-04 + 4.053606707914893e-04 + 4.037696400086752e-04 + 4.021812887746215e-04 + 4.005956129436248e-04 + 3.990126084760660e-04 + 3.974322714846641e-04 + 3.958545980293214e-04 + 3.942795842513983e-04 + 3.927072264688036e-04 + 3.911375211195356e-04 + 3.895704646516968e-04 + 3.880060534869329e-04 + 3.864442842922655e-04 + 3.848851538066537e-04 + 3.833286587063809e-04 + 3.817747958651508e-04 + 3.802235622593628e-04 + 3.786749548688228e-04 + 3.771289708205180e-04 + 3.755856073392733e-04 + 3.740448616816441e-04 + 3.725067311649692e-04 + 3.709712132043737e-04 + 3.694383053790672e-04 + 3.679080053579325e-04 + 3.663803108503057e-04 + 3.648552195606523e-04 + 3.633327293646475e-04 + 3.618128382932607e-04 + 3.602955444344858e-04 + 3.587808459078391e-04 + 3.572687408998931e-04 + 3.557592277792442e-04 + 3.542523049927096e-04 + 3.527479710408145e-04 + 3.512462245019904e-04 + 3.497470640500036e-04 + 3.482504884770882e-04 + 3.467564967437580e-04 + 3.452650877985240e-04 + 3.437762605764859e-04 + 3.422900143250168e-04 + 3.408063483640538e-04 + 3.393252619896345e-04 + 3.378467546103840e-04 + 3.363708257653936e-04 + 3.348974751341996e-04 + 3.334267024660963e-04 + 3.319585075646510e-04 + 3.304928903038992e-04 + 3.290298507212495e-04 + 3.275693889604049e-04 + 3.261115052402690e-04 + 3.246561999078441e-04 + 3.232034733603981e-04 + 3.217533259984899e-04 + 3.203057585048498e-04 + 3.188607716794152e-04 + 3.174183662346357e-04 + 3.159785430822741e-04 + 3.145413032833238e-04 + 3.131066479369465e-04 + 3.116745782136557e-04 + 3.102450954058189e-04 + 3.088182010197684e-04 + 3.073938965650610e-04 + 3.059721835802734e-04 + 3.045530637916020e-04 + 3.031365390386899e-04 + 3.017226112552691e-04 + 3.003112824793533e-04 + 2.989025548234045e-04 + 2.974964304955006e-04 + 2.960929118913988e-04 + 2.946920014422941e-04 + 2.932937016150965e-04 + 2.918980151023185e-04 + 2.905049446767149e-04 + 2.891144931550728e-04 + 2.877266634923031e-04 + 2.863414587568181e-04 + 2.849588821248430e-04 + 2.835789368717610e-04 + 2.822016263526234e-04 + 2.808269540128114e-04 + 2.794549234525530e-04 + 2.780855383858511e-04 + 2.767188026160350e-04 + 2.753547199733251e-04 + 2.739932944362576e-04 + 2.726345302253411e-04 + 2.712784314751994e-04 + 2.699250024118205e-04 + 2.685742475595017e-04 + 2.672261714415124e-04 + 2.658807786371782e-04 + 2.645380739000219e-04 + 2.631980619957597e-04 + 2.618607478073471e-04 + 2.605261365239288e-04 + 2.591942332540738e-04 + 2.578650431168888e-04 + 2.565385715181067e-04 + 2.552148239188000e-04 + 2.538938058269625e-04 + 2.525755228940477e-04 + 2.512599808919393e-04 + 2.499471856899045e-04 + 2.486371432244064e-04 + 2.473298595107682e-04 + 2.460253406646765e-04 + 2.447235929605613e-04 + 2.434246227773826e-04 + 2.421284365723855e-04 + 2.408350408491505e-04 + 2.395444422583646e-04 + 2.382566475978551e-04 + 2.369716636126905e-04 + 2.356894972066169e-04 + 2.344101555067014e-04 + 2.331336455922197e-04 + 2.318599746393059e-04 + 2.305891500038487e-04 + 2.293211790903458e-04 + 2.280560693749351e-04 + 2.267938284406659e-04 + 2.255344639796373e-04 + 2.242779837481179e-04 + 2.230243955584571e-04 + 2.217737074088738e-04 + 2.205259273750273e-04 + 2.192810635194828e-04 + 2.180391240377155e-04 + 2.168001172473318e-04 + 2.155640515683406e-04 + 2.143309354202995e-04 + 2.131007772856537e-04 + 2.118735858306198e-04 + 2.106493698084787e-04 + 2.094281380089542e-04 + 2.082098992208740e-04 + 2.069946624015073e-04 + 2.057824366286796e-04 + 2.045732309577213e-04 + 2.033670545521807e-04 + 2.021639166762670e-04 + 2.009638266139778e-04 + 1.997667937615743e-04 + 1.985728276099416e-04 + 1.973819376249420e-04 + 1.961941334186818e-04 + 1.950094247288422e-04 + 1.938278211445808e-04 + 1.926493324216112e-04 + 1.914739685443153e-04 + 1.903017394244089e-04 + 1.891326549660665e-04 + 1.879667251315557e-04 + 1.868039600691931e-04 + 1.856443699312781e-04 + 1.844879648170397e-04 + 1.833347550402995e-04 + 1.821847509305592e-04 + 1.810379627269367e-04 + 1.798944008330572e-04 + 1.787540757117569e-04 + 1.776169978023503e-04 + 1.764831776083264e-04 + 1.753526257075039e-04 + 1.742253527510645e-04 + 1.731013693254543e-04 + 1.719806860311682e-04 + 1.708633135911149e-04 + 1.697492627671219e-04 + 1.686385443331759e-04 + 1.675311690584120e-04 + 1.664271477052953e-04 + 1.653264910845736e-04 + 1.642292101438652e-04 + 1.631353157524277e-04 + 1.620448187436031e-04 + 1.609577300754615e-04 + 1.598740606888992e-04 + 1.587938214812250e-04 + 1.577170233258566e-04 + 1.566436772168694e-04 + 1.555737942159133e-04 + 1.545073851968179e-04 + 1.534444610998845e-04 + 1.523850329588589e-04 + 1.513291117056277e-04 + 1.502767082718022e-04 + 1.492278336091406e-04 + 1.481824986061289e-04 + 1.471407142013266e-04 + 1.461024913960903e-04 + 1.450678410475480e-04 + 1.440367739871709e-04 + 1.430093010797408e-04 + 1.419854331666308e-04 + 1.409651810501559e-04 + 1.399485554884026e-04 + 1.389355672434459e-04 + 1.379262270311977e-04 + 1.369205454852166e-04 + 1.359185332657421e-04 + 1.349202010239166e-04 + 1.339255593445051e-04 + 1.329346186642912e-04 + 1.319473893926901e-04 + 1.309638820305585e-04 + 1.299841069283569e-04 + 1.290080743627276e-04 + 1.280357946577360e-04 + 1.270672779908064e-04 + 1.261025344295187e-04 + 1.251415740258344e-04 + 1.241844068414831e-04 + 1.232310428585276e-04 + 1.222814917974582e-04 + 1.213357634573326e-04 + 1.203938676644921e-04 + 1.194558139769228e-04 + 1.185216119071049e-04 + 1.175912709437735e-04 + 1.166648004395201e-04 + 1.157422096820540e-04 + 1.148235078941047e-04 + 1.139087041565015e-04 + 1.129978074560730e-04 + 1.120908266963163e-04 + 1.111877706801771e-04 + 1.102886481165339e-04 + 1.093934676008822e-04 + 1.085022375478793e-04 + 1.076149663238430e-04 + 1.067316622735248e-04 + 1.058523335072715e-04 + 1.049769880021785e-04 + 1.041056336506420e-04 + 1.032382782134568e-04 + 1.023749293560659e-04 + 1.015155946454073e-04 + 1.006602814254268e-04 + 9.980899691604087e-05 + 9.896174827822380e-05 + 9.811854249648769e-05 + 9.727938640362722e-05 + 9.644428669167931e-05 + 9.561324990949941e-05 + 9.478628247235907e-05 + 9.396339064407664e-05 + 9.314458052650697e-05 + 9.232985807344924e-05 + 9.151922908266137e-05 + 9.071269919463392e-05 + 8.991027389908417e-05 + 8.911195851702552e-05 + 8.831775819982511e-05 + 8.752767793866873e-05 + 8.674172256023528e-05 + 8.595989672073575e-05 + 8.518220490590348e-05 + 8.440865141920385e-05 + 8.363924039733809e-05 + 8.287397580722622e-05 + 8.211286142104977e-05 + 8.135590084051729e-05 + 8.060309749193613e-05 + 7.985445459658365e-05 + 7.910997520302950e-05 + 7.836966218298747e-05 + 7.763351820320998e-05 + 7.690154574559998e-05 + 7.617374709914362e-05 + 7.545012436145964e-05 + 7.473067944430294e-05 + 7.401541405207780e-05 + 7.330432968888297e-05 + 7.259742767376570e-05 + 7.189470911942744e-05 + 7.119617492698978e-05 + 7.050182580949816e-05 + 6.981166227552030e-05 + 6.912568461899398e-05 + 6.844389294104750e-05 + 6.776628713300132e-05 + 6.709286687130013e-05 + 6.642363163388969e-05 + 6.575858067871575e-05 + 6.509771305493562e-05 + 6.444102761503343e-05 + 6.378852298738557e-05 + 6.314019758583242e-05 + 6.249604962295056e-05 + 6.185607708979005e-05 + 6.122027775903875e-05 + 6.058864919749181e-05 + 5.996118875684596e-05 + 5.933789356597989e-05 + 5.871876053888907e-05 + 5.810378637807827e-05 + 5.749296757228591e-05 + 5.688630039241354e-05 + 5.628378087841946e-05 + 5.568540486517338e-05 + 5.509116797959273e-05 + 5.450106561933422e-05 + 5.391509296529475e-05 + 5.333324497665832e-05 + 5.275551640753726e-05 + 5.218190179953343e-05 + 5.161239545977182e-05 + 5.104699148146081e-05 + 5.048568375913861e-05 + 4.992846596763329e-05 + 4.937533154817934e-05 + 4.882627374147808e-05 + 4.828128557792042e-05 + 4.774035986717692e-05 + 4.720348921279551e-05 + 4.667066599018748e-05 + 4.614188237688400e-05 + 4.561713035194944e-05 + 4.509640165438987e-05 + 4.457968783032909e-05 + 4.406698023190481e-05 + 4.355826996891768e-05 + 4.305354796420506e-05 + 4.255280495560636e-05 + 4.205603144616347e-05 + 4.156321774032957e-05 + 4.107435395613752e-05 + 4.058942999665175e-05 + 4.010843556869507e-05 + 3.963136019085871e-05 + 3.915819316952545e-05 + 3.868892361719641e-05 + 3.822354046226270e-05 + 3.776203244031561e-05 + 3.730438809005640e-05 + 3.685059575689182e-05 + 3.640064360230198e-05 + 3.595451960373741e-05 + 3.551221155134442e-05 + 3.507370705450421e-05 + 3.463899354241650e-05 + 3.420805825588243e-05 + 3.378088825986720e-05 + 3.335747045272196e-05 + 3.293779155463552e-05 + 3.252183811026268e-05 + 3.210959649877579e-05 + 3.170105292073684e-05 + 3.129619341367949e-05 + 3.089500386055728e-05 + 3.049746997239612e-05 + 3.010357730585059e-05 + 2.971331126487755e-05 + 2.932665707619367e-05 + 2.894359982344077e-05 + 2.856412445132613e-05 + 2.818821573877814e-05 + 2.781585831987375e-05 + 2.744703669454755e-05 + 2.708173520948728e-05 + 2.671993807124836e-05 + 2.636162935767626e-05 + 2.600679300301263e-05 + 2.565541280257304e-05 + 2.530747242805460e-05 + 2.496295542635910e-05 + 2.462184521206604e-05 + 2.428412507785163e-05 + 2.394977819771233e-05 + 2.361878762181457e-05 + 2.329113628448998e-05 + 2.296680701293541e-05 + 2.264578251757474e-05 + 2.232804539557172e-05 + 2.201357814530585e-05 + 2.170236315904943e-05 + 2.139438272306276e-05 + 2.108961903561866e-05 + 2.078805419745760e-05 + 2.048967020582218e-05 + 2.019444897050880e-05 + 1.990237231614296e-05 + 1.961342197777572e-05 + 1.932757961462368e-05 + 1.904482680353188e-05 + 1.876514502948172e-05 + 1.848851571515060e-05 + 1.821492021640795e-05 + 1.794433980831370e-05 + 1.767675569461099e-05 + 1.741214902258527e-05 + 1.715050088166273e-05 + 1.689179228451716e-05 + 1.663600419203502e-05 + 1.638311752659296e-05 + 1.613311314360082e-05 + 1.588597184706167e-05 + 1.564167440067926e-05 + 1.540020151829502e-05 + 1.516153387453479e-05 + 1.492565211244357e-05 + 1.469253682958783e-05 + 1.446216858599219e-05 + 1.423452791421707e-05 + 1.400959531801727e-05 + 1.378735127470914e-05 + 1.356777623611474e-05 + 1.335085063337062e-05 + 1.313655487876277e-05 + 1.292486936494610e-05 + 1.271577446639333e-05 + 1.250925054517824e-05 + 1.230527796605363e-05 + 1.210383708165599e-05 + 1.190490823144681e-05 + 1.170847175649016e-05 + 1.151450799717159e-05 + 1.132299729345123e-05 + 1.113391999104486e-05 + 1.094725644586371e-05 + 1.076298702423590e-05 + 1.058109209097755e-05 + 1.040155202830912e-05 + 1.022434724511555e-05 + 1.004945815519835e-05 + 9.876865191434875e-06 + 9.706548817576976e-06 + 9.538489515829050e-06 + 9.372667791395497e-06 + 9.209064181113714e-06 + 9.047659251528417e-06 + 8.888433598428113e-06 + 8.731367852817854e-06 + 8.576442682615395e-06 + 8.423638791088146e-06 + 8.272936922653283e-06 + 8.124317863654203e-06 + 7.977762440936675e-06 + 7.833251528895281e-06 + 7.690766049713759e-06 + 7.550286971453687e-06 + 7.411795314787993e-06 + 7.275272152381047e-06 + 7.140698608042407e-06 + 7.008055865069554e-06 + 6.877325162999093e-06 + 6.748487797069182e-06 + 6.621525126924672e-06 + 6.496418573295794e-06 + 6.373149617974847e-06 + 6.251699810845691e-06 + 6.132050767139283e-06 + 6.014184168887862e-06 + 5.898081770597224e-06 + 5.783725394973654e-06 + 5.671096936050662e-06 + 5.560178365641361e-06 + 5.450951726966341e-06 + 5.343399138917566e-06 + 5.237502802602254e-06 + 5.133244993336976e-06 + 5.030608065950253e-06 + 4.929574461382145e-06 + 4.830126698086031e-06 + 4.732247378331277e-06 + 4.635919192753656e-06 + 4.541124912789582e-06 + 4.447847398958468e-06 + 4.356069602328335e-06 + 4.265774557056776e-06 + 4.176945389932598e-06 + 4.089565320281935e-06 + 4.003617653697645e-06 + 3.919085793399028e-06 + 3.835953236362346e-06 + 3.754203567594348e-06 + 3.673820472678765e-06 + 3.594787733829004e-06 + 3.517089224074456e-06 + 3.440708918621393e-06 + 3.365630891050476e-06 + 3.291839308866544e-06 + 3.219318444550688e-06 + 3.148052669614368e-06 + 3.078026451876596e-06 + 3.009224366838337e-06 + 2.941631088840265e-06 + 2.875231390541817e-06 + 2.810010156134118e-06 + 2.745952369256776e-06 + 2.683043113446972e-06 + 2.621267584374269e-06 + 2.560611078236376e-06 + 2.501058994098514e-06 + 2.442596843868032e-06 + 2.385210240033010e-06 + 2.328884899906223e-06 + 2.273606655048426e-06 + 2.219361438179688e-06 + 2.166135288678882e-06 + 2.113914360085187e-06 + 2.062684907096663e-06 + 2.012433292648363e-06 + 1.963145994708785e-06 + 1.914809593193956e-06 + 1.867410777738679e-06 + 1.820936351687259e-06 + 1.775373220609589e-06 + 1.730708401732302e-06 + 1.686929024947410e-06 + 1.644022323067757e-06 + 1.601975642837270e-06 + 1.560776441656341e-06 + 1.520412279298016e-06 + 1.480870830315665e-06 + 1.442139880698395e-06 + 1.404207319625165e-06 + 1.367061149777226e-06 + 1.330689483155573e-06 + 1.295080535963615e-06 + 1.260222640873472e-06 + 1.226104237141460e-06 + 1.192713867093549e-06 + 1.160040189500492e-06 + 1.128071969424555e-06 + 1.096798076008267e-06 + 1.066207493417804e-06 + 1.036289310659725e-06 + 1.007032721493895e-06 + 9.784270338592895e-07 + 9.504616588874799e-07 + 9.231261128777845e-07 + 8.964100256766087e-07 + 8.703031286825232e-07 + 8.447952585150839e-07 + 8.198763641874936e-07 + 7.955364948286083e-07 + 7.717658049346632e-07 + 7.485545598914059e-07 + 7.258931238786546e-07 + 7.037719665410901e-07 + 6.821816664988581e-07 + 6.611128998791421e-07 + 6.405564483055948e-07 + 6.205032003278225e-07 + 6.009441408121614e-07 + 5.818703600152187e-07 + 5.632730528626383e-07 + 5.451435094097432e-07 + 5.274731247677268e-07 + 5.102533965000488e-07 + 4.934759162480692e-07 + 4.771323800991179e-07 + 4.612145841662162e-07 + 4.457144176881476e-07 + 4.306238737382497e-07 + 4.159350428538716e-07 + 4.016401077051372e-07 + 3.877313539402903e-07 + 3.742011622647174e-07 + 3.610420046499709e-07 + 3.482464547968944e-07 + 3.358071790150475e-07 + 3.237169340794661e-07 + 3.119685770955318e-07 + 3.005550554375413e-07 + 2.894694062090586e-07 + 2.787047650882795e-07 + 2.682543557659438e-07 + 2.581114909968296e-07 + 2.482695801165890e-07 + 2.387221182727572e-07 + 2.294626890008751e-07 + 2.204849703818711e-07 + 2.117827241548630e-07 + 2.033497996067267e-07 + 1.951801384624956e-07 + 1.872677641420447e-07 + 1.796067867093452e-07 + 1.721914062527642e-07 + 1.650159027896018e-07 + 1.580746421942365e-07 + 1.513620776690125e-07 + 1.448727406655565e-07 + 1.386012477684331e-07 + 1.325423000867771e-07 + 1.266906752868051e-07 + 1.210412352836648e-07 + 1.155889239131470e-07 + 1.103287600176973e-07 + 1.052558455547364e-07 + 1.003653617115032e-07 + 9.565256321109978e-08 + 9.111278671292873e-08 + 8.674144556415159e-08 + 8.253402527034383e-08 + 7.848609177536523e-08 + 7.459328520671134e-08 + 7.085131661573615e-08 + 6.725597593242166e-08 + 6.380312478868793e-08 + 6.048869454868003e-08 + 5.730869376312298e-08 + 5.425920030057914e-08 + 5.133636064443935e-08 + 4.853639660958214e-08 + 4.585559704969457e-08 + 4.329031836991616e-08 + 4.083699031045398e-08 + 3.849210751108346e-08 + 3.625223113812888e-08 + 3.411399355038575e-08 + 3.207408998824199e-08 + 3.012928121511996e-08 + 2.827639696078167e-08 + 2.651232793166280e-08 + 2.483402934338396e-08 + 2.323852311474514e-08 + 2.172289034680298e-08 + 2.028427559044146e-08 + 1.891988778877689e-08 + 1.762699339728036e-08 + 1.640292125402531e-08 + 1.524506224991720e-08 + 1.415086320949184e-08 + 1.311783222446413e-08 + 1.214353712508316e-08 + 1.122560019257377e-08 + 1.036170378687137e-08 + 9.549587722603005e-09 + 8.787044877843281e-09 + 8.071926961605364e-09 + 7.402140903161946e-09 + 6.775645388472587e-09 + 6.190456604129221e-09 + 5.644643792323680e-09 + 5.136326726146161e-09 + 4.663681262833891e-09 + 4.224934232596794e-09 + 3.818361845837701e-09 + 3.442294891302550e-09 + 3.095113141246544e-09 + 2.775244665814773e-09 + 2.481170514027403e-09 + 2.211418834557044e-09 + 1.964565051498559e-09 + 1.739235878927056e-09 + 1.534103359980556e-09 + 1.347885831336700e-09 + 1.179351163642234e-09 + 1.027310894648576e-09 + 8.906218977827446e-10 + 7.681887799049897e-10 + 6.589582548472836e-10 + 5.619214238374888e-10 + 4.761152985830568e-10 + 4.006175343477256e-10 + 3.345492227248809e-10 + 2.770755362128679e-10 + 2.274009179016229e-10 + 1.847722840116674e-10 + 1.484788129161787e-10 + 1.178476648704315e-10 + 9.224748788184573e-11 + 7.108739902161543e-11 + 5.381328706422649e-11 + 3.991151299277479e-11 + 2.890715266694438e-11 + 2.036091648096713e-11 + 1.387293445657948e-11 + 9.080348320515963e-12 + 5.654863833225597e-12 + 3.306507674167889e-12 + 1.780689492983021e-12 + 8.563646514161430e-13 + 3.496037276049943e-13 + 1.104943293034196e-13 + 2.161027650041889e-14 + 5.028049336448720e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 7.485272593961791e+04 + 1.493519318697679e+05 + 2.234970831294996e+05 + 2.972876533345640e+05 + 3.707231243774131e+05 + 4.438029864272003e+05 + 5.165267379297798e+05 + 5.888938856077072e+05 + 6.609039444602393e+05 + 7.325564377633340e+05 + 8.038508970696502e+05 + 8.747868622085482e+05 + 9.453638812860892e+05 + 1.015581510685036e+06 + 1.085439315064852e+06 + 1.154936867361703e+06 + 1.224073748788454e+06 + 1.292849548834672e+06 + 1.361263865266626e+06 + 1.429316304127287e+06 + 1.497006479736322e+06 + 1.564334014690106e+06 + 1.631298539861710e+06 + 1.697899694400910e+06 + 1.764137125734180e+06 + 1.830010489564698e+06 + 1.895519449872339e+06 + 1.960663678913685e+06 + 2.025442857222013e+06 + 2.089856673607306e+06 + 2.153904825156247e+06 + 2.217587017232217e+06 + 2.280902963475303e+06 + 2.343852385802290e+06 + 2.406435014406665e+06 + 2.468650587758616e+06 + 2.530498852605031e+06 + 2.591979563969503e+06 + 2.653092485152322e+06 + 2.713837387730482e+06 + 2.774214051557675e+06 + 2.834222264764299e+06 + 2.893861823757447e+06 + 2.953132533220919e+06 + 3.012034206115212e+06 + 3.070566663677527e+06 + 3.128729735421764e+06 + 3.186523259138526e+06 + 3.243947080895115e+06 + 3.301001055035538e+06 + 3.357685044180497e+06 + 3.413998919227402e+06 + 3.469942559350358e+06 + 3.525515852000176e+06 + 3.580718692904367e+06 + 3.635550986067140e+06 + 3.690012643769410e+06 + 3.744103586568788e+06 + 3.797823743299592e+06 + 3.851173051072835e+06 + 3.904151455276238e+06 + 3.956758909574216e+06 + 4.008995375907890e+06 + 4.060860824495079e+06 + 4.112355233830309e+06 + 4.163478590684799e+06 + 4.214230890106475e+06 + 4.264612135419963e+06 + 4.314622338226588e+06 + 4.364261518404378e+06 + 4.413529704108060e+06 + 4.462426931769069e+06 + 4.510953246095533e+06 + 4.559108700072286e+06 + 4.606893354960858e+06 + 4.654307280299488e+06 + 4.701350553903108e+06 + 4.748023261863358e+06 + 4.794325498548575e+06 + 4.840257366603798e+06 + 4.885818976950768e+06 + 4.931010448787929e+06 + 4.975831909590418e+06 + 5.020283495110085e+06 + 5.064365349375471e+06 + 5.108077624691823e+06 + 5.151420481641092e+06 + 5.194394089081923e+06 + 5.236998624149668e+06 + 5.279234272256376e+06 + 5.321101227090800e+06 + 5.362599690618395e+06 + 5.403729873081312e+06 + 5.444491992998408e+06 + 5.484886277165242e+06 + 5.524912960654069e+06 + 5.564572286813851e+06 + 5.603864507270245e+06 + 5.642789881925615e+06 + 5.681348678959022e+06 + 5.719541174826232e+06 + 5.757367654259708e+06 + 5.794828410268617e+06 + 5.831923744138825e+06 + 5.868653965432902e+06 + 5.905019391990117e+06 + 5.941020349926441e+06 + 5.976657173634544e+06 + 6.011930205783804e+06 + 6.046839797320290e+06 + 6.081386307466779e+06 + 6.115570103722748e+06 + 6.149391561864376e+06 + 6.182851065944540e+06 + 6.215949008292822e+06 + 6.248685789515501e+06 + 6.281061818495561e+06 + 6.313077512392686e+06 + 6.344733296643257e+06 + 6.376029604960365e+06 + 6.406966879333793e+06 + 6.437545570030033e+06 + 6.467766135592271e+06 + 6.497629042840399e+06 + 6.527134766871008e+06 + 6.556283791057392e+06 + 6.585076607049545e+06 + 6.613513714774162e+06 + 6.641595622434638e+06 + 6.669322846511072e+06 + 6.696695911760264e+06 + 6.723715351215711e+06 + 6.750381706187615e+06 + 6.776695526262878e+06 + 6.802657369305105e+06 + 6.828267801454599e+06 + 6.853527397128366e+06 + 6.878436739020114e+06 + 6.902996418100249e+06 + 6.927207033615881e+06 + 6.951069193090819e+06 + 6.974583512325577e+06 + 6.997750615397365e+06 + 7.020571134660101e+06 + 7.043045710744397e+06 + 7.065174992557568e+06 + 7.086959637283633e+06 + 7.108400310383311e+06 + 7.129497685594021e+06 + 7.150252444929884e+06 + 7.170665278681723e+06 + 7.190736885417059e+06 + 7.210467971980117e+06 + 7.229859253491821e+06 + 7.248911453349800e+06 + 7.267625303228384e+06 + 7.286001543078595e+06 + 7.304040921128170e+06 + 7.321744193881537e+06 + 7.339112126119829e+06 + 7.356145490900878e+06 + 7.372845069559221e+06 + 7.389211651706094e+06 + 7.405246035229432e+06 + 7.420949026293878e+06 + 7.436321439340766e+06 + 7.451364097088138e+06 + 7.466077830530737e+06 + 7.480463478940005e+06 + 7.494521889864086e+06 + 7.508253919127826e+06 + 7.521660430832772e+06 + 7.534742297357169e+06 + 7.547500399355968e+06 + 7.559935625760819e+06 + 7.572048873780073e+06 + 7.583841048898782e+06 + 7.595313064878696e+06 + 7.606465843758276e+06 + 7.617300315852673e+06 + 7.627817419753745e+06 + 7.638018102330050e+06 + 7.647903318726848e+06 + 7.657474032366097e+06 + 7.666731214946462e+06 + 7.675675846443305e+06 + 7.684308915108687e+06 + 7.692631417471377e+06 + 7.700644358336839e+06 + 7.708348750787240e+06 + 7.715745616181449e+06 + 7.722835984155037e+06 + 7.729620892620270e+06 + 7.736101387766127e+06 + 7.742278524058277e+06 + 7.748153364239094e+06 + 7.753726979327655e+06 + 7.759000448619737e+06 + 7.763974859687817e+06 + 7.768651308381077e+06 + 7.773030898825390e+06 + 7.777114743423343e+06 + 7.780903962854218e+06 + 7.784399686073998e+06 + 7.787603050315368e+06 + 7.790515201087713e+06 + 7.793137292177119e+06 + 7.795470485646380e+06 + 7.797515951834979e+06 + 7.799274869359110e+06 + 7.800748425111664e+06 + 7.801937814262233e+06 + 7.802844240257111e+06 + 7.803468914819297e+06 + 7.803813057948484e+06 + 7.803877897921070e+06 + 7.803664671290156e+06 + 7.803174622885538e+06 + 7.802409005813722e+06 + 7.801369081457905e+06 + 7.800056119477995e+06 + 7.798471397810592e+06 + 7.796616202669007e+06 + 7.794491828543244e+06 + 7.792099578200010e+06 + 7.789440762682715e+06 + 7.786516701311473e+06 + 7.783328721683091e+06 + 7.779878159671083e+06 + 7.776166359425665e+06 + 7.772194673373749e+06 + 7.767964462218953e+06 + 7.763477094941595e+06 + 7.758733948798692e+06 + 7.753736409323964e+06 + 7.748485870327833e+06 + 7.742983733897421e+06 + 7.737231410396548e+06 + 7.731230318465743e+06 + 7.724981885022229e+06 + 7.718487545259933e+06 + 7.711748742649483e+06 + 7.704766928938209e+06 + 7.697543564150140e+06 + 7.690080116586007e+06 + 7.682378062823243e+06 + 7.674438887715982e+06 + 7.666264084395060e+06 + 7.657855154268012e+06 + 7.649213607019073e+06 + 7.640340960609185e+06 + 7.631238741275986e+06 + 7.621908483533815e+06 + 7.612351730173716e+06 + 7.602570032263434e+06 + 7.592564949147409e+06 + 7.582338048446788e+06 + 7.571890906059416e+06 + 7.561225106159844e+06 + 7.550342241199316e+06 + 7.539243911905785e+06 + 7.527931727283904e+06 + 7.516407304615024e+06 + 7.504672269457198e+06 + 7.492728241314434e+06 + 7.480576638153253e+06 + 7.468218723741564e+06 + 7.455655760425863e+06 + 7.442889013018662e+06 + 7.429919748798485e+06 + 7.416749237509867e+06 + 7.403378751363355e+06 + 7.389809565035504e+06 + 7.376042955668893e+06 + 7.362080202872100e+06 + 7.347922588719724e+06 + 7.333571397752370e+06 + 7.319027916976659e+06 + 7.304293435865226e+06 + 7.289369246356713e+06 + 7.274256642855777e+06 + 7.258956922233087e+06 + 7.243471383825325e+06 + 7.227801329435183e+06 + 7.211948063331366e+06 + 7.195912892248592e+06 + 7.179697125387593e+06 + 7.163302074415106e+06 + 7.146729053463890e+06 + 7.129979379132709e+06 + 7.113054370486340e+06 + 7.095955349055575e+06 + 7.078683638837219e+06 + 7.061240566294081e+06 + 7.043627460354994e+06 + 7.025845652414794e+06 + 7.007896476334333e+06 + 6.989781268440476e+06 + 6.971501367526096e+06 + 6.953058114850082e+06 + 6.934452854137335e+06 + 6.915686931578767e+06 + 6.896761695831302e+06 + 6.877678498017876e+06 + 6.858438691727439e+06 + 6.839043633014950e+06 + 6.819494680401385e+06 + 6.799793194873727e+06 + 6.779940539884974e+06 + 6.759938081354136e+06 + 6.739787187666233e+06 + 6.719489229672301e+06 + 6.699045580689385e+06 + 6.678457616500544e+06 + 6.657726715354848e+06 + 6.636854257967380e+06 + 6.615841627519235e+06 + 6.594690209657516e+06 + 6.573401392495350e+06 + 6.551976566611862e+06 + 6.530417125052197e+06 + 6.508724463327511e+06 + 6.486899979414972e+06 + 6.464945073757762e+06 + 6.442861149265066e+06 + 6.420649611312096e+06 + 6.398311867740063e+06 + 6.375849328856199e+06 + 6.353263407433745e+06 + 6.330555518711952e+06 + 6.307727080396090e+06 + 6.284779512657427e+06 + 6.261714238133261e+06 + 6.238532681926889e+06 + 6.215236271607627e+06 + 6.191826437210800e+06 + 6.168304611237747e+06 + 6.144672228655818e+06 + 6.120930726898375e+06 + 6.097081545864792e+06 + 6.073126127920459e+06 + 6.049065917896771e+06 + 6.024902363091142e+06 + 6.000636913266994e+06 + 5.976271020653763e+06 + 5.951806139946896e+06 + 5.927243728307854e+06 + 5.902585245364108e+06 + 5.877832153209144e+06 + 5.852985916402456e+06 + 5.828048001969552e+06 + 5.803019879401957e+06 + 5.777903020657199e+06 + 5.752698900158828e+06 + 5.727408994796395e+06 + 5.702034783925475e+06 + 5.676577749367647e+06 + 5.651039375410506e+06 + 5.625421148807654e+06 + 5.599724558778713e+06 + 5.573951097009313e+06 + 5.548102257651095e+06 + 5.522179537321717e+06 + 5.496184435104840e+06 + 5.470118452550147e+06 + 5.443983093673326e+06 + 5.417779864956085e+06 + 5.391510275346133e+06 + 5.365175836257203e+06 + 5.338778061569033e+06 + 5.312318467627374e+06 + 5.285798573243992e+06 + 5.259219899696662e+06 + 5.232583970729172e+06 + 5.205892312551324e+06 + 5.179146453838928e+06 + 5.152347925733812e+06 + 5.125498261843814e+06 + 5.098598998242779e+06 + 5.071651673470572e+06 + 5.044657828533064e+06 + 5.017619006902143e+06 + 4.990536754515706e+06 + 4.963412619777663e+06 + 4.936248153557934e+06 + 4.909044909192459e+06 + 4.881804442483181e+06 + 4.854528311698059e+06 + 4.827218077571064e+06 + 4.799875303302180e+06 + 4.772501554557402e+06 + 4.745098399468737e+06 + 4.717667408634203e+06 + 4.690210155117837e+06 + 4.662728214449679e+06 + 4.635223164625784e+06 + 4.607696586108224e+06 + 4.580150061825077e+06 + 4.552585177170437e+06 + 4.525003520004408e+06 + 4.497406680653105e+06 + 4.469796251908661e+06 + 4.442173829029216e+06 + 4.414541009738924e+06 + 4.386899394227949e+06 + 4.359250585152469e+06 + 4.331596187634676e+06 + 4.303937809262771e+06 + 4.276277060090966e+06 + 4.248615552639492e+06 + 4.220954901894585e+06 + 4.193296725308497e+06 + 4.165642642799490e+06 + 4.137994276751838e+06 + 4.110353252015833e+06 + 4.082721195907769e+06 + 4.055099738209962e+06 + 4.027490511170732e+06 + 3.999895149504419e+06 + 3.972315290391369e+06 + 3.944752573477943e+06 + 3.917208640876513e+06 + 3.889685137165464e+06 + 3.862183709389194e+06 + 3.834706007058111e+06 + 3.807253682148634e+06 + 3.779828389103201e+06 + 3.752431784830255e+06 + 3.725065528704253e+06 + 3.697731282565667e+06 + 3.670430710720977e+06 + 3.643165479942679e+06 + 3.615937259469279e+06 + 3.588747721005293e+06 + 3.561598538721256e+06 + 3.534491389253709e+06 + 3.507427951705208e+06 + 3.480409907644318e+06 + 3.453438941105620e+06 + 3.426516738589706e+06 + 3.399644989063177e+06 + 3.372825383958653e+06 + 3.346070405300663e+06 + 3.319465764034668e+06 + 3.293075510459727e+06 + 3.266878224028187e+06 + 3.240869303162930e+06 + 3.215052515525467e+06 + 3.189425288821125e+06 + 3.163986116962672e+06 + 3.138734196986282e+06 + 3.113668261011591e+06 + 3.088787111422079e+06 + 3.064089610843659e+06 + 3.039574592322599e+06 + 3.015240898358055e+06 + 2.991087379108502e+06 + 2.967112887579310e+06 + 2.943316282301805e+06 + 2.919696425519270e+06 + 2.896252185185970e+06 + 2.872982434032476e+06 + 2.849886048305633e+06 + 2.826961910405915e+06 + 2.804208907130155e+06 + 2.781625929123051e+06 + 2.759211873644148e+06 + 2.736965641930875e+06 + 2.714886139213983e+06 + 2.692972277509980e+06 + 2.671222972611625e+06 + 2.649637144535781e+06 + 2.628213719738566e+06 + 2.606951628696007e+06 + 2.585849806893141e+06 + 2.564907195391811e+06 + 2.544122739173453e+06 + 2.523495389008342e+06 + 2.503024101022326e+06 + 2.482707834844927e+06 + 2.462545556054412e+06 + 2.442536236120740e+06 + 2.422678849863131e+06 + 2.402972377820649e+06 + 2.383415806334849e+06 + 2.364008125120872e+06 + 2.344748329835404e+06 + 2.325635421794777e+06 + 2.306668405813749e+06 + 2.287846292982958e+06 + 2.269168099757709e+06 + 2.250632846050586e+06 + 2.232239558087812e+06 + 2.213987266957964e+06 + 2.195875007435864e+06 + 2.177901821473463e+06 + 2.160066755143500e+06 + 2.142368857948063e+06 + 2.124807187017495e+06 + 2.107380803567688e+06 + 2.090088772295509e+06 + 2.072930165358991e+06 + 2.055904058912681e+06 + 2.039009532618940e+06 + 2.022245673041180e+06 + 2.005611571515091e+06 + 1.989106323649552e+06 + 1.972729030298793e+06 + 1.956478797095825e+06 + 1.940354734917566e+06 + 1.924355960016194e+06 + 1.908481592593613e+06 + 1.892730757829583e+06 + 1.877102587255698e+06 + 1.861596215902473e+06 + 1.846210783186639e+06 + 1.830945435012332e+06 + 1.815799321323061e+06 + 1.800771597138300e+06 + 1.785861422681660e+06 + 1.771067961851037e+06 + 1.756390384114008e+06 + 1.741827864373811e+06 + 1.727379581118251e+06 + 1.713044718232857e+06 + 1.698822464839031e+06 + 1.684712013805151e+06 + 1.670712563808684e+06 + 1.656823318006428e+06 + 1.643043483055245e+06 + 1.629372271790869e+06 + 1.615808901794204e+06 + 1.602352594044968e+06 + 1.589002574975609e+06 + 1.575758076322615e+06 + 1.562618333634041e+06 + 1.549582587186907e+06 + 1.536650081999105e+06 + 1.523820067124634e+06 + 1.511091797064626e+06 + 1.498464530780005e+06 + 1.485937531189585e+06 + 1.473510066471004e+06 + 1.461181408848471e+06 + 1.448950834625962e+06 + 1.436817625926470e+06 + 1.424781068397768e+06 + 1.412840451407005e+06 + 1.400995070309470e+06 + 1.389244224245752e+06 + 1.377587216393601e+06 + 1.366023355231714e+06 + 1.354551952598923e+06 + 1.343172324427429e+06 + 1.331883792566280e+06 + 1.320685682335073e+06 + 1.309577322956444e+06 + 1.298558048406515e+06 + 1.287627196362487e+06 + 1.276784109496439e+06 + 1.266028134784103e+06 + 1.255358622320226e+06 + 1.244774926866806e+06 + 1.234276408467881e+06 + 1.223862430240984e+06 + 1.213532358913532e+06 + 1.203285566621101e+06 + 1.193121428991948e+06 + 1.183039325468658e+06 + 1.173038640304339e+06 + 1.163118761212139e+06 + 1.153279079987504e+06 + 1.143518992564451e+06 + 1.133837898317260e+06 + 1.124235201394960e+06 + 1.114710310121780e+06 + 1.105262636013577e+06 + 1.095891594215875e+06 + 1.086596604396163e+06 + 1.077377090233802e+06 + 1.068232479242110e+06 + 1.059162202266971e+06 + 1.050165693700918e+06 + 1.041242393088349e+06 + 1.032391743039430e+06 + 1.023613189178869e+06 + 1.014906181731556e+06 + 1.006270174355871e+06 + 9.977046244036794e+05 + 9.892089935677024e+05 + 9.807827465832273e+05 + 9.724253516436865e+05 + 9.641362810046984e+05 + 9.559150102252770e+05 + 9.477610188719215e+05 + 9.396737899139688e+05 + 9.316528091743080e+05 + 9.236975665277143e+05 + 9.158075561735997e+05 + 9.079822751134991e+05 + 9.002212236533747e+05 + 8.925239057014534e+05 + 8.848898281604102e+05 + 8.773185021612709e+05 + 8.698094424648809e+05 + 8.623621663528095e+05 + 8.549761944053203e+05 + 8.476510510446843e+05 + 8.403862637513808e+05 + 8.331813638606276e+05 + 8.260358860837971e+05 + 8.189493675787508e+05 + 8.119213484350282e+05 + 8.049513730504208e+05 + 7.980389891667470e+05 + 7.911837471192866e+05 + 7.843852003599521e+05 + 7.776429053419405e+05 + 7.709564221446526e+05 + 7.643253140173181e+05 + 7.577491471803443e+05 + 7.512274911598503e+05 + 7.447599180231568e+05 + 7.383460026539576e+05 + 7.319853241781880e+05 + 7.256774641850799e+05 + 7.194220067146936e+05 + 7.132185395309449e+05 + 7.070666529520636e+05 + 7.009659400728574e+05 + 6.949159975085063e+05 + 6.889164244086053e+05 + 6.829668228095188e+05 + 6.770667979456050e+05 + 6.712159574726904e+05 + 6.654139120281750e+05 + 6.596602754201142e+05 + 6.539546638052445e+05 + 6.482966962660485e+05 + 6.426859949531512e+05 + 6.371221843431445e+05 + 6.316048918617199e+05 + 6.261337478197705e+05 + 6.207083848228143e+05 + 6.153284385055641e+05 + 6.099935472682050e+05 + 6.047033517354903e+05 + 5.994574954765684e+05 + 5.942556247644721e+05 + 5.890973881315375e+05 + 5.839824370501742e+05 + 5.789104255366600e+05 + 5.738810098259439e+05 + 5.688938490610282e+05 + 5.639486048510919e+05 + 5.590449410545636e+05 + 5.541825244030216e+05 + 5.493610239467514e+05 + 5.445801109611018e+05 + 5.398394595653637e+05 + 5.351387461239359e+05 + 5.304776492529869e+05 + 5.258558503354813e+05 + 5.212730328842620e+05 + 5.167288826663374e+05 + 5.122230881980868e+05 + 5.077553400369428e+05 + 5.033253309731948e+05 + 4.989327564601310e+05 + 4.945773139811803e+05 + 4.902587033143605e+05 + 4.859766266490913e+05 + 4.817307881770549e+05 + 4.775208945372272e+05 + 4.733466546121029e+05 + 4.692077791818720e+05 + 4.651039814988278e+05 + 4.610349770333872e+05 + 4.570004830895544e+05 + 4.530002193970305e+05 + 4.490339078641191e+05 + 4.451012721716975e+05 + 4.412020383482487e+05 + 4.373359346346440e+05 + 4.335026910461138e+05 + 4.297020398291695e+05 + 4.259337153289251e+05 + 4.221974536699117e+05 + 4.184929932504728e+05 + 4.148200744355357e+05 + 4.111784393468680e+05 + 4.075678324287459e+05 + 4.039879999559653e+05 + 4.004386899065928e+05 + 3.969196525836200e+05 + 3.934306400492930e+05 + 3.899714060581240e+05 + 3.865417066557175e+05 + 3.831412995849459e+05 + 3.797699442729113e+05 + 3.764274023566474e+05 + 3.731134371233769e+05 + 3.698278135622827e+05 + 3.665702987827645e+05 + 3.633406615280775e+05 + 3.601386722825769e+05 + 3.569641034535824e+05 + 3.538167290782596e+05 + 3.506963250581825e+05 + 3.476026690576235e+05 + 3.445355402744773e+05 + 3.414947198014101e+05 + 3.384799905288533e+05 + 3.354911367821696e+05 + 3.325279446663284e+05 + 3.295902021531574e+05 + 3.266776986085196e+05 + 3.237902250531212e+05 + 3.209275743946921e+05 + 3.180895409646722e+05 + 3.152759207164211e+05 + 3.124865112943467e+05 + 3.097211117598721e+05 + 3.069795229448014e+05 + 3.042615472339510e+05 + 3.015669883675390e+05 + 2.988956518738279e+05 + 2.962473447339852e+05 + 2.936218752484120e+05 + 2.910190535228683e+05 + 2.884386911235514e+05 + 2.858806009067059e+05 + 2.833445973150213e+05 + 2.808304963224871e+05 + 2.783381153152796e+05 + 2.758672731341289e+05 + 2.734177900017136e+05 + 2.709894875428715e+05 + 2.685821889451269e+05 + 2.661957187314447e+05 + 2.638299027837526e+05 + 2.614845683836235e+05 + 2.591595441417535e+05 + 2.568546601323142e+05 + 2.545697477628685e+05 + 2.523046396706559e+05 + 2.500591699434964e+05 + 2.478331740644226e+05 + 2.456264886409644e+05 + 2.434389516128850e+05 + 2.412704023657298e+05 + 2.391206814330098e+05 + 2.369896306904384e+05 + 2.348770933197599e+05 + 2.327829136173563e+05 + 2.307069372775990e+05 + 2.286490111745211e+05 + 2.266089832623643e+05 + 2.245867029748616e+05 + 2.225820209237310e+05 + 2.205947887183862e+05 + 2.186248592921233e+05 + 2.166720868039439e+05 + 2.147363264605261e+05 + 2.128174347706827e+05 + 2.109152693889452e+05 + 2.090296889843596e+05 + 2.071605535077064e+05 + 2.053077240108720e+05 + 2.034710625599661e+05 + 2.016504325007521e+05 + 1.998456982030229e+05 + 1.980567250370223e+05 + 1.962833797138016e+05 + 1.945255298870997e+05 + 1.927830441323482e+05 + 1.910557922964590e+05 + 1.893436452442803e+05 + 1.876464748512476e+05 + 1.859641540986015e+05 + 1.842965568967865e+05 + 1.826435581738182e+05 + 1.810050340354470e+05 + 1.793808614993985e+05 + 1.777709185575675e+05 + 1.761750842223128e+05 + 1.745932384546507e+05 + 1.730252623268235e+05 + 1.714710377603550e+05 + 1.699304475698536e+05 + 1.684033757560533e+05 + 1.668897071565261e+05 + 1.653893274220018e+05 + 1.639021233234161e+05 + 1.624279825159149e+05 + 1.609667934564489e+05 + 1.595184456811041e+05 + 1.580828296015031e+05 + 1.566598363968120e+05 + 1.552493582649543e+05 + 1.538512882702573e+05 + 1.524655202573447e+05 + 1.510919491064028e+05 + 1.497304705096718e+05 + 1.483809809029638e+05 + 1.470433777326744e+05 + 1.457175592117312e+05 + 1.444034242942686e+05 + 1.431008729933990e+05 + 1.418098060421684e+05 + 1.405301248671864e+05 + 1.392617319094920e+05 + 1.380045303259556e+05 + 1.367584239714278e+05 + 1.355233176631985e+05 + 1.342991169575939e+05 + 1.330857281367400e+05 + 1.318830583220329e+05 + 1.306910153813551e+05 + 1.295095079605118e+05 + 1.283384454277201e+05 + 1.271777378619642e+05 + 1.260272961737778e+05 + 1.248870320778846e+05 + 1.237568578844075e+05 + 1.226366865814357e+05 + 1.215264320654815e+05 + 1.204260088572700e+05 + 1.193353321256488e+05 + 1.182543179024696e+05 + 1.171828828329888e+05 + 1.161209441971572e+05 + 1.150684200368906e+05 + 1.140252290172446e+05 + 1.129912905290012e+05 + 1.119665246989244e+05 + 1.109508522377596e+05 + 1.099441945145749e+05 + 1.089464735474612e+05 + 1.079576119759672e+05 + 1.069775332658437e+05 + 1.060061613940063e+05 + 1.050434208615313e+05 + 1.040892370245828e+05 + 1.031435357647047e+05 + 1.022062434696232e+05 + 1.012772873208916e+05 + 1.003565950684523e+05 + 9.944409498683986e+04 + 9.853971604124359e+04 + 9.764338777276211e+04 + 9.675504027159151e+04 + 9.587460425195689e+04 + 9.500201099602232e+04 + 9.413719236230559e+04 + 9.328008081668093e+04 + 9.243060935253548e+04 + 9.158871152497102e+04 + 9.075432150057999e+04 + 8.992737394814150e+04 + 8.910780408381460e+04 + 8.829554772812854e+04 + 8.749054118346877e+04 + 8.669272128864085e+04 + 8.590202548133289e+04 + 8.511839166524833e+04 + 8.434175826486869e+04 + 8.357206428147563e+04 + 8.280924917713979e+04 + 8.205325293940101e+04 + 8.130401609766987e+04 + 8.056147962909786e+04 + 7.982558503959214e+04 + 7.909627435336930e+04 + 7.837349003289423e+04 + 7.765717506702039e+04 + 7.694727293156023e+04 + 7.624372753229675e+04 + 7.554648331079309e+04 + 7.485548516457589e+04 + 7.417067840840557e+04 + 7.349200889763620e+04 + 7.281942291879337e+04 + 7.215286716185752e+04 + 7.149228885123666e+04 + 7.083763563584826e+04 + 7.018885556144921e+04 + 6.954589717270633e+04 + 6.890870943981725e+04 + 6.827724174191867e+04 + 6.765144392787226e+04 + 6.703126624692857e+04 + 6.641665935636370e+04 + 6.580757439267423e+04 + 6.520396286738058e+04 + 6.460577668030654e+04 + 6.401296820028803e+04 + 6.342549017134596e+04 + 6.284329573351656e+04 + 6.226633845994343e+04 + 6.169457228450359e+04 + 6.112795154311772e+04 + 6.056643099463883e+04 + 6.000996574136701e+04 + 5.945851127624574e+04 + 5.891202351267684e+04 + 5.837045869755570e+04 + 5.783377345558033e+04 + 5.730192482224794e+04 + 5.677487016169035e+04 + 5.625256720967715e+04 + 5.573497408983271e+04 + 5.522204924870504e+04 + 5.471375150828325e+04 + 5.421004006036229e+04 + 5.371087441354901e+04 + 5.321621444975662e+04 + 5.272602039469258e+04 + 5.224025278120609e+04 + 5.175887251825204e+04 + 5.128184085536604e+04 + 5.080911934597862e+04 + 5.034066989608183e+04 + 4.987645473684455e+04 + 4.941643640415772e+04 + 4.896057778639881e+04 + 4.850884207769758e+04 + 4.806119277190277e+04 + 4.761759372195903e+04 + 4.717800906318111e+04 + 4.674240321587012e+04 + 4.631074096205200e+04 + 4.588298735942246e+04 + 4.545910774537743e+04 + 4.503906779825089e+04 + 4.462283347373459e+04 + 4.421037101686000e+04 + 4.380164697651120e+04 + 4.339662816996042e+04 + 4.299528171729217e+04 + 4.259757504220949e+04 + 4.220347581706527e+04 + 4.181295199605238e+04 + 4.142597183433527e+04 + 4.104250383855765e+04 + 4.066251680332360e+04 + 4.028597979815155e+04 + 3.991286213370509e+04 + 3.954313341370015e+04 + 3.917676350485435e+04 + 3.881372250661203e+04 + 3.845398080843414e+04 + 3.809750905736740e+04 + 3.774427812448402e+04 + 3.739425915595785e+04 + 3.704742356207799e+04 + 3.670374297805164e+04 + 3.636318929176292e+04 + 3.602573463927982e+04 + 3.569135138416072e+04 + 3.536001215672983e+04 + 3.503168981923036e+04 + 3.470635744840465e+04 + 3.438398837321134e+04 + 3.406455615393208e+04 + 3.374803457309094e+04 + 3.343439765983423e+04 + 3.312361965186892e+04 + 3.281567499925836e+04 + 3.251053841177231e+04 + 3.220818480242078e+04 + 3.190858928930939e+04 + 3.161172723179306e+04 + 3.131757418548949e+04 + 3.102610591483113e+04 + 3.073729842710719e+04 + 3.045112791454117e+04 + 3.016757076691534e+04 + 2.988660361584138e+04 + 2.960820327321778e+04 + 2.933234674204399e+04 + 2.905901125674980e+04 + 2.878817423326317e+04 + 2.851981328372868e+04 + 2.825390622682930e+04 + 2.799043106146120e+04 + 2.772936599846356e+04 + 2.747068942978120e+04 + 2.721437991599866e+04 + 2.696041623625263e+04 + 2.670877735469368e+04 + 2.645944239579323e+04 + 2.621239068106394e+04 + 2.596760172331024e+04 + 2.572505519859007e+04 + 2.548473096648493e+04 + 2.524660907253227e+04 + 2.501066972455740e+04 + 2.477689330466365e+04 + 2.454526037995217e+04 + 2.431575168300119e+04 + 2.408834810912627e+04 + 2.386303072521571e+04 + 2.363978076395976e+04 + 2.341857962988761e+04 + 2.319940888531031e+04 + 2.298225025100848e+04 + 2.276708562349589e+04 + 2.255389704384009e+04 + 2.234266670372097e+04 + 2.213337697918792e+04 + 2.192601038403303e+04 + 2.172054957464747e+04 + 2.151697738916041e+04 + 2.131527680276242e+04 + 2.111543093252480e+04 + 2.091742306098243e+04 + 2.072123660422193e+04 + 2.052685512482519e+04 + 2.033426234716574e+04 + 2.014344212098682e+04 + 1.995437843426629e+04 + 1.976705544479930e+04 + 1.958145743480243e+04 + 1.939756881213320e+04 + 1.921537413684756e+04 + 1.903485810052154e+04 + 1.885600554387774e+04 + 1.867880143037429e+04 + 1.850323084111479e+04 + 1.832927901452323e+04 + 1.815693131178678e+04 + 1.798617320994377e+04 + 1.781699034075772e+04 + 1.764936845332217e+04 + 1.748329340510924e+04 + 1.731875119617678e+04 + 1.715572795110660e+04 + 1.699420990919751e+04 + 1.683418344358223e+04 + 1.667563503873475e+04 + 1.651855128954979e+04 + 1.636291893365341e+04 + 1.620872481606836e+04 + 1.605595588699932e+04 + 1.590459923143625e+04 + 1.575464203906202e+04 + 1.560607160533683e+04 + 1.545887535681969e+04 + 1.531304082443131e+04 + 1.516855564487381e+04 + 1.502540756956110e+04 + 1.488358445432479e+04 + 1.474307426938193e+04 + 1.460386509288249e+04 + 1.446594509814283e+04 + 1.432930256776952e+04 + 1.419392589719183e+04 + 1.405980357729324e+04 + 1.392692420658459e+04 + 1.379527648729671e+04 + 1.366484921045415e+04 + 1.353563127160237e+04 + 1.340761167272577e+04 + 1.328077950662285e+04 + 1.315512397004589e+04 + 1.303063434970357e+04 + 1.290730001970431e+04 + 1.278511047006237e+04 + 1.266405528001385e+04 + 1.254412410683634e+04 + 1.242530670538782e+04 + 1.230759293022181e+04 + 1.219097272173875e+04 + 1.207543611008671e+04 + 1.196097321598039e+04 + 1.184757424417080e+04 + 1.173522949287449e+04 + 1.162392934478714e+04 + 1.151366426384512e+04 + 1.140442480834694e+04 + 1.129620161634352e+04 + 1.118898540470730e+04 + 1.108276698378667e+04 + 1.097753724013271e+04 + 1.087328713748510e+04 + 1.077000773143687e+04 + 1.066769015148828e+04 + 1.056632560317495e+04 + 1.046590537899618e+04 + 1.036642084361778e+04 + 1.026786343864257e+04 + 1.017022468912003e+04 + 1.007349618928313e+04 + 9.977669609110566e+03 + 9.882736699245763e+03 + 9.788689277747368e+03 + 9.695519238085319e+03 + 9.603218551128393e+03 + 9.511779252802526e+03 + 9.421193453258842e+03 + 9.331453338088948e+03 + 9.242551155902798e+03 + 9.154479227014926e+03 + 9.067229945268125e+03 + 8.980795767109534e+03 + 8.895169220035050e+03 + 8.810342900070031e+03 + 8.726309463870590e+03 + 8.643061639313548e+03 + 8.560592220958239e+03 + 8.478894062727115e+03 + 8.397960086705119e+03 + 8.317783279679375e+03 + 8.238356687487571e+03 + 8.159673421912185e+03 + 8.081726656780256e+03 + 8.004509624589081e+03 + 7.928015622553179e+03 + 7.852238006535134e+03 + 7.777170190090504e+03 + 7.702805651284038e+03 + 7.629137923269694e+03 + 7.556160595291118e+03 + 7.483867321684783e+03 + 7.412251809739373e+03 + 7.341307820993124e+03 + 7.271029178292266e+03 + 7.201409756944273e+03 + 7.132443488123264e+03 + 7.064124361053455e+03 + 6.996446414793790e+03 + 6.929403743407001e+03 + 6.862990497342477e+03 + 6.797200875139910e+03 + 6.732029129721631e+03 + 6.667469570161823e+03 + 6.603516551523545e+03 + 6.540164480186692e+03 + 6.477407817185619e+03 + 6.415241069687017e+03 + 6.353658796883785e+03 + 6.292655608307650e+03 + 6.232226157518487e+03 + 6.172365149982773e+03 + 6.113067340658933e+03 + 6.054327527853383e+03 + 5.996140560115221e+03 + 5.938501333076975e+03 + 5.881404784939355e+03 + 5.824845903828315e+03 + 5.768819722461626e+03 + 5.713321315085574e+03 + 5.658345805472132e+03 + 5.603888359764917e+03 + 5.549944184846402e+03 + 5.496508537213697e+03 + 5.443576713947663e+03 + 5.391144051368102e+03 + 5.339205932358427e+03 + 5.287757780134069e+03 + 5.236795058291703e+03 + 5.186313275265001e+03 + 5.136307977685731e+03 + 5.086774751617681e+03 + 5.037709226449485e+03 + 4.989107068721900e+03 + 4.940963984504954e+03 + 4.893275721702213e+03 + 4.846038063285039e+03 + 4.799246830729600e+03 + 4.752897888312231e+03 + 4.706987133608333e+03 + 4.661510499922751e+03 + 4.616463963202395e+03 + 4.571843532909213e+03 + 4.527645253893021e+03 + 4.483865209302220e+03 + 4.440499515324517e+03 + 4.397544325863069e+03 + 4.354995830474305e+03 + 4.312850249817291e+03 + 4.271103841242844e+03 + 4.229752898292512e+03 + 4.188793745275323e+03 + 4.148222740634546e+03 + 4.108036277499050e+03 + 4.068230779797937e+03 + 4.028802705831530e+03 + 3.989748546349355e+03 + 3.951064821861195e+03 + 3.912748086813885e+03 + 3.874794926585441e+03 + 3.837201956255947e+03 + 3.799965825835211e+03 + 3.763083213042953e+03 + 3.726550823283946e+03 + 3.690365398229224e+03 + 3.654523706502605e+03 + 3.619022543185401e+03 + 3.583858737044133e+03 + 3.549029144619817e+03 + 3.514530650270483e+03 + 3.480360168271582e+03 + 3.446514639490202e+03 + 3.412991033253400e+03 + 3.379786348393921e+03 + 3.346897609451590e+03 + 3.314321868815865e+03 + 3.282056205761040e+03 + 3.250097724763853e+03 + 3.218443559530467e+03 + 3.187090870156345e+03 + 3.156036839918450e+03 + 3.125278679259401e+03 + 3.094813626126841e+03 + 3.064638941053712e+03 + 3.034751909739014e+03 + 3.005149845581890e+03 + 2.975830084543172e+03 + 2.946789986568892e+03 + 2.918026936797055e+03 + 2.889538343339952e+03 + 2.861321641252218e+03 + 2.833374286700636e+03 + 2.805693756659566e+03 + 2.778277556469224e+03 + 2.751123212016022e+03 + 2.724228269242043e+03 + 2.697590301914011e+03 + 2.671206904109025e+03 + 2.645075688971241e+03 + 2.619194294405700e+03 + 2.593560380141823e+03 + 2.568171626715687e+03 + 2.543025737542386e+03 + 2.518120435211838e+03 + 2.493453462030127e+03 + 2.469022585172818e+03 + 2.444825590018873e+03 + 2.420860280374604e+03 + 2.397124484732366e+03 + 2.373616049394018e+03 + 2.350332838436762e+03 + 2.327272738609171e+03 + 2.304433655218562e+03 + 2.281813512846715e+03 + 2.259410255601743e+03 + 2.237221844685107e+03 + 2.215246260811306e+03 + 2.193481506123082e+03 + 2.171925598942706e+03 + 2.150576574458654e+03 + 2.129432488764117e+03 + 2.108491414442484e+03 + 2.087751441300839e+03 + 2.067210678851041e+03 + 2.046867252353801e+03 + 2.026719303565292e+03 + 2.006764993817073e+03 + 1.987002500493615e+03 + 1.967430017215378e+03 + 1.948045754608514e+03 + 1.928847939062915e+03 + 1.909834815497017e+03 + 1.891004644375446e+03 + 1.872355700452609e+03 + 1.853886275802303e+03 + 1.835594678424827e+03 + 1.817479231062563e+03 + 1.799538272810955e+03 + 1.781770158220284e+03 + 1.764173256646331e+03 + 1.746745953278825e+03 + 1.729486647489427e+03 + 1.712393752933919e+03 + 1.695465699568615e+03 + 1.678700930817119e+03 + 1.662097903850073e+03 + 1.645655091966725e+03 + 1.629370981458450e+03 + 1.613244072202941e+03 + 1.597272880432907e+03 + 1.581455933682248e+03 + 1.565791771294578e+03 + 1.550278951289465e+03 + 1.534916043199639e+03 + 1.519701626827566e+03 + 1.504634298568118e+03 + 1.489712666891078e+03 + 1.474935351996483e+03 + 1.460300988758884e+03 + 1.445808223853118e+03 + 1.431455716350942e+03 + 1.417242138357507e+03 + 1.403166173386480e+03 + 1.389226518010158e+03 + 1.375421881007569e+03 + 1.361750982089843e+03 + 1.348212553926219e+03 + 1.334805341072190e+03 + 1.321528098720046e+03 + 1.308379594477261e+03 + 1.295358607457036e+03 + 1.282463927300085e+03 + 1.269694355823267e+03 + 1.257048705895313e+03 + 1.244525800699936e+03 + 1.232124475203576e+03 + 1.219843575042076e+03 + 1.207681956049559e+03 + 1.195638485404256e+03 + 1.183712040621380e+03 + 1.171901509388141e+03 + 1.160205790292893e+03 + 1.148623791762007e+03 + 1.137154432301071e+03 + 1.125796641257775e+03 + 1.114549357263016e+03 + 1.103411528660030e+03 + 1.092382114454342e+03 + 1.081460082700689e+03 + 1.070644411095300e+03 + 1.059934087579793e+03 + 1.049328108720195e+03 + 1.038825480494848e+03 + 1.028425218971371e+03 + 1.018126348582361e+03 + 1.007927902927668e+03 + 9.978289254104482e+02 + 9.878284675679866e+02 + 9.779255898738762e+02 + 9.681193621623704e+02 + 9.584088623012988e+02 + 9.487931771658360e+02 + 9.392714022763922e+02 + 9.298426409505287e+02 + 9.205060057185552e+02 + 9.112606172437117e+02 + 9.021056036681564e+02 + 8.930401022331439e+02 + 8.840632580637879e+02 + 8.751742235821227e+02 + 8.663721600224155e+02 + 8.576562363107178e+02 + 8.490256285516970e+02 + 8.404795212594149e+02 + 8.320171064683727e+02 + 8.236375833541338e+02 + 8.153401590664150e+02 + 8.071240480244585e+02 + 7.989884718119321e+02 + 7.909326598382663e+02 + 7.829558483527250e+02 + 7.750572805483002e+02 + 7.672362073200991e+02 + 7.594918862313154e+02 + 7.518235817392584e+02 + 7.442305655888715e+02 + 7.367121158939042e+02 + 7.292675176279554e+02 + 7.218960630476328e+02 + 7.145970504767349e+02 + 7.073697847820883e+02 + 7.002135778527235e+02 + 6.931277475695276e+02 + 6.861116184218383e+02 + 6.791645215373005e+02 + 6.722857937677298e+02 + 6.654747784472139e+02 + 6.587308253877042e+02 + 6.520532900189463e+02 + 6.454415341582659e+02 + 6.388949257382737e+02 + 6.324128381494658e+02 + 6.259946511571761e+02 + 6.196397502963263e+02 + 6.133475264197438e+02 + 6.071173768094372e+02 + 6.009487042352257e+02 + 5.948409165626937e+02 + 5.887934278801442e+02 + 5.828056577149104e+02 + 5.768770306335107e+02 + 5.710069770500405e+02 + 5.651949326339243e+02 + 5.594403381224611e+02 + 5.537426401234757e+02 + 5.481012901152631e+02 + 5.425157443662293e+02 + 5.369854648776029e+02 + 5.315099185870243e+02 + 5.260885773011631e+02 + 5.207209179649268e+02 + 5.154064223119497e+02 + 5.101445770921985e+02 + 5.049348740937783e+02 + 4.997768095346806e+02 + 4.946698844046663e+02 + 4.896136047862775e+02 + 4.846074811232588e+02 + 4.796510285618583e+02 + 4.747437670096575e+02 + 4.698852205388910e+02 + 4.650749179071526e+02 + 4.603123926691712e+02 + 4.555971823563725e+02 + 4.509288288727789e+02 + 4.463068788207030e+02 + 4.417308827523721e+02 + 4.372003955530256e+02 + 4.327149765501697e+02 + 4.282741889383891e+02 + 4.238776002586995e+02 + 4.195247821802792e+02 + 4.152153101301976e+02 + 4.109487639564401e+02 + 4.067247273397822e+02 + 4.025427875685178e+02 + 3.984025363858318e+02 + 3.943035692477232e+02 + 3.902454851077117e+02 + 3.862278871965347e+02 + 3.822503823673904e+02 + 3.783125809462488e+02 + 3.744140974100913e+02 + 3.705545496319825e+02 + 3.667335588488600e+02 + 3.629507504654170e+02 + 3.592057531920941e+02 + 3.554981990087823e+02 + 3.518277237997781e+02 + 3.481939667588409e+02 + 3.445965704231110e+02 + 3.410351808614133e+02 + 3.375094474036331e+02 + 3.340190228447264e+02 + 3.305635632260179e+02 + 3.271427276872922e+02 + 3.237561788604219e+02 + 3.204035826343936e+02 + 3.170846077594078e+02 + 3.137989262426811e+02 + 3.105462135925898e+02 + 3.073261480789523e+02 + 3.041384108878384e+02 + 3.009826866110996e+02 + 2.978586626197819e+02 + 2.947660292278245e+02 + 2.917044799774912e+02 + 2.886737110898206e+02 + 2.856734216347172e+02 + 2.827033138205502e+02 + 2.797630925185924e+02 + 2.768524653868921e+02 + 2.739711430162750e+02 + 2.711188386172004e+02 + 2.682952682417776e+02 + 2.655001507075566e+02 + 2.627332073441469e+02 + 2.599941621974095e+02 + 2.572827420191948e+02 + 2.545986760992428e+02 + 2.519416963867954e+02 + 2.493115374004747e+02 + 2.467079361520411e+02 + 2.441306322519956e+02 + 2.415793676749632e+02 + 2.390538868162835e+02 + 2.365539368283623e+02 + 2.340792670618049e+02 + 2.316296291092408e+02 + 2.292047772816256e+02 + 2.268044680583002e+02 + 2.244284601550858e+02 + 2.220765149177526e+02 + 2.197483957886078e+02 + 2.174438683808943e+02 + 2.151627007150871e+02 + 2.129046628991759e+02 + 2.106695273325222e+02 + 2.084570687245048e+02 + 2.062670637405841e+02 + 2.040992912166423e+02 + 2.019535322675416e+02 + 1.998295699356443e+02 + 1.977271893831886e+02 + 1.956461779038128e+02 + 1.935863247355415e+02 + 1.915474213798307e+02 + 1.895292611678483e+02 + 1.875316391958052e+02 + 1.855543528482985e+02 + 1.835972014670904e+02 + 1.816599861324650e+02 + 1.797425099308505e+02 + 1.778445779263947e+02 + 1.759659969484732e+02 + 1.741065756739388e+02 + 1.722661246609050e+02 + 1.704444562587039e+02 + 1.686413847511611e+02 + 1.668567261386198e+02 + 1.650902980928235e+02 + 1.633419201885993e+02 + 1.616114136777071e+02 + 1.598986014805750e+02 + 1.582033083619683e+02 + 1.565253606828442e+02 + 1.548645864376032e+02 + 1.532208154238845e+02 + 1.515938789750561e+02 + 1.499836100268175e+02 + 1.483898432531407e+02 + 1.468124148175615e+02 + 1.452511624739094e+02 + 1.437059256375598e+02 + 1.421765451600804e+02 + 1.406628634671130e+02 + 1.391647245894945e+02 + 1.376819739463268e+02 + 1.362144585029153e+02 + 1.347620267668397e+02 + 1.333245285902542e+02 + 1.319018153476916e+02 + 1.304937399101563e+02 + 1.291001564496927e+02 + 1.277209206089626e+02 + 1.263558894821456e+02 + 1.250049214462411e+02 + 1.236678763269726e+02 + 1.223446153162142e+02 + 1.210350008534558e+02 + 1.197388968258891e+02 + 1.184561684202564e+02 + 1.171866820332312e+02 + 1.159303054814129e+02 + 1.146869078350233e+02 + 1.134563593521917e+02 + 1.122385316718855e+02 + 1.110332976232454e+02 + 1.098405311979204e+02 + 1.086601077608261e+02 + 1.074919038117468e+02 + 1.063357969778381e+02 + 1.051916662270612e+02 + 1.040593916259906e+02 + 1.029388543466298e+02 + 1.018299368341955e+02 + 1.007325226151947e+02 + 9.964649633160360e+01 + 9.857174381861689e+01 + 9.750815195741964e+01 + 9.645560874783912e+01 + 9.541400332430685e+01 + 9.438322582683587e+01 + 9.336316750654088e+01 + 9.235372071959520e+01 + 9.135477878367931e+01 + 9.036623609174318e+01 + 8.938798812110527e+01 + 8.841993128541375e+01 + 8.746196304638978e+01 + 8.651398190997742e+01 + 8.557588728936869e+01 + 8.464757961904559e+01 + 8.372896034435935e+01 + 8.281993180539014e+01 + 8.192039735296085e+01 + 8.103026128111058e+01 + 8.014942874495698e+01 + 7.927780590401203e+01 + 7.841529983858037e+01 + 7.756181847617736e+01 + 7.671727071446733e+01 + 7.588156631674119e+01 + 7.505461587372024e+01 + 7.423633095310755e+01 + 7.342662394299153e+01 + 7.262540803009301e+01 + 7.183259736215271e+01 + 7.104810687905130e+01 + 7.027185230277652e+01 + 6.950375028269488e+01 + 6.874371822566854e+01 + 6.799167430460268e+01 + 6.724753760248480e+01 + 6.651122793902957e+01 + 6.578266588744034e+01 + 6.506177289160765e+01 + 6.434847109859102e+01 + 6.364268339115934e+01 + 6.294433351272004e+01 + 6.225334589309644e+01 + 6.156964567793161e+01 + 6.089315882540817e+01 + 6.022381196253272e+01 + 5.956153243192431e+01 + 5.890624835784802e+01 + 5.825788851805937e+01 + 5.761638239540161e+01 + 5.698166019812880e+01 + 5.635365277455941e+01 + 5.573229169643452e+01 + 5.511750921575248e+01 + 5.450923819422894e+01 + 5.390741220139490e+01 + 5.331196548214332e+01 + 5.272283288224639e+01 + 5.213994992103501e+01 + 5.156325275682114e+01 + 5.099267813956413e+01 + 5.042816349744366e+01 + 4.986964685712531e+01 + 4.931706681520628e+01 + 4.877036264381848e+01 + 4.822947419115650e+01 + 4.769434186145065e+01 + 4.716490671386568e+01 + 4.664111036072763e+01 + 4.612289496053356e+01 + 4.561020331071316e+01 + 4.510297873475514e+01 + 4.460116508782800e+01 + 4.410470685618211e+01 + 4.361354903662819e+01 + 4.312763714409483e+01 + 4.264691728541290e+01 + 4.217133607138089e+01 + 4.170084064118655e+01 + 4.123537869187841e+01 + 4.077489840121474e+01 + 4.031934846724150e+01 + 3.986867813088396e+01 + 3.942283710103097e+01 + 3.898177559914080e+01 + 3.854544435810492e+01 + 3.811379455962712e+01 + 3.768677789368684e+01 + 3.726434656726136e+01 + 3.684645322013298e+01 + 3.643305096011807e+01 + 3.602409338288954e+01 + 3.561953452360934e+01 + 3.521932891649128e+01 + 3.482343153306697e+01 + 3.443179775085747e+01 + 3.404438343901749e+01 + 3.366114490993698e+01 + 3.328203887889210e+01 + 3.290702252020257e+01 + 3.253605343510379e+01 + 3.216908962260722e+01 + 3.180608952699355e+01 + 3.144701200592500e+01 + 3.109181631097627e+01 + 3.074046212448961e+01 + 3.039290952642646e+01 + 3.004911898312090e+01 + 2.970905136572861e+01 + 2.937266792505025e+01 + 2.903993030352619e+01 + 2.871080057194543e+01 + 2.838524113862799e+01 + 2.806321475945346e+01 + 2.774468462701056e+01 + 2.742961427426368e+01 + 2.711796757973106e+01 + 2.680970882898042e+01 + 2.650480264209962e+01 + 2.620321398820359e+01 + 2.590490820737408e+01 + 2.560985096325826e+01 + 2.531800827674159e+01 + 2.502934653543958e+01 + 2.474383242809609e+01 + 2.446143296972707e+01 + 2.418211555345684e+01 + 2.390584787621480e+01 + 2.363259794654911e+01 + 2.336233413255323e+01 + 2.309502509558490e+01 + 2.283063979379989e+01 + 2.256914753657127e+01 + 2.231051792982671e+01 + 2.205472087402378e+01 + 2.180172658443576e+01 + 2.155150556919213e+01 + 2.130402866286656e+01 + 2.105926696778129e+01 + 2.081719185319289e+01 + 2.057777503962135e+01 + 2.034098850331043e+01 + 2.010680447006149e+01 + 1.987519550063876e+01 + 1.964613442528577e+01 + 1.941959432580914e+01 + 1.919554855827313e+01 + 1.897397075515799e+01 + 1.875483482712853e+01 + 1.853811494931854e+01 + 1.832378554313712e+01 + 1.811182128985819e+01 + 1.790219714756028e+01 + 1.769488831219516e+01 + 1.748987022919803e+01 + 1.728711861052799e+01 + 1.708660939866258e+01 + 1.688831878332332e+01 + 1.669222321036695e+01 + 1.649829934690638e+01 + 1.630652410217020e+01 + 1.611687463464447e+01 + 1.592932831698975e+01 + 1.574386275792588e+01 + 1.556045580679505e+01 + 1.537908552081595e+01 + 1.519973018767385e+01 + 1.502236832516821e+01 + 1.484697865494502e+01 + 1.467354012841447e+01 + 1.450203191274907e+01 + 1.433243337158686e+01 + 1.416472409674524e+01 + 1.399888388846149e+01 + 1.383489273805109e+01 + 1.367273085728561e+01 + 1.351237865788487e+01 + 1.335381673920349e+01 + 1.319702591751814e+01 + 1.304198719993403e+01 + 1.288868177614133e+01 + 1.273709104714046e+01 + 1.258719659672914e+01 + 1.243898018736778e+01 + 1.229242378719869e+01 + 1.214750954184370e+01 + 1.200421977308728e+01 + 1.186253699764556e+01 + 1.172244390266849e+01 + 1.158392335040491e+01 + 1.144695839482221e+01 + 1.131153225250660e+01 + 1.117762830926809e+01 + 1.104523013501555e+01 + 1.091432145806843e+01 + 1.078488617566414e+01 + 1.065690836231677e+01 + 1.053037224372639e+01 + 1.040526220941685e+01 + 1.028156282144551e+01 + 1.015925878941852e+01 + 1.003833498402321e+01 + 9.918776439618298e+00 + 9.800568334039683e+00 + 9.683696005431957e+00 + 9.568144946174611e+00 + 9.453900787919052e+00 + 9.340949322860192e+00 + 9.229276489267212e+00 + 9.118868359446189e+00 + 9.009711163642070e+00 + 8.901791273796370e+00 + 8.795095191785947e+00 + 8.689609570648638e+00 + 8.585321201853549e+00 + 8.482217005296002e+00 + 8.380284046581689e+00 + 8.279509523576925e+00 + 8.179880760330461e+00 + 8.081385224417300e+00 + 7.984010508389771e+00 + 7.887744326863491e+00 + 7.792574535206823e+00 + 7.698489109519010e+00 + 7.605476146133772e+00 + 7.513523878187234e+00 + 7.422620653280592e+00 + 7.332754935473541e+00 + 7.243915322674125e+00 + 7.156090524556396e+00 + 7.069269365741123e+00 + 6.983440797017198e+00 + 6.898593877074525e+00 + 6.814717779007339e+00 + 6.731801797516630e+00 + 6.649835331100769e+00 + 6.568807890289103e+00 + 6.488709103685009e+00 + 6.409528699865692e+00 + 6.331256515961359e+00 + 6.253882503643640e+00 + 6.177396712290002e+00 + 6.101789297547966e+00 + 6.027050522250886e+00 + 5.953170745278158e+00 + 5.880140434362498e+00 + 5.807950156612827e+00 + 5.736590570385212e+00 + 5.666052441485230e+00 + 5.596326632559173e+00 + 5.527404095182261e+00 + 5.459275884510260e+00 + 5.391933149962507e+00 + 5.325367127621260e+00 + 5.259569151260657e+00 + 5.194530647433734e+00 + 5.130243129823101e+00 + 5.066698206416531e+00 + 5.003887570881058e+00 + 4.941803001453549e+00 + 4.880436373900456e+00 + 4.819779643419130e+00 + 4.759824844738533e+00 + 4.700564110200850e+00 + 4.641989649988083e+00 + 4.584093751736625e+00 + 4.526868793565781e+00 + 4.470307230074105e+00 + 4.414401594729965e+00 + 4.359144507919768e+00 + 4.304528662004969e+00 + 4.250546825086277e+00 + 4.197191851627622e+00 + 4.144456666159979e+00 + 4.092334266478478e+00 + 4.040817732600400e+00 + 3.989900213340690e+00 + 3.939574930757155e+00 + 3.889835183170760e+00 + 3.840674335613269e+00 + 3.792085827136757e+00 + 3.744063169627271e+00 + 3.696599938809659e+00 + 3.649689781941428e+00 + 3.603326418080199e+00 + 3.557503628382808e+00 + 3.512215261374414e+00 + 3.467455236465362e+00 + 3.423217534816642e+00 + 3.379496201686086e+00 + 3.336285348654454e+00 + 3.293579148649655e+00 + 3.251371841226642e+00 + 3.209657725464606e+00 + 3.168431157939940e+00 + 3.127686563504146e+00 + 3.087418425005168e+00 + 3.047621281181530e+00 + 3.008289735457784e+00 + 2.969418446796439e+00 + 2.931002129285814e+00 + 2.893035560502260e+00 + 2.855513571053400e+00 + 2.818431044951714e+00 + 2.781782927380857e+00 + 2.745564215550934e+00 + 2.709769959926351e+00 + 2.674395268211684e+00 + 2.639435297946605e+00 + 2.604885259637663e+00 + 2.570740420206636e+00 + 2.536996093812299e+00 + 2.503647644969884e+00 + 2.470690493614489e+00 + 2.438120105903952e+00 + 2.405931997235836e+00 + 2.374121735683807e+00 + 2.342684934097179e+00 + 2.311617253784086e+00 + 2.280914406216957e+00 + 2.250572146781167e+00 + 2.220586279273893e+00 + 2.190952653478714e+00 + 2.161667162009881e+00 + 2.132725747880213e+00 + 2.104124396422602e+00 + 2.075859132902099e+00 + 2.047926031580743e+00 + 2.020321209266692e+00 + 1.993040822266800e+00 + 1.966081073072867e+00 + 1.939438205166541e+00 + 1.913108500802827e+00 + 1.887088286918805e+00 + 1.861373929947225e+00 + 1.835961834345823e+00 + 1.810848447621857e+00 + 1.786030255213551e+00 + 1.761503779943143e+00 + 1.737265586321442e+00 + 1.713312275115213e+00 + 1.689640483715834e+00 + 1.666246890168493e+00 + 1.643128207113473e+00 + 1.620281182788458e+00 + 1.597702604935450e+00 + 1.575389294699183e+00 + 1.553338108095691e+00 + 1.531545938928566e+00 + 1.510009713407906e+00 + 1.488726392261371e+00 + 1.467692971937850e+00 + 1.446906480207705e+00 + 1.426363979153670e+00 + 1.406062564959602e+00 + 1.385999363940103e+00 + 1.366171536058216e+00 + 1.346576274130787e+00 + 1.327210800124654e+00 + 1.308072368828510e+00 + 1.289158266486426e+00 + 1.270465807665891e+00 + 1.251992339187792e+00 + 1.233735237889272e+00 + 1.215691907984316e+00 + 1.197859785096899e+00 + 1.180236333919823e+00 + 1.162819045897185e+00 + 1.145605442741095e+00 + 1.128593073973588e+00 + 1.111779515284567e+00 + 1.095162371880828e+00 + 1.078739275475473e+00 + 1.062507883334588e+00 + 1.046465881646835e+00 + 1.030610981874106e+00 + 1.014940920295882e+00 + 9.994534611152829e-01 + 9.841463930086627e-01 + 9.690175291593270e-01 + 9.540647093618980e-01 + 9.392857969051628e-01 + 9.246786792729085e-01 + 9.102412696338000e-01 + 8.959715035501604e-01 + 8.818673402027871e-01 + 8.679267639726700e-01 + 8.541477806828601e-01 + 8.405284189410931e-01 + 8.270667316623297e-01 + 8.137607925445277e-01 + 8.006086976874616e-01 + 7.876085666023992e-01 + 7.747585387876328e-01 + 7.620567754307064e-01 + 7.495014602973783e-01 + 7.370907966216457e-01 + 7.248230088485250e-01 + 7.126963429559050e-01 + 7.007090638413013e-01 + 6.888594572109231e-01 + 6.771458292779966e-01 + 6.655665045807759e-01 + 6.541198279036498e-01 + 6.428041637825399e-01 + 6.316178947210964e-01 + 6.205594229105623e-01 + 6.096271692194244e-01 + 5.988195719936049e-01 + 5.881350889221284e-01 + 5.775721954595900e-01 + 5.671293841176136e-01 + 5.568051664208875e-01 + 5.465980707194322e-01 + 5.365066418737608e-01 + 5.265294432641988e-01 + 5.166650544231339e-01 + 5.069120710261563e-01 + 4.972691065208522e-01 + 4.877347899800689e-01 + 4.783077664492044e-01 + 4.689866979017357e-01 + 4.597702612073233e-01 + 4.506571489021905e-01 + 4.416460700276524e-01 + 4.327357479310139e-01 + 4.239249212044141e-01 + 4.152123442913231e-01 + 4.065967853823845e-01 + 3.980770275573000e-01 + 3.896518691214699e-01 + 3.813201217302061e-01 + 3.730806117264635e-01 + 3.649321798861945e-01 + 3.568736798624809e-01 + 3.489039797704173e-01 + 3.410219613244947e-01 + 3.332265187013593e-01 + 3.255165605086018e-01 + 3.178910083898543e-01 + 3.103487958586359e-01 + 3.028888701360887e-01 + 2.955101913786422e-01 + 2.882117315106021e-01 + 2.809924755137371e-01 + 2.738514204626846e-01 + 2.667875748867065e-01 + 2.597999604522775e-01 + 2.528876103054370e-01 + 2.460495685714950e-01 + 2.392848919788540e-01 + 2.325926484518769e-01 + 2.259719167857841e-01 + 2.194217877354759e-01 + 2.129413627175208e-01 + 2.065297538274627e-01 + 2.001860848470379e-01 + 1.939094897086202e-01 + 1.876991127051828e-01 + 1.815541094417414e-01 + 1.754736452756007e-01 + 1.694568956974621e-01 + 1.635030470498157e-01 + 1.576112950508609e-01 + 1.517808453564031e-01 + 1.460109140364644e-01 + 1.403007261766342e-01 + 1.346495165784953e-01 + 1.290565300180611e-01 + 1.235210199704221e-01 + 1.180422494287421e-01 + 1.126194909047226e-01 + 1.072520253105725e-01 + 1.019391428882170e-01 + 9.668014295417104e-02 + 9.147433293860986e-02 + 8.632102939670111e-02 + 8.121955756354367e-02 + 7.616925052308399e-02 + 7.116945022739722e-02 + 6.621950693894064e-02 + 6.131877854698166e-02 + 5.646663155698649e-02 + 5.166244039926220e-02 + 4.690558691983024e-02 + 4.219546135291571e-02 + 3.753146148005052e-02 + 3.291299228995687e-02 + 2.833946692296159e-02 + 2.381030573044091e-02 + 1.932493608562982e-02 + 1.488279323951757e-02 + 1.048331933378767e-02 + 6.125963364112487e-03 + 1.810181928441051e-03 + -2.464561780353438e-03 + -6.698797872311066e-03 + -1.089304914227914e-02 + -1.504783206514415e-02 + -1.916365656771068e-02 + -2.324102555134537e-02 + -2.728043585421590e-02 + -3.128237791440187e-02 + -3.524733543518016e-02 + -3.917578628623598e-02 + -4.306820207473552e-02 + -4.692504798332473e-02 + -5.074678357205704e-02 + -5.453386225593208e-02 + -5.828673132987599e-02 + -6.200583267980977e-02 + -6.569160218738558e-02 + -6.934446987831328e-02 + -7.296486055963237e-02 + -7.655319319650564e-02 + -8.010988114185758e-02 + -8.363533270338043e-02 + -8.712995053780122e-02 + -9.059413193193132e-02 + -9.402826926020177e-02 + -9.743274938790861e-02 + -1.008079541064505e-01 + -1.041542604608216e-01 + -1.074720401131623e-01 + -1.107616598682374e-01 + -1.140234819193764e-01 + -1.172578632830942e-01 + -1.204651563472630e-01 + -1.236457089966172e-01 + -1.267998640735528e-01 + -1.299279600346222e-01 + -1.330303309819349e-01 + -1.361073061299021e-01 + -1.391592104828469e-01 + -1.421863647988072e-01 + -1.451890851855495e-01 + -1.481676836992942e-01 + -1.511224682100277e-01 + -1.540537421399553e-01 + -1.569618050599837e-01 + -1.598469524764272e-01 + -1.627094755828420e-01 + -1.655496618778017e-01 + -1.683677949236447e-01 + -1.711641541517163e-01 + -1.739390154343296e-01 + -1.766926508045859e-01 + -1.794253283544359e-01 + -1.821373127460387e-01 + -1.848288648981078e-01 + -1.875002419786971e-01 + -1.901516978443653e-01 + -1.927834826976386e-01 + -1.953958431846420e-01 + -1.979890227559544e-01 + -2.005632612952037e-01 + -2.031187952951354e-01 + -2.056558581586019e-01 + -2.081746798356756e-01 + -2.106754870586183e-01 + -2.131585035595214e-01 + -2.156239496932611e-01 + -2.180720427808593e-01 + -2.205029972492180e-01 + -2.229170242226580e-01 + -2.253143319488933e-01 + -2.276951258807381e-01 + -2.300596082676421e-01 + -2.324079786235529e-01 + -2.347404337552020e-01 + -2.370571673694448e-01 + -2.393583705568364e-01 + -2.416442317867498e-01 + -2.439149365965413e-01 + -2.461706679522762e-01 + -2.484116061949506e-01 + -2.506379289887288e-01 + -2.528498115997045e-01 + -2.550474267213886e-01 + -2.572309443123204e-01 + -2.594005320626763e-01 + -2.615563552809436e-01 + -2.636985766193694e-01 + -2.658273564814242e-01 + -2.679428529152917e-01 + -2.700452216727706e-01 + -2.721346163277996e-01 + -2.742111879420810e-01 + -2.762750854486131e-01 + -2.783264557785196e-01 + -2.803654434689624e-01 + -2.823921908087395e-01 + -2.844068381756654e-01 + -2.864095239109061e-01 + -2.884003839950212e-01 + -2.903795524955394e-01 + -2.923471617904532e-01 + -2.943033420191942e-01 + -2.962482212763220e-01 + -2.981819256807660e-01 + -3.001045795717013e-01 + -3.020163055275332e-01 + -3.039172239885258e-01 + -3.058074538261057e-01 + -3.076871122705734e-01 + -3.095563141516905e-01 + -3.114151727559051e-01 + -3.132637999546681e-01 + -3.151023057635463e-01 + -3.169307984585886e-01 + -3.187493845723606e-01 + -3.205581689117248e-01 + -3.223572548745565e-01 + -3.241467443749414e-01 + -3.259267374142799e-01 + -3.276973325691862e-01 + -3.294586270053045e-01 + -3.312107160890871e-01 + -3.329536937962613e-01 + -3.346876527428858e-01 + -3.364126840777460e-01 + -3.381288775295205e-01 + -3.398363212268976e-01 + -3.415351019703767e-01 + -3.432253052941175e-01 + -3.449070152459444e-01 + -3.465803145779997e-01 + -3.482452848007116e-01 + -3.499020059501182e-01 + -3.515505568826250e-01 + -3.531910152859590e-01 + -3.548234573752725e-01 + -3.564479582224311e-01 + -3.580645917875246e-01 + -3.596734306319520e-01 + -3.612745463110025e-01 + -3.628680093075062e-01 + -3.644538885605036e-01 + -3.660322520458910e-01 + -3.676031668332329e-01 + -3.691666987516095e-01 + -3.707229124779602e-01 + -3.722718716670178e-01 + -3.738136390608672e-01 + -3.753482761467254e-01 + -3.768758432749062e-01 + -3.783964002465877e-01 + -3.799100056353694e-01 + -3.814167166997948e-01 + -3.829165900177774e-01 + -3.844096813827866e-01 + -3.858960456354959e-01 + -3.873757364088854e-01 + -3.888488064600710e-01 + -3.903153077375676e-01 + -3.917752913452379e-01 + -3.932288075353338e-01 + -3.946759055987133e-01 + -3.961166339473677e-01 + -3.975510402779339e-01 + -3.989791715122148e-01 + -4.004010735521537e-01 + -4.018167915706618e-01 + -4.032263700983349e-01 + -4.046298528561717e-01 + -4.060272827301947e-01 + -4.074187016384220e-01 + -4.088041511045764e-01 + -4.101836719923956e-01 + -4.115573039941210e-01 + -4.129250863351419e-01 + -4.142870577221169e-01 + -4.156432559911067e-01 + -4.169937183587125e-01 + -4.183384813924751e-01 + -4.196775807600287e-01 + -4.210110517890521e-01 + -4.223389293056927e-01 + -4.236612469859990e-01 + -4.249780381358575e-01 + -4.262893357128523e-01 + -4.275951718561576e-01 + -4.288955781548201e-01 + -4.301905856512787e-01 + -4.314802245948859e-01 + -4.327645248125306e-01 + -4.340435157401011e-01 + -4.353172261319986e-01 + -4.365856843065750e-01 + -4.378489181140523e-01 + -4.391069545111200e-01 + -4.403598201489721e-01 + -4.416075414900063e-01 + -4.428501441617211e-01 + -4.440876533447125e-01 + -4.453200938994337e-01 + -4.465474900663732e-01 + -4.477698656375739e-01 + -4.489872440132049e-01 + -4.501996482091757e-01 + -4.514071007293397e-01 + -4.526096234423685e-01 + -4.538072381973440e-01 + -4.549999664346564e-01 + -4.561878287239103e-01 + -4.573708454564815e-01 + -4.585490367840940e-01 + -4.597224223838171e-01 + -4.608910215483196e-01 + -4.620548532229073e-01 + -4.632139359470852e-01 + -4.643682878385313e-01 + -4.655179266829866e-01 + -4.666628700026897e-01 + -4.678031349656974e-01 + -4.689387384105899e-01 + -4.700696968538801e-01 + -4.711960263436956e-01 + -4.723177425902391e-01 + -4.734348612979066e-01 + -4.745473978039702e-01 + -4.756553669920032e-01 + -4.767587833133353e-01 + -4.778576611599107e-01 + -4.789520147944609e-01 + -4.800418577229591e-01 + -4.811272034289876e-01 + -4.822080654661853e-01 + -4.832844566828151e-01 + -4.843563896207272e-01 + -4.854238767122197e-01 + -4.864869303811440e-01 + -4.875455627166793e-01 + -4.885997853037442e-01 + -4.896496095260600e-01 + -4.906950466868944e-01 + -4.917361080077966e-01 + -4.927728043326091e-01 + -4.938051461993963e-01 + -4.948331438840640e-01 + -4.958568075736277e-01 + -4.968761473512240e-01 + -4.978911731225704e-01 + -4.989018945002663e-01 + -4.999083208482176e-01 + -5.009104613021941e-01 + -5.019083248972503e-01 + -5.029019205602130e-01 + -5.038912570358333e-01 + -5.048763428126108e-01 + -5.058571862004539e-01 + -5.068337954285524e-01 + -5.078061785541023e-01 + -5.087743434557772e-01 + -5.097382978215317e-01 + -5.106980492175714e-01 + -5.116536051046018e-01 + -5.126049728172039e-01 + -5.135521595357905e-01 + -5.144951722594635e-01 + -5.154340177423219e-01 + -5.163687027408718e-01 + -5.172992340140365e-01 + -5.182256180631845e-01 + -5.191478612397169e-01 + -5.200659697981208e-01 + -5.209799499565910e-01 + -5.218898077706294e-01 + -5.227955490891694e-01 + -5.236971796844924e-01 + -5.245947053253370e-01 + -5.254881317688337e-01 + -5.263774645512288e-01 + -5.272627090126604e-01 + -5.281438703531137e-01 + -5.290209539977515e-01 + -5.298939652703512e-01 + -5.307629091340913e-01 + -5.316277904778723e-01 + -5.324886142110474e-01 + -5.333453852986519e-01 + -5.341981085648844e-01 + -5.350467886587517e-01 + -5.358914300418783e-01 + -5.367320373706596e-01 + -5.375686152841432e-01 + -5.384011680734792e-01 + -5.392297001047128e-01 + -5.400542157871245e-01 + -5.408747194069761e-01 + -5.416912150785628e-01 + -5.425037068232484e-01 + -5.433121987186342e-01 + -5.441166948984431e-01 + -5.449171994793097e-01 + -5.457137163885653e-01 + -5.465062494211190e-01 + -5.472948023341125e-01 + -5.480793790518950e-01 + -5.488599834110802e-01 + -5.496366191273470e-01 + -5.504092899443518e-01 + -5.511779994928784e-01 + -5.519427513029639e-01 + -5.527035490710489e-01 + -5.534603964642170e-01 + -5.542132970155166e-01 + -5.549622540841348e-01 + -5.557072711574547e-01 + -5.564483519201564e-01 + -5.571854997347668e-01 + -5.579187179919134e-01 + -5.586480102698358e-01 + -5.593733798207278e-01 + -5.600948299343745e-01 + -5.608123641702291e-01 + -5.615259858006734e-01 + -5.622356980349319e-01 + -5.629415042452564e-01 + -5.636434078437447e-01 + -5.643414121719204e-01 + -5.650355204128609e-01 + -5.657257359067179e-01 + -5.664120620074502e-01 + -5.670945018655422e-01 + -5.677730587569899e-01 + -5.684477360210265e-01 + -5.691185368946378e-01 + -5.697854646230838e-01 + -5.704485224954847e-01 + -5.711077138615709e-01 + -5.717630418949810e-01 + -5.724145097236072e-01 + -5.730621208149326e-01 + -5.737058785857441e-01 + -5.743457862811681e-01 + -5.749818469287452e-01 + -5.756140639044424e-01 + -5.762424408221788e-01 + -5.768669806578469e-01 + -5.774876866716016e-01 + -5.781045625480883e-01 + -5.787176116189466e-01 + -5.793268371095267e-01 + -5.799322422747063e-01 + -5.805338304985933e-01 + -5.811316053198213e-01 + -5.817255703521417e-01 + -5.823157287697720e-01 + -5.829020838792335e-01 + -5.834846393919914e-01 + -5.840633987477251e-01 + -5.846383653791880e-01 + -5.852095428966003e-01 + -5.857769347455314e-01 + -5.863405444497650e-01 + -5.869003757905312e-01 + -5.874564321893059e-01 + -5.880087171065591e-01 + -5.885572344676900e-01 + -5.891019879107314e-01 + -5.896429809482692e-01 + -5.901802172691951e-01 + -5.907137006344829e-01 + -5.912434348345698e-01 + -5.917694236578408e-01 + -5.922916709366750e-01 + -5.928101804947136e-01 + -5.933249560457028e-01 + -5.938360014505492e-01 + -5.943433207019595e-01 + -5.948469177828256e-01 + -5.953467966083078e-01 + -5.958429610716830e-01 + -5.963354151930935e-01 + -5.968241629967538e-01 + -5.973092085065336e-01 + -5.977905558475627e-01 + -5.982682091919279e-01 + -5.987421727060626e-01 + -5.992124504335189e-01 + -5.996790465513929e-01 + -6.001419654039183e-01 + -6.006012111567195e-01 + -6.010567880969444e-01 + -6.015087007096906e-01 + -6.019569532209035e-01 + -6.024015499278780e-01 + -6.028424953542454e-01 + -6.032797938560218e-01 + -6.037134498528102e-01 + -6.041434679778884e-01 + -6.045698527611498e-01 + -6.049926086966888e-01 + -6.054117403213235e-01 + -6.058272522301629e-01 + -6.062391491063152e-01 + -6.066474357377917e-01 + -6.070521167750024e-01 + -6.074531969194140e-01 + -6.078506811508277e-01 + -6.082445741313003e-01 + -6.086348804777613e-01 + -6.090216052590219e-01 + -6.094047534940796e-01 + -6.097843300758768e-01 + -6.101603397998798e-01 + -6.105327877567767e-01 + -6.109016791586246e-01 + -6.112670188349342e-01 + -6.116288118244032e-01 + -6.119870634033990e-01 + -6.123417788015699e-01 + -6.126929631816058e-01 + -6.130406216857481e-01 + -6.133847595846266e-01 + -6.137253821544012e-01 + -6.140624946688724e-01 + -6.143961025253998e-01 + -6.147262111225434e-01 + -6.150528258526081e-01 + -6.153759522847098e-01 + -6.156955958775930e-01 + -6.160117619293205e-01 + -6.163244560848270e-01 + -6.166336840291214e-01 + -6.169394513190288e-01 + -6.172417635406579e-01 + -6.175406263458638e-01 + -6.178360454670117e-01 + -6.181280266570051e-01 + -6.184165756494230e-01 + -6.187016981615432e-01 + -6.189834001775048e-01 + -6.192616876391890e-01 + -6.195365661632112e-01 + -6.198080416901866e-01 + -6.200761202902517e-01 + -6.203408078682074e-01 + -6.206021103982113e-01 + -6.208600339819080e-01 + -6.211145848662764e-01 + -6.213657689929696e-01 + -6.216135922609831e-01 + -6.218580610691606e-01 + -6.220991816188346e-01 + -6.223369599996067e-01 + -6.225714026287344e-01 + -6.228025157602012e-01 + -6.230303055354752e-01 + -6.232547783843585e-01 + -6.234759406837302e-01 + -6.236937987287140e-01 + -6.239083589372102e-01 + -6.241196278170006e-01 + -6.243276119301496e-01 + -6.245323178052680e-01 + -6.247337518435782e-01 + -6.249319204108740e-01 + -6.251268303788342e-01 + -6.253184884524475e-01 + -6.255069009766967e-01 + -6.256920746682559e-01 + -6.258740163701917e-01 + -6.260527328726909e-01 + -6.262282307801417e-01 + -6.264005167589047e-01 + -6.265695976839164e-01 + -6.267354804070123e-01 + -6.268981717782514e-01 + -6.270576786775590e-01 + -6.272140080071444e-01 + -6.273671666729116e-01 + -6.275171615794166e-01 + -6.276639997579259e-01 + -6.278076882572314e-01 + -6.279482340166599e-01 + -6.280856440870369e-01 + -6.282199255881125e-01 + -6.283510856176625e-01 + -6.284791313265480e-01 + -6.286040698559974e-01 + -6.287259082244099e-01 + -6.288446536460758e-01 + -6.289603134448759e-01 + -6.290728947784819e-01 + -6.291824049507972e-01 + -6.292888513285516e-01 + -6.293922409846477e-01 + -6.294925812787570e-01 + -6.295898797737625e-01 + -6.296841435561055e-01 + -6.297753800606519e-01 + -6.298635970427606e-01 + -6.299488015475858e-01 + -6.300310009429952e-01 + -6.301102030719377e-01 + -6.301864151575183e-01 + -6.302596446383568e-01 + -6.303298993873763e-01 + -6.303971867419816e-01 + -6.304615141097702e-01 + -6.305228892569528e-01 + -6.305813198299395e-01 + -6.306368133767261e-01 + -6.306893774095105e-01 + -6.307390196514921e-01 + -6.307857478830511e-01 + -6.308295697989852e-01 + -6.308704929504492e-01 + -6.309085250312678e-01 + -6.309436740902202e-01 + -6.309759477467396e-01 + -6.310053535533821e-01 + -6.310318994644450e-01 + -6.310555933584764e-01 + -6.310764430051494e-01 + -6.310944561130111e-01 + -6.311096405770181e-01 + -6.311220043955681e-01 + -6.311315554778594e-01 + -6.311383016234806e-01 + -6.311422506666780e-01 + -6.311434107412031e-01 + -6.311417897164122e-01 + -6.311373953205278e-01 + -6.311302357049288e-01 + -6.311203189243589e-01 + -6.311076528624781e-01 + -6.310922454230109e-01 + -6.310741047155799e-01 + -6.310532389686786e-01 + -6.310296560496979e-01 + -6.310033639455465e-01 + -6.309743708604478e-01 + -6.309426848479184e-01 + -6.309083139781310e-01 + -6.308712663782245e-01 + -6.308315500367087e-01 + -6.307891730465176e-01 + -6.307441436976022e-01 + -6.306964701860184e-01 + -6.306461606431758e-01 + -6.305932231701467e-01 + -6.305376659121696e-01 + -6.304794970062023e-01 + -6.304187245700347e-01 + -6.303553569805046e-01 + -6.302894025962669e-01 + -6.302208694979176e-01 + -6.301497657748981e-01 + -6.300760996409697e-01 + -6.299998795100692e-01 + -6.299211136514613e-01 + -6.298398102240708e-01 + -6.297559773915322e-01 + -6.296696236381925e-01 + -6.295807574013027e-01 + -6.294893864698483e-01 + -6.293955192818200e-01 + -6.292991645521353e-01 + -6.292003301703828e-01 + -6.290990243894826e-01 + -6.289952557946986e-01 + -6.288890326523825e-01 + -6.287803632353285e-01 + -6.286692558944412e-01 + -6.285557190083507e-01 + -6.284397608763040e-01 + -6.283213897612988e-01 + -6.282006141317734e-01 + -6.280774423035318e-01 + -6.279518824496017e-01 + -6.278239431715447e-01 + -6.276936329659792e-01 + -6.275609600561086e-01 + -6.274259327786519e-01 + -6.272885594754783e-01 + -6.271488484695774e-01 + -6.270068083043618e-01 + -6.268624473656752e-01 + -6.267157737459064e-01 + -6.265667960682418e-01 + -6.264155229504741e-01 + -6.262619625962428e-01 + -6.261061232036680e-01 + -6.259480131935671e-01 + -6.257876413121770e-01 + -6.256250157840939e-01 + -6.254601447340036e-01 + -6.252930366972961e-01 + -6.251237002207461e-01 + -6.249521437614608e-01 + -6.247783756272571e-01 + -6.246024042025771e-01 + -6.244242378628240e-01 + -6.242438848129136e-01 + -6.240613535991787e-01 + -6.238766528797192e-01 + -6.236897908519111e-01 + -6.235007757894835e-01 + -6.233096161276966e-01 + -6.231163203935827e-01 + -6.229208970207127e-01 + -6.227233543185018e-01 + -6.225237005131427e-01 + -6.223219439896936e-01 + -6.221180932821515e-01 + -6.219121568092019e-01 + -6.217041429518334e-01 + -6.214940600654550e-01 + -6.212819164164759e-01 + -6.210677203231969e-01 + -6.208514802076882e-01 + -6.206332045396580e-01 + -6.204129016762088e-01 + -6.201905798335827e-01 + -6.199662474146647e-01 + -6.197399127976954e-01 + -6.195115842446862e-01 + -6.192812702436963e-01 + -6.190489791767655e-01 + -6.188147191241502e-01 + -6.185784984898128e-01 + -6.183403256742428e-01 + -6.181002088023494e-01 + -6.178581563548247e-01 + -6.176141767575239e-01 + -6.173682779492388e-01 + -6.171204683326561e-01 + -6.168707564823446e-01 + -6.166191506410910e-01 + -6.163656588303806e-01 + -6.161102891648960e-01 + -6.158530502595377e-01 + -6.155939503803246e-01 + -6.153329975648972e-01 + -6.150702000825419e-01 + -6.148055662334609e-01 + -6.145391042808102e-01 + -6.142708224010276e-01 + -6.140007288452335e-01 + -6.137288318637003e-01 + -6.134551394181680e-01 + -6.131796597624336e-01 + -6.129024013716257e-01 + -6.126233721919256e-01 + -6.123425803085120e-01 + -6.120600340492245e-01 + -6.117757414641359e-01 + -6.114897106263320e-01 + -6.112019497520672e-01 + -6.109124671249474e-01 + -6.106212708396386e-01 + -6.103283687668304e-01 + -6.100337690977098e-01 + -6.097374799911853e-01 + -6.094395093910078e-01 + -6.091398653642833e-01 + -6.088385561024087e-01 + -6.085355898356886e-01 + -6.082309742898534e-01 + -6.079247173286892e-01 + -6.076168274335947e-01 + -6.073073125569597e-01 + -6.069961804304546e-01 + -6.066834389911383e-01 + -6.063690964791788e-01 + -6.060531610171422e-01 + -6.057356401425160e-01 + -6.054165419100932e-01 + -6.050958745176729e-01 + -6.047736455801236e-01 + -6.044498630713394e-01 + -6.041245351487873e-01 + -6.037976695799242e-01 + -6.034692741523835e-01 + -6.031393567367498e-01 + -6.028079252312161e-01 + -6.024749874110954e-01 + -6.021405510415967e-01 + -6.018046242357692e-01 + -6.014672148046522e-01 + -6.011283302871711e-01 + -6.007879786053585e-01 + -6.004461675660895e-01 + -6.001029047914931e-01 + -5.997581981158361e-01 + -5.994120553308485e-01 + -5.990644841299763e-01 + -5.987154923482985e-01 + -5.983650876334137e-01 + -5.980132773866208e-01 + -5.976600693793478e-01 + -5.973054714798371e-01 + -5.969494914365839e-01 + -5.965921366499265e-01 + -5.962334146660923e-01 + -5.958733334161985e-01 + -5.955119002909084e-01 + -5.951491227180785e-01 + -5.947850085981863e-01 + -5.944195652847630e-01 + -5.940528001366523e-01 + -5.936847210858313e-01 + -5.933153356463837e-01 + -5.929446511281147e-01 + -5.925726749957585e-01 + -5.921994146776245e-01 + -5.918248776317639e-01 + -5.914490714685531e-01 + -5.910720036664838e-01 + -5.906936815737919e-01 + -5.903141124838686e-01 + -5.899333037986367e-01 + -5.895512629817115e-01 + -5.891679973989596e-01 + -5.887835143677140e-01 + -5.883978211708401e-01 + -5.880109250637769e-01 + -5.876228334774148e-01 + -5.872335538851382e-01 + -5.868430932520374e-01 + -5.864514587624869e-01 + -5.860586578978172e-01 + -5.856646978273519e-01 + -5.852695857497323e-01 + -5.848733289413443e-01 + -5.844759343592291e-01 + -5.840774091773326e-01 + -5.836777608879199e-01 + -5.832769964405170e-01 + -5.828751228494087e-01 + -5.824721474461222e-01 + -5.820680771414760e-01 + -5.816629188869962e-01 + -5.812566799399100e-01 + -5.808493672421570e-01 + -5.804409877894702e-01 + -5.800315488931496e-01 + -5.796210574409676e-01 + -5.792095201878247e-01 + -5.787969440874288e-01 + -5.783833362006023e-01 + -5.779687035684036e-01 + -5.775530530727403e-01 + -5.771363914738108e-01 + -5.767187255974381e-01 + -5.763000625573806e-01 + -5.758804091701334e-01 + -5.754597721176316e-01 + -5.750381583420940e-01 + -5.746155745735496e-01 + -5.741920274506414e-01 + -5.737675239291555e-01 + -5.733420708457294e-01 + -5.729156748671344e-01 + -5.724883426083383e-01 + -5.720600807791615e-01 + -5.716308961653045e-01 + -5.712007954599810e-01 + -5.707697852850102e-01 + -5.703378722272431e-01 + -5.699050629355835e-01 + -5.694713639828742e-01 + -5.690367818720566e-01 + -5.686013232951076e-01 + -5.681649948578290e-01 + -5.677278029894381e-01 + -5.672897541841998e-01 + -5.668508549514105e-01 + -5.664111117923113e-01 + -5.659705312703284e-01 + -5.655291198708162e-01 + -5.650868839171556e-01 + -5.646438297396282e-01 + -5.641999637601537e-01 + -5.637552925169101e-01 + -5.633098223391846e-01 + -5.628635595080524e-01 + -5.624165104013904e-01 + -5.619686812129524e-01 + -5.615200782186582e-01 + -5.610707080464411e-01 + -5.606205767194389e-01 + -5.601696901727680e-01 + -5.597180550627928e-01 + -5.592656777039943e-01 + -5.588125640834879e-01 + -5.583587201544192e-01 + -5.579041522213387e-01 + -5.574488666805684e-01 + -5.569928694014434e-01 + -5.565361664370690e-01 + -5.560787640439252e-01 + -5.556206683493946e-01 + -5.551618853326125e-01 + -5.547024208857518e-01 + -5.542422809960397e-01 + -5.537814718214656e-01 + -5.533199995563840e-01 + -5.528578699065892e-01 + -5.523950887012330e-01 + -5.519316620139326e-01 + -5.514675956847120e-01 + -5.510028956792654e-01 + -5.505375681122012e-01 + -5.500716185256428e-01 + -5.496050526609592e-01 + -5.491378767346244e-01 + -5.486700964364043e-01 + -5.482017173715276e-01 + -5.477327453596050e-01 + -5.472631862648399e-01 + -5.467930458019109e-01 + -5.463223294669347e-01 + -5.458510432287255e-01 + -5.453791929736209e-01 + -5.449067840000759e-01 + -5.444338218966174e-01 + -5.439603123952597e-01 + -5.434862611282417e-01 + -5.430116738240560e-01 + -5.425365561436022e-01 + -5.420609134355956e-01 + -5.415847511352451e-01 + -5.411080748136494e-01 + -5.406308901525899e-01 + -5.401532026526268e-01 + -5.396750177177082e-01 + -5.391963408895222e-01 + -5.387171774649071e-01 + -5.382375326730170e-01 + -5.377574122460893e-01 + -5.372768215524759e-01 + -5.367957656717409e-01 + -5.363142502106338e-01 + -5.358322806031541e-01 + -5.353498619928253e-01 + -5.348669995911720e-01 + -5.343836987381033e-01 + -5.338999648334884e-01 + -5.334158029976483e-01 + -5.329312184607295e-01 + -5.324462166033185e-01 + -5.319608023124877e-01 + -5.314749807283198e-01 + -5.309887574568507e-01 + -5.305021373834015e-01 + -5.300151254489873e-01 + -5.295277270550899e-01 + -5.290399471460621e-01 + -5.285517906644440e-01 + -5.280632628772480e-01 + -5.275743687930865e-01 + -5.270851133485194e-01 + -5.265955015863814e-01 + -5.261055383771222e-01 + -5.256152286457003e-01 + -5.251245776074701e-01 + -5.246335901741112e-01 + -5.241422711040373e-01 + -5.236506252667474e-01 + -5.231586574906982e-01 + -5.226663726352896e-01 + -5.221737757253558e-01 + -5.216808715970676e-01 + -5.211876649797802e-01 + -5.206941607382560e-01 + -5.202003635069621e-01 + -5.197062778404161e-01 + -5.192119087096243e-01 + -5.187172609937223e-01 + -5.182223393579939e-01 + -5.177271482807863e-01 + -5.172316923981860e-01 + -5.167359765148800e-01 + -5.162400053033168e-01 + -5.157437833544083e-01 + -5.152473152222008e-01 + -5.147506055161414e-01 + -5.142536587718484e-01 + -5.137564794429633e-01 + -5.132590721404230e-01 + -5.127614414610688e-01 + -5.122635918987255e-01 + -5.117655278912282e-01 + -5.112672538418732e-01 + -5.107687741570007e-01 + -5.102700934318621e-01 + -5.097712161511054e-01 + -5.092721464952894e-01 + -5.087728887586368e-01 + -5.082734473837237e-01 + -5.077738269224511e-01 + -5.072740315773641e-01 + -5.067740655070005e-01 + -5.062739331645890e-01 + -5.057736389339202e-01 + -5.052731870571522e-01 + -5.047725816027976e-01 + -5.042718267556677e-01 + -5.037709267723895e-01 + -5.032698858620083e-01 + -5.027687082997551e-01 + -5.022673983228978e-01 + -5.017659599138892e-01 + -5.012643972224838e-01 + -5.007627144504877e-01 + -5.002609154317549e-01 + -4.997590043686060e-01 + -4.992569856498065e-01 + -4.987548629163329e-01 + -4.982526401066572e-01 + -4.977503215591422e-01 + -4.972479113357710e-01 + -4.967454132608579e-01 + -4.962428310876830e-01 + -4.957401690448965e-01 + -4.952374311333114e-01 + -4.947346209581790e-01 + -4.942317423902789e-01 + -4.937287995168010e-01 + -4.932257964768885e-01 + -4.927227367709692e-01 + -4.922196239985463e-01 + -4.917164622446805e-01 + -4.912132554897460e-01 + -4.907100074652099e-01 + -4.902067216434476e-01 + -4.897034018910860e-01 + -4.892000521396699e-01 + -4.886966760659724e-01 + -4.881932772071136e-01 + -4.876898592264887e-01 + -4.871864261030248e-01 + -4.866829812293292e-01 + -4.861795280147214e-01 + -4.856760706607693e-01 + -4.851726126266216e-01 + -4.846691571189501e-01 + -4.841657080652781e-01 + -4.836622690168214e-01 + -4.831588433295234e-01 + -4.826554347812969e-01 + -4.821520468729375e-01 + -4.816486828820545e-01 + -4.811453462713459e-01 + -4.806420406166251e-01 + -4.801387695127853e-01 + -4.796355363816449e-01 + -4.791323444815042e-01 + -4.786291970695780e-01 + -4.781260978727254e-01 + -4.776230503252043e-01 + -4.771200574973888e-01 + -4.766171228253449e-01 + -4.761142497486388e-01 + -4.756114415594656e-01 + -4.751087014547341e-01 + -4.746060327035595e-01 + -4.741034386828772e-01 + -4.736009226286348e-01 + -4.730984877717556e-01 + -4.725961373913972e-01 + -4.720938746127822e-01 + -4.715917026117559e-01 + -4.710896247171748e-01 + -4.705876440070008e-01 + -4.700857635192827e-01 + -4.695839864443119e-01 + -4.690823160197067e-01 + -4.685807553687465e-01 + -4.680793073815264e-01 + -4.675779752270572e-01 + -4.670767621237579e-01 + -4.665756710130068e-01 + -4.660747048828000e-01 + -4.655738667469987e-01 + -4.650731595624170e-01 + -4.645725864569897e-01 + -4.640721505529091e-01 + -4.635718546060059e-01 + -4.630717014390969e-01 + -4.625716940204364e-01 + -4.620718354412200e-01 + -4.615721285948061e-01 + -4.610725762550177e-01 + -4.605731814392849e-01 + -4.600739469669758e-01 + -4.595748755034438e-01 + -4.590759700613133e-01 + -4.585772335293120e-01 + -4.580786685902926e-01 + -4.575802780165928e-01 + -4.570820645542124e-01 + -4.565840309327809e-01 + -4.560861801183225e-01 + -4.555885148408127e-01 + -4.550910375242214e-01 + -4.545937511574892e-01 + -4.540966585092119e-01 + -4.535997618400510e-01 + -4.531030641427475e-01 + -4.526065682230286e-01 + -4.521102761991050e-01 + -4.516141909960451e-01 + -4.511183155232459e-01 + -4.506226519976986e-01 + -4.501272029129367e-01 + -4.496319709853875e-01 + -4.491369589904647e-01 + -4.486421693813144e-01 + -4.481476045149588e-01 + -4.476532669406306e-01 + -4.471591591812127e-01 + -4.466652837454304e-01 + -4.461716431800687e-01 + -4.456782399407630e-01 + -4.451850764283579e-01 + -4.446921550770006e-01 + -4.441994783152980e-01 + -4.437070485743053e-01 + -4.432148683148817e-01 + -4.427229399164072e-01 + -4.422312656936392e-01 + -4.417398479943503e-01 + -4.412486891611525e-01 + -4.407577915365379e-01 + -4.402671575060104e-01 + -4.397767893532367e-01 + -4.392866892910770e-01 + -4.387968597340107e-01 + -4.383073029681190e-01 + -4.378180210879689e-01 + -4.373290163087382e-01 + -4.368402909924953e-01 + -4.363518475687816e-01 + -4.358636880897754e-01 + -4.353758146064535e-01 + -4.348882293452391e-01 + -4.344009344375495e-01 + -4.339139321041776e-01 + -4.334272247184532e-01 + -4.329408142509990e-01 + -4.324547026649819e-01 + -4.319688922210647e-01 + -4.314833850702666e-01 + -4.309981832317592e-01 + -4.305132886299618e-01 + -4.300287034407881e-01 + -4.295444298858639e-01 + -4.290604699557538e-01 + -4.285768254794737e-01 + -4.280934983815344e-01 + -4.276104909880938e-01 + -4.271278053251724e-01 + -4.266454431999359e-01 + -4.261634065006114e-01 + -4.256816972235624e-01 + -4.252003173934318e-01 + -4.247192689049444e-01 + -4.242385536499166e-01 + -4.237581735472888e-01 + -4.232781305399061e-01 + -4.227984264773803e-01 + -4.223190631457318e-01 + -4.218400424415704e-01 + -4.213613663598799e-01 + -4.208830368540804e-01 + -4.204050553934426e-01 + -4.199274237890383e-01 + -4.194501442515862e-01 + -4.189732183034799e-01 + -4.184966476302857e-01 + -4.180204343198091e-01 + -4.175445800025869e-01 + -4.170690862458790e-01 + -4.165939547960728e-01 + -4.161191875920802e-01 + -4.156447863485650e-01 + -4.151707524172177e-01 + -4.146970878143395e-01 + -4.142237944432959e-01 + -4.137508735370036e-01 + -4.132783267358912e-01 + -4.128061559031381e-01 + -4.123343628419361e-01 + -4.118629489726368e-01 + -4.113919157251955e-01 + -4.109212649651476e-01 + -4.104509983224866e-01 + -4.099811172669397e-01 + -4.095116233202941e-01 + -4.090425181490535e-01 + -4.085738034100841e-01 + -4.081054804950061e-01 + -4.076375508831032e-01 + -4.071700161671795e-01 + -4.067028779692610e-01 + -4.062361376606066e-01 + -4.057697965353959e-01 + -4.053038563335837e-01 + -4.048383186645677e-01 + -4.043731849141807e-01 + -4.039084564103662e-01 + -4.034441345521896e-01 + -4.029802208230617e-01 + -4.025167167043049e-01 + -4.020536236099443e-01 + -4.015909428779320e-01 + -4.011286758375757e-01 + -4.006668238996902e-01 + -4.002053885607212e-01 + -3.997443712200008e-01 + -3.992837731698375e-01 + -3.988235956310492e-01 + -3.983638399923307e-01 + -3.979045076012857e-01 + -3.974455996644362e-01 + -3.969871175556028e-01 + -3.965290626455606e-01 + -3.960714361699136e-01 + -3.956142393772600e-01 + -3.951574735515524e-01 + -3.947011399985758e-01 + -3.942452398354794e-01 + -3.937897742524872e-01 + -3.933347447660869e-01 + -3.928801524442024e-01 + -3.924259983101159e-01 + -3.919722839283850e-01 + -3.915190103656777e-01 + -3.910661784756895e-01 + -3.906137895655892e-01 + -3.901618450499643e-01 + -3.897103461604648e-01 + -3.892592935529919e-01 + -3.888086884121152e-01 + -3.883585322771145e-01 + -3.879088261485191e-01 + -3.874595710701922e-01 + -3.870107681556456e-01 + -3.865624182556531e-01 + -3.861145225228043e-01 + -3.856670823544472e-01 + -3.852200986473037e-01 + -3.847735723987576e-01 + -3.843275047747315e-01 + -3.838818965026468e-01 + -3.834367486164244e-01 + -3.829920625791138e-01 + -3.825478392535004e-01 + -3.821040794322394e-01 + -3.816607841213338e-01 + -3.812179544462010e-01 + -3.807755914230820e-01 + -3.803336958584798e-01 + -3.798922686597118e-01 + -3.794513108818827e-01 + -3.790108236907996e-01 + -3.785708078449803e-01 + -3.781312640889848e-01 + -3.776921934895628e-01 + -3.772535969260590e-01 + -3.768154752452403e-01 + -3.763778294637203e-01 + -3.759406605249527e-01 + -3.755039692439986e-01 + -3.750677562951532e-01 + -3.746320226741715e-01 + -3.741967693787305e-01 + -3.737619968727901e-01 + -3.733277061470673e-01 + -3.728938983949728e-01 + -3.724605741247380e-01 + -3.720277341192338e-01 + -3.715953793429491e-01 + -3.711635103186269e-01 + -3.707321278978636e-01 + -3.703012331728173e-01 + -3.698708267439747e-01 + -3.694409092657609e-01 + -3.690114815572269e-01 + -3.685825444178367e-01 + -3.681540985405766e-01 + -3.677261445488677e-01 + -3.672986832474148e-01 + -3.668717154245260e-01 + -3.664452417818624e-01 + -3.660192630178876e-01 + -3.655937798167319e-01 + -3.651687928442244e-01 + -3.647443027770453e-01 + -3.643203103057334e-01 + -3.638968161236534e-01 + -3.634738208501973e-01 + -3.630513251204181e-01 + -3.626293296340570e-01 + -3.622078349959966e-01 + -3.617868418102546e-01 + -3.613663507559756e-01 + -3.609463624258993e-01 + -3.605268773947004e-01 + -3.601078962972172e-01 + -3.596894197319259e-01 + -3.592714482724653e-01 + -3.588539824938156e-01 + -3.584370229705016e-01 + -3.580205702765974e-01 + -3.576046249835235e-01 + -3.571891876270012e-01 + -3.567742587321382e-01 + -3.563598388637925e-01 + -3.559459285557617e-01 + -3.555325283179373e-01 + -3.551196386794110e-01 + -3.547072601423791e-01 + -3.542953931967586e-01 + -3.538840383835105e-01 + -3.534731961849680e-01 + -3.530628670336623e-01 + -3.526530514374770e-01 + -3.522437498876279e-01 + -3.518349628366106e-01 + -3.514266907403692e-01 + -3.510189340474827e-01 + -3.506116931966672e-01 + -3.502049686305037e-01 + -3.497987607886671e-01 + -3.493930701015490e-01 + -3.489878969787067e-01 + -3.485832418243141e-01 + -3.481791050461803e-01 + -3.477754870557839e-01 + -3.473723882547367e-01 + -3.469698090253131e-01 + -3.465677497415546e-01 + -3.461662107762984e-01 + -3.457651925045610e-01 + -3.453646952920019e-01 + -3.449647194961470e-01 + -3.445652654674211e-01 + -3.441663335489293e-01 + -3.437679240760669e-01 + -3.433700373751777e-01 + -3.429726737709668e-01 + -3.425758335909973e-01 + -3.421795171685511e-01 + -3.417837248082679e-01 + -3.413884567949557e-01 + -3.409937134173290e-01 + -3.405994949798623e-01 + -3.402058017865278e-01 + -3.398126341027504e-01 + -3.394199921921239e-01 + -3.390278763247643e-01 + -3.386362867748747e-01 + -3.382452237948665e-01 + -3.378546876227794e-01 + -3.374646785249709e-01 + -3.370751967392704e-01 + -3.366862424749215e-01 + -3.362978159833941e-01 + -3.359099174981644e-01 + -3.355225472182573e-01 + -3.351357053498810e-01 + -3.347493921057998e-01 + -3.343636076973308e-01 + -3.339783523006465e-01 + -3.335936261089775e-01 + -3.332094293460974e-01 + -3.328257621547543e-01 + -3.324426246881435e-01 + -3.320600171619409e-01 + -3.316779397280902e-01 + -3.312963925265998e-01 + -3.309153757279716e-01 + -3.305348894653861e-01 + -3.301549338737799e-01 + -3.297755091265357e-01 + -3.293966153413448e-01 + -3.290182526215280e-01 + -3.286404211114115e-01 + -3.282631209285871e-01 + -3.278863521751846e-01 + -3.275101149642331e-01 + -3.271344093953196e-01 + -3.267592355617253e-01 + -3.263845935667566e-01 + -3.260104834866909e-01 + -3.256369053882101e-01 + -3.252638593756906e-01 + -3.248913455268053e-01 + -3.245193638907094e-01 + -3.241479145199382e-01 + -3.237769974872735e-01 + -3.234066128661293e-01 + -3.230367606622389e-01 + -3.226674409186036e-01 + -3.222986537192250e-01 + -3.219303990783447e-01 + -3.215626770146125e-01 + -3.211954875680534e-01 + -3.208288307426270e-01 + -3.204627065455645e-01 + -3.200971150001409e-01 + -3.197320561103191e-01 + -3.193675298795836e-01 + -3.190035363166080e-01 + -3.186400754009213e-01 + -3.182771471114187e-01 + -3.179147514432106e-01 + -3.175528883799994e-01 + -3.171915578921511e-01 + -3.168307599394173e-01 + -3.164704945026028e-01 + -3.161107615528752e-01 + -3.157515610223091e-01 + -3.153928928534279e-01 + -3.150347570035595e-01 + -3.146771534412893e-01 + -3.143200821026652e-01 + -3.139635429048980e-01 + -3.136075357713601e-01 + -3.132520606345795e-01 + -3.128971174301287e-01 + -3.125427060850263e-01 + -3.121888265003789e-01 + -3.118354785699559e-01 + -3.114826622209773e-01 + -3.111303773636806e-01 + -3.107786238863177e-01 + -3.104274016699458e-01 + -3.100767106006651e-01 + -3.097265505731036e-01 + -3.093769214901858e-01 + -3.090278232197667e-01 + -3.086792556057311e-01 + -3.083312185528201e-01 + -3.079837119302323e-01 + -3.076367355606988e-01 + -3.072902893338402e-01 + -3.069443731087555e-01 + -3.065989866918071e-01 + -3.062541299629242e-01 + -3.059098027895394e-01 + -3.055660049841727e-01 + -3.052227363624680e-01 + -3.048799967605036e-01 + -3.045377860349815e-01 + -3.041961039937703e-01 + -3.038549504461246e-01 + -3.035143252370935e-01 + -3.031742281687436e-01 + -3.028346590287212e-01 + -3.024956176228422e-01 + -3.021571037727226e-01 + -3.018191172891879e-01 + -3.014816579447884e-01 + -3.011447255196590e-01 + -3.008083198102758e-01 + -3.004724406299011e-01 + -3.001370877400161e-01 + -2.998022608844934e-01 + -2.994679598576119e-01 + -2.991341844426006e-01 + -2.988009344054493e-01 + -2.984682095047237e-01 + -2.981360094999961e-01 + -2.978043341494513e-01 + -2.974731831997393e-01 + -2.971425563888731e-01 + -2.968124534589884e-01 + -2.964828741880918e-01 + -2.961538183196636e-01 + -2.958252855581221e-01 + -2.954972756291568e-01 + -2.951697882690829e-01 + -2.948428232168150e-01 + -2.945163801997789e-01 + -2.941904589349781e-01 + -2.938650591314966e-01 + -2.935401805013078e-01 + -2.932158227514122e-01 + -2.928919855851135e-01 + -2.925686687341852e-01 + -2.922458719001491e-01 + -2.919235947316832e-01 + -2.916018369508684e-01 + -2.912805982685433e-01 + -2.909598783275820e-01 + -2.906396768390501e-01 + -2.903199935181080e-01 + -2.900008280188033e-01 + -2.896821799916231e-01 + -2.893640491090957e-01 + -2.890464350819901e-01 + -2.887293375718574e-01 + -2.884127562142981e-01 + -2.880966906629407e-01 + -2.877811406014185e-01 + -2.874661057081589e-01 + -2.871515856017081e-01 + -2.868375799224188e-01 + -2.865240883310016e-01 + -2.862111104788733e-01 + -2.858986460098822e-01 + -2.855866945593247e-01 + -2.852752557499685e-01 + -2.849643292069009e-01 + -2.846539145659956e-01 + -2.843440114851778e-01 + -2.840346195818731e-01 + -2.837257384382189e-01 + -2.834173676812886e-01 + -2.831095069534547e-01 + -2.828021558855677e-01 + -2.824953140398479e-01 + -2.821889810170294e-01 + -2.818831564761255e-01 + -2.815778399984394e-01 + -2.812730311718642e-01 + -2.809687296216254e-01 + -2.806649349155874e-01 + -2.803616466281044e-01 + -2.800588643758425e-01 + -2.797565877594176e-01 + -2.794548163592918e-01 + -2.791535497376408e-01 + -2.788527874670974e-01 + -2.785525291296920e-01 + -2.782527743138438e-01 + -2.779535226034689e-01 + -2.776547735631448e-01 + -2.773565267276963e-01 + -2.770587816777879e-01 + -2.767615379983304e-01 + -2.764647952191276e-01 + -2.761685529026718e-01 + -2.758728106207560e-01 + -2.755775679024411e-01 + -2.752828243050798e-01 + -2.749885793975552e-01 + -2.746948327088052e-01 + -2.744015837838452e-01 + -2.741088321749212e-01 + -2.738165773969221e-01 + -2.735248189792139e-01 + -2.732335564721672e-01 + -2.729427894286903e-01 + -2.726525173657923e-01 + -2.723627397775934e-01 + -2.720734562117226e-01 + -2.717846661993187e-01 + -2.714963692431568e-01 + -2.712085648712142e-01 + -2.709212526021956e-01 + -2.706344319386959e-01 + -2.703481024077038e-01 + -2.700622635195931e-01 + -2.697769147573882e-01 + -2.694920556414950e-01 + -2.692076856844960e-01 + -2.689238043678598e-01 + -2.686404111894522e-01 + -2.683575056539274e-01 + -2.680750872618156e-01 + -2.677931554956217e-01 + -2.675117098420171e-01 + -2.672307498062658e-01 + -2.669502748541435e-01 + -2.666702844564393e-01 + -2.663907781339158e-01 + -2.661117553567487e-01 + -2.658332155842312e-01 + -2.655551583220328e-01 + -2.652775830228958e-01 + -2.650004891310402e-01 + -2.647238761635896e-01 + -2.644477435849875e-01 + -2.641720908275026e-01 + -2.638969173638899e-01 + -2.636222226679477e-01 + -2.633480062028563e-01 + -2.630742674151484e-01 + -2.628010057675256e-01 + -2.625282207270022e-01 + -2.622559117157733e-01 + -2.619840781930577e-01 + -2.617127196438671e-01 + -2.614418354712815e-01 + -2.611714251171109e-01 + -2.609014880694051e-01 + -2.606320237300626e-01 + -2.603630315312080e-01 + -2.600945109576975e-01 + -2.598264614192900e-01 + -2.595588823272051e-01 + -2.592917731268140e-01 + -2.590251332515323e-01 + -2.587589621335352e-01 + -2.584932592080277e-01 + -2.582280238899204e-01 + -2.579632555996659e-01 + -2.576989537753064e-01 + -2.574351178135512e-01 + -2.571717471205571e-01 + -2.569088411498421e-01 + -2.566463993032694e-01 + -2.563844209736399e-01 + -2.561229055922761e-01 + -2.558618525664796e-01 + -2.556012613001373e-01 + -2.553411312228936e-01 + -2.550814617199114e-01 + -2.548222521633088e-01 + -2.545635019702024e-01 + -2.543052105636615e-01 + -2.540473773489130e-01 + -2.537900016856341e-01 + -2.535330829668063e-01 + -2.532766206092137e-01 + -2.530206140025920e-01 + -2.527650625373169e-01 + -2.525099656058339e-01 + -2.522553225882911e-01 + -2.520011328519368e-01 + -2.517473957689335e-01 + -2.514941107682424e-01 + -2.512412772287477e-01 + -2.509888944763962e-01 + -2.507369619085763e-01 + -2.504854789235316e-01 + -2.502344448942996e-01 + -2.499838591881081e-01 + -2.497337211675947e-01 + -2.494840301941274e-01 + -2.492347856449565e-01 + -2.489859868896926e-01 + -2.487376332816026e-01 + -2.484897241934407e-01 + -2.482422589923619e-01 + -2.479952370263670e-01 + -2.477486576676466e-01 + -2.475025202765806e-01 + -2.472568241776227e-01 + -2.470115687463755e-01 + -2.467667533575219e-01 + -2.465223773319763e-01 + -2.462784400223504e-01 + -2.460349407926405e-01 + -2.457918789841980e-01 + -2.455492539346369e-01 + -2.453070649885519e-01 + -2.450653115068263e-01 + -2.448239928212929e-01 + -2.445831082525867e-01 + -2.443426571517872e-01 + -2.441026388729581e-01 + -2.438630527595843e-01 + -2.436238981283992e-01 + -2.433851743000419e-01 + -2.431468806082007e-01 + -2.429090164035606e-01 + -2.426715810065056e-01 + -2.424345737214870e-01 + -2.421979939156839e-01 + -2.419618409122474e-01 + -2.417261139893861e-01 + -2.414908125047008e-01 + -2.412559357926221e-01 + -2.410214831428485e-01 + -2.407874538901436e-01 + -2.405538473594189e-01 + -2.403206628448788e-01 + -2.400878996494245e-01 + -2.398555571012901e-01 + -2.396236345489386e-01 + -2.393921312730178e-01 + -2.391610465589564e-01 + -2.389303797400675e-01 + -2.387001301206918e-01 + -2.384702970040557e-01 + -2.382408797142012e-01 + -2.380118775445049e-01 + -2.377832897784107e-01 + -2.375551157141706e-01 + -2.373273546676602e-01 + -2.371000059435911e-01 + -2.368730688080822e-01 + -2.366465425799626e-01 + -2.364204265795865e-01 + -2.361947200488833e-01 + -2.359694222928865e-01 + -2.357445326362645e-01 + -2.355200503199650e-01 + -2.352959746331166e-01 + -2.350723049000333e-01 + -2.348490404054174e-01 + -2.346261804119323e-01 + -2.344037241869703e-01 + -2.341816710532240e-01 + -2.339600202844186e-01 + -2.337387711161095e-01 + -2.335179228570654e-01 + -2.332974748051559e-01 + -2.330774262250223e-01 + -2.328577763695832e-01 + -2.326385245095027e-01 + -2.324196699339893e-01 + -2.322012119071908e-01 + -2.319831496985562e-01 + -2.317654825913850e-01 + -2.315482098501277e-01 + -2.313313307350805e-01 + -2.311148445095759e-01 + -2.308987504304352e-01 + -2.306830477605995e-01 + -2.304677357746768e-01 + -2.302528137313455e-01 + -2.300382808821649e-01 + -2.298241364802842e-01 + -2.296103797849810e-01 + -2.293970100645507e-01 + -2.291840265929282e-01 + -2.289714285853380e-01 + -2.287592152687787e-01 + -2.285473859575702e-01 + -2.283359398767679e-01 + -2.281248762354934e-01 + -2.279141943457151e-01 + -2.277038934347241e-01 + -2.274939727028900e-01 + -2.272844314557521e-01 + -2.270752689260884e-01 + -2.268664843063303e-01 + -2.266580768713468e-01 + -2.264500458690802e-01 + -2.262423905203003e-01 + -2.260351100742427e-01 + -2.258282037663114e-01 + -2.256216708189812e-01 + -2.254155104759721e-01 + -2.252097219699820e-01 + -2.250043045201664e-01 + -2.247992573593203e-01 + -2.245945797283117e-01 + -2.243902708632074e-01 + -2.241863299547213e-01 + -2.239827562297785e-01 + -2.237795489631809e-01 + -2.235767073479459e-01 + -2.233742305913306e-01 + -2.231721179508258e-01 + -2.229703686190215e-01 + -2.227689817967141e-01 + -2.225679567331226e-01 + -2.223672926389324e-01 + -2.221669887137792e-01 + -2.219670441735496e-01 + -2.217674582593449e-01 + -2.215682301863681e-01 + -2.213693591068690e-01 + -2.211708442449674e-01 + -2.209726848493868e-01 + -2.207748801280919e-01 + -2.205774292618204e-01 + -2.203803314334422e-01 + -2.201835858632719e-01 + -2.199871917828554e-01 + -2.197911484006530e-01 + -2.195954548584606e-01 + -2.194001103587555e-01 + -2.192051141421317e-01 + -2.190104654040938e-01 + -2.188161633272981e-01 + -2.186222070944807e-01 + -2.184285959003400e-01 + -2.182353289399314e-01 + -2.180424054040691e-01 + -2.178498244760091e-01 + -2.176575853577229e-01 + -2.174656872563868e-01 + -2.172741293153170e-01 + -2.170829107184905e-01 + -2.168920306960583e-01 + -2.167014883907840e-01 + -2.165112829716549e-01 + -2.163214136638050e-01 + -2.161318796380734e-01 + -2.159426800456078e-01 + -2.157538140457635e-01 + -2.155652808465100e-01 + -2.153770796378261e-01 + -2.151892095617934e-01 + -2.150016698096599e-01 + -2.148144595574814e-01 + -2.146275779264766e-01 + -2.144410241083473e-01 + -2.142547972973645e-01 + -2.140688966286696e-01 + -2.138833212713278e-01 + -2.136980704068839e-01 + -2.135131431962469e-01 + -2.133285387811797e-01 + -2.131442563097479e-01 + -2.129602949644751e-01 + -2.127766538888946e-01 + -2.125933322205115e-01 + -2.124103291538361e-01 + -2.122276438425608e-01 + -2.120452754131807e-01 + -2.118632230196053e-01 + -2.116814858091140e-01 + -2.115000629262062e-01 + -2.113189535366684e-01 + -2.111381567835468e-01 + -2.109576717897184e-01 + -2.107774976942802e-01 + -2.105976336477213e-01 + -2.104180788038142e-01 + -2.102388322993181e-01 + -2.100598932684242e-01 + -2.098812608470688e-01 + -2.097029341689293e-01 + -2.095249123662445e-01 + -2.093471945702010e-01 + -2.091697799107427e-01 + -2.089926675162990e-01 + -2.088158565139439e-01 + -2.086393460309292e-01 + -2.084631351904399e-01 + -2.082872231124364e-01 + -2.081116089361562e-01 + -2.079362917906518e-01 + -2.077612707758083e-01 + -2.075865450013143e-01 + -2.074121135936494e-01 + -2.072379756933602e-01 + -2.070641303864229e-01 + -2.068905767613353e-01 + -2.067173139701657e-01 + -2.065443411403108e-01 + -2.063716573678470e-01 + -2.061992617242399e-01 + -2.060271533191409e-01 + -2.058553312792487e-01 + -2.056837947057731e-01 + -2.055125426973447e-01 + -2.053415743575506e-01 + -2.051708887985432e-01 + -2.050004850901530e-01 + -2.048303622987561e-01 + -2.046605195888223e-01 + -2.044909560501713e-01 + -2.043216707137636e-01 + -2.041526627003059e-01 + -2.039839311053935e-01 + -2.038154749924674e-01 + -2.036472934779214e-01 + -2.034793856435669e-01 + -2.033117505334730e-01 + -2.031443872603400e-01 + -2.029772949053144e-01 + -2.028104725040109e-01 + -2.026439191805672e-01 + -2.024776340229360e-01 + -2.023116160442759e-01 + -2.021458643362796e-01 + -2.019803779931268e-01 + -2.018151560674621e-01 + -2.016501976152565e-01 + -2.014855017030598e-01 + -2.013210674074579e-01 + -2.011568937830132e-01 + -2.009929798869589e-01 + -2.008293247967324e-01 + -2.006659275530022e-01 + -2.005027871933542e-01 + -2.003399027889975e-01 + -2.001772733993469e-01 + -2.000148980648089e-01 + -1.998527758076494e-01 + -1.996909056937942e-01 + -1.995292867991256e-01 + -1.993679181495860e-01 + -1.992067987609143e-01 + -1.990459276660739e-01 + -1.988853039482369e-01 + -1.987249266385540e-01 + -1.985647947339026e-01 + -1.984049072747179e-01 + -1.982452632992336e-01 + -1.980858618372365e-01 + -1.979267019229292e-01 + -1.977677825816225e-01 + -1.976091028269504e-01 + -1.974506616652059e-01 + -1.972924581269546e-01 + -1.971344912595772e-01 + -1.969767600601777e-01 + -1.968192635197257e-01 + -1.966620006473419e-01 + -1.965049704914111e-01 + -1.963481720619957e-01 + -1.961916043159508e-01 + -1.960352662866058e-01 + -1.958791570023236e-01 + -1.957232754408347e-01 + -1.955676205736371e-01 + -1.954121914050787e-01 + -1.952569869811404e-01 + -1.951020062511957e-01 + -1.949472481743376e-01 + -1.947927118000400e-01 + -1.946383960967118e-01 + -1.944843000224015e-01 + -1.943304226010136e-01 + -1.941767627996486e-01 + -1.940233195719773e-01 + -1.938700919198527e-01 + -1.937170788011597e-01 + -1.935642791691659e-01 + -1.934116920404960e-01 + -1.932593163702813e-01 + -1.931071510855982e-01 + -1.929551951739442e-01 + -1.928034476111422e-01 + -1.926519073523142e-01 + -1.925005733427448e-01 + -1.923494445333268e-01 + -1.921985198850023e-01 + -1.920477983694047e-01 + -1.918972789099489e-01 + -1.917469604078139e-01 + -1.915968418647559e-01 + -1.914469222323946e-01 + -1.912972003977130e-01 + -1.911476753153419e-01 + -1.909983459354311e-01 + -1.908492111828614e-01 + -1.907002699990133e-01 + -1.905515213021572e-01 + -1.904029639829450e-01 + -1.902545969863778e-01 + -1.901064192518998e-01 + -1.899584296832387e-01 + -1.898106271909556e-01 + -1.896630106872466e-01 + -1.895155790805884e-01 + -1.893683312769490e-01 + -1.892212661839438e-01 + -1.890743827110565e-01 + -1.889276797429612e-01 + -1.887811561730439e-01 + -1.886348109311961e-01 + -1.884886428944042e-01 + -1.883426509295119e-01 + -1.881968339481026e-01 + -1.880511908244114e-01 + -1.879057204210790e-01 + -1.877604216379617e-01 + -1.876152933660684e-01 + -1.874703344759240e-01 + -1.873255438107255e-01 + -1.871809202288037e-01 + -1.870364626111082e-01 + -1.868921698587295e-01 + -1.867480408184902e-01 + -1.866040743068453e-01 + -1.864602692045282e-01 + -1.863166243684211e-01 + -1.861731386269271e-01 + -1.860298108368848e-01 + -1.858866398430710e-01 + -1.857436244746902e-01 + -1.856007635808946e-01 + -1.854580560069532e-01 + -1.853155005825300e-01 + -1.851730961153894e-01 + -1.850308414342497e-01 + -1.848887353926573e-01 + -1.847467767859671e-01 + -1.846049644137440e-01 + -1.844632971091011e-01 + -1.843217736893654e-01 + -1.841803929497542e-01 + -1.840391536710132e-01 + -1.838980546953601e-01 + -1.837570948428414e-01 + -1.836162728527662e-01 + -1.834755875142904e-01 + -1.833350376404768e-01 + -1.831946220322505e-01 + -1.830543394615971e-01 + -1.829141886951903e-01 + -1.827741685199023e-01 + -1.826342777082210e-01 + -1.824945150204152e-01 + -1.823548792146146e-01 + -1.822153690716325e-01 + -1.820759833652730e-01 + -1.819367208114371e-01 + -1.817975801678411e-01 + -1.816585602158104e-01 + -1.815196596908165e-01 + -1.813808773333636e-01 + -1.812422118861797e-01 + -1.811036620617022e-01 + -1.809652266051679e-01 + -1.808269042761388e-01 + -1.806886937510042e-01 + -1.805505937426575e-01 + -1.804126030135119e-01 + -1.802747202867512e-01 + -1.801369442562599e-01 + -1.799992736029428e-01 + -1.798617070428147e-01 + -1.797242432859927e-01 + -1.795868810229852e-01 + -1.794496189531687e-01 + -1.793124557648680e-01 + -1.791753901302353e-01 + -1.790384207459855e-01 + -1.789015462957270e-01 + -1.787647654308534e-01 + -1.786280768266134e-01 + -1.784914791546937e-01 + -1.783549710639760e-01 + -1.782185512276328e-01 + -1.780822183108111e-01 + -1.779459709418989e-01 + -1.778098077766785e-01 + -1.776737274641330e-01 + -1.775377286080068e-01 + -1.774018098685905e-01 + -1.772659699092733e-01 + -1.771302073149079e-01 + -1.769945207098710e-01 + -1.768589087303928e-01 + -1.767233699571559e-01 + -1.765879030229077e-01 + -1.764525065751527e-01 + -1.763171791703831e-01 + -1.761819193770276e-01 + -1.760467257991546e-01 + -1.759115970764966e-01 + -1.757765317826701e-01 + -1.756415284467932e-01 + -1.755065856823099e-01 + -1.753717020824757e-01 + -1.752368761936218e-01 + -1.751021065398607e-01 + -1.749673916979465e-01 + -1.748327302843573e-01 + -1.746981207950505e-01 + -1.745635617515470e-01 + -1.744290517410085e-01 + -1.742945892830799e-01 + -1.741601728915786e-01 + -1.740258011048612e-01 + -1.738914724532109e-01 + -1.737571854631234e-01 + -1.736229386541751e-01 + -1.734887304969607e-01 + -1.733545594900176e-01 + -1.732204242005106e-01 + -1.730863230847530e-01 + -1.729522545880760e-01 + -1.728182172369972e-01 + -1.726842095169024e-01 + -1.725502298924380e-01 + -1.724162768405715e-01 + -1.722823488297978e-01 + -1.721484443102564e-01 + -1.720145617082366e-01 + -1.718806995062888e-01 + -1.717468561876117e-01 + -1.716130301380271e-01 + -1.714792197950507e-01 + -1.713454236195253e-01 + -1.712116399980747e-01 + -1.710778673588311e-01 + -1.709441041583024e-01 + -1.708103487974718e-01 + -1.706765996579921e-01 + -1.705428551238503e-01 + -1.704091136122197e-01 + -1.702753735243250e-01 + -1.701416332337174e-01 + -1.700078910979654e-01 + -1.698741454939726e-01 + -1.697403948188084e-01 + -1.696066374424440e-01 + -1.694728717024124e-01 + -1.693390959182572e-01 + -1.692053084687103e-01 + -1.690715077127793e-01 + -1.689376919605925e-01 + -1.688038595533757e-01 + -1.686700088249354e-01 + -1.685361380772680e-01 + -1.684022456043037e-01 + -1.682683297240474e-01 + -1.681343887869522e-01 + -1.680004210524648e-01 + -1.678664247764668e-01 + -1.677323982879569e-01 + -1.675983398888628e-01 + -1.674642478421112e-01 + -1.673301203727337e-01 + -1.671959557470875e-01 + -1.670617522514179e-01 + -1.669275081523977e-01 + -1.667932216748827e-01 + -1.666588910302535e-01 + -1.665245144618999e-01 + -1.663900902261115e-01 + -1.662556165573334e-01 + -1.661210916150787e-01 + -1.659865136192500e-01 + -1.658518808205523e-01 + -1.657171913793817e-01 + -1.655824434869752e-01 + -1.654476353589082e-01 + -1.653127651402884e-01 + -1.651778310039089e-01 + -1.650428311475997e-01 + -1.649077636947325e-01 + -1.647726268054878e-01 + -1.646374186795111e-01 + -1.645021374143022e-01 + -1.643667811219276e-01 + -1.642313479645375e-01 + -1.640958360797542e-01 + -1.639602435821208e-01 + -1.638245685678920e-01 + -1.636888091342957e-01 + -1.635529633807896e-01 + -1.634170294056715e-01 + -1.632810052843662e-01 + -1.631448890987297e-01 + -1.630086789505001e-01 + -1.628723728914803e-01 + -1.627359689604526e-01 + -1.625994652175857e-01 + -1.624628597296842e-01 + -1.623261505411777e-01 + -1.621893356498993e-01 + -1.620524130844338e-01 + -1.619153808874262e-01 + -1.617782370829140e-01 + -1.616409796594323e-01 + -1.615036066042981e-01 + -1.613661159511956e-01 + -1.612285056749289e-01 + -1.610907737177844e-01 + -1.609529180644884e-01 + -1.608149367058714e-01 + -1.606768276166446e-01 + -1.605385887249777e-01 + -1.604002179666082e-01 + -1.602617132920370e-01 + -1.601230726507729e-01 + -1.599842939686116e-01 + -1.598453751511857e-01 + -1.597063141136520e-01 + -1.595671087574746e-01 + -1.594277569704320e-01 + -1.592882566576958e-01 + -1.591486057239582e-01 + -1.590088020577491e-01 + -1.588688434990599e-01 + -1.587287278927537e-01 + -1.585884531125515e-01 + -1.584480170419727e-01 + -1.583074175205078e-01 + -1.581666523320080e-01 + -1.580257193426469e-01 + -1.578846164090064e-01 + -1.577433413163997e-01 + -1.576018918624315e-01 + -1.574602658488709e-01 + -1.573184610699215e-01 + -1.571764753211041e-01 + -1.570343063929105e-01 + -1.568919520623428e-01 + -1.567494100904384e-01 + -1.566066782348808e-01 + -1.564637542612438e-01 + -1.563206358983480e-01 + -1.561773208679784e-01 + -1.560338069324230e-01 + -1.558900918260982e-01 + -1.557461732592160e-01 + -1.556020489404925e-01 + -1.554577165574562e-01 + -1.553131737930803e-01 + -1.551684183667380e-01 + -1.550234479797016e-01 + -1.548782603038531e-01 + -1.547328529851514e-01 + -1.545872236759721e-01 + -1.544413700402710e-01 + -1.542952897416497e-01 + -1.541489804232354e-01 + -1.540024397056934e-01 + -1.538556652055174e-01 + -1.537086545589509e-01 + -1.535614054107616e-01 + -1.534139153265976e-01 + -1.532661818894184e-01 + -1.531182027303390e-01 + -1.529699754364569e-01 + -1.528214975805129e-01 + -1.526727667337492e-01 + -1.525237804315604e-01 + -1.523745362382714e-01 + -1.522250317710374e-01 + -1.520752645246755e-01 + -1.519252320010430e-01 + -1.517749318043420e-01 + -1.516243614355856e-01 + -1.514735183783821e-01 + -1.513224001894709e-01 + -1.511710043669709e-01 + -1.510193283881065e-01 + -1.508673697644896e-01 + -1.507151259726486e-01 + -1.505625944726656e-01 + -1.504097727456887e-01 + -1.502566582737337e-01 + -1.501032485283334e-01 + -1.499495409558064e-01 + -1.497955329817901e-01 + -1.496412220312461e-01 + -1.494866055649385e-01 + -1.493316810218445e-01 + -1.491764458131949e-01 + -1.490208973395277e-01 + -1.488650330073115e-01 + -1.487088502321930e-01 + -1.485523464347014e-01 + -1.483955190026080e-01 + -1.482383652905619e-01 + -1.480808826638546e-01 + -1.479230685198502e-01 + -1.477649202713839e-01 + -1.476064352431592e-01 + -1.474476107543291e-01 + -1.472884441602761e-01 + -1.471289328556787e-01 + -1.469690741904771e-01 + -1.468088654425319e-01 + -1.466483039513407e-01 + -1.464873870643751e-01 + -1.463261120992439e-01 + -1.461644763685366e-01 + -1.460024771711030e-01 + -1.458401117873900e-01 + -1.456773775256328e-01 + -1.455142717039091e-01 + -1.453507916253095e-01 + -1.451869345373153e-01 + -1.450226976893540e-01 + -1.448580783981553e-01 + -1.446930739597145e-01 + -1.445276816274984e-01 + -1.443618986028185e-01 + -1.441957221635531e-01 + -1.440291496154044e-01 + -1.438621781832398e-01 + -1.436948050802729e-01 + -1.435270275400491e-01 + -1.433588428498931e-01 + -1.431902482406432e-01 + -1.430212409022274e-01 + -1.428518180756519e-01 + -1.426819769869911e-01 + -1.425117148424586e-01 + -1.423410288662751e-01 + -1.421699162875700e-01 + -1.419983743276740e-01 + -1.418264001727286e-01 + -1.416539910114460e-01 + -1.414811440470098e-01 + -1.413078564852965e-01 + -1.411341255423312e-01 + -1.409599484327010e-01 + -1.407853222965617e-01 + -1.406102443173973e-01 + -1.404347117561954e-01 + -1.402587217519092e-01 + -1.400822714659246e-01 + -1.399053581557436e-01 + -1.397279789611117e-01 + -1.395501310267636e-01 + -1.393718115937786e-01 + -1.391930178402762e-01 + -1.390137469173205e-01 + -1.388339959972602e-01 + -1.386537622953096e-01 + -1.384730430031857e-01 + -1.382918352262208e-01 + -1.381101361784074e-01 + -1.379279430940128e-01 + -1.377452530885734e-01 + -1.375620633453186e-01 + -1.373783710804598e-01 + -1.371941734475252e-01 + -1.370094676273606e-01 + -1.368242508215203e-01 + -1.366385202106050e-01 + -1.364522729969404e-01 + -1.362655063841710e-01 + -1.360782175127518e-01 + -1.358904035964053e-01 + -1.357020618930480e-01 + -1.355131895302153e-01 + -1.353237837054462e-01 + -1.351338416922692e-01 + -1.349433606493001e-01 + -1.347523377766847e-01 + -1.345607703467432e-01 + -1.343686555800670e-01 + -1.341759906744941e-01 + -1.339827728348106e-01 + -1.337889993407819e-01 + -1.335946674413715e-01 + -1.333997743261954e-01 + -1.332043172962129e-01 + -1.330082936252972e-01 + -1.328117004983506e-01 + -1.326145352418741e-01 + -1.324167951779929e-01 + -1.322184775207451e-01 + -1.320195795498869e-01 + -1.318200985870884e-01 + -1.316200319613715e-01 + -1.314193769770063e-01 + -1.312181309395709e-01 + -1.310162911860090e-01 + -1.308138550466099e-01 + -1.306108198680959e-01 + -1.304071830473609e-01 + -1.302029419358534e-01 + -1.299980938748928e-01 + -1.297926362720222e-01 + -1.295865665431496e-01 + -1.293798820977739e-01 + -1.291725803345192e-01 + -1.289646586840201e-01 + -1.287561146028010e-01 + -1.285469455426532e-01 + -1.283371489741077e-01 + -1.281267223855238e-01 + -1.279156632656401e-01 + -1.277039691180485e-01 + -1.274916374652222e-01 + -1.272786658468367e-01 + -1.270650518164191e-01 + -1.268507929437779e-01 + -1.266358868257778e-01 + -1.264203310530910e-01 + -1.262041232080785e-01 + -1.259872609212462e-01 + -1.257697418614985e-01 + -1.255515637216261e-01 + -1.253327241582721e-01 + -1.251132208452764e-01 + -1.248930515084944e-01 + -1.246722139029198e-01 + -1.244507057917270e-01 + -1.242285249387353e-01 + -1.240056691417677e-01 + -1.237821362222557e-01 + -1.235579240163024e-01 + -1.233330303641722e-01 + -1.231074531412701e-01 + -1.228811902909497e-01 + -1.226542397328350e-01 + -1.224265993926709e-01 + -1.221982672554952e-01 + -1.219692413178169e-01 + -1.217395195880366e-01 + -1.215091001037845e-01 + -1.212779809466277e-01 + -1.210461602256936e-01 + -1.208136360512357e-01 + -1.205804065871132e-01 + -1.203464700244819e-01 + -1.201118245085727e-01 + -1.198764682774020e-01 + -1.196403996473917e-01 + -1.194036168896808e-01 + -1.191661183059585e-01 + -1.189279022478277e-01 + -1.186889671039581e-01 + -1.184493112863093e-01 + -1.182089332317922e-01 + -1.179678314226111e-01 + -1.177260043675167e-01 + -1.174834505981953e-01 + -1.172401686820595e-01 + -1.169961572351099e-01 + -1.167514149230550e-01 + -1.165059404117411e-01 + -1.162597324012717e-01 + -1.160127896494247e-01 + -1.157651109471359e-01 + -1.155166951180050e-01 + -1.152675410245315e-01 + -1.150176475647009e-01 + -1.147670136740031e-01 + -1.145156383362403e-01 + -1.142635205942373e-01 + -1.140106595167702e-01 + -1.137570541746248e-01 + -1.135027037005393e-01 + -1.132476072885310e-01 + -1.129917641930528e-01 + -1.127351736954119e-01 + -1.124778350964029e-01 + -1.122197477241451e-01 + -1.119609110122396e-01 + -1.117013244465126e-01 + -1.114409874638995e-01 + -1.111798996306716e-01 + -1.109180606010562e-01 + -1.106554699641756e-01 + -1.103921273860412e-01 + -1.101280326261970e-01 + -1.098631854961093e-01 + -1.095975858385727e-01 + -1.093312335328026e-01 + -1.090641285282797e-01 + -1.087962708201439e-01 + -1.085276604456853e-01 + -1.082582975002112e-01 + -1.079881821487157e-01 + -1.077173146235393e-01 + -1.074456951780328e-01 + -1.071733241222459e-01 + -1.069002018428373e-01 + -1.066263287812705e-01 + -1.063517054311524e-01 + -1.060763323447030e-01 + -1.058002101349244e-01 + -1.055233394662503e-01 + -1.052457210591484e-01 + -1.049673557111256e-01 + -1.046882442747131e-01 + -1.044083876525769e-01 + -1.041277868396362e-01 + -1.038464428925467e-01 + -1.035643569070283e-01 + -1.032815300276830e-01 + -1.029979634724506e-01 + -1.027136585692167e-01 + -1.024286166734134e-01 + -1.021428391952729e-01 + -1.018563276648054e-01 + -1.015690836461885e-01 + -1.012811087487812e-01 + -1.009924046817547e-01 + -1.007029732152899e-01 + -1.004128161832720e-01 + -1.001219355157012e-01 + -9.983033318947014e-02 + -9.953801123789381e-02 + -9.924497181065381e-02 + -9.895121710675164e-02 + -9.865674937610269e-02 + -9.836157098451072e-02 + -9.806568435550449e-02 + -9.776909196067303e-02 + -9.747179635418697e-02 + -9.717380018935569e-02 + -9.687510621844479e-02 + -9.657571724434684e-02 + -9.627563612429342e-02 + -9.597486578738405e-02 + -9.567340928055243e-02 + -9.537126972794066e-02 + -9.506845031433311e-02 + -9.476495428226560e-02 + -9.446078497156121e-02 + -9.415594584893169e-02 + -9.385044042616277e-02 + -9.354427227181475e-02 + -9.323744504129654e-02 + -9.292996250412121e-02 + -9.262182850819620e-02 + -9.231304696021701e-02 + -9.200362185853247e-02 + -9.169355729461479e-02 + -9.138285746240042e-02 + -9.107152658866502e-02 + -9.075956898041553e-02 + -9.044698911371001e-02 + -9.013379148226228e-02 + -8.981998063663986e-02 + -8.950556130228651e-02 + -8.919053824746566e-02 + -8.887491629233073e-02 + -8.855870039130662e-02 + -8.824189556852820e-02 + -8.792450692262105e-02 + -8.760653968435946e-02 + -8.728799913331863e-02 + -8.696889060279582e-02 + -8.664921956673162e-02 + -8.632899159487925e-02 + -8.600821233560418e-02 + -8.568688750540578e-02 + -8.536502290181033e-02 + -8.504262441718942e-02 + -8.471969805751253e-02 + -8.439624991228166e-02 + -8.407228614692197e-02 + -8.374781300392073e-02 + -8.342283682562317e-02 + -8.309736406563741e-02 + -8.277140122021633e-02 + -8.244495489588025e-02 + -8.211803185128563e-02 + -8.179063884910803e-02 + -8.146278271646745e-02 + -8.113447041766966e-02 + -8.080570906396743e-02 + -8.047650581443898e-02 + -8.014686781276095e-02 + -7.981680240792462e-02 + -7.948631704884632e-02 + -7.915541916537581e-02 + -7.882411634928695e-02 + -7.849241630024972e-02 + -7.816032674199919e-02 + -7.782785552351333e-02 + -7.749501058768483e-02 + -7.716179991262426e-02 + -7.682823159405887e-02 + -7.649431382724470e-02 + -7.616005485767063e-02 + -7.582546305035900e-02 + -7.549054686796573e-02 + -7.515531479419155e-02 + -7.481977542018518e-02 + -7.448393744841550e-02 + -7.414780964186224e-02 + -7.381140084542565e-02 + -7.347471999131863e-02 + -7.313777608894645e-02 + -7.280057821330421e-02 + -7.246313551410177e-02 + -7.212545725749871e-02 + -7.178755277686714e-02 + -7.144943146088469e-02 + -7.111110278446059e-02 + -7.077257629326426e-02 + -7.043386160590276e-02 + -7.009496843792977e-02 + -6.975590657859251e-02 + -6.941668588038064e-02 + -6.907731623736572e-02 + -6.873780762436528e-02 + -6.839817013263073e-02 + -6.805841390025939e-02 + -6.771854911509186e-02 + -6.737858603607710e-02 + -6.703853501790490e-02 + -6.669840646610939e-02 + -6.635821080020089e-02 + -6.601795854049251e-02 + -6.567766029345612e-02 + -6.533732672933422e-02 + -6.499696856244534e-02 + -6.465659655384894e-02 + -6.431622152906083e-02 + -6.397585437117004e-02 + -6.363550601749234e-02 + -6.329518746487584e-02 + -6.295490977261127e-02 + -6.261468405232740e-02 + -6.227452144919842e-02 + -6.193443314782195e-02 + -6.159443038613483e-02 + -6.125452449175782e-02 + -6.091472682299209e-02 + -6.057504875634485e-02 + -6.023550170757411e-02 + -5.989609715178513e-02 + -5.955684662483948e-02 + -5.921776169220818e-02 + -5.887885392543541e-02 + -5.854013491232313e-02 + -5.820161634720029e-02 + -5.786330995026137e-02 + -5.752522743033200e-02 + -5.718738052319666e-02 + -5.684978102238282e-02 + -5.651244078415603e-02 + -5.617537160914179e-02 + -5.583858533460867e-02 + -5.550209389764803e-02 + -5.516590918758542e-02 + -5.483004310132478e-02 + -5.449450760284144e-02 + -5.415931467224975e-02 + -5.382447627285256e-02 + -5.349000433169809e-02 + -5.315591089010736e-02 + -5.282220800586091e-02 + -5.248890761304951e-02 + -5.215602173570349e-02 + -5.182356244333215e-02 + -5.149154173522678e-02 + -5.115997163165661e-02 + -5.082886416999516e-02 + -5.049823136495267e-02 + -5.016808523392447e-02 + -4.983843779429676e-02 + -4.950930104255546e-02 + -4.918068697018742e-02 + -4.885260756307724e-02 + -4.852507478656667e-02 + -4.819810059193260e-02 + -4.787169691654435e-02 + -4.754587567726797e-02 + -4.722064876717863e-02 + -4.689602805511645e-02 + -4.657202539266345e-02 + -4.624865260469157e-02 + -4.592592148337583e-02 + -4.560384379218360e-02 + -4.528243126408893e-02 + -4.496169559628109e-02 + -4.464164845065374e-02 + -4.432230145577399e-02 + -4.400366620090135e-02 + -4.368575422918912e-02 + -4.336857704568598e-02 + -4.305214611378011e-02 + -4.273647284209545e-02 + -4.242156859535529e-02 + -4.210744469338823e-02 + -4.179411239819886e-02 + -4.148158291999365e-02 + -4.116986741259326e-02 + -4.085897697584740e-02 + -4.054892265423421e-02 + -4.023971542131075e-02 + -3.993136619382251e-02 + -3.962388583123071e-02 + -3.931728511726146e-02 + -3.901157477126550e-02 + -3.870676544906659e-02 + -3.840286772630143e-02 + -3.809989211312446e-02 + -3.779784905219891e-02 + -3.749674889469364e-02 + -3.719660192057603e-02 + -3.689741833904486e-02 + -3.659920826728452e-02 + -3.630198174507707e-02 + -3.600574873447752e-02 + -3.571051910326670e-02 + -3.541630263528623e-02 + -3.512310902944081e-02 + -3.483094789226868e-02 + -3.453982873906083e-02 + -3.424976098893085e-02 + -3.396075396966352e-02 + -3.367281691959212e-02 + -3.338595897696143e-02 + -3.310018917253339e-02 + -3.281551644593574e-02 + -3.253194963945627e-02 + -3.224949747985180e-02 + -3.196816859917648e-02 + -3.168797153104005e-02 + -3.140891468854379e-02 + -3.113100638362195e-02 + -3.085425482400445e-02 + -3.057866810270934e-02 + -3.030425420554928e-02 + -3.003102099769914e-02 + -2.975897623664901e-02 + -2.948812757423692e-02 + -2.921848253324668e-02 + -2.895004852283206e-02 + -2.868283284398848e-02 + -2.841684266935389e-02 + -2.815208505554401e-02 + -2.788856694668657e-02 + -2.762629515277662e-02 + -2.736527636581735e-02 + -2.710551716378724e-02 + -2.684702399109470e-02 + -2.658980317107453e-02 + -2.633386090723251e-02 + -2.607920326420626e-02 + -2.582583618939347e-02 + -2.557376551170278e-02 + -2.532299691452088e-02 + -2.507353595904179e-02 + -2.482538808499682e-02 + -2.457855859507147e-02 + -2.433305266394129e-02 + -2.408887533435539e-02 + -2.384603151841623e-02 + -2.360452600145211e-02 + -2.336436343201402e-02 + -2.312554832609387e-02 + -2.288808507226996e-02 + -2.265197791904223e-02 + -2.241723098404469e-02 + -2.218384825955722e-02 + -2.195183359578144e-02 + -2.172119070564114e-02 + -2.149192317903017e-02 + -2.126403446983029e-02 + -2.103752788800763e-02 + -2.081240661670658e-02 + -2.058867370373213e-02 + -2.036633206151460e-02 + -2.014538447470562e-02 + -1.992583358220780e-02 + -1.970768189350454e-02 + -1.949093179354288e-02 + -1.927558551890179e-02 + -1.906164517346932e-02 + -1.884911273803516e-02 + -1.863799005561765e-02 + -1.842827883084014e-02 + -1.821998063919436e-02 + -1.801309692347624e-02 + -1.780762899421212e-02 + -1.760357803216378e-02 + -1.740094507853177e-02 + -1.719973104881908e-02 + -1.699993673354589e-02 + -1.680156278321953e-02 + -1.660460972117107e-02 + -1.640907794332531e-02 + -1.621496771146485e-02 + -1.602227916433384e-02 + -1.583101231371427e-02 + -1.564116703862817e-02 + -1.545274309883748e-02 + -1.526574012772238e-02 + -1.508015761914186e-02 + -1.489599495303444e-02 + -1.471325139301425e-02 + -1.453192606709004e-02 + -1.435201798658663e-02 + -1.417352604127694e-02 + -1.399644899327932e-02 + -1.382078549302728e-02 + -1.364653407164367e-02 + -1.347369313289915e-02 + -1.330226097046918e-02 + -1.313223576283522e-02 + -1.296361556501821e-02 + -1.279639832327015e-02 + -1.263058187022890e-02 + -1.246616392163480e-02 + -1.230314208589229e-02 + -1.214151385550256e-02 + -1.198127661271531e-02 + -1.182242763705999e-02 + -1.166496409538715e-02 + -1.150888304589847e-02 + -1.135418144553720e-02 + -1.120085614521435e-02 + -1.104890388968280e-02 + -1.089832132231912e-02 + -1.074910498405016e-02 + -1.060125131793449e-02 + -1.045475666967276e-02 + -1.030961728045836e-02 + -1.016582929759894e-02 + -1.002338877483435e-02 + -9.882291666582974e-03 + -9.742533838318660e-03 + -9.604111064390042e-03 + -9.467019020603698e-03 + -9.331253297647066e-03 + -9.196809399717920e-03 + -9.063682741005771e-03 + -8.931868652392608e-03 + -8.801362376326071e-03 + -8.672159070075210e-03 + -8.544253813557785e-03 + -8.417641603575709e-03 + -8.292317355716863e-03 + -8.168275911736944e-03 + -8.045512032694060e-03 + -7.924020397696789e-03 + -7.803795618017998e-03 + -7.684832236645861e-03 + -7.567124714929550e-03 + -7.450667444285828e-03 + -7.335454748033539e-03 + -7.221480883382279e-03 + -7.108740043647531e-03 + -6.997226348639058e-03 + -6.886933855315346e-03 + -6.777856561420043e-03 + -6.669988397445708e-03 + -6.563323236817328e-03 + -6.457854897474280e-03 + -6.353577131920331e-03 + -6.250483639666226e-03 + -6.148568068731946e-03 + -6.047824005897748e-03 + -5.948244987599076e-03 + -5.849824501347084e-03 + -5.752555978513681e-03 + -5.656432807264865e-03 + -5.561448332218353e-03 + -5.467595840626229e-03 + -5.374868578311233e-03 + -5.283259752176146e-03 + -5.192762521793490e-03 + -5.103370006626977e-03 + -5.015075286629148e-03 + -4.927871401782054e-03 + -4.841751355904269e-03 + -4.756708115524279e-03 + -4.672734611342882e-03 + -4.589823741835811e-03 + -4.507968371897898e-03 + -4.427161334111035e-03 + -4.347395432360992e-03 + -4.268663440821394e-03 + -4.190958105123732e-03 + -4.114272145237943e-03 + -4.038598254543495e-03 + -3.963929102325757e-03 + -3.890257335680627e-03 + -3.817575578228647e-03 + -3.745876433060482e-03 + -3.675152484340320e-03 + -3.605396296371936e-03 + -3.536600416225055e-03 + -3.468757375181376e-03 + -3.401859688514519e-03 + -3.335899857279008e-03 + -3.270870369624132e-03 + -3.206763701552144e-03 + -3.143572317880366e-03 + -3.081288673370167e-03 + -3.019905214426235e-03 + -2.959414379161780e-03 + -2.899808598243805e-03 + -2.841080297295089e-03 + -2.783221897187762e-03 + -2.726225814481816e-03 + -2.670084462721576e-03 + -2.614790253659214e-03 + -2.560335598217736e-03 + -2.506712907773368e-03 + -2.453914594305456e-03 + -2.401933071402304e-03 + -2.350760756079694e-03 + -2.300390068609935e-03 + -2.250813433830373e-03 + -2.202023282926124e-03 + -2.154012052729510e-03 + -2.106772187286276e-03 + -2.060296139752280e-03 + -2.014576371403607e-03 + -1.969605353508076e-03 + -1.925375568654703e-03 + -1.881879509874747e-03 + -1.839109683164610e-03 + -1.797058608044933e-03 + -1.755718816706420e-03 + -1.715082857166331e-03 + -1.675143293280333e-03 + -1.635892703443056e-03 + -1.597323683697497e-03 + -1.559428848712492e-03 + -1.522200830321536e-03 + -1.485632280183934e-03 + -1.449715870092584e-03 + -1.414444291041649e-03 + -1.379810256474448e-03 + -1.345806501791486e-03 + -1.312425783716085e-03 + -1.279660883530597e-03 + -1.247504606026809e-03 + -1.215949779407020e-03 + -1.184989258561609e-03 + -1.154615923413642e-03 + -1.124822679454977e-03 + -1.095602461024569e-03 + -1.066948228352973e-03 + -1.038852968864840e-03 + -1.011309701783447e-03 + -9.843114734261671e-04 + -9.578513585924095e-04 + -9.319224654553773e-04 + -9.065179311555053e-04 + -8.816309237062864e-04 + -8.572546450286300e-04 + -8.333823272254078e-04 + -8.100072355517002e-04 + -7.871226705798197e-04 + -7.647219641139264e-04 + -7.427984826268421e-04 + -7.213456295816899e-04 + -7.003568409622573e-04 + -6.798255887472549e-04 + -6.597453829223955e-04 + -6.401097674232178e-04 + -6.209123240167792e-04 + -6.021466729184949e-04 + -5.838064694784330e-04 + -5.658854088227745e-04 + -5.483772251938055e-04 + -5.312756891491387e-04 + -5.145746125261390e-04 + -4.982678466736966e-04 + -4.823492804447342e-04 + -4.668128456938979e-04 + -4.516525141842837e-04 + -4.368622962674093e-04 + -4.224362466667431e-04 + -4.083684605074392e-04 + -3.946530726767535e-04 + -3.812842634726816e-04 + -3.682562540846601e-04 + -3.555633067280622e-04 + -3.431997298953713e-04 + -3.311598733734528e-04 + -3.194381292167991e-04 + -3.080289365424697e-04 + -2.969267761950205e-04 + -2.861261725181284e-04 + -2.756216974519896e-04 + -2.654079650780054e-04 + -2.554796342192304e-04 + -2.458314117831762e-04 + -2.364580472261255e-04 + -2.273543358783364e-04 + -2.185151214599497e-04 + -2.099352907310207e-04 + -2.016097775283348e-04 + -1.935335642058985e-04 + -1.857016766078902e-04 + -1.781091887621722e-04 + -1.707512232636694e-04 + -1.636229467286454e-04 + -1.567195750846747e-04 + -1.500363727286114e-04 + -1.435686485603325e-04 + -1.373117617901810e-04 + -1.312611200233150e-04 + -1.254121759173047e-04 + -1.197604333131590e-04 + -1.143014443478538e-04 + -1.090308067994204e-04 + -1.039441703359566e-04 + -9.903723276260782e-05 + -9.430573818110019e-05 + -8.974548326970851e-05 + -8.535231263786576e-05 + -8.112211782233505e-05 + -7.705084341917009e-05 + -7.313448187442813e-05 + -6.936907333027644e-05 + -6.575071119249467e-05 + -6.227553658275769e-05 + -5.893973914900695e-05 + -5.573956203853484e-05 + -5.267129595161032e-05 + -4.973128084575291e-05 + -4.691591029739419e-05 + -4.422162539456759e-05 + -4.164491727590835e-05 + -3.918233061143914e-05 + -3.683045757249665e-05 + -3.458594118927672e-05 + -3.244547785270521e-05 + -3.040581149216269e-05 + -2.846373767254703e-05 + -2.661610506551807e-05 + -2.485980997915884e-05 + -2.319180110803831e-05 + -2.160907991664170e-05 + -2.010869565536285e-05 + -1.868775067119526e-05 + -1.734339969669114e-05 + -1.607284546059277e-05 + -1.487334444060605e-05 + -1.374220506933501e-05 + -1.267678404087566e-05 + -1.167449238525668e-05 + -1.073279264625808e-05 + -9.849195952118955e-06 + -9.021268250139948e-06 + -8.246626567968640e-06 + -7.522936912951058e-06 + -6.847920492700095e-06 + -6.219349168072015e-06 + -5.635044236568559e-06 + -5.092882470932048e-06 + -4.590790895044201e-06 + -4.126746487291455e-06 + -3.698781859286729e-06 + -3.304979520120749e-06 + -2.943472506918129e-06 + -2.612449510984778e-06 + -2.310148834845521e-06 + -2.034859929271865e-06 + -1.784927798002038e-06 + -1.558746837246077e-06 + -1.354763241038800e-06 + -1.171478551126456e-06 + -1.007443551831214e-06 + -8.612614901318561e-07 + -7.315906671893518e-07 + -6.171385461507109e-07 + -5.166657190198488e-07 + -4.289874671965282e-07 + -3.529682224298676e-07 + -2.875261969469119e-07 + -2.316338735426513e-07 + -1.843129441850586e-07 + -1.446395043479685e-07 + -1.117434618507405e-07 + -8.480406305106530e-08 + -6.305553831873507e-08 + -4.578544870958251e-08 + -3.233089380928512e-08 + -2.208448022054805e-08 + -1.449165750478591e-08 + -9.047683233008124e-09 + -5.303766739728543e-09 + -2.863504097386866e-09 + -1.380623394721897e-09 + -5.650641971230870e-10 + -1.790372475752245e-10 + -3.511990521548007e-11 + -8.192061809269277e-13 + 0.000000000000000e+00 diff --git a/examples/SPIN/test_problems/validation_nve/in.spin.iron-nve b/examples/SPIN/test_problems/validation_nve/in.spin.iron-nve new file mode 100644 index 0000000000000000000000000000000000000000..f00fb1ec12500b61e3517fd307bf2c7c5dcf7cea --- /dev/null +++ b/examples/SPIN/test_problems/validation_nve/in.spin.iron-nve @@ -0,0 +1,49 @@ +# bcc iron in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +region box block 0.0 3.0 0.0 3.0 0.0 3.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 +set group all spin/random 31 2.2 +velocity all create 100 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.02726 0.2171 1.841 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 0.0 0.00 21 +fix 3 all nve/spin lattice moving +timestep 0.0001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_tmag temp v_emag ke pe etotal +thermo 200 + +run 100000 diff --git a/examples/SPIN/test_problems/validation_nve/plot_nve.py b/examples/SPIN/test_problems/validation_nve/plot_nve.py new file mode 100755 index 0000000000000000000000000000000000000000..ffa7defaeda2e9599af8da0a80e4413280b470ee --- /dev/null +++ b/examples/SPIN/test_problems/validation_nve/plot_nve.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + +import numpy as np, pylab, tkinter +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +from decimal import * +import sys, string, os + + +argv = sys.argv +if len(argv) != 3: + print("Syntax: ./plot_precession.py res_lammps.dat") + sys.exit() + +dirname = os.path.join(os.getcwd(), "Feb_07") +lammps_file = sys.argv[1] +llg_file = sys.argv[2] + +t,tmag,temp,e_mag,e_kin,e_pot,e_tot = np.loadtxt(lammps_file,skiprows=0, usecols=(1,2,3,4,5,6,7),unpack=True) + +fig = plt.figure(figsize=(8,8)) +ax1 = plt.subplot(3,1,1) +ax2 = plt.subplot(3,1,2) +ax3 = plt.subplot(3,1,3) + +ax1.plot(t, e_tot, 'k-', label='Total energy') +ax1.plot(t, e_pot, 'r-', label='Potential energy') +ax1.set_ylabel("E (eV)") +ax1.legend(loc=3) + +ax2.plot(t, e_kin, 'b-', label='Kinetic energy') +ax2.plot(t, e_mag, 'g-', label='Magnetic energy') +ax2.set_ylabel("E (eV)") +ax2.legend(loc=3) + +ax3.plot(t, temp, 'b--', label='Latt. temperature') +ax3.plot(t, tmag, 'r--', label='Spin temperature') +ax3.set_ylabel("T (K)") +ax3.legend(loc=3) + +plt.xlabel('Time (in ps)') +plt.legend() +plt.show() + +fig.savefig(os.path.join(os.getcwd(), "nve_spin_lattice.pdf"), bbox_inches="tight") +plt.close(fig) diff --git a/examples/SPIN/test_problems/validation_nve/run-test-nve.sh b/examples/SPIN/test_problems/validation_nve/run-test-nve.sh new file mode 100755 index 0000000000000000000000000000000000000000..441e7cf46d7c3ceb27c02a8f4bc18afeb0760331 --- /dev/null +++ b/examples/SPIN/test_problems/validation_nve/run-test-nve.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# clean old res +rm res_*.dat + +# compute Lammps +./../../../../src/lmp_serial \ + -in in.spin.iron-nve +in="$(grep -n Step log.lammps | awk -F ':' '{print $1}')" +en="$(grep -n Loop log.lammps | awk -F ':' '{print $1}')" +in="$(echo "$in+1" | bc -l)" +en="$(echo "$en-$in" | bc -l)" +tail -n +$in log.lammps | head -n $en > res_lammps.dat + +# plot results +python3 -m plot_nve.py res_lammps.dat res_llg.dat diff --git a/examples/SPIN/test_problems/validation_nvt/Fe_Mishin2006.eam.alloy b/examples/SPIN/test_problems/validation_nvt/Fe_Mishin2006.eam.alloy new file mode 100644 index 0000000000000000000000000000000000000000..69231bb7eeed5677009482896fe520f4445413dd --- /dev/null +++ b/examples/SPIN/test_problems/validation_nvt/Fe_Mishin2006.eam.alloy @@ -0,0 +1,15009 @@ +comment 1 +comment 2 +Converted by Ganga P Purja Pun using C++ code on Mon Nov 3 10:48:17 2014 +1 Fe +5001 2.400000000000000e-03 5001 1.134673400048920e-03 5.673367000244601e+00 +26 5.584700000000000e+01 2.855300000000000e+00 BCC + 0.000000000000000e+00 + -2.338738741480766e-02 + -4.628214468925276e-02 + -6.912258036387915e-02 + -9.175603963501618e-02 + -1.141497214000000e-01 + -1.363388222824136e-01 + -1.583226111166723e-01 + -1.800965752913192e-01 + -2.016645989796093e-01 + -2.230289901000000e-01 + -2.441907391820846e-01 + -2.651515164004249e-01 + -2.859130554412839e-01 + -3.064769176965011e-01 + -3.268446844000000e-01 + -3.470179531091855e-01 + -3.669982968636285e-01 + -3.867872784635140e-01 + -4.063864535839295e-01 + -4.257973671999999e-01 + -4.450215551034667e-01 + -4.640605423684923e-01 + -4.829158454463851e-01 + -5.015889707095635e-01 + -5.200814146000000e-01 + -5.383946650297390e-01 + -5.565301991603658e-01 + -5.744894857268537e-01 + -5.922739837155686e-01 + -6.098851423000000e-01 + -6.273244022645037e-01 + -6.445931939756846e-01 + -6.616929394780281e-01 + -6.786250511352716e-01 + -6.953909318999999e-01 + -7.119919765952718e-01 + -7.284295696432279e-01 + -7.447050873484842e-01 + -7.608198966551055e-01 + -7.767753551999997e-01 + -7.925728126189590e-01 + -8.082136084644670e-01 + -8.236990743647939e-01 + -8.390305327768360e-01 + -8.542092970000001e-01 + -8.692366724924486e-01 + -8.841139549244775e-01 + -8.988424321942350e-01 + -9.134233831702263e-01 + -9.278580778000000e-01 + -9.421477783833053e-01 + -9.562937376266863e-01 + -9.702972006149804e-01 + -9.841594035897939e-01 + -9.978815741999999e-01 + -1.011464932626877e+00 + -1.024910689374227e+00 + -1.038220047492379e+00 + -1.051394201530088e+00 + -1.064434338000000e+00 + -1.077341636148692e+00 + -1.090117264995124e+00 + -1.102762386491716e+00 + -1.115278154872840e+00 + -1.127665716000000e+00 + -1.139926208397942e+00 + -1.152060761127338e+00 + -1.164070496370367e+00 + -1.175956528594255e+00 + -1.187719964000000e+00 + -1.199361901614307e+00 + -1.210883431375302e+00 + -1.222285636497208e+00 + -1.233569592577916e+00 + -1.244736367000000e+00 + -1.255787020138112e+00 + -1.266722603828963e+00 + -1.277544163022812e+00 + -1.288252734706093e+00 + -1.298849349000000e+00 + -1.309335029515858e+00 + -1.319710789766606e+00 + -1.329977637188551e+00 + -1.340136572985217e+00 + -1.350188590000000e+00 + -1.360134674013246e+00 + -1.369975802739515e+00 + -1.379712947700534e+00 + -1.389347073262624e+00 + -1.398879136000000e+00 + -1.408310086019347e+00 + -1.417640866058629e+00 + -1.426872412303706e+00 + -1.436005653062347e+00 + -1.445041510000000e+00 + -1.453980898788701e+00 + -1.462824726507764e+00 + -1.471573894410746e+00 + -1.480229297407323e+00 + -1.488791823000000e+00 + -1.497262352264216e+00 + -1.505641758273629e+00 + -1.513930908641532e+00 + -1.522130664940848e+00 + -1.530241881000000e+00 + -1.538265404312065e+00 + -1.546202075663511e+00 + -1.554052729949587e+00 + -1.561818194964572e+00 + -1.569499292000000e+00 + -1.577096836740392e+00 + -1.584611637631811e+00 + -1.592044497451960e+00 + -1.599396212413425e+00 + -1.606667572000000e+00 + -1.613859360067553e+00 + -1.620972353850301e+00 + -1.628007324820493e+00 + -1.634965037585305e+00 + -1.641846251000000e+00 + -1.648651718746855e+00 + -1.655382187120556e+00 + -1.662038397074428e+00 + -1.668621083574689e+00 + -1.675130975000000e+00 + -1.681568794320005e+00 + -1.687935258528783e+00 + -1.694231079461267e+00 + -1.700456962682860e+00 + -1.706613607000000e+00 + -1.712701705964896e+00 + -1.718721948142722e+00 + -1.724675016499694e+00 + -1.730561586828580e+00 + -1.736382330000000e+00 + -1.742137912457411e+00 + -1.747828994017656e+00 + -1.753456229026646e+00 + -1.759020265526974e+00 + -1.764521747000000e+00 + -1.769961312537754e+00 + -1.775339594027171e+00 + -1.780657218386706e+00 + -1.785914807192779e+00 + -1.791112977000000e+00 + -1.796252339747382e+00 + -1.801333500673453e+00 + -1.806357060360666e+00 + -1.811323614328498e+00 + -1.816233753000000e+00 + -1.821088062150410e+00 + -1.825887120985276e+00 + -1.830631504346673e+00 + -1.835321782397329e+00 + -1.839958520000000e+00 + -1.844542277375300e+00 + -1.849073608812209e+00 + -1.853553064572349e+00 + -1.857981190434394e+00 + -1.862358526000000e+00 + -1.866685606181999e+00 + -1.870962962067843e+00 + -1.875191119963197e+00 + -1.879370599902195e+00 + -1.883501918000000e+00 + -1.887585586736770e+00 + -1.891622112755978e+00 + -1.895611998485404e+00 + -1.899555741651499e+00 + -1.903453835000000e+00 + -1.907306767129976e+00 + -1.911115021853308e+00 + -1.914879078883785e+00 + -1.918599413067872e+00 + -1.922276495000000e+00 + -1.925910791456493e+00 + -1.929502763824010e+00 + -1.933052869645757e+00 + -1.936561562187136e+00 + -1.940029290000000e+00 + -1.943456497684402e+00 + -1.946843625242175e+00 + -1.950191109032846e+00 + -1.953499381145042e+00 + -1.956768869000000e+00 + -1.959999996258605e+00 + -1.963193182622893e+00 + -1.966348843806269e+00 + -1.969467390558660e+00 + -1.972549230000000e+00 + -1.975594766012145e+00 + -1.978604397775412e+00 + -1.981578520793180e+00 + -1.984517526364655e+00 + -1.987421802000000e+00 + -1.990291731861874e+00 + -1.993127695559656e+00 + -1.995930069364364e+00 + -1.998699225767272e+00 + -2.001435533000000e+00 + -2.004139355858378e+00 + -2.006811055538481e+00 + -2.009450989763890e+00 + -2.012059511961222e+00 + -2.014636972000000e+00 + -2.017183716742461e+00 + -2.019700089231340e+00 + -2.022186429001382e+00 + -2.024643071393187e+00 + -2.027070349000000e+00 + -2.029468591629637e+00 + -2.031838124095820e+00 + -2.034179268100215e+00 + -2.036492342201070e+00 + -2.038777662000000e+00 + -2.041035540156417e+00 + -2.043266284490031e+00 + -2.045470200083453e+00 + -2.047647589335177e+00 + -2.049798751000000e+00 + -2.051923980684690e+00 + -2.054023570214561e+00 + -2.056097808968247e+00 + -2.058146983649728e+00 + -2.060171377000000e+00 + -2.062171268551674e+00 + -2.064146934640815e+00 + -2.066098649159696e+00 + -2.068026683134947e+00 + -2.069931304000000e+00 + -2.071812776276246e+00 + -2.073671361471072e+00 + -2.075507318519566e+00 + -2.077320903301032e+00 + -2.079112369000000e+00 + -2.080881966139512e+00 + -2.082629940879466e+00 + -2.084356537486872e+00 + -2.086061998635378e+00 + -2.087746563000000e+00 + -2.089410466229110e+00 + -2.091053941828707e+00 + -2.092677220771137e+00 + -2.094280530723314e+00 + -2.095864097000000e+00 + -2.097428142794787e+00 + -2.098972888139794e+00 + -2.100498550462023e+00 + -2.102005344216306e+00 + -2.103493482000000e+00 + -2.104963174393948e+00 + -2.106414628045970e+00 + -2.107848047779690e+00 + -2.109263636820768e+00 + -2.110661595000000e+00 + -2.112042119471926e+00 + -2.113405405101743e+00 + -2.114751645122076e+00 + -2.116081030815763e+00 + -2.117393750000000e+00 + -2.118689987937912e+00 + -2.119969928191390e+00 + -2.121233752504371e+00 + -2.122481640223532e+00 + -2.123713768000000e+00 + -2.124930310308645e+00 + -2.126131439345980e+00 + -2.127317325650607e+00 + -2.128488137848567e+00 + -2.129644042000000e+00 + -2.130785202020548e+00 + -2.131911779449632e+00 + -2.133023934312029e+00 + -2.134121824962966e+00 + -2.135205607000000e+00 + -2.136275433910872e+00 + -2.137331457489147e+00 + -2.138373827747866e+00 + -2.139402692469194e+00 + -2.140418197999999e+00 + -2.141420489142081e+00 + -2.142409707722756e+00 + -2.143385994030927e+00 + -2.144349486926974e+00 + -2.145300323000000e+00 + -2.146238637076898e+00 + -2.147164562479522e+00 + -2.148078231051947e+00 + -2.148979772720135e+00 + -2.149869315000000e+00 + -2.150746983835218e+00 + -2.151612904662093e+00 + -2.152467200947815e+00 + -2.153309993218032e+00 + -2.154141401000000e+00 + -2.154961542883784e+00 + -2.155770535619624e+00 + -2.156568494253713e+00 + -2.157355531798206e+00 + -2.158131760000000e+00 + -2.158897289576013e+00 + -2.159652229917454e+00 + -2.160396688379106e+00 + -2.161130769707277e+00 + -2.161854579000000e+00 + -2.162568220747540e+00 + -2.163271795520776e+00 + -2.163965403104795e+00 + -2.164649143391419e+00 + -2.165323114000000e+00 + -2.165987410839904e+00 + -2.166642128874188e+00 + -2.167287362019562e+00 + -2.167923202786971e+00 + -2.168549742000000e+00 + -2.169167069289456e+00 + -2.169775273557456e+00 + -2.170374442741976e+00 + -2.170964663390078e+00 + -2.171546020000000e+00 + -2.172118595836383e+00 + -2.172682474202094e+00 + -2.173237737093693e+00 + -2.173784464448991e+00 + -2.174322736000000e+00 + -2.174852630794634e+00 + -2.175374225221640e+00 + -2.175887595177988e+00 + -2.176392816678372e+00 + -2.176889964000000e+00 + -2.177379110090651e+00 + -2.177860327096639e+00 + -2.178333686466943e+00 + -2.178799258747679e+00 + -2.179257113000000e+00 + -2.179707317299531e+00 + -2.180149939409128e+00 + -2.180585046165010e+00 + -2.181012703042297e+00 + -2.181432975000000e+00 + -2.181845926509731e+00 + -2.182251621108717e+00 + -2.182650121032542e+00 + -2.183041486916871e+00 + -2.183425780000000e+00 + -2.183803061402426e+00 + -2.184173389857596e+00 + -2.184536823542827e+00 + -2.184893420600431e+00 + -2.185243238000000e+00 + -2.185586332004080e+00 + -2.185922759056265e+00 + -2.186252574500474e+00 + -2.186575831916728e+00 + -2.186892585000000e+00 + -2.187202887393400e+00 + -2.187506791832633e+00 + -2.187804350256584e+00 + -2.188095613705712e+00 + -2.188380633000000e+00 + -2.188659458643119e+00 + -2.188932140238827e+00 + -2.189198726845117e+00 + -2.189459267002233e+00 + -2.189713809000000e+00 + -2.189962400732430e+00 + -2.190205089044370e+00 + -2.190441920581333e+00 + -2.190672942002169e+00 + -2.190898199000000e+00 + -2.191117736662499e+00 + -2.191331600149922e+00 + -2.191539834109547e+00 + -2.191742482380937e+00 + -2.191939589000000e+00 + -2.192131197889608e+00 + -2.192317351831708e+00 + -2.192498093290244e+00 + -2.192673464653123e+00 + -2.192843508000000e+00 + -2.193008265149897e+00 + -2.193167777657277e+00 + -2.193322086821774e+00 + -2.193471233640668e+00 + -2.193615259000000e+00 + -2.193754203483761e+00 + -2.193888106693908e+00 + -2.194017008313546e+00 + -2.194140948496115e+00 + -2.194259967000000e+00 + -2.194374103230534e+00 + -2.194483396307522e+00 + -2.194587885225862e+00 + -2.194687608881331e+00 + -2.194782606000000e+00 + -2.194872915200472e+00 + -2.194958575082935e+00 + -2.195039623893670e+00 + -2.195116099394696e+00 + -2.195188040000000e+00 + -2.195255484352944e+00 + -2.195318470219860e+00 + -2.195377035223315e+00 + -2.195431217130485e+00 + -2.195481054000000e+00 + -2.195526583926446e+00 + -2.195567844428364e+00 + -2.195604873029958e+00 + -2.195637707516086e+00 + -2.195666386000000e+00 + -2.195690946583878e+00 + -2.195711426545218e+00 + -2.195727863658885e+00 + -2.195740296673043e+00 + -2.195748763000000e+00 + -2.195753299607926e+00 + -2.195753945356280e+00 + -2.195750739132009e+00 + -2.195743719093693e+00 + -2.195732923000000e+00 + -2.195718388771941e+00 + -2.195700155840199e+00 + -2.195678263244660e+00 + -2.195652748934943e+00 + -2.195623652000000e+00 + -2.195591012099144e+00 + -2.195554867993407e+00 + -2.195515258985693e+00 + -2.195472225489285e+00 + -2.195425807000000e+00 + -2.195376042760528e+00 + -2.195322973614639e+00 + -2.195266640267298e+00 + -2.195207082686241e+00 + -2.195144342000000e+00 + -2.195078459809379e+00 + -2.195009476453377e+00 + -2.194937433066797e+00 + -2.194862372466152e+00 + -2.194784337000000e+00 + -2.194703368615792e+00 + -2.194619509257747e+00 + -2.194532801771278e+00 + -2.194443290305841e+00 + -2.194351018000000e+00 + -2.194256027737437e+00 + -2.194158364279782e+00 + -2.194058072250755e+00 + -2.193955195446114e+00 + -2.193849779000000e+00 + -2.193741868885436e+00 + -2.193631510785602e+00 + -2.193518750557477e+00 + -2.193403634464252e+00 + -2.193286209000000e+00 + -2.193166521091908e+00 + -2.193044618884907e+00 + -2.192920550384463e+00 + -2.192794362988794e+00 + -2.192666105000000e+00 + -2.192535825071375e+00 + -2.192403570783236e+00 + -2.192269389306454e+00 + -2.192133327558461e+00 + -2.191995432000000e+00 + -2.191855748732582e+00 + -2.191714323538803e+00 + -2.191571201647935e+00 + -2.191426427571225e+00 + -2.191280046000000e+00 + -2.191132101498374e+00 + -2.190982637495000e+00 + -2.190831697104933e+00 + -2.190679323369808e+00 + -2.190525559000000e+00 + -2.190370446239990e+00 + -2.190214026313205e+00 + -2.190056340263544e+00 + -2.189897429222788e+00 + -2.189737334000000e+00 + -2.189576094894156e+00 + -2.189413751026334e+00 + -2.189250341662785e+00 + -2.189085906605225e+00 + -2.188920484000000e+00 + -2.188754111167896e+00 + -2.188586826517446e+00 + -2.188418667831656e+00 + -2.188249671505532e+00 + -2.188079874000000e+00 + -2.187909311655257e+00 + -2.187738019850499e+00 + -2.187566033827133e+00 + -2.187393388939138e+00 + -2.187220120000000e+00 + -2.187046261198758e+00 + -2.186871845656608e+00 + -2.186696906557450e+00 + -2.186521477499284e+00 + -2.186345591000000e+00 + -2.186169278929348e+00 + -2.185992573469870e+00 + -2.185815507881449e+00 + -2.185638116930091e+00 + -2.185460435000000e+00 + -2.185282496723147e+00 + -2.185104339046128e+00 + -2.184925999471230e+00 + -2.184747515559985e+00 + -2.184568926000000e+00 + -2.184390270419004e+00 + -2.184211589307456e+00 + -2.184032923638580e+00 + -2.183854314918697e+00 + -2.183675806000000e+00 + -2.183497440664645e+00 + -2.183319263062145e+00 + -2.183141318226586e+00 + -2.182963652427783e+00 + -2.182786312000000e+00 + -2.182609343803448e+00 + -2.182432796909005e+00 + -2.182256720850984e+00 + -2.182081165100584e+00 + -2.181906180000000e+00 + -2.181731816772078e+00 + -2.181558127901617e+00 + -2.181385166690271e+00 + -2.181212987245827e+00 + -2.181041644000000e+00 + -2.180871191888493e+00 + -2.180701687214938e+00 + -2.180533187286951e+00 + -2.180365750436408e+00 + -2.180199435000000e+00 + -2.180034299706266e+00 + -2.179870405073628e+00 + -2.179707812476292e+00 + -2.179546583956951e+00 + -2.179386782000000e+00 + -2.179228469569652e+00 + -2.179071710572415e+00 + -2.178916570209873e+00 + -2.178763115274171e+00 + -2.178611412000000e+00 + -2.178461526719817e+00 + -2.178313527960817e+00 + -2.178167485170301e+00 + -2.178023468394170e+00 + -2.177881548000000e+00 + -2.177741794911888e+00 + -2.177604281585152e+00 + -2.177469081134519e+00 + -2.177336267165003e+00 + -2.177205914000000e+00 + -2.177078096781969e+00 + -2.176952892179310e+00 + -2.176830377266735e+00 + -2.176710629289710e+00 + -2.176593727000000e+00 + -2.176479750089725e+00 + -2.176368778170715e+00 + -2.176260892035270e+00 + -2.176156174290115e+00 + -2.176054707000000e+00 + -2.175956572480315e+00 + -2.175861855847520e+00 + -2.175770642395214e+00 + -2.175683016800304e+00 + -2.175599066000000e+00 + -2.175518878125867e+00 + -2.175442540126260e+00 + -2.175370140365612e+00 + -2.175301769822078e+00 + -2.175237519000000e+00 + -2.175177478422601e+00 + -2.175121740498959e+00 + -2.175070398200953e+00 + -2.175023544771637e+00 + -2.174981275000000e+00 + -2.174943684570890e+00 + -2.174910868831887e+00 + -2.174882924320826e+00 + -2.174859949548785e+00 + -2.174842043000000e+00 + -2.174829303331104e+00 + -2.174821830410927e+00 + -2.174819725228089e+00 + -2.174823090027552e+00 + -2.174832027000000e+00 + -2.174846638699704e+00 + -2.174867029559900e+00 + -2.174893304738549e+00 + -2.174925569834485e+00 + -2.174963931000000e+00 + -2.175008495084293e+00 + -2.175059370394289e+00 + -2.175116665887380e+00 + -2.175180491027200e+00 + -2.175250956000000e+00 + -2.175328171805043e+00 + -2.175412250937077e+00 + -2.175503306357684e+00 + -2.175601451271103e+00 + -2.175706800000000e+00 + -2.175819467765500e+00 + -2.175939570549688e+00 + -2.176067225041086e+00 + -2.176202548787411e+00 + -2.176345660000000e+00 + -2.176496677644949e+00 + -2.176655722183164e+00 + -2.176822914601843e+00 + -2.176998376191533e+00 + -2.177182229000000e+00 + -2.177374595921169e+00 + -2.177575601341799e+00 + -2.177785370087074e+00 + -2.178004027196875e+00 + -2.178231699000000e+00 + -2.178468512862275e+00 + -2.178714597011325e+00 + -2.178970080062299e+00 + -2.179235091002944e+00 + -2.179509760000000e+00 + -2.179794218272507e+00 + -2.180088598277346e+00 + -2.180393032665419e+00 + -2.180707654074028e+00 + -2.181032597000000e+00 + -2.181367997183408e+00 + -2.181713990526695e+00 + -2.182070713375897e+00 + -2.182438302803596e+00 + -2.182816897000000e+00 + -2.183206635150288e+00 + -2.183607657686531e+00 + -2.184020105275964e+00 + -2.184444118610974e+00 + -2.184879840000000e+00 + -2.185327412889597e+00 + -2.185786981109685e+00 + -2.186258689137973e+00 + -2.186742682377725e+00 + -2.187239107000000e+00 + -2.187748109862624e+00 + -2.188269838801850e+00 + -2.188804442677439e+00 + -2.189352071523296e+00 + -2.189912875000000e+00 + -2.190487003093955e+00 + -2.191074608322116e+00 + -2.191675843787203e+00 + -2.192290862610885e+00 + -2.192919819000000e+00 + -2.193562867915730e+00 + -2.194220164552147e+00 + -2.194891865404003e+00 + -2.195578128862665e+00 + -2.196279113000000e+00 + -2.196994976008069e+00 + -2.197725877814248e+00 + -2.198471979076637e+00 + -2.199233441010543e+00 + -2.200010426000000e+00 + -2.200803097224683e+00 + -2.201611618154960e+00 + -2.202436152922896e+00 + -2.203276866629103e+00 + -2.204133924999999e+00 + -2.205007494076377e+00 + -2.205897739759803e+00 + -2.206804828380775e+00 + -2.207728927012060e+00 + -2.208670203000000e+00 + -2.209628824019662e+00 + -2.210604958519273e+00 + -2.211598775212799e+00 + -2.212610442959744e+00 + -2.213640131000000e+00 + -2.214688008997179e+00 + -2.215754247358006e+00 + -2.216839016713686e+00 + -2.217942487809252e+00 + -2.219064832000000e+00 + -2.220206221175054e+00 + -2.221366827800435e+00 + -2.222546824259503e+00 + -2.223746382727115e+00 + -2.224965677000000e+00 + -2.226204881636015e+00 + -2.227464170011377e+00 + -2.228743716360184e+00 + -2.230043696636770e+00 + -2.231364286000000e+00 + -2.232705659360148e+00 + -2.234067993079961e+00 + -2.235451464138931e+00 + -2.236856249856844e+00 + -2.238282527000000e+00 + -2.239730472524265e+00 + -2.241200265638654e+00 + -2.242692085287406e+00 + -2.244206109271373e+00 + -2.245742517000000e+00 + -2.247301488882056e+00 + -2.248883204910052e+00 + -2.250487845315945e+00 + -2.252115590911750e+00 + -2.253766623000000e+00 + -2.255441123360801e+00 + -2.257139274542631e+00 + -2.258861259219423e+00 + -2.260607260005651e+00 + -2.262377460000000e+00 + -2.264172042724291e+00 + -2.265991192137124e+00 + -2.267835092970031e+00 + -2.269703930922391e+00 + -2.271597891000000e+00 + -2.273517158096056e+00 + -2.275461918662951e+00 + -2.277432359442962e+00 + -2.279428667085979e+00 + -2.281451029000000e+00 + -2.283499633104788e+00 + -2.285574667389452e+00 + -2.287676320195930e+00 + -2.289804780398682e+00 + -2.291960237000000e+00 + -2.294142879454985e+00 + -2.296352898805551e+00 + -2.298590485768695e+00 + -2.300855830078550e+00 + -2.303149122999999e+00 + -2.305470556795997e+00 + -2.307820323545887e+00 + -2.310198615647936e+00 + -2.312605626084681e+00 + -2.315041548000000e+00 + -2.317506574745174e+00 + -2.320000900224320e+00 + -2.322524719122656e+00 + -2.325078227061991e+00 + -2.327661619000000e+00 + -2.330275089774933e+00 + -2.332918835677479e+00 + -2.335593053485966e+00 + -2.338297940187764e+00 + -2.341033693000000e+00 + -2.343800509406319e+00 + -2.346598587410773e+00 + -2.349428125303093e+00 + -2.352289321686241e+00 + -2.355182376000000e+00 + -2.358107488272472e+00 + -2.361064858786305e+00 + -2.364054687769198e+00 + -2.367077175375671e+00 + -2.370132523000000e+00 + -2.373220932737141e+00 + -2.376342606269360e+00 + -2.379497745810629e+00 + -2.382686554578887e+00 + -2.385909236000000e+00 + -2.389165993580208e+00 + -2.392457030846979e+00 + -2.395782552198058e+00 + -2.399142763298191e+00 + -2.402537869000000e+00 + -2.405968074028050e+00 + -2.409433584975734e+00 + -2.412934608682329e+00 + -2.416471351683178e+00 + -2.420044020999999e+00 + -2.423652824137149e+00 + -2.427297969206864e+00 + -2.430979664728804e+00 + -2.434698119632543e+00 + -2.438453543000000e+00 + -2.442246144168148e+00 + -2.446076133195298e+00 + -2.449943720571852e+00 + -2.453849117184546e+00 + -2.457792534000000e+00 + -2.461774182279110e+00 + -2.465794274341647e+00 + -2.469853022790889e+00 + -2.473950640299041e+00 + -2.478087340000000e+00 + -2.482263335430129e+00 + -2.486478840559030e+00 + -2.490734069661931e+00 + -2.495029237377275e+00 + -2.499364559000000e+00 + -2.503740250274207e+00 + -2.508156527124766e+00 + -2.512613605692700e+00 + -2.517111702474631e+00 + -2.521651035000000e+00 + -2.526231821279088e+00 + -2.530854278665131e+00 + -2.535518625205626e+00 + -2.540225080261870e+00 + -2.544973863000000e+00 + -2.549765192573217e+00 + -2.554599288888442e+00 + -2.559476372494764e+00 + -2.564396664604125e+00 + -2.569360386000000e+00 + -2.574367757513646e+00 + -2.579419001423863e+00 + -2.584514340338642e+00 + -2.589653996851589e+00 + -2.594838193999999e+00 + -2.600067155253186e+00 + -2.605341104662645e+00 + -2.610660266783872e+00 + -2.616024866689215e+00 + -2.621435129000000e+00 + -2.626891278432673e+00 + -2.632393541366548e+00 + -2.637942144571998e+00 + -2.643537314797249e+00 + -2.649179279000000e+00 + -2.654868264471787e+00 + -2.660604499292826e+00 + -2.666388211776204e+00 + -2.672219630341834e+00 + -2.678098984000000e+00 + -2.684026502306392e+00 + -2.690002415494505e+00 + -2.696026954017429e+00 + -2.702100348331385e+00 + -2.708222828000000e+00 + -2.714394620651795e+00 + -2.720615948464916e+00 + -2.726887030965477e+00 + -2.733208085290139e+00 + -2.739579324000000e+00 + -2.746000955816228e+00 + -2.752473185385865e+00 + -2.758996214641690e+00 + -2.765570242469367e+00 + -2.772195463000000e+00 + -2.778872066776275e+00 + -2.785600241574056e+00 + -2.792380171842594e+00 + -2.799212037606767e+00 + -2.806096015000000e+00 + -2.813032277129447e+00 + -2.820020994035244e+00 + -2.827062331911353e+00 + -2.834156451970738e+00 + -2.841303512999999e+00 + -2.848503671252426e+00 + -2.855757077985244e+00 + -2.863063881095023e+00 + -2.870424224890850e+00 + -2.877838249999999e+00 + -2.885306093928394e+00 + -2.892827890388094e+00 + -2.900403769651381e+00 + -2.908033857857018e+00 + -2.915718277999999e+00 + -2.923457150039019e+00 + -2.931250588977881e+00 + -2.939098706889091e+00 + -2.947001612872150e+00 + -2.954959411999998e+00 + -2.962972205810575e+00 + -2.971040091434060e+00 + -2.979163163083816e+00 + -2.987341511831155e+00 + -2.995575224999998e+00 + -3.003864386499012e+00 + -3.012209075546996e+00 + -3.020609368336417e+00 + -3.029065337835770e+00 + -3.037577052999999e+00 + -3.046144579520789e+00 + -3.054767979666142e+00 + -3.063447312238444e+00 + -3.072182631692820e+00 + -3.080973988999999e+00 + -3.089821432099915e+00 + -3.098725004829577e+00 + -3.107684748048404e+00 + -3.116700699185534e+00 + -3.125772890999999e+00 + -3.134901352715559e+00 + -3.144086110699870e+00 + -3.153327188100508e+00 + -3.162624603843408e+00 + -3.171978372999998e+00 + -3.181388507546933e+00 + -3.190855016073102e+00 + -3.200377903469057e+00 + -3.209957169965227e+00 + -3.219592812999998e+00 + -3.229284827363896e+00 + -3.239033203402719e+00 + -3.248837927724427e+00 + -3.258698982652799e+00 + -3.268616347999998e+00 + -3.278590000914418e+00 + -3.288619913401403e+00 + -3.298706054004673e+00 + -3.308848387625167e+00 + -3.319046875999998e+00 + -3.329301477934322e+00 + -3.339612147844228e+00 + -3.349978836592516e+00 + -3.360401490990458e+00 + -3.370880054999998e+00 + -3.381414469596773e+00 + -3.392004670266620e+00 + -3.402650589976440e+00 + -3.413352159446950e+00 + -3.424109303999998e+00 + -3.434921945057392e+00 + -3.445790001867386e+00 + -3.456713390096515e+00 + -3.467692020464062e+00 + -3.478725800999998e+00 + -3.489814636890736e+00 + -3.500958427789171e+00 + -3.512157070764700e+00 + -3.523410460589800e+00 + -3.534718486999998e+00 + -3.546081035880271e+00 + -3.557497990199610e+00 + -3.568969229634993e+00 + -3.580494629586285e+00 + -3.592074061999998e+00 + -3.603707395759104e+00 + -3.615394495446970e+00 + -3.627135222559569e+00 + -3.638929435115233e+00 + -3.650776987000000e+00 + -3.662677728742245e+00 + -3.674631507325805e+00 + -3.686638166579447e+00 + -3.698697546469576e+00 + -3.710809483000000e+00 + -3.722973808828209e+00 + -3.735190352595157e+00 + -3.747458940125227e+00 + -3.759779394010754e+00 + -3.772151532000000e+00 + -3.784575168342916e+00 + -3.797050115062026e+00 + -3.809576180292756e+00 + -3.822153166803174e+00 + -3.834780875000000e+00 + -3.847459102820189e+00 + -3.860187643203489e+00 + -3.872966285667494e+00 + -3.885794816080159e+00 + -3.898673017000000e+00 + -3.911600667911320e+00 + -3.924577543724543e+00 + -3.937603416269590e+00 + -3.950678053996523e+00 + -3.963801221000000e+00 + -3.976972678103186e+00 + -3.990192183512261e+00 + -4.003459491521890e+00 + -4.016774351164608e+00 + -4.030136509000000e+00 + -4.043545709147031e+00 + -4.057001691149858e+00 + -4.070504190840202e+00 + -4.084052939835804e+00 + -4.097647667000000e+00 + -4.111288098419088e+00 + -4.124973955231095e+00 + -4.138704955371648e+00 + -4.152480813397504e+00 + -4.166301240000000e+00 + -4.180165942572286e+00 + -4.194074624537170e+00 + -4.208026986370140e+00 + -4.222022725101974e+00 + -4.236061533000000e+00 + -4.250143098846027e+00 + -4.264267108996074e+00 + -4.278433246261039e+00 + -4.292641188627767e+00 + -4.306890611000000e+00 + -4.321181185386233e+00 + -4.335512579090955e+00 + -4.349884456391911e+00 + -4.364296478350024e+00 + -4.378748302000000e+00 + -4.393239580901771e+00 + -4.407769964394226e+00 + -4.422339098999587e+00 + -4.436946628138934e+00 + -4.451592191000000e+00 + -4.466275423153566e+00 + -4.480995955945297e+00 + -4.495753418053649e+00 + -4.510547435209278e+00 + -4.525377628000000e+00 + -4.540243613376725e+00 + -4.555145006346341e+00 + -4.570081418154680e+00 + -4.585052454714511e+00 + -4.600057719000000e+00 + -4.615096811360685e+00 + -4.630169328028963e+00 + -4.645274861878902e+00 + -4.660413001844071e+00 + -4.675583333000000e+00 + -4.690785437259527e+00 + -4.706018892955582e+00 + -4.721283275134317e+00 + -4.736578154793736e+00 + -4.751903099000000e+00 + -4.767257671719769e+00 + -4.782641433752779e+00 + -4.798053942304498e+00 + -4.813494749953581e+00 + -4.828963406000000e+00 + -4.844459456896403e+00 + -4.859982445123970e+00 + -4.875531909767719e+00 + -4.891107385884028e+00 + -4.906708405000000e+00 + -4.922334495555203e+00 + -4.937985181840751e+00 + -4.953659984814029e+00 + -4.969358421588884e+00 + -4.985080006000000e+00 + -5.000824248840914e+00 + -5.016590656340991e+00 + -5.032378731598668e+00 + -5.048187974277996e+00 + -5.064017880000000e+00 + -5.079867940973151e+00 + -5.095737645459726e+00 + -5.111626480823102e+00 + -5.127533934923204e+00 + -5.143459499999997e+00 + -5.159402672483111e+00 + -5.175362954369220e+00 + -5.191339851303958e+00 + -5.207332872891304e+00 + -5.223341533999998e+00 + -5.239365353688981e+00 + -5.255403855076862e+00 + -5.271456565155025e+00 + -5.287523015792912e+00 + -5.303602743999997e+00 + -5.319695290809813e+00 + -5.335800201177900e+00 + -5.351917023850607e+00 + -5.368045312413205e+00 + -5.384184625999997e+00 + -5.400334527792659e+00 + -5.416494583936292e+00 + -5.432664365069262e+00 + -5.448843447960337e+00 + -5.465031412999998e+00 + -5.481227843963791e+00 + -5.497432330198948e+00 + -5.513644465003656e+00 + -5.529863846001168e+00 + -5.546090074999998e+00 + -5.562322757794160e+00 + -5.578561506278419e+00 + -5.594805935740466e+00 + -5.611055664858841e+00 + -5.627310317999997e+00 + -5.643569523867812e+00 + -5.659832914603254e+00 + -5.676100126691991e+00 + -5.692370802379017e+00 + -5.708644587999997e+00 + -5.724921133351554e+00 + -5.741200092816319e+00 + -5.757481124931912e+00 + -5.773763893288205e+00 + -5.790048065999996e+00 + -5.806333315035348e+00 + -5.822619317227983e+00 + -5.838905753168464e+00 + -5.855192307810226e+00 + -5.871478670999998e+00 + -5.887764536642293e+00 + -5.904049603224381e+00 + -5.920333573291820e+00 + -5.936616154283948e+00 + -5.952897057999997e+00 + -5.969175999997380e+00 + -5.985452700712029e+00 + -6.001726884408804e+00 + -6.017998279848357e+00 + -6.034266620999998e+00 + -6.050531645917840e+00 + -6.066793096565948e+00 + -6.083050719154321e+00 + -6.099304265265417e+00 + -6.115553489999997e+00 + -6.131798152082848e+00 + -6.148038016850530e+00 + -6.164272852974367e+00 + -6.180502432221914e+00 + -6.196726531999996e+00 + -6.212944934149927e+00 + -6.229157424398349e+00 + -6.245363792906498e+00 + -6.261563835474968e+00 + -6.277757350999996e+00 + -6.293944141712862e+00 + -6.310124016459128e+00 + -6.326296787703612e+00 + -6.342462271423720e+00 + -6.358620288999997e+00 + -6.374770666045148e+00 + -6.390913231950829e+00 + -6.407047820441565e+00 + -6.423174270811367e+00 + -6.439292425999997e+00 + -6.455402132459349e+00 + -6.471503242529590e+00 + -6.487595612302881e+00 + -6.503679101824962e+00 + -6.519753575999998e+00 + -6.535818903908587e+00 + -6.551874959678351e+00 + -6.567921621040533e+00 + -6.583958769810407e+00 + -6.599986292999997e+00 + -6.616004081814032e+00 + -6.632012031732002e+00 + -6.648010042213294e+00 + -6.663998017633650e+00 + -6.679975866999997e+00 + -6.695943503153600e+00 + -6.711900843425355e+00 + -6.727847809100131e+00 + -6.743784326279565e+00 + -6.759710325999998e+00 + -6.775625743222601e+00 + -6.791530516957345e+00 + -6.807424590371784e+00 + -6.823307911868753e+00 + -6.839180434000000e+00 + -6.855042113095231e+00 + -6.870892911056689e+00 + -6.886732793343159e+00 + -6.902561729209182e+00 + -6.918379693000000e+00 + -6.934186663377454e+00 + -6.949982623974822e+00 + -6.965767562024019e+00 + -6.981541468861679e+00 + -6.997304341000000e+00 + -7.013056179149240e+00 + -7.028796988372566e+00 + -7.044526777567921e+00 + -7.060245560311449e+00 + -7.075953355000000e+00 + -7.091650184045992e+00 + -7.107336074531737e+00 + -7.123011057484204e+00 + -7.138675168614964e+00 + -7.154328448000000e+00 + -7.169970939523060e+00 + -7.185602692089082e+00 + -7.201223758621499e+00 + -7.216834196750369e+00 + -7.232434069000000e+00 + -7.248023441650831e+00 + -7.263602384451917e+00 + -7.279170972021925e+00 + -7.294729285389790e+00 + -7.310277408000000e+00 + -7.325815426345584e+00 + -7.341343434315181e+00 + -7.356861529294433e+00 + -7.372369811668458e+00 + -7.387868387000000e+00 + -7.403357365322682e+00 + -7.418836861854650e+00 + -7.434306995371617e+00 + -7.449767888578398e+00 + -7.465219669000000e+00 + -7.480662468362842e+00 + -7.496096423635060e+00 + -7.511521675509539e+00 + -7.526938368822738e+00 + -7.542346653000000e+00 + -7.557746681513402e+00 + -7.573138613106206e+00 + -7.588522610348394e+00 + -7.603898840111169e+00 + -7.619267474000000e+00 + -7.634628687556104e+00 + -7.649982660818226e+00 + -7.665329578157865e+00 + -7.680669629212444e+00 + -7.696003007000000e+00 + -7.711329908041110e+00 + -7.726650535322031e+00 + -7.741965095546557e+00 + -7.757273799081691e+00 + -7.772576861000000e+00 + -7.787874500482072e+00 + -7.803166941820082e+00 + -7.818454413357075e+00 + -7.833737148083599e+00 + -7.849015383000000e+00 + -7.864289358883056e+00 + -7.879559322305754e+00 + -7.894825523493435e+00 + -7.910088216491122e+00 + -7.925347660000000e+00 + -7.940604117030949e+00 + -7.955857856656654e+00 + -7.971109151088187e+00 + -7.986358275553978e+00 + -8.001605510999999e+00 + -8.016851143003514e+00 + -8.032095461580266e+00 + -8.047338760488806e+00 + -8.062581337981985e+00 + -8.077823497000001e+00 + -8.093065544394179e+00 + -8.108307791577566e+00 + -8.123550554205780e+00 + -8.138794153086785e+00 + -8.154038912999997e+00 + -8.169285162395173e+00 + -8.184533235306290e+00 + -8.199783469410583e+00 + -8.215036206329255e+00 + -8.230291792999997e+00 + -8.245550580528674e+00 + -8.260812923863309e+00 + -8.276079182235739e+00 + -8.291349720375887e+00 + -8.306624906999998e+00 + -8.321905114401627e+00 + -8.337190720129563e+00 + -8.352482105562956e+00 + -8.367779656388556e+00 + -8.383083762999997e+00 + -8.398394819954635e+00 + -8.413713227271362e+00 + -8.429039388338369e+00 + -8.444373710123081e+00 + -8.459716604999997e+00 + -8.475068489773328e+00 + -8.490429785807564e+00 + -8.505800918193746e+00 + -8.521182316459129e+00 + -8.536574414999997e+00 + -8.551977652264261e+00 + -8.567392471335332e+00 + -8.582819319266729e+00 + -8.598258647834163e+00 + -8.613710912999998e+00 + -8.629176574613023e+00 + -8.644656098315155e+00 + -8.660149953296175e+00 + -8.675658612460374e+00 + -8.691182553999997e+00 + -8.706722260346437e+00 + -8.722278218076596e+00 + -8.737850917931995e+00 + -8.753440855866357e+00 + -8.769048531999996e+00 + -8.784674450012169e+00 + -8.800319118245726e+00 + -8.815983049456063e+00 + -8.831666761752983e+00 + -8.847370776999997e+00 + -8.863095620572640e+00 + -8.878841823409489e+00 + -8.894609920288579e+00 + -8.910400450202564e+00 + -8.926213956999996e+00 + -8.942050988642462e+00 + -8.957912097948702e+00 + -8.973797841249739e+00 + -8.989708778929735e+00 + -9.005645476999996e+00 + -9.021608505891232e+00 + -9.037598440089864e+00 + -9.053615857732957e+00 + -9.069661341483132e+00 + -9.085735478999997e+00 + -9.101838862125330e+00 + -9.117972087538210e+00 + -9.134135755396374e+00 + -9.150330469883286e+00 + -9.166556840999997e+00 + -9.182815483079517e+00 + -9.199107013675079e+00 + -9.215432054583626e+00 + -9.231791233265957e+00 + -9.248185180999997e+00 + -9.264614532683632e+00 + -9.281079929109534e+00 + -9.297582014702897e+00 + -9.314121437654787e+00 + -9.330698850999996e+00 + -9.347314912003528e+00 + -9.363970283188971e+00 + -9.380665630745685e+00 + -9.397401624940878e+00 + -9.414178940999998e+00 + -9.430998258244742e+00 + -9.447860260503859e+00 + -9.464765635761319e+00 + -9.481715077019253e+00 + -9.498709280999996e+00 + -9.515748948037771e+00 + -9.532834784442173e+00 + -9.549967500513571e+00 + -9.567147810785697e+00 + -9.584376433999996e+00 + -9.601654092679016e+00 + -9.618981514566920e+00 + -9.636359431588877e+00 + -9.653788580476306e+00 + -9.671269701999998e+00 + -9.688803540653204e+00 + -9.706390846469759e+00 + -9.724032373152683e+00 + -9.741728878390186e+00 + -9.759481124999997e+00 + -9.777289880050315e+00 + -9.795155915261526e+00 + -9.813080006095444e+00 + -9.831062932433847e+00 + -9.849105478999997e+00 + -9.867208434586416e+00 + -9.885372592754736e+00 + -9.903598750780114e+00 + -9.921887710289466e+00 + -9.940240277999996e+00 + -9.958657264807959e+00 + -9.977139486156000e+00 + -9.995687760994512e+00 + -1.001430291248964e+01 + -1.003298577000000e+01 + -1.005173716741557e+01 + -1.007055794170109e+01 + -1.008944893313717e+01 + -1.010841098632109e+01 + -1.012744495000000e+01 + -1.014655167843811e+01 + -1.016573203809090e+01 + -1.018498689280856e+01 + -1.020431709913334e+01 + -1.022372353000000e+01 + -1.024320706932260e+01 + -1.026276860085199e+01 + -1.028240900753776e+01 + -1.030212917226508e+01 + -1.032192999000000e+01 + -1.034181236270672e+01 + -1.036177718920571e+01 + -1.038182537682789e+01 + -1.040195784652257e+01 + -1.042217551000000e+01 + -1.044247927800797e+01 + -1.046287008429113e+01 + -1.048334886197221e+01 + -1.050391653528098e+01 + -1.052457404000000e+01 + -1.054532232135862e+01 + -1.056616233045517e+01 + -1.058709501821704e+01 + -1.060812133414642e+01 + -1.062924224000000e+01 + -1.065045870478386e+01 + -1.067177169452023e+01 + -1.069318217826154e+01 + -1.071469113174534e+01 + -1.073629954000000e+01 + -1.075800839260036e+01 + -1.077981867489276e+01 + -1.080173138018267e+01 + -1.082374751517595e+01 + -1.084586808000000e+01 + -1.086809407471729e+01 + -1.089042651905600e+01 + -1.091286643223940e+01 + -1.093541482646511e+01 + -1.095807273000000e+01 + -1.098084118002027e+01 + -1.100372120627546e+01 + -1.102671384288809e+01 + -1.104982013415814e+01 + -1.107304113000000e+01 + -1.109637788366843e+01 + -1.111983144958023e+01 + -1.114340288661973e+01 + -1.116709326043168e+01 + -1.119090364000000e+01 + -1.121483509746141e+01 + -1.123888871051257e+01 + -1.126306556352589e+01 + -1.128736674843474e+01 + -1.131179335000000e+01 + -1.133634645465832e+01 + -1.136102717560643e+01 + -1.138583662099362e+01 + -1.141077588304154e+01 + -1.143584608000000e+01 + -1.146104834278586e+01 + -1.148638378227322e+01 + -1.151185351768562e+01 + -1.153745868860526e+01 + -1.156320043000000e+01 + -1.158907987623694e+01 + -1.161509817570602e+01 + -1.164125647703402e+01 + -1.166755592508495e+01 + -1.169399768000000e+01 + -1.172058291041322e+01 + -1.174731277861368e+01 + -1.177418844974534e+01 + -1.180121109657743e+01 + -1.182838189999999e+01 + -1.185570204579555e+01 + -1.188317272006268e+01 + -1.191079511332836e+01 + -1.193857042312863e+01 + -1.196649984999999e+01 + -1.199458459773775e+01 + -1.202282587700695e+01 + -1.205122490269986e+01 + -1.207978289369385e+01 + -1.210850107000000e+01 + -1.213738065440104e+01 + -1.216642287877588e+01 + -1.219562898067898e+01 + -1.222500020303083e+01 + -1.225453779000000e+01 + -1.228424298812801e+01 + -1.231411705144751e+01 + -1.234416123799292e+01 + -1.237437680934280e+01 + -1.240476502999999e+01 + -1.243532716862228e+01 + -1.246606450371358e+01 + -1.249697831672881e+01 + -1.252806989018327e+01 + -1.255934050999999e+01 + -1.259079146663310e+01 + -1.262242406008652e+01 + -1.265423959346900e+01 + -1.268623937120698e+01 + -1.271842469999999e+01 + -1.275079689157634e+01 + -1.278335727210730e+01 + -1.281610716656313e+01 + -1.284904789393346e+01 + -1.288218078999999e+01 + -1.291550719883721e+01 + -1.294902845305343e+01 + -1.298274589252790e+01 + -1.301666087289315e+01 + -1.305077474999999e+01 + -1.308508888000826e+01 + -1.311960462335401e+01 + -1.315432334734565e+01 + -1.318924642810263e+01 + -1.322437523999999e+01 + -1.325971115825294e+01 + -1.329525556797775e+01 + -1.333100986045822e+01 + -1.336697543256989e+01 + -1.340315367999999e+01 + -1.343954599979837e+01 + -1.347615379884262e+01 + -1.351297848978655e+01 + -1.355002149050285e+01 + -1.358728421999999e+01 + -1.362476809975143e+01 + -1.366247455932581e+01 + -1.370040503112116e+01 + -1.373856094968169e+01 + -1.377694375999999e+01 + -1.381555491216690e+01 + -1.385439585021465e+01 + -1.389346802391279e+01 + -1.393277289476898e+01 + -1.397231192999999e+01 + -1.401208659972945e+01 + -1.405209837359219e+01 + -1.409234872413346e+01 + -1.413283912961124e+01 + -1.417357107999999e+01 + -1.421454607102127e+01 + -1.425576559243092e+01 + -1.429723113890712e+01 + -1.433894421536596e+01 + -1.438090632999999e+01 + -1.442311899332400e+01 + -1.446558371903957e+01 + -1.450830202765583e+01 + -1.455127544879836e+01 + -1.459450550999999e+01 + -1.463799373973040e+01 + -1.468174167767078e+01 + -1.472575086722947e+01 + -1.477002285383887e+01 + -1.481455918999999e+01 + -1.485936143285468e+01 + -1.490443114031971e+01 + -1.494976987417127e+01 + -1.499537920245961e+01 + -1.504126069999999e+01 + -1.508741594534576e+01 + -1.513384651602358e+01 + -1.518055399754435e+01 + -1.522753998778076e+01 + -1.527480607999999e+01 + -1.532235386668537e+01 + -1.537018495189360e+01 + -1.541830094448208e+01 + -1.546670345694024e+01 + -1.551539410999999e+01 + -1.556437452805486e+01 + -1.561364632974880e+01 + -1.566321114034704e+01 + -1.571307059764629e+01 + -1.576322633999999e+01 + -1.581368000886133e+01 + -1.586443325932826e+01 + -1.591548774371123e+01 + -1.596684510633198e+01 + -1.601850700999999e+01 + -1.607047512763592e+01 + -1.612275112310131e+01 + -1.617533666634843e+01 + -1.622823344044972e+01 + -1.628144312999999e+01 + -1.633496741991010e+01 + -1.638880799548294e+01 + -1.644296655089035e+01 + -1.649744479372194e+01 + -1.655224442999999e+01 + -1.660736716535794e+01 + -1.666281471098534e+01 + -1.671858878335293e+01 + -1.677469110504862e+01 + -1.683112339999999e+01 + -1.688788739643611e+01 + -1.694498483759857e+01 + -1.700241746523662e+01 + -1.706018701398879e+01 + -1.711829522999999e+01 + -1.717674386844329e+01 + -1.723553468924849e+01 + -1.729466945458232e+01 + -1.735414992865347e+01 + -1.741397788000000e+01 + -1.747415508099178e+01 + -1.753468330867943e+01 + -1.759556434768274e+01 + -1.765679999203036e+01 + -1.771839203000000e+01 + -1.778034225038387e+01 + -1.784265246094084e+01 + -1.790532446959567e+01 + -1.796836007816754e+01 + -1.803176110000000e+01 + -1.809552935720682e+01 + -1.815966667575656e+01 + -1.822417488078262e+01 + -1.828905579597735e+01 + -1.835431126000000e+01 + -1.841994311958100e+01 + -1.848595321475806e+01 + -1.855234338946741e+01 + -1.861911549709020e+01 + -1.868627140000000e+01 + -1.875381296458075e+01 + -1.882174205218422e+01 + -1.889006052915166e+01 + -1.895877027181235e+01 + -1.902787316000000e+01 + -1.909737107797965e+01 + -1.916726592078253e+01 + -1.923755957952593e+01 + -1.930825393714747e+01 + -1.937935090000000e+01 + -1.945085238647674e+01 + -1.952276030080435e+01 + -1.959507655061933e+01 + -1.966780305499929e+01 + -1.974094174000000e+01 + -1.981449453618971e+01 + -1.988846337667131e+01 + -1.996285019538828e+01 + -2.003765692760933e+01 + -2.011288552000000e+01 + -2.018853792621815e+01 + -2.026461609876727e+01 + -2.034112199510926e+01 + -2.041805758075517e+01 + -2.049542482000000e+01 + -2.057322568006621e+01 + -2.065146214471047e+01 + -2.073013619484967e+01 + -2.080924980240138e+01 + -2.088880495999999e+01 + -2.096880367169853e+01 + -2.104924793164823e+01 + -2.113013973534757e+01 + -2.121148108557274e+01 + -2.129327399999999e+01 + -2.137552050224973e+01 + -2.145822260294134e+01 + -2.154138232011573e+01 + -2.162500168821614e+01 + -2.170908273999999e+01 + -2.179362750931509e+01 + -2.187863804236205e+01 + -2.196411638687395e+01 + -2.205006458870765e+01 + -2.213648469999998e+01 + -2.222337877888525e+01 + -2.231074889087196e+01 + -2.239859710699802e+01 + -2.248692550346576e+01 + -2.257573614999999e+01 + -2.266503111825121e+01 + -2.275481250533621e+01 + -2.284508240538831e+01 + -2.293584289979252e+01 + -2.302709608999998e+01 + -2.311884408797131e+01 + -2.321108899308483e+01 + -2.330383291176923e+01 + -2.339707796636268e+01 + -2.349082627999998e+01 + -2.358507997580010e+01 + -2.367984117841246e+01 + -2.377511201965127e+01 + -2.387089464198777e+01 + -2.396719118999998e+01 + -2.406400380890314e+01 + -2.416133464354705e+01 + -2.425918584868402e+01 + -2.435755959379285e+01 + -2.445645803999998e+01 + -2.455588334675619e+01 + -2.465583769169985e+01 + -2.475632325621871e+01 + -2.485734222078360e+01 + -2.495889676999998e+01 + -2.506098909313465e+01 + -2.516362138717989e+01 + -2.526679585042222e+01 + -2.537051468121954e+01 + -2.547478008999998e+01 + -2.557959429416147e+01 + -2.568495950782481e+01 + -2.579087794894506e+01 + -2.589735184307986e+01 + -2.600438342000000e+01 + -2.611197491414786e+01 + -2.622012856937007e+01 + -2.632884662779481e+01 + -2.643813132670684e+01 + -2.654798492000000e+01 + -2.665840967182968e+01 + -2.676940784333127e+01 + -2.688098169572292e+01 + -2.699313349264397e+01 + -2.710586551000000e+01 + -2.721918002998715e+01 + -2.733307932892397e+01 + -2.744756569229334e+01 + -2.756264142140602e+01 + -2.767830881000000e+01 + -2.779457014947893e+01 + -2.791142774510221e+01 + -2.802888390934165e+01 + -2.814694096000261e+01 + -2.826560121000000e+01 + -2.838486697334714e+01 + -2.850474058224100e+01 + -2.862522436986088e+01 + -2.874632066501767e+01 + -2.886803181000000e+01 + -2.899036015446983e+01 + -2.911330804180568e+01 + -2.923687781925054e+01 + -2.936107184331833e+01 + -2.948589248000000e+01 + -2.961134209910011e+01 + -2.973742306338333e+01 + -2.986413774439124e+01 + -2.999148852946843e+01 + -3.011947780000000e+01 + -3.024810793640462e+01 + -3.037738133418102e+01 + -3.050730039248281e+01 + -3.063786751048302e+01 + -3.076908508999995e+01 + -3.090095553801825e+01 + -3.103348127528379e+01 + -3.116666472242296e+01 + -3.130050829541340e+01 + -3.143501442000000e+01 + -3.157018552904646e+01 + -3.170602405762165e+01 + -3.184253244456109e+01 + -3.197971313442012e+01 + -3.211756857999995e+01 + -3.225610123724459e+01 + -3.239531355479052e+01 + -3.253520799120049e+01 + -3.267578702273956e+01 + -3.281705312000000e+01 + -3.295900875199519e+01 + -3.310165640007095e+01 + -3.324499854981137e+01 + -3.338903768896250e+01 + -3.353377630999994e+01 + -3.367921690900354e+01 + -3.382536198480008e+01 + -3.397221404252836e+01 + -3.411977559608952e+01 + -3.426804916000000e+01 + -3.441703725062087e+01 + -3.456674239208418e+01 + -3.471716711255165e+01 + -3.486831394366235e+01 + -3.502018541999994e+01 + -3.517278408030963e+01 + -3.532611247314257e+01 + -3.548017315006599e+01 + -3.563496866378715e+01 + -3.579050157000000e+01 + -3.594677442911821e+01 + -3.610378981290209e+01 + -3.626155029281482e+01 + -3.642005843692588e+01 + -3.657931682999995e+01 + -3.673932806450152e+01 + -3.690009471994529e+01 + -3.706161938636306e+01 + -3.722390467398576e+01 + -3.738695318000000e+01 + -3.755076749872251e+01 + -3.771535025114206e+01 + -3.788070405790332e+01 + -3.804683152981476e+01 + -3.821373528999994e+01 + -3.838141797088579e+01 + -3.854988220802454e+01 + -3.871913063690455e+01 + -3.888916589260551e+01 + -3.905999062000000e+01 + -3.923160747217621e+01 + -3.940401910958111e+01 + -3.957722819105772e+01 + -3.975123737141870e+01 + -3.992604931999993e+01 + -4.010166671506960e+01 + -4.027809223215413e+01 + -4.045532854769397e+01 + -4.063337834194039e+01 + -4.081224431000000e+01 + -4.099192915380458e+01 + -4.117243556512365e+01 + -4.135376624213356e+01 + -4.153592389680070e+01 + -4.171891123999993e+01 + -4.190273098404973e+01 + -4.208738585293229e+01 + -4.227287857304115e+01 + -4.245921187066173e+01 + -4.264638848000000e+01 + -4.283441114000928e+01 + -4.302328258823673e+01 + -4.321300556988346e+01 + -4.340358284230594e+01 + -4.359501715999993e+01 + -4.378731127802528e+01 + -4.398046796379431e+01 + -4.417448998677844e+01 + -4.436938011574802e+01 + -4.456514113000000e+01 + -4.476177581459606e+01 + -4.495928695037842e+01 + -4.515767732491430e+01 + -4.535694973791337e+01 + -4.555710698999992e+01 + -4.575815188265746e+01 + -4.596008722124420e+01 + -4.616291581815827e+01 + -4.636664049491562e+01 + -4.657126407000000e+01 + -4.677678936329625e+01 + -4.698321921012249e+01 + -4.719055644645270e+01 + -4.739880390447049e+01 + -4.760796442999992e+01 + -4.781804087601476e+01 + -4.802903608806237e+01 + -4.824095291782189e+01 + -4.845379422957746e+01 + -4.866756289000000e+01 + -4.888226176793614e+01 + -4.909789373759357e+01 + -4.931446167624577e+01 + -4.953196846445736e+01 + -4.975041698999991e+01 + -4.996981014490353e+01 + -5.019015082042799e+01 + -5.041144191483806e+01 + -5.063368633767777e+01 + -5.085688700000000e+01 + -5.108104681363623e+01 + -5.130616869222998e+01 + -5.153225555529192e+01 + -5.175931033093434e+01 + -5.198733594999992e+01 + -5.221633534632925e+01 + -5.244631146064819e+01 + -5.267726723814258e+01 + -5.290920562821528e+01 + -5.314212958000000e+01 + -5.337604204603855e+01 + -5.361094599406351e+01 + -5.384684439089011e+01 + -5.408374019738633e+01 + -5.432163638999991e+01 + -5.456053595406303e+01 + -5.480044186892415e+01 + -5.504135712069162e+01 + -5.528328470761400e+01 + -5.552622762000000e+01 + -5.577018884907901e+01 + -5.601517141284037e+01 + -5.626117832498171e+01 + -5.650821258404100e+01 + -5.675627720999991e+01 + -5.700537523542541e+01 + -5.725550968441112e+01 + -5.750668358361924e+01 + -5.775889996777224e+01 + -5.801216188000000e+01 + -5.826647236807500e+01 + -5.852183447842080e+01 + -5.877825126017432e+01 + -5.903572576827786e+01 + -5.929426106999990e+01 + -5.955386023803142e+01 + -5.981452633626228e+01 + -6.007626243395679e+01 + -6.033907161265666e+01 + -6.060295696000000e+01 + -6.086792156620618e+01 + -6.113396851889991e+01 + -6.140110091270849e+01 + -6.166932185413050e+01 + -6.193863444999990e+01 + -6.220904180836374e+01 + -6.248054704389698e+01 + -6.275315327303672e+01 + -6.302686361375484e+01 + -6.330168120000000e+01 + -6.357760917255472e+01 + -6.385465065869710e+01 + -6.413280879313753e+01 + -6.441208672717147e+01 + -6.469248761000000e+01 + -6.497401459207148e+01 + -6.525667083785252e+01 + -6.554045951020694e+01 + -6.582538376572784e+01 + -6.611144677999999e+01 + -6.639865173804421e+01 + -6.668700181225154e+01 + -6.697650018322166e+01 + -6.726715004865791e+01 + -6.755895460000001e+01 + -6.785191702754956e+01 + -6.814604053706709e+01 + -6.844132833746227e+01 + -6.873778363702108e+01 + -6.903540965000001e+01 + -6.933420959649558e+01 + -6.963418670433917e+01 + -6.993534420146086e+01 + -7.023768531400407e+01 + -7.054121327999999e+01 + -7.084593134500037e+01 + -7.115184275353549e+01 + -7.145895075432828e+01 + -7.176725860332733e+01 + -7.207676955999989e+01 + -7.238748688676215e+01 + -7.269941385037480e+01 + -7.301255372170849e+01 + -7.332690977697268e+01 + -7.364248530000000e+01 + -7.395928357816831e+01 + -7.427730789465394e+01 + -7.459656154154558e+01 + -7.491704782593285e+01 + -7.523877004999987e+01 + -7.556173151464178e+01 + -7.588593553169946e+01 + -7.621138541944168e+01 + -7.653808450163682e+01 + -7.686603610000000e+01 + -7.719524353805981e+01 + -7.752571015313293e+01 + -7.785743928572181e+01 + -7.819043427631229e+01 + -7.852469846999988e+01 + -7.886023521608357e+01 + -7.919704786882774e+01 + -7.953513978918475e+01 + -7.987451434652237e+01 + -8.021517491000000e+01 + -8.055712484895521e+01 + -8.090036753598372e+01 + -8.124490635250547e+01 + -8.159074469172391e+01 + -8.193788593999987e+01 + -8.228633348416081e+01 + -8.263609073313938e+01 + -8.298716109541151e+01 + -8.333954797103145e+01 + -8.369325477000000e+01 + -8.404828491028280e+01 + -8.440464181412719e+01 + -8.476232890793086e+01 + -8.512134962287996e+01 + -8.548170738999985e+01 + -8.584340564352934e+01 + -8.620644783199920e+01 + -8.657083740482393e+01 + -8.693657780824788e+01 + -8.730367250000000e+01 + -8.767212494371194e+01 + -8.804193859639375e+01 + -8.841311692593891e+01 + -8.878566341870939e+01 + -8.915958154999986e+01 + -8.953487479168578e+01 + -8.991154663471849e+01 + -9.028960057395298e+01 + -9.066904010318096e+01 + -9.104986872000001e+01 + -9.143208992686800e+01 + -9.181570723560402e+01 + -9.220072416114067e+01 + -9.258714421980083e+01 + -9.297497092999986e+01 + -9.336420781525349e+01 + -9.375485841426487e+01 + -9.414692626313253e+01 + -9.454041488965315e+01 + -9.493532784000000e+01 + -9.533166867059026e+01 + -9.572944092950100e+01 + -9.612864816948191e+01 + -9.652929395407540e+01 + -9.693138184999984e+01 + -9.733491542620831e+01 + -9.773989825487583e+01 + -9.814633391500892e+01 + -9.855422599474231e+01 + -9.896357808000000e+01 + -9.937439375553778e+01 + -9.978667660951464e+01 + -1.002004302498873e+02 + -1.006156583113964e+02 + -1.010323643999998e+02 + -1.014505521033422e+02 + -1.018702250167552e+02 + -1.022913867648504e+02 + -1.027140410123223e+02 + -1.031381914000000e+02 + -1.035638415489902e+02 + -1.039909950728156e+02 + -1.044196556182856e+02 + -1.048498268814360e+02 + -1.052815124999998e+02 + -1.057147160851634e+02 + -1.061494413040264e+02 + -1.065856918490972e+02 + -1.070234714266025e+02 + -1.074627837000000e+02 + -1.079036323073108e+02 + -1.083460208994117e+02 + -1.087899531790557e+02 + -1.092354329168266e+02 + -1.096824637999998e+02 + -1.101310494754678e+02 + -1.105811936593542e+02 + -1.110329000832090e+02 + -1.114861724712110e+02 + -1.119410145000000e+02 + -1.123974298499644e+02 + -1.128554223365672e+02 + -1.133149957276709e+02 + -1.137761536721920e+02 + -1.142388998999998e+02 + -1.147032381951767e+02 + -1.151691723223398e+02 + -1.156367060267053e+02 + -1.161058430340008e+02 + -1.165765871000000e+02 + -1.170489420136372e+02 + -1.175229116129598e+02 + -1.179984996644491e+02 + -1.184757098197581e+02 + -1.189545458999998e+02 + -1.194350118004852e+02 + -1.199171112501401e+02 + -1.204008480035419e+02 + -1.208862259161727e+02 + -1.213732488000000e+02 + -1.218619204419225e+02 + -1.223522446637547e+02 + -1.228442252993658e+02 + -1.233378661832514e+02 + -1.238331710999998e+02 + -1.243301438371392e+02 + -1.248287883218059e+02 + -1.253291084262349e+02 + -1.258311078947497e+02 + -1.263347906000000e+02 + -1.268401604692280e+02 + -1.273472212887372e+02 + -1.278559768940106e+02 + -1.283664312433523e+02 + -1.288785881999998e+02 + -1.293924515790011e+02 + -1.299080252758494e+02 + -1.304253131892150e+02 + -1.309443191941241e+02 + -1.314650472000000e+02 + -1.319875011267033e+02 + -1.325116848422910e+02 + -1.330376022476014e+02 + -1.335652573069860e+02 + -1.340946538999998e+02 + -1.346257958892211e+02 + -1.351586873010075e+02 + -1.356933320835031e+02 + -1.362297340185993e+02 + -1.367678971000000e+02 + -1.373078254089903e+02 + -1.378495227933144e+02 + -1.383929931342302e+02 + -1.389382404506380e+02 + -1.394852686999998e+02 + -1.400340818144768e+02 + -1.405846838138316e+02 + -1.411370786853171e+02 + -1.416912703410207e+02 + -1.422472628000000e+02 + -1.428050601118040e+02 + -1.433646661562381e+02 + -1.439260848884736e+02 + -1.444893204354731e+02 + -1.450543767999998e+02 + -1.456212579173106e+02 + -1.461899678121767e+02 + -1.467605105156440e+02 + -1.473328900351724e+02 + -1.479071104000000e+02 + -1.484831756560318e+02 + -1.490610898537698e+02 + -1.496408570188282e+02 + -1.502224811435522e+02 + -1.508059663000000e+02 + -1.513913165938295e+02 + -1.519785360517816e+02 + -1.525676287092765e+02 + -1.531585986433134e+02 + -1.537514498999998e+02 + -1.543461865304275e+02 + -1.549428126935839e+02 + -1.555413324987964e+02 + -1.561417499433451e+02 + -1.567440691000000e+02 + -1.573482940967384e+02 + -1.579544290618548e+02 + -1.585624781173004e+02 + -1.591724453723425e+02 + -1.597843348999998e+02 + -1.603981507727703e+02 + -1.610138971515657e+02 + -1.616315781879854e+02 + -1.622511979884414e+02 + -1.628727607000000e+02 + -1.634962704824068e+02 + -1.641217314319286e+02 + -1.647491476962519e+02 + -1.653785235159056e+02 + -1.660098629999998e+02 + -1.666431702132707e+02 + -1.672784494025457e+02 + -1.679157047805161e+02 + -1.685549404452619e+02 + -1.691961606000000e+02 + -1.698393694891200e+02 + -1.704845712252935e+02 + -1.711317699673001e+02 + -1.717809699904770e+02 + -1.724321754999998e+02 + -1.730853906636835e+02 + -1.737406197069920e+02 + -1.743978668390772e+02 + -1.750571362267288e+02 + -1.757184321000000e+02 + -1.763817587329360e+02 + -1.770471204015179e+02 + -1.777145213342737e+02 + -1.783839656916257e+02 + -1.790554576999997e+02 + -1.797290016348361e+02 + -1.804046017812607e+02 + -1.810822624074922e+02 + -1.817619877551305e+02 + -1.824437821000000e+02 + -1.831276497291853e+02 + -1.838135948809234e+02 + -1.845016218201234e+02 + -1.851917348679873e+02 + -1.858839382999998e+02 + -1.865782363787204e+02 + -1.872746334451072e+02 + -1.879731338116912e+02 + -1.886737417231232e+02 + -1.893764615000000e+02 + -1.900812975069574e+02 + -1.907882540726982e+02 + -1.914973354967214e+02 + -1.922085460544087e+02 + -1.929218900999998e+02 + -1.936373720194894e+02 + -1.943549961169706e+02 + -1.950747667123967e+02 + -1.957966881820183e+02 + -1.965207649000000e+02 + -1.972470012275908e+02 + -1.979754014928308e+02 + -1.987059700466389e+02 + -1.994387112870401e+02 + -2.001736295999997e+02 + -2.009107293657797e+02 + -2.016500149830146e+02 + -2.023914908231823e+02 + -2.031351612174878e+02 + -2.038810306000000e+02 + -2.046291034502658e+02 + -2.053793841544099e+02 + -2.061318770718700e+02 + -2.068865865659776e+02 + -2.076435170999997e+02 + -2.084026731731890e+02 + -2.091640591716557e+02 + -2.099276794995817e+02 + -2.106935386300690e+02 + -2.114616410000000e+02 + -2.122319910255027e+02 + -2.130045931490896e+02 + -2.137794518362718e+02 + -2.145565715736208e+02 + -2.153359567999997e+02 + -2.161176119510612e+02 + -2.169015415764713e+02 + -2.176877501734888e+02 + -2.184762421224458e+02 + -2.192670219000000e+02 + -2.200600940505141e+02 + -2.208554631128035e+02 + -2.216531335679009e+02 + -2.224531098207831e+02 + -2.232553963999997e+02 + -2.240599978997985e+02 + -2.248669188401317e+02 + -2.256761637092654e+02 + -2.264877369816284e+02 + -2.273016432000000e+02 + -2.281178869415660e+02 + -2.289364727411434e+02 + -2.297574051254879e+02 + -2.305806886273285e+02 + -2.314063277999997e+02 + -2.322343272067604e+02 + -2.330646913987978e+02 + -2.338974249389632e+02 + -2.347325324124834e+02 + -2.355700184000000e+02 + -2.364098874788788e+02 + -2.372521442301691e+02 + -2.380967932316097e+02 + -2.389438390563173e+02 + -2.397932862999997e+02 + -2.406451395699314e+02 + -2.414994034603918e+02 + -2.423560825773335e+02 + -2.432151815494090e+02 + -2.440767050000000e+02 + -2.449406575494712e+02 + -2.458070438246558e+02 + -2.466758684438366e+02 + -2.475471360143982e+02 + -2.484208511999996e+02 + -2.492970186823550e+02 + -2.501756430678903e+02 + -2.510567289807632e+02 + -2.519402811010791e+02 + -2.528263041000000e+02 + -2.537148026392507e+02 + -2.546057813786489e+02 + -2.554992449908618e+02 + -2.563951981686694e+02 + -2.572936455999996e+02 + -2.581945919701986e+02 + -2.590980419711499e+02 + -2.600040002856254e+02 + -2.609124715849065e+02 + -2.618234606000000e+02 + -2.627369720784054e+02 + -2.636530106775519e+02 + -2.645715811006028e+02 + -2.654926881465747e+02 + -2.664163364999997e+02 + -2.673425308135112e+02 + -2.682712759281322e+02 + -2.692025766270102e+02 + -2.701364375396030e+02 + -2.710728634000000e+02 + -2.720118590149941e+02 + -2.729534291763713e+02 + -2.738975786300543e+02 + -2.748443120676544e+02 + -2.757936342999997e+02 + -2.767455501787848e+02 + -2.777000643997414e+02 + -2.786571816989448e+02 + -2.796169069311608e+02 + -2.805792449000000e+02 + -2.815442003833780e+02 + -2.825117782146733e+02 + -2.834819832031981e+02 + -2.844548201023671e+02 + -2.854302936999997e+02 + -2.864084088239409e+02 + -2.873891703596309e+02 + -2.883725831483384e+02 + -2.893586519481404e+02 + -2.903473816000000e+02 + -2.913387769892773e+02 + -2.923328429461174e+02 + -2.933295843055886e+02 + -2.943290059327143e+02 + -2.953311126999996e+02 + -2.963359094688269e+02 + -2.973434010446480e+02 + -2.983535922946355e+02 + -2.993664881931061e+02 + -3.003820936000000e+02 + -3.014004133189056e+02 + -3.024214522481863e+02 + -3.034452153213495e+02 + -3.044717074825456e+02 + -3.055009335999997e+02 + -3.065328985120693e+02 + -3.075676071368449e+02 + -3.086050644279766e+02 + -3.096452753553112e+02 + -3.106882447999996e+02 + -3.117339776182681e+02 + -3.127824787990806e+02 + -3.138337533166528e+02 + -3.148878060732492e+02 + -3.159446419999996e+02 + -3.170042660531784e+02 + -3.180666831989414e+02 + -3.191318984100575e+02 + -3.201999166629245e+02 + -3.212707428999996e+02 + -3.223443820580361e+02 + -3.234208391391681e+02 + -3.245001191331626e+02 + -3.255822269890704e+02 + -3.266671677000000e+02 + -3.277549462905472e+02 + -3.288455677875165e+02 + -3.299390371822755e+02 + -3.310353594166140e+02 + -3.321345394999996e+02 + -3.332365824854958e+02 + -3.343414934139734e+02 + -3.354492773045120e+02 + -3.365599391517927e+02 + -3.376734840000000e+02 + -3.387899169180687e+02 + -3.399092429402671e+02 + -3.410314670886827e+02 + -3.421565943845668e+02 + -3.432846298999996e+02 + -3.444155787253185e+02 + -3.455494458929433e+02 + -3.466862364711880e+02 + -3.478259555971263e+02 + -3.489686083000000e+02 + -3.501141995805723e+02 + -3.512627346186799e+02 + -3.524142185495274e+02 + -3.535686563776662e+02 + -3.547260531999996e+02 + -3.558864141649047e+02 + -3.570497443588797e+02 + -3.582160488781844e+02 + -3.593853328562213e+02 + -3.605576014000000e+02 + -3.617328596203877e+02 + -3.629111127187760e+02 + -3.640923658296630e+02 + -3.652766239636252e+02 + -3.664638922999996e+02 + -3.676541760949210e+02 + -3.688474804479435e+02 + -3.700438104641370e+02 + -3.712431713192604e+02 + -3.724455682000000e+02 + -3.736510062917217e+02 + -3.748594907617601e+02 + -3.760710267615897e+02 + -3.772856194324323e+02 + -3.785032739999995e+02 + -3.797239957155368e+02 + -3.809477897125092e+02 + -3.821746611611994e+02 + -3.834046153278488e+02 + -3.846376574000000e+02 + -3.858737925371631e+02 + -3.871130260109560e+02 + -3.883553630688227e+02 + -3.896008088834330e+02 + -3.908493686999996e+02 + -3.921010477895665e+02 + -3.933558513233559e+02 + -3.946137845264227e+02 + -3.958748527376295e+02 + -3.971390612000000e+02 + -3.984064151109821e+02 + -3.996769197585321e+02 + -4.009505804131749e+02 + -4.022274022910074e+02 + -4.035073906999995e+02 + -4.047905509809469e+02 + -4.060768883569506e+02 + -4.073664080804837e+02 + -4.086591154923789e+02 + -4.099550159000000e+02 + -4.112541145837781e+02 + -4.125564168232350e+02 + -4.138619279264533e+02 + -4.151706532436620e+02 + -4.164825980999995e+02 + -4.177977678009782e+02 + -4.191161676484082e+02 + -4.204378029703449e+02 + -4.217626791355866e+02 + -4.230908015000000e+02 + -4.244221753941545e+02 + -4.257568060915354e+02 + -4.270946989435893e+02 + -4.284358594322071e+02 + -4.297802928999995e+02 + -4.311280046181774e+02 + -4.324789999621266e+02 + -4.338332843406102e+02 + -4.351908631680312e+02 + -4.365517418000000e+02 + -4.379159255766193e+02 + -4.392834199290754e+02 + -4.406542302894571e+02 + -4.420283620541414e+02 + -4.434058205999995e+02 + -4.447866113008026e+02 + -4.461707395611302e+02 + -4.475582108324218e+02 + -4.489490306166049e+02 + -4.503432043000000e+02 + -4.517407372272212e+02 + -4.531416348857516e+02 + -4.545459027469901e+02 + -4.559535462055746e+02 + -4.573645706999994e+02 + -4.587789817092769e+02 + -4.601967847429616e+02 + -4.616179852648949e+02 + -4.630425886631084e+02 + -4.644706004000000e+02 + -4.659020259847504e+02 + -4.673368709042424e+02 + -4.687751406384571e+02 + -4.702168406679589e+02 + -4.716619764999995e+02 + -4.731105536500806e+02 + -4.745625775980045e+02 + -4.760180538297375e+02 + -4.774769878558138e+02 + -4.789393852000000e+02 + -4.804052513950263e+02 + -4.818745919803221e+02 + -4.833474124743740e+02 + -4.848237183656923e+02 + -4.863035151999994e+02 + -4.877868085453354e+02 + -4.892736039052198e+02 + -4.907639068268139e+02 + -4.922577229425711e+02 + -4.937550578000000e+02 + -4.952559169027076e+02 + -4.967603058178435e+02 + -4.982682301416788e+02 + -4.997796954853789e+02 + -5.012947073999994e+02 + -5.028132714194502e+02 + -5.043353931676896e+02 + -5.058610782730644e+02 + -5.073903323321115e+02 + -5.089231609000000e+02 + -5.104595695386481e+02 + -5.119995639358939e+02 + -5.135431497453484e+02 + -5.150903325247945e+02 + -5.166411178999995e+02 + -5.181955115300345e+02 + -5.197535190105982e+02 + -5.213151459679927e+02 + -5.228803980937674e+02 + -5.244492810000000e+02 + -5.260218002787250e+02 + -5.275979616609960e+02 + -5.291777708470047e+02 + -5.307612334400695e+02 + -5.323483550999995e+02 + -5.339391415258532e+02 + -5.355335984055753e+02 + -5.371317314077364e+02 + -5.387335461786030e+02 + -5.403390484000000e+02 + -5.419482437848817e+02 + -5.435611380730882e+02 + -5.451777369746786e+02 + -5.467980461477442e+02 + -5.484220712999994e+02 + -5.500498181706811e+02 + -5.516812924850077e+02 + -5.533164999617454e+02 + -5.549554463178829e+02 + -5.565981372999994e+02 + -5.582445786620732e+02 + -5.598947761113077e+02 + -5.615487353817318e+02 + -5.632064622631164e+02 + -5.648679624999994e+02 + -5.665332418238921e+02 + -5.682023060429622e+02 + -5.698751609401672e+02 + -5.715518122344557e+02 + -5.732322656999993e+02 + -5.749165271427032e+02 + -5.766046023386582e+02 + -5.782964970855437e+02 + -5.799922172195480e+02 + -5.816917684999994e+02 + -5.833951566715182e+02 + -5.851023876259811e+02 + -5.868134672043320e+02 + -5.885284011210334e+02 + -5.902471951999993e+02 + -5.919698553287222e+02 + -5.936963873375214e+02 + -5.954267970459595e+02 + -5.971610902818754e+02 + -5.988992728999993e+02 + -6.006413507613062e+02 + -6.023873296844711e+02 + -6.041372155081436e+02 + -6.058910141182311e+02 + -6.076487313999993e+02 + -6.094103732273231e+02 + -6.111759454411804e+02 + -6.129454539033432e+02 + -6.147189045204622e+02 + -6.164963032000001e+02 + -6.182776558378988e+02 + -6.200629682925465e+02 + -6.218522464515877e+02 + -6.236454962577363e+02 + -6.254427235999993e+02 + -6.272439343587159e+02 + -6.290491345295636e+02 + -6.308583300588987e+02 + -6.326715267788347e+02 + -6.344887306000001e+02 + -6.363099474872770e+02 + -6.381351833941451e+02 + -6.399644442896572e+02 + -6.417977361628546e+02 + -6.436350648999993e+02 + -6.454764363684590e+02 + -6.473218566292518e+02 + -6.491713317125350e+02 + -6.510248675271151e+02 + -6.528824700000000e+02 + -6.547441451008573e+02 + -6.566098988943567e+02 + -6.584797373808955e+02 + -6.603536664383599e+02 + -6.622316920999993e+02 + -6.641138204605409e+02 + -6.660000574329696e+02 + -6.678904089961051e+02 + -6.697848812885560e+02 + -6.716834803000000e+02 + -6.735862119462199e+02 + -6.754930822688247e+02 + -6.774040973560088e+02 + -6.793192633079277e+02 + -6.812385860999992e+02 + -6.831620716800010e+02 + -6.850897262089175e+02 + -6.870215557906422e+02 + -6.889575663679858e+02 + -6.908977640000001e+02 + -6.928421548145254e+02 + -6.947907448778678e+02 + -6.967435402481692e+02 + -6.987005469959722e+02 + -7.006617711999993e+02 + -7.026272189534540e+02 + -7.045968963883171e+02 + -7.065708096021641e+02 + -7.085489646318440e+02 + -7.105313676000000e+02 + -7.125180246666655e+02 + -7.145089419064375e+02 + -7.165041254104643e+02 + -7.185035813280965e+02 + -7.205073157999993e+02 + -7.225153349567163e+02 + -7.245276449240899e+02 + -7.265442518464891e+02 + -7.285651618951177e+02 + -7.305903812000000e+02 + -7.326199158832851e+02 + -7.346537721472801e+02 + -7.366919561576724e+02 + -7.387344740033407e+02 + -7.407813318999993e+02 + -7.428325361060332e+02 + -7.448880927069067e+02 + -7.469480078569493e+02 + -7.490122878703525e+02 + -7.510809389000000e+02 + -7.531539670309830e+02 + -7.552313785295614e+02 + -7.573131796529314e+02 + -7.593993765758833e+02 + -7.614899754999992e+02 + -7.635849826556215e+02 + -7.656844042998581e+02 + -7.677882466626152e+02 + -7.698965159244972e+02 + -7.720092183000000e+02 + -7.741263600422619e+02 + -7.762479474594095e+02 + -7.783739868214470e+02 + -7.805044843222228e+02 + -7.826394461999992e+02 + -7.847788787331309e+02 + -7.869227882276110e+02 + -7.890711809493379e+02 + -7.912240631015031e+02 + -7.933814410000000e+02 + -7.955433210068886e+02 + -7.977097093640062e+02 + -7.998806123337483e+02 + -8.020560362523712e+02 + -8.042359873999992e+02 + -8.064204720446323e+02 + -8.086094965664213e+02 + -8.108030673053524e+02 + -8.130011905039750e+02 + -8.152038725000000e+02 + -8.174111196729889e+02 + -8.196229383028856e+02 + -8.218393347070877e+02 + -8.240603152936806e+02 + -8.262858863999992e+02 + -8.285160543327190e+02 + -8.307508254786889e+02 + -8.329902062108882e+02 + -8.352342028550189e+02 + -8.374828218000000e+02 + -8.397360694583805e+02 + -8.419939521636865e+02 + -8.442564762682848e+02 + -8.465236481828920e+02 + -8.487954742999991e+02 + -8.510719610066617e+02 + -8.533531147279726e+02 + -8.556389418758610e+02 + -8.579294488297842e+02 + -8.602246420000000e+02 + -8.625245278111681e+02 + -8.648291126593311e+02 + -8.671384029773127e+02 + -8.694524052578884e+02 + -8.717711258999991e+02 + -8.740945712693658e+02 + -8.764227478547659e+02 + -8.787556621558366e+02 + -8.810933206360036e+02 + -8.834357297000000e+02 + -8.857828957473700e+02 + -8.881348253000285e+02 + -8.904915248639498e+02 + -8.928530008754832e+02 + -8.952192597999992e+02 + -8.975903081273602e+02 + -8.999661523549036e+02 + -9.023467989915350e+02 + -9.047322545556517e+02 + -9.071225255000001e+02 + -9.095176182642568e+02 + -9.119175394073789e+02 + -9.143222954857910e+02 + -9.167318930073794e+02 + -9.191463384999990e+02 + -9.215656384936522e+02 + -9.239897994653498e+02 + -9.264188279352956e+02 + -9.288527305046009e+02 + -9.312915136999991e+02 + -9.337351840217814e+02 + -9.361837480744202e+02 + -9.386372124507991e+02 + -9.410955836845210e+02 + -9.435588682999991e+02 + -9.460270728408829e+02 + -9.485002039375468e+02 + -9.509782681943145e+02 + -9.534612721474879e+02 + -9.559492223999991e+02 + -9.584421255818636e+02 + -9.609399882443452e+02 + -9.634428169536077e+02 + -9.659506183300578e+02 + -9.684633989999990e+02 + -9.709811655949806e+02 + -9.735039247636544e+02 + -9.760316831188370e+02 + -9.785644472182881e+02 + -9.811022236999991e+02 + -9.836450192407020e+02 + -9.861928404528198e+02 + -9.887456939756197e+02 + -9.913035865101050e+02 + -9.938665246999991e+02 + -9.964345151588749e+02 + -9.990075645416573e+02 + -1.001585679508894e+03 + -1.004168866725833e+03 + -1.006757132999999e+03 + -1.009350485088950e+03 + -1.011948929193798e+03 + -1.014552472017065e+03 + -1.017161121149714e+03 + -1.019774882999999e+03 + -1.022393763477281e+03 + -1.025017769745607e+03 + -1.027646908706880e+03 + -1.030281186449000e+03 + -1.032920609999999e+03 + -1.035565186772393e+03 + -1.038214923106640e+03 + -1.040869825393126e+03 + -1.043529900494233e+03 + -1.046195154999999e+03 + -1.048865595518282e+03 + -1.051541229525064e+03 + -1.054222063914517e+03 + -1.056908104442841e+03 + -1.059599357999999e+03 + -1.062295832060889e+03 + -1.064997533253958e+03 + -1.067704468147946e+03 + -1.070416643533965e+03 + -1.073134066000000e+03 + -1.075856742179453e+03 + -1.078584679453085e+03 + -1.081317884808236e+03 + -1.084056364390976e+03 + -1.086800124999999e+03 + -1.089549173751501e+03 + -1.092303517161580e+03 + -1.095063162007773e+03 + -1.097828115663242e+03 + -1.100598385000000e+03 + -1.103373976558467e+03 + -1.106154896984741e+03 + -1.108941153067517e+03 + -1.111732751768433e+03 + -1.114529699999999e+03 + -1.117332004656191e+03 + -1.120139672719820e+03 + -1.122952711033347e+03 + -1.125771126202256e+03 + -1.128594925000000e+03 + -1.131424114391635e+03 + -1.134258701616623e+03 + -1.137098693726371e+03 + -1.139944097362279e+03 + -1.142794918999999e+03 + -1.145651165298781e+03 + -1.148512843975744e+03 + -1.151379962155369e+03 + -1.154252525751212e+03 + -1.157130542000000e+03 + -1.160014018647746e+03 + -1.162902961796701e+03 + -1.165797378002409e+03 + -1.168697275086654e+03 + -1.171602659999999e+03 + -1.174513539162380e+03 + -1.177429919411751e+03 + -1.180351807863387e+03 + -1.183279211838743e+03 + -1.186212138000000e+03 + -1.189150592852472e+03 + -1.192094584016226e+03 + -1.195044118757429e+03 + -1.197999203418656e+03 + -1.200959844999999e+03 + -1.203926050837031e+03 + -1.206897827704460e+03 + -1.209875182550288e+03 + -1.212858122751144e+03 + -1.215846655000000e+03 + -1.218840785789916e+03 + -1.221840522671824e+03 + -1.224845872987532e+03 + -1.227856843385819e+03 + -1.230873440999999e+03 + -1.233895673111333e+03 + -1.236923546192640e+03 + -1.239957067026041e+03 + -1.242996243170224e+03 + -1.246041082000000e+03 + -1.249091590572761e+03 + -1.252147775334870e+03 + -1.255209643154299e+03 + -1.258277201722480e+03 + -1.261350457999999e+03 + -1.264429418673061e+03 + -1.267514091394071e+03 + -1.270604483350415e+03 + -1.273700600740823e+03 + -1.276802451000000e+03 + -1.279910042060014e+03 + -1.283023380429426e+03 + -1.286142472688095e+03 + -1.289267326090673e+03 + -1.292397947999999e+03 + -1.295534345774196e+03 + -1.298676526619691e+03 + -1.301824497524618e+03 + -1.304978265240164e+03 + -1.308137837000000e+03 + -1.311303220289759e+03 + -1.314474422298625e+03 + -1.317651449999705e+03 + -1.320834310180745e+03 + -1.324023009999999e+03 + -1.327217556910311e+03 + -1.330417958531748e+03 + -1.333624221890711e+03 + -1.336836353161044e+03 + -1.340054360000000e+03 + -1.343278250622039e+03 + -1.346508031450468e+03 + -1.349743709083262e+03 + -1.352985291084887e+03 + -1.356232784999999e+03 + -1.359486198143600e+03 + -1.362745537187869e+03 + -1.366010809195683e+03 + -1.369282022032803e+03 + -1.372559183000000e+03 + -1.375842299046690e+03 + -1.379131377356324e+03 + -1.382426425045151e+03 + -1.385727449081319e+03 + -1.389034456999999e+03 + -1.392347456524483e+03 + -1.395666454635196e+03 + -1.398991458464414e+03 + -1.402322475610563e+03 + -1.405659513000000e+03 + -1.409002577344138e+03 + -1.412351676333446e+03 + -1.415706817605260e+03 + -1.419068008353351e+03 + -1.422435255999999e+03 + -1.425808567964313e+03 + -1.429187950969556e+03 + -1.432573411998037e+03 + -1.435964958719179e+03 + -1.439362599000000e+03 + -1.442766340439504e+03 + -1.446176189225631e+03 + -1.449592152360744e+03 + -1.453014238529275e+03 + -1.456442454999999e+03 + -1.459876808245435e+03 + -1.463317305593544e+03 + -1.466763954627232e+03 + -1.470216762966463e+03 + -1.473675738000000e+03 + -1.477140887005819e+03 + -1.480612217422037e+03 + -1.484089736511155e+03 + -1.487573451238554e+03 + -1.491063368999999e+03 + -1.494559497483912e+03 + -1.498061844364458e+03 + -1.501570417048641e+03 + -1.505085222548716e+03 + -1.508606267999999e+03 + -1.512133560790714e+03 + -1.515667108906144e+03 + -1.519206919999463e+03 + -1.522753000996140e+03 + -1.526305358999999e+03 + -1.529864001422905e+03 + -1.533428936276007e+03 + -1.537000171179230e+03 + -1.540577712963951e+03 + -1.544161568999999e+03 + -1.547751747018138e+03 + -1.551348254621497e+03 + -1.554951099280540e+03 + -1.558560288310355e+03 + -1.562175828999999e+03 + -1.565797728689906e+03 + -1.569425994958102e+03 + -1.573060635400619e+03 + -1.576701657553543e+03 + -1.580349068999999e+03 + -1.584002877314684e+03 + -1.587663089901193e+03 + -1.591329713983250e+03 + -1.595002756657312e+03 + -1.598682225999999e+03 + -1.602368130282464e+03 + -1.606060476003810e+03 + -1.609759270166310e+03 + -1.613464521194204e+03 + -1.617176236999999e+03 + -1.620894424965112e+03 + -1.624619091996676e+03 + -1.628350245392540e+03 + -1.632087893195996e+03 + -1.635832042999999e+03 + -1.639582702219653e+03 + -1.643339878880967e+03 + -1.647103580589531e+03 + -1.650873814125992e+03 + -1.654650586999999e+03 + -1.658433907212865e+03 + -1.662223782656940e+03 + -1.666020220927786e+03 + -1.669823229228366e+03 + -1.673632814999999e+03 + -1.677448985879331e+03 + -1.681271749582079e+03 + -1.685101113981527e+03 + -1.688937087086922e+03 + -1.692779675999999e+03 + -1.696628887589857e+03 + -1.700484730162859e+03 + -1.704347211664743e+03 + -1.708216339003609e+03 + -1.712092119999999e+03 + -1.715974562928047e+03 + -1.719863675285195e+03 + -1.723759464515762e+03 + -1.727661938269359e+03 + -1.731571103999999e+03 + -1.735486969207614e+03 + -1.739409542118944e+03 + -1.743338830603560e+03 + -1.747274841733617e+03 + -1.751217582999999e+03 + -1.755167062315964e+03 + -1.759123288009624e+03 + -1.763086267739076e+03 + -1.767056008086542e+03 + -1.771032516999999e+03 + -1.775015803098183e+03 + -1.779005873908525e+03 + -1.783002736756524e+03 + -1.787006399126180e+03 + -1.791016869000000e+03 + -1.795034154506543e+03 + -1.799058263107071e+03 + -1.803089202321619e+03 + -1.807126980015989e+03 + -1.811171603999998e+03 + -1.815223082025504e+03 + -1.819281421835726e+03 + -1.823346631247284e+03 + -1.827418718154363e+03 + -1.831497690000000e+03 + -1.835583554215247e+03 + -1.839676319355180e+03 + -1.843775993459518e+03 + -1.847882583413063e+03 + -1.851996096999998e+03 + -1.856116542493618e+03 + -1.860243927542824e+03 + -1.864378259929794e+03 + -1.868519547846306e+03 + -1.872667799000000e+03 + -1.876823020804590e+03 + -1.880985220849939e+03 + -1.885154407199114e+03 + -1.889330588466962e+03 + -1.893513771999998e+03 + -1.897703964771626e+03 + -1.901901175652285e+03 + -1.906105412964281e+03 + -1.910316683519642e+03 + -1.914534995000000e+03 + -1.918760355678869e+03 + -1.922992773607248e+03 + -1.927232256642219e+03 + -1.931478812455566e+03 + -1.935732448999998e+03 + -1.939993174351127e+03 + -1.944260996306766e+03 + -1.948535922544343e+03 + -1.952817960710870e+03 + -1.957107119000000e+03 + -1.961403405774432e+03 + -1.965706828656891e+03 + -1.970017395435863e+03 + -1.974335114379128e+03 + -1.978659992999998e+03 + -1.982992038634364e+03 + -1.987331259958815e+03 + -1.991677665406797e+03 + -1.996031262526477e+03 + -2.000392059000000e+03 + -2.004760062662544e+03 + -2.009135281420714e+03 + -2.013517723394651e+03 + -2.017907396963966e+03 + -2.022304309999998e+03 + -2.026708470129302e+03 + -2.031119885371980e+03 + -2.035538563783372e+03 + -2.039964513323241e+03 + -2.044397742000000e+03 + -2.048838257821666e+03 + -2.053286068652342e+03 + -2.057741182613919e+03 + -2.062203608203423e+03 + -2.066673352999998e+03 + -2.071150424296029e+03 + -2.075634830690161e+03 + -2.080126580708826e+03 + -2.084625682242698e+03 + -2.089132143000000e+03 + -2.093645970720743e+03 + -2.098167173603271e+03 + -2.102695759983049e+03 + -2.107231738184183e+03 + -2.111775115999998e+03 + -2.116325901057278e+03 + -2.120884101683680e+03 + -2.125449726108530e+03 + -2.130022782163747e+03 + -2.134603278000000e+03 + -2.139191221924691e+03 + -2.143786621957349e+03 + -2.148389485981318e+03 + -2.152999821836896e+03 + -2.157617637999998e+03 + -2.162242943074696e+03 + -2.166875744534069e+03 + -2.171516050262848e+03 + -2.176163869133622e+03 + -2.180819209000000e+03 + -2.185482077327040e+03 + -2.190152482871076e+03 + -2.194830433950524e+03 + -2.199515937814626e+03 + -2.204209002999998e+03 + -2.208909638535144e+03 + -2.213617851857877e+03 + -2.218333650781778e+03 + -2.223057044225780e+03 + -2.227788040000000e+03 + -2.232526645541351e+03 + -2.237272869895315e+03 + -2.242026721580949e+03 + -2.246788207788726e+03 + -2.251557336999999e+03 + -2.256334118250544e+03 + -2.261118559161676e+03 + -2.265910667352767e+03 + -2.270710451040453e+03 + -2.275517918999998e+03 + -2.280333080014267e+03 + -2.285155941593499e+03 + -2.289986511539142e+03 + -2.294824798563590e+03 + -2.299670810999998e+03 + -2.304524556927484e+03 + -2.309386044592275e+03 + -2.314255282195762e+03 + -2.319132277836808e+03 + -2.324017039999998e+03 + -2.328909577220459e+03 + -2.333809897224200e+03 + -2.338718008145149e+03 + -2.343633918994289e+03 + -2.348557637999998e+03 + -2.353489172912608e+03 + -2.358428531797252e+03 + -2.363375723128402e+03 + -2.368330755820120e+03 + -2.373293637999998e+03 + -2.378264377427878e+03 + -2.383242982526706e+03 + -2.388229461889857e+03 + -2.393223824063392e+03 + -2.398226076999998e+03 + -2.403236228525699e+03 + -2.408254287477974e+03 + -2.413280262494937e+03 + -2.418314161547432e+03 + -2.423355992999998e+03 + -2.428405765403690e+03 + -2.433463486890615e+03 + -2.438529165661329e+03 + -2.443602810190047e+03 + -2.448684428999998e+03 + -2.453774030522361e+03 + -2.458871622761939e+03 + -2.463977214083831e+03 + -2.469090813490053e+03 + -2.474212428999998e+03 + -2.479342068313477e+03 + -2.484479740528551e+03 + -2.489625454539379e+03 + -2.494779218375099e+03 + -2.499941039999998e+03 + -2.505110927624773e+03 + -2.510288890409285e+03 + -2.515474937052364e+03 + -2.520669075212765e+03 + -2.525871312999998e+03 + -2.531081658990217e+03 + -2.536300122220549e+03 + -2.541526711425658e+03 + -2.546761434689014e+03 + -2.552004299999998e+03 + -2.557255315555890e+03 + -2.562514490474060e+03 + -2.567781833501355e+03 + -2.573057352510476e+03 + -2.578341055999998e+03 + -2.583632952807378e+03 + -2.588933051312229e+03 + -2.594241359879810e+03 + -2.599557887014108e+03 + -2.604882640999998e+03 + -2.610215630196411e+03 + -2.615556863841929e+03 + -2.620906350516468e+03 + -2.626264097579904e+03 + -2.631630113999998e+03 + -2.637004409331177e+03 + -2.642386991059378e+03 + -2.647777867311749e+03 + -2.653177047878767e+03 + -2.658584540999998e+03 + -2.664000354190328e+03 + -2.669424496446296e+03 + -2.674856976816473e+03 + -2.680297803844182e+03 + -2.685746985999998e+03 + -2.691204531699670e+03 + -2.696670449221115e+03 + -2.702144747143579e+03 + -2.707627434527642e+03 + -2.713118519999998e+03 + -2.718618011850782e+03 + -2.724125918263655e+03 + -2.729642247949266e+03 + -2.735167010382318e+03 + -2.740700213999998e+03 + -2.746241866699575e+03 + -2.751791977076697e+03 + -2.757350554006517e+03 + -2.762917606479738e+03 + -2.768493143000000e+03 + -2.774077171851313e+03 + -2.779669701724049e+03 + -2.785270741295763e+03 + -2.790880299095185e+03 + -2.796498383999998e+03 + -2.802125004968091e+03 + -2.807760170344632e+03 + -2.813403888501788e+03 + -2.819056168106567e+03 + -2.824717018000000e+03 + -2.830386447079949e+03 + -2.836064464083062e+03 + -2.841751077483182e+03 + -2.847446295475182e+03 + -2.853150126999998e+03 + -2.858862581346520e+03 + -2.864583667200011e+03 + -2.870313392988722e+03 + -2.876051767015894e+03 + -2.881798798000000e+03 + -2.887554494917011e+03 + -2.893318866668325e+03 + -2.899091922031221e+03 + -2.904873669618204e+03 + -2.910664117999998e+03 + -2.916463275808826e+03 + -2.922271151990944e+03 + -2.928087755363771e+03 + -2.933913094445438e+03 + -2.939747178000000e+03 + -2.945590014959967e+03 + -2.951441614226611e+03 + -2.957301984588625e+03 + -2.963171134666888e+03 + -2.969049072999998e+03 + -2.974935808208847e+03 + -2.980831349417174e+03 + -2.986735705755709e+03 + -2.992648886132359e+03 + -2.998570899000000e+03 + -3.004501752659864e+03 + -3.010441455936329e+03 + -3.016390017858416e+03 + -3.022347447554316e+03 + -3.028313753999998e+03 + -3.034288946006182e+03 + -3.040273032141582e+03 + -3.046266021078663e+03 + -3.052267921739149e+03 + -3.058278743000000e+03 + -3.064298493698561e+03 + -3.070327182685398e+03 + -3.076364818827055e+03 + -3.082411411001809e+03 + -3.088466967999998e+03 + -3.094531498652569e+03 + -3.100605012177602e+03 + -3.106687517554494e+03 + -3.112779023262762e+03 + -3.118879538000000e+03 + -3.124989070695736e+03 + -3.131107630527278e+03 + -3.137235226491168e+03 + -3.143371867254447e+03 + -3.149517561999998e+03 + -3.155672319953097e+03 + -3.161836149115856e+03 + -3.168009058152651e+03 + -3.174191057129923e+03 + -3.180382155000000e+03 + -3.186582360055111e+03 + -3.192791681144167e+03 + -3.199010127274887e+03 + -3.205237707493432e+03 + -3.211474430999998e+03 + -3.217720306909038e+03 + -3.223975343611381e+03 + -3.230239549889151e+03 + -3.236512935355519e+03 + -3.242795509000000e+03 + -3.249087279482800e+03 + -3.255388255944051e+03 + -3.261698447489179e+03 + -3.268017862963467e+03 + -3.274346510999998e+03 + -3.280684400401313e+03 + -3.287031541121871e+03 + -3.293387942369432e+03 + -3.299753611888159e+03 + -3.306128559000000e+03 + -3.312512793688797e+03 + -3.318906324190636e+03 + -3.325309159228279e+03 + -3.331721308860119e+03 + -3.338142781999998e+03 + -3.344573586933190e+03 + -3.351013732692941e+03 + -3.357463228591956e+03 + -3.363922084041577e+03 + -3.370390307999997e+03 + -3.376867909193196e+03 + -3.383354896616435e+03 + -3.389851279509897e+03 + -3.396357067337695e+03 + -3.402872268999997e+03 + -3.409396893188545e+03 + -3.415930949268335e+03 + -3.422474446597307e+03 + -3.429027394238212e+03 + -3.435589800999997e+03 + -3.442161675674332e+03 + -3.448743027574159e+03 + -3.455333866086035e+03 + -3.461934200499129e+03 + -3.468544039999997e+03 + -3.475163393634110e+03 + -3.481792270131310e+03 + -3.488430678432703e+03 + -3.495078627927044e+03 + -3.501736127999997e+03 + -3.508403187927853e+03 + -3.515079816661691e+03 + -3.521766023349286e+03 + -3.528461817510494e+03 + -3.535167207999998e+03 + -3.541882203477436e+03 + -3.548606813620608e+03 + -3.555341047964333e+03 + -3.562084915431213e+03 + -3.568838424999997e+03 + -3.575601585773337e+03 + -3.582374407066678e+03 + -3.589156898185297e+03 + -3.595949068354316e+03 + -3.602750926999998e+03 + -3.609562483468940e+03 + -3.616383746264014e+03 + -3.623214724488114e+03 + -3.630055428392298e+03 + -3.636905866999997e+03 + -3.643766048793625e+03 + -3.650635983516456e+03 + -3.657515680680700e+03 + -3.664405149014039e+03 + -3.671304397999997e+03 + -3.678213437374473e+03 + -3.685132275760156e+03 + -3.692060922035369e+03 + -3.698999385901594e+03 + -3.705947676999997e+03 + -3.712905804797643e+03 + -3.719873778403308e+03 + -3.726851606752037e+03 + -3.733839298718909e+03 + -3.740836863999997e+03 + -3.747844312547997e+03 + -3.754861653211674e+03 + -3.761888895074585e+03 + -3.768926047955085e+03 + -3.775973120999997e+03 + -3.783030123074376e+03 + -3.790097063813473e+03 + -3.797173952745452e+03 + -3.804260798968512e+03 + -3.811357611999997e+03 + -3.818464401472386e+03 + -3.825581176303607e+03 + -3.832707945585785e+03 + -3.839844718954238e+03 + -3.846991505999998e+03 + -3.854148316201428e+03 + -3.861315158822798e+03 + -3.868492043129635e+03 + -3.875678978458987e+03 + -3.882875973999997e+03 + -3.890083038997269e+03 + -3.897300183310783e+03 + -3.904527416633095e+03 + -3.911764748154242e+03 + -3.919012186999997e+03 + -3.926269742452437e+03 + -3.933537424464352e+03 + -3.940815242621297e+03 + -3.948103205720294e+03 + -3.955401322999997e+03 + -3.962709604107895e+03 + -3.970028058998795e+03 + -3.977356697163350e+03 + -3.984695527326294e+03 + -3.992044558999997e+03 + -3.999403802144854e+03 + -4.006773266302151e+03 + -4.014152960820400e+03 + -4.021542894928240e+03 + -4.028943077999997e+03 + -4.036353519583599e+03 + -4.043774229513202e+03 + -4.051205217431756e+03 + -4.058646492564995e+03 + -4.066098063999997e+03 + -4.073559940995820e+03 + -4.081032133755226e+03 + -4.088514652104142e+03 + -4.096007504979870e+03 + -4.103510702000000e+03 + -4.111024253097677e+03 + -4.118548167510886e+03 + -4.126082454416708e+03 + -4.133627123225803e+03 + -4.141182184000000e+03 + -4.148747646853033e+03 + -4.156323520486682e+03 + -4.163909814098826e+03 + -4.171506538118098e+03 + -4.179113701999993e+03 + -4.186731314728609e+03 + -4.194359386189681e+03 + -4.201997926116393e+03 + -4.209646943720986e+03 + -4.217306449000000e+03 + -4.224976452122954e+03 + -4.232656961817923e+03 + -4.240347987240753e+03 + -4.248049538718602e+03 + -4.255761626000000e+03 + -4.263484258397591e+03 + -4.271217445246016e+03 + -4.278961196276451e+03 + -4.286715521743729e+03 + -4.294480431000000e+03 + -4.302255933066315e+03 + -4.310042038085233e+03 + -4.317838756007569e+03 + -4.325646096087124e+03 + -4.333464067999995e+03 + -4.341292681602012e+03 + -4.349131946225953e+03 + -4.356981871466000e+03 + -4.364842467485710e+03 + -4.372713744000000e+03 + -4.380595710372718e+03 + -4.388488375861229e+03 + -4.396391750264422e+03 + -4.404305844160006e+03 + -4.412230667000000e+03 + -4.420166227736474e+03 + -4.428112536405837e+03 + -4.436069603088062e+03 + -4.444037437481978e+03 + -4.452016049000000e+03 + -4.460005447074678e+03 + -4.468005641867199e+03 + -4.476016643204103e+03 + -4.484038460200805e+03 + -4.492071102999995e+03 + -4.500114582060231e+03 + -4.508168906299815e+03 + -4.516234085098625e+03 + -4.524310129075975e+03 + -4.532397048000000e+03 + -4.540494851104932e+03 + -4.548603547974418e+03 + -4.556723148595408e+03 + -4.564853663376500e+03 + -4.572995102000000e+03 + -4.581147473755137e+03 + -4.589310788334117e+03 + -4.597485055595826e+03 + -4.605670285497996e+03 + -4.613866488000000e+03 + -4.622073673035890e+03 + -4.630291850451470e+03 + -4.638521029781397e+03 + -4.646761220207367e+03 + -4.655012431999994e+03 + -4.663274675842531e+03 + -4.671547961173437e+03 + -4.679832297267551e+03 + -4.688127693710799e+03 + -4.696434161000000e+03 + -4.704751709752170e+03 + -4.713080348793824e+03 + -4.721420087561993e+03 + -4.729770937031085e+03 + -4.738132907000000e+03 + -4.746506006604411e+03 + -4.754890245715343e+03 + -4.763285634540516e+03 + -4.771692183448750e+03 + -4.780109901999994e+03 + -4.788538799466528e+03 + -4.796978886096308e+03 + -4.805430172162917e+03 + -4.813892667577567e+03 + -4.822366381999994e+03 + -4.830851325088147e+03 + -4.839347507060687e+03 + -4.847854938123849e+03 + -4.856373628221604e+03 + -4.864903587000000e+03 + -4.873444824101478e+03 + -4.881997349859994e+03 + -4.890561174364984e+03 + -4.899136307099045e+03 + -4.907722758000000e+03 + -4.916320537362784e+03 + -4.924929655587317e+03 + -4.933550122528648e+03 + -4.942181947260091e+03 + -4.950825139999994e+03 + -4.959479711457802e+03 + -4.968145671175524e+03 + -4.976823028809056e+03 + -4.985511794647833e+03 + -4.994211978999993e+03 + -5.002923592007461e+03 + -5.011646643245516e+03 + -5.020381142480443e+03 + -5.029127099988444e+03 + -5.037884526000000e+03 + -5.046653430641881e+03 + -5.055433823857634e+03 + -5.064225715527905e+03 + -5.073029115529123e+03 + -5.081844034000000e+03 + -5.090670481166524e+03 + -5.099508466925161e+03 + -5.108358001180135e+03 + -5.117219094017154e+03 + -5.126091755999993e+03 + -5.134975997626908e+03 + -5.143871827953957e+03 + -5.152779256704796e+03 + -5.161698295082459e+03 + -5.170628952999993e+03 + -5.179571239778229e+03 + -5.188525166029071e+03 + -5.197490742130520e+03 + -5.206467977662855e+03 + -5.215456883000000e+03 + -5.224457468752808e+03 + -5.233469744262066e+03 + -5.242493719420175e+03 + -5.251529405361101e+03 + -5.260576812000000e+03 + -5.269635948683524e+03 + -5.278706825911151e+03 + -5.287789454172008e+03 + -5.296883843495917e+03 + -5.305990003999993e+03 + -5.315107945871962e+03 + -5.324237679253967e+03 + -5.333379214299059e+03 + -5.342532561186867e+03 + -5.351697729999993e+03 + -5.360874730862462e+03 + -5.370063574314554e+03 + -5.379264270604972e+03 + -5.388476829418795e+03 + -5.397701261000000e+03 + -5.406937575887649e+03 + -5.416185784228891e+03 + -5.425445896082409e+03 + -5.434717921547790e+03 + -5.444001871000000e+03 + -5.453297754883592e+03 + -5.462605583222671e+03 + -5.471925366229407e+03 + -5.481257114511772e+03 + -5.490600837999993e+03 + -5.499956546429602e+03 + -5.509324250592133e+03 + -5.518703961068116e+03 + -5.528095687743725e+03 + -5.537499440999993e+03 + -5.546915231361128e+03 + -5.556343068498348e+03 + -5.565782962476614e+03 + -5.575234924238452e+03 + -5.584698964000000e+03 + -5.594175091687396e+03 + -5.603663318133420e+03 + -5.613163653827974e+03 + -5.622676108416792e+03 + -5.632200692000000e+03 + -5.641737415094019e+03 + -5.651286288507457e+03 + -5.660847322604374e+03 + -5.670420527008017e+03 + -5.680005911999993e+03 + -5.689603488367688e+03 + -5.699213267038800e+03 + -5.708835258184300e+03 + -5.718469470901945e+03 + -5.728115915999992e+03 + -5.737774605002216e+03 + -5.747445547634946e+03 + -5.757128753652110e+03 + -5.766824233562706e+03 + -5.776531998000000e+03 + -5.786252057564687e+03 + -5.795984422575620e+03 + -5.805729103393980e+03 + -5.815486110517342e+03 + -5.825255454000000e+03 + -5.835037143865786e+03 + -5.844831191184440e+03 + -5.854637606668529e+03 + -5.864456400127173e+03 + -5.874287581999993e+03 + -5.884131163070459e+03 + -5.893987153665426e+03 + -5.903855564090225e+03 + -5.913736404781277e+03 + -5.923629686000000e+03 + -5.933535418061928e+03 + -5.943453611973397e+03 + -5.953384278439786e+03 + -5.963327427438455e+03 + -5.973283069000000e+03 + -5.983251213525049e+03 + -5.993231872573540e+03 + -6.003225056744913e+03 + -6.013230774891098e+03 + -6.023249038000000e+03 + -6.033279857947543e+03 + -6.043323244258373e+03 + -6.053379206808452e+03 + -6.063447756872029e+03 + -6.073528904999992e+03 + -6.083622661322729e+03 + -6.093729036471069e+03 + -6.103848041095609e+03 + -6.113979685699232e+03 + -6.124123981000000e+03 + -6.134280937646101e+03 + -6.144450565430006e+03 + -6.154632874755873e+03 + -6.164827877191976e+03 + -6.175035583000000e+03 + -6.185256001935748e+03 + -6.195489145360168e+03 + -6.205735024246584e+03 + -6.215993648382001e+03 + -6.226265028000000e+03 + -6.236549173839082e+03 + -6.246846097225249e+03 + -6.257155808917487e+03 + -6.267478318647532e+03 + -6.277813636999993e+03 + -6.288161775039973e+03 + -6.298522743318929e+03 + -6.308896552332133e+03 + -6.319283212690151e+03 + -6.329682735000000e+03 + -6.340095129841887e+03 + -6.350520407726451e+03 + -6.360958579315570e+03 + -6.371409655512612e+03 + -6.381873647000000e+03 + -6.392350564293673e+03 + -6.402840417873253e+03 + -6.413343218449801e+03 + -6.423858977046060e+03 + -6.434387704000000e+03 + -6.444929409479182e+03 + -6.455484104800415e+03 + -6.466051800878468e+03 + -6.476632507643834e+03 + -6.487226235999992e+03 + -6.497832997260840e+03 + -6.508452801649206e+03 + -6.519085659445890e+03 + -6.529731581482401e+03 + -6.540390579000000e+03 + -6.551062663116751e+03 + -6.561747843536938e+03 + -6.572446130639311e+03 + -6.583157536279329e+03 + -6.593882071000000e+03 + -6.604619744763902e+03 + -6.615370568925604e+03 + -6.626134554413510e+03 + -6.636911711064461e+03 + -6.647702049999992e+03 + -6.658505582840396e+03 + -6.669322319643610e+03 + -6.680152270785791e+03 + -6.690995447680221e+03 + -6.701851860999993e+03 + -6.712721521095499e+03 + -6.723604439166686e+03 + -6.734500626205399e+03 + -6.745410092579864e+03 + -6.756332849000000e+03 + -6.767268906377159e+03 + -6.778218275408767e+03 + -6.789180966973428e+03 + -6.800156992270870e+03 + -6.811146362000000e+03 + -6.822149086596000e+03 + -6.833165176809022e+03 + -6.844194643583943e+03 + -6.855237498022965e+03 + -6.866293750999992e+03 + -6.877363413246921e+03 + -6.888446495554016e+03 + -6.899543008749155e+03 + -6.910652963678518e+03 + -6.921776370999992e+03 + -6.932913241460104e+03 + -6.944063586638155e+03 + -6.955227417524035e+03 + -6.966404743973952e+03 + -6.977595577000000e+03 + -6.988799928187199e+03 + -7.000017808173458e+03 + -7.011249227729020e+03 + -7.022494198140058e+03 + -7.033752730000000e+03 + -7.045024833685246e+03 + -7.056310520605544e+03 + -7.067609802022496e+03 + -7.078922688575014e+03 + -7.090249190999992e+03 + -7.101589320140114e+03 + -7.112943086874141e+03 + -7.124310502404821e+03 + -7.135691578318693e+03 + -7.147086324999992e+03 + -7.158494752468790e+03 + -7.169916872475182e+03 + -7.181352696510882e+03 + -7.192802235036809e+03 + -7.204265499000000e+03 + -7.215742499578333e+03 + -7.227233247391960e+03 + -7.238737753333357e+03 + -7.250256028887258e+03 + -7.261788085000000e+03 + -7.273333932305611e+03 + -7.284893581718426e+03 + -7.296467044458082e+03 + -7.308054332025791e+03 + -7.319655454999992e+03 + -7.331270423697963e+03 + -7.342899249833889e+03 + -7.354541944862027e+03 + -7.366198519315069e+03 + -7.377868983999992e+03 + -7.389553350032372e+03 + -7.401251628839381e+03 + -7.412963831476617e+03 + -7.424689968390403e+03 + -7.436430051000000e+03 + -7.448184091042194e+03 + -7.459952098877861e+03 + -7.471734085033887e+03 + -7.483530060856024e+03 + -7.495340038000000e+03 + -7.507164027981260e+03 + -7.519002041143363e+03 + -7.530854088088799e+03 + -7.542720180263871e+03 + -7.554600328999991e+03 + -7.566494545476364e+03 + -7.578402840747203e+03 + -7.590325225748156e+03 + -7.602261711334166e+03 + -7.614212308999990e+03 + -7.626177030375796e+03 + -7.638155885970103e+03 + -7.650148886679111e+03 + -7.662156044359298e+03 + -7.674177370000000e+03 + -7.686212874133715e+03 + -7.698262567927072e+03 + -7.710326462858042e+03 + -7.722404570574414e+03 + -7.734496902000000e+03 + -7.746603467726753e+03 + -7.758724278933637e+03 + -7.770859347070250e+03 + -7.783008683730720e+03 + -7.795172299999991e+03 + -7.807350206747154e+03 + -7.819542415323729e+03 + -7.831748936928582e+03 + -7.843969782379609e+03 + -7.856204962999991e+03 + -7.868454490389281e+03 + -7.880718375856472e+03 + -7.892996630459527e+03 + -7.905289265033489e+03 + -7.917596291000000e+03 + -7.929917719977670e+03 + -7.942253562811284e+03 + -7.954603830544003e+03 + -7.966968534806996e+03 + -7.979347687000000e+03 + -7.991741298275563e+03 + -8.004149379532312e+03 + -8.016571941875890e+03 + -8.029008996834256e+03 + -8.041460555999991e+03 + -8.053926630829063e+03 + -8.066407232164392e+03 + -8.078902371093302e+03 + -8.091412059283156e+03 + -8.103936307999991e+03 + -8.116475128348727e+03 + -8.129028531951320e+03 + -8.141596530160446e+03 + -8.154179133753471e+03 + -8.166776354000000e+03 + -8.179388202500601e+03 + -8.192014690774517e+03 + -8.204655830155478e+03 + -8.217311631752342e+03 + -8.229982107000000e+03 + -8.242667267443709e+03 + -8.255367124181290e+03 + -8.268081688506129e+03 + -8.280810972124258e+03 + -8.293554985999990e+03 + -8.306313740930424e+03 + -8.319087249046417e+03 + -8.331875522237864e+03 + -8.344678571514016e+03 + -8.357496408000001e+03 + -8.370329042981793e+03 + -8.383176487893126e+03 + -8.396038754236946e+03 + -8.408915853538949e+03 + -8.421807796999999e+03 + -8.434714595760075e+03 + -8.447636261558551e+03 + -8.460572806112319e+03 + -8.473524240852536e+03 + -8.486490577000000e+03 + -8.499471825734363e+03 + -8.512467998550057e+03 + -8.525479106914012e+03 + -8.538505162160651e+03 + -8.551546175999989e+03 + -8.564602160205039e+03 + -8.577673125806519e+03 + -8.590759084111069e+03 + -8.603860047081474e+03 + -8.616976026000000e+03 + -8.630107031891077e+03 + -8.643253076647045e+03 + -8.656414171854482e+03 + -8.669590328370747e+03 + -8.682781558000001e+03 + -8.695987872906602e+03 + -8.709209284090668e+03 + -8.722445802791402e+03 + -8.735697441007769e+03 + -8.748964210000000e+03 + -8.762246120773598e+03 + -8.775543185390141e+03 + -8.788855415760128e+03 + -8.802182823160678e+03 + -8.815525418999991e+03 + -8.828883214778334e+03 + -8.842256221886048e+03 + -8.855644451817980e+03 + -8.869047916276779e+03 + -8.882466627000000e+03 + -8.895900595656447e+03 + -8.909349833599377e+03 + -8.922814352320849e+03 + -8.936294163622882e+03 + -8.949789279000001e+03 + -8.963299709806102e+03 + -8.976825467697834e+03 + -8.990366564425331e+03 + -9.003923011733321e+03 + -9.017494820999989e+03 + -9.031082003570244e+03 + -9.044684571593196e+03 + -9.058302536801553e+03 + -9.071935910043938e+03 + -9.085584702999991e+03 + -9.099248927805194e+03 + -9.112928596071970e+03 + -9.126623719398038e+03 + -9.140334309541779e+03 + -9.154060378000000e+03 + -9.167801936143134e+03 + -9.181558995552323e+03 + -9.195331568052554e+03 + -9.209119665711642e+03 + -9.222923300000000e+03 + -9.236742482191501e+03 + -9.250577224366738e+03 + -9.264427538348678e+03 + -9.278293435300837e+03 + -9.292174926999989e+03 + -9.306072025514850e+03 + -9.319984742353185e+03 + -9.333913089239737e+03 + -9.347857078372264e+03 + -9.361816720999988e+03 + -9.375792028076301e+03 + -9.389783011923670e+03 + -9.403789684689073e+03 + -9.417812057757259e+03 + -9.431850143000000e+03 + -9.445903952452922e+03 + -9.459973497383473e+03 + -9.474058789280491e+03 + -9.488159840242311e+03 + -9.502276662000000e+03 + -9.516409266099370e+03 + -9.530557664431180e+03 + -9.544721868948835e+03 + -9.558901891554557e+03 + -9.573097743999990e+03 + -9.587309437907974e+03 + -9.601536984771086e+03 + -9.615780396443668e+03 + -9.630039685320193e+03 + -9.644314862999989e+03 + -9.658605940694017e+03 + -9.672912930240365e+03 + -9.687235843732506e+03 + -9.701574693379191e+03 + -9.715929491000001e+03 + -9.730300248146514e+03 + -9.744686976337332e+03 + -9.759089687418043e+03 + -9.773508393705906e+03 + -9.787943106999999e+03 + -9.802393838806964e+03 + -9.816860600913731e+03 + -9.831343405392694e+03 + -9.845842264577648e+03 + -9.860357189999990e+03 + -9.874888192875391e+03 + -9.889435285292540e+03 + -9.903998479577405e+03 + -9.918577788007758e+03 + -9.933173221999989e+03 + -9.947784792760667e+03 + -9.962412512866247e+03 + -9.977056394630243e+03 + -9.991716449514770e+03 + -1.000639269000000e+04 + -1.002108512827329e+04 + -1.003579377260607e+04 + -1.005051863510592e+04 + -1.006525973450424e+04 + -1.008001708000000e+04 + -1.009479067738785e+04 + -1.010958054488143e+04 + -1.012438669671707e+04 + -1.013920913701616e+04 + -1.015404787999999e+04 + -1.016890294387830e+04 + -1.018377433451942e+04 + -1.019866206104612e+04 + -1.021356614193473e+04 + -1.022848658999999e+04 + -1.024342341422066e+04 + -1.025837662498870e+04 + -1.027334623400460e+04 + -1.028833225445739e+04 + -1.030333470000000e+04 + -1.031835358368700e+04 + -1.033338891534757e+04 + -1.034844070623467e+04 + -1.036350897076085e+04 + -1.037859372000000e+04 + -1.039369496373519e+04 + -1.040881271589677e+04 + -1.042394698923176e+04 + -1.043909779325773e+04 + -1.045426513999999e+04 + -1.046944904320307e+04 + -1.048464951626011e+04 + -1.049986657147346e+04 + -1.051510021951631e+04 + -1.053035046999999e+04 + -1.054561733346490e+04 + -1.056090082649770e+04 + -1.057620096382862e+04 + -1.059151775501402e+04 + -1.060685121000000e+04 + -1.062220133982168e+04 + -1.063756815769902e+04 + -1.065295167679853e+04 + -1.066835190951487e+04 + -1.068376887000000e+04 + -1.069920257172756e+04 + -1.071465302083269e+04 + -1.073012022736731e+04 + -1.074560420973240e+04 + -1.076110497999999e+04 + -1.077662254698522e+04 + -1.079215692468130e+04 + -1.080770812602064e+04 + -1.082327616047952e+04 + -1.083886103999999e+04 + -1.085446277832030e+04 + -1.087008138917964e+04 + -1.088571688451933e+04 + -1.090136927381244e+04 + -1.091703857000000e+04 + -1.093272478707855e+04 + -1.094842793381667e+04 + -1.096414802233435e+04 + -1.097988507119364e+04 + -1.099563909000000e+04 + -1.101141008471468e+04 + -1.102719807131307e+04 + -1.104300306633410e+04 + -1.105882508291791e+04 + -1.107466412999999e+04 + -1.109052021511841e+04 + -1.110639335038349e+04 + -1.112228355101184e+04 + -1.113819083451417e+04 + -1.115411520999999e+04 + -1.117005668368749e+04 + -1.118601527242516e+04 + -1.120199099177015e+04 + -1.121798385114509e+04 + -1.123399386000000e+04 + -1.125002102929127e+04 + -1.126606537454743e+04 + -1.128212691149971e+04 + -1.129820565394142e+04 + -1.131430161000000e+04 + -1.133041478676655e+04 + -1.134654520134832e+04 + -1.136269286880464e+04 + -1.137885779750048e+04 + -1.139503999999999e+04 + -1.141123949060806e+04 + -1.142745627830015e+04 + -1.144369037489935e+04 + -1.145994179819328e+04 + -1.147621056000000e+04 + -1.149249666929363e+04 + -1.150880014040390e+04 + -1.152512098586926e+04 + -1.154145921396878e+04 + -1.155781484000000e+04 + -1.157418788116290e+04 + -1.159057834325663e+04 + -1.160698623573862e+04 + -1.162341157750990e+04 + -1.163985437999999e+04 + -1.165631465167572e+04 + -1.167279241049137e+04 + -1.168928767028212e+04 + -1.170580043559586e+04 + -1.172233071999999e+04 + -1.173887854137991e+04 + -1.175544390951204e+04 + -1.177202683447122e+04 + -1.178862732998528e+04 + -1.180524541000000e+04 + -1.182188108744826e+04 + -1.183853437152247e+04 + -1.185520527417456e+04 + -1.187189381268968e+04 + -1.188860000000000e+04 + -1.190532384555031e+04 + -1.192206535739879e+04 + -1.193882454957090e+04 + -1.195560144455150e+04 + -1.197239604999999e+04 + -1.198920836801576e+04 + -1.200603841862060e+04 + -1.202288622005816e+04 + -1.203975178087160e+04 + -1.205663510999999e+04 + -1.207353621858988e+04 + -1.209045512337030e+04 + -1.210739183876488e+04 + -1.212434637372514e+04 + -1.214131874000000e+04 + -1.215830895146994e+04 + -1.217531702204386e+04 + -1.219234296344827e+04 + -1.220938678454126e+04 + -1.222644850000000e+04 + -1.224352812665298e+04 + -1.226062567426862e+04 + -1.227774115320455e+04 + -1.229487457740941e+04 + -1.231202595999999e+04 + -1.232919531361497e+04 + -1.234638265190763e+04 + -1.236358798719477e+04 + -1.238081132944854e+04 + -1.239805268999999e+04 + -1.241531208224867e+04 + -1.243258952373459e+04 + -1.244988502746729e+04 + -1.246719859854622e+04 + -1.248453025000000e+04 + -1.250187999937352e+04 + -1.251924785997314e+04 + -1.253663384322633e+04 + -1.255403795942784e+04 + -1.257146022000000e+04 + -1.258890063824787e+04 + -1.260635923174130e+04 + -1.262383601348307e+04 + -1.264133098848631e+04 + -1.265884416999999e+04 + -1.267637557565735e+04 + -1.269392521755929e+04 + -1.271149310837373e+04 + -1.272907926320349e+04 + -1.274668368999999e+04 + -1.276430639533002e+04 + -1.278194739917555e+04 + -1.279960671868295e+04 + -1.281728436173200e+04 + -1.283498034000000e+04 + -1.285269466774105e+04 + -1.287042735763161e+04 + -1.288817842259290e+04 + -1.290594787633268e+04 + -1.292373573000000e+04 + -1.294154199365508e+04 + -1.295936667981993e+04 + -1.297720980264566e+04 + -1.299507137776778e+04 + -1.301295141999999e+04 + -1.303084994203483e+04 + -1.304876695061188e+04 + -1.306670245535235e+04 + -1.308465647270176e+04 + -1.310262901999999e+04 + -1.312062011245361e+04 + -1.313862975604251e+04 + -1.315665796055223e+04 + -1.317470474462057e+04 + -1.319277012000000e+04 + -1.321085409533674e+04 + -1.322895668661698e+04 + -1.324707790969205e+04 + -1.326521777718879e+04 + -1.328337630000000e+04 + -1.330155348851537e+04 + -1.331974935491385e+04 + -1.333796391362056e+04 + -1.335619718140170e+04 + -1.337444916999999e+04 + -1.339271988874384e+04 + -1.341100935082290e+04 + -1.342931756987852e+04 + -1.344764455872234e+04 + -1.346599032999999e+04 + -1.348435489664480e+04 + -1.350273827293541e+04 + -1.352114047045672e+04 + -1.353956149695641e+04 + -1.355800137000000e+04 + -1.357646010972569e+04 + -1.359493772045508e+04 + -1.361343421245217e+04 + -1.363194960986463e+04 + -1.365048392000000e+04 + -1.366903714425879e+04 + -1.368760930691950e+04 + -1.370620042690972e+04 + -1.372481050688227e+04 + -1.374343955999999e+04 + -1.376208760473736e+04 + -1.378075465005087e+04 + -1.379944070672178e+04 + -1.381814579185646e+04 + -1.383686991999999e+04 + -1.385561310323773e+04 + -1.387437535187516e+04 + -1.389315667691767e+04 + -1.391195709130158e+04 + -1.393077661000000e+04 + -1.394961524865979e+04 + -1.396847302075987e+04 + -1.398734993803961e+04 + -1.400624601054151e+04 + -1.402516125000000e+04 + -1.404409566989268e+04 + -1.406304928589068e+04 + -1.408202211294199e+04 + -1.410101416389908e+04 + -1.412002544999999e+04 + -1.413905598164077e+04 + -1.415810576964489e+04 + -1.417717482985645e+04 + -1.419626318438561e+04 + -1.421537083999999e+04 + -1.423449779870650e+04 + -1.425364408441530e+04 + -1.427280971628262e+04 + -1.429199469812906e+04 + -1.431119904000000e+04 + -1.433042275698022e+04 + -1.434966586475864e+04 + -1.436892837784737e+04 + -1.438821030874347e+04 + -1.440751167000000e+04 + -1.442683247464153e+04 + -1.444617273693482e+04 + -1.446553246845352e+04 + -1.448491167696990e+04 + -1.450431037999999e+04 + -1.452372859766022e+04 + -1.454316633455064e+04 + -1.456262360064903e+04 + -1.458210041914065e+04 + -1.460159679999998e+04 + -1.462111274782618e+04 + -1.464064828275210e+04 + -1.466020342227678e+04 + -1.467977817411577e+04 + -1.469937255000000e+04 + -1.471898656425745e+04 + -1.473862022905967e+04 + -1.475827355783788e+04 + -1.477794656667906e+04 + -1.479763927000000e+04 + -1.481735168022591e+04 + -1.483708380678435e+04 + -1.485683566151257e+04 + -1.487660726097236e+04 + -1.489639861999999e+04 + -1.491620975095499e+04 + -1.493604066191429e+04 + -1.495589136614776e+04 + -1.497576188555746e+04 + -1.499565223000000e+04 + -1.501556240451360e+04 + -1.503549242791256e+04 + -1.505544231896391e+04 + -1.507541209051985e+04 + -1.509540175000000e+04 + -1.511541130465759e+04 + -1.513544077375174e+04 + -1.515549017500820e+04 + -1.517555951933053e+04 + -1.519564881999999e+04 + -1.521575809081157e+04 + -1.523588734003694e+04 + -1.525603658036919e+04 + -1.527620583277191e+04 + -1.529639510999998e+04 + -1.531660442034102e+04 + -1.533683377728779e+04 + -1.535708319443415e+04 + -1.537735268372974e+04 + -1.539764226000000e+04 + -1.541795193921473e+04 + -1.543828173411788e+04 + -1.545863165713528e+04 + -1.547900172144165e+04 + -1.549939194000000e+04 + -1.551980232569260e+04 + -1.554023289178161e+04 + -1.556068365093051e+04 + -1.558115461506463e+04 + -1.560164579999999e+04 + -1.562215722197032e+04 + -1.564268888875843e+04 + -1.566324081295743e+04 + -1.568381301679686e+04 + -1.570440550999999e+04 + -1.572501829745089e+04 + -1.574565139909988e+04 + -1.576630483256334e+04 + -1.578697860613842e+04 + -1.580767273000000e+04 + -1.582838721786272e+04 + -1.584912209052793e+04 + -1.586987736246908e+04 + -1.589065303680525e+04 + -1.591144913000000e+04 + -1.593226566336701e+04 + -1.595310264072689e+04 + -1.597396007256353e+04 + -1.599483798518879e+04 + -1.601573638999999e+04 + -1.603665529105288e+04 + -1.605759470511345e+04 + -1.607855464838671e+04 + -1.609953513161670e+04 + -1.612053616999998e+04 + -1.614155778004294e+04 + -1.616259997081388e+04 + -1.618366275348782e+04 + -1.620474614514243e+04 + -1.622585016000000e+04 + -1.624697481007329e+04 + -1.626812010728422e+04 + -1.628928606592670e+04 + -1.631047270337715e+04 + -1.633168003000000e+04 + -1.635290805454565e+04 + -1.637415679800609e+04 + -1.639542627592296e+04 + -1.641671649164588e+04 + -1.643802745999998e+04 + -1.645935920179283e+04 + -1.648071172935930e+04 + -1.650208505431875e+04 + -1.652347919039644e+04 + -1.654489414999998e+04 + -1.656632994566724e+04 + -1.658778659427021e+04 + -1.660926410974226e+04 + -1.663076250029903e+04 + -1.665228178000000e+04 + -1.667382196574960e+04 + -1.669538306946903e+04 + -1.671696510420377e+04 + -1.673856808645374e+04 + -1.676019203000000e+04 + -1.678183694695306e+04 + -1.680350285053965e+04 + -1.682518975366077e+04 + -1.684689766850574e+04 + -1.686862660999998e+04 + -1.689037659405139e+04 + -1.691214763326874e+04 + -1.693393974023558e+04 + -1.695575292860696e+04 + -1.697758720999999e+04 + -1.699944259677470e+04 + -1.702131910964586e+04 + -1.704321676352935e+04 + -1.706513556209216e+04 + -1.708707552000000e+04 + -1.710903665790321e+04 + -1.713101898938551e+04 + -1.715302252479822e+04 + -1.717504727292061e+04 + -1.719709325000000e+04 + -1.721916047545785e+04 + -1.724124896174670e+04 + -1.726335872072246e+04 + -1.728548976595536e+04 + -1.730764210999998e+04 + -1.732981576548871e+04 + -1.735201074834581e+04 + -1.737422707347338e+04 + -1.739646475299950e+04 + -1.741872379999999e+04 + -1.744100422776899e+04 + -1.746330604747148e+04 + -1.748562927386205e+04 + -1.750797392735042e+04 + -1.753034002000000e+04 + -1.755272756012299e+04 + -1.757513656385630e+04 + -1.759756704698003e+04 + -1.762001902165879e+04 + -1.764249250000000e+04 + -1.766498749503509e+04 + -1.768750402279969e+04 + -1.771004209797560e+04 + -1.773260173223158e+04 + -1.775518293999998e+04 + -1.777778573725219e+04 + -1.780041013823985e+04 + -1.782305615380817e+04 + -1.784572379125812e+04 + -1.786841306999998e+04 + -1.789112401297027e+04 + -1.791385662520795e+04 + -1.793661091551944e+04 + -1.795938690506571e+04 + -1.798218461000000e+04 + -1.800500404157250e+04 + -1.802784520726593e+04 + -1.805070812126097e+04 + -1.807359280836476e+04 + -1.809649928000000e+04 + -1.811942754077938e+04 + -1.814237760512274e+04 + -1.816534949154946e+04 + -1.818834322012563e+04 + -1.821135879999998e+04 + -1.823439623670011e+04 + -1.825745554979138e+04 + -1.828053675712656e+04 + -1.830363986886144e+04 + -1.832676489999998e+04 + -1.834991186721417e+04 + -1.837308077964562e+04 + -1.839627164834952e+04 + -1.841948449011883e+04 + -1.844271932000000e+04 + -1.846597615248214e+04 + -1.848925500551537e+04 + -1.851255589141731e+04 + -1.853587881367952e+04 + -1.855922379000000e+04 + -1.858259084403384e+04 + -1.860597998459446e+04 + -1.862939122130964e+04 + -1.865282457086503e+04 + -1.867628004999998e+04 + -1.869975767367864e+04 + -1.872325745125265e+04 + -1.874677939400045e+04 + -1.877032351829797e+04 + -1.879388983999998e+04 + -1.881747837395618e+04 + -1.884108913346766e+04 + -1.886472213066709e+04 + -1.888837737699991e+04 + -1.891205489000000e+04 + -1.893575468867888e+04 + -1.895947678210836e+04 + -1.898322118083019e+04 + -1.900698790146692e+04 + -1.903077696000000e+04 + -1.905458837122149e+04 + -1.907842214817702e+04 + -1.910227830328199e+04 + -1.912615684887913e+04 + -1.915005779999998e+04 + -1.917398117252360e+04 + -1.919792697876641e+04 + -1.922189523162585e+04 + -1.924588594641727e+04 + -1.926989913999998e+04 + -1.929393482787026e+04 + -1.931799301676958e+04 + -1.934207372057390e+04 + -1.936617696590223e+04 + -1.939030276000000e+04 + -1.941445110358184e+04 + -1.943862202401437e+04 + -1.946281554213054e+04 + -1.948703165938676e+04 + -1.951127038999998e+04 + -1.953553175531375e+04 + -1.955981576784185e+04 + -1.958412243887696e+04 + -1.960845178142548e+04 + -1.963280380999998e+04 + -1.965717854010317e+04 + -1.968157598764983e+04 + -1.970599616682758e+04 + -1.973043908928781e+04 + -1.975490477000000e+04 + -1.977939322508017e+04 + -1.980390446612710e+04 + -1.982843850672890e+04 + -1.985299536464853e+04 + -1.987757505000000e+04 + -1.990217757132781e+04 + -1.992680295149982e+04 + -1.995145120910892e+04 + -1.997612235106852e+04 + -2.000081638999998e+04 + -2.002553334291399e+04 + -2.005027322692212e+04 + -2.007503605456619e+04 + -2.009982183242756e+04 + -2.012463057999998e+04 + -2.014946232050470e+04 + -2.017431705750974e+04 + -2.019919480128925e+04 + -2.022409557869796e+04 + -2.024901940000000e+04 + -2.027396626876084e+04 + -2.029893620825063e+04 + -2.032392923791251e+04 + -2.034894536415857e+04 + -2.037398460000000e+04 + -2.039904696273123e+04 + -2.042413246681671e+04 + -2.044924112749899e+04 + -2.047437296177629e+04 + -2.049952797999998e+04 + -2.052470619105544e+04 + -2.054990761544010e+04 + -2.057513226917888e+04 + -2.060038015795331e+04 + -2.062565129999998e+04 + -2.065094571854568e+04 + -2.067626342205840e+04 + -2.070160442063917e+04 + -2.072696873225083e+04 + -2.075235637000000e+04 + -2.077776734528838e+04 + -2.080320167696219e+04 + -2.082865938214449e+04 + -2.085414047244347e+04 + -2.087964496000000e+04 + -2.090517285805777e+04 + -2.093072418166662e+04 + -2.095629894648643e+04 + -2.098189716820891e+04 + -2.100751885999998e+04 + -2.103316403410750e+04 + -2.105883270565323e+04 + -2.108452489048020e+04 + -2.111024060421226e+04 + -2.113597985999998e+04 + -2.116174267011207e+04 + -2.118752904964539e+04 + -2.121333901446366e+04 + -2.123917258027344e+04 + -2.126502976000000e+04 + -2.129091056582378e+04 + -2.131681501406569e+04 + -2.134274311932949e+04 + -2.136869489244911e+04 + -2.139467035000000e+04 + -2.142066951097057e+04 + -2.144669238829770e+04 + -2.147273899344209e+04 + -2.149880933837191e+04 + -2.152490343999998e+04 + -2.155102131698669e+04 + -2.157716298229367e+04 + -2.160332844744082e+04 + -2.162951772437019e+04 + -2.165573082999998e+04 + -2.168196778300156e+04 + -2.170822859627157e+04 + -2.173451328139519e+04 + -2.176082185053812e+04 + -2.178715432000000e+04 + -2.181351070821111e+04 + -2.183989103150391e+04 + -2.186629530288904e+04 + -2.189272353140778e+04 + -2.191917573000000e+04 + -2.194565191497987e+04 + -2.197215210512397e+04 + -2.199867631637375e+04 + -2.202522455969623e+04 + -2.205179684999998e+04 + -2.207839320363563e+04 + -2.210501363148952e+04 + -2.213165814783550e+04 + -2.215832677350680e+04 + -2.218501951999998e+04 + -2.221173639532642e+04 + -2.223847741910094e+04 + -2.226524260850044e+04 + -2.229203197306979e+04 + -2.231884553000000e+04 + -2.234568329890952e+04 + -2.237254528774074e+04 + -2.239943150806158e+04 + -2.242634198094407e+04 + -2.245327672000000e+04 + -2.248023573585785e+04 + -2.250721904853940e+04 + -2.253422667413636e+04 + -2.256125861967753e+04 + -2.258831489999998e+04 + -2.261539553480252e+04 + -2.264250054093014e+04 + -2.266962993052693e+04 + -2.269678371062339e+04 + -2.272396189999998e+04 + -2.275116452153000e+04 + -2.277839158301363e+04 + -2.280564309534358e+04 + -2.283291907950545e+04 + -2.286021955000000e+04 + -2.288754451771620e+04 + -2.291489399812011e+04 + -2.294226800704672e+04 + -2.296966655917324e+04 + -2.299708967000000e+04 + -2.302453735490683e+04 + -2.305200962641978e+04 + -2.307950649734620e+04 + -2.310702798236498e+04 + -2.313457409999998e+04 + -2.316214486856879e+04 + -2.318974029613145e+04 + -2.321736039447026e+04 + -2.324500518448656e+04 + -2.327267467999998e+04 + -2.330036889175501e+04 + -2.332808783850466e+04 + -2.335583153764027e+04 + -2.338360000121357e+04 + -2.341139324000000e+04 + -2.343921126672951e+04 + -2.346705410394532e+04 + -2.349492176951476e+04 + -2.352281427072812e+04 + -2.355073162000000e+04 + -2.357867383414989e+04 + -2.360664093193761e+04 + -2.363463292919098e+04 + -2.366264983684289e+04 + -2.369069166999998e+04 + -2.371875844507638e+04 + -2.374685017193912e+04 + -2.377496686591387e+04 + -2.380310855200050e+04 + -2.383127523999998e+04 + -2.385946693403709e+04 + -2.388768365690810e+04 + -2.391592542840760e+04 + -2.394419225713039e+04 + -2.397248416000000e+04 + -2.400080115691363e+04 + -2.402914325571854e+04 + -2.405751046800998e+04 + -2.408590281513924e+04 + -2.411432031000000e+04 + -2.414276296293371e+04 + -2.417123079796694e+04 + -2.419972383203242e+04 + -2.422824206706797e+04 + -2.425678551999998e+04 + -2.428535421485334e+04 + -2.431394816200073e+04 + -2.434256737430352e+04 + -2.437121187300517e+04 + -2.439988166999998e+04 + -2.442857677325164e+04 + -2.445729720103540e+04 + -2.448604297194451e+04 + -2.451481410082247e+04 + -2.454361060000000e+04 + -2.457243248182022e+04 + -2.460127976431730e+04 + -2.463015246522100e+04 + -2.465905059942621e+04 + -2.468797417999998e+04 + -2.471692321945616e+04 + -2.474589773222362e+04 + -2.477489773480251e+04 + -2.480392324581322e+04 + -2.483297427999998e+04 + -2.486205084917968e+04 + -2.489115296405446e+04 + -2.492028064024748e+04 + -2.494943390068509e+04 + -2.497861275999998e+04 + -2.500781722863925e+04 + -2.503704732334474e+04 + -2.506630305872901e+04 + -2.509558444448151e+04 + -2.512489150000000e+04 + -2.515422424757818e+04 + -2.518358269497819e+04 + -2.521296685328307e+04 + -2.524237674371633e+04 + -2.527181237999998e+04 + -2.530127377273551e+04 + -2.533076094162915e+04 + -2.536027390311031e+04 + -2.538981266594794e+04 + -2.541937724999998e+04 + -2.544896767801531e+04 + -2.547858395406606e+04 + -2.550822608802068e+04 + -2.553789410507042e+04 + -2.556758802000000e+04 + -2.559730784246711e+04 + -2.562705359189478e+04 + -2.565682528525429e+04 + -2.568662293247029e+04 + -2.571644655000000e+04 + -2.574629615713407e+04 + -2.577617176604459e+04 + -2.580607338891535e+04 + -2.583600104095400e+04 + -2.586595473999998e+04 + -2.589593450400127e+04 + -2.592594034522632e+04 + -2.595597227610649e+04 + -2.598603031176017e+04 + -2.601611446999998e+04 + -2.604622476879967e+04 + -2.607636122042706e+04 + -2.610652383730750e+04 + -2.613671263455693e+04 + -2.616692763000000e+04 + -2.619716884161440e+04 + -2.622743628160562e+04 + -2.625772996246335e+04 + -2.628804989951923e+04 + -2.631839611000000e+04 + -2.634876861165059e+04 + -2.637916741999917e+04 + -2.640959254907723e+04 + -2.644004401148305e+04 + -2.647052181999998e+04 + -2.650102598983489e+04 + -2.653155654491748e+04 + -2.656211350103963e+04 + -2.659269685960091e+04 + -2.662330663999998e+04 + -2.665394286925502e+04 + -2.668460555517195e+04 + -2.671529470758218e+04 + -2.674601034670874e+04 + -2.677675249000000e+04 + -2.680752115154265e+04 + -2.683831634157976e+04 + -2.686913807564717e+04 + -2.689998637786448e+04 + -2.693086126000000e+04 + -2.696176272916689e+04 + -2.699269080763921e+04 + -2.702364551500381e+04 + -2.705462686113689e+04 + -2.708563485999998e+04 + -2.711666952809900e+04 + -2.714773087942122e+04 + -2.717881892991400e+04 + -2.720993369901594e+04 + -2.724107519999998e+04 + -2.727224344400496e+04 + -2.730343845029767e+04 + -2.733466023562860e+04 + -2.736590881019403e+04 + -2.739718419000000e+04 + -2.742848639412166e+04 + -2.745981543741902e+04 + -2.749117133427855e+04 + -2.752255410001475e+04 + -2.755396375000000e+04 + -2.758540029934807e+04 + -2.761686376223195e+04 + -2.764835415476579e+04 + -2.767987149599797e+04 + -2.771141579999997e+04 + -2.774298707825893e+04 + -2.777458534547961e+04 + -2.780621061813955e+04 + -2.783786291408934e+04 + -2.786954224999998e+04 + -2.790124864062599e+04 + -2.793298209650868e+04 + -2.796474263269793e+04 + -2.799653027215609e+04 + -2.802834503000000e+04 + -2.806018691678819e+04 + -2.809205594694776e+04 + -2.812395213748840e+04 + -2.815587550739401e+04 + -2.818782607000000e+04 + -2.821980383662756e+04 + -2.825180882556652e+04 + -2.828384105454396e+04 + -2.831590053775406e+04 + -2.834798728999998e+04 + -2.838010132665882e+04 + -2.841224266303304e+04 + -2.844441131398464e+04 + -2.847660729395342e+04 + -2.850883061999998e+04 + -2.854108131015271e+04 + -2.857335937943549e+04 + -2.860566484233479e+04 + -2.863799771378746e+04 + -2.867035801000000e+04 + -2.870274574643904e+04 + -2.873516093256026e+04 + -2.876760358436649e+04 + -2.880007372909855e+04 + -2.883257138000000e+04 + -2.886509654365616e+04 + -2.889764923870952e+04 + -2.893022948372628e+04 + -2.896283729252707e+04 + -2.899547267999998e+04 + -2.902813566168059e+04 + -2.906082625190441e+04 + -2.909354446650575e+04 + -2.912629032389195e+04 + -2.915906383999998e+04 + -2.919186502919167e+04 + -2.922469390650106e+04 + -2.925755048733507e+04 + -2.929043478725063e+04 + -2.932334682000000e+04 + -2.935628660019129e+04 + -2.938925415043921e+04 + -2.942224948806936e+04 + -2.945527261979538e+04 + -2.948832356000000e+04 + -2.952140232838030e+04 + -2.955450894361826e+04 + -2.958764342089699e+04 + -2.962080577090842e+04 + -2.965399600999997e+04 + -2.968721415715336e+04 + -2.972046022629084e+04 + -2.975373423280592e+04 + -2.978703619592538e+04 + -2.982036612999997e+04 + -2.985372404652352e+04 + -2.988710995909819e+04 + -2.992052388535540e+04 + -2.995396584761164e+04 + -2.998743586000000e+04 + -3.002093393306212e+04 + -3.005446008516229e+04 + -3.008801433415196e+04 + -3.012159669410924e+04 + -3.015520717999998e+04 + -3.018884580728562e+04 + -3.022251259030155e+04 + -3.025620754490144e+04 + -3.028993068950620e+04 + -3.032368203999997e+04 + -3.035746161072607e+04 + -3.039126941699663e+04 + -3.042510547393189e+04 + -3.045896979612689e+04 + -3.049286239999998e+04 + -3.052678330335746e+04 + -3.056073252467363e+04 + -3.059471007984014e+04 + -3.062871598061521e+04 + -3.066275024000000e+04 + -3.069681287356475e+04 + -3.073090390293319e+04 + -3.076502334621974e+04 + -3.079917121404217e+04 + -3.083334751999997e+04 + -3.086755228023463e+04 + -3.090178551167921e+04 + -3.093604723225209e+04 + -3.097033746063074e+04 + -3.100465620999998e+04 + -3.103900349175437e+04 + -3.107337932446759e+04 + -3.110778372555016e+04 + -3.114221670819769e+04 + -3.117667828999997e+04 + -3.121116848957679e+04 + -3.124568731744623e+04 + -3.128023478769976e+04 + -3.131481092268889e+04 + -3.134941574000000e+04 + -3.138404925321087e+04 + -3.141871147408727e+04 + -3.145340241670125e+04 + -3.148812209933996e+04 + -3.152287053999997e+04 + -3.155764775577736e+04 + -3.159245376185456e+04 + -3.162728857279384e+04 + -3.166215220315186e+04 + -3.169704466999997e+04 + -3.173196599132658e+04 + -3.176691618227545e+04 + -3.180189525721778e+04 + -3.183690323068162e+04 + -3.187194012000000e+04 + -3.190700594323912e+04 + -3.194210071422084e+04 + -3.197722444868163e+04 + -3.201237716636405e+04 + -3.204755888000000e+04 + -3.208276960047787e+04 + -3.211800935023939e+04 + -3.215327814773632e+04 + -3.218857600158763e+04 + -3.222390292999997e+04 + -3.225925895535199e+04 + -3.229464408973093e+04 + -3.233005834462857e+04 + -3.236550173499735e+04 + -3.240097427999997e+04 + -3.243647600017841e+04 + -3.247200691143220e+04 + -3.250756702669824e+04 + -3.254315635678932e+04 + -3.257877492000000e+04 + -3.261442273792899e+04 + -3.265009982555360e+04 + -3.268580619650297e+04 + -3.272154186523808e+04 + -3.275730685000000e+04 + -3.279310116911321e+04 + -3.282892483177912e+04 + -3.286477785354587e+04 + -3.290066026202923e+04 + -3.293657206999998e+04 + -3.297251328378459e+04 + -3.300848392497173e+04 + -3.304448401407080e+04 + -3.308051356412061e+04 + -3.311657258999998e+04 + -3.315266110752813e+04 + -3.318877912993135e+04 + -3.322492667413289e+04 + -3.326110376297835e+04 + -3.329731041000000e+04 + -3.333354662539115e+04 + -3.336981243131684e+04 + -3.340610784669931e+04 + -3.344243288124504e+04 + -3.347878755000000e+04 + -3.351517187197135e+04 + -3.355158586607149e+04 + -3.358802954742114e+04 + -3.362450292603845e+04 + -3.366100601999997e+04 + -3.369753885113907e+04 + -3.373410143432544e+04 + -3.377069378324004e+04 + -3.380731591267414e+04 + -3.384396783999997e+04 + -3.388064958319757e+04 + -3.391736115628571e+04 + -3.395410257481684e+04 + -3.399087385786547e+04 + -3.402767502000000e+04 + -3.406450607498593e+04 + -3.410136704569621e+04 + -3.413825794940452e+04 + -3.417517879208190e+04 + -3.421212959000000e+04 + -3.424911036577375e+04 + -3.428612113814977e+04 + -3.432316192150666e+04 + -3.436023272579379e+04 + -3.439733356999998e+04 + -3.443446447621852e+04 + -3.447162545467578e+04 + -3.450881651888796e+04 + -3.454603769159935e+04 + -3.458328898999997e+04 + -3.462057042742187e+04 + -3.465788201822977e+04 + -3.469522377879945e+04 + -3.473259572783916e+04 + -3.476999788000000e+04 + -3.480743024920274e+04 + -3.484489285737491e+04 + -3.488238572274076e+04 + -3.491990885516477e+04 + -3.495746227000000e+04 + -3.499504598627476e+04 + -3.503266002163332e+04 + -3.507030439252002e+04 + -3.510797911399110e+04 + -3.514568419999997e+04 + -3.518341966538968e+04 + -3.522118553105182e+04 + -3.525898181605689e+04 + -3.529680853433678e+04 + -3.533466569999997e+04 + -3.537255332834070e+04 + -3.541047143775194e+04 + -3.544842004484196e+04 + -3.548639916273562e+04 + -3.552440881000000e+04 + -3.556244900769237e+04 + -3.560051977192599e+04 + -3.563862111528000e+04 + -3.567675304773126e+04 + -3.571491559000000e+04 + -3.575310876677514e+04 + -3.579133259025522e+04 + -3.582958707123636e+04 + -3.586787222387752e+04 + -3.590618806999997e+04 + -3.594453463328037e+04 + -3.598291192576281e+04 + -3.602131995866808e+04 + -3.605975874687618e+04 + -3.609822830999997e+04 + -3.613672866872384e+04 + -3.617525983663845e+04 + -3.621382182906358e+04 + -3.625241466608051e+04 + -3.629103836000000e+04 + -3.632969292147818e+04 + -3.636837837559645e+04 + -3.640709474306420e+04 + -3.644584203277781e+04 + -3.648462026000000e+04 + -3.652342944409004e+04 + -3.656226960170399e+04 + -3.660114075023598e+04 + -3.664004290875195e+04 + -3.667897608999997e+04 + -3.671794030512006e+04 + -3.675693557547587e+04 + -3.679596192058374e+04 + -3.683501935339895e+04 + -3.687410788999997e+04 + -3.691322754870546e+04 + -3.695237834723054e+04 + -3.699156030212950e+04 + -3.703077342834224e+04 + -3.707001774000000e+04 + -3.710929325203417e+04 + -3.714859998429457e+04 + -3.718793795692067e+04 + -3.722730718808447e+04 + -3.726670768999997e+04 + -3.730613947399677e+04 + -3.734560256273038e+04 + -3.738509697431393e+04 + -3.742462271654350e+04 + -3.746417980999997e+04 + -3.750376828013417e+04 + -3.754338813660564e+04 + -3.758303939267375e+04 + -3.762272207245150e+04 + -3.766243618999997e+04 + -3.770218175518502e+04 + -3.774195878945678e+04 + -3.778176731257176e+04 + -3.782160733741773e+04 + -3.786147888000000e+04 + -3.790138195864309e+04 + -3.794131659132003e+04 + -3.798128279431332e+04 + -3.802128058166662e+04 + -3.806130996999997e+04 + -3.810137097737330e+04 + -3.814146362046005e+04 + -3.818158791697343e+04 + -3.822174388615621e+04 + -3.826193153999997e+04 + -3.830215088938532e+04 + -3.834240195971708e+04 + -3.838268477130731e+04 + -3.842299933188884e+04 + -3.846334565999997e+04 + -3.850372377842891e+04 + -3.854413369633216e+04 + -3.858457542816681e+04 + -3.862504900090371e+04 + -3.866555443000000e+04 + -3.870609172486966e+04 + -3.874666090332934e+04 + -3.878726198409722e+04 + -3.882789498399841e+04 + -3.886855991999997e+04 + -3.890925680946781e+04 + -3.894998567054054e+04 + -3.899074651957592e+04 + -3.903153937021765e+04 + -3.907236423999997e+04 + -3.911322114736439e+04 + -3.915411010384250e+04 + -3.919503112747372e+04 + -3.923598424716172e+04 + -3.927696946999997e+04 + -3.931798680038228e+04 + -3.935903628964794e+04 + -3.940011793259103e+04 + -3.944123164809230e+04 + -3.948237770000000e+04 + -3.952355620675491e+04 + -3.956476584662273e+04 + -3.960600801403134e+04 + -3.964728735507886e+04 + -3.968859104999997e+04 + 1.819886919039960e+01 + 1.816405130921966e+01 + 1.812918280091599e+01 + 1.809426424653407e+01 + 1.805929622711938e+01 + 1.802427932371738e+01 + 1.798921411737356e+01 + 1.795410118913339e+01 + 1.791894112004234e+01 + 1.788373449114589e+01 + 1.784848188348950e+01 + 1.781318387811866e+01 + 1.777784105607885e+01 + 1.774245399841551e+01 + 1.770702328617416e+01 + 1.767154950040025e+01 + 1.763603322213927e+01 + 1.760047503243666e+01 + 1.756487551233793e+01 + 1.752923524288855e+01 + 1.749355480513398e+01 + 1.745783478011969e+01 + 1.742207574889119e+01 + 1.738627829249391e+01 + 1.735044299197335e+01 + 1.731457042837498e+01 + 1.727866118274428e+01 + 1.724271583612671e+01 + 1.720673496956776e+01 + 1.717071916411290e+01 + 1.713466900080759e+01 + 1.709858506069732e+01 + 1.706246792482757e+01 + 1.702631817424381e+01 + 1.699013638999150e+01 + 1.695392315311613e+01 + 1.691767904466317e+01 + 1.688140464567809e+01 + 1.684510053720637e+01 + 1.680876730029348e+01 + 1.677240551598491e+01 + 1.673601576532611e+01 + 1.669959862936258e+01 + 1.666315468913977e+01 + 1.662668452570318e+01 + 1.659018872009826e+01 + 1.655366785337049e+01 + 1.651712250656536e+01 + 1.648055326072833e+01 + 1.644396069690488e+01 + 1.640734539614049e+01 + 1.637070793948063e+01 + 1.633404890797076e+01 + 1.629736888265638e+01 + 1.626066844458294e+01 + 1.622394817479593e+01 + 1.618720865434082e+01 + 1.615045046426309e+01 + 1.611367418560821e+01 + 1.607688039942165e+01 + 1.604006968674890e+01 + 1.600324262863542e+01 + 1.596639980612668e+01 + 1.592954180026817e+01 + 1.589266919210536e+01 + 1.585578256268371e+01 + 1.581888249304872e+01 + 1.578196956424585e+01 + 1.574504435732057e+01 + 1.570810745331836e+01 + 1.567115943328470e+01 + 1.563420087826506e+01 + 1.559723236930490e+01 + 1.556025448744972e+01 + 1.552326781374499e+01 + 1.548627292923617e+01 + 1.544927041496875e+01 + 1.541226085198818e+01 + 1.537524482133997e+01 + 1.533822290406956e+01 + 1.530119568122245e+01 + 1.526416373384410e+01 + 1.522712764298000e+01 + 1.519008798967561e+01 + 1.515304535497640e+01 + 1.511600031992786e+01 + 1.507895346557546e+01 + 1.504190537296467e+01 + 1.500485662314096e+01 + 1.496780779714983e+01 + 1.493075947603672e+01 + 1.489371224084713e+01 + 1.485666667262652e+01 + 1.481962335242037e+01 + 1.478258286127416e+01 + 1.474554578023335e+01 + 1.470851269034343e+01 + 1.467148417264987e+01 + 1.463446080819813e+01 + 1.459744317803371e+01 + 1.456043186320207e+01 + 1.452342744474869e+01 + 1.448643050371903e+01 + 1.444944162115858e+01 + 1.441246137811282e+01 + 1.437549035562720e+01 + 1.433852913474722e+01 + 1.430157829651834e+01 + 1.426463842198604e+01 + 1.422771009219579e+01 + 1.419079388819307e+01 + 1.415389039102334e+01 + 1.411700018173210e+01 + 1.408012384136481e+01 + 1.404326195096694e+01 + 1.400641509158398e+01 + 1.396958384426139e+01 + 1.393276879004464e+01 + 1.389597050997923e+01 + 1.385918958511061e+01 + 1.382242659648426e+01 + 1.378568212514566e+01 + 1.374895675214029e+01 + 1.371225105851361e+01 + 1.367556562531110e+01 + 1.363890103357824e+01 + 1.360225786436050e+01 + 1.356563669870335e+01 + 1.352903811765228e+01 + 1.349246270225274e+01 + 1.345591103355023e+01 + 1.341938369259021e+01 + 1.338288126041816e+01 + 1.334640431807955e+01 + 1.330995344661985e+01 + 1.327352922708455e+01 + 1.323713224051912e+01 + 1.320076306796902e+01 + 1.316442229047974e+01 + 1.312811048909675e+01 + 1.309182824486553e+01 + 1.305557613883154e+01 + 1.301935475204027e+01 + 1.298316466553718e+01 + 1.294700646036776e+01 + 1.291088071757748e+01 + 1.287478801821181e+01 + 1.283872894331622e+01 + 1.280270407393619e+01 + 1.276671399111720e+01 + 1.273075927590472e+01 + 1.269484050934423e+01 + 1.265895827248119e+01 + 1.262311314636109e+01 + 1.258730571202939e+01 + 1.255153655053158e+01 + 1.251580624291313e+01 + 1.248011537021950e+01 + 1.244446451349619e+01 + 1.240885425378865e+01 + 1.237328517214237e+01 + 1.233775784960283e+01 + 1.230227286721548e+01 + 1.226683080602582e+01 + 1.223143224707931e+01 + 1.219607777142142e+01 + 1.216076796009764e+01 + 1.212550339415344e+01 + 1.209028465463429e+01 + 1.205511232258567e+01 + 1.201998697905305e+01 + 1.198490920508190e+01 + 1.194987958171770e+01 + 1.191489869000593e+01 + 1.187996711099206e+01 + 1.184508542572157e+01 + 1.181025421523992e+01 + 1.177547406059259e+01 + 1.174074554282507e+01 + 1.170606924298281e+01 + 1.167144574211130e+01 + 1.163687562125602e+01 + 1.160235946146243e+01 + 1.156789784377601e+01 + 1.153349134924223e+01 + 1.149914055890657e+01 + 1.146484605381452e+01 + 1.143060841501152e+01 + 1.139642822354308e+01 + 1.136230606045464e+01 + 1.132824250679170e+01 + 1.129423814359974e+01 + 1.126029355192421e+01 + 1.122640931281059e+01 + 1.119258600730437e+01 + 1.115882421645102e+01 + 1.112512452129600e+01 + 1.109148750288479e+01 + 1.105791374226288e+01 + 1.102440382047573e+01 + 1.099095831856882e+01 + 1.095757781758762e+01 + 1.092426289857761e+01 + 1.089101414258426e+01 + 1.085783213065305e+01 + 1.082471744382945e+01 + 1.079167066315892e+01 + 1.075869236968697e+01 + 1.072578314445905e+01 + 1.069294356852064e+01 + 1.066017422291721e+01 + 1.062747568869424e+01 + 1.059484854689720e+01 + 1.056229337857157e+01 + 1.052981076476282e+01 + 1.049740128651643e+01 + 1.046506552487787e+01 + 1.043280406089261e+01 + 1.040061747560614e+01 + 1.036850635006392e+01 + 1.033647126531143e+01 + 1.030451280239414e+01 + 1.027263154235754e+01 + 1.024082806624708e+01 + 1.020910295510825e+01 + 1.017745678998653e+01 + 1.014589015192738e+01 + 1.011440362197629e+01 + 1.008299778117872e+01 + 1.005167321058014e+01 + 1.002043049122605e+01 + 9.989270204161905e+00 + 9.958192930433185e+00 + 9.927199251085362e+00 + 9.896289747163912e+00 + 9.865464999714312e+00 + 9.834725589782032e+00 + 9.804072098412551e+00 + 9.773505106651340e+00 + 9.743025195543877e+00 + 9.712632946135633e+00 + 9.682328939472086e+00 + 9.652113756598707e+00 + 9.621987978560973e+00 + 9.591952186404358e+00 + 9.562006961174337e+00 + 9.532152883916382e+00 + 9.502390535675973e+00 + 9.472720497498580e+00 + 9.443143350429677e+00 + 9.413659675514742e+00 + 9.384270053799249e+00 + 9.354975066328668e+00 + 9.325775294148480e+00 + 9.296671318304156e+00 + 9.267663719841170e+00 + 9.238753079804999e+00 + 9.209939979241115e+00 + 9.181224999194994e+00 + 9.152608720712111e+00 + 9.124091724837941e+00 + 9.095674592617954e+00 + 9.067357905097630e+00 + 9.039142243322441e+00 + 9.011028188337864e+00 + 8.983016292445305e+00 + 8.955106689123129e+00 + 8.927299195109086e+00 + 8.899593619314148e+00 + 8.871989770649284e+00 + 8.844487458025464e+00 + 8.817086490353660e+00 + 8.789786676544839e+00 + 8.762587825509975e+00 + 8.735489746160036e+00 + 8.708492247405990e+00 + 8.681595138158814e+00 + 8.654798227329470e+00 + 8.628101323828931e+00 + 8.601504236568170e+00 + 8.575006774458155e+00 + 8.548608746409855e+00 + 8.522309961334242e+00 + 8.496110228142285e+00 + 8.470009355744955e+00 + 8.444007153053219e+00 + 8.418103428978053e+00 + 8.392297992430423e+00 + 8.366590652321301e+00 + 8.340981217561657e+00 + 8.315469497062459e+00 + 8.290055299734679e+00 + 8.264738434489287e+00 + 8.239518710237252e+00 + 8.214395935889545e+00 + 8.189369920357137e+00 + 8.164440472550996e+00 + 8.139607401382095e+00 + 8.114870515761401e+00 + 8.090229624599887e+00 + 8.065684536808520e+00 + 8.041235061298275e+00 + 8.016881006980118e+00 + 7.992622182765018e+00 + 7.968458397563950e+00 + 7.944389460287880e+00 + 7.920415179847782e+00 + 7.896535365154623e+00 + 7.872749825119373e+00 + 7.849058368653004e+00 + 7.825460804666484e+00 + 7.801956942070785e+00 + 7.778546589776878e+00 + 7.755229556695729e+00 + 7.732005651738313e+00 + 7.708874683815599e+00 + 7.685836461838553e+00 + 7.662890794718152e+00 + 7.640037491365358e+00 + 7.617276360691148e+00 + 7.594607211606489e+00 + 7.572029853022352e+00 + 7.549544093849708e+00 + 7.527149742999527e+00 + 7.504846609382777e+00 + 7.482634501910429e+00 + 7.460513229493455e+00 + 7.438482601042820e+00 + 7.416542425469502e+00 + 7.394692511684465e+00 + 7.372932668598682e+00 + 7.351262705123121e+00 + 7.329682430168755e+00 + 7.308191652646553e+00 + 7.286790181467484e+00 + 7.265477825542517e+00 + 7.244254393782626e+00 + 7.223119695098779e+00 + 7.202073538401945e+00 + 7.181115732603097e+00 + 7.160246086613204e+00 + 7.139464409343233e+00 + 7.118770509704159e+00 + 7.098164196606950e+00 + 7.077645278962576e+00 + 7.057213565682006e+00 + 7.036868865676214e+00 + 7.016610987856166e+00 + 6.996439741132834e+00 + 6.976354934417186e+00 + 6.956356376620197e+00 + 6.936443876652832e+00 + 6.916617243426063e+00 + 6.896876285850862e+00 + 6.877220812838198e+00 + 6.857650633299039e+00 + 6.838165556144358e+00 + 6.818765390285123e+00 + 6.799449944632306e+00 + 6.780219028096876e+00 + 6.761072449589803e+00 + 6.742010018022058e+00 + 6.723031542304612e+00 + 6.704136831348434e+00 + 6.685325694064492e+00 + 6.666597939363759e+00 + 6.647953376157203e+00 + 6.629391813355797e+00 + 6.610913059870509e+00 + 6.592516924612310e+00 + 6.574203216492170e+00 + 6.555971744421058e+00 + 6.537822317309946e+00 + 6.519754744069803e+00 + 6.501768833611600e+00 + 6.483864394846306e+00 + 6.466041236684891e+00 + 6.448299168038327e+00 + 6.430637997817582e+00 + 6.413057534933630e+00 + 6.395557588297437e+00 + 6.378137966819973e+00 + 6.360798479412210e+00 + 6.343538934985117e+00 + 6.326359142449666e+00 + 6.309258910716826e+00 + 6.292238048697567e+00 + 6.275296365302859e+00 + 6.258433669443673e+00 + 6.241649770030978e+00 + 6.224944475975745e+00 + 6.208317596188945e+00 + 6.191768939581546e+00 + 6.175298315064517e+00 + 6.158905531548833e+00 + 6.142590397945462e+00 + 6.126352723165372e+00 + 6.110192316119535e+00 + 6.094108985718921e+00 + 6.078102540874499e+00 + 6.062172790497243e+00 + 6.046319543498117e+00 + 6.030542608788095e+00 + 6.014841795278149e+00 + 5.999216911879244e+00 + 5.983667767502356e+00 + 5.968194171058448e+00 + 5.952795931458497e+00 + 5.937472857613470e+00 + 5.922224758434336e+00 + 5.907051442832068e+00 + 5.891952719717633e+00 + 5.876928398002004e+00 + 5.861978286596150e+00 + 5.847102194411042e+00 + 5.832299930357648e+00 + 5.817571303346941e+00 + 5.802916122289888e+00 + 5.788334196097460e+00 + 5.773825333680629e+00 + 5.759389343950365e+00 + 5.745026035817635e+00 + 5.730735218193414e+00 + 5.716516699988668e+00 + 5.702370290114368e+00 + 5.688295797481486e+00 + 5.674293031000990e+00 + 5.660361799583851e+00 + 5.646501912141039e+00 + 5.632713177583526e+00 + 5.618995404822279e+00 + 5.605348402768269e+00 + 5.591771980332467e+00 + 5.578265946425844e+00 + 5.564830109959368e+00 + 5.551464279844009e+00 + 5.538168264990741e+00 + 5.524941874310529e+00 + 5.511784916714348e+00 + 5.498697201113163e+00 + 5.485678536417949e+00 + 5.472728731539672e+00 + 5.459847595389306e+00 + 5.447031950668924e+00 + 5.434258417587328e+00 + 5.421509378931341e+00 + 5.408790202589383e+00 + 5.396101725502927e+00 + 5.383442552149385e+00 + 5.370812984345576e+00 + 5.358213038980171e+00 + 5.345642546622406e+00 + 5.333101463094469e+00 + 5.320589727671893e+00 + 5.308107264570896e+00 + 5.295654006874094e+00 + 5.283229887334054e+00 + 5.270834837715376e+00 + 5.258468789944041e+00 + 5.246131676000384e+00 + 5.233823428164784e+00 + 5.221543979540164e+00 + 5.209293263422158e+00 + 5.197071212820756e+00 + 5.184877759775030e+00 + 5.172712837552656e+00 + 5.160576380473933e+00 + 5.148468322098453e+00 + 5.136388595958436e+00 + 5.124337135726472e+00 + 5.112313875048248e+00 + 5.100318748362747e+00 + 5.088351690727316e+00 + 5.076412636057685e+00 + 5.064501518839616e+00 + 5.052618274474592e+00 + 5.040762837425790e+00 + 5.028935142799786e+00 + 5.017135126690616e+00 + 5.005362723409764e+00 + 4.993617868159293e+00 + 4.981900498164465e+00 + 4.970210548621045e+00 + 4.958547954855285e+00 + 4.946912653797631e+00 + 4.935304581602165e+00 + 4.923723674430540e+00 + 4.912169869219803e+00 + 4.900643102722201e+00 + 4.889143311682699e+00 + 4.877670433140317e+00 + 4.866224404407401e+00 + 4.854805162838305e+00 + 4.843412645620055e+00 + 4.832046790470948e+00 + 4.820707535433044e+00 + 4.809394818449872e+00 + 4.798108577205163e+00 + 4.786848749644187e+00 + 4.775615274885523e+00 + 4.764408091170769e+00 + 4.753227136475494e+00 + 4.742072350593207e+00 + 4.730943672320340e+00 + 4.719841039761676e+00 + 4.708764392793848e+00 + 4.697713670947889e+00 + 4.686688813308958e+00 + 4.675689760077749e+00 + 4.664716450776882e+00 + 4.653768824355144e+00 + 4.642846821849820e+00 + 4.631950383864691e+00 + 4.621079449911801e+00 + 4.610233960271208e+00 + 4.599413855814052e+00 + 4.588619077726644e+00 + 4.577849566594633e+00 + 4.567105263324451e+00 + 4.556386109499332e+00 + 4.545692045920192e+00 + 4.535023013830533e+00 + 4.524378955558838e+00 + 4.513759812087895e+00 + 4.503165524982657e+00 + 4.492596037765430e+00 + 4.482051291649467e+00 + 4.471531227881555e+00 + 4.461035790191556e+00 + 4.450564920902143e+00 + 4.440118561957067e+00 + 4.429696656605228e+00 + 4.419299148008472e+00 + 4.408925979093191e+00 + 4.398577092681390e+00 + 4.388252432408600e+00 + 4.377951941955149e+00 + 4.367675563647617e+00 + 4.357423241911437e+00 + 4.347194921954801e+00 + 4.336990545878941e+00 + 4.326810057907454e+00 + 4.316653403787664e+00 + 4.306520526395858e+00 + 4.296411370095723e+00 + 4.286325880845187e+00 + 4.276264002847886e+00 + 4.266225680614548e+00 + 4.256210859410026e+00 + 4.246219484255977e+00 + 4.236251500111860e+00 + 4.226306852214246e+00 + 4.216385487075638e+00 + 4.206487350454588e+00 + 4.196612386873075e+00 + 4.186760542346591e+00 + 4.176931763412669e+00 + 4.167125996517556e+00 + 4.157343187931778e+00 + 4.147583283659849e+00 + 4.137846229598449e+00 + 4.128131973158434e+00 + 4.118440461620333e+00 + 4.108771640965568e+00 + 4.099125458381889e+00 + 4.089501861348100e+00 + 4.079900796648449e+00 + 4.070322211621146e+00 + 4.060766054068578e+00 + 4.051232271987449e+00 + 4.041720812903752e+00 + 4.032231624389123e+00 + 4.022764654839604e+00 + 4.013319852102482e+00 + 4.003897163974346e+00 + 3.994496539375360e+00 + 3.985117927005318e+00 + 3.975761275162846e+00 + 3.966426531955261e+00 + 3.957113646635731e+00 + 3.947822569087183e+00 + 3.938553247905866e+00 + 3.929305631685672e+00 + 3.920079669524097e+00 + 3.910875311427285e+00 + 3.901692507178291e+00 + 3.892531206204140e+00 + 3.883391358396833e+00 + 3.874272913657344e+00 + 3.865175821793835e+00 + 3.856100032879644e+00 + 3.847045497225832e+00 + 3.838012165320722e+00 + 3.828999987558789e+00 + 3.820008914413926e+00 + 3.811038896595444e+00 + 3.802089885254187e+00 + 3.793161831237620e+00 + 3.784254684890362e+00 + 3.775368398252875e+00 + 3.766502923100440e+00 + 3.757658209579520e+00 + 3.748834209295840e+00 + 3.740030874433959e+00 + 3.731248156753105e+00 + 3.722486008117639e+00 + 3.713744380387517e+00 + 3.705023225280349e+00 + 3.696322495070079e+00 + 3.687642142318910e+00 + 3.678982119432947e+00 + 3.670342378801804e+00 + 3.661722872867589e+00 + 3.653123554235752e+00 + 3.644544376023881e+00 + 3.635985291634798e+00 + 3.627446254192749e+00 + 3.618927216218316e+00 + 3.610428130335504e+00 + 3.601948951051534e+00 + 3.593489632231203e+00 + 3.585050126838500e+00 + 3.576630388153148e+00 + 3.568230370457688e+00 + 3.559850028500160e+00 + 3.551489315016799e+00 + 3.543148183918080e+00 + 3.534826590807976e+00 + 3.526524489935861e+00 + 3.518241835011243e+00 + 3.509978579991082e+00 + 3.501734680809670e+00 + 3.493510092697708e+00 + 3.485304769188242e+00 + 3.477118665289576e+00 + 3.468951736765370e+00 + 3.460803939385451e+00 + 3.452675227557384e+00 + 3.444565556219660e+00 + 3.436474882078371e+00 + 3.428403160505571e+00 + 3.420350346590145e+00 + 3.412316396304707e+00 + 3.404301265792477e+00 + 3.396304911176187e+00 + 3.388327288491305e+00 + 3.380368354160161e+00 + 3.372428064623584e+00 + 3.364506375833607e+00 + 3.356603244211646e+00 + 3.348718626640740e+00 + 3.340852480236101e+00 + 3.333004761693424e+00 + 3.325175427644580e+00 + 3.317364435527293e+00 + 3.309571742493616e+00 + 3.301797305408617e+00 + 3.294041081414062e+00 + 3.286303028194412e+00 + 3.278583103726798e+00 + 3.270881265443555e+00 + 3.263197471011956e+00 + 3.255531678390248e+00 + 3.247883845209004e+00 + 3.240253929642225e+00 + 3.232641890347850e+00 + 3.225047684908113e+00 + 3.217471271425511e+00 + 3.209912608923088e+00 + 3.202371655667555e+00 + 3.194848370181972e+00 + 3.187342711658790e+00 + 3.179854638881827e+00 + 3.172384110380890e+00 + 3.164931084707051e+00 + 3.157495521384956e+00 + 3.150077380058776e+00 + 3.142676619877814e+00 + 3.135293200073600e+00 + 3.127927079946843e+00 + 3.120578218905895e+00 + 3.113246577218404e+00 + 3.105932114937815e+00 + 3.098634790846833e+00 + 3.091354565058342e+00 + 3.084091398271724e+00 + 3.076845250485478e+00 + 3.069616081755534e+00 + 3.062403852244847e+00 + 3.055208522175611e+00 + 3.048030052549899e+00 + 3.040868404439169e+00 + 3.033723537524932e+00 + 3.026595412527113e+00 + 3.019483991059011e+00 + 3.012389234177664e+00 + 3.005311102428361e+00 + 2.998249556405217e+00 + 2.991204558170310e+00 + 2.984176069441633e+00 + 2.977164051262350e+00 + 2.970168464749357e+00 + 2.963189271462946e+00 + 2.956226433370632e+00 + 2.949279912203107e+00 + 2.942349669912605e+00 + 2.935435668735732e+00 + 2.928537870478263e+00 + 2.921656236941307e+00 + 2.914790730227295e+00 + 2.907941313056430e+00 + 2.901107948114753e+00 + 2.894290597705669e+00 + 2.887489224186201e+00 + 2.880703790004707e+00 + 2.873934257778331e+00 + 2.867180590721052e+00 + 2.860442752157053e+00 + 2.853720705060128e+00 + 2.847014412004529e+00 + 2.840323835735203e+00 + 2.833648939802342e+00 + 2.826989688360529e+00 + 2.820346045051714e+00 + 2.813717971838249e+00 + 2.807105432809830e+00 + 2.800508392739872e+00 + 2.793926814285955e+00 + 2.787360661385112e+00 + 2.780809898806732e+00 + 2.774274490318202e+00 + 2.767754399418414e+00 + 2.761249589980850e+00 + 2.754760027276096e+00 + 2.748285675987487e+00 + 2.741826499952791e+00 + 2.735382462817888e+00 + 2.728953529693038e+00 + 2.722539666591989e+00 + 2.716140837199994e+00 + 2.709757005928732e+00 + 2.703388138477217e+00 + 2.697034199719776e+00 + 2.690695154612969e+00 + 2.684370968516638e+00 + 2.678061606722120e+00 + 2.671767034388748e+00 + 2.665487216663756e+00 + 2.659222119420964e+00 + 2.652971708466898e+00 + 2.646735949170681e+00 + 2.640514807328682e+00 + 2.634308248813400e+00 + 2.628116239351709e+00 + 2.621938745026414e+00 + 2.615775731978081e+00 + 2.609627166192403e+00 + 2.603493014125890e+00 + 2.597373242133807e+00 + 2.591267815972944e+00 + 2.585176702619338e+00 + 2.579099869106871e+00 + 2.573037281022092e+00 + 2.566988905295047e+00 + 2.560954709471109e+00 + 2.554934660124372e+00 + 2.548928723658388e+00 + 2.542936866838776e+00 + 2.536959057454498e+00 + 2.530995262744329e+00 + 2.525045449466102e+00 + 2.519109584724339e+00 + 2.513187636248425e+00 + 2.507279571988880e+00 + 2.501385358975255e+00 + 2.495504964649074e+00 + 2.489638357011514e+00 + 2.483785503877440e+00 + 2.477946372993181e+00 + 2.472120932153270e+00 + 2.466309149445497e+00 + 2.460510993028623e+00 + 2.454726431004756e+00 + 2.448955431279121e+00 + 2.443197962222979e+00 + 2.437453992749473e+00 + 2.431723490873920e+00 + 2.426006424702946e+00 + 2.420302763016215e+00 + 2.414612474849150e+00 + 2.408935529060812e+00 + 2.403271894158963e+00 + 2.397621539164549e+00 + 2.391984432987164e+00 + 2.386360544006294e+00 + 2.380749841635097e+00 + 2.375152295549876e+00 + 2.369567874852914e+00 + 2.363996548806182e+00 + 2.358438286639424e+00 + 2.352893057314327e+00 + 2.347360830870365e+00 + 2.341841577523073e+00 + 2.336335266205249e+00 + 2.330841866367291e+00 + 2.325361348038680e+00 + 2.319893681430557e+00 + 2.314438836350213e+00 + 2.308996782525400e+00 + 2.303567490482044e+00 + 2.298150930506590e+00 + 2.292747072570897e+00 + 2.287355886755380e+00 + 2.281977343203661e+00 + 2.276611412298537e+00 + 2.271258065216148e+00 + 2.265917272602903e+00 + 2.260589004572198e+00 + 2.255273232290290e+00 + 2.249969926489583e+00 + 2.244679057245269e+00 + 2.239400595715412e+00 + 2.234134513404378e+00 + 2.228880781619142e+00 + 2.223639370658599e+00 + 2.218410251587366e+00 + 2.213193396784469e+00 + 2.207988776668006e+00 + 2.202796362022329e+00 + 2.197616125439223e+00 + 2.192448038696543e+00 + 2.187292072961057e+00 + 2.182148199232985e+00 + 2.177016389630072e+00 + 2.171896616273634e+00 + 2.166788850281173e+00 + 2.161693063906081e+00 + 2.156609229682959e+00 + 2.151537319229026e+00 + 2.146477304323076e+00 + 2.141429157241363e+00 + 2.136392850965788e+00 + 2.131368357474257e+00 + 2.126355648357996e+00 + 2.121354696293322e+00 + 2.116365474412895e+00 + 2.111387955644702e+00 + 2.106422111701483e+00 + 2.101467915161587e+00 + 2.096525339256323e+00 + 2.091594356269759e+00 + 2.086674939419586e+00 + 2.081767062556874e+00 + 2.076870697792070e+00 + 2.071985817585338e+00 + 2.067112395385072e+00 + 2.062250405333861e+00 + 2.057399820685575e+00 + 2.052560613690088e+00 + 2.047732757766644e+00 + 2.042916226752948e+00 + 2.038110994473384e+00 + 2.033317034456518e+00 + 2.028534320143143e+00 + 2.023762825026766e+00 + 2.019002522786289e+00 + 2.014253387371010e+00 + 2.009515392980107e+00 + 2.004788513366984e+00 + 2.000072722331970e+00 + 1.995367994084281e+00 + 1.990674302528751e+00 + 1.985991621875054e+00 + 1.981319927135009e+00 + 1.976659192144684e+00 + 1.972009390577169e+00 + 1.967370497271926e+00 + 1.962742487042732e+00 + 1.958125334423246e+00 + 1.953519013586483e+00 + 1.948923499307053e+00 + 1.944338766657414e+00 + 1.939764790288013e+00 + 1.935201544608222e+00 + 1.930649004305472e+00 + 1.926107145248571e+00 + 1.921575942429786e+00 + 1.917055370205972e+00 + 1.912545403920843e+00 + 1.908046018818900e+00 + 1.903557190023903e+00 + 1.899078893306255e+00 + 1.894611103753838e+00 + 1.890153795996532e+00 + 1.885706946418488e+00 + 1.881270530851602e+00 + 1.876844524133795e+00 + 1.872428902057808e+00 + 1.868023640555410e+00 + 1.863628715350075e+00 + 1.859244102235784e+00 + 1.854869776995271e+00 + 1.850505715382929e+00 + 1.846151893336109e+00 + 1.841808287113597e+00 + 1.837474873250078e+00 + 1.833151627500553e+00 + 1.828838525627810e+00 + 1.824535544058799e+00 + 1.820242659570220e+00 + 1.815959848693184e+00 + 1.811687087278560e+00 + 1.807424351697017e+00 + 1.803171618832717e+00 + 1.798928865872756e+00 + 1.794696068965575e+00 + 1.790473204047284e+00 + 1.786260248130819e+00 + 1.782057178544553e+00 + 1.777863972462110e+00 + 1.773680606381003e+00 + 1.769507057021776e+00 + 1.765343301422396e+00 + 1.761189316819223e+00 + 1.757045080431908e+00 + 1.752910569457795e+00 + 1.748785761158555e+00 + 1.744670632638435e+00 + 1.740565161064786e+00 + 1.736469324420783e+00 + 1.732383100261040e+00 + 1.728306465595185e+00 + 1.724239397824929e+00 + 1.720181874717039e+00 + 1.716133874165168e+00 + 1.712095373335323e+00 + 1.708066350172305e+00 + 1.704046783495335e+00 + 1.700036650108550e+00 + 1.696035927584721e+00 + 1.692044595228792e+00 + 1.688062630443701e+00 + 1.684090010658294e+00 + 1.680126714513943e+00 + 1.676172720475745e+00 + 1.672228006742128e+00 + 1.668292551293985e+00 + 1.664366332353613e+00 + 1.660449328407859e+00 + 1.656541518177628e+00 + 1.652642880144113e+00 + 1.648753392536404e+00 + 1.644873033459887e+00 + 1.641001782122826e+00 + 1.637139617814172e+00 + 1.633286518510287e+00 + 1.629442462986198e+00 + 1.625607430332010e+00 + 1.621781398816242e+00 + 1.617964347766720e+00 + 1.614156256896447e+00 + 1.610357104501046e+00 + 1.606566869528149e+00 + 1.602785531410984e+00 + 1.599013068753329e+00 + 1.595249460964023e+00 + 1.591494688099418e+00 + 1.587748729316499e+00 + 1.584011563661260e+00 + 1.580283170366302e+00 + 1.576563528988570e+00 + 1.572852618951484e+00 + 1.569150419635379e+00 + 1.565456911345500e+00 + 1.561772073862832e+00 + 1.558095886092752e+00 + 1.554428327545355e+00 + 1.550769378486889e+00 + 1.547119019605569e+00 + 1.543477229774924e+00 + 1.539843988467248e+00 + 1.536219276909035e+00 + 1.532603074921508e+00 + 1.528995362108325e+00 + 1.525396118748853e+00 + 1.521805324624735e+00 + 1.518222960029189e+00 + 1.514649006474386e+00 + 1.511083443428444e+00 + 1.507526250258141e+00 + 1.503977408416516e+00 + 1.500436898413773e+00 + 1.496904700394939e+00 + 1.493380795245864e+00 + 1.489865163193006e+00 + 1.486357784560608e+00 + 1.482858641108495e+00 + 1.479367713055452e+00 + 1.475884980161266e+00 + 1.472410424507970e+00 + 1.468944026943859e+00 + 1.465485767394345e+00 + 1.462035627142284e+00 + 1.458593587684006e+00 + 1.455159630175685e+00 + 1.451733734815932e+00 + 1.448315882934573e+00 + 1.444906056735074e+00 + 1.441504236540235e+00 + 1.438110403156542e+00 + 1.434724538391589e+00 + 1.431346623689521e+00 + 1.427976640530080e+00 + 1.424614570482120e+00 + 1.421260394583763e+00 + 1.417914094214416e+00 + 1.414575651360096e+00 + 1.411245047472556e+00 + 1.407922264020345e+00 + 1.404607282835409e+00 + 1.401300085863839e+00 + 1.398000654669480e+00 + 1.394708970355802e+00 + 1.391425015768138e+00 + 1.388148773421020e+00 + 1.384880223867722e+00 + 1.381619349200565e+00 + 1.378366132070768e+00 + 1.375120554406545e+00 + 1.371882598139520e+00 + 1.368652245409923e+00 + 1.365429478679455e+00 + 1.362214280063096e+00 + 1.359006631544336e+00 + 1.355806515436745e+00 + 1.352613914349998e+00 + 1.349428810943258e+00 + 1.346251187518860e+00 + 1.343081026346772e+00 + 1.339918309785753e+00 + 1.336763020411036e+00 + 1.333615141050152e+00 + 1.330474654669161e+00 + 1.327341544046787e+00 + 1.324215791384803e+00 + 1.321097378844990e+00 + 1.317986290481943e+00 + 1.314882509034005e+00 + 1.311786015892630e+00 + 1.308696795174431e+00 + 1.305614830505543e+00 + 1.302540104058677e+00 + 1.299472598550161e+00 + 1.296412297281467e+00 + 1.293359183920592e+00 + 1.290313241355424e+00 + 1.287274452437336e+00 + 1.284242800425524e+00 + 1.281218268758570e+00 + 1.278200840971845e+00 + 1.275190500607243e+00 + 1.272187230813499e+00 + 1.269191014801793e+00 + 1.266201836184906e+00 + 1.263219678244913e+00 + 1.260244524601725e+00 + 1.257276359774731e+00 + 1.254315166659556e+00 + 1.251360928048363e+00 + 1.248413628680403e+00 + 1.245473252809453e+00 + 1.242539783866816e+00 + 1.239613204552696e+00 + 1.236693499248504e+00 + 1.233780652886690e+00 + 1.230874648458874e+00 + 1.227975469917747e+00 + 1.225083101914005e+00 + 1.222197528080320e+00 + 1.219318732110022e+00 + 1.216446698153004e+00 + 1.213581411119631e+00 + 1.210722855169846e+00 + 1.207871013783067e+00 + 1.205025871252235e+00 + 1.202187412198626e+00 + 1.199355621285526e+00 + 1.196530482820713e+00 + 1.193711981112556e+00 + 1.190900100540550e+00 + 1.188094825240966e+00 + 1.185296139829988e+00 + 1.182504029475636e+00 + 1.179718478336080e+00 + 1.176939470878376e+00 + 1.174166992368249e+00 + 1.171401026812090e+00 + 1.168641558834780e+00 + 1.165888574598542e+00 + 1.163142057955574e+00 + 1.160401992993886e+00 + 1.157668365957760e+00 + 1.154941161055026e+00 + 1.152220362585152e+00 + 1.149505957086653e+00 + 1.146797929075238e+00 + 1.144096262593592e+00 + 1.141400943461258e+00 + 1.138711957183691e+00 + 1.136029288721929e+00 + 1.133352922646698e+00 + 1.130682844729473e+00 + 1.128019040871752e+00 + 1.125361495026299e+00 + 1.122710192813904e+00 + 1.120065120718956e+00 + 1.117426263156838e+00 + 1.114793605478939e+00 + 1.112167133798269e+00 + 1.109546832911627e+00 + 1.106932688501257e+00 + 1.104324686965964e+00 + 1.101722813149718e+00 + 1.099127052563592e+00 + 1.096537391606932e+00 + 1.093953815681381e+00 + 1.091376310184498e+00 + 1.088804860939953e+00 + 1.086239454210304e+00 + 1.083680075729654e+00 + 1.081126710640132e+00 + 1.078579345517792e+00 + 1.076037966489376e+00 + 1.073502558540405e+00 + 1.070973108232868e+00 + 1.068449602380304e+00 + 1.065932027008114e+00 + 1.063420367175204e+00 + 1.060914608734753e+00 + 1.058414739347230e+00 + 1.055920744292059e+00 + 1.053432609053344e+00 + 1.050950321750202e+00 + 1.048473868029229e+00 + 1.046003233045439e+00 + 1.043538404185668e+00 + 1.041079368203120e+00 + 1.038626111099421e+00 + 1.036178618557632e+00 + 1.033736877638818e+00 + 1.031300875738098e+00 + 1.028870598541307e+00 + 1.026446032279889e+00 + 1.024027163804816e+00 + 1.021613979927458e+00 + 1.019206467749757e+00 + 1.016804614201984e+00 + 1.014408404816817e+00 + 1.012017826403038e+00 + 1.009632866898133e+00 + 1.007253512894913e+00 + 1.004879750675442e+00 + 1.002511566831996e+00 + 1.000148949144661e+00 + 9.977918847145494e-01 + 9.954403597206510e-01 + 9.930943614528360e-01 + 9.907538771638876e-01 + 9.884188936740620e-01 + 9.860893982148410e-01 + 9.837653780132122e-01 + 9.814468200970017e-01 + 9.791337116433633e-01 + 9.768260399168340e-01 + 9.745237922184445e-01 + 9.722269558574113e-01 + 9.699355181124353e-01 + 9.676494662336389e-01 + 9.653687876978898e-01 + 9.630934699744002e-01 + 9.608235003289306e-01 + 9.585588662885656e-01 + 9.562995554410040e-01 + 9.540455551859868e-01 + 9.517968530931009e-01 + 9.495534368089285e-01 + 9.473152938858177e-01 + 9.450824119343849e-01 + 9.428547786515334e-01 + 9.406323818265262e-01 + 9.384152091378831e-01 + 9.362032482272097e-01 + 9.339964869112888e-01 + 9.317949130473703e-01 + 9.295985145023118e-01 + 9.274072791539573e-01 + 9.252211948367504e-01 + 9.230402494034374e-01 + 9.208644309329761e-01 + 9.186937274260252e-01 + 9.165281267878318e-01 + 9.143676170947915e-01 + 9.122121864230248e-01 + 9.100618228160294e-01 + 9.079165144228375e-01 + 9.057762494101416e-01 + 9.036410159434681e-01 + 9.015108022852656e-01 + 8.993855966397851e-01 + 8.972653871281971e-01 + 8.951501621417270e-01 + 8.930399100640233e-01 + 8.909346191274636e-01 + 8.888342777366450e-01 + 8.867388743114113e-01 + 8.846483971822027e-01 + 8.825628348501290e-01 + 8.804821758633001e-01 + 8.784064086961259e-01 + 8.763355218399448e-01 + 8.742695038377348e-01 + 8.722083433110044e-01 + 8.701520288632569e-01 + 8.681005490981059e-01 + 8.660538926659707e-01 + 8.640120483003465e-01 + 8.619750047630993e-01 + 8.599427507590320e-01 + 8.579152750196485e-01 + 8.558925663402844e-01 + 8.538746136199826e-01 + 8.518614056598554e-01 + 8.498529312415619e-01 + 8.478491793952468e-01 + 8.458501390477595e-01 + 8.438557990450950e-01 + 8.418661484572341e-01 + 8.398811762963594e-01 + 8.379008715007146e-01 + 8.359252231704962e-01 + 8.339542204095658e-01 + 8.319878522912720e-01 + 8.300261079597043e-01 + 8.280689765769632e-01 + 8.261164473121154e-01 + 8.241685093974929e-01 + 8.222251520716921e-01 + 8.202863645582569e-01 + 8.183521361157176e-01 + 8.164224560764958e-01 + 8.144973138478017e-01 + 8.125766987264839e-01 + 8.106606000443977e-01 + 8.087490072689457e-01 + 8.068419098143643e-01 + 8.049392971238847e-01 + 8.030411587461223e-01 + 8.011474841608780e-01 + 7.992582628576694e-01 + 7.973734844327619e-01 + 7.954931384582111e-01 + 7.936172145055983e-01 + 7.917457022017643e-01 + 7.898785912282000e-01 + 7.880158712799969e-01 + 7.861575320154112e-01 + 7.843035631939634e-01 + 7.824539546080472e-01 + 7.806086959262468e-01 + 7.787677769423338e-01 + 7.769311875560446e-01 + 7.750989176225404e-01 + 7.732709569908990e-01 + 7.714472955211897e-01 + 7.696279231052234e-01 + 7.678128297211314e-01 + 7.660020053954494e-01 + 7.641954400346342e-01 + 7.623931236302374e-01 + 7.605950462809293e-01 + 7.588011979868697e-01 + 7.570115688113509e-01 + 7.552261489288551e-01 + 7.534449284973839e-01 + 7.516678976340316e-01 + 7.498950464317325e-01 + 7.481263651057625e-01 + 7.463618439154999e-01 + 7.446014731170009e-01 + 7.428452429690515e-01 + 7.410931437272748e-01 + 7.393451656574506e-01 + 7.376012991597445e-01 + 7.358615346418724e-01 + 7.341258624174279e-01 + 7.323942728636854e-01 + 7.306667564033948e-01 + 7.289433034811010e-01 + 7.272239046205010e-01 + 7.255085503342084e-01 + 7.237972310231134e-01 + 7.220899372662432e-01 + 7.203866596915919e-01 + 7.186873887451811e-01 + 7.169921150530395e-01 + 7.153008293485266e-01 + 7.136135222426403e-01 + 7.119301843519804e-01 + 7.102508063464710e-01 + 7.085753789925818e-01 + 7.069038930034782e-01 + 7.052363390742027e-01 + 7.035727080638011e-01 + 7.019129907750439e-01 + 7.002571779481277e-01 + 6.986052604437083e-01 + 6.969572291357313e-01 + 6.953130748988353e-01 + 6.936727887020229e-01 + 6.920363614522840e-01 + 6.904037839913317e-01 + 6.887750473773369e-01 + 6.871501426160253e-01 + 6.855290605871678e-01 + 6.839117924040222e-01 + 6.822983292013320e-01 + 6.806886620123715e-01 + 6.790827818618205e-01 + 6.774806798407976e-01 + 6.758823471448717e-01 + 6.742877749381793e-01 + 6.726969543916550e-01 + 6.711098767181217e-01 + 6.695265330883416e-01 + 6.679469147191758e-01 + 6.663710129607012e-01 + 6.647988190816884e-01 + 6.632303243195694e-01 + 6.616655199754741e-01 + 6.601043974442724e-01 + 6.585469481315596e-01 + 6.569931633409668e-01 + 6.554430344698831e-01 + 6.538965529680326e-01 + 6.523537102216029e-01 + 6.508144977390269e-01 + 6.492789070902356e-01 + 6.477469297088367e-01 + 6.462185570471877e-01 + 6.446937806333431e-01 + 6.431725921186934e-01 + 6.416549831028872e-01 + 6.401409451291091e-01 + 6.386304698205402e-01 + 6.371235488250266e-01 + 6.356201737964903e-01 + 6.341203364004929e-01 + 6.326240283504814e-01 + 6.311312414023209e-01 + 6.296419672600960e-01 + 6.281561976359686e-01 + 6.266739242956670e-01 + 6.251951391194286e-01 + 6.237198339322255e-01 + 6.222480004492102e-01 + 6.207796305731890e-01 + 6.193147162378443e-01 + 6.178532493027741e-01 + 6.163952216645050e-01 + 6.149406252489860e-01 + 6.134894519984210e-01 + 6.120416938491114e-01 + 6.105973427932988e-01 + 6.091563909278429e-01 + 6.077188302116784e-01 + 6.062846526061169e-01 + 6.048538502614210e-01 + 6.034264152733694e-01 + 6.020023397068369e-01 + 6.005816156757759e-01 + 5.991642353027361e-01 + 5.977501907311656e-01 + 5.963394741611191e-01 + 5.949320777981851e-01 + 5.935279938331314e-01 + 5.921272144271874e-01 + 5.907297318514260e-01 + 5.893355384452119e-01 + 5.879446264415406e-01 + 5.865569881004723e-01 + 5.851726157460215e-01 + 5.837915017610071e-01 + 5.824136384878618e-01 + 5.810390182425506e-01 + 5.796676334763571e-01 + 5.782994765837256e-01 + 5.769345398883866e-01 + 5.755728159164172e-01 + 5.742142971757567e-01 + 5.728589760824728e-01 + 5.715068451452269e-01 + 5.701578968814059e-01 + 5.688121237820786e-01 + 5.674695184134964e-01 + 5.661300733449661e-01 + 5.647937811172017e-01 + 5.634606343850478e-01 + 5.621306258016221e-01 + 5.608037479323033e-01 + 5.594799934047830e-01 + 5.581593548937616e-01 + 5.568418251014721e-01 + 5.555273967809645e-01 + 5.542160626584934e-01 + 5.529078153599613e-01 + 5.516026476869607e-01 + 5.503005524879265e-01 + 5.490015224489507e-01 + 5.477055503706971e-01 + 5.464126291394721e-01 + 5.451227516109934e-01 + 5.438359105997491e-01 + 5.425520989229732e-01 + 5.412713094911021e-01 + 5.399935352390902e-01 + 5.387187691034094e-01 + 5.374470040087604e-01 + 5.361782329113639e-01 + 5.349124487848638e-01 + 5.336496445514358e-01 + 5.323898132502169e-01 + 5.311329480044003e-01 + 5.298790417206248e-01 + 5.286280874266170e-01 + 5.273800783238198e-01 + 5.261350074387794e-01 + 5.248928678300107e-01 + 5.236536526638225e-01 + 5.224173550711992e-01 + 5.211839681868924e-01 + 5.199534851768893e-01 + 5.187258992380968e-01 + 5.175012035574781e-01 + 5.162793913049719e-01 + 5.150604557657682e-01 + 5.138443902158373e-01 + 5.126311878387027e-01 + 5.114208419243966e-01 + 5.102133457996210e-01 + 5.090086927559088e-01 + 5.078068761246483e-01 + 5.066078892445277e-01 + 5.054117254264059e-01 + 5.042183780707232e-01 + 5.030278406156905e-01 + 5.018401064512819e-01 + 5.006551689399448e-01 + 4.994730214827681e-01 + 4.982936576173500e-01 + 4.971170708196209e-01 + 4.959432545161117e-01 + 4.947722021784954e-01 + 4.936039073158257e-01 + 4.924383634713059e-01 + 4.912755642215030e-01 + 4.901155031029966e-01 + 4.889581736357913e-01 + 4.878035694426762e-01 + 4.866516841617155e-01 + 4.855025114095978e-01 + 4.843560447562852e-01 + 4.832122778219742e-01 + 4.820712043014287e-01 + 4.809328179063641e-01 + 4.797971123302187e-01 + 4.786640812406847e-01 + 4.775337183184862e-01 + 4.764060173050261e-01 + 4.752809720122764e-01 + 4.741585762111217e-01 + 4.730388236459319e-01 + 4.719217080626099e-01 + 4.708072233097221e-01 + 4.696953632391141e-01 + 4.685861216425942e-01 + 4.674794923970907e-01 + 4.663754693817960e-01 + 4.652740464091041e-01 + 4.641752174102053e-01 + 4.630789763262008e-01 + 4.619853169869301e-01 + 4.608942333544824e-01 + 4.598057194461572e-01 + 4.587197692038988e-01 + 4.576363766028796e-01 + 4.565555356433393e-01 + 4.554772403132010e-01 + 4.544014845983438e-01 + 4.533282625263808e-01 + 4.522575682421708e-01 + 4.511893957834002e-01 + 4.501237391381080e-01 + 4.490605924783677e-01 + 4.479999499003729e-01 + 4.469418054464263e-01 + 4.458861533467765e-01 + 4.448329877503518e-01 + 4.437823027182840e-01 + 4.427340924804984e-01 + 4.416883512661691e-01 + 4.406450732493647e-01 + 4.396042525949710e-01 + 4.385658835318161e-01 + 4.375299603591805e-01 + 4.364964773180230e-01 + 4.354654286529535e-01 + 4.344368086449737e-01 + 4.334106115882546e-01 + 4.323868317973252e-01 + 4.313654636098987e-01 + 4.303465013528135e-01 + 4.293299393608014e-01 + 4.283157719943348e-01 + 4.273039936389254e-01 + 4.262945986862648e-01 + 4.252875815207442e-01 + 4.242829365388910e-01 + 4.232806581737543e-01 + 4.222807409163533e-01 + 4.212831792180283e-01 + 4.202879675160039e-01 + 4.192951002821390e-01 + 4.183045720190468e-01 + 4.173163772308877e-01 + 4.163305103895081e-01 + 4.153469660738844e-01 + 4.143657388899517e-01 + 4.133868232899575e-01 + 4.124102138463511e-01 + 4.114359052122226e-01 + 4.104638919136763e-01 + 4.094941685453110e-01 + 4.085267297797091e-01 + 4.075615702608746e-01 + 4.065986846247451e-01 + 4.056380675149961e-01 + 4.046797136100241e-01 + 4.037236175791848e-01 + 4.027697740867438e-01 + 4.018181778668817e-01 + 4.008688236537185e-01 + 3.999217061664900e-01 + 3.989768201804763e-01 + 3.980341604347806e-01 + 3.970937216243767e-01 + 3.961554986257766e-01 + 3.952194862561716e-01 + 3.942856791749246e-01 + 3.933540722797152e-01 + 3.924246604937682e-01 + 3.914974386057962e-01 + 3.905724013991230e-01 + 3.896495437210211e-01 + 3.887288605266558e-01 + 3.878103467384126e-01 + 3.868939972364765e-01 + 3.859798068708922e-01 + 3.850677705778728e-01 + 3.841578833358520e-01 + 3.832501400994028e-01 + 3.823445358203205e-01 + 3.814410654593080e-01 + 3.805397240004402e-01 + 3.796405064500310e-01 + 3.787434078281850e-01 + 3.778484231550217e-01 + 3.769555474293507e-01 + 3.760647756653435e-01 + 3.751761029803938e-01 + 3.742895244689736e-01 + 3.734050351897463e-01 + 3.725226302131253e-01 + 3.716423046174657e-01 + 3.707640535037849e-01 + 3.698878720450124e-01 + 3.690137553825144e-01 + 3.681416986254492e-01 + 3.672716969834960e-01 + 3.664037456169829e-01 + 3.655378396196581e-01 + 3.646739742353085e-01 + 3.638121447254376e-01 + 3.629523462980791e-01 + 3.620945741078652e-01 + 3.612388233782960e-01 + 3.603850894480597e-01 + 3.595333675652969e-01 + 3.586836529581271e-01 + 3.578359408972814e-01 + 3.569902267099870e-01 + 3.561465057284826e-01 + 3.553047732480240e-01 + 3.544650245489661e-01 + 3.536272549462773e-01 + 3.527914598373741e-01 + 3.519576346281267e-01 + 3.511257746893044e-01 + 3.502958753213151e-01 + 3.494679319027064e-01 + 3.486419398734283e-01 + 3.478178946841421e-01 + 3.469957917542031e-01 + 3.461756264906874e-01 + 3.453573943334770e-01 + 3.445410907466465e-01 + 3.437267112053919e-01 + 3.429142511753236e-01 + 3.421037061357636e-01 + 3.412950715914754e-01 + 3.404883430871680e-01 + 3.396835161220511e-01 + 3.388805861778083e-01 + 3.380795488742585e-01 + 3.372803997559251e-01 + 3.364831342820857e-01 + 3.356877480644493e-01 + 3.348942367473924e-01 + 3.341025959445759e-01 + 3.333128211902062e-01 + 3.325249080644813e-01 + 3.317388522349806e-01 + 3.309546493345364e-01 + 3.301722950123494e-01 + 3.293917849546400e-01 + 3.286131147929292e-01 + 3.278362801760134e-01 + 3.270612768173198e-01 + 3.262881004205997e-01 + 3.255167466776044e-01 + 3.247472112772871e-01 + 3.239794899591130e-01 + 3.232135784952971e-01 + 3.224494726613195e-01 + 3.216871681318617e-01 + 3.209266606147330e-01 + 3.201679460077643e-01 + 3.194110200806869e-01 + 3.186558785671545e-01 + 3.179025173467112e-01 + 3.171509322207308e-01 + 3.164011189537259e-01 + 3.156530734030461e-01 + 3.149067914068442e-01 + 3.141622688005587e-01 + 3.134195014964591e-01 + 3.126784853846941e-01 + 3.119392163234083e-01 + 3.112016901727622e-01 + 3.104659028247113e-01 + 3.097318502149898e-01 + 3.089995283319454e-01 + 3.082689330721005e-01 + 3.075400602663161e-01 + 3.068129059444455e-01 + 3.060874661234649e-01 + 3.053637367362504e-01 + 3.046417137079979e-01 + 3.039213930418579e-01 + 3.032027708160949e-01 + 3.024858429572295e-01 + 3.017706054435225e-01 + 3.010570543910775e-01 + 3.003451858060657e-01 + 2.996349956970866e-01 + 2.989264801519126e-01 + 2.982196352437723e-01 + 2.975144570351090e-01 + 2.968109415899733e-01 + 2.961090850010212e-01 + 2.954088833712375e-01 + 2.947103327960572e-01 + 2.940134293733013e-01 + 2.933181692489545e-01 + 2.926245486550200e-01 + 2.919325636534309e-01 + 2.912422103009782e-01 + 2.905534849067459e-01 + 2.898663836341845e-01 + 2.891809025716850e-01 + 2.884970379499296e-01 + 2.878147859946116e-01 + 2.871341429080666e-01 + 2.864551048929091e-01 + 2.857776681836698e-01 + 2.851018290276999e-01 + 2.844275836247271e-01 + 2.837549281975342e-01 + 2.830838590248334e-01 + 2.824143724756855e-01 + 2.817464648036653e-01 + 2.810801321714598e-01 + 2.804153709678348e-01 + 2.797521775256636e-01 + 2.790905480675208e-01 + 2.784304789557904e-01 + 2.777719665515425e-01 + 2.771150071618110e-01 + 2.764595971293084e-01 + 2.758057328280932e-01 + 2.751534106502780e-01 + 2.745026269461392e-01 + 2.738533780697315e-01 + 2.732056604090851e-01 + 2.725594703611444e-01 + 2.719148043516682e-01 + 2.712716588414341e-01 + 2.706300302048149e-01 + 2.699899148252890e-01 + 2.693513091897057e-01 + 2.687142097803046e-01 + 2.680786130525787e-01 + 2.674445154290628e-01 + 2.668119133864937e-01 + 2.661808034370396e-01 + 2.655511820876730e-01 + 2.649230457933240e-01 + 2.642963910212357e-01 + 2.636712143601993e-01 + 2.630475123173707e-01 + 2.624252813696634e-01 + 2.618045181320832e-01 + 2.611852191534089e-01 + 2.605673809346502e-01 + 2.599510000768786e-01 + 2.593360731482656e-01 + 2.587225966857610e-01 + 2.581105673020023e-01 + 2.574999816218594e-01 + 2.568908362541323e-01 + 2.562831277681717e-01 + 2.556768527608984e-01 + 2.550720078808991e-01 + 2.544685898158210e-01 + 2.538665952029344e-01 + 2.532660206235198e-01 + 2.526668627769018e-01 + 2.520691183671673e-01 + 2.514727840477828e-01 + 2.508778564832650e-01 + 2.502843323450471e-01 + 2.496922083184503e-01 + 2.491014811741685e-01 + 2.485121476502302e-01 + 2.479242043768022e-01 + 2.473376480750936e-01 + 2.467524755330193e-01 + 2.461686835577825e-01 + 2.455862688342147e-01 + 2.450052280577099e-01 + 2.444255580815592e-01 + 2.438472556710649e-01 + 2.432703175621061e-01 + 2.426947405763887e-01 + 2.421205215374063e-01 + 2.415476572469543e-01 + 2.409761444715131e-01 + 2.404059800179439e-01 + 2.398371607406130e-01 + 2.392696835287547e-01 + 2.387035451998669e-01 + 2.381387425460481e-01 + 2.375752724876774e-01 + 2.370131319015487e-01 + 2.364523176042576e-01 + 2.358928264341899e-01 + 2.353346553264918e-01 + 2.347778012643444e-01 + 2.342222610470114e-01 + 2.336680315481888e-01 + 2.331151097630285e-01 + 2.325634926002070e-01 + 2.320131769932555e-01 + 2.314641599195968e-01 + 2.309164382391606e-01 + 2.303700088852327e-01 + 2.298248689205450e-01 + 2.292810152383314e-01 + 2.287384447851956e-01 + 2.281971546639490e-01 + 2.276571417710518e-01 + 2.271184030444375e-01 + 2.265809356255705e-01 + 2.260447364485637e-01 + 2.255098024678978e-01 + 2.249761308577043e-01 + 2.244437185775247e-01 + 2.239125625576918e-01 + 2.233826599324974e-01 + 2.228540078061592e-01 + 2.223266032159731e-01 + 2.218004431318401e-01 + 2.212755246546400e-01 + 2.207518449320089e-01 + 2.202294009962271e-01 + 2.197081899542086e-01 + 2.191882089472320e-01 + 2.186694550184439e-01 + 2.181519252528444e-01 + 2.176356167922184e-01 + 2.171205268020538e-01 + 2.166066524055817e-01 + 2.160939907132310e-01 + 2.155825389406823e-01 + 2.150722942170351e-01 + 2.145632535999474e-01 + 2.140554143128364e-01 + 2.135487735713488e-01 + 2.130433285376680e-01 + 2.125390763961598e-01 + 2.120360143225986e-01 + 2.115341394866721e-01 + 2.110334491301104e-01 + 2.105339404911263e-01 + 2.100356107692428e-01 + 2.095384571593845e-01 + 2.090424768875718e-01 + 2.085476672286868e-01 + 2.080540254649787e-01 + 2.075615488420417e-01 + 2.070702345483775e-01 + 2.065800798220710e-01 + 2.060910819584345e-01 + 2.056032383022174e-01 + 2.051165461242101e-01 + 2.046310026800104e-01 + 2.041466052775261e-01 + 2.036633511978056e-01 + 2.031812377402102e-01 + 2.027002622847228e-01 + 2.022204221329609e-01 + 2.017417145657832e-01 + 2.012641369577989e-01 + 2.007876866366623e-01 + 2.003123609141739e-01 + 1.998381571847571e-01 + 1.993650728223044e-01 + 1.988931051658790e-01 + 1.984222515391579e-01 + 1.979525093566432e-01 + 1.974838760798574e-01 + 1.970163490394448e-01 + 1.965499255924087e-01 + 1.960846031634822e-01 + 1.956203792216227e-01 + 1.951572511456189e-01 + 1.946952162469976e-01 + 1.942342720345011e-01 + 1.937744160087473e-01 + 1.933156455855021e-01 + 1.928579581617409e-01 + 1.924013511601302e-01 + 1.919458220512063e-01 + 1.914913683490730e-01 + 1.910379875218400e-01 + 1.905856769690048e-01 + 1.901344342343178e-01 + 1.896842568245793e-01 + 1.892351421122624e-01 + 1.887870876905098e-01 + 1.883400911382459e-01 + 1.878941498265747e-01 + 1.874492612709913e-01 + 1.870054230608876e-01 + 1.865626327533365e-01 + 1.861208878413260e-01 + 1.856801858136446e-01 + 1.852405242290795e-01 + 1.848019006561455e-01 + 1.843643126785636e-01 + 1.839277579090688e-01 + 1.834922338318696e-01 + 1.830577379260484e-01 + 1.826242679175190e-01 + 1.821918214082343e-01 + 1.817603959062191e-01 + 1.813299890419420e-01 + 1.809005984096844e-01 + 1.804722215715290e-01 + 1.800448561676805e-01 + 1.796184998471616e-01 + 1.791931502428031e-01 + 1.787688049585256e-01 + 1.783454616010165e-01 + 1.779231178061076e-01 + 1.775017712916434e-01 + 1.770814197185338e-01 + 1.766620606643876e-01 + 1.762436917707559e-01 + 1.758263107475443e-01 + 1.754099153420786e-01 + 1.749945031691721e-01 + 1.745800718793870e-01 + 1.741666192327871e-01 + 1.737541428912765e-01 + 1.733426405128906e-01 + 1.729321098263452e-01 + 1.725225486037993e-01 + 1.721139545737653e-01 + 1.717063253659770e-01 + 1.712996586978482e-01 + 1.708939523524782e-01 + 1.704892041326627e-01 + 1.700854117308264e-01 + 1.696825728315613e-01 + 1.692806852413719e-01 + 1.688797467224855e-01 + 1.684797550119726e-01 + 1.680807078836749e-01 + 1.676826031516292e-01 + 1.672854386236076e-01 + 1.668892120257625e-01 + 1.664939211364053e-01 + 1.660995637803862e-01 + 1.657061377653481e-01 + 1.653136408872399e-01 + 1.649220709518862e-01 + 1.645314258210089e-01 + 1.641417032838678e-01 + 1.637529010922642e-01 + 1.633650171697226e-01 + 1.629780493848234e-01 + 1.625919955117979e-01 + 1.622068533722165e-01 + 1.618226208359533e-01 + 1.614392958070308e-01 + 1.610568761629498e-01 + 1.606753597398519e-01 + 1.602947443525945e-01 + 1.599150279328092e-01 + 1.595362083976419e-01 + 1.591582835876941e-01 + 1.587812513806259e-01 + 1.584051096895935e-01 + 1.580298564486488e-01 + 1.576554895336735e-01 + 1.572820068494865e-01 + 1.569094063844064e-01 + 1.565376859935812e-01 + 1.561668435389086e-01 + 1.557968770322644e-01 + 1.554277844430587e-01 + 1.550595637013555e-01 + 1.546922127252644e-01 + 1.543257294352004e-01 + 1.539601117962810e-01 + 1.535953578647676e-01 + 1.532314655336160e-01 + 1.528684326732572e-01 + 1.525062574192351e-01 + 1.521449377506904e-01 + 1.517844715391133e-01 + 1.514248568043021e-01 + 1.510660915767141e-01 + 1.507081738546517e-01 + 1.503511015850067e-01 + 1.499948728018673e-01 + 1.496394855976185e-01 + 1.492849379312514e-01 + 1.489312277844460e-01 + 1.485783532079666e-01 + 1.482263122946834e-01 + 1.478751030581660e-01 + 1.475247234388987e-01 + 1.471751715323068e-01 + 1.468264454469171e-01 + 1.464785432366154e-01 + 1.461314629165984e-01 + 1.457852025452889e-01 + 1.454397602433564e-01 + 1.450951340257908e-01 + 1.447513219420110e-01 + 1.444083221508569e-01 + 1.440661327109938e-01 + 1.437247516822454e-01 + 1.433841772072484e-01 + 1.430444073901374e-01 + 1.427054403077353e-01 + 1.423672740371242e-01 + 1.420299067307786e-01 + 1.416933365389871e-01 + 1.413575615237460e-01 + 1.410225798197031e-01 + 1.406883895901710e-01 + 1.403549889435149e-01 + 1.400223760032770e-01 + 1.396905489310608e-01 + 1.393595059398338e-01 + 1.390292451224472e-01 + 1.386997645496112e-01 + 1.383710625136722e-01 + 1.380431371824567e-01 + 1.377159866326167e-01 + 1.373896091055998e-01 + 1.370640027752214e-01 + 1.367391657592925e-01 + 1.364150963290927e-01 + 1.360917926783734e-01 + 1.357692529162330e-01 + 1.354474752994454e-01 + 1.351264580487222e-01 + 1.348061993122180e-01 + 1.344866973181728e-01 + 1.341679503229942e-01 + 1.338499565682958e-01 + 1.335327142013654e-01 + 1.332162214320106e-01 + 1.329004765902875e-01 + 1.325854779258548e-01 + 1.322712236439755e-01 + 1.319577119415115e-01 + 1.316449410589970e-01 + 1.313329092858229e-01 + 1.310216149439378e-01 + 1.307110562100912e-01 + 1.304012313067827e-01 + 1.300921386594473e-01 + 1.297837764741680e-01 + 1.294761429396481e-01 + 1.291692364743583e-01 + 1.288630553353233e-01 + 1.285575977268189e-01 + 1.282528620001082e-01 + 1.279488464604472e-01 + 1.276455493846629e-01 + 1.273429690961771e-01 + 1.270411039265308e-01 + 1.267399521912149e-01 + 1.264395121606617e-01 + 1.261397821624623e-01 + 1.258407605612416e-01 + 1.255424456647032e-01 + 1.252448358003494e-01 + 1.249479293256652e-01 + 1.246517245985584e-01 + 1.243562199440227e-01 + 1.240614136699035e-01 + 1.237673041530004e-01 + 1.234738897833225e-01 + 1.231811689369122e-01 + 1.228891399541342e-01 + 1.225978011897444e-01 + 1.223071510285007e-01 + 1.220171878485729e-01 + 1.217279100221359e-01 + 1.214393159216827e-01 + 1.211514039479249e-01 + 1.208641725134118e-01 + 1.205776200272462e-01 + 1.202917448643591e-01 + 1.200065453999493e-01 + 1.197220200388544e-01 + 1.194381672203820e-01 + 1.191549853738593e-01 + 1.188724728867774e-01 + 1.185906281982059e-01 + 1.183094497403516e-01 + 1.180289358802264e-01 + 1.177490851172322e-01 + 1.174698959467804e-01 + 1.171913666738082e-01 + 1.169134957966049e-01 + 1.166362818664215e-01 + 1.163597231976005e-01 + 1.160838182295854e-01 + 1.158085654926154e-01 + 1.155339634301463e-01 + 1.152600105152270e-01 + 1.149867052503320e-01 + 1.147140461081585e-01 + 1.144420315115333e-01 + 1.141706598827868e-01 + 1.138999297876022e-01 + 1.136298397724347e-01 + 1.133603883121320e-01 + 1.130915738073908e-01 + 1.128233947404400e-01 + 1.125558496925181e-01 + 1.122889371862514e-01 + 1.120226557224089e-01 + 1.117570037925019e-01 + 1.114919798574519e-01 + 1.112275824488763e-01 + 1.109638101830490e-01 + 1.107006615250319e-01 + 1.104381349837027e-01 + 1.101762291935612e-01 + 1.099149425817940e-01 + 1.096542736337556e-01 + 1.093942210611990e-01 + 1.091347833750166e-01 + 1.088759590309823e-01 + 1.086177465849946e-01 + 1.083601446468375e-01 + 1.081031518187680e-01 + 1.078467666394599e-01 + 1.075909876365943e-01 + 1.073358133695979e-01 + 1.070812424691808e-01 + 1.068272734935852e-01 + 1.065739049762412e-01 + 1.063211355273724e-01 + 1.060689637753818e-01 + 1.058173883167701e-01 + 1.055664076522099e-01 + 1.053160204177178e-01 + 1.050662253083730e-01 + 1.048170208178578e-01 + 1.045684055544151e-01 + 1.043203782231123e-01 + 1.040729373745031e-01 + 1.038260815947437e-01 + 1.035798095388146e-01 + 1.033341198496129e-01 + 1.030890111353506e-01 + 1.028444819874746e-01 + 1.026005310752415e-01 + 1.023571570589419e-01 + 1.021143585605686e-01 + 1.018721342063349e-01 + 1.016304826397723e-01 + 1.013894025261397e-01 + 1.011488925387934e-01 + 1.009089513225976e-01 + 1.006695774897203e-01 + 1.004307697412456e-01 + 1.001925267601519e-01 + 9.995484714928184e-02 + 9.971772961029543e-02 + 9.948117285600222e-02 + 9.924517553207431e-02 + 9.900973631553432e-02 + 9.877485389836264e-02 + 9.854052696321766e-02 + 9.830675420513860e-02 + 9.807353432053509e-02 + 9.784086599274402e-02 + 9.760874792461041e-02 + 9.737717882679013e-02 + 9.714615739564664e-02 + 9.691568233864475e-02 + 9.668575237168565e-02 + 9.645636620785530e-02 + 9.622752256709627e-02 + 9.599922017186617e-02 + 9.577145773476621e-02 + 9.554423398421420e-02 + 9.531754766036228e-02 + 9.509139748951084e-02 + 9.486578220406576e-02 + 9.464070054491446e-02 + 9.441615125061270e-02 + 9.419213306609350e-02 + 9.396864474309072e-02 + 9.374568502973517e-02 + 9.352325267700241e-02 + 9.330134644110695e-02 + 9.307996508088016e-02 + 9.285910736057421e-02 + 9.263877204899980e-02 + 9.241895790580944e-02 + 9.219966369924239e-02 + 9.198088821288498e-02 + 9.176263021506216e-02 + 9.154488848131032e-02 + 9.132766180778470e-02 + 9.111094897456264e-02 + 9.089474876186458e-02 + 9.067905996494766e-02 + 9.046388137755315e-02 + 9.024921179550818e-02 + 9.003505002157913e-02 + 8.982139485394958e-02 + 8.960824509461397e-02 + 8.939559956013639e-02 + 8.918345705664489e-02 + 8.897181638949078e-02 + 8.876067638185769e-02 + 8.855003585659860e-02 + 8.833989363307079e-02 + 8.813024852794749e-02 + 8.792109937217552e-02 + 8.771244500411417e-02 + 8.750428424959714e-02 + 8.729661594151820e-02 + 8.708943892038122e-02 + 8.688275202450782e-02 + 8.667655409894154e-02 + 8.647084399500883e-02 + 8.626562056133152e-02 + 8.606088264727801e-02 + 8.585662910508592e-02 + 8.565285879275303e-02 + 8.544957056834111e-02 + 8.524676329099723e-02 + 8.504443583456130e-02 + 8.484258706983651e-02 + 8.464121585953427e-02 + 8.444032107793580e-02 + 8.423990160173883e-02 + 8.403995630660985e-02 + 8.384048408000297e-02 + 8.364148380739438e-02 + 8.344295436518863e-02 + 8.324489464319758e-02 + 8.304730353631981e-02 + 8.285017993778075e-02 + 8.265352274723796e-02 + 8.245733086610936e-02 + 8.226160319325253e-02 + 8.206633863307464e-02 + 8.187153609323948e-02 + 8.167719448173898e-02 + 8.148331271120264e-02 + 8.128988969775824e-02 + 8.109692435907066e-02 + 8.090441561287741e-02 + 8.071236238052074e-02 + 8.052076359329230e-02 + 8.032961817777003e-02 + 8.013892505875637e-02 + 7.994868317110082e-02 + 7.975889145271257e-02 + 7.956954884117817e-02 + 7.938065427030368e-02 + 7.919220668490153e-02 + 7.900420503735811e-02 + 7.881664826626886e-02 + 7.862953532075569e-02 + 7.844286516277023e-02 + 7.825663674598571e-02 + 7.807084902471831e-02 + 7.788550095723919e-02 + 7.770059150356423e-02 + 7.751611963202924e-02 + 7.733208431808952e-02 + 7.714848452080215e-02 + 7.696531920714285e-02 + 7.678258736267791e-02 + 7.660028796508990e-02 + 7.641841999039113e-02 + 7.623698241865759e-02 + 7.605597423593993e-02 + 7.587539442823407e-02 + 7.569524197859213e-02 + 7.551551588287067e-02 + 7.533621514035872e-02 + 7.515733874432233e-02 + 7.497888568830134e-02 + 7.480085497230264e-02 + 7.462324560850588e-02 + 7.444605660139321e-02 + 7.426928695221670e-02 + 7.409293566891996e-02 + 7.391700176673981e-02 + 7.374148426439617e-02 + 7.356638217848553e-02 + 7.339169452681224e-02 + 7.321742033027905e-02 + 7.304355861552074e-02 + 7.287010840815517e-02 + 7.269706873346385e-02 + 7.252443862192341e-02 + 7.235221710900047e-02 + 7.218040323296335e-02 + 7.200899602923243e-02 + 7.183799453782064e-02 + 7.166739780328910e-02 + 7.149720486628935e-02 + 7.132741477295296e-02 + 7.115802657678706e-02 + 7.098903933028558e-02 + 7.082045208266741e-02 + 7.065226388294948e-02 + 7.048447379884398e-02 + 7.031708089501212e-02 + 7.015008422428966e-02 + 6.998348285005500e-02 + 6.981727584178653e-02 + 6.965146227138255e-02 + 6.948604121024822e-02 + 6.932101172952453e-02 + 6.915637290177927e-02 + 6.899212381049466e-02 + 6.882826353831664e-02 + 6.866479115768206e-02 + 6.850170575553913e-02 + 6.833900642241270e-02 + 6.817669223943085e-02 + 6.801476230171261e-02 + 6.785321570853013e-02 + 6.769205154760372e-02 + 6.753126891476798e-02 + 6.737086691265436e-02 + 6.721084464422118e-02 + 6.705120121123045e-02 + 6.689193571639933e-02 + 6.673304726820108e-02 + 6.657453497707803e-02 + 6.641639795452120e-02 + 6.625863531334618e-02 + 6.610124617104705e-02 + 6.594422964866814e-02 + 6.578758486543299e-02 + 6.563131094165708e-02 + 6.547540700031643e-02 + 6.531987216906585e-02 + 6.516470557837332e-02 + 6.500990635997374e-02 + 6.485547364331327e-02 + 6.470140656204018e-02 + 6.454770425495959e-02 + 6.439436585565442e-02 + 6.424139050518185e-02 + 6.408877735587415e-02 + 6.393652554954243e-02 + 6.378463422860429e-02 + 6.363310254304622e-02 + 6.348192964216136e-02 + 6.333111467891862e-02 + 6.318065681259971e-02 + 6.303055519506789e-02 + 6.288080898167979e-02 + 6.273141734118348e-02 + 6.258237943694549e-02 + 6.243369443027962e-02 + 6.228536148636779e-02 + 6.213737977420020e-02 + 6.198974846629291e-02 + 6.184246673830131e-02 + 6.169553375986874e-02 + 6.154894870195880e-02 + 6.140271075002260e-02 + 6.125681908485271e-02 + 6.111127288458502e-02 + 6.096607133498923e-02 + 6.082121362330186e-02 + 6.067669893778977e-02 + 6.053252647002724e-02 + 6.038869541057570e-02 + 6.024520494995262e-02 + 6.010205428441878e-02 + 5.995924261312039e-02 + 5.981676913606451e-02 + 5.967463305068377e-02 + 5.953283356000520e-02 + 5.939136987405440e-02 + 5.925024120274393e-02 + 5.910944675075109e-02 + 5.896898572024133e-02 + 5.882885733338872e-02 + 5.868906080796419e-02 + 5.854959534943303e-02 + 5.841046018167366e-02 + 5.827165452667381e-02 + 5.813317759547484e-02 + 5.799502862000658e-02 + 5.785720683145133e-02 + 5.771971144629215e-02 + 5.758254169802959e-02 + 5.744569682168989e-02 + 5.730917604038396e-02 + 5.717297859181381e-02 + 5.703710371771920e-02 + 5.690155065150715e-02 + 5.676631863514842e-02 + 5.663140691176988e-02 + 5.649681471550019e-02 + 5.636254129818796e-02 + 5.622858591623749e-02 + 5.609494780637568e-02 + 5.596162621719655e-02 + 5.582862040612746e-02 + 5.569592962469259e-02 + 5.556355312969728e-02 + 5.543149018219354e-02 + 5.529974004038473e-02 + 5.516830196534387e-02 + 5.503717522021812e-02 + 5.490635906464716e-02 + 5.477585276550550e-02 + 5.464565559606692e-02 + 5.451576682310098e-02 + 5.438618571514530e-02 + 5.425691154653305e-02 + 5.412794360021059e-02 + 5.399928115030668e-02 + 5.387092346220070e-02 + 5.374286982722595e-02 + 5.361511953114147e-02 + 5.348767184376742e-02 + 5.336052605560348e-02 + 5.323368145967647e-02 + 5.310713734132736e-02 + 5.298089299097181e-02 + 5.285494769998652e-02 + 5.272930075794034e-02 + 5.260395145882699e-02 + 5.247889910164562e-02 + 5.235414299012888e-02 + 5.222968242359068e-02 + 5.210551670083303e-02 + 5.198164512479836e-02 + 5.185806699751586e-02 + 5.173478162567831e-02 + 5.161178832737659e-02 + 5.148908640731603e-02 + 5.136667516904735e-02 + 5.124455393713079e-02 + 5.112272202541198e-02 + 5.100117874145336e-02 + 5.087992340415878e-02 + 5.075895533879782e-02 + 5.063827387090040e-02 + 5.051787831631814e-02 + 5.039776799903027e-02 + 5.027794224956293e-02 + 5.015840039018700e-02 + 5.003914174911826e-02 + 4.992016566217095e-02 + 4.980147146451835e-02 + 4.968305848565534e-02 + 4.956492605368701e-02 + 4.944707351707827e-02 + 4.932950021762891e-02 + 4.921220548403189e-02 + 4.909518865563611e-02 + 4.897844908008390e-02 + 4.886198610990230e-02 + 4.874579909103274e-02 + 4.862988736593407e-02 + 4.851425027765261e-02 + 4.839888718215429e-02 + 4.828379743688660e-02 + 4.816898039344981e-02 + 4.805443540666063e-02 + 4.794016183433197e-02 + 4.782615903628512e-02 + 4.771242637003347e-02 + 4.759896319572905e-02 + 4.748576888074151e-02 + 4.737284278529100e-02 + 4.726018427180961e-02 + 4.714779271742187e-02 + 4.703566749191604e-02 + 4.692380796083007e-02 + 4.681221349433169e-02 + 4.670088346648602e-02 + 4.658981725459431e-02 + 4.647901423861556e-02 + 4.636847379587147e-02 + 4.625819530165282e-02 + 4.614817813294777e-02 + 4.603842167462240e-02 + 4.592892531626435e-02 + 4.581968844113481e-02 + 4.571071043517037e-02 + 4.560199068716930e-02 + 4.549352858172214e-02 + 4.538532351139604e-02 + 4.527737487551017e-02 + 4.516968206047602e-02 + 4.506224446147816e-02 + 4.495506148526871e-02 + 4.484813252205796e-02 + 4.474145696749865e-02 + 4.463503423038843e-02 + 4.452886371233129e-02 + 4.442294481444441e-02 + 4.431727694184067e-02 + 4.421185950249874e-02 + 4.410669190344264e-02 + 4.400177354999718e-02 + 4.389710385863231e-02 + 4.379268224561385e-02 + 4.368850811842072e-02 + 4.358458089102907e-02 + 4.348089998166713e-02 + 4.337746480946211e-02 + 4.327427479290449e-02 + 4.317132935104961e-02 + 4.306862790538591e-02 + 4.296616988021409e-02 + 4.286395470044128e-02 + 4.276198178905291e-02 + 4.266025057462805e-02 + 4.255876048879523e-02 + 4.245751096050290e-02 + 4.235650142249979e-02 + 4.225573130868781e-02 + 4.215520004666404e-02 + 4.205490707118502e-02 + 4.195485182346907e-02 + 4.185503374212908e-02 + 4.175545226547943e-02 + 4.165610683241490e-02 + 4.155699688308426e-02 + 4.145812186261490e-02 + 4.135948121993713e-02 + 4.126107439911159e-02 + 4.116290084444992e-02 + 4.106496000347922e-02 + 4.096725133001662e-02 + 4.086977427671171e-02 + 4.077252829257245e-02 + 4.067551282880393e-02 + 4.057872734137224e-02 + 4.048217129089726e-02 + 4.038584413229004e-02 + 4.028974532214836e-02 + 4.019387432351806e-02 + 4.009823059884492e-02 + 4.000281360871143e-02 + 3.990762281263916e-02 + 3.981265768084040e-02 + 3.971791768404272e-02 + 3.962340228400397e-02 + 3.952911094818634e-02 + 3.943504314911767e-02 + 3.934119836154264e-02 + 3.924757605343093e-02 + 3.915417569553582e-02 + 3.906099677494528e-02 + 3.896803876462888e-02 + 3.887530113159737e-02 + 3.878278335807980e-02 + 3.869048493136602e-02 + 3.859840533540703e-02 + 3.850654403935494e-02 + 3.841490053099362e-02 + 3.832347430867683e-02 + 3.823226484521238e-02 + 3.814127162485314e-02 + 3.805049414568009e-02 + 3.795993189727254e-02 + 3.786958436838804e-02 + 3.777945104950908e-02 + 3.768953143238456e-02 + 3.759982501241896e-02 + 3.751033128919119e-02 + 3.742104976390229e-02 + 3.733197993101921e-02 + 3.724312127956968e-02 + 3.715447331892652e-02 + 3.706603555538170e-02 + 3.697780748276271e-02 + 3.688978860838169e-02 + 3.680197844047203e-02 + 3.671437648083043e-02 + 3.662698223859462e-02 + 3.653979522528233e-02 + 3.645281495050149e-02 + 3.636604092401768e-02 + 3.627947265609178e-02 + 3.619310965841749e-02 + 3.610695145022991e-02 + 3.602099755007137e-02 + 3.593524746722872e-02 + 3.584970072102484e-02 + 3.576435683502647e-02 + 3.567921532660211e-02 + 3.559427571435374e-02 + 3.550953752116312e-02 + 3.542500027693078e-02 + 3.534066350384148e-02 + 3.525652672170999e-02 + 3.517258946309138e-02 + 3.508885125628003e-02 + 3.500531162678291e-02 + 3.492197010940873e-02 + 3.483882623525817e-02 + 3.475587953263527e-02 + 3.467312953919303e-02 + 3.459057578876406e-02 + 3.450821781198862e-02 + 3.442605515251815e-02 + 3.434408734999198e-02 + 3.426231393723483e-02 + 3.418073445581654e-02 + 3.409934844816886e-02 + 3.401815545480084e-02 + 3.393715501912345e-02 + 3.385634668688416e-02 + 3.377573000557660e-02 + 3.369530452244349e-02 + 3.361506978424043e-02 + 3.353502533757853e-02 + 3.345517073173793e-02 + 3.337550551749302e-02 + 3.329602924688495e-02 + 3.321674147756795e-02 + 3.313764176353938e-02 + 3.305872964905672e-02 + 3.298000469915312e-02 + 3.290146647870388e-02 + 3.282311452928582e-02 + 3.274494841443989e-02 + 3.266696770524984e-02 + 3.258917195579586e-02 + 3.251156072835543e-02 + 3.243413358906379e-02 + 3.235689009597382e-02 + 3.227982981604406e-02 + 3.220295232152501e-02 + 3.212625717796667e-02 + 3.204974395335523e-02 + 3.197341221860803e-02 + 3.189726154412311e-02 + 3.182129149811844e-02 + 3.174550164996338e-02 + 3.166989158019418e-02 + 3.159446086552403e-02 + 3.151920907660396e-02 + 3.144413578635114e-02 + 3.136924057603768e-02 + 3.129452303273958e-02 + 3.121998273049806e-02 + 3.114561924523454e-02 + 3.107143216011856e-02 + 3.099742105799270e-02 + 3.092358552474080e-02 + 3.084992514925186e-02 + 3.077643951122557e-02 + 3.070312819305190e-02 + 3.062999078663620e-02 + 3.055702688363699e-02 + 3.048423607160382e-02 + 3.041161793396379e-02 + 3.033917207015753e-02 + 3.026689807846873e-02 + 3.019479554128978e-02 + 3.012286404982057e-02 + 3.005110320361238e-02 + 2.997951260681279e-02 + 2.990809185255966e-02 + 2.983684053226568e-02 + 2.976575824919644e-02 + 2.969484460522792e-02 + 2.962409920087884e-02 + 2.955352163824170e-02 + 2.948311151647172e-02 + 2.941286843696999e-02 + 2.934279201383451e-02 + 2.927288185012002e-02 + 2.920313754405053e-02 + 2.913355871301240e-02 + 2.906414496442064e-02 + 2.899489589842786e-02 + 2.892581113440367e-02 + 2.885689028447655e-02 + 2.878813295173805e-02 + 2.871953875071393e-02 + 2.865110730129668e-02 + 2.858283822298987e-02 + 2.851473112218837e-02 + 2.844678561226344e-02 + 2.837900131834860e-02 + 2.831137785774055e-02 + 2.824391484910513e-02 + 2.817661191561155e-02 + 2.810946867322990e-02 + 2.804248474261467e-02 + 2.797565975421473e-02 + 2.790899332866750e-02 + 2.784248508684310e-02 + 2.777613465729838e-02 + 2.770994166752542e-02 + 2.764390574354870e-02 + 2.757802651096095e-02 + 2.751230360164656e-02 + 2.744673664902718e-02 + 2.738132528259552e-02 + 2.731606912935157e-02 + 2.725096782054994e-02 + 2.718602099881922e-02 + 2.712122829441404e-02 + 2.705658933533107e-02 + 2.699210376654040e-02 + 2.692777122629619e-02 + 2.686359134766074e-02 + 2.679956376855050e-02 + 2.673568813034148e-02 + 2.667196407449100e-02 + 2.660839123653040e-02 + 2.654496925932325e-02 + 2.648169779209303e-02 + 2.641857647953893e-02 + 2.635560496230991e-02 + 2.629278288047702e-02 + 2.623010988365326e-02 + 2.616758562366618e-02 + 2.610520975031933e-02 + 2.604298190560967e-02 + 2.598090173551063e-02 + 2.591896889422694e-02 + 2.585718303968204e-02 + 2.579554382343284e-02 + 2.573405088890056e-02 + 2.567270388987125e-02 + 2.561150248485746e-02 + 2.555044633271165e-02 + 2.548953508798725e-02 + 2.542876840653832e-02 + 2.536814594843316e-02 + 2.530766736730480e-02 + 2.524733231969847e-02 + 2.518714047250964e-02 + 2.512709148651639e-02 + 2.506718502244662e-02 + 2.500742074738894e-02 + 2.494779831751132e-02 + 2.488831739145854e-02 + 2.482897764751662e-02 + 2.476977875068464e-02 + 2.471072035836960e-02 + 2.465180213557270e-02 + 2.459302375909131e-02 + 2.453438490494015e-02 + 2.447588522684439e-02 + 2.441752439632618e-02 + 2.435930209686822e-02 + 2.430121799563831e-02 + 2.424327176191257e-02 + 2.418546306971884e-02 + 2.412779159320392e-02 + 2.407025701015483e-02 + 2.401285899981317e-02 + 2.395559723318545e-02 + 2.389847138352894e-02 + 2.384148113010493e-02 + 2.378462615809818e-02 + 2.372790614977233e-02 + 2.367132078182184e-02 + 2.361486973012364e-02 + 2.355855267628842e-02 + 2.350236930912776e-02 + 2.344631931433045e-02 + 2.339040237260871e-02 + 2.333461816188979e-02 + 2.327896637661412e-02 + 2.322344670789084e-02 + 2.316805883183489e-02 + 2.311280243515378e-02 + 2.305767721100430e-02 + 2.300268285332459e-02 + 2.294781904779433e-02 + 2.289308548135576e-02 + 2.283848185163481e-02 + 2.278400785322520e-02 + 2.272966317657758e-02 + 2.267544750906289e-02 + 2.262136054576819e-02 + 2.256740198705395e-02 + 2.251357153295969e-02 + 2.245986887460843e-02 + 2.240629370372433e-02 + 2.235284572997816e-02 + 2.229952464835474e-02 + 2.224633014749699e-02 + 2.219326193897085e-02 + 2.214031972536749e-02 + 2.208750320104361e-02 + 2.203481207216736e-02 + 2.198224604054712e-02 + 2.192980480490446e-02 + 2.187748807809197e-02 + 2.182529556587840e-02 + 2.177322696546572e-02 + 2.172128198614426e-02 + 2.166946034002218e-02 + 2.161776173674180e-02 + 2.156618587797776e-02 + 2.151473246970182e-02 + 2.146340122648612e-02 + 2.141219186176581e-02 + 2.136110408595206e-02 + 2.131013760699968e-02 + 2.125929213929720e-02 + 2.120856739943827e-02 + 2.115796310282077e-02 + 2.110747896148574e-02 + 2.105711468773744e-02 + 2.100686999708853e-02 + 2.095674460640470e-02 + 2.090673823470377e-02 + 2.085685060390323e-02 + 2.080708143284909e-02 + 2.075743043865024e-02 + 2.070789733896461e-02 + 2.065848185338519e-02 + 2.060918370358626e-02 + 2.056000261352416e-02 + 2.051093830731156e-02 + 2.046199050841276e-02 + 2.041315893918832e-02 + 2.036444332670061e-02 + 2.031584339811113e-02 + 2.026735887003067e-02 + 2.021898947028043e-02 + 2.017073493461869e-02 + 2.012259498752183e-02 + 2.007456935661649e-02 + 2.002665777297167e-02 + 1.997885996051357e-02 + 1.993117564943755e-02 + 1.988360457741823e-02 + 1.983614647798445e-02 + 1.978880107994216e-02 + 1.974156811085027e-02 + 1.969444731166336e-02 + 1.964743841723802e-02 + 1.960054115227784e-02 + 1.955375525837354e-02 + 1.950708047707909e-02 + 1.946051654129042e-02 + 1.941406318497287e-02 + 1.936772014474174e-02 + 1.932148716119990e-02 + 1.927536398140690e-02 + 1.922935034564512e-02 + 1.918344598004621e-02 + 1.913765063001423e-02 + 1.909196404425976e-02 + 1.904638595925336e-02 + 1.900091612254435e-02 + 1.895555428061772e-02 + 1.891030016469744e-02 + 1.886515352637163e-02 + 1.882011411999479e-02 + 1.877518167521970e-02 + 1.873035594232305e-02 + 1.868563668110157e-02 + 1.864102363246424e-02 + 1.859651653826993e-02 + 1.855211514697215e-02 + 1.850781921692858e-02 + 1.846362849811174e-02 + 1.841954273425713e-02 + 1.837556167722399e-02 + 1.833168508274460e-02 + 1.828791270638760e-02 + 1.824424429587613e-02 + 1.820067960186819e-02 + 1.815721838079814e-02 + 1.811386039242822e-02 + 1.807060539155448e-02 + 1.802745312809132e-02 + 1.798440336027523e-02 + 1.794145584667328e-02 + 1.789861034396235e-02 + 1.785586661445831e-02 + 1.781322441713358e-02 + 1.777068350457842e-02 + 1.772824363606736e-02 + 1.768590457480606e-02 + 1.764366608520215e-02 + 1.760152792777148e-02 + 1.755948986314423e-02 + 1.751755165530868e-02 + 1.747571306959304e-02 + 1.743397386795286e-02 + 1.739233380686453e-02 + 1.735079266012027e-02 + 1.730935019969591e-02 + 1.726800617515195e-02 + 1.722676035861175e-02 + 1.718561252878033e-02 + 1.714456244423200e-02 + 1.710360987245781e-02 + 1.706275458478830e-02 + 1.702199634263978e-02 + 1.698133492251816e-02 + 1.694077010510486e-02 + 1.690030164730331e-02 + 1.685992932068962e-02 + 1.681965290804600e-02 + 1.677947217681714e-02 + 1.673938689521877e-02 + 1.669939683666028e-02 + 1.665950177991986e-02 + 1.661970150205939e-02 + 1.657999577711447e-02 + 1.654038437906895e-02 + 1.650086708478969e-02 + 1.646144367321789e-02 + 1.642211391798679e-02 + 1.638287759543946e-02 + 1.634373448754158e-02 + 1.630468437732129e-02 + 1.626572704186934e-02 + 1.622686225251448e-02 + 1.618808979718675e-02 + 1.614940946170872e-02 + 1.611082101996680e-02 + 1.607232425440962e-02 + 1.603391895041710e-02 + 1.599560489122978e-02 + 1.595738185903658e-02 + 1.591924963852954e-02 + 1.588120801872957e-02 + 1.584325677844977e-02 + 1.580539569909259e-02 + 1.576762457813194e-02 + 1.572994319938502e-02 + 1.569235134492561e-02 + 1.565484881311209e-02 + 1.561743538476679e-02 + 1.558011083839993e-02 + 1.554287497958433e-02 + 1.550572759639263e-02 + 1.546866846769255e-02 + 1.543169739218311e-02 + 1.539481416304957e-02 + 1.535801856691179e-02 + 1.532131039389481e-02 + 1.528468944222785e-02 + 1.524815551153465e-02 + 1.521170838270258e-02 + 1.517534784896265e-02 + 1.513907371629201e-02 + 1.510288577422132e-02 + 1.506678381600347e-02 + 1.503076764230081e-02 + 1.499483704594779e-02 + 1.495899182406707e-02 + 1.492323178010325e-02 + 1.488755670734373e-02 + 1.485196640180961e-02 + 1.481646066682016e-02 + 1.478103929846549e-02 + 1.474570209596410e-02 + 1.471044886603309e-02 + 1.467527940456368e-02 + 1.464019351058384e-02 + 1.460519099481427e-02 + 1.457027165550810e-02 + 1.453543528903122e-02 + 1.450068170024789e-02 + 1.446601069487559e-02 + 1.443142207965322e-02 + 1.439691566271563e-02 + 1.436249124410753e-02 + 1.432814862414793e-02 + 1.429388761459182e-02 + 1.425970802314729e-02 + 1.422560965483165e-02 + 1.419159231701311e-02 + 1.415765581387266e-02 + 1.412379995194592e-02 + 1.409002455116132e-02 + 1.405632941792580e-02 + 1.402271435207008e-02 + 1.398917917303820e-02 + 1.395572369124169e-02 + 1.392234770932106e-02 + 1.388905104392205e-02 + 1.385583350997071e-02 + 1.382269491788422e-02 + 1.378963507987753e-02 + 1.375665380791922e-02 + 1.372375091366015e-02 + 1.369092621121959e-02 + 1.365817951715469e-02 + 1.362551064978645e-02 + 1.359291942581090e-02 + 1.356040565686591e-02 + 1.352796915179558e-02 + 1.349560973812908e-02 + 1.346332723540702e-02 + 1.343112144483463e-02 + 1.339899219360082e-02 + 1.336693930891053e-02 + 1.333496260043193e-02 + 1.330306188734133e-02 + 1.327123699224855e-02 + 1.323948773476910e-02 + 1.320781393642416e-02 + 1.317621541705235e-02 + 1.314469199166208e-02 + 1.311324348463446e-02 + 1.308186972415766e-02 + 1.305057053367403e-02 + 1.301934573289238e-02 + 1.298819514247371e-02 + 1.295711859027024e-02 + 1.292611590142988e-02 + 1.289518689817567e-02 + 1.286433140253433e-02 + 1.283354924175516e-02 + 1.280284024626999e-02 + 1.277220424320462e-02 + 1.274164105512193e-02 + 1.271115050454398e-02 + 1.268073242580564e-02 + 1.265038664885281e-02 + 1.262011299771964e-02 + 1.258991130045622e-02 + 1.255978138928737e-02 + 1.252972309744999e-02 + 1.249973624798444e-02 + 1.246982067106488e-02 + 1.243997620568067e-02 + 1.241020267461013e-02 + 1.238049990730756e-02 + 1.235086774662455e-02 + 1.232130602051964e-02 + 1.229181455798258e-02 + 1.226239319685087e-02 + 1.223304176770951e-02 + 1.220376010347082e-02 + 1.217454804486660e-02 + 1.214540542341299e-02 + 1.211633207079968e-02 + 1.208732782681391e-02 + 1.205839252771904e-02 + 1.202952600673308e-02 + 1.200072809652295e-02 + 1.197199864009422e-02 + 1.194333748171596e-02 + 1.191474445503102e-02 + 1.188621939116683e-02 + 1.185776212675846e-02 + 1.182937251288597e-02 + 1.180105038815069e-02 + 1.177279558400601e-02 + 1.174460794107161e-02 + 1.171648730396891e-02 + 1.168843351609301e-02 + 1.166044641171630e-02 + 1.163252583370262e-02 + 1.160467163102319e-02 + 1.157688364263099e-02 + 1.154916170933044e-02 + 1.152150567570712e-02 + 1.149391538555893e-02 + 1.146639068095789e-02 + 1.143893140447911e-02 + 1.141153740781534e-02 + 1.138420853673168e-02 + 1.135694462854312e-02 + 1.132974552839056e-02 + 1.130261108533809e-02 + 1.127554114921167e-02 + 1.124853556496432e-02 + 1.122159417997002e-02 + 1.119471684585664e-02 + 1.116790340283271e-02 + 1.114115369710312e-02 + 1.111446758944324e-02 + 1.108784492177717e-02 + 1.106128553754357e-02 + 1.103478929728668e-02 + 1.100835604711145e-02 + 1.098198563223047e-02 + 1.095567791133747e-02 + 1.092943273475230e-02 + 1.090324994987072e-02 + 1.087712940981543e-02 + 1.085107096608238e-02 + 1.082507447053145e-02 + 1.079913977931768e-02 + 1.077326674497864e-02 + 1.074745521859533e-02 + 1.072170505538783e-02 + 1.069601611066200e-02 + 1.067038823886727e-02 + 1.064482129354728e-02 + 1.061931513219808e-02 + 1.059386961330933e-02 + 1.056848458681972e-02 + 1.054315990640127e-02 + 1.051789543133304e-02 + 1.049269102209236e-02 + 1.046754653920045e-02 + 1.044246184044743e-02 + 1.041743677288729e-02 + 1.039247119540387e-02 + 1.036756497988909e-02 + 1.034271797805630e-02 + 1.031793004647734e-02 + 1.029320105343422e-02 + 1.026853085073464e-02 + 1.024391929539164e-02 + 1.021936625852857e-02 + 1.019487159885800e-02 + 1.017043517132599e-02 + 1.014605683522427e-02 + 1.012173646293816e-02 + 1.009747392058842e-02 + 1.007326905588179e-02 + 1.004912173629082e-02 + 1.002503183346208e-02 + 1.000099920653610e-02 + 9.977023717087764e-03 + 9.953105229386335e-03 + 9.929243608872406e-03 + 9.905438720973011e-03 + 9.881690430827046e-03 + 9.857998603258316e-03 + 9.834363104786413e-03 + 9.810783802355094e-03 + 9.787260560990621e-03 + 9.763793247942843e-03 + 9.740381731591760e-03 + 9.717025877967826e-03 + 9.693725554510663e-03 + 9.670480630152000e-03 + 9.647290973567844e-03 + 9.624156453317901e-03 + 9.601076938062841e-03 + 9.578052297039983e-03 + 9.555082399653962e-03 + 9.532167115690399e-03 + 9.509306316445141e-03 + 9.486499872512266e-03 + 9.463747653553711e-03 + 9.441049530896879e-03 + 9.418405376662433e-03 + 9.395815063104617e-03 + 9.373278461427175e-03 + 9.350795443499088e-03 + 9.328365882617906e-03 + 9.305989651970981e-03 + 9.283666624824176e-03 + 9.261396674723778e-03 + 9.239179675408710e-03 + 9.217015500757821e-03 + 9.194904024947497e-03 + 9.172845123632957e-03 + 9.150838672277813e-03 + 9.128884544858834e-03 + 9.106982617538152e-03 + 9.085132766987650e-03 + 9.063334868396023e-03 + 9.041588798714301e-03 + 9.019894435479832e-03 + 8.998251654894885e-03 + 8.976660334271958e-03 + 8.955120351755344e-03 + 8.933631585369030e-03 + 8.912193913264732e-03 + 8.890807213885918e-03 + 8.869471366214972e-03 + 8.848186249259440e-03 + 8.826951742251321e-03 + 8.805767725383001e-03 + 8.784634078744540e-03 + 8.763550682317645e-03 + 8.742517416743529e-03 + 8.721534162832835e-03 + 8.700600801502468e-03 + 8.679717214101214e-03 + 8.658883282492529e-03 + 8.638098888885700e-03 + 8.617363915025602e-03 + 8.596678243443276e-03 + 8.576041757693640e-03 + 8.555454340593486e-03 + 8.534915875110577e-03 + 8.514426244844865e-03 + 8.493985333674233e-03 + 8.473593025909724e-03 + 8.453249206335058e-03 + 8.432953759374154e-03 + 8.412706569850796e-03 + 8.392507523503252e-03 + 8.372356505624580e-03 + 8.352253401838657e-03 + 8.332198098800467e-03 + 8.312190482450988e-03 + 8.292230438871008e-03 + 8.272317855399050e-03 + 8.252452619663047e-03 + 8.232634619050869e-03 + 8.212863740331295e-03 + 8.193139871755427e-03 + 8.173462902270600e-03 + 8.153832719956143e-03 + 8.134249213438031e-03 + 8.114712271802299e-03 + 8.095221784035302e-03 + 8.075777639824947e-03 + 8.056379729417138e-03 + 8.037027942938956e-03 + 8.017722170154111e-03 + 7.998462301028743e-03 + 7.979248227381455e-03 + 7.960079840401237e-03 + 7.940957030626293e-03 + 7.921879690329333e-03 + 7.902847711453821e-03 + 7.883860985421759e-03 + 7.864919405368889e-03 + 7.846022864037674e-03 + 7.827171253341911e-03 + 7.808364466777525e-03 + 7.789602397948123e-03 + 7.770884940051978e-03 + 7.752211987488857e-03 + 7.733583434567862e-03 + 7.714999174963997e-03 + 7.696459103766686e-03 + 7.677963116338556e-03 + 7.659511107448910e-03 + 7.641102971817726e-03 + 7.622738605046243e-03 + 7.604417904226960e-03 + 7.586140765207791e-03 + 7.567907083543369e-03 + 7.549716755813157e-03 + 7.531569679511053e-03 + 7.513465752109027e-03 + 7.495404870064185e-03 + 7.477386931039745e-03 + 7.459411833357052e-03 + 7.441479474804043e-03 + 7.423589753808636e-03 + 7.405742569108545e-03 + 7.387937818890154e-03 + 7.370175402616828e-03 + 7.352455220325825e-03 + 7.334777170378787e-03 + 7.317141152312192e-03 + 7.299547066866589e-03 + 7.281994814230038e-03 + 7.264484294760120e-03 + 7.247015409129196e-03 + 7.229588058070396e-03 + 7.212202142721502e-03 + 7.194857564639825e-03 + 7.177554225359851e-03 + 7.160292026920549e-03 + 7.143070871828701e-03 + 7.125890661781023e-03 + 7.108751299151369e-03 + 7.091652687463649e-03 + 7.074594729473165e-03 + 7.057577328092346e-03 + 7.040600386920140e-03 + 7.023663809440293e-03 + 7.006767499621119e-03 + 6.989911362283671e-03 + 6.973095301761098e-03 + 6.956319222246642e-03 + 6.939583028242014e-03 + 6.922886624933184e-03 + 6.906229917977133e-03 + 6.889612813237578e-03 + 6.873035215956658e-03 + 6.856497031627250e-03 + 6.839998167124653e-03 + 6.823538528849983e-03 + 6.807118022950776e-03 + 6.790736556102037e-03 + 6.774394036012678e-03 + 6.758090370503938e-03 + 6.741825465874382e-03 + 6.725599229831710e-03 + 6.709411571076730e-03 + 6.693262397262002e-03 + 6.677151616823099e-03 + 6.661079138883049e-03 + 6.645044871881905e-03 + 6.629048724424302e-03 + 6.613090605727208e-03 + 6.597170426169362e-03 + 6.581288095176429e-03 + 6.565443521393368e-03 + 6.549636616015259e-03 + 6.533867289690503e-03 + 6.518135451870410e-03 + 6.502441013826720e-03 + 6.486783886693610e-03 + 6.471163980906190e-03 + 6.455581208648475e-03 + 6.440035481784445e-03 + 6.424526710952946e-03 + 6.409054808194274e-03 + 6.393619686148648e-03 + 6.378221257389647e-03 + 6.362859434216829e-03 + 6.347534129405275e-03 + 6.332245256702231e-03 + 6.316992728926398e-03 + 6.301776458848883e-03 + 6.286596360249587e-03 + 6.271452347303485e-03 + 6.256344334335297e-03 + 6.241272235637497e-03 + 6.226235965289892e-03 + 6.211235437617355e-03 + 6.196270567881593e-03 + 6.181341271239764e-03 + 6.166447462747857e-03 + 6.151589057705613e-03 + 6.136765971896623e-03 + 6.121978121401951e-03 + 6.107225422158738e-03 + 6.092507790132517e-03 + 6.077825141615326e-03 + 6.063177393866219e-03 + 6.048564463915550e-03 + 6.033986268442907e-03 + 6.019442724444331e-03 + 6.004933749322879e-03 + 5.990459260846786e-03 + 5.976019176895193e-03 + 5.961613415583682e-03 + 5.947241895231883e-03 + 5.932904533953020e-03 + 5.918601250164555e-03 + 5.904331962789744e-03 + 5.890096590861083e-03 + 5.875895053571317e-03 + 5.861727270328322e-03 + 5.847593160694864e-03 + 5.833492644473149e-03 + 5.819425641715960e-03 + 5.805392072163253e-03 + 5.791391855962741e-03 + 5.777424914193254e-03 + 5.763491167389796e-03 + 5.749590536018355e-03 + 5.735722941127108e-03 + 5.721888304505554e-03 + 5.708086547766434e-03 + 5.694317591457392e-03 + 5.680581357894303e-03 + 5.666877769868901e-03 + 5.653206748498332e-03 + 5.639568216215936e-03 + 5.625962096156960e-03 + 5.612388310444156e-03 + 5.598846782244085e-03 + 5.585337435180374e-03 + 5.571860191464977e-03 + 5.558414974887664e-03 + 5.545001710146245e-03 + 5.531620319651646e-03 + 5.518270727342278e-03 + 5.504952858629092e-03 + 5.491666637149790e-03 + 5.478411987013346e-03 + 5.465188833301630e-03 + 5.451997101098349e-03 + 5.438836715460566e-03 + 5.425707601454353e-03 + 5.412609684284744e-03 + 5.399542889597323e-03 + 5.386507143481766e-03 + 5.373502371672819e-03 + 5.360528500347250e-03 + 5.347585456320476e-03 + 5.334673165238440e-03 + 5.321791553290573e-03 + 5.308940548233661e-03 + 5.296120077396591e-03 + 5.283330067535706e-03 + 5.270570445063373e-03 + 5.257841138170363e-03 + 5.245142075198895e-03 + 5.232473183108559e-03 + 5.219834389656078e-03 + 5.207225623450342e-03 + 5.194646813662877e-03 + 5.182097888019903e-03 + 5.169578774433769e-03 + 5.157089403379224e-03 + 5.144629703265777e-03 + 5.132199601938705e-03 + 5.119799030212023e-03 + 5.107427917986021e-03 + 5.095086194230444e-03 + 5.082773788422456e-03 + 5.070490630851877e-03 + 5.058236652191947e-03 + 5.046011782411770e-03 + 5.033815952050060e-03 + 5.021649092096963e-03 + 5.009511132708167e-03 + 4.997402004872952e-03 + 4.985321640554899e-03 + 4.973269971256597e-03 + 4.961246927915243e-03 + 4.949252441362114e-03 + 4.937286444284467e-03 + 4.925348869112448e-03 + 4.913439647407981e-03 + 4.901558711796497e-03 + 4.889705994683389e-03 + 4.877881427891544e-03 + 4.866084944974813e-03 + 4.854316479151838e-03 + 4.842575962313763e-03 + 4.830863328342665e-03 + 4.819178511323663e-03 + 4.807521444209243e-03 + 4.795892060902922e-03 + 4.784290295384500e-03 + 4.772716080911616e-03 + 4.761169351999607e-03 + 4.749650043687660e-03 + 4.738158090505544e-03 + 4.726693426328077e-03 + 4.715255985490762e-03 + 4.703845704177584e-03 + 4.692462517255530e-03 + 4.681106359266913e-03 + 4.669777166671382e-03 + 4.658474874679097e-03 + 4.647199418051047e-03 + 4.635950733693824e-03 + 4.624728757814554e-03 + 4.613533426035275e-03 + 4.602364675085555e-03 + 4.591222441193854e-03 + 4.580106660340010e-03 + 4.569017270133631e-03 + 4.557954207729684e-03 + 4.546917409606468e-03 + 4.535906813063030e-03 + 4.524922355662980e-03 + 4.513963975024341e-03 + 4.503031608847450e-03 + 4.492125194604706e-03 + 4.481244669721014e-03 + 4.470389973075004e-03 + 4.459561043403103e-03 + 4.448757818627942e-03 + 4.437980237157132e-03 + 4.427228237584914e-03 + 4.416501758569245e-03 + 4.405800739475310e-03 + 4.395125119625431e-03 + 4.384474837838549e-03 + 4.373849833628650e-03 + 4.363250046735974e-03 + 4.352675416676511e-03 + 4.342125883231542e-03 + 4.331601386396421e-03 + 4.321101866314548e-03 + 4.310627263408189e-03 + 4.300177518182486e-03 + 4.289752570999768e-03 + 4.279352362569397e-03 + 4.268976833692708e-03 + 4.258625924837488e-03 + 4.248299577436886e-03 + 4.237997733292803e-03 + 4.227720333115902e-03 + 4.217467318344088e-03 + 4.207238631130676e-03 + 4.197034213451204e-03 + 4.186854006892898e-03 + 4.176697952964437e-03 + 4.166565994071401e-03 + 4.156458073034852e-03 + 4.146374132669977e-03 + 4.136314114934178e-03 + 4.126277962231265e-03 + 4.116265617785051e-03 + 4.106277025130100e-03 + 4.096312127225507e-03 + 4.086370866498099e-03 + 4.076453186851077e-03 + 4.066559032318193e-03 + 4.056688346384167e-03 + 4.046841072375552e-03 + 4.037017154234894e-03 + 4.027216536753351e-03 + 4.017439163691562e-03 + 4.007684978984143e-03 + 3.997953927616382e-03 + 3.988245954341580e-03 + 3.978561003853811e-03 + 3.968899020987378e-03 + 3.959259950174110e-03 + 3.949643736363211e-03 + 3.940050325917084e-03 + 3.930479663940112e-03 + 3.920931695287086e-03 + 3.911406366153988e-03 + 3.901903622192779e-03 + 3.892423408886956e-03 + 3.882965672529350e-03 + 3.873530359308857e-03 + 3.864117415340676e-03 + 3.854726787040829e-03 + 3.845358421069152e-03 + 3.836012264203419e-03 + 3.826688263119290e-03 + 3.817386364639579e-03 + 3.808106515834866e-03 + 3.798848664119608e-03 + 3.789612756624806e-03 + 3.780398740246358e-03 + 3.771206562411011e-03 + 3.762036171140922e-03 + 3.752887514765301e-03 + 3.743760540740341e-03 + 3.734655196719529e-03 + 3.725571430980986e-03 + 3.716509192135922e-03 + 3.707468428387338e-03 + 3.698449087559120e-03 + 3.689451119263604e-03 + 3.680474472533827e-03 + 3.671519094850921e-03 + 3.662584935894309e-03 + 3.653671945297336e-03 + 3.644780071212910e-03 + 3.635909263417586e-03 + 3.627059471971036e-03 + 3.618230645951014e-03 + 3.609422734605362e-03 + 3.600635687799489e-03 + 3.591869456282116e-03 + 3.583123989955615e-03 + 3.574399238584414e-03 + 3.565695152845392e-03 + 3.557011682930304e-03 + 3.548348778903569e-03 + 3.539706391532652e-03 + 3.531084471778191e-03 + 3.522482970666699e-03 + 3.513901839239252e-03 + 3.505341028388093e-03 + 3.496800489111114e-03 + 3.488280173119797e-03 + 3.479780031892506e-03 + 3.471300016604386e-03 + 3.462840078578430e-03 + 3.454400170006921e-03 + 3.445980243580072e-03 + 3.437580250715228e-03 + 3.429200142992534e-03 + 3.420839872683964e-03 + 3.412499392748279e-03 + 3.404178655562702e-03 + 3.395877612913789e-03 + 3.387596218304602e-03 + 3.379334424898988e-03 + 3.371092184764359e-03 + 3.362869450661228e-03 + 3.354666175991870e-03 + 3.346482314543412e-03 + 3.338317819175880e-03 + 3.330172642972068e-03 + 3.322046740007612e-03 + 3.313940064235304e-03 + 3.305852569386344e-03 + 3.297784208976364e-03 + 3.289734936574093e-03 + 3.281704706272533e-03 + 3.273693473070924e-03 + 3.265701191257636e-03 + 3.257727814803984e-03 + 3.249773298074863e-03 + 3.241837595979994e-03 + 3.233920663596386e-03 + 3.226022455622204e-03 + 3.218142926555998e-03 + 3.210282031163023e-03 + 3.202439725215123e-03 + 3.194615964134223e-03 + 3.186810703067027e-03 + 3.179023897602838e-03 + 3.171255503398923e-03 + 3.163505475998486e-03 + 3.155773770652277e-03 + 3.148060343553685e-03 + 3.140365151430291e-03 + 3.132688149313277e-03 + 3.125029293443853e-03 + 3.117388541383308e-03 + 3.109765848736372e-03 + 3.102161171408776e-03 + 3.094574466373093e-03 + 3.087005690728782e-03 + 3.079454801280003e-03 + 3.071921754555924e-03 + 3.064406507880629e-03 + 3.056909018530570e-03 + 3.049429243338136e-03 + 3.041967139485151e-03 + 3.034522664377966e-03 + 3.027095775562892e-03 + 3.019686430816400e-03 + 3.012294588055786e-03 + 3.004920205212209e-03 + 2.997563239705405e-03 + 2.990223649173174e-03 + 2.982901392198357e-03 + 2.975596427311395e-03 + 2.968308712822513e-03 + 2.961038206776656e-03 + 2.953784867392937e-03 + 2.946548653201694e-03 + 2.939329523194637e-03 + 2.932127436582907e-03 + 2.924942352269057e-03 + 2.917774228121468e-03 + 2.910623023643702e-03 + 2.903488699056754e-03 + 2.896371212514376e-03 + 2.889270523304112e-03 + 2.882186591679052e-03 + 2.875119376658924e-03 + 2.868068837676741e-03 + 2.861034934776638e-03 + 2.854017627809473e-03 + 2.847016876513213e-03 + 2.840032640686938e-03 + 2.833064880681456e-03 + 2.826113557103426e-03 + 2.819178630449384e-03 + 2.812260060105674e-03 + 2.805357806481411e-03 + 2.798471831428214e-03 + 2.791602094948384e-03 + 2.784748557109701e-03 + 2.777911179108391e-03 + 2.771089922400815e-03 + 2.764284748007964e-03 + 2.757495616304825e-03 + 2.750722488782177e-03 + 2.743965327115693e-03 + 2.737224092409578e-03 + 2.730498746008289e-03 + 2.723789249648372e-03 + 2.717095565426717e-03 + 2.710417654358784e-03 + 2.703755477800617e-03 + 2.697108999073383e-03 + 2.690478179939920e-03 + 2.683862981660020e-03 + 2.677263366970269e-03 + 2.670679298051182e-03 + 2.664110736894467e-03 + 2.657557646411518e-03 + 2.651019989061974e-03 + 2.644497727126834e-03 + 2.637990823748049e-03 + 2.631499241776077e-03 + 2.625022943767310e-03 + 2.618561892619121e-03 + 2.612116051581085e-03 + 2.605685383984310e-03 + 2.599269852507916e-03 + 2.592869420565223e-03 + 2.586484052278204e-03 + 2.580113710814501e-03 + 2.573758359383719e-03 + 2.567417961609419e-03 + 2.561092481362380e-03 + 2.554781882413309e-03 + 2.548486128464411e-03 + 2.542205184036424e-03 + 2.535939013422343e-03 + 2.529687580238901e-03 + 2.523450848436006e-03 + 2.517228782352248e-03 + 2.511021346720505e-03 + 2.504828506444104e-03 + 2.498650225958320e-03 + 2.492486468967693e-03 + 2.486337200680032e-03 + 2.480202386472821e-03 + 2.474081990653096e-03 + 2.467975978460781e-03 + 2.461884315215007e-03 + 2.455806965243642e-03 + 2.449743893777428e-03 + 2.443695066608286e-03 + 2.437660449328877e-03 + 2.431640007119714e-03 + 2.425633705211946e-03 + 2.419641509634817e-03 + 2.413663385966202e-03 + 2.407699299632079e-03 + 2.401749216909934e-03 + 2.395813103777745e-03 + 2.389890925926915e-03 + 2.383982649399740e-03 + 2.378088240561300e-03 + 2.372207665865560e-03 + 2.366340891258303e-03 + 2.360487883037754e-03 + 2.354648608018378e-03 + 2.348823033118129e-03 + 2.343011124539103e-03 + 2.337212848054228e-03 + 2.331428171390765e-03 + 2.325657062040943e-03 + 2.319899486412222e-03 + 2.314155410784699e-03 + 2.308424802407836e-03 + 2.302707629600105e-03 + 2.297003858807791e-03 + 2.291313456815245e-03 + 2.285636391934661e-03 + 2.279972631361444e-03 + 2.274322142294874e-03 + 2.268684892803898e-03 + 2.263060850445441e-03 + 2.257449982675230e-03 + 2.251852257331842e-03 + 2.246267642469826e-03 + 2.240696106224612e-03 + 2.235137616698782e-03 + 2.229592141925271e-03 + 2.224059650030012e-03 + 2.218540109447705e-03 + 2.213033488566449e-03 + 2.207539755750870e-03 + 2.202058879448589e-03 + 2.196590827868759e-03 + 2.191135569406817e-03 + 2.185693073538250e-03 + 2.180263309295804e-03 + 2.174846245146934e-03 + 2.169441849486111e-03 + 2.164050091629877e-03 + 2.158670941358884e-03 + 2.153304367034930e-03 + 2.147950337590323e-03 + 2.142608822828710e-03 + 2.137279792340324e-03 + 2.131963215445541e-03 + 2.126659061301170e-03 + 2.121367299363035e-03 + 2.116087899310018e-03 + 2.110820830985273e-03 + 2.105566064252215e-03 + 2.100323568822542e-03 + 2.095093314356113e-03 + 2.089875271479949e-03 + 2.084669410319118e-03 + 2.079475699908646e-03 + 2.074294110902819e-03 + 2.069124614088778e-03 + 2.063967179294363e-03 + 2.058821776747180e-03 + 2.053688376991423e-03 + 2.048566950718572e-03 + 2.043457468582260e-03 + 2.038359901240009e-03 + 2.033274219398007e-03 + 2.028200393563254e-03 + 2.023138394473247e-03 + 2.018088193625467e-03 + 2.013049761808302e-03 + 2.008023069533293e-03 + 2.003008088023720e-03 + 1.998004788922133e-03 + 1.993013143739461e-03 + 1.988033123025423e-03 + 1.983064698401174e-03 + 1.978107841939004e-03 + 1.973162523959716e-03 + 1.968228716337500e-03 + 1.963306391971906e-03 + 1.958395521239848e-03 + 1.953496075620802e-03 + 1.948608028019931e-03 + 1.943731350228688e-03 + 1.938866013789267e-03 + 1.934011990485791e-03 + 1.929169252901841e-03 + 1.924337773155020e-03 + 1.919517522737516e-03 + 1.914708474346116e-03 + 1.909910600724645e-03 + 1.905123874118434e-03 + 1.900348266781407e-03 + 1.895583751238830e-03 + 1.890830300301618e-03 + 1.886087886140893e-03 + 1.881356481302734e-03 + 1.876636059328014e-03 + 1.871926593048255e-03 + 1.867228054886164e-03 + 1.862540417322874e-03 + 1.857863653843670e-03 + 1.853197738035545e-03 + 1.848542642643349e-03 + 1.843898340659710e-03 + 1.839264805482605e-03 + 1.834642010884087e-03 + 1.830029929675155e-03 + 1.825428534756660e-03 + 1.820837800826725e-03 + 1.816257700994342e-03 + 1.811688207883416e-03 + 1.807129296515363e-03 + 1.802580940478343e-03 + 1.798043112569654e-03 + 1.793515787775185e-03 + 1.788998939681262e-03 + 1.784492541016137e-03 + 1.779996567290557e-03 + 1.775510992946437e-03 + 1.771035790955467e-03 + 1.766570935188881e-03 + 1.762116400368900e-03 + 1.757672161650980e-03 + 1.753238193179788e-03 + 1.748814468721301e-03 + 1.744400962234815e-03 + 1.739997649147064e-03 + 1.735604504535336e-03 + 1.731221502449809e-03 + 1.726848617398671e-03 + 1.722485824273258e-03 + 1.718133098140551e-03 + 1.713790413411143e-03 + 1.709457744960287e-03 + 1.705135068710917e-03 + 1.700822359316501e-03 + 1.696519591326764e-03 + 1.692226740206531e-03 + 1.687943780998710e-03 + 1.683670689031842e-03 + 1.679407440586236e-03 + 1.675154010255336e-03 + 1.670910372590760e-03 + 1.666676504276520e-03 + 1.662452380680008e-03 + 1.658237976786625e-03 + 1.654033269138933e-03 + 1.649838233189823e-03 + 1.645652843894769e-03 + 1.641477077483747e-03 + 1.637310910181093e-03 + 1.633154317979306e-03 + 1.629007276710043e-03 + 1.624869761977525e-03 + 1.620741749539434e-03 + 1.616623216289868e-03 + 1.612514138626602e-03 + 1.608414492386588e-03 + 1.604324254066237e-03 + 1.600243399893093e-03 + 1.596171905775712e-03 + 1.592109748332882e-03 + 1.588056904380057e-03 + 1.584013350591343e-03 + 1.579979063015354e-03 + 1.575954018417919e-03 + 1.571938194458784e-03 + 1.567931567017785e-03 + 1.563934112240304e-03 + 1.559945807641685e-03 + 1.555966630779868e-03 + 1.551996558434039e-03 + 1.548035566441649e-03 + 1.544083632647983e-03 + 1.540140734902817e-03 + 1.536206849423688e-03 + 1.532281953055403e-03 + 1.528366023373284e-03 + 1.524459038476067e-03 + 1.520560975283225e-03 + 1.516671810636623e-03 + 1.512791522697568e-03 + 1.508920088807869e-03 + 1.505057486015793e-03 + 1.501203692209861e-03 + 1.497358685322736e-03 + 1.493522443062933e-03 + 1.489694942724099e-03 + 1.485876162194853e-03 + 1.482066079697174e-03 + 1.478264672890618e-03 + 1.474471919644568e-03 + 1.470687798121700e-03 + 1.466912286519041e-03 + 1.463145362594138e-03 + 1.459387003990816e-03 + 1.455637189563730e-03 + 1.451895897787254e-03 + 1.448163106500405e-03 + 1.444438793947980e-03 + 1.440722938760434e-03 + 1.437015519703072e-03 + 1.433316514691718e-03 + 1.429625901910583e-03 + 1.425943660193772e-03 + 1.422269768088744e-03 + 1.418604204318803e-03 + 1.414946947952337e-03 + 1.411297977567125e-03 + 1.407657271824714e-03 + 1.404024809794961e-03 + 1.400400570139807e-03 + 1.396784531434119e-03 + 1.393176672533590e-03 + 1.389576972970703e-03 + 1.385985412235932e-03 + 1.382401969107074e-03 + 1.378826622443783e-03 + 1.375259351219489e-03 + 1.371700134514839e-03 + 1.368148952079336e-03 + 1.364605783757036e-03 + 1.361070608632290e-03 + 1.357543405835987e-03 + 1.354024154621594e-03 + 1.350512834317403e-03 + 1.347009424934256e-03 + 1.343513906652181e-03 + 1.340026258589547e-03 + 1.336546459739890e-03 + 1.333074489680093e-03 + 1.329610329681042e-03 + 1.326153959375566e-03 + 1.322705357081586e-03 + 1.319264503327096e-03 + 1.315831378649060e-03 + 1.312405962942001e-03 + 1.308988235813027e-03 + 1.305578177302038e-03 + 1.302175767936687e-03 + 1.298780987783750e-03 + 1.295393816813521e-03 + 1.292014235092867e-03 + 1.288642222828844e-03 + 1.285277760581296e-03 + 1.281920829182064e-03 + 1.278571408463430e-03 + 1.275229478684235e-03 + 1.271895021211065e-03 + 1.268568016022571e-03 + 1.265248443161927e-03 + 1.261936283866222e-03 + 1.258631518851812e-03 + 1.255334128626978e-03 + 1.252044093890807e-03 + 1.248761395151665e-03 + 1.245486013113075e-03 + 1.242217929129610e-03 + 1.238957124307338e-03 + 1.235703579418827e-03 + 1.232457274959363e-03 + 1.229218191838193e-03 + 1.225986311430220e-03 + 1.222761615473843e-03 + 1.219544084856006e-03 + 1.216333699988417e-03 + 1.213130441964228e-03 + 1.209934292565758e-03 + 1.206745233676102e-03 + 1.203563245963205e-03 + 1.200388310525061e-03 + 1.197220409053557e-03 + 1.194059523052293e-03 + 1.190905633902454e-03 + 1.187758723052301e-03 + 1.184618772531461e-03 + 1.181485763720917e-03 + 1.178359677471923e-03 + 1.175240496495629e-03 + 1.172128202790389e-03 + 1.169022777016151e-03 + 1.165924201427151e-03 + 1.162832457974330e-03 + 1.159747527667428e-03 + 1.156669393342115e-03 + 1.153598037513975e-03 + 1.150533441195656e-03 + 1.147475586343000e-03 + 1.144424455192698e-03 + 1.141380029693999e-03 + 1.138342292070108e-03 + 1.135311224784675e-03 + 1.132286810371483e-03 + 1.129269030382949e-03 + 1.126257866687504e-03 + 1.123253302806332e-03 + 1.120255320585528e-03 + 1.117263901594027e-03 + 1.114279029333705e-03 + 1.111300685926414e-03 + 1.108328853214485e-03 + 1.105363515126287e-03 + 1.102404653695880e-03 + 1.099452250276090e-03 + 1.096506289065756e-03 + 1.093566752790314e-03 + 1.090633622975802e-03 + 1.087706882683815e-03 + 1.084786514992603e-03 + 1.081872502714538e-03 + 1.078964828755093e-03 + 1.076063476054719e-03 + 1.073168427526746e-03 + 1.070279665938792e-03 + 1.067397174442816e-03 + 1.064520936417689e-03 + 1.061650934087830e-03 + 1.058787150577005e-03 + 1.055929570192933e-03 + 1.053078175257412e-03 + 1.050232948596978e-03 + 1.047393874491941e-03 + 1.044560935952646e-03 + 1.041734115621369e-03 + 1.038913396581877e-03 + 1.036098763274602e-03 + 1.033290199394467e-03 + 1.030487686748966e-03 + 1.027691209748195e-03 + 1.024900752824401e-03 + 1.022116298137994e-03 + 1.019337829638554e-03 + 1.016565331581354e-03 + 1.013798786681050e-03 + 1.011038178744547e-03 + 1.008283492069452e-03 + 1.005534710312413e-03 + 1.002791817167788e-03 + 1.000054796401326e-03 + 9.973236317525795e-04 + 9.945983071579347e-04 + 9.918788066535795e-04 + 9.891651141399331e-04 + 9.864572135795289e-04 + 9.837550890187182e-04 + 9.810587245440681e-04 + 9.783681042165289e-04 + 9.756832121036981e-04 + 9.730040324093254e-04 + 9.703305493295432e-04 + 9.676627470403841e-04 + 9.650006098016114e-04 + 9.623441219373007e-04 + 9.596932677964791e-04 + 9.570480316324495e-04 + 9.544083978205768e-04 + 9.517743508934125e-04 + 9.491458752396962e-04 + 9.465229553012878e-04 + 9.439055756501852e-04 + 9.412937207895038e-04 + 9.386873752809525e-04 + 9.360865238076440e-04 + 9.334911509791107e-04 + 9.309012414140627e-04 + 9.283167798171848e-04 + 9.257377509839119e-04 + 9.231641396993918e-04 + 9.205959306774516e-04 + 9.180331088080401e-04 + 9.154756590138127e-04 + 9.129235660962607e-04 + 9.103768149701878e-04 + 9.078353906321772e-04 + 9.052992780955343e-04 + 9.027684623946166e-04 + 9.002429285800444e-04 + 8.977226617159664e-04 + 8.952076469091944e-04 + 8.926978693026045e-04 + 8.901933140640126e-04 + 8.876939664445818e-04 + 8.851998117353022e-04 + 8.827108351548252e-04 + 8.802270219825557e-04 + 8.777483575705740e-04 + 8.752748272927118e-04 + 8.728064165680979e-04 + 8.703431108522175e-04 + 8.678848955854838e-04 + 8.654317562117358e-04 + 8.629836782258149e-04 + 8.605406473168484e-04 + 8.581026490766350e-04 + 8.556696689660546e-04 + 8.532416927295966e-04 + 8.508187061075220e-04 + 8.484006947265324e-04 + 8.459876443379812e-04 + 8.435795407180884e-04 + 8.411763696276702e-04 + 8.387781169670006e-04 + 8.363847686436173e-04 + 8.339963104952486e-04 + 8.316127284703911e-04 + 8.292340085393665e-04 + 8.268601366269382e-04 + 8.244910987818749e-04 + 8.221268810991789e-04 + 8.197674696351961e-04 + 8.174128504795555e-04 + 8.150630097863373e-04 + 8.127179337987174e-04 + 8.103776086785577e-04 + 8.080420206116735e-04 + 8.057111559859151e-04 + 8.033850010442538e-04 + 8.010635420033148e-04 + 7.987467653572807e-04 + 7.964346575211490e-04 + 7.941272048473775e-04 + 7.918243938145987e-04 + 7.895262109139402e-04 + 7.872326426395918e-04 + 7.849436755404454e-04 + 7.826592961986925e-04 + 7.803794912312032e-04 + 7.781042473133076e-04 + 7.758335511109105e-04 + 7.735673892815593e-04 + 7.713057485643111e-04 + 7.690486157536814e-04 + 7.667959776727836e-04 + 7.645478211004869e-04 + 7.623041328912646e-04 + 7.600649000053854e-04 + 7.578301093264215e-04 + 7.555997477583347e-04 + 7.533738022910566e-04 + 7.511522599897612e-04 + 7.489351079282785e-04 + 7.467223331578882e-04 + 7.445139227962291e-04 + 7.423098639775247e-04 + 7.401101438263767e-04 + 7.379147496119391e-04 + 7.357236686066337e-04 + 7.335368879604144e-04 + 7.313543950177981e-04 + 7.291761771981462e-04 + 7.270022218267318e-04 + 7.248325162821272e-04 + 7.226670479949025e-04 + 7.205058044241288e-04 + 7.183487730730944e-04 + 7.161959414766152e-04 + 7.140472971809699e-04 + 7.119028277561113e-04 + 7.097625208231147e-04 + 7.076263641063239e-04 + 7.054943452576004e-04 + 7.033664519218169e-04 + 7.012426719956601e-04 + 6.991229932510109e-04 + 6.970074033540157e-04 + 6.948958902400331e-04 + 6.927884418689321e-04 + 6.906850461485944e-04 + 6.885856909689247e-04 + 6.864903643067344e-04 + 6.843990542306164e-04 + 6.823117487354689e-04 + 6.802284359113009e-04 + 6.781491039842488e-04 + 6.760737410664455e-04 + 6.740023352773578e-04 + 6.719348748282754e-04 + 6.698713480434448e-04 + 6.678117432465053e-04 + 6.657560487034911e-04 + 6.637042527655789e-04 + 6.616563438432147e-04 + 6.596123103782944e-04 + 6.575721408025738e-04 + 6.555358236048545e-04 + 6.535033473936704e-04 + 6.514747007198682e-04 + 6.494498721244171e-04 + 6.474288502266283e-04 + 6.454116237722280e-04 + 6.433981815196293e-04 + 6.413885120963034e-04 + 6.393826043225120e-04 + 6.373804471016686e-04 + 6.353820291728463e-04 + 6.333873394523912e-04 + 6.313963669651093e-04 + 6.294091005879305e-04 + 6.274255292885601e-04 + 6.254456421348147e-04 + 6.234694281911996e-04 + 6.214968766042923e-04 + 6.195279765738893e-04 + 6.175627172048796e-04 + 6.156010877068991e-04 + 6.136430774102346e-04 + 6.116886755862946e-04 + 6.097378715435904e-04 + 6.077906546697107e-04 + 6.058470144286753e-04 + 6.039069402835228e-04 + 6.019704216802507e-04 + 6.000374481409778e-04 + 5.981080092530985e-04 + 5.961820946588096e-04 + 5.942596940083503e-04 + 5.923407969721301e-04 + 5.904253932616448e-04 + 5.885134726736782e-04 + 5.866050250202793e-04 + 5.847000400980857e-04 + 5.827985078791194e-04 + 5.809004183470366e-04 + 5.790057613579966e-04 + 5.771145269606196e-04 + 5.752267052829598e-04 + 5.733422863841403e-04 + 5.714612604000550e-04 + 5.695836175305099e-04 + 5.677093480037018e-04 + 5.658384420678564e-04 + 5.639708900266142e-04 + 5.621066823022896e-04 + 5.602458092869138e-04 + 5.583882613744714e-04 + 5.565340290827777e-04 + 5.546831029664671e-04 + 5.528354736013446e-04 + 5.509911316015094e-04 + 5.491500676402182e-04 + 5.473122724461832e-04 + 5.454777367810608e-04 + 5.436464514412940e-04 + 5.418184072613321e-04 + 5.399935951226492e-04 + 5.381720060069473e-04 + 5.363536309736959e-04 + 5.345384609776805e-04 + 5.327264870731968e-04 + 5.309177004752346e-04 + 5.291120923593077e-04 + 5.273096539494221e-04 + 5.255103765544823e-04 + 5.237142514407170e-04 + 5.219212699733492e-04 + 5.201314236865307e-04 + 5.183447040146093e-04 + 5.165611024246747e-04 + 5.147806105331874e-04 + 5.130032200114061e-04 + 5.112289225530487e-04 + 5.094577098620987e-04 + 5.076895736854020e-04 + 5.059245058583464e-04 + 5.041624983517820e-04 + 5.024035430839573e-04 + 5.006476319990773e-04 + 4.988947572035529e-04 + 4.971449107942239e-04 + 4.953980848818115e-04 + 4.936542716805855e-04 + 4.919134634956966e-04 + 4.901756526846954e-04 + 4.884408316006080e-04 + 4.867089926403434e-04 + 4.849801282731475e-04 + 4.832542310892493e-04 + 4.815312937309208e-04 + 4.798113088560132e-04 + 4.780942690954599e-04 + 4.763801672259719e-04 + 4.746689961731605e-04 + 4.729607488395965e-04 + 4.712554181333483e-04 + 4.695529970142063e-04 + 4.678534786182833e-04 + 4.661568561056742e-04 + 4.644631226216267e-04 + 4.627722714285577e-04 + 4.610842958399921e-04 + 4.593991892076899e-04 + 4.577169450300335e-04 + 4.560375568336446e-04 + 4.543610181249096e-04 + 4.526873225594637e-04 + 4.510164638467393e-04 + 4.493484356950898e-04 + 4.476832319569833e-04 + 4.460208465382815e-04 + 4.443612733350173e-04 + 4.427045064285867e-04 + 4.410505399510805e-04 + 4.393993679504339e-04 + 4.377509846774214e-04 + 4.361053844834223e-04 + 4.344625616662297e-04 + 4.328225106365193e-04 + 4.311852259097922e-04 + 4.295507020701359e-04 + 4.279189337521271e-04 + 4.262899156467061e-04 + 4.246636425301464e-04 + 4.230401092565931e-04 + 4.214193107478168e-04 + 4.198012419839599e-04 + 4.181858979868060e-04 + 4.165732738692198e-04 + 4.149633649793705e-04 + 4.133561665739344e-04 + 4.117516738453971e-04 + 4.101498823326724e-04 + 4.085507876181731e-04 + 4.069543852399522e-04 + 4.053606707914893e-04 + 4.037696400086752e-04 + 4.021812887746215e-04 + 4.005956129436248e-04 + 3.990126084760660e-04 + 3.974322714846641e-04 + 3.958545980293214e-04 + 3.942795842513983e-04 + 3.927072264688036e-04 + 3.911375211195356e-04 + 3.895704646516968e-04 + 3.880060534869329e-04 + 3.864442842922655e-04 + 3.848851538066537e-04 + 3.833286587063809e-04 + 3.817747958651508e-04 + 3.802235622593628e-04 + 3.786749548688228e-04 + 3.771289708205180e-04 + 3.755856073392733e-04 + 3.740448616816441e-04 + 3.725067311649692e-04 + 3.709712132043737e-04 + 3.694383053790672e-04 + 3.679080053579325e-04 + 3.663803108503057e-04 + 3.648552195606523e-04 + 3.633327293646475e-04 + 3.618128382932607e-04 + 3.602955444344858e-04 + 3.587808459078391e-04 + 3.572687408998931e-04 + 3.557592277792442e-04 + 3.542523049927096e-04 + 3.527479710408145e-04 + 3.512462245019904e-04 + 3.497470640500036e-04 + 3.482504884770882e-04 + 3.467564967437580e-04 + 3.452650877985240e-04 + 3.437762605764859e-04 + 3.422900143250168e-04 + 3.408063483640538e-04 + 3.393252619896345e-04 + 3.378467546103840e-04 + 3.363708257653936e-04 + 3.348974751341996e-04 + 3.334267024660963e-04 + 3.319585075646510e-04 + 3.304928903038992e-04 + 3.290298507212495e-04 + 3.275693889604049e-04 + 3.261115052402690e-04 + 3.246561999078441e-04 + 3.232034733603981e-04 + 3.217533259984899e-04 + 3.203057585048498e-04 + 3.188607716794152e-04 + 3.174183662346357e-04 + 3.159785430822741e-04 + 3.145413032833238e-04 + 3.131066479369465e-04 + 3.116745782136557e-04 + 3.102450954058189e-04 + 3.088182010197684e-04 + 3.073938965650610e-04 + 3.059721835802734e-04 + 3.045530637916020e-04 + 3.031365390386899e-04 + 3.017226112552691e-04 + 3.003112824793533e-04 + 2.989025548234045e-04 + 2.974964304955006e-04 + 2.960929118913988e-04 + 2.946920014422941e-04 + 2.932937016150965e-04 + 2.918980151023185e-04 + 2.905049446767149e-04 + 2.891144931550728e-04 + 2.877266634923031e-04 + 2.863414587568181e-04 + 2.849588821248430e-04 + 2.835789368717610e-04 + 2.822016263526234e-04 + 2.808269540128114e-04 + 2.794549234525530e-04 + 2.780855383858511e-04 + 2.767188026160350e-04 + 2.753547199733251e-04 + 2.739932944362576e-04 + 2.726345302253411e-04 + 2.712784314751994e-04 + 2.699250024118205e-04 + 2.685742475595017e-04 + 2.672261714415124e-04 + 2.658807786371782e-04 + 2.645380739000219e-04 + 2.631980619957597e-04 + 2.618607478073471e-04 + 2.605261365239288e-04 + 2.591942332540738e-04 + 2.578650431168888e-04 + 2.565385715181067e-04 + 2.552148239188000e-04 + 2.538938058269625e-04 + 2.525755228940477e-04 + 2.512599808919393e-04 + 2.499471856899045e-04 + 2.486371432244064e-04 + 2.473298595107682e-04 + 2.460253406646765e-04 + 2.447235929605613e-04 + 2.434246227773826e-04 + 2.421284365723855e-04 + 2.408350408491505e-04 + 2.395444422583646e-04 + 2.382566475978551e-04 + 2.369716636126905e-04 + 2.356894972066169e-04 + 2.344101555067014e-04 + 2.331336455922197e-04 + 2.318599746393059e-04 + 2.305891500038487e-04 + 2.293211790903458e-04 + 2.280560693749351e-04 + 2.267938284406659e-04 + 2.255344639796373e-04 + 2.242779837481179e-04 + 2.230243955584571e-04 + 2.217737074088738e-04 + 2.205259273750273e-04 + 2.192810635194828e-04 + 2.180391240377155e-04 + 2.168001172473318e-04 + 2.155640515683406e-04 + 2.143309354202995e-04 + 2.131007772856537e-04 + 2.118735858306198e-04 + 2.106493698084787e-04 + 2.094281380089542e-04 + 2.082098992208740e-04 + 2.069946624015073e-04 + 2.057824366286796e-04 + 2.045732309577213e-04 + 2.033670545521807e-04 + 2.021639166762670e-04 + 2.009638266139778e-04 + 1.997667937615743e-04 + 1.985728276099416e-04 + 1.973819376249420e-04 + 1.961941334186818e-04 + 1.950094247288422e-04 + 1.938278211445808e-04 + 1.926493324216112e-04 + 1.914739685443153e-04 + 1.903017394244089e-04 + 1.891326549660665e-04 + 1.879667251315557e-04 + 1.868039600691931e-04 + 1.856443699312781e-04 + 1.844879648170397e-04 + 1.833347550402995e-04 + 1.821847509305592e-04 + 1.810379627269367e-04 + 1.798944008330572e-04 + 1.787540757117569e-04 + 1.776169978023503e-04 + 1.764831776083264e-04 + 1.753526257075039e-04 + 1.742253527510645e-04 + 1.731013693254543e-04 + 1.719806860311682e-04 + 1.708633135911149e-04 + 1.697492627671219e-04 + 1.686385443331759e-04 + 1.675311690584120e-04 + 1.664271477052953e-04 + 1.653264910845736e-04 + 1.642292101438652e-04 + 1.631353157524277e-04 + 1.620448187436031e-04 + 1.609577300754615e-04 + 1.598740606888992e-04 + 1.587938214812250e-04 + 1.577170233258566e-04 + 1.566436772168694e-04 + 1.555737942159133e-04 + 1.545073851968179e-04 + 1.534444610998845e-04 + 1.523850329588589e-04 + 1.513291117056277e-04 + 1.502767082718022e-04 + 1.492278336091406e-04 + 1.481824986061289e-04 + 1.471407142013266e-04 + 1.461024913960903e-04 + 1.450678410475480e-04 + 1.440367739871709e-04 + 1.430093010797408e-04 + 1.419854331666308e-04 + 1.409651810501559e-04 + 1.399485554884026e-04 + 1.389355672434459e-04 + 1.379262270311977e-04 + 1.369205454852166e-04 + 1.359185332657421e-04 + 1.349202010239166e-04 + 1.339255593445051e-04 + 1.329346186642912e-04 + 1.319473893926901e-04 + 1.309638820305585e-04 + 1.299841069283569e-04 + 1.290080743627276e-04 + 1.280357946577360e-04 + 1.270672779908064e-04 + 1.261025344295187e-04 + 1.251415740258344e-04 + 1.241844068414831e-04 + 1.232310428585276e-04 + 1.222814917974582e-04 + 1.213357634573326e-04 + 1.203938676644921e-04 + 1.194558139769228e-04 + 1.185216119071049e-04 + 1.175912709437735e-04 + 1.166648004395201e-04 + 1.157422096820540e-04 + 1.148235078941047e-04 + 1.139087041565015e-04 + 1.129978074560730e-04 + 1.120908266963163e-04 + 1.111877706801771e-04 + 1.102886481165339e-04 + 1.093934676008822e-04 + 1.085022375478793e-04 + 1.076149663238430e-04 + 1.067316622735248e-04 + 1.058523335072715e-04 + 1.049769880021785e-04 + 1.041056336506420e-04 + 1.032382782134568e-04 + 1.023749293560659e-04 + 1.015155946454073e-04 + 1.006602814254268e-04 + 9.980899691604087e-05 + 9.896174827822380e-05 + 9.811854249648769e-05 + 9.727938640362722e-05 + 9.644428669167931e-05 + 9.561324990949941e-05 + 9.478628247235907e-05 + 9.396339064407664e-05 + 9.314458052650697e-05 + 9.232985807344924e-05 + 9.151922908266137e-05 + 9.071269919463392e-05 + 8.991027389908417e-05 + 8.911195851702552e-05 + 8.831775819982511e-05 + 8.752767793866873e-05 + 8.674172256023528e-05 + 8.595989672073575e-05 + 8.518220490590348e-05 + 8.440865141920385e-05 + 8.363924039733809e-05 + 8.287397580722622e-05 + 8.211286142104977e-05 + 8.135590084051729e-05 + 8.060309749193613e-05 + 7.985445459658365e-05 + 7.910997520302950e-05 + 7.836966218298747e-05 + 7.763351820320998e-05 + 7.690154574559998e-05 + 7.617374709914362e-05 + 7.545012436145964e-05 + 7.473067944430294e-05 + 7.401541405207780e-05 + 7.330432968888297e-05 + 7.259742767376570e-05 + 7.189470911942744e-05 + 7.119617492698978e-05 + 7.050182580949816e-05 + 6.981166227552030e-05 + 6.912568461899398e-05 + 6.844389294104750e-05 + 6.776628713300132e-05 + 6.709286687130013e-05 + 6.642363163388969e-05 + 6.575858067871575e-05 + 6.509771305493562e-05 + 6.444102761503343e-05 + 6.378852298738557e-05 + 6.314019758583242e-05 + 6.249604962295056e-05 + 6.185607708979005e-05 + 6.122027775903875e-05 + 6.058864919749181e-05 + 5.996118875684596e-05 + 5.933789356597989e-05 + 5.871876053888907e-05 + 5.810378637807827e-05 + 5.749296757228591e-05 + 5.688630039241354e-05 + 5.628378087841946e-05 + 5.568540486517338e-05 + 5.509116797959273e-05 + 5.450106561933422e-05 + 5.391509296529475e-05 + 5.333324497665832e-05 + 5.275551640753726e-05 + 5.218190179953343e-05 + 5.161239545977182e-05 + 5.104699148146081e-05 + 5.048568375913861e-05 + 4.992846596763329e-05 + 4.937533154817934e-05 + 4.882627374147808e-05 + 4.828128557792042e-05 + 4.774035986717692e-05 + 4.720348921279551e-05 + 4.667066599018748e-05 + 4.614188237688400e-05 + 4.561713035194944e-05 + 4.509640165438987e-05 + 4.457968783032909e-05 + 4.406698023190481e-05 + 4.355826996891768e-05 + 4.305354796420506e-05 + 4.255280495560636e-05 + 4.205603144616347e-05 + 4.156321774032957e-05 + 4.107435395613752e-05 + 4.058942999665175e-05 + 4.010843556869507e-05 + 3.963136019085871e-05 + 3.915819316952545e-05 + 3.868892361719641e-05 + 3.822354046226270e-05 + 3.776203244031561e-05 + 3.730438809005640e-05 + 3.685059575689182e-05 + 3.640064360230198e-05 + 3.595451960373741e-05 + 3.551221155134442e-05 + 3.507370705450421e-05 + 3.463899354241650e-05 + 3.420805825588243e-05 + 3.378088825986720e-05 + 3.335747045272196e-05 + 3.293779155463552e-05 + 3.252183811026268e-05 + 3.210959649877579e-05 + 3.170105292073684e-05 + 3.129619341367949e-05 + 3.089500386055728e-05 + 3.049746997239612e-05 + 3.010357730585059e-05 + 2.971331126487755e-05 + 2.932665707619367e-05 + 2.894359982344077e-05 + 2.856412445132613e-05 + 2.818821573877814e-05 + 2.781585831987375e-05 + 2.744703669454755e-05 + 2.708173520948728e-05 + 2.671993807124836e-05 + 2.636162935767626e-05 + 2.600679300301263e-05 + 2.565541280257304e-05 + 2.530747242805460e-05 + 2.496295542635910e-05 + 2.462184521206604e-05 + 2.428412507785163e-05 + 2.394977819771233e-05 + 2.361878762181457e-05 + 2.329113628448998e-05 + 2.296680701293541e-05 + 2.264578251757474e-05 + 2.232804539557172e-05 + 2.201357814530585e-05 + 2.170236315904943e-05 + 2.139438272306276e-05 + 2.108961903561866e-05 + 2.078805419745760e-05 + 2.048967020582218e-05 + 2.019444897050880e-05 + 1.990237231614296e-05 + 1.961342197777572e-05 + 1.932757961462368e-05 + 1.904482680353188e-05 + 1.876514502948172e-05 + 1.848851571515060e-05 + 1.821492021640795e-05 + 1.794433980831370e-05 + 1.767675569461099e-05 + 1.741214902258527e-05 + 1.715050088166273e-05 + 1.689179228451716e-05 + 1.663600419203502e-05 + 1.638311752659296e-05 + 1.613311314360082e-05 + 1.588597184706167e-05 + 1.564167440067926e-05 + 1.540020151829502e-05 + 1.516153387453479e-05 + 1.492565211244357e-05 + 1.469253682958783e-05 + 1.446216858599219e-05 + 1.423452791421707e-05 + 1.400959531801727e-05 + 1.378735127470914e-05 + 1.356777623611474e-05 + 1.335085063337062e-05 + 1.313655487876277e-05 + 1.292486936494610e-05 + 1.271577446639333e-05 + 1.250925054517824e-05 + 1.230527796605363e-05 + 1.210383708165599e-05 + 1.190490823144681e-05 + 1.170847175649016e-05 + 1.151450799717159e-05 + 1.132299729345123e-05 + 1.113391999104486e-05 + 1.094725644586371e-05 + 1.076298702423590e-05 + 1.058109209097755e-05 + 1.040155202830912e-05 + 1.022434724511555e-05 + 1.004945815519835e-05 + 9.876865191434875e-06 + 9.706548817576976e-06 + 9.538489515829050e-06 + 9.372667791395497e-06 + 9.209064181113714e-06 + 9.047659251528417e-06 + 8.888433598428113e-06 + 8.731367852817854e-06 + 8.576442682615395e-06 + 8.423638791088146e-06 + 8.272936922653283e-06 + 8.124317863654203e-06 + 7.977762440936675e-06 + 7.833251528895281e-06 + 7.690766049713759e-06 + 7.550286971453687e-06 + 7.411795314787993e-06 + 7.275272152381047e-06 + 7.140698608042407e-06 + 7.008055865069554e-06 + 6.877325162999093e-06 + 6.748487797069182e-06 + 6.621525126924672e-06 + 6.496418573295794e-06 + 6.373149617974847e-06 + 6.251699810845691e-06 + 6.132050767139283e-06 + 6.014184168887862e-06 + 5.898081770597224e-06 + 5.783725394973654e-06 + 5.671096936050662e-06 + 5.560178365641361e-06 + 5.450951726966341e-06 + 5.343399138917566e-06 + 5.237502802602254e-06 + 5.133244993336976e-06 + 5.030608065950253e-06 + 4.929574461382145e-06 + 4.830126698086031e-06 + 4.732247378331277e-06 + 4.635919192753656e-06 + 4.541124912789582e-06 + 4.447847398958468e-06 + 4.356069602328335e-06 + 4.265774557056776e-06 + 4.176945389932598e-06 + 4.089565320281935e-06 + 4.003617653697645e-06 + 3.919085793399028e-06 + 3.835953236362346e-06 + 3.754203567594348e-06 + 3.673820472678765e-06 + 3.594787733829004e-06 + 3.517089224074456e-06 + 3.440708918621393e-06 + 3.365630891050476e-06 + 3.291839308866544e-06 + 3.219318444550688e-06 + 3.148052669614368e-06 + 3.078026451876596e-06 + 3.009224366838337e-06 + 2.941631088840265e-06 + 2.875231390541817e-06 + 2.810010156134118e-06 + 2.745952369256776e-06 + 2.683043113446972e-06 + 2.621267584374269e-06 + 2.560611078236376e-06 + 2.501058994098514e-06 + 2.442596843868032e-06 + 2.385210240033010e-06 + 2.328884899906223e-06 + 2.273606655048426e-06 + 2.219361438179688e-06 + 2.166135288678882e-06 + 2.113914360085187e-06 + 2.062684907096663e-06 + 2.012433292648363e-06 + 1.963145994708785e-06 + 1.914809593193956e-06 + 1.867410777738679e-06 + 1.820936351687259e-06 + 1.775373220609589e-06 + 1.730708401732302e-06 + 1.686929024947410e-06 + 1.644022323067757e-06 + 1.601975642837270e-06 + 1.560776441656341e-06 + 1.520412279298016e-06 + 1.480870830315665e-06 + 1.442139880698395e-06 + 1.404207319625165e-06 + 1.367061149777226e-06 + 1.330689483155573e-06 + 1.295080535963615e-06 + 1.260222640873472e-06 + 1.226104237141460e-06 + 1.192713867093549e-06 + 1.160040189500492e-06 + 1.128071969424555e-06 + 1.096798076008267e-06 + 1.066207493417804e-06 + 1.036289310659725e-06 + 1.007032721493895e-06 + 9.784270338592895e-07 + 9.504616588874799e-07 + 9.231261128777845e-07 + 8.964100256766087e-07 + 8.703031286825232e-07 + 8.447952585150839e-07 + 8.198763641874936e-07 + 7.955364948286083e-07 + 7.717658049346632e-07 + 7.485545598914059e-07 + 7.258931238786546e-07 + 7.037719665410901e-07 + 6.821816664988581e-07 + 6.611128998791421e-07 + 6.405564483055948e-07 + 6.205032003278225e-07 + 6.009441408121614e-07 + 5.818703600152187e-07 + 5.632730528626383e-07 + 5.451435094097432e-07 + 5.274731247677268e-07 + 5.102533965000488e-07 + 4.934759162480692e-07 + 4.771323800991179e-07 + 4.612145841662162e-07 + 4.457144176881476e-07 + 4.306238737382497e-07 + 4.159350428538716e-07 + 4.016401077051372e-07 + 3.877313539402903e-07 + 3.742011622647174e-07 + 3.610420046499709e-07 + 3.482464547968944e-07 + 3.358071790150475e-07 + 3.237169340794661e-07 + 3.119685770955318e-07 + 3.005550554375413e-07 + 2.894694062090586e-07 + 2.787047650882795e-07 + 2.682543557659438e-07 + 2.581114909968296e-07 + 2.482695801165890e-07 + 2.387221182727572e-07 + 2.294626890008751e-07 + 2.204849703818711e-07 + 2.117827241548630e-07 + 2.033497996067267e-07 + 1.951801384624956e-07 + 1.872677641420447e-07 + 1.796067867093452e-07 + 1.721914062527642e-07 + 1.650159027896018e-07 + 1.580746421942365e-07 + 1.513620776690125e-07 + 1.448727406655565e-07 + 1.386012477684331e-07 + 1.325423000867771e-07 + 1.266906752868051e-07 + 1.210412352836648e-07 + 1.155889239131470e-07 + 1.103287600176973e-07 + 1.052558455547364e-07 + 1.003653617115032e-07 + 9.565256321109978e-08 + 9.111278671292873e-08 + 8.674144556415159e-08 + 8.253402527034383e-08 + 7.848609177536523e-08 + 7.459328520671134e-08 + 7.085131661573615e-08 + 6.725597593242166e-08 + 6.380312478868793e-08 + 6.048869454868003e-08 + 5.730869376312298e-08 + 5.425920030057914e-08 + 5.133636064443935e-08 + 4.853639660958214e-08 + 4.585559704969457e-08 + 4.329031836991616e-08 + 4.083699031045398e-08 + 3.849210751108346e-08 + 3.625223113812888e-08 + 3.411399355038575e-08 + 3.207408998824199e-08 + 3.012928121511996e-08 + 2.827639696078167e-08 + 2.651232793166280e-08 + 2.483402934338396e-08 + 2.323852311474514e-08 + 2.172289034680298e-08 + 2.028427559044146e-08 + 1.891988778877689e-08 + 1.762699339728036e-08 + 1.640292125402531e-08 + 1.524506224991720e-08 + 1.415086320949184e-08 + 1.311783222446413e-08 + 1.214353712508316e-08 + 1.122560019257377e-08 + 1.036170378687137e-08 + 9.549587722603005e-09 + 8.787044877843281e-09 + 8.071926961605364e-09 + 7.402140903161946e-09 + 6.775645388472587e-09 + 6.190456604129221e-09 + 5.644643792323680e-09 + 5.136326726146161e-09 + 4.663681262833891e-09 + 4.224934232596794e-09 + 3.818361845837701e-09 + 3.442294891302550e-09 + 3.095113141246544e-09 + 2.775244665814773e-09 + 2.481170514027403e-09 + 2.211418834557044e-09 + 1.964565051498559e-09 + 1.739235878927056e-09 + 1.534103359980556e-09 + 1.347885831336700e-09 + 1.179351163642234e-09 + 1.027310894648576e-09 + 8.906218977827446e-10 + 7.681887799049897e-10 + 6.589582548472836e-10 + 5.619214238374888e-10 + 4.761152985830568e-10 + 4.006175343477256e-10 + 3.345492227248809e-10 + 2.770755362128679e-10 + 2.274009179016229e-10 + 1.847722840116674e-10 + 1.484788129161787e-10 + 1.178476648704315e-10 + 9.224748788184573e-11 + 7.108739902161543e-11 + 5.381328706422649e-11 + 3.991151299277479e-11 + 2.890715266694438e-11 + 2.036091648096713e-11 + 1.387293445657948e-11 + 9.080348320515963e-12 + 5.654863833225597e-12 + 3.306507674167889e-12 + 1.780689492983021e-12 + 8.563646514161430e-13 + 3.496037276049943e-13 + 1.104943293034196e-13 + 2.161027650041889e-14 + 5.028049336448720e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 7.485272593961791e+04 + 1.493519318697679e+05 + 2.234970831294996e+05 + 2.972876533345640e+05 + 3.707231243774131e+05 + 4.438029864272003e+05 + 5.165267379297798e+05 + 5.888938856077072e+05 + 6.609039444602393e+05 + 7.325564377633340e+05 + 8.038508970696502e+05 + 8.747868622085482e+05 + 9.453638812860892e+05 + 1.015581510685036e+06 + 1.085439315064852e+06 + 1.154936867361703e+06 + 1.224073748788454e+06 + 1.292849548834672e+06 + 1.361263865266626e+06 + 1.429316304127287e+06 + 1.497006479736322e+06 + 1.564334014690106e+06 + 1.631298539861710e+06 + 1.697899694400910e+06 + 1.764137125734180e+06 + 1.830010489564698e+06 + 1.895519449872339e+06 + 1.960663678913685e+06 + 2.025442857222013e+06 + 2.089856673607306e+06 + 2.153904825156247e+06 + 2.217587017232217e+06 + 2.280902963475303e+06 + 2.343852385802290e+06 + 2.406435014406665e+06 + 2.468650587758616e+06 + 2.530498852605031e+06 + 2.591979563969503e+06 + 2.653092485152322e+06 + 2.713837387730482e+06 + 2.774214051557675e+06 + 2.834222264764299e+06 + 2.893861823757447e+06 + 2.953132533220919e+06 + 3.012034206115212e+06 + 3.070566663677527e+06 + 3.128729735421764e+06 + 3.186523259138526e+06 + 3.243947080895115e+06 + 3.301001055035538e+06 + 3.357685044180497e+06 + 3.413998919227402e+06 + 3.469942559350358e+06 + 3.525515852000176e+06 + 3.580718692904367e+06 + 3.635550986067140e+06 + 3.690012643769410e+06 + 3.744103586568788e+06 + 3.797823743299592e+06 + 3.851173051072835e+06 + 3.904151455276238e+06 + 3.956758909574216e+06 + 4.008995375907890e+06 + 4.060860824495079e+06 + 4.112355233830309e+06 + 4.163478590684799e+06 + 4.214230890106475e+06 + 4.264612135419963e+06 + 4.314622338226588e+06 + 4.364261518404378e+06 + 4.413529704108060e+06 + 4.462426931769069e+06 + 4.510953246095533e+06 + 4.559108700072286e+06 + 4.606893354960858e+06 + 4.654307280299488e+06 + 4.701350553903108e+06 + 4.748023261863358e+06 + 4.794325498548575e+06 + 4.840257366603798e+06 + 4.885818976950768e+06 + 4.931010448787929e+06 + 4.975831909590418e+06 + 5.020283495110085e+06 + 5.064365349375471e+06 + 5.108077624691823e+06 + 5.151420481641092e+06 + 5.194394089081923e+06 + 5.236998624149668e+06 + 5.279234272256376e+06 + 5.321101227090800e+06 + 5.362599690618395e+06 + 5.403729873081312e+06 + 5.444491992998408e+06 + 5.484886277165242e+06 + 5.524912960654069e+06 + 5.564572286813851e+06 + 5.603864507270245e+06 + 5.642789881925615e+06 + 5.681348678959022e+06 + 5.719541174826232e+06 + 5.757367654259708e+06 + 5.794828410268617e+06 + 5.831923744138825e+06 + 5.868653965432902e+06 + 5.905019391990117e+06 + 5.941020349926441e+06 + 5.976657173634544e+06 + 6.011930205783804e+06 + 6.046839797320290e+06 + 6.081386307466779e+06 + 6.115570103722748e+06 + 6.149391561864376e+06 + 6.182851065944540e+06 + 6.215949008292822e+06 + 6.248685789515501e+06 + 6.281061818495561e+06 + 6.313077512392686e+06 + 6.344733296643257e+06 + 6.376029604960365e+06 + 6.406966879333793e+06 + 6.437545570030033e+06 + 6.467766135592271e+06 + 6.497629042840399e+06 + 6.527134766871008e+06 + 6.556283791057392e+06 + 6.585076607049545e+06 + 6.613513714774162e+06 + 6.641595622434638e+06 + 6.669322846511072e+06 + 6.696695911760264e+06 + 6.723715351215711e+06 + 6.750381706187615e+06 + 6.776695526262878e+06 + 6.802657369305105e+06 + 6.828267801454599e+06 + 6.853527397128366e+06 + 6.878436739020114e+06 + 6.902996418100249e+06 + 6.927207033615881e+06 + 6.951069193090819e+06 + 6.974583512325577e+06 + 6.997750615397365e+06 + 7.020571134660101e+06 + 7.043045710744397e+06 + 7.065174992557568e+06 + 7.086959637283633e+06 + 7.108400310383311e+06 + 7.129497685594021e+06 + 7.150252444929884e+06 + 7.170665278681723e+06 + 7.190736885417059e+06 + 7.210467971980117e+06 + 7.229859253491821e+06 + 7.248911453349800e+06 + 7.267625303228384e+06 + 7.286001543078595e+06 + 7.304040921128170e+06 + 7.321744193881537e+06 + 7.339112126119829e+06 + 7.356145490900878e+06 + 7.372845069559221e+06 + 7.389211651706094e+06 + 7.405246035229432e+06 + 7.420949026293878e+06 + 7.436321439340766e+06 + 7.451364097088138e+06 + 7.466077830530737e+06 + 7.480463478940005e+06 + 7.494521889864086e+06 + 7.508253919127826e+06 + 7.521660430832772e+06 + 7.534742297357169e+06 + 7.547500399355968e+06 + 7.559935625760819e+06 + 7.572048873780073e+06 + 7.583841048898782e+06 + 7.595313064878696e+06 + 7.606465843758276e+06 + 7.617300315852673e+06 + 7.627817419753745e+06 + 7.638018102330050e+06 + 7.647903318726848e+06 + 7.657474032366097e+06 + 7.666731214946462e+06 + 7.675675846443305e+06 + 7.684308915108687e+06 + 7.692631417471377e+06 + 7.700644358336839e+06 + 7.708348750787240e+06 + 7.715745616181449e+06 + 7.722835984155037e+06 + 7.729620892620270e+06 + 7.736101387766127e+06 + 7.742278524058277e+06 + 7.748153364239094e+06 + 7.753726979327655e+06 + 7.759000448619737e+06 + 7.763974859687817e+06 + 7.768651308381077e+06 + 7.773030898825390e+06 + 7.777114743423343e+06 + 7.780903962854218e+06 + 7.784399686073998e+06 + 7.787603050315368e+06 + 7.790515201087713e+06 + 7.793137292177119e+06 + 7.795470485646380e+06 + 7.797515951834979e+06 + 7.799274869359110e+06 + 7.800748425111664e+06 + 7.801937814262233e+06 + 7.802844240257111e+06 + 7.803468914819297e+06 + 7.803813057948484e+06 + 7.803877897921070e+06 + 7.803664671290156e+06 + 7.803174622885538e+06 + 7.802409005813722e+06 + 7.801369081457905e+06 + 7.800056119477995e+06 + 7.798471397810592e+06 + 7.796616202669007e+06 + 7.794491828543244e+06 + 7.792099578200010e+06 + 7.789440762682715e+06 + 7.786516701311473e+06 + 7.783328721683091e+06 + 7.779878159671083e+06 + 7.776166359425665e+06 + 7.772194673373749e+06 + 7.767964462218953e+06 + 7.763477094941595e+06 + 7.758733948798692e+06 + 7.753736409323964e+06 + 7.748485870327833e+06 + 7.742983733897421e+06 + 7.737231410396548e+06 + 7.731230318465743e+06 + 7.724981885022229e+06 + 7.718487545259933e+06 + 7.711748742649483e+06 + 7.704766928938209e+06 + 7.697543564150140e+06 + 7.690080116586007e+06 + 7.682378062823243e+06 + 7.674438887715982e+06 + 7.666264084395060e+06 + 7.657855154268012e+06 + 7.649213607019073e+06 + 7.640340960609185e+06 + 7.631238741275986e+06 + 7.621908483533815e+06 + 7.612351730173716e+06 + 7.602570032263434e+06 + 7.592564949147409e+06 + 7.582338048446788e+06 + 7.571890906059416e+06 + 7.561225106159844e+06 + 7.550342241199316e+06 + 7.539243911905785e+06 + 7.527931727283904e+06 + 7.516407304615024e+06 + 7.504672269457198e+06 + 7.492728241314434e+06 + 7.480576638153253e+06 + 7.468218723741564e+06 + 7.455655760425863e+06 + 7.442889013018662e+06 + 7.429919748798485e+06 + 7.416749237509867e+06 + 7.403378751363355e+06 + 7.389809565035504e+06 + 7.376042955668893e+06 + 7.362080202872100e+06 + 7.347922588719724e+06 + 7.333571397752370e+06 + 7.319027916976659e+06 + 7.304293435865226e+06 + 7.289369246356713e+06 + 7.274256642855777e+06 + 7.258956922233087e+06 + 7.243471383825325e+06 + 7.227801329435183e+06 + 7.211948063331366e+06 + 7.195912892248592e+06 + 7.179697125387593e+06 + 7.163302074415106e+06 + 7.146729053463890e+06 + 7.129979379132709e+06 + 7.113054370486340e+06 + 7.095955349055575e+06 + 7.078683638837219e+06 + 7.061240566294081e+06 + 7.043627460354994e+06 + 7.025845652414794e+06 + 7.007896476334333e+06 + 6.989781268440476e+06 + 6.971501367526096e+06 + 6.953058114850082e+06 + 6.934452854137335e+06 + 6.915686931578767e+06 + 6.896761695831302e+06 + 6.877678498017876e+06 + 6.858438691727439e+06 + 6.839043633014950e+06 + 6.819494680401385e+06 + 6.799793194873727e+06 + 6.779940539884974e+06 + 6.759938081354136e+06 + 6.739787187666233e+06 + 6.719489229672301e+06 + 6.699045580689385e+06 + 6.678457616500544e+06 + 6.657726715354848e+06 + 6.636854257967380e+06 + 6.615841627519235e+06 + 6.594690209657516e+06 + 6.573401392495350e+06 + 6.551976566611862e+06 + 6.530417125052197e+06 + 6.508724463327511e+06 + 6.486899979414972e+06 + 6.464945073757762e+06 + 6.442861149265066e+06 + 6.420649611312096e+06 + 6.398311867740063e+06 + 6.375849328856199e+06 + 6.353263407433745e+06 + 6.330555518711952e+06 + 6.307727080396090e+06 + 6.284779512657427e+06 + 6.261714238133261e+06 + 6.238532681926889e+06 + 6.215236271607627e+06 + 6.191826437210800e+06 + 6.168304611237747e+06 + 6.144672228655818e+06 + 6.120930726898375e+06 + 6.097081545864792e+06 + 6.073126127920459e+06 + 6.049065917896771e+06 + 6.024902363091142e+06 + 6.000636913266994e+06 + 5.976271020653763e+06 + 5.951806139946896e+06 + 5.927243728307854e+06 + 5.902585245364108e+06 + 5.877832153209144e+06 + 5.852985916402456e+06 + 5.828048001969552e+06 + 5.803019879401957e+06 + 5.777903020657199e+06 + 5.752698900158828e+06 + 5.727408994796395e+06 + 5.702034783925475e+06 + 5.676577749367647e+06 + 5.651039375410506e+06 + 5.625421148807654e+06 + 5.599724558778713e+06 + 5.573951097009313e+06 + 5.548102257651095e+06 + 5.522179537321717e+06 + 5.496184435104840e+06 + 5.470118452550147e+06 + 5.443983093673326e+06 + 5.417779864956085e+06 + 5.391510275346133e+06 + 5.365175836257203e+06 + 5.338778061569033e+06 + 5.312318467627374e+06 + 5.285798573243992e+06 + 5.259219899696662e+06 + 5.232583970729172e+06 + 5.205892312551324e+06 + 5.179146453838928e+06 + 5.152347925733812e+06 + 5.125498261843814e+06 + 5.098598998242779e+06 + 5.071651673470572e+06 + 5.044657828533064e+06 + 5.017619006902143e+06 + 4.990536754515706e+06 + 4.963412619777663e+06 + 4.936248153557934e+06 + 4.909044909192459e+06 + 4.881804442483181e+06 + 4.854528311698059e+06 + 4.827218077571064e+06 + 4.799875303302180e+06 + 4.772501554557402e+06 + 4.745098399468737e+06 + 4.717667408634203e+06 + 4.690210155117837e+06 + 4.662728214449679e+06 + 4.635223164625784e+06 + 4.607696586108224e+06 + 4.580150061825077e+06 + 4.552585177170437e+06 + 4.525003520004408e+06 + 4.497406680653105e+06 + 4.469796251908661e+06 + 4.442173829029216e+06 + 4.414541009738924e+06 + 4.386899394227949e+06 + 4.359250585152469e+06 + 4.331596187634676e+06 + 4.303937809262771e+06 + 4.276277060090966e+06 + 4.248615552639492e+06 + 4.220954901894585e+06 + 4.193296725308497e+06 + 4.165642642799490e+06 + 4.137994276751838e+06 + 4.110353252015833e+06 + 4.082721195907769e+06 + 4.055099738209962e+06 + 4.027490511170732e+06 + 3.999895149504419e+06 + 3.972315290391369e+06 + 3.944752573477943e+06 + 3.917208640876513e+06 + 3.889685137165464e+06 + 3.862183709389194e+06 + 3.834706007058111e+06 + 3.807253682148634e+06 + 3.779828389103201e+06 + 3.752431784830255e+06 + 3.725065528704253e+06 + 3.697731282565667e+06 + 3.670430710720977e+06 + 3.643165479942679e+06 + 3.615937259469279e+06 + 3.588747721005293e+06 + 3.561598538721256e+06 + 3.534491389253709e+06 + 3.507427951705208e+06 + 3.480409907644318e+06 + 3.453438941105620e+06 + 3.426516738589706e+06 + 3.399644989063177e+06 + 3.372825383958653e+06 + 3.346070405300663e+06 + 3.319465764034668e+06 + 3.293075510459727e+06 + 3.266878224028187e+06 + 3.240869303162930e+06 + 3.215052515525467e+06 + 3.189425288821125e+06 + 3.163986116962672e+06 + 3.138734196986282e+06 + 3.113668261011591e+06 + 3.088787111422079e+06 + 3.064089610843659e+06 + 3.039574592322599e+06 + 3.015240898358055e+06 + 2.991087379108502e+06 + 2.967112887579310e+06 + 2.943316282301805e+06 + 2.919696425519270e+06 + 2.896252185185970e+06 + 2.872982434032476e+06 + 2.849886048305633e+06 + 2.826961910405915e+06 + 2.804208907130155e+06 + 2.781625929123051e+06 + 2.759211873644148e+06 + 2.736965641930875e+06 + 2.714886139213983e+06 + 2.692972277509980e+06 + 2.671222972611625e+06 + 2.649637144535781e+06 + 2.628213719738566e+06 + 2.606951628696007e+06 + 2.585849806893141e+06 + 2.564907195391811e+06 + 2.544122739173453e+06 + 2.523495389008342e+06 + 2.503024101022326e+06 + 2.482707834844927e+06 + 2.462545556054412e+06 + 2.442536236120740e+06 + 2.422678849863131e+06 + 2.402972377820649e+06 + 2.383415806334849e+06 + 2.364008125120872e+06 + 2.344748329835404e+06 + 2.325635421794777e+06 + 2.306668405813749e+06 + 2.287846292982958e+06 + 2.269168099757709e+06 + 2.250632846050586e+06 + 2.232239558087812e+06 + 2.213987266957964e+06 + 2.195875007435864e+06 + 2.177901821473463e+06 + 2.160066755143500e+06 + 2.142368857948063e+06 + 2.124807187017495e+06 + 2.107380803567688e+06 + 2.090088772295509e+06 + 2.072930165358991e+06 + 2.055904058912681e+06 + 2.039009532618940e+06 + 2.022245673041180e+06 + 2.005611571515091e+06 + 1.989106323649552e+06 + 1.972729030298793e+06 + 1.956478797095825e+06 + 1.940354734917566e+06 + 1.924355960016194e+06 + 1.908481592593613e+06 + 1.892730757829583e+06 + 1.877102587255698e+06 + 1.861596215902473e+06 + 1.846210783186639e+06 + 1.830945435012332e+06 + 1.815799321323061e+06 + 1.800771597138300e+06 + 1.785861422681660e+06 + 1.771067961851037e+06 + 1.756390384114008e+06 + 1.741827864373811e+06 + 1.727379581118251e+06 + 1.713044718232857e+06 + 1.698822464839031e+06 + 1.684712013805151e+06 + 1.670712563808684e+06 + 1.656823318006428e+06 + 1.643043483055245e+06 + 1.629372271790869e+06 + 1.615808901794204e+06 + 1.602352594044968e+06 + 1.589002574975609e+06 + 1.575758076322615e+06 + 1.562618333634041e+06 + 1.549582587186907e+06 + 1.536650081999105e+06 + 1.523820067124634e+06 + 1.511091797064626e+06 + 1.498464530780005e+06 + 1.485937531189585e+06 + 1.473510066471004e+06 + 1.461181408848471e+06 + 1.448950834625962e+06 + 1.436817625926470e+06 + 1.424781068397768e+06 + 1.412840451407005e+06 + 1.400995070309470e+06 + 1.389244224245752e+06 + 1.377587216393601e+06 + 1.366023355231714e+06 + 1.354551952598923e+06 + 1.343172324427429e+06 + 1.331883792566280e+06 + 1.320685682335073e+06 + 1.309577322956444e+06 + 1.298558048406515e+06 + 1.287627196362487e+06 + 1.276784109496439e+06 + 1.266028134784103e+06 + 1.255358622320226e+06 + 1.244774926866806e+06 + 1.234276408467881e+06 + 1.223862430240984e+06 + 1.213532358913532e+06 + 1.203285566621101e+06 + 1.193121428991948e+06 + 1.183039325468658e+06 + 1.173038640304339e+06 + 1.163118761212139e+06 + 1.153279079987504e+06 + 1.143518992564451e+06 + 1.133837898317260e+06 + 1.124235201394960e+06 + 1.114710310121780e+06 + 1.105262636013577e+06 + 1.095891594215875e+06 + 1.086596604396163e+06 + 1.077377090233802e+06 + 1.068232479242110e+06 + 1.059162202266971e+06 + 1.050165693700918e+06 + 1.041242393088349e+06 + 1.032391743039430e+06 + 1.023613189178869e+06 + 1.014906181731556e+06 + 1.006270174355871e+06 + 9.977046244036794e+05 + 9.892089935677024e+05 + 9.807827465832273e+05 + 9.724253516436865e+05 + 9.641362810046984e+05 + 9.559150102252770e+05 + 9.477610188719215e+05 + 9.396737899139688e+05 + 9.316528091743080e+05 + 9.236975665277143e+05 + 9.158075561735997e+05 + 9.079822751134991e+05 + 9.002212236533747e+05 + 8.925239057014534e+05 + 8.848898281604102e+05 + 8.773185021612709e+05 + 8.698094424648809e+05 + 8.623621663528095e+05 + 8.549761944053203e+05 + 8.476510510446843e+05 + 8.403862637513808e+05 + 8.331813638606276e+05 + 8.260358860837971e+05 + 8.189493675787508e+05 + 8.119213484350282e+05 + 8.049513730504208e+05 + 7.980389891667470e+05 + 7.911837471192866e+05 + 7.843852003599521e+05 + 7.776429053419405e+05 + 7.709564221446526e+05 + 7.643253140173181e+05 + 7.577491471803443e+05 + 7.512274911598503e+05 + 7.447599180231568e+05 + 7.383460026539576e+05 + 7.319853241781880e+05 + 7.256774641850799e+05 + 7.194220067146936e+05 + 7.132185395309449e+05 + 7.070666529520636e+05 + 7.009659400728574e+05 + 6.949159975085063e+05 + 6.889164244086053e+05 + 6.829668228095188e+05 + 6.770667979456050e+05 + 6.712159574726904e+05 + 6.654139120281750e+05 + 6.596602754201142e+05 + 6.539546638052445e+05 + 6.482966962660485e+05 + 6.426859949531512e+05 + 6.371221843431445e+05 + 6.316048918617199e+05 + 6.261337478197705e+05 + 6.207083848228143e+05 + 6.153284385055641e+05 + 6.099935472682050e+05 + 6.047033517354903e+05 + 5.994574954765684e+05 + 5.942556247644721e+05 + 5.890973881315375e+05 + 5.839824370501742e+05 + 5.789104255366600e+05 + 5.738810098259439e+05 + 5.688938490610282e+05 + 5.639486048510919e+05 + 5.590449410545636e+05 + 5.541825244030216e+05 + 5.493610239467514e+05 + 5.445801109611018e+05 + 5.398394595653637e+05 + 5.351387461239359e+05 + 5.304776492529869e+05 + 5.258558503354813e+05 + 5.212730328842620e+05 + 5.167288826663374e+05 + 5.122230881980868e+05 + 5.077553400369428e+05 + 5.033253309731948e+05 + 4.989327564601310e+05 + 4.945773139811803e+05 + 4.902587033143605e+05 + 4.859766266490913e+05 + 4.817307881770549e+05 + 4.775208945372272e+05 + 4.733466546121029e+05 + 4.692077791818720e+05 + 4.651039814988278e+05 + 4.610349770333872e+05 + 4.570004830895544e+05 + 4.530002193970305e+05 + 4.490339078641191e+05 + 4.451012721716975e+05 + 4.412020383482487e+05 + 4.373359346346440e+05 + 4.335026910461138e+05 + 4.297020398291695e+05 + 4.259337153289251e+05 + 4.221974536699117e+05 + 4.184929932504728e+05 + 4.148200744355357e+05 + 4.111784393468680e+05 + 4.075678324287459e+05 + 4.039879999559653e+05 + 4.004386899065928e+05 + 3.969196525836200e+05 + 3.934306400492930e+05 + 3.899714060581240e+05 + 3.865417066557175e+05 + 3.831412995849459e+05 + 3.797699442729113e+05 + 3.764274023566474e+05 + 3.731134371233769e+05 + 3.698278135622827e+05 + 3.665702987827645e+05 + 3.633406615280775e+05 + 3.601386722825769e+05 + 3.569641034535824e+05 + 3.538167290782596e+05 + 3.506963250581825e+05 + 3.476026690576235e+05 + 3.445355402744773e+05 + 3.414947198014101e+05 + 3.384799905288533e+05 + 3.354911367821696e+05 + 3.325279446663284e+05 + 3.295902021531574e+05 + 3.266776986085196e+05 + 3.237902250531212e+05 + 3.209275743946921e+05 + 3.180895409646722e+05 + 3.152759207164211e+05 + 3.124865112943467e+05 + 3.097211117598721e+05 + 3.069795229448014e+05 + 3.042615472339510e+05 + 3.015669883675390e+05 + 2.988956518738279e+05 + 2.962473447339852e+05 + 2.936218752484120e+05 + 2.910190535228683e+05 + 2.884386911235514e+05 + 2.858806009067059e+05 + 2.833445973150213e+05 + 2.808304963224871e+05 + 2.783381153152796e+05 + 2.758672731341289e+05 + 2.734177900017136e+05 + 2.709894875428715e+05 + 2.685821889451269e+05 + 2.661957187314447e+05 + 2.638299027837526e+05 + 2.614845683836235e+05 + 2.591595441417535e+05 + 2.568546601323142e+05 + 2.545697477628685e+05 + 2.523046396706559e+05 + 2.500591699434964e+05 + 2.478331740644226e+05 + 2.456264886409644e+05 + 2.434389516128850e+05 + 2.412704023657298e+05 + 2.391206814330098e+05 + 2.369896306904384e+05 + 2.348770933197599e+05 + 2.327829136173563e+05 + 2.307069372775990e+05 + 2.286490111745211e+05 + 2.266089832623643e+05 + 2.245867029748616e+05 + 2.225820209237310e+05 + 2.205947887183862e+05 + 2.186248592921233e+05 + 2.166720868039439e+05 + 2.147363264605261e+05 + 2.128174347706827e+05 + 2.109152693889452e+05 + 2.090296889843596e+05 + 2.071605535077064e+05 + 2.053077240108720e+05 + 2.034710625599661e+05 + 2.016504325007521e+05 + 1.998456982030229e+05 + 1.980567250370223e+05 + 1.962833797138016e+05 + 1.945255298870997e+05 + 1.927830441323482e+05 + 1.910557922964590e+05 + 1.893436452442803e+05 + 1.876464748512476e+05 + 1.859641540986015e+05 + 1.842965568967865e+05 + 1.826435581738182e+05 + 1.810050340354470e+05 + 1.793808614993985e+05 + 1.777709185575675e+05 + 1.761750842223128e+05 + 1.745932384546507e+05 + 1.730252623268235e+05 + 1.714710377603550e+05 + 1.699304475698536e+05 + 1.684033757560533e+05 + 1.668897071565261e+05 + 1.653893274220018e+05 + 1.639021233234161e+05 + 1.624279825159149e+05 + 1.609667934564489e+05 + 1.595184456811041e+05 + 1.580828296015031e+05 + 1.566598363968120e+05 + 1.552493582649543e+05 + 1.538512882702573e+05 + 1.524655202573447e+05 + 1.510919491064028e+05 + 1.497304705096718e+05 + 1.483809809029638e+05 + 1.470433777326744e+05 + 1.457175592117312e+05 + 1.444034242942686e+05 + 1.431008729933990e+05 + 1.418098060421684e+05 + 1.405301248671864e+05 + 1.392617319094920e+05 + 1.380045303259556e+05 + 1.367584239714278e+05 + 1.355233176631985e+05 + 1.342991169575939e+05 + 1.330857281367400e+05 + 1.318830583220329e+05 + 1.306910153813551e+05 + 1.295095079605118e+05 + 1.283384454277201e+05 + 1.271777378619642e+05 + 1.260272961737778e+05 + 1.248870320778846e+05 + 1.237568578844075e+05 + 1.226366865814357e+05 + 1.215264320654815e+05 + 1.204260088572700e+05 + 1.193353321256488e+05 + 1.182543179024696e+05 + 1.171828828329888e+05 + 1.161209441971572e+05 + 1.150684200368906e+05 + 1.140252290172446e+05 + 1.129912905290012e+05 + 1.119665246989244e+05 + 1.109508522377596e+05 + 1.099441945145749e+05 + 1.089464735474612e+05 + 1.079576119759672e+05 + 1.069775332658437e+05 + 1.060061613940063e+05 + 1.050434208615313e+05 + 1.040892370245828e+05 + 1.031435357647047e+05 + 1.022062434696232e+05 + 1.012772873208916e+05 + 1.003565950684523e+05 + 9.944409498683986e+04 + 9.853971604124359e+04 + 9.764338777276211e+04 + 9.675504027159151e+04 + 9.587460425195689e+04 + 9.500201099602232e+04 + 9.413719236230559e+04 + 9.328008081668093e+04 + 9.243060935253548e+04 + 9.158871152497102e+04 + 9.075432150057999e+04 + 8.992737394814150e+04 + 8.910780408381460e+04 + 8.829554772812854e+04 + 8.749054118346877e+04 + 8.669272128864085e+04 + 8.590202548133289e+04 + 8.511839166524833e+04 + 8.434175826486869e+04 + 8.357206428147563e+04 + 8.280924917713979e+04 + 8.205325293940101e+04 + 8.130401609766987e+04 + 8.056147962909786e+04 + 7.982558503959214e+04 + 7.909627435336930e+04 + 7.837349003289423e+04 + 7.765717506702039e+04 + 7.694727293156023e+04 + 7.624372753229675e+04 + 7.554648331079309e+04 + 7.485548516457589e+04 + 7.417067840840557e+04 + 7.349200889763620e+04 + 7.281942291879337e+04 + 7.215286716185752e+04 + 7.149228885123666e+04 + 7.083763563584826e+04 + 7.018885556144921e+04 + 6.954589717270633e+04 + 6.890870943981725e+04 + 6.827724174191867e+04 + 6.765144392787226e+04 + 6.703126624692857e+04 + 6.641665935636370e+04 + 6.580757439267423e+04 + 6.520396286738058e+04 + 6.460577668030654e+04 + 6.401296820028803e+04 + 6.342549017134596e+04 + 6.284329573351656e+04 + 6.226633845994343e+04 + 6.169457228450359e+04 + 6.112795154311772e+04 + 6.056643099463883e+04 + 6.000996574136701e+04 + 5.945851127624574e+04 + 5.891202351267684e+04 + 5.837045869755570e+04 + 5.783377345558033e+04 + 5.730192482224794e+04 + 5.677487016169035e+04 + 5.625256720967715e+04 + 5.573497408983271e+04 + 5.522204924870504e+04 + 5.471375150828325e+04 + 5.421004006036229e+04 + 5.371087441354901e+04 + 5.321621444975662e+04 + 5.272602039469258e+04 + 5.224025278120609e+04 + 5.175887251825204e+04 + 5.128184085536604e+04 + 5.080911934597862e+04 + 5.034066989608183e+04 + 4.987645473684455e+04 + 4.941643640415772e+04 + 4.896057778639881e+04 + 4.850884207769758e+04 + 4.806119277190277e+04 + 4.761759372195903e+04 + 4.717800906318111e+04 + 4.674240321587012e+04 + 4.631074096205200e+04 + 4.588298735942246e+04 + 4.545910774537743e+04 + 4.503906779825089e+04 + 4.462283347373459e+04 + 4.421037101686000e+04 + 4.380164697651120e+04 + 4.339662816996042e+04 + 4.299528171729217e+04 + 4.259757504220949e+04 + 4.220347581706527e+04 + 4.181295199605238e+04 + 4.142597183433527e+04 + 4.104250383855765e+04 + 4.066251680332360e+04 + 4.028597979815155e+04 + 3.991286213370509e+04 + 3.954313341370015e+04 + 3.917676350485435e+04 + 3.881372250661203e+04 + 3.845398080843414e+04 + 3.809750905736740e+04 + 3.774427812448402e+04 + 3.739425915595785e+04 + 3.704742356207799e+04 + 3.670374297805164e+04 + 3.636318929176292e+04 + 3.602573463927982e+04 + 3.569135138416072e+04 + 3.536001215672983e+04 + 3.503168981923036e+04 + 3.470635744840465e+04 + 3.438398837321134e+04 + 3.406455615393208e+04 + 3.374803457309094e+04 + 3.343439765983423e+04 + 3.312361965186892e+04 + 3.281567499925836e+04 + 3.251053841177231e+04 + 3.220818480242078e+04 + 3.190858928930939e+04 + 3.161172723179306e+04 + 3.131757418548949e+04 + 3.102610591483113e+04 + 3.073729842710719e+04 + 3.045112791454117e+04 + 3.016757076691534e+04 + 2.988660361584138e+04 + 2.960820327321778e+04 + 2.933234674204399e+04 + 2.905901125674980e+04 + 2.878817423326317e+04 + 2.851981328372868e+04 + 2.825390622682930e+04 + 2.799043106146120e+04 + 2.772936599846356e+04 + 2.747068942978120e+04 + 2.721437991599866e+04 + 2.696041623625263e+04 + 2.670877735469368e+04 + 2.645944239579323e+04 + 2.621239068106394e+04 + 2.596760172331024e+04 + 2.572505519859007e+04 + 2.548473096648493e+04 + 2.524660907253227e+04 + 2.501066972455740e+04 + 2.477689330466365e+04 + 2.454526037995217e+04 + 2.431575168300119e+04 + 2.408834810912627e+04 + 2.386303072521571e+04 + 2.363978076395976e+04 + 2.341857962988761e+04 + 2.319940888531031e+04 + 2.298225025100848e+04 + 2.276708562349589e+04 + 2.255389704384009e+04 + 2.234266670372097e+04 + 2.213337697918792e+04 + 2.192601038403303e+04 + 2.172054957464747e+04 + 2.151697738916041e+04 + 2.131527680276242e+04 + 2.111543093252480e+04 + 2.091742306098243e+04 + 2.072123660422193e+04 + 2.052685512482519e+04 + 2.033426234716574e+04 + 2.014344212098682e+04 + 1.995437843426629e+04 + 1.976705544479930e+04 + 1.958145743480243e+04 + 1.939756881213320e+04 + 1.921537413684756e+04 + 1.903485810052154e+04 + 1.885600554387774e+04 + 1.867880143037429e+04 + 1.850323084111479e+04 + 1.832927901452323e+04 + 1.815693131178678e+04 + 1.798617320994377e+04 + 1.781699034075772e+04 + 1.764936845332217e+04 + 1.748329340510924e+04 + 1.731875119617678e+04 + 1.715572795110660e+04 + 1.699420990919751e+04 + 1.683418344358223e+04 + 1.667563503873475e+04 + 1.651855128954979e+04 + 1.636291893365341e+04 + 1.620872481606836e+04 + 1.605595588699932e+04 + 1.590459923143625e+04 + 1.575464203906202e+04 + 1.560607160533683e+04 + 1.545887535681969e+04 + 1.531304082443131e+04 + 1.516855564487381e+04 + 1.502540756956110e+04 + 1.488358445432479e+04 + 1.474307426938193e+04 + 1.460386509288249e+04 + 1.446594509814283e+04 + 1.432930256776952e+04 + 1.419392589719183e+04 + 1.405980357729324e+04 + 1.392692420658459e+04 + 1.379527648729671e+04 + 1.366484921045415e+04 + 1.353563127160237e+04 + 1.340761167272577e+04 + 1.328077950662285e+04 + 1.315512397004589e+04 + 1.303063434970357e+04 + 1.290730001970431e+04 + 1.278511047006237e+04 + 1.266405528001385e+04 + 1.254412410683634e+04 + 1.242530670538782e+04 + 1.230759293022181e+04 + 1.219097272173875e+04 + 1.207543611008671e+04 + 1.196097321598039e+04 + 1.184757424417080e+04 + 1.173522949287449e+04 + 1.162392934478714e+04 + 1.151366426384512e+04 + 1.140442480834694e+04 + 1.129620161634352e+04 + 1.118898540470730e+04 + 1.108276698378667e+04 + 1.097753724013271e+04 + 1.087328713748510e+04 + 1.077000773143687e+04 + 1.066769015148828e+04 + 1.056632560317495e+04 + 1.046590537899618e+04 + 1.036642084361778e+04 + 1.026786343864257e+04 + 1.017022468912003e+04 + 1.007349618928313e+04 + 9.977669609110566e+03 + 9.882736699245763e+03 + 9.788689277747368e+03 + 9.695519238085319e+03 + 9.603218551128393e+03 + 9.511779252802526e+03 + 9.421193453258842e+03 + 9.331453338088948e+03 + 9.242551155902798e+03 + 9.154479227014926e+03 + 9.067229945268125e+03 + 8.980795767109534e+03 + 8.895169220035050e+03 + 8.810342900070031e+03 + 8.726309463870590e+03 + 8.643061639313548e+03 + 8.560592220958239e+03 + 8.478894062727115e+03 + 8.397960086705119e+03 + 8.317783279679375e+03 + 8.238356687487571e+03 + 8.159673421912185e+03 + 8.081726656780256e+03 + 8.004509624589081e+03 + 7.928015622553179e+03 + 7.852238006535134e+03 + 7.777170190090504e+03 + 7.702805651284038e+03 + 7.629137923269694e+03 + 7.556160595291118e+03 + 7.483867321684783e+03 + 7.412251809739373e+03 + 7.341307820993124e+03 + 7.271029178292266e+03 + 7.201409756944273e+03 + 7.132443488123264e+03 + 7.064124361053455e+03 + 6.996446414793790e+03 + 6.929403743407001e+03 + 6.862990497342477e+03 + 6.797200875139910e+03 + 6.732029129721631e+03 + 6.667469570161823e+03 + 6.603516551523545e+03 + 6.540164480186692e+03 + 6.477407817185619e+03 + 6.415241069687017e+03 + 6.353658796883785e+03 + 6.292655608307650e+03 + 6.232226157518487e+03 + 6.172365149982773e+03 + 6.113067340658933e+03 + 6.054327527853383e+03 + 5.996140560115221e+03 + 5.938501333076975e+03 + 5.881404784939355e+03 + 5.824845903828315e+03 + 5.768819722461626e+03 + 5.713321315085574e+03 + 5.658345805472132e+03 + 5.603888359764917e+03 + 5.549944184846402e+03 + 5.496508537213697e+03 + 5.443576713947663e+03 + 5.391144051368102e+03 + 5.339205932358427e+03 + 5.287757780134069e+03 + 5.236795058291703e+03 + 5.186313275265001e+03 + 5.136307977685731e+03 + 5.086774751617681e+03 + 5.037709226449485e+03 + 4.989107068721900e+03 + 4.940963984504954e+03 + 4.893275721702213e+03 + 4.846038063285039e+03 + 4.799246830729600e+03 + 4.752897888312231e+03 + 4.706987133608333e+03 + 4.661510499922751e+03 + 4.616463963202395e+03 + 4.571843532909213e+03 + 4.527645253893021e+03 + 4.483865209302220e+03 + 4.440499515324517e+03 + 4.397544325863069e+03 + 4.354995830474305e+03 + 4.312850249817291e+03 + 4.271103841242844e+03 + 4.229752898292512e+03 + 4.188793745275323e+03 + 4.148222740634546e+03 + 4.108036277499050e+03 + 4.068230779797937e+03 + 4.028802705831530e+03 + 3.989748546349355e+03 + 3.951064821861195e+03 + 3.912748086813885e+03 + 3.874794926585441e+03 + 3.837201956255947e+03 + 3.799965825835211e+03 + 3.763083213042953e+03 + 3.726550823283946e+03 + 3.690365398229224e+03 + 3.654523706502605e+03 + 3.619022543185401e+03 + 3.583858737044133e+03 + 3.549029144619817e+03 + 3.514530650270483e+03 + 3.480360168271582e+03 + 3.446514639490202e+03 + 3.412991033253400e+03 + 3.379786348393921e+03 + 3.346897609451590e+03 + 3.314321868815865e+03 + 3.282056205761040e+03 + 3.250097724763853e+03 + 3.218443559530467e+03 + 3.187090870156345e+03 + 3.156036839918450e+03 + 3.125278679259401e+03 + 3.094813626126841e+03 + 3.064638941053712e+03 + 3.034751909739014e+03 + 3.005149845581890e+03 + 2.975830084543172e+03 + 2.946789986568892e+03 + 2.918026936797055e+03 + 2.889538343339952e+03 + 2.861321641252218e+03 + 2.833374286700636e+03 + 2.805693756659566e+03 + 2.778277556469224e+03 + 2.751123212016022e+03 + 2.724228269242043e+03 + 2.697590301914011e+03 + 2.671206904109025e+03 + 2.645075688971241e+03 + 2.619194294405700e+03 + 2.593560380141823e+03 + 2.568171626715687e+03 + 2.543025737542386e+03 + 2.518120435211838e+03 + 2.493453462030127e+03 + 2.469022585172818e+03 + 2.444825590018873e+03 + 2.420860280374604e+03 + 2.397124484732366e+03 + 2.373616049394018e+03 + 2.350332838436762e+03 + 2.327272738609171e+03 + 2.304433655218562e+03 + 2.281813512846715e+03 + 2.259410255601743e+03 + 2.237221844685107e+03 + 2.215246260811306e+03 + 2.193481506123082e+03 + 2.171925598942706e+03 + 2.150576574458654e+03 + 2.129432488764117e+03 + 2.108491414442484e+03 + 2.087751441300839e+03 + 2.067210678851041e+03 + 2.046867252353801e+03 + 2.026719303565292e+03 + 2.006764993817073e+03 + 1.987002500493615e+03 + 1.967430017215378e+03 + 1.948045754608514e+03 + 1.928847939062915e+03 + 1.909834815497017e+03 + 1.891004644375446e+03 + 1.872355700452609e+03 + 1.853886275802303e+03 + 1.835594678424827e+03 + 1.817479231062563e+03 + 1.799538272810955e+03 + 1.781770158220284e+03 + 1.764173256646331e+03 + 1.746745953278825e+03 + 1.729486647489427e+03 + 1.712393752933919e+03 + 1.695465699568615e+03 + 1.678700930817119e+03 + 1.662097903850073e+03 + 1.645655091966725e+03 + 1.629370981458450e+03 + 1.613244072202941e+03 + 1.597272880432907e+03 + 1.581455933682248e+03 + 1.565791771294578e+03 + 1.550278951289465e+03 + 1.534916043199639e+03 + 1.519701626827566e+03 + 1.504634298568118e+03 + 1.489712666891078e+03 + 1.474935351996483e+03 + 1.460300988758884e+03 + 1.445808223853118e+03 + 1.431455716350942e+03 + 1.417242138357507e+03 + 1.403166173386480e+03 + 1.389226518010158e+03 + 1.375421881007569e+03 + 1.361750982089843e+03 + 1.348212553926219e+03 + 1.334805341072190e+03 + 1.321528098720046e+03 + 1.308379594477261e+03 + 1.295358607457036e+03 + 1.282463927300085e+03 + 1.269694355823267e+03 + 1.257048705895313e+03 + 1.244525800699936e+03 + 1.232124475203576e+03 + 1.219843575042076e+03 + 1.207681956049559e+03 + 1.195638485404256e+03 + 1.183712040621380e+03 + 1.171901509388141e+03 + 1.160205790292893e+03 + 1.148623791762007e+03 + 1.137154432301071e+03 + 1.125796641257775e+03 + 1.114549357263016e+03 + 1.103411528660030e+03 + 1.092382114454342e+03 + 1.081460082700689e+03 + 1.070644411095300e+03 + 1.059934087579793e+03 + 1.049328108720195e+03 + 1.038825480494848e+03 + 1.028425218971371e+03 + 1.018126348582361e+03 + 1.007927902927668e+03 + 9.978289254104482e+02 + 9.878284675679866e+02 + 9.779255898738762e+02 + 9.681193621623704e+02 + 9.584088623012988e+02 + 9.487931771658360e+02 + 9.392714022763922e+02 + 9.298426409505287e+02 + 9.205060057185552e+02 + 9.112606172437117e+02 + 9.021056036681564e+02 + 8.930401022331439e+02 + 8.840632580637879e+02 + 8.751742235821227e+02 + 8.663721600224155e+02 + 8.576562363107178e+02 + 8.490256285516970e+02 + 8.404795212594149e+02 + 8.320171064683727e+02 + 8.236375833541338e+02 + 8.153401590664150e+02 + 8.071240480244585e+02 + 7.989884718119321e+02 + 7.909326598382663e+02 + 7.829558483527250e+02 + 7.750572805483002e+02 + 7.672362073200991e+02 + 7.594918862313154e+02 + 7.518235817392584e+02 + 7.442305655888715e+02 + 7.367121158939042e+02 + 7.292675176279554e+02 + 7.218960630476328e+02 + 7.145970504767349e+02 + 7.073697847820883e+02 + 7.002135778527235e+02 + 6.931277475695276e+02 + 6.861116184218383e+02 + 6.791645215373005e+02 + 6.722857937677298e+02 + 6.654747784472139e+02 + 6.587308253877042e+02 + 6.520532900189463e+02 + 6.454415341582659e+02 + 6.388949257382737e+02 + 6.324128381494658e+02 + 6.259946511571761e+02 + 6.196397502963263e+02 + 6.133475264197438e+02 + 6.071173768094372e+02 + 6.009487042352257e+02 + 5.948409165626937e+02 + 5.887934278801442e+02 + 5.828056577149104e+02 + 5.768770306335107e+02 + 5.710069770500405e+02 + 5.651949326339243e+02 + 5.594403381224611e+02 + 5.537426401234757e+02 + 5.481012901152631e+02 + 5.425157443662293e+02 + 5.369854648776029e+02 + 5.315099185870243e+02 + 5.260885773011631e+02 + 5.207209179649268e+02 + 5.154064223119497e+02 + 5.101445770921985e+02 + 5.049348740937783e+02 + 4.997768095346806e+02 + 4.946698844046663e+02 + 4.896136047862775e+02 + 4.846074811232588e+02 + 4.796510285618583e+02 + 4.747437670096575e+02 + 4.698852205388910e+02 + 4.650749179071526e+02 + 4.603123926691712e+02 + 4.555971823563725e+02 + 4.509288288727789e+02 + 4.463068788207030e+02 + 4.417308827523721e+02 + 4.372003955530256e+02 + 4.327149765501697e+02 + 4.282741889383891e+02 + 4.238776002586995e+02 + 4.195247821802792e+02 + 4.152153101301976e+02 + 4.109487639564401e+02 + 4.067247273397822e+02 + 4.025427875685178e+02 + 3.984025363858318e+02 + 3.943035692477232e+02 + 3.902454851077117e+02 + 3.862278871965347e+02 + 3.822503823673904e+02 + 3.783125809462488e+02 + 3.744140974100913e+02 + 3.705545496319825e+02 + 3.667335588488600e+02 + 3.629507504654170e+02 + 3.592057531920941e+02 + 3.554981990087823e+02 + 3.518277237997781e+02 + 3.481939667588409e+02 + 3.445965704231110e+02 + 3.410351808614133e+02 + 3.375094474036331e+02 + 3.340190228447264e+02 + 3.305635632260179e+02 + 3.271427276872922e+02 + 3.237561788604219e+02 + 3.204035826343936e+02 + 3.170846077594078e+02 + 3.137989262426811e+02 + 3.105462135925898e+02 + 3.073261480789523e+02 + 3.041384108878384e+02 + 3.009826866110996e+02 + 2.978586626197819e+02 + 2.947660292278245e+02 + 2.917044799774912e+02 + 2.886737110898206e+02 + 2.856734216347172e+02 + 2.827033138205502e+02 + 2.797630925185924e+02 + 2.768524653868921e+02 + 2.739711430162750e+02 + 2.711188386172004e+02 + 2.682952682417776e+02 + 2.655001507075566e+02 + 2.627332073441469e+02 + 2.599941621974095e+02 + 2.572827420191948e+02 + 2.545986760992428e+02 + 2.519416963867954e+02 + 2.493115374004747e+02 + 2.467079361520411e+02 + 2.441306322519956e+02 + 2.415793676749632e+02 + 2.390538868162835e+02 + 2.365539368283623e+02 + 2.340792670618049e+02 + 2.316296291092408e+02 + 2.292047772816256e+02 + 2.268044680583002e+02 + 2.244284601550858e+02 + 2.220765149177526e+02 + 2.197483957886078e+02 + 2.174438683808943e+02 + 2.151627007150871e+02 + 2.129046628991759e+02 + 2.106695273325222e+02 + 2.084570687245048e+02 + 2.062670637405841e+02 + 2.040992912166423e+02 + 2.019535322675416e+02 + 1.998295699356443e+02 + 1.977271893831886e+02 + 1.956461779038128e+02 + 1.935863247355415e+02 + 1.915474213798307e+02 + 1.895292611678483e+02 + 1.875316391958052e+02 + 1.855543528482985e+02 + 1.835972014670904e+02 + 1.816599861324650e+02 + 1.797425099308505e+02 + 1.778445779263947e+02 + 1.759659969484732e+02 + 1.741065756739388e+02 + 1.722661246609050e+02 + 1.704444562587039e+02 + 1.686413847511611e+02 + 1.668567261386198e+02 + 1.650902980928235e+02 + 1.633419201885993e+02 + 1.616114136777071e+02 + 1.598986014805750e+02 + 1.582033083619683e+02 + 1.565253606828442e+02 + 1.548645864376032e+02 + 1.532208154238845e+02 + 1.515938789750561e+02 + 1.499836100268175e+02 + 1.483898432531407e+02 + 1.468124148175615e+02 + 1.452511624739094e+02 + 1.437059256375598e+02 + 1.421765451600804e+02 + 1.406628634671130e+02 + 1.391647245894945e+02 + 1.376819739463268e+02 + 1.362144585029153e+02 + 1.347620267668397e+02 + 1.333245285902542e+02 + 1.319018153476916e+02 + 1.304937399101563e+02 + 1.291001564496927e+02 + 1.277209206089626e+02 + 1.263558894821456e+02 + 1.250049214462411e+02 + 1.236678763269726e+02 + 1.223446153162142e+02 + 1.210350008534558e+02 + 1.197388968258891e+02 + 1.184561684202564e+02 + 1.171866820332312e+02 + 1.159303054814129e+02 + 1.146869078350233e+02 + 1.134563593521917e+02 + 1.122385316718855e+02 + 1.110332976232454e+02 + 1.098405311979204e+02 + 1.086601077608261e+02 + 1.074919038117468e+02 + 1.063357969778381e+02 + 1.051916662270612e+02 + 1.040593916259906e+02 + 1.029388543466298e+02 + 1.018299368341955e+02 + 1.007325226151947e+02 + 9.964649633160360e+01 + 9.857174381861689e+01 + 9.750815195741964e+01 + 9.645560874783912e+01 + 9.541400332430685e+01 + 9.438322582683587e+01 + 9.336316750654088e+01 + 9.235372071959520e+01 + 9.135477878367931e+01 + 9.036623609174318e+01 + 8.938798812110527e+01 + 8.841993128541375e+01 + 8.746196304638978e+01 + 8.651398190997742e+01 + 8.557588728936869e+01 + 8.464757961904559e+01 + 8.372896034435935e+01 + 8.281993180539014e+01 + 8.192039735296085e+01 + 8.103026128111058e+01 + 8.014942874495698e+01 + 7.927780590401203e+01 + 7.841529983858037e+01 + 7.756181847617736e+01 + 7.671727071446733e+01 + 7.588156631674119e+01 + 7.505461587372024e+01 + 7.423633095310755e+01 + 7.342662394299153e+01 + 7.262540803009301e+01 + 7.183259736215271e+01 + 7.104810687905130e+01 + 7.027185230277652e+01 + 6.950375028269488e+01 + 6.874371822566854e+01 + 6.799167430460268e+01 + 6.724753760248480e+01 + 6.651122793902957e+01 + 6.578266588744034e+01 + 6.506177289160765e+01 + 6.434847109859102e+01 + 6.364268339115934e+01 + 6.294433351272004e+01 + 6.225334589309644e+01 + 6.156964567793161e+01 + 6.089315882540817e+01 + 6.022381196253272e+01 + 5.956153243192431e+01 + 5.890624835784802e+01 + 5.825788851805937e+01 + 5.761638239540161e+01 + 5.698166019812880e+01 + 5.635365277455941e+01 + 5.573229169643452e+01 + 5.511750921575248e+01 + 5.450923819422894e+01 + 5.390741220139490e+01 + 5.331196548214332e+01 + 5.272283288224639e+01 + 5.213994992103501e+01 + 5.156325275682114e+01 + 5.099267813956413e+01 + 5.042816349744366e+01 + 4.986964685712531e+01 + 4.931706681520628e+01 + 4.877036264381848e+01 + 4.822947419115650e+01 + 4.769434186145065e+01 + 4.716490671386568e+01 + 4.664111036072763e+01 + 4.612289496053356e+01 + 4.561020331071316e+01 + 4.510297873475514e+01 + 4.460116508782800e+01 + 4.410470685618211e+01 + 4.361354903662819e+01 + 4.312763714409483e+01 + 4.264691728541290e+01 + 4.217133607138089e+01 + 4.170084064118655e+01 + 4.123537869187841e+01 + 4.077489840121474e+01 + 4.031934846724150e+01 + 3.986867813088396e+01 + 3.942283710103097e+01 + 3.898177559914080e+01 + 3.854544435810492e+01 + 3.811379455962712e+01 + 3.768677789368684e+01 + 3.726434656726136e+01 + 3.684645322013298e+01 + 3.643305096011807e+01 + 3.602409338288954e+01 + 3.561953452360934e+01 + 3.521932891649128e+01 + 3.482343153306697e+01 + 3.443179775085747e+01 + 3.404438343901749e+01 + 3.366114490993698e+01 + 3.328203887889210e+01 + 3.290702252020257e+01 + 3.253605343510379e+01 + 3.216908962260722e+01 + 3.180608952699355e+01 + 3.144701200592500e+01 + 3.109181631097627e+01 + 3.074046212448961e+01 + 3.039290952642646e+01 + 3.004911898312090e+01 + 2.970905136572861e+01 + 2.937266792505025e+01 + 2.903993030352619e+01 + 2.871080057194543e+01 + 2.838524113862799e+01 + 2.806321475945346e+01 + 2.774468462701056e+01 + 2.742961427426368e+01 + 2.711796757973106e+01 + 2.680970882898042e+01 + 2.650480264209962e+01 + 2.620321398820359e+01 + 2.590490820737408e+01 + 2.560985096325826e+01 + 2.531800827674159e+01 + 2.502934653543958e+01 + 2.474383242809609e+01 + 2.446143296972707e+01 + 2.418211555345684e+01 + 2.390584787621480e+01 + 2.363259794654911e+01 + 2.336233413255323e+01 + 2.309502509558490e+01 + 2.283063979379989e+01 + 2.256914753657127e+01 + 2.231051792982671e+01 + 2.205472087402378e+01 + 2.180172658443576e+01 + 2.155150556919213e+01 + 2.130402866286656e+01 + 2.105926696778129e+01 + 2.081719185319289e+01 + 2.057777503962135e+01 + 2.034098850331043e+01 + 2.010680447006149e+01 + 1.987519550063876e+01 + 1.964613442528577e+01 + 1.941959432580914e+01 + 1.919554855827313e+01 + 1.897397075515799e+01 + 1.875483482712853e+01 + 1.853811494931854e+01 + 1.832378554313712e+01 + 1.811182128985819e+01 + 1.790219714756028e+01 + 1.769488831219516e+01 + 1.748987022919803e+01 + 1.728711861052799e+01 + 1.708660939866258e+01 + 1.688831878332332e+01 + 1.669222321036695e+01 + 1.649829934690638e+01 + 1.630652410217020e+01 + 1.611687463464447e+01 + 1.592932831698975e+01 + 1.574386275792588e+01 + 1.556045580679505e+01 + 1.537908552081595e+01 + 1.519973018767385e+01 + 1.502236832516821e+01 + 1.484697865494502e+01 + 1.467354012841447e+01 + 1.450203191274907e+01 + 1.433243337158686e+01 + 1.416472409674524e+01 + 1.399888388846149e+01 + 1.383489273805109e+01 + 1.367273085728561e+01 + 1.351237865788487e+01 + 1.335381673920349e+01 + 1.319702591751814e+01 + 1.304198719993403e+01 + 1.288868177614133e+01 + 1.273709104714046e+01 + 1.258719659672914e+01 + 1.243898018736778e+01 + 1.229242378719869e+01 + 1.214750954184370e+01 + 1.200421977308728e+01 + 1.186253699764556e+01 + 1.172244390266849e+01 + 1.158392335040491e+01 + 1.144695839482221e+01 + 1.131153225250660e+01 + 1.117762830926809e+01 + 1.104523013501555e+01 + 1.091432145806843e+01 + 1.078488617566414e+01 + 1.065690836231677e+01 + 1.053037224372639e+01 + 1.040526220941685e+01 + 1.028156282144551e+01 + 1.015925878941852e+01 + 1.003833498402321e+01 + 9.918776439618298e+00 + 9.800568334039683e+00 + 9.683696005431957e+00 + 9.568144946174611e+00 + 9.453900787919052e+00 + 9.340949322860192e+00 + 9.229276489267212e+00 + 9.118868359446189e+00 + 9.009711163642070e+00 + 8.901791273796370e+00 + 8.795095191785947e+00 + 8.689609570648638e+00 + 8.585321201853549e+00 + 8.482217005296002e+00 + 8.380284046581689e+00 + 8.279509523576925e+00 + 8.179880760330461e+00 + 8.081385224417300e+00 + 7.984010508389771e+00 + 7.887744326863491e+00 + 7.792574535206823e+00 + 7.698489109519010e+00 + 7.605476146133772e+00 + 7.513523878187234e+00 + 7.422620653280592e+00 + 7.332754935473541e+00 + 7.243915322674125e+00 + 7.156090524556396e+00 + 7.069269365741123e+00 + 6.983440797017198e+00 + 6.898593877074525e+00 + 6.814717779007339e+00 + 6.731801797516630e+00 + 6.649835331100769e+00 + 6.568807890289103e+00 + 6.488709103685009e+00 + 6.409528699865692e+00 + 6.331256515961359e+00 + 6.253882503643640e+00 + 6.177396712290002e+00 + 6.101789297547966e+00 + 6.027050522250886e+00 + 5.953170745278158e+00 + 5.880140434362498e+00 + 5.807950156612827e+00 + 5.736590570385212e+00 + 5.666052441485230e+00 + 5.596326632559173e+00 + 5.527404095182261e+00 + 5.459275884510260e+00 + 5.391933149962507e+00 + 5.325367127621260e+00 + 5.259569151260657e+00 + 5.194530647433734e+00 + 5.130243129823101e+00 + 5.066698206416531e+00 + 5.003887570881058e+00 + 4.941803001453549e+00 + 4.880436373900456e+00 + 4.819779643419130e+00 + 4.759824844738533e+00 + 4.700564110200850e+00 + 4.641989649988083e+00 + 4.584093751736625e+00 + 4.526868793565781e+00 + 4.470307230074105e+00 + 4.414401594729965e+00 + 4.359144507919768e+00 + 4.304528662004969e+00 + 4.250546825086277e+00 + 4.197191851627622e+00 + 4.144456666159979e+00 + 4.092334266478478e+00 + 4.040817732600400e+00 + 3.989900213340690e+00 + 3.939574930757155e+00 + 3.889835183170760e+00 + 3.840674335613269e+00 + 3.792085827136757e+00 + 3.744063169627271e+00 + 3.696599938809659e+00 + 3.649689781941428e+00 + 3.603326418080199e+00 + 3.557503628382808e+00 + 3.512215261374414e+00 + 3.467455236465362e+00 + 3.423217534816642e+00 + 3.379496201686086e+00 + 3.336285348654454e+00 + 3.293579148649655e+00 + 3.251371841226642e+00 + 3.209657725464606e+00 + 3.168431157939940e+00 + 3.127686563504146e+00 + 3.087418425005168e+00 + 3.047621281181530e+00 + 3.008289735457784e+00 + 2.969418446796439e+00 + 2.931002129285814e+00 + 2.893035560502260e+00 + 2.855513571053400e+00 + 2.818431044951714e+00 + 2.781782927380857e+00 + 2.745564215550934e+00 + 2.709769959926351e+00 + 2.674395268211684e+00 + 2.639435297946605e+00 + 2.604885259637663e+00 + 2.570740420206636e+00 + 2.536996093812299e+00 + 2.503647644969884e+00 + 2.470690493614489e+00 + 2.438120105903952e+00 + 2.405931997235836e+00 + 2.374121735683807e+00 + 2.342684934097179e+00 + 2.311617253784086e+00 + 2.280914406216957e+00 + 2.250572146781167e+00 + 2.220586279273893e+00 + 2.190952653478714e+00 + 2.161667162009881e+00 + 2.132725747880213e+00 + 2.104124396422602e+00 + 2.075859132902099e+00 + 2.047926031580743e+00 + 2.020321209266692e+00 + 1.993040822266800e+00 + 1.966081073072867e+00 + 1.939438205166541e+00 + 1.913108500802827e+00 + 1.887088286918805e+00 + 1.861373929947225e+00 + 1.835961834345823e+00 + 1.810848447621857e+00 + 1.786030255213551e+00 + 1.761503779943143e+00 + 1.737265586321442e+00 + 1.713312275115213e+00 + 1.689640483715834e+00 + 1.666246890168493e+00 + 1.643128207113473e+00 + 1.620281182788458e+00 + 1.597702604935450e+00 + 1.575389294699183e+00 + 1.553338108095691e+00 + 1.531545938928566e+00 + 1.510009713407906e+00 + 1.488726392261371e+00 + 1.467692971937850e+00 + 1.446906480207705e+00 + 1.426363979153670e+00 + 1.406062564959602e+00 + 1.385999363940103e+00 + 1.366171536058216e+00 + 1.346576274130787e+00 + 1.327210800124654e+00 + 1.308072368828510e+00 + 1.289158266486426e+00 + 1.270465807665891e+00 + 1.251992339187792e+00 + 1.233735237889272e+00 + 1.215691907984316e+00 + 1.197859785096899e+00 + 1.180236333919823e+00 + 1.162819045897185e+00 + 1.145605442741095e+00 + 1.128593073973588e+00 + 1.111779515284567e+00 + 1.095162371880828e+00 + 1.078739275475473e+00 + 1.062507883334588e+00 + 1.046465881646835e+00 + 1.030610981874106e+00 + 1.014940920295882e+00 + 9.994534611152829e-01 + 9.841463930086627e-01 + 9.690175291593270e-01 + 9.540647093618980e-01 + 9.392857969051628e-01 + 9.246786792729085e-01 + 9.102412696338000e-01 + 8.959715035501604e-01 + 8.818673402027871e-01 + 8.679267639726700e-01 + 8.541477806828601e-01 + 8.405284189410931e-01 + 8.270667316623297e-01 + 8.137607925445277e-01 + 8.006086976874616e-01 + 7.876085666023992e-01 + 7.747585387876328e-01 + 7.620567754307064e-01 + 7.495014602973783e-01 + 7.370907966216457e-01 + 7.248230088485250e-01 + 7.126963429559050e-01 + 7.007090638413013e-01 + 6.888594572109231e-01 + 6.771458292779966e-01 + 6.655665045807759e-01 + 6.541198279036498e-01 + 6.428041637825399e-01 + 6.316178947210964e-01 + 6.205594229105623e-01 + 6.096271692194244e-01 + 5.988195719936049e-01 + 5.881350889221284e-01 + 5.775721954595900e-01 + 5.671293841176136e-01 + 5.568051664208875e-01 + 5.465980707194322e-01 + 5.365066418737608e-01 + 5.265294432641988e-01 + 5.166650544231339e-01 + 5.069120710261563e-01 + 4.972691065208522e-01 + 4.877347899800689e-01 + 4.783077664492044e-01 + 4.689866979017357e-01 + 4.597702612073233e-01 + 4.506571489021905e-01 + 4.416460700276524e-01 + 4.327357479310139e-01 + 4.239249212044141e-01 + 4.152123442913231e-01 + 4.065967853823845e-01 + 3.980770275573000e-01 + 3.896518691214699e-01 + 3.813201217302061e-01 + 3.730806117264635e-01 + 3.649321798861945e-01 + 3.568736798624809e-01 + 3.489039797704173e-01 + 3.410219613244947e-01 + 3.332265187013593e-01 + 3.255165605086018e-01 + 3.178910083898543e-01 + 3.103487958586359e-01 + 3.028888701360887e-01 + 2.955101913786422e-01 + 2.882117315106021e-01 + 2.809924755137371e-01 + 2.738514204626846e-01 + 2.667875748867065e-01 + 2.597999604522775e-01 + 2.528876103054370e-01 + 2.460495685714950e-01 + 2.392848919788540e-01 + 2.325926484518769e-01 + 2.259719167857841e-01 + 2.194217877354759e-01 + 2.129413627175208e-01 + 2.065297538274627e-01 + 2.001860848470379e-01 + 1.939094897086202e-01 + 1.876991127051828e-01 + 1.815541094417414e-01 + 1.754736452756007e-01 + 1.694568956974621e-01 + 1.635030470498157e-01 + 1.576112950508609e-01 + 1.517808453564031e-01 + 1.460109140364644e-01 + 1.403007261766342e-01 + 1.346495165784953e-01 + 1.290565300180611e-01 + 1.235210199704221e-01 + 1.180422494287421e-01 + 1.126194909047226e-01 + 1.072520253105725e-01 + 1.019391428882170e-01 + 9.668014295417104e-02 + 9.147433293860986e-02 + 8.632102939670111e-02 + 8.121955756354367e-02 + 7.616925052308399e-02 + 7.116945022739722e-02 + 6.621950693894064e-02 + 6.131877854698166e-02 + 5.646663155698649e-02 + 5.166244039926220e-02 + 4.690558691983024e-02 + 4.219546135291571e-02 + 3.753146148005052e-02 + 3.291299228995687e-02 + 2.833946692296159e-02 + 2.381030573044091e-02 + 1.932493608562982e-02 + 1.488279323951757e-02 + 1.048331933378767e-02 + 6.125963364112487e-03 + 1.810181928441051e-03 + -2.464561780353438e-03 + -6.698797872311066e-03 + -1.089304914227914e-02 + -1.504783206514415e-02 + -1.916365656771068e-02 + -2.324102555134537e-02 + -2.728043585421590e-02 + -3.128237791440187e-02 + -3.524733543518016e-02 + -3.917578628623598e-02 + -4.306820207473552e-02 + -4.692504798332473e-02 + -5.074678357205704e-02 + -5.453386225593208e-02 + -5.828673132987599e-02 + -6.200583267980977e-02 + -6.569160218738558e-02 + -6.934446987831328e-02 + -7.296486055963237e-02 + -7.655319319650564e-02 + -8.010988114185758e-02 + -8.363533270338043e-02 + -8.712995053780122e-02 + -9.059413193193132e-02 + -9.402826926020177e-02 + -9.743274938790861e-02 + -1.008079541064505e-01 + -1.041542604608216e-01 + -1.074720401131623e-01 + -1.107616598682374e-01 + -1.140234819193764e-01 + -1.172578632830942e-01 + -1.204651563472630e-01 + -1.236457089966172e-01 + -1.267998640735528e-01 + -1.299279600346222e-01 + -1.330303309819349e-01 + -1.361073061299021e-01 + -1.391592104828469e-01 + -1.421863647988072e-01 + -1.451890851855495e-01 + -1.481676836992942e-01 + -1.511224682100277e-01 + -1.540537421399553e-01 + -1.569618050599837e-01 + -1.598469524764272e-01 + -1.627094755828420e-01 + -1.655496618778017e-01 + -1.683677949236447e-01 + -1.711641541517163e-01 + -1.739390154343296e-01 + -1.766926508045859e-01 + -1.794253283544359e-01 + -1.821373127460387e-01 + -1.848288648981078e-01 + -1.875002419786971e-01 + -1.901516978443653e-01 + -1.927834826976386e-01 + -1.953958431846420e-01 + -1.979890227559544e-01 + -2.005632612952037e-01 + -2.031187952951354e-01 + -2.056558581586019e-01 + -2.081746798356756e-01 + -2.106754870586183e-01 + -2.131585035595214e-01 + -2.156239496932611e-01 + -2.180720427808593e-01 + -2.205029972492180e-01 + -2.229170242226580e-01 + -2.253143319488933e-01 + -2.276951258807381e-01 + -2.300596082676421e-01 + -2.324079786235529e-01 + -2.347404337552020e-01 + -2.370571673694448e-01 + -2.393583705568364e-01 + -2.416442317867498e-01 + -2.439149365965413e-01 + -2.461706679522762e-01 + -2.484116061949506e-01 + -2.506379289887288e-01 + -2.528498115997045e-01 + -2.550474267213886e-01 + -2.572309443123204e-01 + -2.594005320626763e-01 + -2.615563552809436e-01 + -2.636985766193694e-01 + -2.658273564814242e-01 + -2.679428529152917e-01 + -2.700452216727706e-01 + -2.721346163277996e-01 + -2.742111879420810e-01 + -2.762750854486131e-01 + -2.783264557785196e-01 + -2.803654434689624e-01 + -2.823921908087395e-01 + -2.844068381756654e-01 + -2.864095239109061e-01 + -2.884003839950212e-01 + -2.903795524955394e-01 + -2.923471617904532e-01 + -2.943033420191942e-01 + -2.962482212763220e-01 + -2.981819256807660e-01 + -3.001045795717013e-01 + -3.020163055275332e-01 + -3.039172239885258e-01 + -3.058074538261057e-01 + -3.076871122705734e-01 + -3.095563141516905e-01 + -3.114151727559051e-01 + -3.132637999546681e-01 + -3.151023057635463e-01 + -3.169307984585886e-01 + -3.187493845723606e-01 + -3.205581689117248e-01 + -3.223572548745565e-01 + -3.241467443749414e-01 + -3.259267374142799e-01 + -3.276973325691862e-01 + -3.294586270053045e-01 + -3.312107160890871e-01 + -3.329536937962613e-01 + -3.346876527428858e-01 + -3.364126840777460e-01 + -3.381288775295205e-01 + -3.398363212268976e-01 + -3.415351019703767e-01 + -3.432253052941175e-01 + -3.449070152459444e-01 + -3.465803145779997e-01 + -3.482452848007116e-01 + -3.499020059501182e-01 + -3.515505568826250e-01 + -3.531910152859590e-01 + -3.548234573752725e-01 + -3.564479582224311e-01 + -3.580645917875246e-01 + -3.596734306319520e-01 + -3.612745463110025e-01 + -3.628680093075062e-01 + -3.644538885605036e-01 + -3.660322520458910e-01 + -3.676031668332329e-01 + -3.691666987516095e-01 + -3.707229124779602e-01 + -3.722718716670178e-01 + -3.738136390608672e-01 + -3.753482761467254e-01 + -3.768758432749062e-01 + -3.783964002465877e-01 + -3.799100056353694e-01 + -3.814167166997948e-01 + -3.829165900177774e-01 + -3.844096813827866e-01 + -3.858960456354959e-01 + -3.873757364088854e-01 + -3.888488064600710e-01 + -3.903153077375676e-01 + -3.917752913452379e-01 + -3.932288075353338e-01 + -3.946759055987133e-01 + -3.961166339473677e-01 + -3.975510402779339e-01 + -3.989791715122148e-01 + -4.004010735521537e-01 + -4.018167915706618e-01 + -4.032263700983349e-01 + -4.046298528561717e-01 + -4.060272827301947e-01 + -4.074187016384220e-01 + -4.088041511045764e-01 + -4.101836719923956e-01 + -4.115573039941210e-01 + -4.129250863351419e-01 + -4.142870577221169e-01 + -4.156432559911067e-01 + -4.169937183587125e-01 + -4.183384813924751e-01 + -4.196775807600287e-01 + -4.210110517890521e-01 + -4.223389293056927e-01 + -4.236612469859990e-01 + -4.249780381358575e-01 + -4.262893357128523e-01 + -4.275951718561576e-01 + -4.288955781548201e-01 + -4.301905856512787e-01 + -4.314802245948859e-01 + -4.327645248125306e-01 + -4.340435157401011e-01 + -4.353172261319986e-01 + -4.365856843065750e-01 + -4.378489181140523e-01 + -4.391069545111200e-01 + -4.403598201489721e-01 + -4.416075414900063e-01 + -4.428501441617211e-01 + -4.440876533447125e-01 + -4.453200938994337e-01 + -4.465474900663732e-01 + -4.477698656375739e-01 + -4.489872440132049e-01 + -4.501996482091757e-01 + -4.514071007293397e-01 + -4.526096234423685e-01 + -4.538072381973440e-01 + -4.549999664346564e-01 + -4.561878287239103e-01 + -4.573708454564815e-01 + -4.585490367840940e-01 + -4.597224223838171e-01 + -4.608910215483196e-01 + -4.620548532229073e-01 + -4.632139359470852e-01 + -4.643682878385313e-01 + -4.655179266829866e-01 + -4.666628700026897e-01 + -4.678031349656974e-01 + -4.689387384105899e-01 + -4.700696968538801e-01 + -4.711960263436956e-01 + -4.723177425902391e-01 + -4.734348612979066e-01 + -4.745473978039702e-01 + -4.756553669920032e-01 + -4.767587833133353e-01 + -4.778576611599107e-01 + -4.789520147944609e-01 + -4.800418577229591e-01 + -4.811272034289876e-01 + -4.822080654661853e-01 + -4.832844566828151e-01 + -4.843563896207272e-01 + -4.854238767122197e-01 + -4.864869303811440e-01 + -4.875455627166793e-01 + -4.885997853037442e-01 + -4.896496095260600e-01 + -4.906950466868944e-01 + -4.917361080077966e-01 + -4.927728043326091e-01 + -4.938051461993963e-01 + -4.948331438840640e-01 + -4.958568075736277e-01 + -4.968761473512240e-01 + -4.978911731225704e-01 + -4.989018945002663e-01 + -4.999083208482176e-01 + -5.009104613021941e-01 + -5.019083248972503e-01 + -5.029019205602130e-01 + -5.038912570358333e-01 + -5.048763428126108e-01 + -5.058571862004539e-01 + -5.068337954285524e-01 + -5.078061785541023e-01 + -5.087743434557772e-01 + -5.097382978215317e-01 + -5.106980492175714e-01 + -5.116536051046018e-01 + -5.126049728172039e-01 + -5.135521595357905e-01 + -5.144951722594635e-01 + -5.154340177423219e-01 + -5.163687027408718e-01 + -5.172992340140365e-01 + -5.182256180631845e-01 + -5.191478612397169e-01 + -5.200659697981208e-01 + -5.209799499565910e-01 + -5.218898077706294e-01 + -5.227955490891694e-01 + -5.236971796844924e-01 + -5.245947053253370e-01 + -5.254881317688337e-01 + -5.263774645512288e-01 + -5.272627090126604e-01 + -5.281438703531137e-01 + -5.290209539977515e-01 + -5.298939652703512e-01 + -5.307629091340913e-01 + -5.316277904778723e-01 + -5.324886142110474e-01 + -5.333453852986519e-01 + -5.341981085648844e-01 + -5.350467886587517e-01 + -5.358914300418783e-01 + -5.367320373706596e-01 + -5.375686152841432e-01 + -5.384011680734792e-01 + -5.392297001047128e-01 + -5.400542157871245e-01 + -5.408747194069761e-01 + -5.416912150785628e-01 + -5.425037068232484e-01 + -5.433121987186342e-01 + -5.441166948984431e-01 + -5.449171994793097e-01 + -5.457137163885653e-01 + -5.465062494211190e-01 + -5.472948023341125e-01 + -5.480793790518950e-01 + -5.488599834110802e-01 + -5.496366191273470e-01 + -5.504092899443518e-01 + -5.511779994928784e-01 + -5.519427513029639e-01 + -5.527035490710489e-01 + -5.534603964642170e-01 + -5.542132970155166e-01 + -5.549622540841348e-01 + -5.557072711574547e-01 + -5.564483519201564e-01 + -5.571854997347668e-01 + -5.579187179919134e-01 + -5.586480102698358e-01 + -5.593733798207278e-01 + -5.600948299343745e-01 + -5.608123641702291e-01 + -5.615259858006734e-01 + -5.622356980349319e-01 + -5.629415042452564e-01 + -5.636434078437447e-01 + -5.643414121719204e-01 + -5.650355204128609e-01 + -5.657257359067179e-01 + -5.664120620074502e-01 + -5.670945018655422e-01 + -5.677730587569899e-01 + -5.684477360210265e-01 + -5.691185368946378e-01 + -5.697854646230838e-01 + -5.704485224954847e-01 + -5.711077138615709e-01 + -5.717630418949810e-01 + -5.724145097236072e-01 + -5.730621208149326e-01 + -5.737058785857441e-01 + -5.743457862811681e-01 + -5.749818469287452e-01 + -5.756140639044424e-01 + -5.762424408221788e-01 + -5.768669806578469e-01 + -5.774876866716016e-01 + -5.781045625480883e-01 + -5.787176116189466e-01 + -5.793268371095267e-01 + -5.799322422747063e-01 + -5.805338304985933e-01 + -5.811316053198213e-01 + -5.817255703521417e-01 + -5.823157287697720e-01 + -5.829020838792335e-01 + -5.834846393919914e-01 + -5.840633987477251e-01 + -5.846383653791880e-01 + -5.852095428966003e-01 + -5.857769347455314e-01 + -5.863405444497650e-01 + -5.869003757905312e-01 + -5.874564321893059e-01 + -5.880087171065591e-01 + -5.885572344676900e-01 + -5.891019879107314e-01 + -5.896429809482692e-01 + -5.901802172691951e-01 + -5.907137006344829e-01 + -5.912434348345698e-01 + -5.917694236578408e-01 + -5.922916709366750e-01 + -5.928101804947136e-01 + -5.933249560457028e-01 + -5.938360014505492e-01 + -5.943433207019595e-01 + -5.948469177828256e-01 + -5.953467966083078e-01 + -5.958429610716830e-01 + -5.963354151930935e-01 + -5.968241629967538e-01 + -5.973092085065336e-01 + -5.977905558475627e-01 + -5.982682091919279e-01 + -5.987421727060626e-01 + -5.992124504335189e-01 + -5.996790465513929e-01 + -6.001419654039183e-01 + -6.006012111567195e-01 + -6.010567880969444e-01 + -6.015087007096906e-01 + -6.019569532209035e-01 + -6.024015499278780e-01 + -6.028424953542454e-01 + -6.032797938560218e-01 + -6.037134498528102e-01 + -6.041434679778884e-01 + -6.045698527611498e-01 + -6.049926086966888e-01 + -6.054117403213235e-01 + -6.058272522301629e-01 + -6.062391491063152e-01 + -6.066474357377917e-01 + -6.070521167750024e-01 + -6.074531969194140e-01 + -6.078506811508277e-01 + -6.082445741313003e-01 + -6.086348804777613e-01 + -6.090216052590219e-01 + -6.094047534940796e-01 + -6.097843300758768e-01 + -6.101603397998798e-01 + -6.105327877567767e-01 + -6.109016791586246e-01 + -6.112670188349342e-01 + -6.116288118244032e-01 + -6.119870634033990e-01 + -6.123417788015699e-01 + -6.126929631816058e-01 + -6.130406216857481e-01 + -6.133847595846266e-01 + -6.137253821544012e-01 + -6.140624946688724e-01 + -6.143961025253998e-01 + -6.147262111225434e-01 + -6.150528258526081e-01 + -6.153759522847098e-01 + -6.156955958775930e-01 + -6.160117619293205e-01 + -6.163244560848270e-01 + -6.166336840291214e-01 + -6.169394513190288e-01 + -6.172417635406579e-01 + -6.175406263458638e-01 + -6.178360454670117e-01 + -6.181280266570051e-01 + -6.184165756494230e-01 + -6.187016981615432e-01 + -6.189834001775048e-01 + -6.192616876391890e-01 + -6.195365661632112e-01 + -6.198080416901866e-01 + -6.200761202902517e-01 + -6.203408078682074e-01 + -6.206021103982113e-01 + -6.208600339819080e-01 + -6.211145848662764e-01 + -6.213657689929696e-01 + -6.216135922609831e-01 + -6.218580610691606e-01 + -6.220991816188346e-01 + -6.223369599996067e-01 + -6.225714026287344e-01 + -6.228025157602012e-01 + -6.230303055354752e-01 + -6.232547783843585e-01 + -6.234759406837302e-01 + -6.236937987287140e-01 + -6.239083589372102e-01 + -6.241196278170006e-01 + -6.243276119301496e-01 + -6.245323178052680e-01 + -6.247337518435782e-01 + -6.249319204108740e-01 + -6.251268303788342e-01 + -6.253184884524475e-01 + -6.255069009766967e-01 + -6.256920746682559e-01 + -6.258740163701917e-01 + -6.260527328726909e-01 + -6.262282307801417e-01 + -6.264005167589047e-01 + -6.265695976839164e-01 + -6.267354804070123e-01 + -6.268981717782514e-01 + -6.270576786775590e-01 + -6.272140080071444e-01 + -6.273671666729116e-01 + -6.275171615794166e-01 + -6.276639997579259e-01 + -6.278076882572314e-01 + -6.279482340166599e-01 + -6.280856440870369e-01 + -6.282199255881125e-01 + -6.283510856176625e-01 + -6.284791313265480e-01 + -6.286040698559974e-01 + -6.287259082244099e-01 + -6.288446536460758e-01 + -6.289603134448759e-01 + -6.290728947784819e-01 + -6.291824049507972e-01 + -6.292888513285516e-01 + -6.293922409846477e-01 + -6.294925812787570e-01 + -6.295898797737625e-01 + -6.296841435561055e-01 + -6.297753800606519e-01 + -6.298635970427606e-01 + -6.299488015475858e-01 + -6.300310009429952e-01 + -6.301102030719377e-01 + -6.301864151575183e-01 + -6.302596446383568e-01 + -6.303298993873763e-01 + -6.303971867419816e-01 + -6.304615141097702e-01 + -6.305228892569528e-01 + -6.305813198299395e-01 + -6.306368133767261e-01 + -6.306893774095105e-01 + -6.307390196514921e-01 + -6.307857478830511e-01 + -6.308295697989852e-01 + -6.308704929504492e-01 + -6.309085250312678e-01 + -6.309436740902202e-01 + -6.309759477467396e-01 + -6.310053535533821e-01 + -6.310318994644450e-01 + -6.310555933584764e-01 + -6.310764430051494e-01 + -6.310944561130111e-01 + -6.311096405770181e-01 + -6.311220043955681e-01 + -6.311315554778594e-01 + -6.311383016234806e-01 + -6.311422506666780e-01 + -6.311434107412031e-01 + -6.311417897164122e-01 + -6.311373953205278e-01 + -6.311302357049288e-01 + -6.311203189243589e-01 + -6.311076528624781e-01 + -6.310922454230109e-01 + -6.310741047155799e-01 + -6.310532389686786e-01 + -6.310296560496979e-01 + -6.310033639455465e-01 + -6.309743708604478e-01 + -6.309426848479184e-01 + -6.309083139781310e-01 + -6.308712663782245e-01 + -6.308315500367087e-01 + -6.307891730465176e-01 + -6.307441436976022e-01 + -6.306964701860184e-01 + -6.306461606431758e-01 + -6.305932231701467e-01 + -6.305376659121696e-01 + -6.304794970062023e-01 + -6.304187245700347e-01 + -6.303553569805046e-01 + -6.302894025962669e-01 + -6.302208694979176e-01 + -6.301497657748981e-01 + -6.300760996409697e-01 + -6.299998795100692e-01 + -6.299211136514613e-01 + -6.298398102240708e-01 + -6.297559773915322e-01 + -6.296696236381925e-01 + -6.295807574013027e-01 + -6.294893864698483e-01 + -6.293955192818200e-01 + -6.292991645521353e-01 + -6.292003301703828e-01 + -6.290990243894826e-01 + -6.289952557946986e-01 + -6.288890326523825e-01 + -6.287803632353285e-01 + -6.286692558944412e-01 + -6.285557190083507e-01 + -6.284397608763040e-01 + -6.283213897612988e-01 + -6.282006141317734e-01 + -6.280774423035318e-01 + -6.279518824496017e-01 + -6.278239431715447e-01 + -6.276936329659792e-01 + -6.275609600561086e-01 + -6.274259327786519e-01 + -6.272885594754783e-01 + -6.271488484695774e-01 + -6.270068083043618e-01 + -6.268624473656752e-01 + -6.267157737459064e-01 + -6.265667960682418e-01 + -6.264155229504741e-01 + -6.262619625962428e-01 + -6.261061232036680e-01 + -6.259480131935671e-01 + -6.257876413121770e-01 + -6.256250157840939e-01 + -6.254601447340036e-01 + -6.252930366972961e-01 + -6.251237002207461e-01 + -6.249521437614608e-01 + -6.247783756272571e-01 + -6.246024042025771e-01 + -6.244242378628240e-01 + -6.242438848129136e-01 + -6.240613535991787e-01 + -6.238766528797192e-01 + -6.236897908519111e-01 + -6.235007757894835e-01 + -6.233096161276966e-01 + -6.231163203935827e-01 + -6.229208970207127e-01 + -6.227233543185018e-01 + -6.225237005131427e-01 + -6.223219439896936e-01 + -6.221180932821515e-01 + -6.219121568092019e-01 + -6.217041429518334e-01 + -6.214940600654550e-01 + -6.212819164164759e-01 + -6.210677203231969e-01 + -6.208514802076882e-01 + -6.206332045396580e-01 + -6.204129016762088e-01 + -6.201905798335827e-01 + -6.199662474146647e-01 + -6.197399127976954e-01 + -6.195115842446862e-01 + -6.192812702436963e-01 + -6.190489791767655e-01 + -6.188147191241502e-01 + -6.185784984898128e-01 + -6.183403256742428e-01 + -6.181002088023494e-01 + -6.178581563548247e-01 + -6.176141767575239e-01 + -6.173682779492388e-01 + -6.171204683326561e-01 + -6.168707564823446e-01 + -6.166191506410910e-01 + -6.163656588303806e-01 + -6.161102891648960e-01 + -6.158530502595377e-01 + -6.155939503803246e-01 + -6.153329975648972e-01 + -6.150702000825419e-01 + -6.148055662334609e-01 + -6.145391042808102e-01 + -6.142708224010276e-01 + -6.140007288452335e-01 + -6.137288318637003e-01 + -6.134551394181680e-01 + -6.131796597624336e-01 + -6.129024013716257e-01 + -6.126233721919256e-01 + -6.123425803085120e-01 + -6.120600340492245e-01 + -6.117757414641359e-01 + -6.114897106263320e-01 + -6.112019497520672e-01 + -6.109124671249474e-01 + -6.106212708396386e-01 + -6.103283687668304e-01 + -6.100337690977098e-01 + -6.097374799911853e-01 + -6.094395093910078e-01 + -6.091398653642833e-01 + -6.088385561024087e-01 + -6.085355898356886e-01 + -6.082309742898534e-01 + -6.079247173286892e-01 + -6.076168274335947e-01 + -6.073073125569597e-01 + -6.069961804304546e-01 + -6.066834389911383e-01 + -6.063690964791788e-01 + -6.060531610171422e-01 + -6.057356401425160e-01 + -6.054165419100932e-01 + -6.050958745176729e-01 + -6.047736455801236e-01 + -6.044498630713394e-01 + -6.041245351487873e-01 + -6.037976695799242e-01 + -6.034692741523835e-01 + -6.031393567367498e-01 + -6.028079252312161e-01 + -6.024749874110954e-01 + -6.021405510415967e-01 + -6.018046242357692e-01 + -6.014672148046522e-01 + -6.011283302871711e-01 + -6.007879786053585e-01 + -6.004461675660895e-01 + -6.001029047914931e-01 + -5.997581981158361e-01 + -5.994120553308485e-01 + -5.990644841299763e-01 + -5.987154923482985e-01 + -5.983650876334137e-01 + -5.980132773866208e-01 + -5.976600693793478e-01 + -5.973054714798371e-01 + -5.969494914365839e-01 + -5.965921366499265e-01 + -5.962334146660923e-01 + -5.958733334161985e-01 + -5.955119002909084e-01 + -5.951491227180785e-01 + -5.947850085981863e-01 + -5.944195652847630e-01 + -5.940528001366523e-01 + -5.936847210858313e-01 + -5.933153356463837e-01 + -5.929446511281147e-01 + -5.925726749957585e-01 + -5.921994146776245e-01 + -5.918248776317639e-01 + -5.914490714685531e-01 + -5.910720036664838e-01 + -5.906936815737919e-01 + -5.903141124838686e-01 + -5.899333037986367e-01 + -5.895512629817115e-01 + -5.891679973989596e-01 + -5.887835143677140e-01 + -5.883978211708401e-01 + -5.880109250637769e-01 + -5.876228334774148e-01 + -5.872335538851382e-01 + -5.868430932520374e-01 + -5.864514587624869e-01 + -5.860586578978172e-01 + -5.856646978273519e-01 + -5.852695857497323e-01 + -5.848733289413443e-01 + -5.844759343592291e-01 + -5.840774091773326e-01 + -5.836777608879199e-01 + -5.832769964405170e-01 + -5.828751228494087e-01 + -5.824721474461222e-01 + -5.820680771414760e-01 + -5.816629188869962e-01 + -5.812566799399100e-01 + -5.808493672421570e-01 + -5.804409877894702e-01 + -5.800315488931496e-01 + -5.796210574409676e-01 + -5.792095201878247e-01 + -5.787969440874288e-01 + -5.783833362006023e-01 + -5.779687035684036e-01 + -5.775530530727403e-01 + -5.771363914738108e-01 + -5.767187255974381e-01 + -5.763000625573806e-01 + -5.758804091701334e-01 + -5.754597721176316e-01 + -5.750381583420940e-01 + -5.746155745735496e-01 + -5.741920274506414e-01 + -5.737675239291555e-01 + -5.733420708457294e-01 + -5.729156748671344e-01 + -5.724883426083383e-01 + -5.720600807791615e-01 + -5.716308961653045e-01 + -5.712007954599810e-01 + -5.707697852850102e-01 + -5.703378722272431e-01 + -5.699050629355835e-01 + -5.694713639828742e-01 + -5.690367818720566e-01 + -5.686013232951076e-01 + -5.681649948578290e-01 + -5.677278029894381e-01 + -5.672897541841998e-01 + -5.668508549514105e-01 + -5.664111117923113e-01 + -5.659705312703284e-01 + -5.655291198708162e-01 + -5.650868839171556e-01 + -5.646438297396282e-01 + -5.641999637601537e-01 + -5.637552925169101e-01 + -5.633098223391846e-01 + -5.628635595080524e-01 + -5.624165104013904e-01 + -5.619686812129524e-01 + -5.615200782186582e-01 + -5.610707080464411e-01 + -5.606205767194389e-01 + -5.601696901727680e-01 + -5.597180550627928e-01 + -5.592656777039943e-01 + -5.588125640834879e-01 + -5.583587201544192e-01 + -5.579041522213387e-01 + -5.574488666805684e-01 + -5.569928694014434e-01 + -5.565361664370690e-01 + -5.560787640439252e-01 + -5.556206683493946e-01 + -5.551618853326125e-01 + -5.547024208857518e-01 + -5.542422809960397e-01 + -5.537814718214656e-01 + -5.533199995563840e-01 + -5.528578699065892e-01 + -5.523950887012330e-01 + -5.519316620139326e-01 + -5.514675956847120e-01 + -5.510028956792654e-01 + -5.505375681122012e-01 + -5.500716185256428e-01 + -5.496050526609592e-01 + -5.491378767346244e-01 + -5.486700964364043e-01 + -5.482017173715276e-01 + -5.477327453596050e-01 + -5.472631862648399e-01 + -5.467930458019109e-01 + -5.463223294669347e-01 + -5.458510432287255e-01 + -5.453791929736209e-01 + -5.449067840000759e-01 + -5.444338218966174e-01 + -5.439603123952597e-01 + -5.434862611282417e-01 + -5.430116738240560e-01 + -5.425365561436022e-01 + -5.420609134355956e-01 + -5.415847511352451e-01 + -5.411080748136494e-01 + -5.406308901525899e-01 + -5.401532026526268e-01 + -5.396750177177082e-01 + -5.391963408895222e-01 + -5.387171774649071e-01 + -5.382375326730170e-01 + -5.377574122460893e-01 + -5.372768215524759e-01 + -5.367957656717409e-01 + -5.363142502106338e-01 + -5.358322806031541e-01 + -5.353498619928253e-01 + -5.348669995911720e-01 + -5.343836987381033e-01 + -5.338999648334884e-01 + -5.334158029976483e-01 + -5.329312184607295e-01 + -5.324462166033185e-01 + -5.319608023124877e-01 + -5.314749807283198e-01 + -5.309887574568507e-01 + -5.305021373834015e-01 + -5.300151254489873e-01 + -5.295277270550899e-01 + -5.290399471460621e-01 + -5.285517906644440e-01 + -5.280632628772480e-01 + -5.275743687930865e-01 + -5.270851133485194e-01 + -5.265955015863814e-01 + -5.261055383771222e-01 + -5.256152286457003e-01 + -5.251245776074701e-01 + -5.246335901741112e-01 + -5.241422711040373e-01 + -5.236506252667474e-01 + -5.231586574906982e-01 + -5.226663726352896e-01 + -5.221737757253558e-01 + -5.216808715970676e-01 + -5.211876649797802e-01 + -5.206941607382560e-01 + -5.202003635069621e-01 + -5.197062778404161e-01 + -5.192119087096243e-01 + -5.187172609937223e-01 + -5.182223393579939e-01 + -5.177271482807863e-01 + -5.172316923981860e-01 + -5.167359765148800e-01 + -5.162400053033168e-01 + -5.157437833544083e-01 + -5.152473152222008e-01 + -5.147506055161414e-01 + -5.142536587718484e-01 + -5.137564794429633e-01 + -5.132590721404230e-01 + -5.127614414610688e-01 + -5.122635918987255e-01 + -5.117655278912282e-01 + -5.112672538418732e-01 + -5.107687741570007e-01 + -5.102700934318621e-01 + -5.097712161511054e-01 + -5.092721464952894e-01 + -5.087728887586368e-01 + -5.082734473837237e-01 + -5.077738269224511e-01 + -5.072740315773641e-01 + -5.067740655070005e-01 + -5.062739331645890e-01 + -5.057736389339202e-01 + -5.052731870571522e-01 + -5.047725816027976e-01 + -5.042718267556677e-01 + -5.037709267723895e-01 + -5.032698858620083e-01 + -5.027687082997551e-01 + -5.022673983228978e-01 + -5.017659599138892e-01 + -5.012643972224838e-01 + -5.007627144504877e-01 + -5.002609154317549e-01 + -4.997590043686060e-01 + -4.992569856498065e-01 + -4.987548629163329e-01 + -4.982526401066572e-01 + -4.977503215591422e-01 + -4.972479113357710e-01 + -4.967454132608579e-01 + -4.962428310876830e-01 + -4.957401690448965e-01 + -4.952374311333114e-01 + -4.947346209581790e-01 + -4.942317423902789e-01 + -4.937287995168010e-01 + -4.932257964768885e-01 + -4.927227367709692e-01 + -4.922196239985463e-01 + -4.917164622446805e-01 + -4.912132554897460e-01 + -4.907100074652099e-01 + -4.902067216434476e-01 + -4.897034018910860e-01 + -4.892000521396699e-01 + -4.886966760659724e-01 + -4.881932772071136e-01 + -4.876898592264887e-01 + -4.871864261030248e-01 + -4.866829812293292e-01 + -4.861795280147214e-01 + -4.856760706607693e-01 + -4.851726126266216e-01 + -4.846691571189501e-01 + -4.841657080652781e-01 + -4.836622690168214e-01 + -4.831588433295234e-01 + -4.826554347812969e-01 + -4.821520468729375e-01 + -4.816486828820545e-01 + -4.811453462713459e-01 + -4.806420406166251e-01 + -4.801387695127853e-01 + -4.796355363816449e-01 + -4.791323444815042e-01 + -4.786291970695780e-01 + -4.781260978727254e-01 + -4.776230503252043e-01 + -4.771200574973888e-01 + -4.766171228253449e-01 + -4.761142497486388e-01 + -4.756114415594656e-01 + -4.751087014547341e-01 + -4.746060327035595e-01 + -4.741034386828772e-01 + -4.736009226286348e-01 + -4.730984877717556e-01 + -4.725961373913972e-01 + -4.720938746127822e-01 + -4.715917026117559e-01 + -4.710896247171748e-01 + -4.705876440070008e-01 + -4.700857635192827e-01 + -4.695839864443119e-01 + -4.690823160197067e-01 + -4.685807553687465e-01 + -4.680793073815264e-01 + -4.675779752270572e-01 + -4.670767621237579e-01 + -4.665756710130068e-01 + -4.660747048828000e-01 + -4.655738667469987e-01 + -4.650731595624170e-01 + -4.645725864569897e-01 + -4.640721505529091e-01 + -4.635718546060059e-01 + -4.630717014390969e-01 + -4.625716940204364e-01 + -4.620718354412200e-01 + -4.615721285948061e-01 + -4.610725762550177e-01 + -4.605731814392849e-01 + -4.600739469669758e-01 + -4.595748755034438e-01 + -4.590759700613133e-01 + -4.585772335293120e-01 + -4.580786685902926e-01 + -4.575802780165928e-01 + -4.570820645542124e-01 + -4.565840309327809e-01 + -4.560861801183225e-01 + -4.555885148408127e-01 + -4.550910375242214e-01 + -4.545937511574892e-01 + -4.540966585092119e-01 + -4.535997618400510e-01 + -4.531030641427475e-01 + -4.526065682230286e-01 + -4.521102761991050e-01 + -4.516141909960451e-01 + -4.511183155232459e-01 + -4.506226519976986e-01 + -4.501272029129367e-01 + -4.496319709853875e-01 + -4.491369589904647e-01 + -4.486421693813144e-01 + -4.481476045149588e-01 + -4.476532669406306e-01 + -4.471591591812127e-01 + -4.466652837454304e-01 + -4.461716431800687e-01 + -4.456782399407630e-01 + -4.451850764283579e-01 + -4.446921550770006e-01 + -4.441994783152980e-01 + -4.437070485743053e-01 + -4.432148683148817e-01 + -4.427229399164072e-01 + -4.422312656936392e-01 + -4.417398479943503e-01 + -4.412486891611525e-01 + -4.407577915365379e-01 + -4.402671575060104e-01 + -4.397767893532367e-01 + -4.392866892910770e-01 + -4.387968597340107e-01 + -4.383073029681190e-01 + -4.378180210879689e-01 + -4.373290163087382e-01 + -4.368402909924953e-01 + -4.363518475687816e-01 + -4.358636880897754e-01 + -4.353758146064535e-01 + -4.348882293452391e-01 + -4.344009344375495e-01 + -4.339139321041776e-01 + -4.334272247184532e-01 + -4.329408142509990e-01 + -4.324547026649819e-01 + -4.319688922210647e-01 + -4.314833850702666e-01 + -4.309981832317592e-01 + -4.305132886299618e-01 + -4.300287034407881e-01 + -4.295444298858639e-01 + -4.290604699557538e-01 + -4.285768254794737e-01 + -4.280934983815344e-01 + -4.276104909880938e-01 + -4.271278053251724e-01 + -4.266454431999359e-01 + -4.261634065006114e-01 + -4.256816972235624e-01 + -4.252003173934318e-01 + -4.247192689049444e-01 + -4.242385536499166e-01 + -4.237581735472888e-01 + -4.232781305399061e-01 + -4.227984264773803e-01 + -4.223190631457318e-01 + -4.218400424415704e-01 + -4.213613663598799e-01 + -4.208830368540804e-01 + -4.204050553934426e-01 + -4.199274237890383e-01 + -4.194501442515862e-01 + -4.189732183034799e-01 + -4.184966476302857e-01 + -4.180204343198091e-01 + -4.175445800025869e-01 + -4.170690862458790e-01 + -4.165939547960728e-01 + -4.161191875920802e-01 + -4.156447863485650e-01 + -4.151707524172177e-01 + -4.146970878143395e-01 + -4.142237944432959e-01 + -4.137508735370036e-01 + -4.132783267358912e-01 + -4.128061559031381e-01 + -4.123343628419361e-01 + -4.118629489726368e-01 + -4.113919157251955e-01 + -4.109212649651476e-01 + -4.104509983224866e-01 + -4.099811172669397e-01 + -4.095116233202941e-01 + -4.090425181490535e-01 + -4.085738034100841e-01 + -4.081054804950061e-01 + -4.076375508831032e-01 + -4.071700161671795e-01 + -4.067028779692610e-01 + -4.062361376606066e-01 + -4.057697965353959e-01 + -4.053038563335837e-01 + -4.048383186645677e-01 + -4.043731849141807e-01 + -4.039084564103662e-01 + -4.034441345521896e-01 + -4.029802208230617e-01 + -4.025167167043049e-01 + -4.020536236099443e-01 + -4.015909428779320e-01 + -4.011286758375757e-01 + -4.006668238996902e-01 + -4.002053885607212e-01 + -3.997443712200008e-01 + -3.992837731698375e-01 + -3.988235956310492e-01 + -3.983638399923307e-01 + -3.979045076012857e-01 + -3.974455996644362e-01 + -3.969871175556028e-01 + -3.965290626455606e-01 + -3.960714361699136e-01 + -3.956142393772600e-01 + -3.951574735515524e-01 + -3.947011399985758e-01 + -3.942452398354794e-01 + -3.937897742524872e-01 + -3.933347447660869e-01 + -3.928801524442024e-01 + -3.924259983101159e-01 + -3.919722839283850e-01 + -3.915190103656777e-01 + -3.910661784756895e-01 + -3.906137895655892e-01 + -3.901618450499643e-01 + -3.897103461604648e-01 + -3.892592935529919e-01 + -3.888086884121152e-01 + -3.883585322771145e-01 + -3.879088261485191e-01 + -3.874595710701922e-01 + -3.870107681556456e-01 + -3.865624182556531e-01 + -3.861145225228043e-01 + -3.856670823544472e-01 + -3.852200986473037e-01 + -3.847735723987576e-01 + -3.843275047747315e-01 + -3.838818965026468e-01 + -3.834367486164244e-01 + -3.829920625791138e-01 + -3.825478392535004e-01 + -3.821040794322394e-01 + -3.816607841213338e-01 + -3.812179544462010e-01 + -3.807755914230820e-01 + -3.803336958584798e-01 + -3.798922686597118e-01 + -3.794513108818827e-01 + -3.790108236907996e-01 + -3.785708078449803e-01 + -3.781312640889848e-01 + -3.776921934895628e-01 + -3.772535969260590e-01 + -3.768154752452403e-01 + -3.763778294637203e-01 + -3.759406605249527e-01 + -3.755039692439986e-01 + -3.750677562951532e-01 + -3.746320226741715e-01 + -3.741967693787305e-01 + -3.737619968727901e-01 + -3.733277061470673e-01 + -3.728938983949728e-01 + -3.724605741247380e-01 + -3.720277341192338e-01 + -3.715953793429491e-01 + -3.711635103186269e-01 + -3.707321278978636e-01 + -3.703012331728173e-01 + -3.698708267439747e-01 + -3.694409092657609e-01 + -3.690114815572269e-01 + -3.685825444178367e-01 + -3.681540985405766e-01 + -3.677261445488677e-01 + -3.672986832474148e-01 + -3.668717154245260e-01 + -3.664452417818624e-01 + -3.660192630178876e-01 + -3.655937798167319e-01 + -3.651687928442244e-01 + -3.647443027770453e-01 + -3.643203103057334e-01 + -3.638968161236534e-01 + -3.634738208501973e-01 + -3.630513251204181e-01 + -3.626293296340570e-01 + -3.622078349959966e-01 + -3.617868418102546e-01 + -3.613663507559756e-01 + -3.609463624258993e-01 + -3.605268773947004e-01 + -3.601078962972172e-01 + -3.596894197319259e-01 + -3.592714482724653e-01 + -3.588539824938156e-01 + -3.584370229705016e-01 + -3.580205702765974e-01 + -3.576046249835235e-01 + -3.571891876270012e-01 + -3.567742587321382e-01 + -3.563598388637925e-01 + -3.559459285557617e-01 + -3.555325283179373e-01 + -3.551196386794110e-01 + -3.547072601423791e-01 + -3.542953931967586e-01 + -3.538840383835105e-01 + -3.534731961849680e-01 + -3.530628670336623e-01 + -3.526530514374770e-01 + -3.522437498876279e-01 + -3.518349628366106e-01 + -3.514266907403692e-01 + -3.510189340474827e-01 + -3.506116931966672e-01 + -3.502049686305037e-01 + -3.497987607886671e-01 + -3.493930701015490e-01 + -3.489878969787067e-01 + -3.485832418243141e-01 + -3.481791050461803e-01 + -3.477754870557839e-01 + -3.473723882547367e-01 + -3.469698090253131e-01 + -3.465677497415546e-01 + -3.461662107762984e-01 + -3.457651925045610e-01 + -3.453646952920019e-01 + -3.449647194961470e-01 + -3.445652654674211e-01 + -3.441663335489293e-01 + -3.437679240760669e-01 + -3.433700373751777e-01 + -3.429726737709668e-01 + -3.425758335909973e-01 + -3.421795171685511e-01 + -3.417837248082679e-01 + -3.413884567949557e-01 + -3.409937134173290e-01 + -3.405994949798623e-01 + -3.402058017865278e-01 + -3.398126341027504e-01 + -3.394199921921239e-01 + -3.390278763247643e-01 + -3.386362867748747e-01 + -3.382452237948665e-01 + -3.378546876227794e-01 + -3.374646785249709e-01 + -3.370751967392704e-01 + -3.366862424749215e-01 + -3.362978159833941e-01 + -3.359099174981644e-01 + -3.355225472182573e-01 + -3.351357053498810e-01 + -3.347493921057998e-01 + -3.343636076973308e-01 + -3.339783523006465e-01 + -3.335936261089775e-01 + -3.332094293460974e-01 + -3.328257621547543e-01 + -3.324426246881435e-01 + -3.320600171619409e-01 + -3.316779397280902e-01 + -3.312963925265998e-01 + -3.309153757279716e-01 + -3.305348894653861e-01 + -3.301549338737799e-01 + -3.297755091265357e-01 + -3.293966153413448e-01 + -3.290182526215280e-01 + -3.286404211114115e-01 + -3.282631209285871e-01 + -3.278863521751846e-01 + -3.275101149642331e-01 + -3.271344093953196e-01 + -3.267592355617253e-01 + -3.263845935667566e-01 + -3.260104834866909e-01 + -3.256369053882101e-01 + -3.252638593756906e-01 + -3.248913455268053e-01 + -3.245193638907094e-01 + -3.241479145199382e-01 + -3.237769974872735e-01 + -3.234066128661293e-01 + -3.230367606622389e-01 + -3.226674409186036e-01 + -3.222986537192250e-01 + -3.219303990783447e-01 + -3.215626770146125e-01 + -3.211954875680534e-01 + -3.208288307426270e-01 + -3.204627065455645e-01 + -3.200971150001409e-01 + -3.197320561103191e-01 + -3.193675298795836e-01 + -3.190035363166080e-01 + -3.186400754009213e-01 + -3.182771471114187e-01 + -3.179147514432106e-01 + -3.175528883799994e-01 + -3.171915578921511e-01 + -3.168307599394173e-01 + -3.164704945026028e-01 + -3.161107615528752e-01 + -3.157515610223091e-01 + -3.153928928534279e-01 + -3.150347570035595e-01 + -3.146771534412893e-01 + -3.143200821026652e-01 + -3.139635429048980e-01 + -3.136075357713601e-01 + -3.132520606345795e-01 + -3.128971174301287e-01 + -3.125427060850263e-01 + -3.121888265003789e-01 + -3.118354785699559e-01 + -3.114826622209773e-01 + -3.111303773636806e-01 + -3.107786238863177e-01 + -3.104274016699458e-01 + -3.100767106006651e-01 + -3.097265505731036e-01 + -3.093769214901858e-01 + -3.090278232197667e-01 + -3.086792556057311e-01 + -3.083312185528201e-01 + -3.079837119302323e-01 + -3.076367355606988e-01 + -3.072902893338402e-01 + -3.069443731087555e-01 + -3.065989866918071e-01 + -3.062541299629242e-01 + -3.059098027895394e-01 + -3.055660049841727e-01 + -3.052227363624680e-01 + -3.048799967605036e-01 + -3.045377860349815e-01 + -3.041961039937703e-01 + -3.038549504461246e-01 + -3.035143252370935e-01 + -3.031742281687436e-01 + -3.028346590287212e-01 + -3.024956176228422e-01 + -3.021571037727226e-01 + -3.018191172891879e-01 + -3.014816579447884e-01 + -3.011447255196590e-01 + -3.008083198102758e-01 + -3.004724406299011e-01 + -3.001370877400161e-01 + -2.998022608844934e-01 + -2.994679598576119e-01 + -2.991341844426006e-01 + -2.988009344054493e-01 + -2.984682095047237e-01 + -2.981360094999961e-01 + -2.978043341494513e-01 + -2.974731831997393e-01 + -2.971425563888731e-01 + -2.968124534589884e-01 + -2.964828741880918e-01 + -2.961538183196636e-01 + -2.958252855581221e-01 + -2.954972756291568e-01 + -2.951697882690829e-01 + -2.948428232168150e-01 + -2.945163801997789e-01 + -2.941904589349781e-01 + -2.938650591314966e-01 + -2.935401805013078e-01 + -2.932158227514122e-01 + -2.928919855851135e-01 + -2.925686687341852e-01 + -2.922458719001491e-01 + -2.919235947316832e-01 + -2.916018369508684e-01 + -2.912805982685433e-01 + -2.909598783275820e-01 + -2.906396768390501e-01 + -2.903199935181080e-01 + -2.900008280188033e-01 + -2.896821799916231e-01 + -2.893640491090957e-01 + -2.890464350819901e-01 + -2.887293375718574e-01 + -2.884127562142981e-01 + -2.880966906629407e-01 + -2.877811406014185e-01 + -2.874661057081589e-01 + -2.871515856017081e-01 + -2.868375799224188e-01 + -2.865240883310016e-01 + -2.862111104788733e-01 + -2.858986460098822e-01 + -2.855866945593247e-01 + -2.852752557499685e-01 + -2.849643292069009e-01 + -2.846539145659956e-01 + -2.843440114851778e-01 + -2.840346195818731e-01 + -2.837257384382189e-01 + -2.834173676812886e-01 + -2.831095069534547e-01 + -2.828021558855677e-01 + -2.824953140398479e-01 + -2.821889810170294e-01 + -2.818831564761255e-01 + -2.815778399984394e-01 + -2.812730311718642e-01 + -2.809687296216254e-01 + -2.806649349155874e-01 + -2.803616466281044e-01 + -2.800588643758425e-01 + -2.797565877594176e-01 + -2.794548163592918e-01 + -2.791535497376408e-01 + -2.788527874670974e-01 + -2.785525291296920e-01 + -2.782527743138438e-01 + -2.779535226034689e-01 + -2.776547735631448e-01 + -2.773565267276963e-01 + -2.770587816777879e-01 + -2.767615379983304e-01 + -2.764647952191276e-01 + -2.761685529026718e-01 + -2.758728106207560e-01 + -2.755775679024411e-01 + -2.752828243050798e-01 + -2.749885793975552e-01 + -2.746948327088052e-01 + -2.744015837838452e-01 + -2.741088321749212e-01 + -2.738165773969221e-01 + -2.735248189792139e-01 + -2.732335564721672e-01 + -2.729427894286903e-01 + -2.726525173657923e-01 + -2.723627397775934e-01 + -2.720734562117226e-01 + -2.717846661993187e-01 + -2.714963692431568e-01 + -2.712085648712142e-01 + -2.709212526021956e-01 + -2.706344319386959e-01 + -2.703481024077038e-01 + -2.700622635195931e-01 + -2.697769147573882e-01 + -2.694920556414950e-01 + -2.692076856844960e-01 + -2.689238043678598e-01 + -2.686404111894522e-01 + -2.683575056539274e-01 + -2.680750872618156e-01 + -2.677931554956217e-01 + -2.675117098420171e-01 + -2.672307498062658e-01 + -2.669502748541435e-01 + -2.666702844564393e-01 + -2.663907781339158e-01 + -2.661117553567487e-01 + -2.658332155842312e-01 + -2.655551583220328e-01 + -2.652775830228958e-01 + -2.650004891310402e-01 + -2.647238761635896e-01 + -2.644477435849875e-01 + -2.641720908275026e-01 + -2.638969173638899e-01 + -2.636222226679477e-01 + -2.633480062028563e-01 + -2.630742674151484e-01 + -2.628010057675256e-01 + -2.625282207270022e-01 + -2.622559117157733e-01 + -2.619840781930577e-01 + -2.617127196438671e-01 + -2.614418354712815e-01 + -2.611714251171109e-01 + -2.609014880694051e-01 + -2.606320237300626e-01 + -2.603630315312080e-01 + -2.600945109576975e-01 + -2.598264614192900e-01 + -2.595588823272051e-01 + -2.592917731268140e-01 + -2.590251332515323e-01 + -2.587589621335352e-01 + -2.584932592080277e-01 + -2.582280238899204e-01 + -2.579632555996659e-01 + -2.576989537753064e-01 + -2.574351178135512e-01 + -2.571717471205571e-01 + -2.569088411498421e-01 + -2.566463993032694e-01 + -2.563844209736399e-01 + -2.561229055922761e-01 + -2.558618525664796e-01 + -2.556012613001373e-01 + -2.553411312228936e-01 + -2.550814617199114e-01 + -2.548222521633088e-01 + -2.545635019702024e-01 + -2.543052105636615e-01 + -2.540473773489130e-01 + -2.537900016856341e-01 + -2.535330829668063e-01 + -2.532766206092137e-01 + -2.530206140025920e-01 + -2.527650625373169e-01 + -2.525099656058339e-01 + -2.522553225882911e-01 + -2.520011328519368e-01 + -2.517473957689335e-01 + -2.514941107682424e-01 + -2.512412772287477e-01 + -2.509888944763962e-01 + -2.507369619085763e-01 + -2.504854789235316e-01 + -2.502344448942996e-01 + -2.499838591881081e-01 + -2.497337211675947e-01 + -2.494840301941274e-01 + -2.492347856449565e-01 + -2.489859868896926e-01 + -2.487376332816026e-01 + -2.484897241934407e-01 + -2.482422589923619e-01 + -2.479952370263670e-01 + -2.477486576676466e-01 + -2.475025202765806e-01 + -2.472568241776227e-01 + -2.470115687463755e-01 + -2.467667533575219e-01 + -2.465223773319763e-01 + -2.462784400223504e-01 + -2.460349407926405e-01 + -2.457918789841980e-01 + -2.455492539346369e-01 + -2.453070649885519e-01 + -2.450653115068263e-01 + -2.448239928212929e-01 + -2.445831082525867e-01 + -2.443426571517872e-01 + -2.441026388729581e-01 + -2.438630527595843e-01 + -2.436238981283992e-01 + -2.433851743000419e-01 + -2.431468806082007e-01 + -2.429090164035606e-01 + -2.426715810065056e-01 + -2.424345737214870e-01 + -2.421979939156839e-01 + -2.419618409122474e-01 + -2.417261139893861e-01 + -2.414908125047008e-01 + -2.412559357926221e-01 + -2.410214831428485e-01 + -2.407874538901436e-01 + -2.405538473594189e-01 + -2.403206628448788e-01 + -2.400878996494245e-01 + -2.398555571012901e-01 + -2.396236345489386e-01 + -2.393921312730178e-01 + -2.391610465589564e-01 + -2.389303797400675e-01 + -2.387001301206918e-01 + -2.384702970040557e-01 + -2.382408797142012e-01 + -2.380118775445049e-01 + -2.377832897784107e-01 + -2.375551157141706e-01 + -2.373273546676602e-01 + -2.371000059435911e-01 + -2.368730688080822e-01 + -2.366465425799626e-01 + -2.364204265795865e-01 + -2.361947200488833e-01 + -2.359694222928865e-01 + -2.357445326362645e-01 + -2.355200503199650e-01 + -2.352959746331166e-01 + -2.350723049000333e-01 + -2.348490404054174e-01 + -2.346261804119323e-01 + -2.344037241869703e-01 + -2.341816710532240e-01 + -2.339600202844186e-01 + -2.337387711161095e-01 + -2.335179228570654e-01 + -2.332974748051559e-01 + -2.330774262250223e-01 + -2.328577763695832e-01 + -2.326385245095027e-01 + -2.324196699339893e-01 + -2.322012119071908e-01 + -2.319831496985562e-01 + -2.317654825913850e-01 + -2.315482098501277e-01 + -2.313313307350805e-01 + -2.311148445095759e-01 + -2.308987504304352e-01 + -2.306830477605995e-01 + -2.304677357746768e-01 + -2.302528137313455e-01 + -2.300382808821649e-01 + -2.298241364802842e-01 + -2.296103797849810e-01 + -2.293970100645507e-01 + -2.291840265929282e-01 + -2.289714285853380e-01 + -2.287592152687787e-01 + -2.285473859575702e-01 + -2.283359398767679e-01 + -2.281248762354934e-01 + -2.279141943457151e-01 + -2.277038934347241e-01 + -2.274939727028900e-01 + -2.272844314557521e-01 + -2.270752689260884e-01 + -2.268664843063303e-01 + -2.266580768713468e-01 + -2.264500458690802e-01 + -2.262423905203003e-01 + -2.260351100742427e-01 + -2.258282037663114e-01 + -2.256216708189812e-01 + -2.254155104759721e-01 + -2.252097219699820e-01 + -2.250043045201664e-01 + -2.247992573593203e-01 + -2.245945797283117e-01 + -2.243902708632074e-01 + -2.241863299547213e-01 + -2.239827562297785e-01 + -2.237795489631809e-01 + -2.235767073479459e-01 + -2.233742305913306e-01 + -2.231721179508258e-01 + -2.229703686190215e-01 + -2.227689817967141e-01 + -2.225679567331226e-01 + -2.223672926389324e-01 + -2.221669887137792e-01 + -2.219670441735496e-01 + -2.217674582593449e-01 + -2.215682301863681e-01 + -2.213693591068690e-01 + -2.211708442449674e-01 + -2.209726848493868e-01 + -2.207748801280919e-01 + -2.205774292618204e-01 + -2.203803314334422e-01 + -2.201835858632719e-01 + -2.199871917828554e-01 + -2.197911484006530e-01 + -2.195954548584606e-01 + -2.194001103587555e-01 + -2.192051141421317e-01 + -2.190104654040938e-01 + -2.188161633272981e-01 + -2.186222070944807e-01 + -2.184285959003400e-01 + -2.182353289399314e-01 + -2.180424054040691e-01 + -2.178498244760091e-01 + -2.176575853577229e-01 + -2.174656872563868e-01 + -2.172741293153170e-01 + -2.170829107184905e-01 + -2.168920306960583e-01 + -2.167014883907840e-01 + -2.165112829716549e-01 + -2.163214136638050e-01 + -2.161318796380734e-01 + -2.159426800456078e-01 + -2.157538140457635e-01 + -2.155652808465100e-01 + -2.153770796378261e-01 + -2.151892095617934e-01 + -2.150016698096599e-01 + -2.148144595574814e-01 + -2.146275779264766e-01 + -2.144410241083473e-01 + -2.142547972973645e-01 + -2.140688966286696e-01 + -2.138833212713278e-01 + -2.136980704068839e-01 + -2.135131431962469e-01 + -2.133285387811797e-01 + -2.131442563097479e-01 + -2.129602949644751e-01 + -2.127766538888946e-01 + -2.125933322205115e-01 + -2.124103291538361e-01 + -2.122276438425608e-01 + -2.120452754131807e-01 + -2.118632230196053e-01 + -2.116814858091140e-01 + -2.115000629262062e-01 + -2.113189535366684e-01 + -2.111381567835468e-01 + -2.109576717897184e-01 + -2.107774976942802e-01 + -2.105976336477213e-01 + -2.104180788038142e-01 + -2.102388322993181e-01 + -2.100598932684242e-01 + -2.098812608470688e-01 + -2.097029341689293e-01 + -2.095249123662445e-01 + -2.093471945702010e-01 + -2.091697799107427e-01 + -2.089926675162990e-01 + -2.088158565139439e-01 + -2.086393460309292e-01 + -2.084631351904399e-01 + -2.082872231124364e-01 + -2.081116089361562e-01 + -2.079362917906518e-01 + -2.077612707758083e-01 + -2.075865450013143e-01 + -2.074121135936494e-01 + -2.072379756933602e-01 + -2.070641303864229e-01 + -2.068905767613353e-01 + -2.067173139701657e-01 + -2.065443411403108e-01 + -2.063716573678470e-01 + -2.061992617242399e-01 + -2.060271533191409e-01 + -2.058553312792487e-01 + -2.056837947057731e-01 + -2.055125426973447e-01 + -2.053415743575506e-01 + -2.051708887985432e-01 + -2.050004850901530e-01 + -2.048303622987561e-01 + -2.046605195888223e-01 + -2.044909560501713e-01 + -2.043216707137636e-01 + -2.041526627003059e-01 + -2.039839311053935e-01 + -2.038154749924674e-01 + -2.036472934779214e-01 + -2.034793856435669e-01 + -2.033117505334730e-01 + -2.031443872603400e-01 + -2.029772949053144e-01 + -2.028104725040109e-01 + -2.026439191805672e-01 + -2.024776340229360e-01 + -2.023116160442759e-01 + -2.021458643362796e-01 + -2.019803779931268e-01 + -2.018151560674621e-01 + -2.016501976152565e-01 + -2.014855017030598e-01 + -2.013210674074579e-01 + -2.011568937830132e-01 + -2.009929798869589e-01 + -2.008293247967324e-01 + -2.006659275530022e-01 + -2.005027871933542e-01 + -2.003399027889975e-01 + -2.001772733993469e-01 + -2.000148980648089e-01 + -1.998527758076494e-01 + -1.996909056937942e-01 + -1.995292867991256e-01 + -1.993679181495860e-01 + -1.992067987609143e-01 + -1.990459276660739e-01 + -1.988853039482369e-01 + -1.987249266385540e-01 + -1.985647947339026e-01 + -1.984049072747179e-01 + -1.982452632992336e-01 + -1.980858618372365e-01 + -1.979267019229292e-01 + -1.977677825816225e-01 + -1.976091028269504e-01 + -1.974506616652059e-01 + -1.972924581269546e-01 + -1.971344912595772e-01 + -1.969767600601777e-01 + -1.968192635197257e-01 + -1.966620006473419e-01 + -1.965049704914111e-01 + -1.963481720619957e-01 + -1.961916043159508e-01 + -1.960352662866058e-01 + -1.958791570023236e-01 + -1.957232754408347e-01 + -1.955676205736371e-01 + -1.954121914050787e-01 + -1.952569869811404e-01 + -1.951020062511957e-01 + -1.949472481743376e-01 + -1.947927118000400e-01 + -1.946383960967118e-01 + -1.944843000224015e-01 + -1.943304226010136e-01 + -1.941767627996486e-01 + -1.940233195719773e-01 + -1.938700919198527e-01 + -1.937170788011597e-01 + -1.935642791691659e-01 + -1.934116920404960e-01 + -1.932593163702813e-01 + -1.931071510855982e-01 + -1.929551951739442e-01 + -1.928034476111422e-01 + -1.926519073523142e-01 + -1.925005733427448e-01 + -1.923494445333268e-01 + -1.921985198850023e-01 + -1.920477983694047e-01 + -1.918972789099489e-01 + -1.917469604078139e-01 + -1.915968418647559e-01 + -1.914469222323946e-01 + -1.912972003977130e-01 + -1.911476753153419e-01 + -1.909983459354311e-01 + -1.908492111828614e-01 + -1.907002699990133e-01 + -1.905515213021572e-01 + -1.904029639829450e-01 + -1.902545969863778e-01 + -1.901064192518998e-01 + -1.899584296832387e-01 + -1.898106271909556e-01 + -1.896630106872466e-01 + -1.895155790805884e-01 + -1.893683312769490e-01 + -1.892212661839438e-01 + -1.890743827110565e-01 + -1.889276797429612e-01 + -1.887811561730439e-01 + -1.886348109311961e-01 + -1.884886428944042e-01 + -1.883426509295119e-01 + -1.881968339481026e-01 + -1.880511908244114e-01 + -1.879057204210790e-01 + -1.877604216379617e-01 + -1.876152933660684e-01 + -1.874703344759240e-01 + -1.873255438107255e-01 + -1.871809202288037e-01 + -1.870364626111082e-01 + -1.868921698587295e-01 + -1.867480408184902e-01 + -1.866040743068453e-01 + -1.864602692045282e-01 + -1.863166243684211e-01 + -1.861731386269271e-01 + -1.860298108368848e-01 + -1.858866398430710e-01 + -1.857436244746902e-01 + -1.856007635808946e-01 + -1.854580560069532e-01 + -1.853155005825300e-01 + -1.851730961153894e-01 + -1.850308414342497e-01 + -1.848887353926573e-01 + -1.847467767859671e-01 + -1.846049644137440e-01 + -1.844632971091011e-01 + -1.843217736893654e-01 + -1.841803929497542e-01 + -1.840391536710132e-01 + -1.838980546953601e-01 + -1.837570948428414e-01 + -1.836162728527662e-01 + -1.834755875142904e-01 + -1.833350376404768e-01 + -1.831946220322505e-01 + -1.830543394615971e-01 + -1.829141886951903e-01 + -1.827741685199023e-01 + -1.826342777082210e-01 + -1.824945150204152e-01 + -1.823548792146146e-01 + -1.822153690716325e-01 + -1.820759833652730e-01 + -1.819367208114371e-01 + -1.817975801678411e-01 + -1.816585602158104e-01 + -1.815196596908165e-01 + -1.813808773333636e-01 + -1.812422118861797e-01 + -1.811036620617022e-01 + -1.809652266051679e-01 + -1.808269042761388e-01 + -1.806886937510042e-01 + -1.805505937426575e-01 + -1.804126030135119e-01 + -1.802747202867512e-01 + -1.801369442562599e-01 + -1.799992736029428e-01 + -1.798617070428147e-01 + -1.797242432859927e-01 + -1.795868810229852e-01 + -1.794496189531687e-01 + -1.793124557648680e-01 + -1.791753901302353e-01 + -1.790384207459855e-01 + -1.789015462957270e-01 + -1.787647654308534e-01 + -1.786280768266134e-01 + -1.784914791546937e-01 + -1.783549710639760e-01 + -1.782185512276328e-01 + -1.780822183108111e-01 + -1.779459709418989e-01 + -1.778098077766785e-01 + -1.776737274641330e-01 + -1.775377286080068e-01 + -1.774018098685905e-01 + -1.772659699092733e-01 + -1.771302073149079e-01 + -1.769945207098710e-01 + -1.768589087303928e-01 + -1.767233699571559e-01 + -1.765879030229077e-01 + -1.764525065751527e-01 + -1.763171791703831e-01 + -1.761819193770276e-01 + -1.760467257991546e-01 + -1.759115970764966e-01 + -1.757765317826701e-01 + -1.756415284467932e-01 + -1.755065856823099e-01 + -1.753717020824757e-01 + -1.752368761936218e-01 + -1.751021065398607e-01 + -1.749673916979465e-01 + -1.748327302843573e-01 + -1.746981207950505e-01 + -1.745635617515470e-01 + -1.744290517410085e-01 + -1.742945892830799e-01 + -1.741601728915786e-01 + -1.740258011048612e-01 + -1.738914724532109e-01 + -1.737571854631234e-01 + -1.736229386541751e-01 + -1.734887304969607e-01 + -1.733545594900176e-01 + -1.732204242005106e-01 + -1.730863230847530e-01 + -1.729522545880760e-01 + -1.728182172369972e-01 + -1.726842095169024e-01 + -1.725502298924380e-01 + -1.724162768405715e-01 + -1.722823488297978e-01 + -1.721484443102564e-01 + -1.720145617082366e-01 + -1.718806995062888e-01 + -1.717468561876117e-01 + -1.716130301380271e-01 + -1.714792197950507e-01 + -1.713454236195253e-01 + -1.712116399980747e-01 + -1.710778673588311e-01 + -1.709441041583024e-01 + -1.708103487974718e-01 + -1.706765996579921e-01 + -1.705428551238503e-01 + -1.704091136122197e-01 + -1.702753735243250e-01 + -1.701416332337174e-01 + -1.700078910979654e-01 + -1.698741454939726e-01 + -1.697403948188084e-01 + -1.696066374424440e-01 + -1.694728717024124e-01 + -1.693390959182572e-01 + -1.692053084687103e-01 + -1.690715077127793e-01 + -1.689376919605925e-01 + -1.688038595533757e-01 + -1.686700088249354e-01 + -1.685361380772680e-01 + -1.684022456043037e-01 + -1.682683297240474e-01 + -1.681343887869522e-01 + -1.680004210524648e-01 + -1.678664247764668e-01 + -1.677323982879569e-01 + -1.675983398888628e-01 + -1.674642478421112e-01 + -1.673301203727337e-01 + -1.671959557470875e-01 + -1.670617522514179e-01 + -1.669275081523977e-01 + -1.667932216748827e-01 + -1.666588910302535e-01 + -1.665245144618999e-01 + -1.663900902261115e-01 + -1.662556165573334e-01 + -1.661210916150787e-01 + -1.659865136192500e-01 + -1.658518808205523e-01 + -1.657171913793817e-01 + -1.655824434869752e-01 + -1.654476353589082e-01 + -1.653127651402884e-01 + -1.651778310039089e-01 + -1.650428311475997e-01 + -1.649077636947325e-01 + -1.647726268054878e-01 + -1.646374186795111e-01 + -1.645021374143022e-01 + -1.643667811219276e-01 + -1.642313479645375e-01 + -1.640958360797542e-01 + -1.639602435821208e-01 + -1.638245685678920e-01 + -1.636888091342957e-01 + -1.635529633807896e-01 + -1.634170294056715e-01 + -1.632810052843662e-01 + -1.631448890987297e-01 + -1.630086789505001e-01 + -1.628723728914803e-01 + -1.627359689604526e-01 + -1.625994652175857e-01 + -1.624628597296842e-01 + -1.623261505411777e-01 + -1.621893356498993e-01 + -1.620524130844338e-01 + -1.619153808874262e-01 + -1.617782370829140e-01 + -1.616409796594323e-01 + -1.615036066042981e-01 + -1.613661159511956e-01 + -1.612285056749289e-01 + -1.610907737177844e-01 + -1.609529180644884e-01 + -1.608149367058714e-01 + -1.606768276166446e-01 + -1.605385887249777e-01 + -1.604002179666082e-01 + -1.602617132920370e-01 + -1.601230726507729e-01 + -1.599842939686116e-01 + -1.598453751511857e-01 + -1.597063141136520e-01 + -1.595671087574746e-01 + -1.594277569704320e-01 + -1.592882566576958e-01 + -1.591486057239582e-01 + -1.590088020577491e-01 + -1.588688434990599e-01 + -1.587287278927537e-01 + -1.585884531125515e-01 + -1.584480170419727e-01 + -1.583074175205078e-01 + -1.581666523320080e-01 + -1.580257193426469e-01 + -1.578846164090064e-01 + -1.577433413163997e-01 + -1.576018918624315e-01 + -1.574602658488709e-01 + -1.573184610699215e-01 + -1.571764753211041e-01 + -1.570343063929105e-01 + -1.568919520623428e-01 + -1.567494100904384e-01 + -1.566066782348808e-01 + -1.564637542612438e-01 + -1.563206358983480e-01 + -1.561773208679784e-01 + -1.560338069324230e-01 + -1.558900918260982e-01 + -1.557461732592160e-01 + -1.556020489404925e-01 + -1.554577165574562e-01 + -1.553131737930803e-01 + -1.551684183667380e-01 + -1.550234479797016e-01 + -1.548782603038531e-01 + -1.547328529851514e-01 + -1.545872236759721e-01 + -1.544413700402710e-01 + -1.542952897416497e-01 + -1.541489804232354e-01 + -1.540024397056934e-01 + -1.538556652055174e-01 + -1.537086545589509e-01 + -1.535614054107616e-01 + -1.534139153265976e-01 + -1.532661818894184e-01 + -1.531182027303390e-01 + -1.529699754364569e-01 + -1.528214975805129e-01 + -1.526727667337492e-01 + -1.525237804315604e-01 + -1.523745362382714e-01 + -1.522250317710374e-01 + -1.520752645246755e-01 + -1.519252320010430e-01 + -1.517749318043420e-01 + -1.516243614355856e-01 + -1.514735183783821e-01 + -1.513224001894709e-01 + -1.511710043669709e-01 + -1.510193283881065e-01 + -1.508673697644896e-01 + -1.507151259726486e-01 + -1.505625944726656e-01 + -1.504097727456887e-01 + -1.502566582737337e-01 + -1.501032485283334e-01 + -1.499495409558064e-01 + -1.497955329817901e-01 + -1.496412220312461e-01 + -1.494866055649385e-01 + -1.493316810218445e-01 + -1.491764458131949e-01 + -1.490208973395277e-01 + -1.488650330073115e-01 + -1.487088502321930e-01 + -1.485523464347014e-01 + -1.483955190026080e-01 + -1.482383652905619e-01 + -1.480808826638546e-01 + -1.479230685198502e-01 + -1.477649202713839e-01 + -1.476064352431592e-01 + -1.474476107543291e-01 + -1.472884441602761e-01 + -1.471289328556787e-01 + -1.469690741904771e-01 + -1.468088654425319e-01 + -1.466483039513407e-01 + -1.464873870643751e-01 + -1.463261120992439e-01 + -1.461644763685366e-01 + -1.460024771711030e-01 + -1.458401117873900e-01 + -1.456773775256328e-01 + -1.455142717039091e-01 + -1.453507916253095e-01 + -1.451869345373153e-01 + -1.450226976893540e-01 + -1.448580783981553e-01 + -1.446930739597145e-01 + -1.445276816274984e-01 + -1.443618986028185e-01 + -1.441957221635531e-01 + -1.440291496154044e-01 + -1.438621781832398e-01 + -1.436948050802729e-01 + -1.435270275400491e-01 + -1.433588428498931e-01 + -1.431902482406432e-01 + -1.430212409022274e-01 + -1.428518180756519e-01 + -1.426819769869911e-01 + -1.425117148424586e-01 + -1.423410288662751e-01 + -1.421699162875700e-01 + -1.419983743276740e-01 + -1.418264001727286e-01 + -1.416539910114460e-01 + -1.414811440470098e-01 + -1.413078564852965e-01 + -1.411341255423312e-01 + -1.409599484327010e-01 + -1.407853222965617e-01 + -1.406102443173973e-01 + -1.404347117561954e-01 + -1.402587217519092e-01 + -1.400822714659246e-01 + -1.399053581557436e-01 + -1.397279789611117e-01 + -1.395501310267636e-01 + -1.393718115937786e-01 + -1.391930178402762e-01 + -1.390137469173205e-01 + -1.388339959972602e-01 + -1.386537622953096e-01 + -1.384730430031857e-01 + -1.382918352262208e-01 + -1.381101361784074e-01 + -1.379279430940128e-01 + -1.377452530885734e-01 + -1.375620633453186e-01 + -1.373783710804598e-01 + -1.371941734475252e-01 + -1.370094676273606e-01 + -1.368242508215203e-01 + -1.366385202106050e-01 + -1.364522729969404e-01 + -1.362655063841710e-01 + -1.360782175127518e-01 + -1.358904035964053e-01 + -1.357020618930480e-01 + -1.355131895302153e-01 + -1.353237837054462e-01 + -1.351338416922692e-01 + -1.349433606493001e-01 + -1.347523377766847e-01 + -1.345607703467432e-01 + -1.343686555800670e-01 + -1.341759906744941e-01 + -1.339827728348106e-01 + -1.337889993407819e-01 + -1.335946674413715e-01 + -1.333997743261954e-01 + -1.332043172962129e-01 + -1.330082936252972e-01 + -1.328117004983506e-01 + -1.326145352418741e-01 + -1.324167951779929e-01 + -1.322184775207451e-01 + -1.320195795498869e-01 + -1.318200985870884e-01 + -1.316200319613715e-01 + -1.314193769770063e-01 + -1.312181309395709e-01 + -1.310162911860090e-01 + -1.308138550466099e-01 + -1.306108198680959e-01 + -1.304071830473609e-01 + -1.302029419358534e-01 + -1.299980938748928e-01 + -1.297926362720222e-01 + -1.295865665431496e-01 + -1.293798820977739e-01 + -1.291725803345192e-01 + -1.289646586840201e-01 + -1.287561146028010e-01 + -1.285469455426532e-01 + -1.283371489741077e-01 + -1.281267223855238e-01 + -1.279156632656401e-01 + -1.277039691180485e-01 + -1.274916374652222e-01 + -1.272786658468367e-01 + -1.270650518164191e-01 + -1.268507929437779e-01 + -1.266358868257778e-01 + -1.264203310530910e-01 + -1.262041232080785e-01 + -1.259872609212462e-01 + -1.257697418614985e-01 + -1.255515637216261e-01 + -1.253327241582721e-01 + -1.251132208452764e-01 + -1.248930515084944e-01 + -1.246722139029198e-01 + -1.244507057917270e-01 + -1.242285249387353e-01 + -1.240056691417677e-01 + -1.237821362222557e-01 + -1.235579240163024e-01 + -1.233330303641722e-01 + -1.231074531412701e-01 + -1.228811902909497e-01 + -1.226542397328350e-01 + -1.224265993926709e-01 + -1.221982672554952e-01 + -1.219692413178169e-01 + -1.217395195880366e-01 + -1.215091001037845e-01 + -1.212779809466277e-01 + -1.210461602256936e-01 + -1.208136360512357e-01 + -1.205804065871132e-01 + -1.203464700244819e-01 + -1.201118245085727e-01 + -1.198764682774020e-01 + -1.196403996473917e-01 + -1.194036168896808e-01 + -1.191661183059585e-01 + -1.189279022478277e-01 + -1.186889671039581e-01 + -1.184493112863093e-01 + -1.182089332317922e-01 + -1.179678314226111e-01 + -1.177260043675167e-01 + -1.174834505981953e-01 + -1.172401686820595e-01 + -1.169961572351099e-01 + -1.167514149230550e-01 + -1.165059404117411e-01 + -1.162597324012717e-01 + -1.160127896494247e-01 + -1.157651109471359e-01 + -1.155166951180050e-01 + -1.152675410245315e-01 + -1.150176475647009e-01 + -1.147670136740031e-01 + -1.145156383362403e-01 + -1.142635205942373e-01 + -1.140106595167702e-01 + -1.137570541746248e-01 + -1.135027037005393e-01 + -1.132476072885310e-01 + -1.129917641930528e-01 + -1.127351736954119e-01 + -1.124778350964029e-01 + -1.122197477241451e-01 + -1.119609110122396e-01 + -1.117013244465126e-01 + -1.114409874638995e-01 + -1.111798996306716e-01 + -1.109180606010562e-01 + -1.106554699641756e-01 + -1.103921273860412e-01 + -1.101280326261970e-01 + -1.098631854961093e-01 + -1.095975858385727e-01 + -1.093312335328026e-01 + -1.090641285282797e-01 + -1.087962708201439e-01 + -1.085276604456853e-01 + -1.082582975002112e-01 + -1.079881821487157e-01 + -1.077173146235393e-01 + -1.074456951780328e-01 + -1.071733241222459e-01 + -1.069002018428373e-01 + -1.066263287812705e-01 + -1.063517054311524e-01 + -1.060763323447030e-01 + -1.058002101349244e-01 + -1.055233394662503e-01 + -1.052457210591484e-01 + -1.049673557111256e-01 + -1.046882442747131e-01 + -1.044083876525769e-01 + -1.041277868396362e-01 + -1.038464428925467e-01 + -1.035643569070283e-01 + -1.032815300276830e-01 + -1.029979634724506e-01 + -1.027136585692167e-01 + -1.024286166734134e-01 + -1.021428391952729e-01 + -1.018563276648054e-01 + -1.015690836461885e-01 + -1.012811087487812e-01 + -1.009924046817547e-01 + -1.007029732152899e-01 + -1.004128161832720e-01 + -1.001219355157012e-01 + -9.983033318947014e-02 + -9.953801123789381e-02 + -9.924497181065381e-02 + -9.895121710675164e-02 + -9.865674937610269e-02 + -9.836157098451072e-02 + -9.806568435550449e-02 + -9.776909196067303e-02 + -9.747179635418697e-02 + -9.717380018935569e-02 + -9.687510621844479e-02 + -9.657571724434684e-02 + -9.627563612429342e-02 + -9.597486578738405e-02 + -9.567340928055243e-02 + -9.537126972794066e-02 + -9.506845031433311e-02 + -9.476495428226560e-02 + -9.446078497156121e-02 + -9.415594584893169e-02 + -9.385044042616277e-02 + -9.354427227181475e-02 + -9.323744504129654e-02 + -9.292996250412121e-02 + -9.262182850819620e-02 + -9.231304696021701e-02 + -9.200362185853247e-02 + -9.169355729461479e-02 + -9.138285746240042e-02 + -9.107152658866502e-02 + -9.075956898041553e-02 + -9.044698911371001e-02 + -9.013379148226228e-02 + -8.981998063663986e-02 + -8.950556130228651e-02 + -8.919053824746566e-02 + -8.887491629233073e-02 + -8.855870039130662e-02 + -8.824189556852820e-02 + -8.792450692262105e-02 + -8.760653968435946e-02 + -8.728799913331863e-02 + -8.696889060279582e-02 + -8.664921956673162e-02 + -8.632899159487925e-02 + -8.600821233560418e-02 + -8.568688750540578e-02 + -8.536502290181033e-02 + -8.504262441718942e-02 + -8.471969805751253e-02 + -8.439624991228166e-02 + -8.407228614692197e-02 + -8.374781300392073e-02 + -8.342283682562317e-02 + -8.309736406563741e-02 + -8.277140122021633e-02 + -8.244495489588025e-02 + -8.211803185128563e-02 + -8.179063884910803e-02 + -8.146278271646745e-02 + -8.113447041766966e-02 + -8.080570906396743e-02 + -8.047650581443898e-02 + -8.014686781276095e-02 + -7.981680240792462e-02 + -7.948631704884632e-02 + -7.915541916537581e-02 + -7.882411634928695e-02 + -7.849241630024972e-02 + -7.816032674199919e-02 + -7.782785552351333e-02 + -7.749501058768483e-02 + -7.716179991262426e-02 + -7.682823159405887e-02 + -7.649431382724470e-02 + -7.616005485767063e-02 + -7.582546305035900e-02 + -7.549054686796573e-02 + -7.515531479419155e-02 + -7.481977542018518e-02 + -7.448393744841550e-02 + -7.414780964186224e-02 + -7.381140084542565e-02 + -7.347471999131863e-02 + -7.313777608894645e-02 + -7.280057821330421e-02 + -7.246313551410177e-02 + -7.212545725749871e-02 + -7.178755277686714e-02 + -7.144943146088469e-02 + -7.111110278446059e-02 + -7.077257629326426e-02 + -7.043386160590276e-02 + -7.009496843792977e-02 + -6.975590657859251e-02 + -6.941668588038064e-02 + -6.907731623736572e-02 + -6.873780762436528e-02 + -6.839817013263073e-02 + -6.805841390025939e-02 + -6.771854911509186e-02 + -6.737858603607710e-02 + -6.703853501790490e-02 + -6.669840646610939e-02 + -6.635821080020089e-02 + -6.601795854049251e-02 + -6.567766029345612e-02 + -6.533732672933422e-02 + -6.499696856244534e-02 + -6.465659655384894e-02 + -6.431622152906083e-02 + -6.397585437117004e-02 + -6.363550601749234e-02 + -6.329518746487584e-02 + -6.295490977261127e-02 + -6.261468405232740e-02 + -6.227452144919842e-02 + -6.193443314782195e-02 + -6.159443038613483e-02 + -6.125452449175782e-02 + -6.091472682299209e-02 + -6.057504875634485e-02 + -6.023550170757411e-02 + -5.989609715178513e-02 + -5.955684662483948e-02 + -5.921776169220818e-02 + -5.887885392543541e-02 + -5.854013491232313e-02 + -5.820161634720029e-02 + -5.786330995026137e-02 + -5.752522743033200e-02 + -5.718738052319666e-02 + -5.684978102238282e-02 + -5.651244078415603e-02 + -5.617537160914179e-02 + -5.583858533460867e-02 + -5.550209389764803e-02 + -5.516590918758542e-02 + -5.483004310132478e-02 + -5.449450760284144e-02 + -5.415931467224975e-02 + -5.382447627285256e-02 + -5.349000433169809e-02 + -5.315591089010736e-02 + -5.282220800586091e-02 + -5.248890761304951e-02 + -5.215602173570349e-02 + -5.182356244333215e-02 + -5.149154173522678e-02 + -5.115997163165661e-02 + -5.082886416999516e-02 + -5.049823136495267e-02 + -5.016808523392447e-02 + -4.983843779429676e-02 + -4.950930104255546e-02 + -4.918068697018742e-02 + -4.885260756307724e-02 + -4.852507478656667e-02 + -4.819810059193260e-02 + -4.787169691654435e-02 + -4.754587567726797e-02 + -4.722064876717863e-02 + -4.689602805511645e-02 + -4.657202539266345e-02 + -4.624865260469157e-02 + -4.592592148337583e-02 + -4.560384379218360e-02 + -4.528243126408893e-02 + -4.496169559628109e-02 + -4.464164845065374e-02 + -4.432230145577399e-02 + -4.400366620090135e-02 + -4.368575422918912e-02 + -4.336857704568598e-02 + -4.305214611378011e-02 + -4.273647284209545e-02 + -4.242156859535529e-02 + -4.210744469338823e-02 + -4.179411239819886e-02 + -4.148158291999365e-02 + -4.116986741259326e-02 + -4.085897697584740e-02 + -4.054892265423421e-02 + -4.023971542131075e-02 + -3.993136619382251e-02 + -3.962388583123071e-02 + -3.931728511726146e-02 + -3.901157477126550e-02 + -3.870676544906659e-02 + -3.840286772630143e-02 + -3.809989211312446e-02 + -3.779784905219891e-02 + -3.749674889469364e-02 + -3.719660192057603e-02 + -3.689741833904486e-02 + -3.659920826728452e-02 + -3.630198174507707e-02 + -3.600574873447752e-02 + -3.571051910326670e-02 + -3.541630263528623e-02 + -3.512310902944081e-02 + -3.483094789226868e-02 + -3.453982873906083e-02 + -3.424976098893085e-02 + -3.396075396966352e-02 + -3.367281691959212e-02 + -3.338595897696143e-02 + -3.310018917253339e-02 + -3.281551644593574e-02 + -3.253194963945627e-02 + -3.224949747985180e-02 + -3.196816859917648e-02 + -3.168797153104005e-02 + -3.140891468854379e-02 + -3.113100638362195e-02 + -3.085425482400445e-02 + -3.057866810270934e-02 + -3.030425420554928e-02 + -3.003102099769914e-02 + -2.975897623664901e-02 + -2.948812757423692e-02 + -2.921848253324668e-02 + -2.895004852283206e-02 + -2.868283284398848e-02 + -2.841684266935389e-02 + -2.815208505554401e-02 + -2.788856694668657e-02 + -2.762629515277662e-02 + -2.736527636581735e-02 + -2.710551716378724e-02 + -2.684702399109470e-02 + -2.658980317107453e-02 + -2.633386090723251e-02 + -2.607920326420626e-02 + -2.582583618939347e-02 + -2.557376551170278e-02 + -2.532299691452088e-02 + -2.507353595904179e-02 + -2.482538808499682e-02 + -2.457855859507147e-02 + -2.433305266394129e-02 + -2.408887533435539e-02 + -2.384603151841623e-02 + -2.360452600145211e-02 + -2.336436343201402e-02 + -2.312554832609387e-02 + -2.288808507226996e-02 + -2.265197791904223e-02 + -2.241723098404469e-02 + -2.218384825955722e-02 + -2.195183359578144e-02 + -2.172119070564114e-02 + -2.149192317903017e-02 + -2.126403446983029e-02 + -2.103752788800763e-02 + -2.081240661670658e-02 + -2.058867370373213e-02 + -2.036633206151460e-02 + -2.014538447470562e-02 + -1.992583358220780e-02 + -1.970768189350454e-02 + -1.949093179354288e-02 + -1.927558551890179e-02 + -1.906164517346932e-02 + -1.884911273803516e-02 + -1.863799005561765e-02 + -1.842827883084014e-02 + -1.821998063919436e-02 + -1.801309692347624e-02 + -1.780762899421212e-02 + -1.760357803216378e-02 + -1.740094507853177e-02 + -1.719973104881908e-02 + -1.699993673354589e-02 + -1.680156278321953e-02 + -1.660460972117107e-02 + -1.640907794332531e-02 + -1.621496771146485e-02 + -1.602227916433384e-02 + -1.583101231371427e-02 + -1.564116703862817e-02 + -1.545274309883748e-02 + -1.526574012772238e-02 + -1.508015761914186e-02 + -1.489599495303444e-02 + -1.471325139301425e-02 + -1.453192606709004e-02 + -1.435201798658663e-02 + -1.417352604127694e-02 + -1.399644899327932e-02 + -1.382078549302728e-02 + -1.364653407164367e-02 + -1.347369313289915e-02 + -1.330226097046918e-02 + -1.313223576283522e-02 + -1.296361556501821e-02 + -1.279639832327015e-02 + -1.263058187022890e-02 + -1.246616392163480e-02 + -1.230314208589229e-02 + -1.214151385550256e-02 + -1.198127661271531e-02 + -1.182242763705999e-02 + -1.166496409538715e-02 + -1.150888304589847e-02 + -1.135418144553720e-02 + -1.120085614521435e-02 + -1.104890388968280e-02 + -1.089832132231912e-02 + -1.074910498405016e-02 + -1.060125131793449e-02 + -1.045475666967276e-02 + -1.030961728045836e-02 + -1.016582929759894e-02 + -1.002338877483435e-02 + -9.882291666582974e-03 + -9.742533838318660e-03 + -9.604111064390042e-03 + -9.467019020603698e-03 + -9.331253297647066e-03 + -9.196809399717920e-03 + -9.063682741005771e-03 + -8.931868652392608e-03 + -8.801362376326071e-03 + -8.672159070075210e-03 + -8.544253813557785e-03 + -8.417641603575709e-03 + -8.292317355716863e-03 + -8.168275911736944e-03 + -8.045512032694060e-03 + -7.924020397696789e-03 + -7.803795618017998e-03 + -7.684832236645861e-03 + -7.567124714929550e-03 + -7.450667444285828e-03 + -7.335454748033539e-03 + -7.221480883382279e-03 + -7.108740043647531e-03 + -6.997226348639058e-03 + -6.886933855315346e-03 + -6.777856561420043e-03 + -6.669988397445708e-03 + -6.563323236817328e-03 + -6.457854897474280e-03 + -6.353577131920331e-03 + -6.250483639666226e-03 + -6.148568068731946e-03 + -6.047824005897748e-03 + -5.948244987599076e-03 + -5.849824501347084e-03 + -5.752555978513681e-03 + -5.656432807264865e-03 + -5.561448332218353e-03 + -5.467595840626229e-03 + -5.374868578311233e-03 + -5.283259752176146e-03 + -5.192762521793490e-03 + -5.103370006626977e-03 + -5.015075286629148e-03 + -4.927871401782054e-03 + -4.841751355904269e-03 + -4.756708115524279e-03 + -4.672734611342882e-03 + -4.589823741835811e-03 + -4.507968371897898e-03 + -4.427161334111035e-03 + -4.347395432360992e-03 + -4.268663440821394e-03 + -4.190958105123732e-03 + -4.114272145237943e-03 + -4.038598254543495e-03 + -3.963929102325757e-03 + -3.890257335680627e-03 + -3.817575578228647e-03 + -3.745876433060482e-03 + -3.675152484340320e-03 + -3.605396296371936e-03 + -3.536600416225055e-03 + -3.468757375181376e-03 + -3.401859688514519e-03 + -3.335899857279008e-03 + -3.270870369624132e-03 + -3.206763701552144e-03 + -3.143572317880366e-03 + -3.081288673370167e-03 + -3.019905214426235e-03 + -2.959414379161780e-03 + -2.899808598243805e-03 + -2.841080297295089e-03 + -2.783221897187762e-03 + -2.726225814481816e-03 + -2.670084462721576e-03 + -2.614790253659214e-03 + -2.560335598217736e-03 + -2.506712907773368e-03 + -2.453914594305456e-03 + -2.401933071402304e-03 + -2.350760756079694e-03 + -2.300390068609935e-03 + -2.250813433830373e-03 + -2.202023282926124e-03 + -2.154012052729510e-03 + -2.106772187286276e-03 + -2.060296139752280e-03 + -2.014576371403607e-03 + -1.969605353508076e-03 + -1.925375568654703e-03 + -1.881879509874747e-03 + -1.839109683164610e-03 + -1.797058608044933e-03 + -1.755718816706420e-03 + -1.715082857166331e-03 + -1.675143293280333e-03 + -1.635892703443056e-03 + -1.597323683697497e-03 + -1.559428848712492e-03 + -1.522200830321536e-03 + -1.485632280183934e-03 + -1.449715870092584e-03 + -1.414444291041649e-03 + -1.379810256474448e-03 + -1.345806501791486e-03 + -1.312425783716085e-03 + -1.279660883530597e-03 + -1.247504606026809e-03 + -1.215949779407020e-03 + -1.184989258561609e-03 + -1.154615923413642e-03 + -1.124822679454977e-03 + -1.095602461024569e-03 + -1.066948228352973e-03 + -1.038852968864840e-03 + -1.011309701783447e-03 + -9.843114734261671e-04 + -9.578513585924095e-04 + -9.319224654553773e-04 + -9.065179311555053e-04 + -8.816309237062864e-04 + -8.572546450286300e-04 + -8.333823272254078e-04 + -8.100072355517002e-04 + -7.871226705798197e-04 + -7.647219641139264e-04 + -7.427984826268421e-04 + -7.213456295816899e-04 + -7.003568409622573e-04 + -6.798255887472549e-04 + -6.597453829223955e-04 + -6.401097674232178e-04 + -6.209123240167792e-04 + -6.021466729184949e-04 + -5.838064694784330e-04 + -5.658854088227745e-04 + -5.483772251938055e-04 + -5.312756891491387e-04 + -5.145746125261390e-04 + -4.982678466736966e-04 + -4.823492804447342e-04 + -4.668128456938979e-04 + -4.516525141842837e-04 + -4.368622962674093e-04 + -4.224362466667431e-04 + -4.083684605074392e-04 + -3.946530726767535e-04 + -3.812842634726816e-04 + -3.682562540846601e-04 + -3.555633067280622e-04 + -3.431997298953713e-04 + -3.311598733734528e-04 + -3.194381292167991e-04 + -3.080289365424697e-04 + -2.969267761950205e-04 + -2.861261725181284e-04 + -2.756216974519896e-04 + -2.654079650780054e-04 + -2.554796342192304e-04 + -2.458314117831762e-04 + -2.364580472261255e-04 + -2.273543358783364e-04 + -2.185151214599497e-04 + -2.099352907310207e-04 + -2.016097775283348e-04 + -1.935335642058985e-04 + -1.857016766078902e-04 + -1.781091887621722e-04 + -1.707512232636694e-04 + -1.636229467286454e-04 + -1.567195750846747e-04 + -1.500363727286114e-04 + -1.435686485603325e-04 + -1.373117617901810e-04 + -1.312611200233150e-04 + -1.254121759173047e-04 + -1.197604333131590e-04 + -1.143014443478538e-04 + -1.090308067994204e-04 + -1.039441703359566e-04 + -9.903723276260782e-05 + -9.430573818110019e-05 + -8.974548326970851e-05 + -8.535231263786576e-05 + -8.112211782233505e-05 + -7.705084341917009e-05 + -7.313448187442813e-05 + -6.936907333027644e-05 + -6.575071119249467e-05 + -6.227553658275769e-05 + -5.893973914900695e-05 + -5.573956203853484e-05 + -5.267129595161032e-05 + -4.973128084575291e-05 + -4.691591029739419e-05 + -4.422162539456759e-05 + -4.164491727590835e-05 + -3.918233061143914e-05 + -3.683045757249665e-05 + -3.458594118927672e-05 + -3.244547785270521e-05 + -3.040581149216269e-05 + -2.846373767254703e-05 + -2.661610506551807e-05 + -2.485980997915884e-05 + -2.319180110803831e-05 + -2.160907991664170e-05 + -2.010869565536285e-05 + -1.868775067119526e-05 + -1.734339969669114e-05 + -1.607284546059277e-05 + -1.487334444060605e-05 + -1.374220506933501e-05 + -1.267678404087566e-05 + -1.167449238525668e-05 + -1.073279264625808e-05 + -9.849195952118955e-06 + -9.021268250139948e-06 + -8.246626567968640e-06 + -7.522936912951058e-06 + -6.847920492700095e-06 + -6.219349168072015e-06 + -5.635044236568559e-06 + -5.092882470932048e-06 + -4.590790895044201e-06 + -4.126746487291455e-06 + -3.698781859286729e-06 + -3.304979520120749e-06 + -2.943472506918129e-06 + -2.612449510984778e-06 + -2.310148834845521e-06 + -2.034859929271865e-06 + -1.784927798002038e-06 + -1.558746837246077e-06 + -1.354763241038800e-06 + -1.171478551126456e-06 + -1.007443551831214e-06 + -8.612614901318561e-07 + -7.315906671893518e-07 + -6.171385461507109e-07 + -5.166657190198488e-07 + -4.289874671965282e-07 + -3.529682224298676e-07 + -2.875261969469119e-07 + -2.316338735426513e-07 + -1.843129441850586e-07 + -1.446395043479685e-07 + -1.117434618507405e-07 + -8.480406305106530e-08 + -6.305553831873507e-08 + -4.578544870958251e-08 + -3.233089380928512e-08 + -2.208448022054805e-08 + -1.449165750478591e-08 + -9.047683233008124e-09 + -5.303766739728543e-09 + -2.863504097386866e-09 + -1.380623394721897e-09 + -5.650641971230870e-10 + -1.790372475752245e-10 + -3.511990521548007e-11 + -8.192061809269277e-13 + 0.000000000000000e+00 diff --git a/examples/SPIN/test_problems/validation_nvt/in.spin.nvt_lattice b/examples/SPIN/test_problems/validation_nvt/in.spin.nvt_lattice new file mode 100644 index 0000000000000000000000000000000000000000..1d63f01d4378242a240c72b735c97c5fc2a2bb9a --- /dev/null +++ b/examples/SPIN/test_problems/validation_nvt/in.spin.nvt_lattice @@ -0,0 +1,51 @@ +# bcc iron in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +region box block 0.0 3.0 0.0 3.0 0.0 3.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 +set group all spin 2.2 0.0 0.0 1.0 +velocity all create 400 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 4.0 spin/neel 4.0 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.1 0.2171 1.841 +pair_coeff * * spin/neel neel 4.0 0.02 0.0 1.841 0.0 0.0 1.0 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin 200.0 200.0 10.0 48279 +fix 3 all langevin/spin 0.0 0.00001 321 +fix 4 all nve/spin lattice moving +timestep 0.001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_tmag temp v_emag ke pe etotal +thermo 200 + +run 200000 diff --git a/examples/SPIN/test_problems/validation_nvt/in.spin.nvt_spin b/examples/SPIN/test_problems/validation_nvt/in.spin.nvt_spin new file mode 100644 index 0000000000000000000000000000000000000000..435e877bdf15577d55ce88bbbb10c5ece36c1bda --- /dev/null +++ b/examples/SPIN/test_problems/validation_nvt/in.spin.nvt_spin @@ -0,0 +1,49 @@ +# bcc iron in a 3d periodic box + +clear +units metal +atom_style spin + +dimension 3 +boundary p p p + +# necessary for the serial algorithm (sametag) +atom_modify map array + +lattice bcc 2.8665 +region box block 0.0 3.0 0.0 3.0 0.0 3.0 +create_box 1 box +create_atoms 1 box + +# setting mass, mag. moments, and interactions for bcc iron + +mass 1 55.845 +set group all spin 2.2 0.0 0.0 1.0 +velocity all create 0 4928459 rot yes dist gaussian + +pair_style hybrid/overlay eam/alloy spin/exchange 3.5 +pair_coeff * * eam/alloy Fe_Mishin2006.eam.alloy Fe +pair_coeff * * spin/exchange exchange 3.4 0.1 0.2171 1.841 + +neighbor 0.1 bin +neigh_modify every 10 check yes delay 20 + +fix 1 all precession/spin zeeman 0.0 0.0 0.0 1.0 +fix 2 all langevin/spin 200.0 0.1 321 +fix 3 all nve/spin lattice moving +timestep 0.001 + +# compute and output options + +compute out_mag all spin +compute out_pe all pe +compute out_ke all ke +compute out_temp all temp + +variable emag equal c_out_mag[5] +variable tmag equal c_out_mag[6] + +thermo_style custom step time v_tmag temp v_emag ke pe etotal +thermo 200 + +run 200000 diff --git a/examples/SPIN/test_problems/validation_nvt/plot_nvt.py b/examples/SPIN/test_problems/validation_nvt/plot_nvt.py new file mode 100755 index 0000000000000000000000000000000000000000..06c48b4c28143ce7ff4b010479bd6b85604f0651 --- /dev/null +++ b/examples/SPIN/test_problems/validation_nvt/plot_nvt.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +import numpy as np, pylab, tkinter +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit +from decimal import * +import sys, string, os + + +argv = sys.argv +if len(argv) != 3: + print("Syntax: ./plot_precession.py res_nvt_spin.dat res_nvt_lattice.dat") + sys.exit() + +dirname = os.path.join(os.getcwd(), "Feb_07") +nvtspin_file = sys.argv[1] +nvtlatt_file = sys.argv[2] + +ts,tmags,temps = np.loadtxt(nvtspin_file,skiprows=0, usecols=(1,2,3),unpack=True) +tl,tmagl,templ = np.loadtxt(nvtlatt_file,skiprows=0, usecols=(1,2,3),unpack=True) + +fig = plt.figure(figsize=(8,8)) +ax1 = plt.subplot(2,1,1) +ax2 = plt.subplot(2,1,2) + +ax1.plot(ts, tmags, 'r-', label='Spin temp. (thermostat)') +ax1.plot(ts, temps, 'g-', label='Lattice temp.') +ax1.set_yscale("log") +ax1.set_ylabel("T (K)") +ax1.legend(loc=3) + +ax2.plot(tl, tmagl, 'r-', label='Spin temp.') +ax2.plot(tl, templ, 'g-', label='Lattice temp. (thermostat)') +ax2.set_yscale("log") +ax2.set_ylabel("T (K)") +ax2.legend(loc=3) + +plt.xlabel('Time (in ps)') +plt.legend() +plt.show() + +fig.savefig(os.path.join(os.getcwd(), "nve_spin_lattice.pdf"), bbox_inches="tight") +plt.close(fig) diff --git a/examples/SPIN/test_problems/validation_nvt/run-test-nvt.sh b/examples/SPIN/test_problems/validation_nvt/run-test-nvt.sh new file mode 100755 index 0000000000000000000000000000000000000000..d3abbbe1a552e7489dd6be04b891aed13a21ee0b --- /dev/null +++ b/examples/SPIN/test_problems/validation_nvt/run-test-nvt.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# clean old res +rm res_*.dat + +# compute NVT Spin -> Lattice +./../../../../src/lmp_serial -in in.spin.nvt_spin +in="$(grep -n Step log.lammps | awk -F ':' '{print $1}')" +en="$(grep -n Loop log.lammps | awk -F ':' '{print $1}')" +in="$(echo "$in+1" | bc -l)" +en="$(echo "$en-$in" | bc -l)" +tail -n +$in log.lammps | head -n $en > res_nvt_spin.dat + +# compute NVT Lattice -> Spin +./../../../../src/lmp_serial -in in.spin.nvt_lattice +in="$(grep -n Step log.lammps | awk -F ':' '{print $1}')" +en="$(grep -n Loop log.lammps | awk -F ':' '{print $1}')" +in="$(echo "$in+1" | bc -l)" +en="$(echo "$en-$in" | bc -l)" +tail -n +$in log.lammps | head -n $en > res_nvt_lattice.dat + +# plot results +python3 plot_nvt.py res_nvt_spin.dat res_nvt_lattice.dat diff --git a/examples/USER/reaction/nylon,6-6_melt/large_nylon_melt.data.gz b/examples/USER/reaction/nylon,6-6_melt/large_nylon_melt.data.gz new file mode 100644 index 0000000000000000000000000000000000000000..c620b879a883817b8eb7abe4495e585ecacfaf02 Binary files /dev/null and b/examples/USER/reaction/nylon,6-6_melt/large_nylon_melt.data.gz differ diff --git a/examples/USER/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability b/examples/USER/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability new file mode 100644 index 0000000000000000000000000000000000000000..2c101ac77caa67fd2424ee1ee93c7fc9baaee0c3 --- /dev/null +++ b/examples/USER/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability @@ -0,0 +1,56 @@ +# two monomer nylon example +# reaction produces a condensed water molecule + +units real + +boundary p p p + +atom_style full + +kspace_style pppm 1.0e-4 + +pair_style lj/class2/coul/long 8.5 + +angle_style class2 + +bond_style class2 + +dihedral_style class2 + +improper_style class2 + +read_data tiny_nylon.data + +variable runsteps equal 1000 +variable prob1 equal step/v_runsteps*2 +variable prob2 equal (step/v_runsteps)>0.5 + +velocity all create 300.0 4928459 dist gaussian + +molecule mol1 rxn1_stp1_unreacted.data_template +molecule mol2 rxn1_stp1_reacted.data_template +molecule mol3 rxn1_stp2_unreacted.data_template +molecule mol4 rxn1_stp2_reacted.data_template + +thermo 50 + +# dump 1 all xyz 1 test_vis.xyz + +fix myrxns all bond/react stabilization yes statted_grp .03 & + react rxn1 all 1 0.0 5.0 mol1 mol2 rxn1_stp1_map prob v_prob1 1234 & + react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map prob v_prob2 1234 + +fix 1 statted_grp_REACT nvt temp 300 300 100 + +# optionally, you can customize behavior of reacting atoms, +# by using the internally-created 'bond_react_MASTER_group', like so: +fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 + +thermo_style custom step temp press density v_prob1 v_prob2 f_myrxns[1] f_myrxns[2] + +# restart 100 restart1 restart2 + +run ${runsteps} + +# write_restart restart_longrun +# write_data restart_longrun.data diff --git a/examples/USER/reaction/tiny_nylon/log.22Apr20.tiny_nylon.stabilized_variable_probability.g++.1 b/examples/USER/reaction/tiny_nylon/log.22Apr20.tiny_nylon.stabilized_variable_probability.g++.1 new file mode 100644 index 0000000000000000000000000000000000000000..16e4deef51ac757fe167fa08974350f69abeb133 --- /dev/null +++ b/examples/USER/reaction/tiny_nylon/log.22Apr20.tiny_nylon.stabilized_variable_probability.g++.1 @@ -0,0 +1,201 @@ +LAMMPS (15 Apr 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# two monomer nylon example +# reaction produces a condensed water molecule + +units real + +boundary p p p + +atom_style full + +kspace_style pppm 1.0e-4 + +pair_style lj/class2/coul/long 8.5 + +angle_style class2 + +bond_style class2 + +dihedral_style class2 + +improper_style class2 + +read_data tiny_nylon.data + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 44 atoms + reading velocities ... + 44 velocities + scanning bonds ... + 9 = max bonds/atom + scanning angles ... + 21 = max angles/atom + scanning dihedrals ... + 29 = max dihedrals/atom + scanning impropers ... + 29 = max impropers/atom + reading bonds ... + 42 bonds + reading angles ... + 74 angles + reading dihedrals ... + 100 dihedrals + reading impropers ... + 44 impropers + 4 = max # of 1-2 neighbors + 6 = max # of 1-3 neighbors + 12 = max # of 1-4 neighbors + 41 = max # of special neighbors + special bonds CPU = 0.000385045 secs + read_data CPU = 0.013443 secs + +variable runsteps equal 1000 +variable prob1 equal step/v_runsteps*2 +variable prob2 equal (step/v_runsteps)>0.5 + +velocity all create 300.0 4928459 dist gaussian + +molecule mol1 rxn1_stp1_unreacted.data_template +Read molecule template mol1: + 1 molecules + 18 atoms with max type 8 + 16 bonds with max type 14 + 25 angles with max type 28 + 23 dihedrals with max type 36 + 14 impropers with max type 11 +molecule mol2 rxn1_stp1_reacted.data_template +Read molecule template mol2: + 1 molecules + 18 atoms with max type 9 + 17 bonds with max type 13 + 31 angles with max type 27 + 39 dihedrals with max type 33 + 20 impropers with max type 1 +molecule mol3 rxn1_stp2_unreacted.data_template +Read molecule template mol3: + 1 molecules + 15 atoms with max type 9 + 14 bonds with max type 13 + 25 angles with max type 27 + 30 dihedrals with max type 33 + 16 impropers with max type 1 +molecule mol4 rxn1_stp2_reacted.data_template +Read molecule template mol4: + 1 molecules + 15 atoms with max type 11 + 13 bonds with max type 15 + 19 angles with max type 29 + 16 dihedrals with max type 32 + 10 impropers with max type 13 + +thermo 50 + +# dump 1 all xyz 1 test_vis.xyz + +fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 5.0 mol1 mol2 rxn1_stp1_map prob v_prob1 1234 react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map prob v_prob2 1234 +WARNING: Bond/react: Atom affected by reaction rxn1 too close to template edge (src/USER-REACTION/fix_bond_react.cpp:2051) +WARNING: Bond/react: Atom affected by reaction rxn2 too close to template edge (src/USER-REACTION/fix_bond_react.cpp:2051) +dynamic group bond_react_MASTER_group defined +dynamic group statted_grp_REACT defined + +fix 1 statted_grp_REACT nvt temp 300 300 100 + +# optionally, you can customize behavior of reacting atoms, +# by using the internally-created 'bond_react_MASTER_group', like so: +fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 + +thermo_style custom step temp press density v_prob1 v_prob2 f_myrxns[1] f_myrxns[2] + +# restart 100 restart1 restart2 + +run ${runsteps} +run 1000 +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:332) + G vector (1/distance) = 0.0534597 + grid = 2 2 2 + stencil order = 5 + estimated absolute RMS force accuracy = 0.0402256 + estimated relative force accuracy = 0.000121138 + using double precision FFTW3 + 3d grid and FFT values/proc = 343 8 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10.5 + ghost atom cutoff = 10.5 + binsize = 5.25, bins = 10 10 10 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair lj/class2/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard + (2) fix bond/react, occasional, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +WARNING: Inconsistent image flags (src/domain.cpp:812) +Per MPI rank memory allocation (min/avg/max) = 33.78 | 33.78 | 33.78 Mbytes +Step Temp Press Density v_prob1 v_prob2 f_myrxns[1] f_myrxns[2] + 0 300 346.78165 0.0034851739 0 0 0 0 + 50 262.63913 -492.10749 0.0034851739 0.1 0 1 0 + 100 766.52962 -29.714349 0.0034851739 0.2 0 1 0 + 150 503.86837 50.220304 0.0034851739 0.3 0 1 0 + 200 456.51295 12.312892 0.0034851739 0.4 0 1 0 + 250 391.54928 9.2335844 0.0034851739 0.5 0 1 0 + 300 336.6988 -47.193937 0.0034851739 0.6 0 1 0 + 350 254.06985 -9.2867898 0.0034851739 0.7 0 1 0 + 400 259.41098 -25.657321 0.0034851739 0.8 0 1 0 + 450 258.10364 22.5086 0.0034851739 0.9 0 1 0 + 500 272.13412 -6.5391448 0.0034851739 1 0 1 0 + 550 202.75504 54.658731 0.0034851739 1.1 1 1 1 + 600 344.79887 23.798478 0.0034851739 1.2 1 1 1 + 650 328.44488 -29.908484 0.0034851739 1.3 1 1 1 + 700 280.13593 -8.3223255 0.0034851739 1.4 1 1 1 + 750 300.67624 1.0632669 0.0034851739 1.5 1 1 1 + 800 376.64234 12.488392 0.0034851739 1.6 1 1 1 + 850 321.07642 19.814074 0.0034851739 1.7 1 1 1 + 900 332.23751 30.814079 0.0034851739 1.8 1 1 1 + 950 311.14029 5.7853136 0.0034851739 1.9 1 1 1 + 1000 253.14634 -37.560642 0.0034851739 2 1 1 1 +Loop time of 0.379454 on 1 procs for 1000 steps with 44 atoms + +Performance: 227.696 ns/day, 0.105 hours/ns, 2635.368 timesteps/s +99.6% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.069723 | 0.069723 | 0.069723 | 0.0 | 18.37 +Bond | 0.14802 | 0.14802 | 0.14802 | 0.0 | 39.01 +Kspace | 0.044252 | 0.044252 | 0.044252 | 0.0 | 11.66 +Neigh | 0.072359 | 0.072359 | 0.072359 | 0.0 | 19.07 +Comm | 0.0044748 | 0.0044748 | 0.0044748 | 0.0 | 1.18 +Output | 0.0022775 | 0.0022775 | 0.0022775 | 0.0 | 0.60 +Modify | 0.036509 | 0.036509 | 0.036509 | 0.0 | 9.62 +Other | | 0.00184 | | | 0.48 + +Nlocal: 44 ave 44 max 44 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 3 ave 3 max 3 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 722 ave 722 max 722 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 722 +Ave neighs/atom = 16.4091 +Ave special neighs/atom = 9.77273 +Neighbor list builds = 1000 +Dangerous builds = 0 + +# write_restart restart_longrun +# write_data restart_longrun.data + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:00 diff --git a/examples/USER/reaction/tiny_nylon/log.22Apr20.tiny_nylon.stabilized_variable_probability.g++.4 b/examples/USER/reaction/tiny_nylon/log.22Apr20.tiny_nylon.stabilized_variable_probability.g++.4 new file mode 100644 index 0000000000000000000000000000000000000000..527d71ce87279c4a7e70ecedaaa4d02dbe1dd0c3 --- /dev/null +++ b/examples/USER/reaction/tiny_nylon/log.22Apr20.tiny_nylon.stabilized_variable_probability.g++.4 @@ -0,0 +1,201 @@ +LAMMPS (15 Apr 2020) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94) + using 1 OpenMP thread(s) per MPI task +# two monomer nylon example +# reaction produces a condensed water molecule + +units real + +boundary p p p + +atom_style full + +kspace_style pppm 1.0e-4 + +pair_style lj/class2/coul/long 8.5 + +angle_style class2 + +bond_style class2 + +dihedral_style class2 + +improper_style class2 + +read_data tiny_nylon.data + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 44 atoms + reading velocities ... + 44 velocities + scanning bonds ... + 9 = max bonds/atom + scanning angles ... + 21 = max angles/atom + scanning dihedrals ... + 29 = max dihedrals/atom + scanning impropers ... + 29 = max impropers/atom + reading bonds ... + 42 bonds + reading angles ... + 74 angles + reading dihedrals ... + 100 dihedrals + reading impropers ... + 44 impropers + 4 = max # of 1-2 neighbors + 6 = max # of 1-3 neighbors + 12 = max # of 1-4 neighbors + 41 = max # of special neighbors + special bonds CPU = 0.000431282 secs + read_data CPU = 0.0129571 secs + +variable runsteps equal 1000 +variable prob1 equal step/v_runsteps*2 +variable prob2 equal (step/v_runsteps)>0.5 + +velocity all create 300.0 4928459 dist gaussian + +molecule mol1 rxn1_stp1_unreacted.data_template +Read molecule template mol1: + 1 molecules + 18 atoms with max type 8 + 16 bonds with max type 14 + 25 angles with max type 28 + 23 dihedrals with max type 36 + 14 impropers with max type 11 +molecule mol2 rxn1_stp1_reacted.data_template +Read molecule template mol2: + 1 molecules + 18 atoms with max type 9 + 17 bonds with max type 13 + 31 angles with max type 27 + 39 dihedrals with max type 33 + 20 impropers with max type 1 +molecule mol3 rxn1_stp2_unreacted.data_template +Read molecule template mol3: + 1 molecules + 15 atoms with max type 9 + 14 bonds with max type 13 + 25 angles with max type 27 + 30 dihedrals with max type 33 + 16 impropers with max type 1 +molecule mol4 rxn1_stp2_reacted.data_template +Read molecule template mol4: + 1 molecules + 15 atoms with max type 11 + 13 bonds with max type 15 + 19 angles with max type 29 + 16 dihedrals with max type 32 + 10 impropers with max type 13 + +thermo 50 + +# dump 1 all xyz 1 test_vis.xyz + +fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 5.0 mol1 mol2 rxn1_stp1_map prob v_prob1 1234 react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map prob v_prob2 1234 +WARNING: Bond/react: Atom affected by reaction rxn1 too close to template edge (src/USER-REACTION/fix_bond_react.cpp:2051) +WARNING: Bond/react: Atom affected by reaction rxn2 too close to template edge (src/USER-REACTION/fix_bond_react.cpp:2051) +dynamic group bond_react_MASTER_group defined +dynamic group statted_grp_REACT defined + +fix 1 statted_grp_REACT nvt temp 300 300 100 + +# optionally, you can customize behavior of reacting atoms, +# by using the internally-created 'bond_react_MASTER_group', like so: +fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1 + +thermo_style custom step temp press density v_prob1 v_prob2 f_myrxns[1] f_myrxns[2] + +# restart 100 restart1 restart2 + +run ${runsteps} +run 1000 +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:332) + G vector (1/distance) = 0.0534597 + grid = 2 2 2 + stencil order = 5 + estimated absolute RMS force accuracy = 0.0402256 + estimated relative force accuracy = 0.000121138 + using double precision FFTW3 + 3d grid and FFT values/proc = 252 2 +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10.5 + ghost atom cutoff = 10.5 + binsize = 5.25, bins = 10 10 10 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair lj/class2/coul/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard + (2) fix bond/react, occasional, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +WARNING: Inconsistent image flags (src/domain.cpp:812) +Per MPI rank memory allocation (min/avg/max) = 33.66 | 33.88 | 34.43 Mbytes +Step Temp Press Density v_prob1 v_prob2 f_myrxns[1] f_myrxns[2] + 0 300 346.78165 0.0034851739 0 0 0 0 + 50 266.5092 -90.813802 0.0034851739 0.1 0 1 0 + 100 559.41271 -53.23688 0.0034851739 0.2 0 1 0 + 150 489.90516 31.555817 0.0034851739 0.3 0 1 0 + 200 326.18391 7.7889992 0.0034851739 0.4 0 1 0 + 250 339.78203 2.3919541 0.0034851739 0.5 0 1 0 + 300 370.90263 -32.01673 0.0034851739 0.6 0 1 0 + 350 294.07547 -5.4019813 0.0034851739 0.7 0 1 0 + 400 287.76477 12.254133 0.0034851739 0.8 0 1 0 + 450 293.36482 66.372956 0.0034851739 0.9 0 1 0 + 500 246.84496 26.132317 0.0034851739 1 0 1 0 + 550 253.08778 -15.350262 0.0034851739 1.1 1 1 1 + 600 358.83641 25.007371 0.0034851739 1.2 1 1 1 + 650 320.51492 -32.34823 0.0034851739 1.3 1 1 1 + 700 310.87976 -8.2306669 0.0034851739 1.4 1 1 1 + 750 307.54142 12.025818 0.0034851739 1.5 1 1 1 + 800 272.51724 -22.92823 0.0034851739 1.6 1 1 1 + 850 268.66181 10.069534 0.0034851739 1.7 1 1 1 + 900 265.5531 -10.471377 0.0034851739 1.8 1 1 1 + 950 259.43086 9.4546712 0.0034851739 1.9 1 1 1 + 1000 247.14622 20.250308 0.0034851739 2 1 1 1 +Loop time of 0.357762 on 4 procs for 1000 steps with 44 atoms + +Performance: 241.502 ns/day, 0.099 hours/ns, 2795.157 timesteps/s +99.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0003917 | 0.015545 | 0.033317 | 11.9 | 4.35 +Bond | 0.0010131 | 0.030153 | 0.076975 | 18.2 | 8.43 +Kspace | 0.092857 | 0.1462 | 0.18688 | 10.7 | 40.87 +Neigh | 0.043786 | 0.044014 | 0.044189 | 0.1 | 12.30 +Comm | 0.03636 | 0.038345 | 0.040538 | 0.8 | 10.72 +Output | 0.00091578 | 0.0012541 | 0.0020923 | 1.4 | 0.35 +Modify | 0.075379 | 0.080791 | 0.086052 | 1.8 | 22.58 +Other | | 0.00146 | | | 0.41 + +Nlocal: 11 ave 32 max 0 min +Histogram: 2 0 1 0 0 0 0 0 0 1 +Nghost: 40 ave 51 max 19 min +Histogram: 1 0 0 0 0 0 0 1 0 2 +Neighs: 191 ave 529 max 0 min +Histogram: 2 0 0 0 1 0 0 0 0 1 + +Total # of neighbors = 764 +Ave neighs/atom = 17.3636 +Ave special neighs/atom = 9.77273 +Neighbor list builds = 1000 +Dangerous builds = 0 + +# write_restart restart_longrun +# write_data restart_longrun.data + +Please see the log.cite file for references relevant to this simulation + +Total wall time: 0:00:00 diff --git a/lib/colvars/Makefile.common b/lib/colvars/Makefile.common index 0482cff74a21f010f19892025b4519125e586631..2f2e2beffb2faefd448cfd590994428a899670f9 100644 --- a/lib/colvars/Makefile.common +++ b/lib/colvars/Makefile.common @@ -61,7 +61,7 @@ ifeq ($(COLVARS_LEPTON),no) LEPTON_INCFLAGS = COLVARS_OBJS = $(COLVARS_SRCS:.cpp=.o) else -LEPTON_INCFLAGS = -Ilepton/include -DLEPTON +LEPTON_INCFLAGS = -Ilepton/include -DLEPTON -DLEPTON_USE_STATIC_LIBRARIES COLVARS_OBJS = $(COLVARS_SRCS:.cpp=.o) $(LEPTON_SRCS:.cpp=.o) endif @@ -82,4 +82,20 @@ Makefile.deps: $(COLVARS_SRCS) done include Makefile.deps + +# Exceptions to pattern rule above for Lepton objects + +lepton/src/CompiledExpression.o: lepton/src/CompiledExpression.cpp + $(CXX) $(CXXFLAGS) -Ilepton/include -DLEPTON_BUILDING_STATIC_LIBRARY -c -o $@ $< +lepton/src/ExpressionProgram.o: lepton/src/ExpressionProgram.cpp + $(CXX) $(CXXFLAGS) -Ilepton/include -DLEPTON_BUILDING_STATIC_LIBRARY -c -o $@ $< +lepton/src/ExpressionTreeNode.o: lepton/src/ExpressionTreeNode.cpp + $(CXX) $(CXXFLAGS) -Ilepton/include -DLEPTON_BUILDING_STATIC_LIBRARY -c -o $@ $< +lepton/src/Operation.o: lepton/src/Operation.cpp + $(CXX) $(CXXFLAGS) -Ilepton/include -DLEPTON_BUILDING_STATIC_LIBRARY -c -o $@ $< +lepton/src/ParsedExpression.o: lepton/src/ParsedExpression.cpp + $(CXX) $(CXXFLAGS) -Ilepton/include -DLEPTON_BUILDING_STATIC_LIBRARY -c -o $@ $< +lepton/src/Parser.o: lepton/src/Parser.cpp + $(CXX) $(CXXFLAGS) -Ilepton/include -DLEPTON_BUILDING_STATIC_LIBRARY -c -o $@ $< + include Makefile.lepton.deps # Hand-generated diff --git a/lib/colvars/lepton/src/MSVC_erfc.h b/lib/colvars/lepton/src/MSVC_erfc.h index c30a8ce542157a22db338c81b261678e3258cd8f..b1cd87a2896600a8db4cb2ab9fd0459c4e117712 100644 --- a/lib/colvars/lepton/src/MSVC_erfc.h +++ b/lib/colvars/lepton/src/MSVC_erfc.h @@ -8,9 +8,13 @@ * (VC11 has _MSC_VER=1700). */ -#if defined(_MSC_VER) +#if defined(_MSC_VER) || defined(__MINGW32__) +#if !defined(M_PI) #define M_PI 3.14159265358979323846264338327950288 +#endif +#endif +#if defined(_MSC_VER) #if _MSC_VER <= 1700 // 1700 is VC11, 1800 is VC12 /*************************** * erf.cpp diff --git a/lib/gpu/lal_atom.cu b/lib/gpu/lal_atom.cu index 99c76ba6251ec8d7bd87ade6eebf543a7440fcf8..14184593018bde93e008cc45a669ee78e51cfdfa 100644 --- a/lib/gpu/lal_atom.cu +++ b/lib/gpu/lal_atom.cu @@ -11,7 +11,7 @@ // // begin : // email : brownw@ornl.gov -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) #include "lal_preprocessor.h" diff --git a/lib/gpu/lal_beck.cu b/lib/gpu/lal_beck.cu index bdfa57a0cefb0d9a6f7b145110abd26a33ec4e89..f24132b9a28c0015829ead20c8e707f4bf332058 100644 --- a/lib/gpu/lal_beck.cu +++ b/lib/gpu/lal_beck.cu @@ -11,7 +11,7 @@ // // begin : // email : nguyentd@ornl.gov -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) #include "lal_aux_fun1.h" diff --git a/lib/gpu/lal_born.cu b/lib/gpu/lal_born.cu index 6e1d7d95a02d372121a01ebb78a94b04e56a4fb5..f9fea6d618d46fe038ba54b748aec6745b216b79 100644 --- a/lib/gpu/lal_born.cu +++ b/lib/gpu/lal_born.cu @@ -11,7 +11,7 @@ // // begin : // email : nguyentd@ornl.gov -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) #include "lal_aux_fun1.h" diff --git a/lib/gpu/lal_born_coul_long.cu b/lib/gpu/lal_born_coul_long.cu index 441ce4beb5bce75edb11c226bbc2aa7e6d922fe4..14e644b45af94f2890ef6a3b692c9cff1d83dc0d 100644 --- a/lib/gpu/lal_born_coul_long.cu +++ b/lib/gpu/lal_born_coul_long.cu @@ -11,7 +11,7 @@ // // begin : // email : nguyentd@ornl.gov -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) diff --git a/lib/gpu/lal_born_coul_long_cs.cu b/lib/gpu/lal_born_coul_long_cs.cu index f4b6da2d0d4c8be8ddc4db8bc8e7d5e827ce879d..6f04fcea945c435c8625e4957810bf46938b90ca 100644 --- a/lib/gpu/lal_born_coul_long_cs.cu +++ b/lib/gpu/lal_born_coul_long_cs.cu @@ -11,7 +11,7 @@ // // begin : June 2018 // email : ndactrung@gmail.com -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) @@ -109,7 +109,7 @@ __kernel void k_born_coul_long_cs(const __global numtyp4 *restrict x_, numtyp rsq = delx*delx+dely*dely+delz*delz; int mtype=itype*lj_types+jtype; - if (rsq0) uf3[tid]=uf3_in[tid]; } - + acctyp energy=(acctyp)0; acctyp4 f; f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0; @@ -132,7 +132,7 @@ __kernel void k_ufm_fast(const __global numtyp4 *restrict x_, virial[i]=(acctyp)0; __syncthreads(); - + if (ii0) energy += (param3_bigh*reta+vc2-vc3-param3_bigw*r6inv-r*param3_dvrc+param3_c0); - + if (vflag>0) { virial[0] += delx*delx*force; virial[1] += dely*dely*force; @@ -471,13 +471,13 @@ __kernel void k_vashishta_three_center(const __global numtyp4 *restrict x_, numtyp rsq1 = delr1x*delr1x+delr1y*delr1y+delr1z*delr1z; int ijparam=elem2param[itype*nelements*nelements+jtype*nelements+jtype]; - + numtyp4 param4_ijparam; fetch4(param4_ijparam,ijparam,param4_tex); param_r0sq_ij=param4_ijparam.x; if (rsq1 > param_r0sq_ij) continue; // still keep this for neigh no and tpa > 1 param_gamma_ij=param4_ijparam.y; param_r0_ij=param4_ijparam.w; - + int nbor_k,k_end; if (dev_packed==dev_nbor) { nbor_k=nborj_start-offset_j+offset_k; @@ -619,7 +619,7 @@ __kernel void k_vashishta_three_end(const __global numtyp4 *restrict x_, param_gamma_ij=param4_ijparam.y; param_r0_ij = param4_ijparam.w; - + int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; @@ -665,14 +665,14 @@ __kernel void k_vashishta_three_end(const __global numtyp4 *restrict x_, if (rsq2 < param_r0sq_ik) { param_gamma_ik=param4_ikparam.y; param_r0_ik=param4_ikparam.w; - + int ijkparam=elem2param[jtype*nelements*nelements+itype*nelements+ktype]; //jik numtyp4 param5_ijkparam; fetch4(param5_ijkparam,ijkparam,param5_tex); param_bigc_ijk=param5_ijkparam.x; param_costheta_ijk=param5_ijkparam.y; param_bigb_ijk=param5_ijkparam.z; param_big2b_ijk=param5_ijkparam.w; - + numtyp fjx, fjy, fjz; //if (evatom==0) { threebody_half(delr1x,delr1y,delr1z); @@ -774,7 +774,7 @@ __kernel void k_vashishta_three_end_vatom(const __global numtyp4 *restrict x_, param_gamma_ij=param4_ijparam.y; param_r0_ij=param4_ijparam.w; - + int nbor_k,numk; if (dev_nbor==dev_packed) { if (gpu_nbor) nbor_k=j+nbor_pitch; @@ -827,7 +827,7 @@ __kernel void k_vashishta_three_end_vatom(const __global numtyp4 *restrict x_, param_costheta_ijk=param5_ijkparam.y; param_bigb_ijk=param5_ijkparam.z; param_big2b_ijk=param5_ijkparam.w; - + numtyp fjx, fjy, fjz, fkx, fky, fkz; threebody(delr1x,delr1y,delr1z,eflag,energy); diff --git a/lib/gpu/lal_yukawa.cu b/lib/gpu/lal_yukawa.cu index 5237549b0aa503b08cbfd651bc60eb27683e2866..62bc013dc61a44e13c02861665b3135f69e5cc93 100644 --- a/lib/gpu/lal_yukawa.cu +++ b/lib/gpu/lal_yukawa.cu @@ -11,7 +11,7 @@ // // begin : // email : nguyentd@ornl.gov -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) #include "lal_aux_fun1.h" diff --git a/lib/gpu/lal_yukawa_colloid.cu b/lib/gpu/lal_yukawa_colloid.cu index 8c006a09be262f087ebf408ee6309becd357e06c..30b458fec780fd9177f80c003d4b630663e904df 100644 --- a/lib/gpu/lal_yukawa_colloid.cu +++ b/lib/gpu/lal_yukawa_colloid.cu @@ -11,7 +11,7 @@ // // begin : // email : nguyentd@ornl.gov -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) diff --git a/lib/gpu/lal_zbl.cu b/lib/gpu/lal_zbl.cu index fbedfe2de2341352511ba7726c269324d24e58bb..2539c0ddd7e069503a4b1071631e51503d344bb3 100644 --- a/lib/gpu/lal_zbl.cu +++ b/lib/gpu/lal_zbl.cu @@ -11,7 +11,7 @@ // // begin : // email : ndactrung@gmail.com -// ***************************************************************************/ +// *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) #include "lal_aux_fun1.h" diff --git a/lib/kokkos/BUILD.md b/lib/kokkos/BUILD.md index 84a1bc3b3788c2ba99c7b2ab4c992108737188db..63dbf7fdb229e37ecf35c0ca56709e80a2f2391d 100644 --- a/lib/kokkos/BUILD.md +++ b/lib/kokkos/BUILD.md @@ -40,6 +40,13 @@ cmake ${srcdir} \ ```` which activates the OpenMP backend. All of the options controlling device backends, options, architectures, and third-party libraries (TPLs) are given below. +## Platform-specific Problems + +### Cray + +* The Cray compiler wrappers do static linking by default. This seems to break the Kokkos build. You will likely need to set the environment variable `CRAYPE_LINK_TYPE=dynamic` in order to link correctly. Kokkos warns during configure if this is missing. +* The Cray compiler identifies to CMake as Clang, but it sometimes has its own flags that differ from Clang. We try to include all exceptions, but flag errors may occur in which a Clang-specific flag is passed that the Cray compiler does not recognize. + ## Spack An alternative to manually building with the CMake is to use the Spack package manager. To do so, download the `kokkos-spack` git repo and add to the package list: @@ -63,6 +70,7 @@ For a complete list of Kokkos options, run: ```` spack info kokkos ```` +More details can be found in the kokkos-spack repository [README](https://github.com/kokkos/kokkos-spack/blob/master/README.md). #### Spack Development Spack currently installs packages to a location determined by a unique hash. This hash name is not really "human readable". @@ -73,32 +81,8 @@ spack find -p kokkos ... ```` where `...` is the unique spec identifying the particular Kokkos configuration and version. -A better way to use Spack for doing Kokkos development is the DIY feature of Spack. -If you wish to develop Kokkos itself, go to the Kokkos source folder: -```` -spack diy -u cmake kokkos@diy ... -```` -where `...` is a Spack spec identifying the exact Kokkos configuration. -This then creates a `spack-build` directory where you can run `make`. - -If doing development on a downstream project, you can do almost exactly the same thing. -```` -spack diy -u cmake ${myproject}@${myversion} ... ^kokkos... -```` -where the `...` are the specs for your project and the desired Kokkos configuration. -Again, a `spack-build` directory will be created where you can run `make`. - -Spack has a few idiosyncracies that make building outside of Spack annoying related to Spack forcing use of a compiler wrapper. This can be worked around by having a `-DSpack_WORKAROUND=On` given your CMake. Then add the block of code to your CMakeLists.txt: - -```` -if (Spack_WORKAROUND) - set(SPACK_CXX $ENV{SPACK_CXX}) - if(SPACK_CXX) - set(CMAKE_CXX_COMPILER ${SPACK_CXX} CACHE STRING "the C++ compiler" FORCE) - set(ENV{CXX} ${SPACK_CXX}) - endif() -endif() -```` +A better way to use Spack for doing Kokkos development is the dev-build feature of Spack. +For dev-build details, consult the kokkos-spack repository [README](https://github.com/kokkos/kokkos-spack/blob/master/README.md). # Kokkos Keyword Listing @@ -157,6 +141,9 @@ Options can be enabled by specifying `-DKokkos_ENABLE_X`. * Kokkos_ENABLE_DEPRECATED_CODE * Whether to enable deprecated code * BOOL Default: OFF +* Kokkos_ENABLE_EXAMPLES + * Whether to enable building examples + * BOOL Default: OFF * Kokkos_ENABLE_HPX_ASYNC_DISPATCH * Whether HPX supports asynchronous dispatch * BOOL Default: OFF diff --git a/lib/kokkos/CHANGELOG.md b/lib/kokkos/CHANGELOG.md index 1d54b4c21defdcf9b19579aeef28bdfad119c94f..149e63ca91c8b9b23afb3e78079c23c0dea5eb38 100644 --- a/lib/kokkos/CHANGELOG.md +++ b/lib/kokkos/CHANGELOG.md @@ -1,5 +1,59 @@ # Change Log +## [3.1.00](https://github.com/kokkos/kokkos/tree/3.1.00) (2020-04-14) +[Full Changelog](https://github.com/kokkos/kokkos/compare/3.0.00...3.1.00) + +**Features:** + +- HIP Support for AMD +- OpenMPTarget Support with clang +- Windows VS19 (Serial) Support [\#1533](https://github.com/kokkos/kokkos/issues/1533) + +**Implemented enhancements:** + +- generate\_makefile.bash should allow tests to be disabled [\#2886](https://github.com/kokkos/kokkos/issues/2886) +- clang/7+cuda/9 build -Werror-unused parameter error in nightly test [\#2884](https://github.com/kokkos/kokkos/issues/2884) +- ScatterView memory space is not user settable [\#2826](https://github.com/kokkos/kokkos/issues/2826) +- clang/8+cuda/10.0 build error with c++17 [\#2809](https://github.com/kokkos/kokkos/issues/2809) +- warnings.... [\#2805](https://github.com/kokkos/kokkos/issues/2805) +- Kokkos version in cpp define [\#2787](https://github.com/kokkos/kokkos/issues/2787) +- Remove Defunct QThreads Backend [\#2751](https://github.com/kokkos/kokkos/issues/2751) +- Improve Kokkos::fence behavior with multiple execution spaces [\#2659](https://github.com/kokkos/kokkos/issues/2659) +- polylithic\(?\) initialization of Kokkos [\#2658](https://github.com/kokkos/kokkos/issues/2658) +- Unnecessary\(?\) check for host execution space initialization from Cuda initialization [\#2652](https://github.com/kokkos/kokkos/issues/2652) +- Kokkos error reporting failures with CUDA GPUs in exclusive mode [\#2471](https://github.com/kokkos/kokkos/issues/2471) +- atomicMax equivalent \(and other atomics\) [\#2401](https://github.com/kokkos/kokkos/issues/2401) +- Fix alignment for Kokkos::complex [\#2255](https://github.com/kokkos/kokkos/issues/2255) +- Warnings with Cuda 10.1 [\#2206](https://github.com/kokkos/kokkos/issues/2206) +- dual view with Kokkos::ViewAllocateWithoutInitializing [\#2188](https://github.com/kokkos/kokkos/issues/2188) +- Check error code from cudaOccupancyMaxActiveBlocksPerMultiprocessor [\#2172](https://github.com/kokkos/kokkos/issues/2172) +- Add non-member Kokkos::resize/realloc for DualView [\#2170](https://github.com/kokkos/kokkos/issues/2170) +- Construct DualView without initialization [\#2046](https://github.com/kokkos/kokkos/issues/2046) +- Expose is\_assignable to determine if one view can be assigned to another [\#1936](https://github.com/kokkos/kokkos/issues/1936) +- profiling label [\#1935](https://github.com/kokkos/kokkos/issues/1935) +- team\_broadcast of bool failed on CUDA backend [\#1908](https://github.com/kokkos/kokkos/issues/1908) +- View static\_extent [\#660](https://github.com/kokkos/kokkos/issues/660) +- Misleading Kokkos::Cuda::initialize ERROR message when compiled for wrong GPU architecture [\#1944](https://github.com/kokkos/kokkos/issues/1944) +- Cryptic Error When Malloc Fails [\#2164](https://github.com/kokkos/kokkos/issues/2164) +- Drop support for intermediate standards in CMake [\#2336](https://github.com/kokkos/kokkos/issues/2336) + +**Fixed bugs:** + +- DualView sync\_device with length zero creates cuda errors [\#2946](https://github.com/kokkos/kokkos/issues/2946) +- building with nvcc and clang \(or clang based XL\) as host compiler: "Kokkos::atomic\_fetch\_min\(volatile int \*, int\)" has already been defined [\#2903](https://github.com/kokkos/kokkos/issues/2903) +- Cuda 9.1,10.1 debug builds failing due to -Werror=unused-parameter [\#2880](https://github.com/kokkos/kokkos/issues/2880) +- clang -Werror: Kokkos\_FixedBufferMemoryPool.hpp:140:28: error: unused parameter 'alloc\_size' [\#2869](https://github.com/kokkos/kokkos/issues/2869) +- intel/16.0.1, intel/17.0.1 nightly build failures with debugging enabled [\#2867](https://github.com/kokkos/kokkos/issues/2867) +- intel/16.0.1 debug build errors [\#2863](https://github.com/kokkos/kokkos/issues/2863) +- xl/16.1.1 with cpp14, openmp build, nightly test failures [\#2856](https://github.com/kokkos/kokkos/issues/2856) +- Intel nightly test failures: team\_vector [\#2852](https://github.com/kokkos/kokkos/issues/2852) +- Kokkos Views with intmax/2\_ROOT variables") CMAKE_POLICY(SET CMP0074 NEW) ENDIF() -# Load either the real TriBITS or a TriBITS wrapper +# Load either the real TriBITS or a TriBITS wrapper # for certain utility functions that are universal (like GLOBAL_SET) INCLUDE(${KOKKOS_SRC_PATH}/cmake/fake_tribits.cmake) @@ -118,18 +129,14 @@ ENDIF() # These are the variables we will append to as we go # I really wish these were regular variables # but scoping issues can make it difficult -GLOBAL_RESET(KOKKOS_COMPILE_OPTIONS) -GLOBAL_RESET(KOKKOS_LINK_OPTIONS) -GLOBAL_RESET(KOKKOS_CUDA_OPTIONS) -GLOBAL_RESET(KOKKOS_CUDAFE_OPTIONS) -GLOBAL_RESET(KOKKOS_XCOMPILER_OPTIONS) +GLOBAL_SET(KOKKOS_COMPILE_OPTIONS) +GLOBAL_SET(KOKKOS_LINK_OPTIONS) +GLOBAL_SET(KOKKOS_CUDA_OPTIONS) +GLOBAL_SET(KOKKOS_CUDAFE_OPTIONS) +GLOBAL_SET(KOKKOS_XCOMPILER_OPTIONS) # We need to append text here for making sure TPLs # we import are available for an installed Kokkos -GLOBAL_RESET(KOKKOS_TPL_EXPORTS) -# We need these for controlling the exact -std flag -GLOBAL_RESET(KOKKOS_DONT_ALLOW_EXTENSIONS) -GLOBAL_RESET(KOKKOS_USE_CXX_EXTENSIONS) -GLOBAL_RESET(KOKKOS_CXX_STANDARD_FEATURE) +GLOBAL_SET(KOKKOS_TPL_EXPORTS) # Include a set of Kokkos-specific wrapper functions that # will either call raw CMake or TriBITS @@ -137,6 +144,9 @@ GLOBAL_RESET(KOKKOS_CXX_STANDARD_FEATURE) INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_tribits.cmake) +# Check the environment and set certain variables +# to allow platform-specific checks +INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_check_env.cmake) # The build environment setup goes in the following steps # 1) Check all the enable options. This includes checking Kokkos_DEVICES # 2) Check the compiler ID (type and version) @@ -187,14 +197,21 @@ IF (KOKKOS_HAS_TRILINOS) # Because Tribits doesn't use lists, it uses spaces for the list of CXX flags # we have to match the annoying behavior STRING(REPLACE ";" " " KOKKOSCORE_COMPILE_OPTIONS "${KOKKOS_COMPILE_OPTIONS}") - STRING(REPLACE ";" " " KOKKOSCORE_CUDA_OPTIONS "${KOKKOS_CUDA_OPTIONS}") - FOREACH(CUDAFE_FLAG ${KOKKOS_CUDAFE_OPTIONS}) - SET(KOKKOSCORE_CUDAFE_OPTIONS "${KOKKOSCORE_CUDAFE_OPTIONS} -Xcudafe ${CUDAFE_FLAG}") - ENDFOREACH() + LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS ${KOKKOS_COMPILE_OPTIONS}) + LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS ${KOKKOS_CUDA_OPTIONS}) FOREACH(XCOMP_FLAG ${KOKKOS_XCOMPILER_OPTIONS}) SET(KOKKOSCORE_XCOMPILER_OPTIONS "${KOKKOSCORE_XCOMPILER_OPTIONS} -Xcompiler ${XCOMP_FLAG}") + LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS -Xcompiler ${XCOMP_FLAG}) ENDFOREACH() - SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_COMPILE_OPTIONS} ${CMAKE_CXX${KOKKOS_CXX_STANDARD}_STANDARD_COMPILE_OPTION} ${KOKKOSCORE_CUDA_OPTIONS} ${KOKKOSCORE_CUDAFE_OPTIONS} ${KOKKOSCORE_XCOMPILER_OPTIONS}") + SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_COMPILE_OPTIONS} ${CMAKE_CXX${KOKKOS_CXX_STANDARD}_STANDARD_COMPILE_OPTION} ${KOKKOSCORE_XCOMPILER_OPTIONS}") + IF (KOKKOS_ENABLE_CUDA) + STRING(REPLACE ";" " " KOKKOSCORE_CUDA_OPTIONS "${KOKKOS_CUDA_OPTIONS}") + FOREACH(CUDAFE_FLAG ${KOKKOS_CUDAFE_OPTIONS}) + SET(KOKKOSCORE_CUDAFE_OPTIONS "${KOKKOSCORE_CUDAFE_OPTIONS} -Xcudafe ${CUDAFE_FLAG}") + LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS -Xcudafe ${CUDAFE_FLAG}) + ENDFOREACH() + SET(KOKKOSCORE_CXX_FLAGS "${KOKKOSCORE_CXX_FLAGS} ${KOKKOSCORE_CUDA_OPTIONS} ${KOKKOSCORE_CUDAFE_OPTIONS}") + ENDIF() # Both parent scope and this package # In ProjectCompilerPostConfig.cmake, we capture the "global" flags Trilinos wants in # TRILINOS_TOPLEVEL_CXX_FLAGS @@ -203,6 +220,8 @@ IF (KOKKOS_HAS_TRILINOS) #CMAKE_CXX_FLAGS will get added to Kokkos and Kokkos dependencies automatically here #These flags get set up in KOKKOS_PACKAGE_DECL, which means they #must be configured before KOKKOS_PACKAGE_DECL + SET(KOKKOS_ALL_COMPILE_OPTIONS + $<$:${KOKKOS_ALL_COMPILE_OPTIONS}>) ENDIF() KOKKOS_PACKAGE_DECL() @@ -250,7 +269,7 @@ INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_config.h" DESTINATION ${CM IF (HAS_PARENT) FOREACH(DEV Kokkos_ENABLED_DEVICES) #I would much rather not make these cache variables or global properties, but I can't - #make any guarantees on whether PARENT_SCOPE is good enough to make + #make any guarantees on whether PARENT_SCOPE is good enough to make #these variables visible where I need them SET(Kokkos_ENABLE_${DEV} ON PARENT_SCOPE) SET_PROPERTY(GLOBAL PROPERTY Kokkos_ENABLE_${DEV} ON) diff --git a/lib/kokkos/Copyright.txt b/lib/kokkos/Copyright.txt index 06184796b268ee8b6edb8255aebcd0d28f8dfaa5..5e2f8d8647b53b8def2e240c92fdbad04b1550ec 100644 --- a/lib/kokkos/Copyright.txt +++ b/lib/kokkos/Copyright.txt @@ -1,13 +1,13 @@ //@HEADER // ************************************************************************ -// +// // Kokkos v. 3.0 // Copyright (2020) National Technology & Engineering // Solutions of Sandia, LLC (NTESS). -// +// // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -36,6 +36,6 @@ // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// +// // ************************************************************************ //@HEADER diff --git a/lib/kokkos/Makefile.kokkos b/lib/kokkos/Makefile.kokkos index e2b34fb4538669d82477b802219c3264c1f16074..e1fdd0620e49b8dad0b6db6500509ef0aeb1ce90 100644 --- a/lib/kokkos/Makefile.kokkos +++ b/lib/kokkos/Makefile.kokkos @@ -6,15 +6,20 @@ ifndef KOKKOS_PATH endif CXXFLAGS=$(CCFLAGS) -# Options: Cuda,ROCm,OpenMP,Pthreads,Qthreads,Serial +KOKKOS_VERSION_MAJOR = 3 +KOKKOS_VERSION_MINOR = 1 +KOKKOS_VERSION_PATCH = 0 +KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MINOR)*100+$(KOKKOS_VERSION_PATCH) | bc) + +# Options: Cuda,HIP,ROCm,OpenMP,Pthread,Serial KOKKOS_DEVICES ?= "OpenMP" -#KOKKOS_DEVICES ?= "Pthreads" +#KOKKOS_DEVICES ?= "Pthread" # Options: # Intel: KNC,KNL,SNB,HSW,BDW,SKX # NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75 # ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2 # IBM: BGQ,Power7,Power8,Power9 -# AMD-GPUS: Kaveri,Carrizo,Fiji,Vega +# AMD-GPUS: Vega900,Vega906 # AMD-CPUS: AMDAVX,Ryzen,EPYC KOKKOS_ARCH ?= "" # Options: yes,no @@ -35,6 +40,9 @@ KOKKOS_STANDALONE_CMAKE ?= "no" # Options: force_uvm,use_ldg,rdc,enable_lambda,enable_constexpr KOKKOS_CUDA_OPTIONS ?= "enable_lambda" +# Options: rdc +KOKKOS_HIP_OPTIONS ?= "" + # Default settings specific options. # Options: enable_async_dispatch KOKKOS_HPX_OPTIONS ?= "" @@ -82,29 +90,50 @@ KOKKOS_INTERNAL_CUDA_USE_CONSTEXPR := $(call kokkos_has_string,$(KOKKOS_CUDA_OPT KOKKOS_INTERNAL_HPX_ENABLE_ASYNC_DISPATCH := $(call kokkos_has_string,$(KOKKOS_HPX_OPTIONS),enable_async_dispatch) KOKKOS_INTERNAL_ENABLE_ETI := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_eti) +KOKKOS_INTERNAL_HIP_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_HIP_OPTIONS),rdc) # Check for Kokkos Host Execution Spaces one of which must be on. KOKKOS_INTERNAL_USE_OPENMP := $(call kokkos_has_string,$(subst OpenMPTarget,,$(KOKKOS_DEVICES)),OpenMP) KOKKOS_INTERNAL_USE_PTHREADS := $(call kokkos_has_string,$(KOKKOS_DEVICES),Pthread) -KOKKOS_INTERNAL_USE_QTHREADS := $(call kokkos_has_string,$(KOKKOS_DEVICES),Qthreads) KOKKOS_INTERNAL_USE_HPX := $(call kokkos_has_string,$(KOKKOS_DEVICES),HPX) KOKKOS_INTERNAL_USE_SERIAL := $(call kokkos_has_string,$(KOKKOS_DEVICES),Serial) ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 0) ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 0) - ifeq ($(KOKKOS_INTERNAL_USE_QTHREADS), 0) - ifeq ($(KOKKOS_INTERNAL_USE_HPX), 0) - KOKKOS_INTERNAL_USE_SERIAL := 1 - endif + ifeq ($(KOKKOS_INTERNAL_USE_HPX), 0) + KOKKOS_INTERNAL_USE_SERIAL := 1 endif endif endif # Check for other Execution Spaces. KOKKOS_INTERNAL_USE_CUDA := $(call kokkos_has_string,$(KOKKOS_DEVICES),Cuda) -KOKKOS_INTERNAL_USE_ROCM := $(call kokkos_has_string,$(KOKKOS_DEVICES),ROCm) +KOKKOS_INTERNAL_USE_HIP := $(call kokkos_has_string,$(KOKKOS_DEVICES),HIP) KOKKOS_INTERNAL_USE_OPENMPTARGET := $(call kokkos_has_string,$(KOKKOS_DEVICES),OpenMPTarget) +KOKKOS_DEVICELIST = +ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) + KOKKOS_DEVICELIST += Serial +endif +ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) + KOKKOS_DEVICELIST += OpenMP +endif +ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) + KOKKOS_DEVICELIST += Threads +endif +ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) + KOKKOS_DEVICELIST += HPX +endif +ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) + KOKKOS_DEVICELIST += Cuda +endif +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + KOKKOS_DEVICELIST += HIP +endif +ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) + KOKKOS_DEVICELIST += OPENMPTARGET +endif + ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) KOKKOS_INTERNAL_NVCC_PATH := $(shell which nvcc) ifeq ($(origin CUDA_PATH), undefined) @@ -132,6 +161,7 @@ KOKKOS_INTERNAL_COMPILER_NVCC := $(strip $(shell echo "$(shell export OMP KOKKOS_INTERNAL_COMPILER_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),clang) KOKKOS_INTERNAL_COMPILER_APPLE_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),Apple LLVM) KOKKOS_INTERNAL_COMPILER_HCC := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),HCC) +KOKKOS_INTERNAL_COMPILER_GCC := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),GCC) # Check Host Compiler if using NVCC through nvcc_wrapper ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) @@ -180,20 +210,20 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_COMPILER_WARNINGS), 1) KOKKOS_INTERNAL_COMPILER_WARNINGS = else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wuninitialized + KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wunused-parameter -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wuninitialized else ifeq ($(KOKKOS_INTERNAL_COMPILER_APPLE_CLANG), 1) - KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wuninitialized + KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wunused-parameter -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wuninitialized else ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 1) - KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wuninitialized + KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wunused-parameter -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wuninitialized else ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY), 1) # TODO check if cray accepts GNU style warnings KOKKOS_INTERNAL_COMPILER_WARNINGS = else #gcc - KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wignored-qualifiers -Wempty-body -Wclobbered -Wuninitialized + KOKKOS_INTERNAL_COMPILER_WARNINGS = -Wall -Wunused-parameter -Wshadow -pedantic -Wsign-compare -Wtype-limits -Wignored-qualifiers -Wempty-body -Wclobbered -Wuninitialized endif endif endif @@ -230,7 +260,12 @@ ifeq ($(KOKKOS_INTERNAL_COMPILER_XL), 1) KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -DKOKKOS_IBM_XL_OMP45_WORKAROUND -qsmp=omp -qoffload -qnoeh else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) - KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -DKOKKOS_BUG_WORKAROUND_IBM_CLANG_OMP45_VIEW_INIT -fopenmp-implicit-declare-target -fopenmp-targets=nvptx64-nvidia-cuda -fopenmp -fopenmp=libomp + #KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -DKOKKOS_BUG_WORKAROUND_IBM_CLANG_OMP45_VIEW_INIT -fopenmp-implicit-declare-target -fopenmp-targets=nvptx64-nvidia-cuda -fopenmp -fopenmp=libomp + KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -DKOKKOS_WORKAROUND_OPENMPTARGET_CLANG -fopenmp -fopenmp=libomp + KOKKOS_INTERNAL_OPENMPTARGET_LIB := -lomptarget + else + #Assume GCC + KOKKOS_INTERNAL_OPENMPTARGET_FLAG := -fopenmp -foffload=nvptx-none endif endif @@ -353,11 +388,8 @@ KOKKOS_INTERNAL_USE_ARCH_IBM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_ KOKKOS_INTERNAL_USE_ARCH_AMDAVX := $(call kokkos_has_string,$(KOKKOS_ARCH),AMDAVX) KOKKOS_INTERNAL_USE_ARCH_RYZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Ryzen) KOKKOS_INTERNAL_USE_ARCH_EPYC := $(call kokkos_has_string,$(KOKKOS_ARCH),EPYC) -KOKKOS_INTERNAL_USE_ARCH_KAVERI := $(call kokkos_has_string,$(KOKKOS_ARCH),Kaveri) -KOKKOS_INTERNAL_USE_ARCH_CARRIZO := $(call kokkos_has_string,$(KOKKOS_ARCH),Carrizo) -KOKKOS_INTERNAL_USE_ARCH_FIJI := $(call kokkos_has_string,$(KOKKOS_ARCH),Fiji) -KOKKOS_INTERNAL_USE_ARCH_VEGA := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega) -KOKKOS_INTERNAL_USE_ARCH_GFX901 := $(call kokkos_has_string,$(KOKKOS_ARCH),gfx901) +KOKKOS_INTERNAL_USE_ARCH_VEGA900 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega900) +KOKKOS_INTERNAL_USE_ARCH_VEGA906 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega906) # Any AVX? KOKKOS_INTERNAL_USE_ARCH_SSE42 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM)) @@ -430,6 +462,10 @@ tmp := $(call kokkos_append_header,'\#error "Do not include $(KOKKOS_CONFIG_HEAD tmp := $(call kokkos_append_header,'\#else') tmp := $(call kokkos_append_header,'\#define KOKKOS_CORE_CONFIG_H') tmp := $(call kokkos_append_header,'\#endif') + +tmp := $(call kokkos_append_header,"") +tmp := $(call kokkos_append_header,"\#define KOKKOS_VERSION $(KOKKOS_VERSION)") +tmp := $(call kokkos_append_header,"") tmp := $(call kokkos_append_header,"/* Execution Spaces */") @@ -442,9 +478,15 @@ ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_ROCM') tmp := $(call kokkos_append_header,'\#define KOKKOS_IMPL_ROCM_CLANG_WORKAROUND 1') endif +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_HIP') +endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) tmp := $(call kokkos_append_header,'\#define KOKKOS_ENABLE_OPENMPTARGET') + ifeq ($(KOKKOS_INTERNAL_COMPILER_GCC), 1) + tmp := $(call kokkos_append_header,"\#define KOKKOS_WORKAROUND_OPENMPTARGET_GCC") + endif endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) @@ -455,10 +497,6 @@ ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_THREADS") endif -ifeq ($(KOKKOS_INTERNAL_USE_QTHREADS), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_QTHREADS") -endif - ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HPX") endif @@ -966,6 +1004,14 @@ endif # Figure out the architecture flag for Cuda. ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) + KOKKOS_INTERNAL_USE_CUDA_ARCH=1 +endif +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) + KOKKOS_INTERNAL_USE_CUDA_ARCH=1 + endif +endif +ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-arch else ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) @@ -974,7 +1020,17 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) else $(error Makefile.kokkos: CUDA is enabled but the compiler is neither NVCC nor Clang (got version string $(KOKKOS_CXX_VERSION)) ) endif + KOKKOS_INTERNAL_USE_CUDA_ARCH = 1 +endif +ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) + ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) + KOKKOS_INTERNAL_CUDA_ARCH_FLAG=-fopenmp-targets=nvptx64-nvidia-cuda -Xopenmp-target -march + endif + KOKKOS_INTERNAL_USE_CUDA_ARCH = 1 +endif + +ifeq ($(KOKKOS_INTERNAL_USE_CUDA_ARCH), 1) ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KEPLER30), 1) tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER") tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KEPLER30") @@ -1042,55 +1098,49 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) ifeq ($(KOKKOS_INTERNAL_COMPILER_NVCC), 1) KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG) endif + ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1) + ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) + KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_CUDA_ARCH_FLAG) + endif + endif + endif + ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + KOKKOS_CXXFLAGS += --expt-extended-lambda endif endif + # Figure out the architecture flag for ROCm. -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) # Lets start with adding architecture defines - ifeq ($(KOKKOS_INTERNAL_USE_ARCH_KAVERI), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ROCM 701") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_KAVERI") - KOKKOS_INTERNAL_ROCM_ARCH_FLAG := --amdgpu-target=gfx701 - endif - ifeq ($(KOKKOS_INTERNAL_USE_ARCH_CARRIZO), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ROCM 801") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_CARRIZO") - KOKKOS_INTERNAL_ROCM_ARCH_FLAG := --amdgpu-target=gfx801 - endif - ifeq ($(KOKKOS_INTERNAL_USE_ARCH_FIJI), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ROCM 803") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_FIJI") - KOKKOS_INTERNAL_ROCM_ARCH_FLAG := --amdgpu-target=gfx803 + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA900), 1) + tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_HIP 900") + tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA900") + KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx900 endif - ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ROCM 900") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA") - KOKKOS_INTERNAL_ROCM_ARCH_FLAG := --amdgpu-target=gfx900 + ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA906), 1) + tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_HIP 906") + tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_VEGA906") + KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx906 endif - ifeq ($(KOKKOS_INTERNAL_USE_ARCH_GFX901), 1) - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_ROCM 901") - tmp := $(call kokkos_append_header,"\#define KOKKOS_ARCH_GFX901") - KOKKOS_INTERNAL_ROCM_ARCH_FLAG := --amdgpu-target=gfx901 + + KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/HIP/*.cpp) + KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/HIP/*.hpp) + + KOKKOS_CXXFLAGS+=$(KOKKOS_INTERNAL_HIP_ARCH_FLAG) + KOKKOS_LDFLAGS+=$(KOKKOS_INTERNAL_HIP_ARCH_FLAG) + + ifeq ($(KOKKOS_INTERNAL_HIP_USE_RELOC), 1) + tmp := $(call kokkos_append_header,"\#define KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE") + KOKKOS_CXXFLAGS+=-fgpu-rdc + KOKKOS_LDFLAGS+=-fgpu-rdc + else + KOKKOS_CXXFLAGS+=-fno-gpu-rdc + KOKKOS_LDFLAGS+=-fno-gpu-rdc endif - - - KOKKOS_INTERNAL_HCC_PATH := $(shell which $(CXX)) - ROCM_HCC_PATH ?= $(KOKKOS_INTERNAL_HCC_PATH:/bin/clang++=) - - KOKKOS_CXXFLAGS += $(shell $(ROCM_HCC_PATH)/bin/hcc-config --cxxflags) - KOKKOS_LDFLAGS += $(shell $(ROCM_HCC_PATH)/bin/hcc-config --ldflags) -lhc_am -lm - KOKKOS_CXXLDFLAGS += $(shell $(ROCM_HCC_PATH)/bin/hcc-config --ldflags) -lhc_am -lm - KOKKOS_TPL_LIBRARY_NAMES += hc_am m - KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_ROCM_ARCH_FLAG) - - KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/ROCm/*.cpp) -ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_ETI_PATH)/ROCm/*.cpp) -endif - KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/ROCm/*.hpp) endif + KOKKOS_INTERNAL_LS_CONFIG := $(shell ls KokkosCore_config.h 2>&1) ifeq ($(KOKKOS_INTERNAL_LS_CONFIG), KokkosCore_config.h) @@ -1141,7 +1191,7 @@ endif endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) - KOKKOS_SRC += $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp + KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/OpenMPTarget/*.cpp) KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/OpenMPTarget/*.hpp) ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) KOKKOS_CXXFLAGS += -Xcompiler $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG) @@ -1149,6 +1199,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG) endif KOKKOS_LDFLAGS += $(KOKKOS_INTERNAL_OPENMPTARGET_FLAG) + KOKKOS_LIBS += $(KOKKOS_INTERNAL_OPENMPTARGET_LIB) endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) @@ -1178,22 +1229,6 @@ endif KOKKOS_TPL_LIBRARY_NAMES += pthread endif -ifeq ($(KOKKOS_INTERNAL_USE_QTHREADS), 1) - KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Qthreads/*.cpp) - KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Qthreads/*.hpp) - ifneq ($(KOKKOS_CMAKE), yes) - ifneq ($(QTHREADS_PATH),) - KOKKOS_CPPFLAGS += -I$(QTHREADS_PATH)/include - KOKKOS_LIBDIRS += -L$(QTHREADS_PATH)/lib - KOKKOS_CXXLDFLAGS += -L$(QTHREADS_PATH)/lib - KOKKOS_TPL_INCLUDE_DIRS += $(QTHREADS_PATH)/include - KOKKOS_TPL_LIBRARY_DIRS += $(QTHREADS_PATH)/lib64 - endif - KOKKOS_LIBS += -lqthread - KOKKOS_TPL_LIBRARY_NAMES += qthread - endif -endif - ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/HPX/*.cpp) KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/HPX/*.hpp) diff --git a/lib/kokkos/Makefile.targets b/lib/kokkos/Makefile.targets index 0a1f5220161521832e0f7736789de6e88f6f11b8..18e37a71f7157afd0be6dc8d793cc2cb4102f4d3 100644 --- a/lib/kokkos/Makefile.targets +++ b/lib/kokkos/Makefile.targets @@ -55,6 +55,17 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) endif endif +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) +Kokkos_HIP_Space.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Space.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Space.cpp +Kokkos_HIP_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Instance.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Instance.cpp +Kokkos_HIP_KernelLaunch.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp +Kokkos_HIP_Locks.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Locks.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/HIP/Kokkos_HIP_Locks.cpp +endif + ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) Kokkos_ROCm_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Exec.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/ROCm/Kokkos_ROCm_Exec.cpp @@ -79,13 +90,6 @@ ifeq ($(KOKKOS_INTERNAL_ENABLE_ETI), 1) endif endif -ifeq ($(KOKKOS_INTERNAL_USE_QTHREADS), 1) -Kokkos_QthreadsExec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Qthreads/Kokkos_QthreadsExec.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Qthreads/Kokkos_QthreadsExec.cpp -Kokkos_Qthreads_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Qthreads/Kokkos_Qthreads_Task.cpp - $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Qthreads/Kokkos_Qthreads_Task.cpp -endif - ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) Kokkos_OpenMP_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp @@ -106,10 +110,12 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) Kokkos_OpenMPTarget_Exec.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp +Kokkos_OpenMPTarget_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp Kokkos_OpenMPTargetSpace.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp -#Kokkos_OpenMPTarget_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.cpp -# $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.cpp +Kokkos_OpenMPTarget_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.cpp + $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.cpp endif Kokkos_HBWSpace.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/impl/Kokkos_HBWSpace.cpp diff --git a/lib/kokkos/README.md b/lib/kokkos/README.md index 322dabfdab7745b600696b92ecb4ec7e148bc7bd..a04df9eb9b653cfc83fba290705ec10338e5a486 100644 --- a/lib/kokkos/README.md +++ b/lib/kokkos/README.md @@ -11,8 +11,8 @@ CUDA, HPX, OpenMP and Pthreads as backend programming models with several other backends in development. Kokkos Core is part of the Kokkos C++ Performance Portability Programming EcoSystem, -which also provides math kernels (https://github.com/kokkos/kokkos-kernels), as well as -profiling and debugging tools (https://github.com/kokkos/kokkos-tools). +which also provides math kernels (https://github.com/kokkos/kokkos-kernels), as well as +profiling and debugging tools (https://github.com/kokkos/kokkos-tools). # Learning about Kokkos @@ -23,7 +23,7 @@ For questions find us on Slack: https://kokkosteam.slack.com or open a github is For non-public questions send an email to crtrott(at)sandia.gov -A separate repository with extensive tutorial material can be found under +A separate repository with extensive tutorial material can be found under https://github.com/kokkos/kokkos-tutorials. Furthermore, the 'example/tutorial' directory provides step by step tutorial @@ -41,12 +41,12 @@ To learn more about Kokkos consider watching one of our presentations: # Contributing to Kokkos -We are open and try to encourage contributions from external developers. +We are open and try to encourage contributions from external developers. To do so please first open an issue describing the contribution and then issue a pull request against the develop branch. For larger features it may be good -to get guidance from the core development team first through the github issue. +to get guidance from the core development team first through the github issue. -Note that Kokkos Core is licensed under standard 3-clause BSD terms of use. +Note that Kokkos Core is licensed under standard 3-clause BSD terms of use. Which means contributing to Kokkos allows anyone else to use your contributions not just for public purposes but also for closed source commercial projects. For specifics see the LICENSE file contained in the repository or distribution. @@ -94,9 +94,9 @@ For specifics see the LICENSE file contained in the repository or distribution. * Intel 18.2.199 (with gcc 4.9.3) ### Primary tested compilers on ARM (Cavium ThunderX2) -* GCC 7.2.0 +* GCC 7.2.0 * ARM/Clang 18.4.0 - + ### Other compilers working: * X86: * Cygwin 2.1.0 64bit with gcc 4.9.3 @@ -110,47 +110,47 @@ For specifics see the LICENSE file contained in the repository or distribution. Primary tested compiler are passing in release mode -with warnings as errors. They also are tested with a comprehensive set of +with warnings as errors. They also are tested with a comprehensive set of backend combinations (i.e. OpenMP, Pthreads, Serial, OpenMP+Serial, ...). We are using the following set of flags: -* GCC: +* GCC: ```` - -Wall -Wshadow -pedantic + -Wall -Wunused-parameter -Wshadow -pedantic -Werror -Wsign-compare -Wtype-limits - -Wignored-qualifiers -Wempty-body + -Wignored-qualifiers -Wempty-body -Wclobbered -Wuninitialized ```` -* Intel: +* Intel: ```` - -Wall -Wshadow -pedantic - -Werror -Wsign-compare -Wtype-limits + -Wall -Wunused-parameter -Wshadow -pedantic + -Werror -Wsign-compare -Wtype-limits -Wuninitialized ```` -* Clang: +* Clang: ```` - -Wall -Wshadow -pedantic - -Werror -Wsign-compare -Wtype-limits + -Wall -Wunused-parameter -Wshadow -pedantic + -Werror -Wsign-compare -Wtype-limits -Wuninitialized - ```` + ```` -* NVCC: +* NVCC: ```` - -Wall -Wshadow -pedantic - -Werror -Wsign-compare -Wtype-limits + -Wall -Wunused-parameter -Wshadow -pedantic + -Werror -Wsign-compare -Wtype-limits -Wuninitialized ```` -Other compilers are tested occasionally, in particular when pushing from develop to +Other compilers are tested occasionally, in particular when pushing from develop to master branch. These are tested less rigorously without `-Werror` and only for a select set of backends. # Building and Installing Kokkos -Kokkos provide a CMake build system and a raw Makefile build system. +Kokkos provide a CMake build system and a raw Makefile build system. The CMake build system is strongly encouraged and will be the most rigorously supported in future releases. Full details are given in the [build instructions](BUILD.md). Basic setups are shown here: ## CMake -The best way to install Kokkos is using the CMake build system. Assuming Kokkos lives in `$srcdir`: +The best way to install Kokkos is using the CMake build system. Assuming Kokkos lives in `$srcdir`: ```` cmake $srcdir \ -DCMAKE_CXX_COMPILER=$path_to_compiler \ @@ -162,9 +162,9 @@ cmake $srcdir \ ```` then simply type `make install`. The Kokkos CMake package will then be installed in `$path_to_install` to be used by downstream packages. -To validate the Kokkos build, configure with +To validate the Kokkos build, configure with ```` - -DKokkos_ENABLE_TESTS=On + -DKokkos_ENABLE_TESTS=On ```` and run `make test` after completing the build. @@ -209,7 +209,7 @@ For a complete list of Kokkos options, run: spack info kokkos ```` Spack currently installs packages to a location determined by a unique hash. This hash name is not really "human readable". -Generally, Spack usage should never really require you to reference the computer-generated unique install folder. +Generally, Spack usage should never really require you to reference the computer-generated unique install folder. More details are given in the [build instructions](BUILD.md). If you must know, you can locate Spack Kokkos installations with: ```` spack find -p kokkos ... @@ -217,7 +217,7 @@ spack find -p kokkos ... where `...` is the unique spec identifying the particular Kokkos configuration and version. -## Raw Makefile +## Raw Makefile A bash script is provided to generate raw makefiles. To install Kokkos as a library create a build directory and run the following ```` @@ -240,33 +240,33 @@ changing the device type for which to build. For individual projects, it may be preferable to build Kokkos inline rather than link to an installed package. The main reason is that you may otherwise need many different configurations of Kokkos installed depending on the required compile time -features an application needs. For example there is only one default +features an application needs. For example there is only one default execution space, which means you need different installations to have OpenMP or Pthreads as the default space. Also for the CUDA backend there are certain -choices, such as allowing relocatable device code, which must be made at +choices, such as allowing relocatable device code, which must be made at installation time. Building Kokkos inline uses largely the same process -as compiling an application against an installed Kokkos library. +as compiling an application against an installed Kokkos library. For CMake, this means copying over the Kokkos source code into your project and adding `add_subdirectory(kokkos)` to your CMakeLists.txt. -For raw Makefiles, see the example benchmarks/bytes_and_flops/Makefile which can be used with an installed library and or an inline build. +For raw Makefiles, see the example benchmarks/bytes_and_flops/Makefile which can be used with an installed library and or an inline build. # Kokkos and CUDA UVM -Kokkos does support UVM as a specific memory space called CudaUVMSpace. -Allocations made with that space are accessible from host and device. +Kokkos does support UVM as a specific memory space called CudaUVMSpace. +Allocations made with that space are accessible from host and device. You can tell Kokkos to use that as the default space for Cuda allocations. In either case UVM comes with a number of restrictions: -* You can't access allocations on the host while a kernel is potentially -running. This will lead to segfaults. To avoid that you either need to +* You can't access allocations on the host while a kernel is potentially +running. This will lead to segfaults. To avoid that you either need to call Kokkos::Cuda::fence() (or just Kokkos::fence()), after kernels, or you can set the environment variable CUDA_LAUNCH_BLOCKING=1. -* In multi socket multi GPU machines without NVLINK, UVM defaults +* In multi socket multi GPU machines without NVLINK, UVM defaults to using zero copy allocations for technical reasons related to using multiple GPUs from the same process. If an executable doesn't do that (e.g. each -MPI rank of an application uses a single GPU [can be the same GPU for +MPI rank of an application uses a single GPU [can be the same GPU for multiple MPI ranks]) you can set CUDA_MANAGED_FORCE_DEVICE_ALLOC=1. -This will enforce proper UVM allocations, but can lead to errors if +This will enforce proper UVM allocations, but can lead to errors if more than a single GPU is used by a single process. diff --git a/lib/kokkos/algorithms/src/Kokkos_Random.hpp b/lib/kokkos/algorithms/src/Kokkos_Random.hpp index 078db18eddf699a983503763a2de98fbc618215c..0a7967523656cda4f96ca911116a4a5a06a30830 100644 --- a/lib/kokkos/algorithms/src/Kokkos_Random.hpp +++ b/lib/kokkos/algorithms/src/Kokkos_Random.hpp @@ -537,6 +537,145 @@ struct rand > { } }; +template +class Random_XorShift1024_Pool; + +namespace Impl { + +template +struct Random_XorShift1024_State { + uint64_t state_[16]; + KOKKOS_DEFAULTED_FUNCTION + Random_XorShift1024_State() = default; + + template + KOKKOS_FUNCTION Random_XorShift1024_State(const StateViewType& v, + int state_idx) { + for (int i = 0; i < 16; i++) state_[i] = v(state_idx, i); + } + + KOKKOS_FUNCTION + uint64_t operator[](const int i) const { return state_[i]; } + + KOKKOS_FUNCTION + uint64_t& operator[](const int i) { return state_[i]; } +}; + +template <> +struct Random_XorShift1024_State { + uint64_t* state_; + const int stride_; + KOKKOS_FUNCTION + Random_XorShift1024_State() : state_(nullptr), stride_(1){}; + + template + KOKKOS_FUNCTION Random_XorShift1024_State(const StateViewType& v, + int state_idx) + : state_(&v(state_idx, 0)), stride_(v.stride_1()) {} + + KOKKOS_FUNCTION + uint64_t operator[](const int i) const { return state_[i * stride_]; } + + KOKKOS_FUNCTION + uint64_t& operator[](const int i) { return state_[i * stride_]; } +}; + +template +struct Random_XorShift1024_UseCArrayState : std::true_type {}; + +#ifdef KOKKOS_ENABLE_CUDA +template <> +struct Random_XorShift1024_UseCArrayState : std::false_type {}; +#endif +#ifdef KOKKOS_ENABLE_HIP +template <> +struct Random_XorShift1024_UseCArrayState + : std::false_type {}; +#endif +#ifdef KOKKOS_ENABLE_OPENMPTARGET +template <> +struct Random_XorShift1024_UseCArrayState + : std::false_type {}; +#endif + +template +struct Random_UniqueIndex { + using locks_view_type = View; + KOKKOS_FUNCTION + static int get_state_idx(const locks_view_type) { +#ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST +#ifdef KOKKOS_ENABLE_DEPRECATED_CODE + const int i = ExecutionSpace::hardware_thread_id(); +#else + const int i = ExecutionSpace::impl_hardware_thread_id(); +#endif + return i; +#else + return 0; +#endif + } +}; + +#ifdef KOKKOS_ENABLE_CUDA +template <> +struct Random_UniqueIndex { + using locks_view_type = View; + KOKKOS_FUNCTION + static int get_state_idx(const locks_view_type& locks_) { +#ifdef __CUDA_ARCH__ + const int i_offset = + (threadIdx.x * blockDim.y + threadIdx.y) * blockDim.z + threadIdx.z; + int i = (((blockIdx.x * gridDim.y + blockIdx.y) * gridDim.z + blockIdx.z) * + blockDim.x * blockDim.y * blockDim.z + + i_offset) % + locks_.extent(0); + while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { + i += blockDim.x * blockDim.y * blockDim.z; + if (i >= static_cast(locks_.extent(0))) { + i = i_offset; + } + } + return i; +#else + (void)locks_; + return 0; +#endif + } +}; +#endif + +#ifdef KOKKOS_ENABLE_HIP +template <> +struct Random_UniqueIndex { + using locks_view_type = View; + KOKKOS_FUNCTION + static int get_state_idx(const locks_view_type& locks_) { +#ifdef __HIP_DEVICE_COMPILE__ + const int i_offset = + (hipThreadIdx_x * hipBlockDim_y + hipThreadIdx_y) * hipBlockDim_z + + hipThreadIdx_z; + int i = (((hipBlockIdx_x * hipGridDim_y + hipBlockIdx_y) * hipGridDim_z + + hipBlockIdx_z) * + hipBlockDim_x * hipBlockDim_y * hipBlockDim_z + + i_offset) % + locks_.extent(0); + while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { + i += hipBlockDim_x * hipBlockDim_y * hipBlockDim_z; + if (i >= static_cast(locks_.extent(0))) { + i = i_offset; + } + } + return i; +#else + (void)locks_; + return 0; +#endif + } +}; +#endif + +} // namespace Impl + template class Random_XorShift64_Pool; @@ -550,10 +689,10 @@ class Random_XorShift64 { public: typedef DeviceType device_type; - enum { MAX_URAND = 0xffffffffU }; - enum { MAX_URAND64 = 0xffffffffffffffffULL - 1 }; - enum { MAX_RAND = static_cast(0xffffffff / 2) }; - enum { MAX_RAND64 = static_cast(0xffffffffffffffffLL / 2 - 1) }; + constexpr static uint32_t MAX_URAND = std::numeric_limits::max(); + constexpr static uint64_t MAX_URAND64 = std::numeric_limits::max(); + constexpr static int32_t MAX_RAND = std::numeric_limits::max(); + constexpr static int64_t MAX_RAND64 = std::numeric_limits::max(); KOKKOS_INLINE_FUNCTION Random_XorShift64(uint64_t state, int state_idx = 0) @@ -637,10 +776,12 @@ class Random_XorShift64 { } KOKKOS_INLINE_FUNCTION - float frand() { return 1.0f * urand64() / MAX_URAND64; } + float frand() { return urand64() / static_cast(MAX_URAND64); } KOKKOS_INLINE_FUNCTION - float frand(const float& range) { return range * urand64() / MAX_URAND64; } + float frand(const float& range) { + return range * urand64() / static_cast(MAX_URAND64); + } KOKKOS_INLINE_FUNCTION float frand(const float& start, const float& end) { @@ -648,10 +789,12 @@ class Random_XorShift64 { } KOKKOS_INLINE_FUNCTION - double drand() { return 1.0 * urand64() / MAX_URAND64; } + double drand() { return urand64() / static_cast(MAX_URAND64); } KOKKOS_INLINE_FUNCTION - double drand(const double& range) { return range * urand64() / MAX_URAND64; } + double drand(const double& range) { + return range * urand64() / static_cast(MAX_URAND64); + } KOKKOS_INLINE_FUNCTION double drand(const double& start, const double& end) { @@ -662,6 +805,11 @@ class Random_XorShift64 { // number KOKKOS_INLINE_FUNCTION double normal() { +#ifndef __HIP_DEVICE_COMPILE__ // FIXME_HIP + using std::sqrt; +#else + using ::sqrt; +#endif double S = 2.0; double U; while (S >= 1.0) { @@ -669,7 +817,7 @@ class Random_XorShift64 { const double V = 2.0 * drand() - 1.0; S = U * U + V * V; } - return U * std::sqrt(-2.0 * log(S) / S); + return U * sqrt(-2.0 * log(S) / S); } KOKKOS_INLINE_FUNCTION @@ -681,9 +829,10 @@ class Random_XorShift64 { template class Random_XorShift64_Pool { private: - typedef View lock_type; + using execution_space = typename DeviceType::execution_space; + typedef View locks_type; typedef View state_data_type; - lock_type locks_; + locks_type locks_; state_data_type state_; int num_states_; @@ -695,11 +844,8 @@ class Random_XorShift64_Pool { Random_XorShift64_Pool() { num_states_ = 0; } Random_XorShift64_Pool(uint64_t seed) { num_states_ = 0; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - init(seed, DeviceType::max_hardware_threads()); -#else - init(seed, DeviceType::impl_max_hardware_threads()); -#endif + + init(seed, execution_space().concurrency()); } KOKKOS_INLINE_FUNCTION @@ -719,11 +865,11 @@ class Random_XorShift64_Pool { num_states_ = num_states; - locks_ = lock_type("Kokkos::Random_XorShift64::locks", num_states_); + locks_ = locks_type("Kokkos::Random_XorShift64::locks", num_states_); state_ = state_data_type("Kokkos::Random_XorShift64::state", num_states_); typename state_data_type::HostMirror h_state = create_mirror_view(state_); - typename lock_type::HostMirror h_lock = create_mirror_view(locks_); + typename locks_type::HostMirror h_lock = create_mirror_view(locks_); // Execute on the HostMirror's default execution space. Random_XorShift64 @@ -746,13 +892,8 @@ class Random_XorShift64_Pool { KOKKOS_INLINE_FUNCTION Random_XorShift64 get_state() const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int i = DeviceType::hardware_thread_id(); - ; -#else - const int i = DeviceType::impl_hardware_thread_id(); - ; -#endif + const int i = + Impl::Random_UniqueIndex::get_state_idx(locks_); return Random_XorShift64(state_(i), i); } @@ -765,35 +906,35 @@ class Random_XorShift64_Pool { KOKKOS_INLINE_FUNCTION void free_state(const Random_XorShift64& state) const { state_(state.state_idx_) = state.state_; + locks_(state.state_idx_) = 0; } }; -template -class Random_XorShift1024_Pool; - template class Random_XorShift1024 { + using execution_space = typename DeviceType::execution_space; + private: int p_; const int state_idx_; - uint64_t state_[16]; + Impl::Random_XorShift1024_State< + Impl::Random_XorShift1024_UseCArrayState::value> + state_; friend class Random_XorShift1024_Pool; public: typedef Random_XorShift1024_Pool pool_type; typedef DeviceType device_type; - enum { MAX_URAND = 0xffffffffU }; - enum { MAX_URAND64 = 0xffffffffffffffffULL - 1 }; - enum { MAX_RAND = static_cast(0xffffffffU / 2) }; - enum { MAX_RAND64 = static_cast(0xffffffffffffffffULL / 2 - 1) }; + constexpr static uint32_t MAX_URAND = std::numeric_limits::max(); + constexpr static uint64_t MAX_URAND64 = std::numeric_limits::max(); + constexpr static int32_t MAX_RAND = std::numeric_limits::max(); + constexpr static int64_t MAX_RAND64 = std::numeric_limits::max(); KOKKOS_INLINE_FUNCTION Random_XorShift1024(const typename pool_type::state_data_type& state, int p, int state_idx = 0) - : p_(p), state_idx_(state_idx) { - for (int i = 0; i < 16; i++) state_[i] = state(state_idx, i); - } + : p_(p), state_idx_(state_idx), state_(state, state_idx) {} KOKKOS_INLINE_FUNCTION uint32_t urand() { @@ -876,10 +1017,12 @@ class Random_XorShift1024 { } KOKKOS_INLINE_FUNCTION - float frand() { return 1.0f * urand64() / MAX_URAND64; } + float frand() { return urand64() / static_cast(MAX_URAND64); } KOKKOS_INLINE_FUNCTION - float frand(const float& range) { return range * urand64() / MAX_URAND64; } + float frand(const float& range) { + return range * urand64() / static_cast(MAX_URAND64); + } KOKKOS_INLINE_FUNCTION float frand(const float& start, const float& end) { @@ -887,10 +1030,12 @@ class Random_XorShift1024 { } KOKKOS_INLINE_FUNCTION - double drand() { return 1.0 * urand64() / MAX_URAND64; } + double drand() { return urand64() / static_cast(MAX_URAND64); } KOKKOS_INLINE_FUNCTION - double drand(const double& range) { return range * urand64() / MAX_URAND64; } + double drand(const double& range) { + return range * urand64() / static_cast(MAX_URAND64); + } KOKKOS_INLINE_FUNCTION double drand(const double& start, const double& end) { @@ -901,6 +1046,11 @@ class Random_XorShift1024 { // number KOKKOS_INLINE_FUNCTION double normal() { +#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP + using std::sqrt; +#else + using ::sqrt; +#endif double S = 2.0; double U; while (S >= 1.0) { @@ -908,7 +1058,7 @@ class Random_XorShift1024 { const double V = 2.0 * drand() - 1.0; S = U * U + V * V; } - return U * std::sqrt(-2.0 * log(S) / S); + return U * sqrt(-2.0 * log(S) / S); } KOKKOS_INLINE_FUNCTION @@ -920,10 +1070,12 @@ class Random_XorShift1024 { template class Random_XorShift1024_Pool { private: + using execution_space = typename DeviceType::execution_space; + typedef View locks_type; typedef View int_view_type; typedef View state_data_type; - int_view_type locks_; + locks_type locks_; state_data_type state_; int_view_type p_; int num_states_; @@ -939,11 +1091,8 @@ class Random_XorShift1024_Pool { inline Random_XorShift1024_Pool(uint64_t seed) { num_states_ = 0; -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - init(seed, DeviceType::max_hardware_threads()); -#else - init(seed, DeviceType::impl_max_hardware_threads()); -#endif + + init(seed, execution_space().concurrency()); } KOKKOS_INLINE_FUNCTION @@ -965,12 +1114,12 @@ class Random_XorShift1024_Pool { inline void init(uint64_t seed, int num_states) { if (seed == 0) seed = uint64_t(1318319); num_states_ = num_states; - locks_ = int_view_type("Kokkos::Random_XorShift1024::locks", num_states_); + locks_ = locks_type("Kokkos::Random_XorShift1024::locks", num_states_); state_ = state_data_type("Kokkos::Random_XorShift1024::state", num_states_); p_ = int_view_type("Kokkos::Random_XorShift1024::p", num_states_); typename state_data_type::HostMirror h_state = create_mirror_view(state_); - typename int_view_type::HostMirror h_lock = create_mirror_view(locks_); + typename locks_type::HostMirror h_lock = create_mirror_view(locks_); typename int_view_type::HostMirror h_p = create_mirror_view(p_); // Execute on the HostMirror's default execution space. @@ -997,11 +1146,8 @@ class Random_XorShift1024_Pool { KOKKOS_INLINE_FUNCTION Random_XorShift1024 get_state() const { -#ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const int i = DeviceType::hardware_thread_id(); -#else - const int i = DeviceType::impl_hardware_thread_id(); -#endif + const int i = + Impl::Random_UniqueIndex::get_state_idx(locks_); return Random_XorShift1024(state_, p_(i), i); }; @@ -1014,482 +1160,11 @@ class Random_XorShift1024_Pool { KOKKOS_INLINE_FUNCTION void free_state(const Random_XorShift1024& state) const { for (int i = 0; i < 16; i++) state_(state.state_idx_, i) = state.state_[i]; - p_(state.state_idx_) = state.p_; + p_(state.state_idx_) = state.p_; + locks_(state.state_idx_) = 0; } }; -#if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDACC__) - -template <> -class Random_XorShift1024 { - private: - int p_; - const int state_idx_; - uint64_t* state_; - const int stride_; - friend class Random_XorShift1024_Pool; - - public: - typedef Kokkos::Cuda device_type; - typedef Random_XorShift1024_Pool pool_type; - - enum { MAX_URAND = 0xffffffffU }; - enum { MAX_URAND64 = 0xffffffffffffffffULL - 1 }; - enum { MAX_RAND = static_cast(0xffffffffU / 2) }; - enum { MAX_RAND64 = static_cast(0xffffffffffffffffULL / 2 - 1) }; - - KOKKOS_INLINE_FUNCTION - Random_XorShift1024(const typename pool_type::state_data_type& state, int p, - int state_idx = 0) - : p_(p), - state_idx_(state_idx), - state_(&state(state_idx, 0)), - stride_(state.stride_1()) {} - - KOKKOS_INLINE_FUNCTION - uint32_t urand() { - uint64_t state_0 = state_[p_ * stride_]; - uint64_t state_1 = state_[(p_ = (p_ + 1) & 15) * stride_]; - state_1 ^= state_1 << 31; - state_1 ^= state_1 >> 11; - state_0 ^= state_0 >> 30; - uint64_t tmp = - (state_[p_ * stride_] = state_0 ^ state_1) * 1181783497276652981ULL; - tmp = tmp >> 16; - return static_cast(tmp & MAX_URAND); - } - - KOKKOS_INLINE_FUNCTION - uint64_t urand64() { - uint64_t state_0 = state_[p_ * stride_]; - uint64_t state_1 = state_[(p_ = (p_ + 1) & 15) * stride_]; - state_1 ^= state_1 << 31; - state_1 ^= state_1 >> 11; - state_0 ^= state_0 >> 30; - return ((state_[p_ * stride_] = state_0 ^ state_1) * - 1181783497276652981LL) - - 1; - } - - KOKKOS_INLINE_FUNCTION - uint32_t urand(const uint32_t& range) { - const uint32_t max_val = (MAX_URAND / range) * range; - uint32_t tmp = urand(); - while (tmp >= max_val) urand(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - uint32_t urand(const uint32_t& start, const uint32_t& end) { - return urand(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - uint64_t urand64(const uint64_t& range) { - const uint64_t max_val = (MAX_URAND64 / range) * range; - uint64_t tmp = urand64(); - while (tmp >= max_val) urand64(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - uint64_t urand64(const uint64_t& start, const uint64_t& end) { - return urand64(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - int rand() { return static_cast(urand() / 2); } - - KOKKOS_INLINE_FUNCTION - int rand(const int& range) { - const int max_val = (MAX_RAND / range) * range; - int tmp = rand(); - while (tmp >= max_val) rand(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - int rand(const int& start, const int& end) { - return rand(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - int64_t rand64() { return static_cast(urand64() / 2); } - - KOKKOS_INLINE_FUNCTION - int64_t rand64(const int64_t& range) { - const int64_t max_val = (MAX_RAND64 / range) * range; - int64_t tmp = rand64(); - while (tmp >= max_val) rand64(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - int64_t rand64(const int64_t& start, const int64_t& end) { - return rand64(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - float frand() { return 1.0f * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - float frand(const float& range) { return range * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - float frand(const float& start, const float& end) { - return frand(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - double drand() { return 1.0 * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - double drand(const double& range) { return range * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - double drand(const double& start, const double& end) { - return frand(end - start) + start; - } - - // Marsaglia polar method for drawing a standard normal distributed random - // number - KOKKOS_INLINE_FUNCTION - double normal() { - double S = 2.0; - double U; - while (S >= 1.0) { - U = 2.0 * drand() - 1.0; - const double V = 2.0 * drand() - 1.0; - S = U * U + V * V; - } - return U * std::sqrt(-2.0 * log(S) / S); - } - - KOKKOS_INLINE_FUNCTION - double normal(const double& mean, const double& std_dev = 1.0) { - return mean + normal() * std_dev; - } -}; - -template <> -inline Random_XorShift64_Pool::Random_XorShift64_Pool( - uint64_t seed) { - num_states_ = 0; - init(seed, 4 * 32768); -} - -template <> -KOKKOS_INLINE_FUNCTION Random_XorShift64 -Random_XorShift64_Pool::get_state() const { -#ifdef __CUDA_ARCH__ - const int i_offset = - (threadIdx.x * blockDim.y + threadIdx.y) * blockDim.z + threadIdx.z; - int i = (((blockIdx.x * gridDim.y + blockIdx.y) * gridDim.z + blockIdx.z) * - blockDim.x * blockDim.y * blockDim.z + - i_offset) % - num_states_; - while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { - i += blockDim.x * blockDim.y * blockDim.z; - if (i >= num_states_) { - i = i_offset; - } - } - - return Random_XorShift64(state_(i), i); -#else - return Random_XorShift64(state_(0), 0); -#endif -} - -template <> -KOKKOS_INLINE_FUNCTION void Random_XorShift64_Pool::free_state( - const Random_XorShift64& state) const { - state_(state.state_idx_) = state.state_; -#ifdef __CUDA_ARCH__ - locks_(state.state_idx_) = 0; - return; -#endif -} - -template <> -inline Random_XorShift1024_Pool::Random_XorShift1024_Pool( - uint64_t seed) { - num_states_ = 0; - init(seed, 4 * 32768); -} - -template <> -KOKKOS_INLINE_FUNCTION Random_XorShift1024 -Random_XorShift1024_Pool::get_state() const { -#ifdef __CUDA_ARCH__ - const int i_offset = - (threadIdx.x * blockDim.y + threadIdx.y) * blockDim.z + threadIdx.z; - int i = (((blockIdx.x * gridDim.y + blockIdx.y) * gridDim.z + blockIdx.z) * - blockDim.x * blockDim.y * blockDim.z + - i_offset) % - num_states_; - while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { - i += blockDim.x * blockDim.y * blockDim.z; - if (i >= num_states_) { - i = i_offset; - } - } - - return Random_XorShift1024(state_, p_(i), i); -#else - return Random_XorShift1024(state_, p_(0), 0); -#endif -} - -template <> -KOKKOS_INLINE_FUNCTION void Random_XorShift1024_Pool::free_state( - const Random_XorShift1024& state) const { - for (int i = 0; i < 16; i++) state_(state.state_idx_, i) = state.state_[i]; -#ifdef __CUDA_ARCH__ - locks_(state.state_idx_) = 0; - return; -#endif -} - -#endif - -#if defined(KOKKOS_ENABLE_ROCM) - -template <> -class Random_XorShift1024 { - private: - int p_; - const int state_idx_; - uint64_t* state_; - const int stride_; - friend class Random_XorShift1024_Pool; - - public: - typedef Kokkos::Experimental::ROCm device_type; - typedef Random_XorShift1024_Pool pool_type; - - enum { MAX_URAND = 0xffffffffU }; - enum { MAX_URAND64 = 0xffffffffffffffffULL - 1 }; - enum { MAX_RAND = static_cast(0xffffffffU / 2) }; - enum { MAX_RAND64 = static_cast(0xffffffffffffffffULL / 2 - 1) }; - - KOKKOS_INLINE_FUNCTION - Random_XorShift1024(const typename pool_type::state_data_type& state, int p, - int state_idx = 0) - : p_(p), - state_idx_(state_idx), - state_(&state(state_idx, 0)), - stride_(state.stride_1()) {} - - KOKKOS_INLINE_FUNCTION - uint32_t urand() { - uint64_t state_0 = state_[p_ * stride_]; - uint64_t state_1 = state_[(p_ = (p_ + 1) & 15) * stride_]; - state_1 ^= state_1 << 31; - state_1 ^= state_1 >> 11; - state_0 ^= state_0 >> 30; - uint64_t tmp = - (state_[p_ * stride_] = state_0 ^ state_1) * 1181783497276652981ULL; - tmp = tmp >> 16; - return static_cast(tmp & MAX_URAND); - } - - KOKKOS_INLINE_FUNCTION - uint64_t urand64() { - uint64_t state_0 = state_[p_ * stride_]; - uint64_t state_1 = state_[(p_ = (p_ + 1) & 15) * stride_]; - state_1 ^= state_1 << 31; - state_1 ^= state_1 >> 11; - state_0 ^= state_0 >> 30; - return ((state_[p_ * stride_] = state_0 ^ state_1) * - 1181783497276652981LL) - - 1; - } - - KOKKOS_INLINE_FUNCTION - uint32_t urand(const uint32_t& range) { - const uint32_t max_val = (MAX_URAND / range) * range; - uint32_t tmp = urand(); - while (tmp >= max_val) urand(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - uint32_t urand(const uint32_t& start, const uint32_t& end) { - return urand(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - uint64_t urand64(const uint64_t& range) { - const uint64_t max_val = (MAX_URAND64 / range) * range; - uint64_t tmp = urand64(); - while (tmp >= max_val) urand64(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - uint64_t urand64(const uint64_t& start, const uint64_t& end) { - return urand64(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - int rand() { return static_cast(urand() / 2); } - - KOKKOS_INLINE_FUNCTION - int rand(const int& range) { - const int max_val = (MAX_RAND / range) * range; - int tmp = rand(); - while (tmp >= max_val) rand(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - int rand(const int& start, const int& end) { - return rand(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - int64_t rand64() { return static_cast(urand64() / 2); } - - KOKKOS_INLINE_FUNCTION - int64_t rand64(const int64_t& range) { - const int64_t max_val = (MAX_RAND64 / range) * range; - int64_t tmp = rand64(); - while (tmp >= max_val) rand64(); - return tmp % range; - } - - KOKKOS_INLINE_FUNCTION - int64_t rand64(const int64_t& start, const int64_t& end) { - return rand64(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - float frand() { return 1.0f * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - float frand(const float& range) { return range * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - float frand(const float& start, const float& end) { - return frand(end - start) + start; - } - - KOKKOS_INLINE_FUNCTION - double drand() { return 1.0 * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - double drand(const double& range) { return range * urand64() / MAX_URAND64; } - - KOKKOS_INLINE_FUNCTION - double drand(const double& start, const double& end) { - return frand(end - start) + start; - } - - // Marsaglia polar method for drawing a standard normal distributed random - // number - KOKKOS_INLINE_FUNCTION - double normal() { - double S = 2.0; - double U; - while (S >= 1.0) { - U = 2.0 * drand() - 1.0; - const double V = 2.0 * drand() - 1.0; - S = U * U + V * V; - } - return U * std::sqrt(-2.0 * log(S) / S); - } - - KOKKOS_INLINE_FUNCTION - double normal(const double& mean, const double& std_dev = 1.0) { - return mean + normal() * std_dev; - } -}; - -template <> -inline Random_XorShift64_Pool< - Kokkos::Experimental::ROCm>::Random_XorShift64_Pool(uint64_t seed) { - num_states_ = 0; - init(seed, 4 * 32768); -} - -template <> -KOKKOS_INLINE_FUNCTION Random_XorShift64 -Random_XorShift64_Pool::get_state() const { -#ifdef __HCC_ACCELERATOR__ - const int i_offset = - (threadIdx_x * blockDim_y + threadIdx_y) * blockDim_z + threadIdx_z; - int i = (((blockIdx_x * gridDim_y + blockIdx_y) * gridDim_z + blockIdx_z) * - blockDim_x * blockDim_y * blockDim_z + - i_offset) % - num_states_; - while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { - i += blockDim_x * blockDim_y * blockDim_z; - if (i >= num_states_) { - i = i_offset; - } - } - - return Random_XorShift64(state_(i), i); -#else - return Random_XorShift64(state_(0), 0); -#endif -} - -template <> -KOKKOS_INLINE_FUNCTION void -Random_XorShift64_Pool::free_state( - const Random_XorShift64& state) const { -#ifdef __HCC_ACCELERATOR__ - state_(state.state_idx_) = state.state_; - locks_(state.state_idx_) = 0; - return; -#endif -} - -template <> -inline Random_XorShift1024_Pool< - Kokkos::Experimental::ROCm>::Random_XorShift1024_Pool(uint64_t seed) { - num_states_ = 0; - init(seed, 4 * 32768); -} - -template <> -KOKKOS_INLINE_FUNCTION Random_XorShift1024 -Random_XorShift1024_Pool::get_state() const { -#ifdef __HCC_ACCELERATOR__ - const int i_offset = - (threadIdx_x * blockDim_y + threadIdx_y) * blockDim_z + threadIdx_z; - int i = (((blockIdx_x * gridDim_y + blockIdx_y) * gridDim_z + blockIdx_z) * - blockDim_x * blockDim_y * blockDim_z + - i_offset) % - num_states_; - while (Kokkos::atomic_compare_exchange(&locks_(i), 0, 1)) { - i += blockDim_x * blockDim_y * blockDim_z; - if (i >= num_states_) { - i = i_offset; - } - } - - return Random_XorShift1024(state_, p_(i), i); -#else - return Random_XorShift1024(state_, p_(0), 0); -#endif -} - -template <> -KOKKOS_INLINE_FUNCTION void -Random_XorShift1024_Pool::free_state( - const Random_XorShift1024& state) const { -#ifdef __HCC_ACCELERATOR__ - for (int i = 0; i < 16; i++) state_(state.state_idx_, i) = state.state_[i]; - locks_(state.state_idx_) = 0; - return; -#endif -} - -#endif - namespace Impl { template 0) - parallel_for((LDA + 127) / 128, + parallel_for("Kokkos::fill_random", (LDA + 127) / 128, Impl::fill_random_functor_range( a, g, range)); @@ -2055,7 +1730,7 @@ void fill_random(ViewType a, RandomPool g, typename ViewType::const_value_type end) { int64_t LDA = a.extent(0); if (LDA > 0) - parallel_for((LDA + 127) / 128, + parallel_for("Kokkos::fill_random", (LDA + 127) / 128, Impl::fill_random_functor_begin_end( a, g, begin, end)); diff --git a/lib/kokkos/algorithms/src/Kokkos_Sort.hpp b/lib/kokkos/algorithms/src/Kokkos_Sort.hpp index b7a988361f52f382263beb2725758468138fec4f..1c79a505bb916a5190a37961620349b10a1babe5 100644 --- a/lib/kokkos/algorithms/src/Kokkos_Sort.hpp +++ b/lib/kokkos/algorithms/src/Kokkos_Sort.hpp @@ -201,7 +201,7 @@ class BinSort { bool sort_within_bins; public: - BinSort() {} + BinSort() = default; //---------------------------------------- // Constructor: takes the keys, the binning_operator and optionally whether to @@ -327,7 +327,7 @@ class BinSort { Kokkos::RangePolicy(0, len), functor); } - Kokkos::fence(); + execution_space().fence(); } template @@ -349,14 +349,14 @@ class BinSort { public: KOKKOS_INLINE_FUNCTION - void operator()(const bin_count_tag& tag, const int& i) const { + void operator()(const bin_count_tag& /*tag*/, const int i) const { const int j = range_begin + i; bin_count_atomic(bin_op.bin(keys, j))++; } KOKKOS_INLINE_FUNCTION - void operator()(const bin_offset_tag& tag, const int& i, value_type& offset, - const bool& final) const { + void operator()(const bin_offset_tag& /*tag*/, const int i, + value_type& offset, const bool& final) const { if (final) { bin_offsets(i) = offset; } @@ -364,7 +364,7 @@ class BinSort { } KOKKOS_INLINE_FUNCTION - void operator()(const bin_binning_tag& tag, const int& i) const { + void operator()(const bin_binning_tag& /*tag*/, const int i) const { const int j = range_begin + i; const int bin = bin_op.bin(keys, j); const int count = bin_count_atomic(bin)++; @@ -373,7 +373,7 @@ class BinSort { } KOKKOS_INLINE_FUNCTION - void operator()(const bin_sort_bins_tag& tag, const int& i) const { + void operator()(const bin_sort_bins_tag& /*tag*/, const int i) const { auto bin_size = bin_count_const(i); if (bin_size <= 1) return; int upper_bound = bin_offsets(i) + bin_size; @@ -381,7 +381,7 @@ class BinSort { while (!sorted) { sorted = true; int old_idx = sort_order(bin_offsets(i)); - int new_idx; + int new_idx = 0; for (int k = bin_offsets(i) + 1; k < upper_bound; k++) { new_idx = sort_order(k); @@ -446,7 +446,7 @@ struct BinOp3D { typename KeyViewType::non_const_value_type range_[3]; typename KeyViewType::non_const_value_type min_[3]; - BinOp3D() {} + BinOp3D() = default; BinOp3D(int max_bins__[], typename KeyViewType::const_value_type min[], typename KeyViewType::const_value_type max[]) { diff --git a/lib/kokkos/algorithms/unit_tests/CMakeLists.txt b/lib/kokkos/algorithms/unit_tests/CMakeLists.txt index 6fb08ce2edb8b8632969b00bd69fdb495ce73cf2..e3563a8b98bca7cf853df4e1deeae8ab9a34ee6b 100644 --- a/lib/kokkos/algorithms/unit_tests/CMakeLists.txt +++ b/lib/kokkos/algorithms/unit_tests/CMakeLists.txt @@ -20,16 +20,38 @@ KOKKOS_ADD_TEST_LIBRARY( HEADERS ${GTEST_SOURCE_DIR}/gtest/gtest.h SOURCES ${GTEST_SOURCE_DIR}/gtest/gtest-all.cc ) -KOKKOS_TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") +# WORKAROUND FOR HIPCC +IF(Kokkos_ENABLE_HIP) + TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0 --amdgpu-target=gfx906") +ELSE() + TARGET_COMPILE_DEFINITIONS(kokkosalgorithms_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") +ENDIF() + +TARGET_COMPILE_FEATURES(kokkosalgorithms_gtest PUBLIC cxx_std_11) SET(SOURCES - UnitTestMain.cpp - TestCuda.cpp - ) + UnitTestMain.cpp +) IF(Kokkos_ENABLE_OPENMP) LIST( APPEND SOURCES TestOpenMP.cpp + TestOpenMP_Sort1D.cpp + TestOpenMP_Sort3D.cpp + TestOpenMP_SortDynamicView.cpp + TestOpenMP_Random.cpp + ) +ENDIF() + +IF(Kokkos_ENABLE_HIP) + LIST( APPEND SOURCES + TestHIP.cpp + ) +ENDIF() + +IF(Kokkos_ENABLE_CUDA) + LIST( APPEND SOURCES + TestCuda.cpp ) ENDIF() diff --git a/lib/kokkos/algorithms/unit_tests/Makefile b/lib/kokkos/algorithms/unit_tests/Makefile index 3c862d03dc9a40aa5e8fb7de630ae36aa5ed7116..4a192b08ec88362b31dccec25c7d79de01ea3abd 100644 --- a/lib/kokkos/algorithms/unit_tests/Makefile +++ b/lib/kokkos/algorithms/unit_tests/Makefile @@ -44,7 +44,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) - OBJ_OPENMP = TestOpenMP.o UnitTestMain.o gtest-all.o + OBJ_OPENMP = TestOpenMP.o TestOpenMP_Random.o TestOpenMP_Sort1D.o TestOpenMP_Sort3D.o TestOpenMP_SortDynamicView.o UnitTestMain.o gtest-all.o TARGETS += KokkosAlgorithms_UnitTest_OpenMP TEST_TARGETS += test-openmp endif diff --git a/lib/kokkos/algorithms/unit_tests/TestCuda.cpp b/lib/kokkos/algorithms/unit_tests/TestCuda.cpp index ab727b0326dd2d456845c39d5e8b5173a667d6bc..86cee61f64f31800515e25a6052e8ac599ee423e 100644 --- a/lib/kokkos/algorithms/unit_tests/TestCuda.cpp +++ b/lib/kokkos/algorithms/unit_tests/TestCuda.cpp @@ -59,11 +59,15 @@ namespace Test { void cuda_test_random_xorshift64(int num_draws) { - Impl::test_random >(num_draws); + Impl::test_random>(num_draws); + Impl::test_random>>(num_draws); } void cuda_test_random_xorshift1024(int num_draws) { - Impl::test_random >(num_draws); + Impl::test_random>(num_draws); + Impl::test_random>>(num_draws); } #define CUDA_RANDOM_XORSHIFT64(num_draws) \ diff --git a/lib/kokkos/algorithms/unit_tests/TestHIP.cpp b/lib/kokkos/algorithms/unit_tests/TestHIP.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5e5ccb6a2eb8e988986eaa4ce06e34cf028bf6ed --- /dev/null +++ b/lib/kokkos/algorithms/unit_tests/TestHIP.cpp @@ -0,0 +1,83 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#ifdef KOKKOS_ENABLE_HIP + +#include +#include +#include + +#include + +#include + +#include +#include + +namespace Test { + +void hip_test_random_xorshift64(size_t num_draws) { + Impl::test_random>( + num_draws); + Impl::test_random>>(num_draws); +} + +void hip_test_random_xorshift1024(size_t num_draws) { + Impl::test_random< + Kokkos::Random_XorShift1024_Pool>(num_draws); + Impl::test_random>>(num_draws); +} + +TEST(hip, Random_XorShift64) { hip_test_random_xorshift64(132141141); } +TEST(hip, Random_XorShift1024_0) { hip_test_random_xorshift1024(52428813); } +TEST(hip, SortUnsigned) { + Impl::test_sort(171); +} +} // namespace Test +#else +void KOKKOS_ALGORITHMS_UNITTESTS_TESTHIP_PREVENT_LINK_ERROR() {} +#endif /* #ifdef KOKKOS_ENABLE_HIP */ diff --git a/lib/kokkos/algorithms/unit_tests/TestOpenMP.cpp b/lib/kokkos/algorithms/unit_tests/TestOpenMP.cpp index 3a9e306014b27a2c80b1c133b2f61873c2337325..5ded3ce39065dc5fb7510973de40577703429f8d 100644 --- a/lib/kokkos/algorithms/unit_tests/TestOpenMP.cpp +++ b/lib/kokkos/algorithms/unit_tests/TestOpenMP.cpp @@ -55,30 +55,8 @@ namespace Test { -#define OPENMP_RANDOM_XORSHIFT64(num_draws) \ - TEST(openmp, Random_XorShift64) { \ - Impl::test_random >( \ - num_draws); \ - } +TEST(openmp, SortIssue1160) { Impl::test_issue_1160_sort(); } -#define OPENMP_RANDOM_XORSHIFT1024(num_draws) \ - TEST(openmp, Random_XorShift1024) { \ - Impl::test_random >( \ - num_draws); \ - } - -#define OPENMP_SORT_UNSIGNED(size) \ - TEST(openmp, SortUnsigned) { \ - Impl::test_sort(size); \ - } - -OPENMP_RANDOM_XORSHIFT64(10240000) -OPENMP_RANDOM_XORSHIFT1024(10130144) -OPENMP_SORT_UNSIGNED(171) - -#undef OPENMP_RANDOM_XORSHIFT64 -#undef OPENMP_RANDOM_XORSHIFT1024 -#undef OPENMP_SORT_UNSIGNED } // namespace Test #else void KOKKOS_ALGORITHMS_UNITTESTS_TESTOPENMP_PREVENT_LINK_ERROR() {} diff --git a/lib/kokkos/algorithms/unit_tests/TestOpenMP_Random.cpp b/lib/kokkos/algorithms/unit_tests/TestOpenMP_Random.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1ca8e0a828f06176c0959c744fe20045856534b2 --- /dev/null +++ b/lib/kokkos/algorithms/unit_tests/TestOpenMP_Random.cpp @@ -0,0 +1,77 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#ifdef KOKKOS_ENABLE_OPENMP + +#include +#include + +//---------------------------------------------------------------------------- +#include +#include + +namespace Test { + +#define OPENMP_RANDOM_XORSHIFT64(num_draws) \ + TEST(openmp, Random_XorShift64) { \ + Impl::test_random >( \ + num_draws); \ + } + +#define OPENMP_RANDOM_XORSHIFT1024(num_draws) \ + TEST(openmp, Random_XorShift1024) { \ + Impl::test_random >( \ + num_draws); \ + } + +OPENMP_RANDOM_XORSHIFT64(10240000) +OPENMP_RANDOM_XORSHIFT1024(10130144) + +#undef OPENMP_RANDOM_XORSHIFT64 +#undef OPENMP_RANDOM_XORSHIFT1024 +} // namespace Test +#else +void KOKKOS_ALGORITHMS_UNITTESTS_TESTOPENMP_PREVENT_LINK_ERROR() {} +#endif diff --git a/lib/kokkos/algorithms/unit_tests/TestOpenMP_Sort1D.cpp b/lib/kokkos/algorithms/unit_tests/TestOpenMP_Sort1D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a9b2010ad025bd0c967071aca37407bea4a351bf --- /dev/null +++ b/lib/kokkos/algorithms/unit_tests/TestOpenMP_Sort1D.cpp @@ -0,0 +1,65 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#ifdef KOKKOS_ENABLE_OPENMP + +#include +#include + +//---------------------------------------------------------------------------- +#include +#include +#include + +namespace Test { + +TEST(openmp, SortUnsigned1D) { + Impl::test_1D_sort(171); +} + +} // namespace Test +#else +void KOKKOS_ALGORITHMS_UNITTESTS_TESTOPENMP_PREVENT_LINK_ERROR() {} +#endif diff --git a/lib/kokkos/algorithms/unit_tests/TestOpenMP_Sort3D.cpp b/lib/kokkos/algorithms/unit_tests/TestOpenMP_Sort3D.cpp new file mode 100644 index 0000000000000000000000000000000000000000..127d911d7ca3856957646698b431089b5deb2caa --- /dev/null +++ b/lib/kokkos/algorithms/unit_tests/TestOpenMP_Sort3D.cpp @@ -0,0 +1,65 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#ifdef KOKKOS_ENABLE_OPENMP + +#include +#include + +//---------------------------------------------------------------------------- +#include +#include +#include + +namespace Test { + +TEST(openmp, SortUnsigned3D) { + Impl::test_3D_sort(171); +} + +} // namespace Test +#else +void KOKKOS_ALGORITHMS_UNITTESTS_TESTOPENMP_PREVENT_LINK_ERROR() {} +#endif diff --git a/lib/kokkos/algorithms/unit_tests/TestOpenMP_SortDynamicView.cpp b/lib/kokkos/algorithms/unit_tests/TestOpenMP_SortDynamicView.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3dc88540443f7af219b18b85425408afbc1fda6e --- /dev/null +++ b/lib/kokkos/algorithms/unit_tests/TestOpenMP_SortDynamicView.cpp @@ -0,0 +1,65 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#ifdef KOKKOS_ENABLE_OPENMP + +#include +#include + +//---------------------------------------------------------------------------- +#include +#include +#include + +namespace Test { + +TEST(openmp, SortUnsignedDynamicView) { + Impl::test_dynamic_view_sort(171); +} + +} // namespace Test +#else +void KOKKOS_ALGORITHMS_UNITTESTS_TESTOPENMP_PREVENT_LINK_ERROR() {} +#endif diff --git a/lib/kokkos/algorithms/unit_tests/TestRandom.hpp b/lib/kokkos/algorithms/unit_tests/TestRandom.hpp index bc55ebfad355bff785ad92d115ac45cff698482f..10a496242b692ba9987ca8b1bf62812cd189235f 100644 --- a/lib/kokkos/algorithms/unit_tests/TestRandom.hpp +++ b/lib/kokkos/algorithms/unit_tests/TestRandom.hpp @@ -140,7 +140,7 @@ struct test_random_functor { density_3d(d3d) {} KOKKOS_INLINE_FUNCTION - void operator()(int i, RandomProperties& prop) const { + void operator()(int /*i*/, RandomProperties& prop) const { using Kokkos::atomic_fetch_add; rnd_type rand_gen = rand_pool.get_state(); diff --git a/lib/kokkos/algorithms/unit_tests/TestSort.hpp b/lib/kokkos/algorithms/unit_tests/TestSort.hpp index 310a93c93d1d55baad4d33d9d34540ca523c9433..b6ff91c25fa9b6c28bea35f6ac5f5df2800a4121 100644 --- a/lib/kokkos/algorithms/unit_tests/TestSort.hpp +++ b/lib/kokkos/algorithms/unit_tests/TestSort.hpp @@ -130,7 +130,7 @@ struct sum3D { }; template -void test_1D_sort(unsigned int n, bool force_kokkos) { +void test_1D_sort_impl(unsigned int n, bool force_kokkos) { typedef Kokkos::View KeyViewType; KeyViewType keys("Keys", n); @@ -165,7 +165,7 @@ void test_1D_sort(unsigned int n, bool force_kokkos) { } template -void test_3D_sort(unsigned int n) { +void test_3D_sort_impl(unsigned int n) { typedef Kokkos::View KeyViewType; KeyViewType keys("Keys", n * n * n); @@ -214,7 +214,7 @@ void test_3D_sort(unsigned int n) { //---------------------------------------------------------------------------- template -void test_dynamic_view_sort(unsigned int n) { +void test_dynamic_view_sort_impl(unsigned int n) { typedef Kokkos::Experimental::DynamicView KeyDynamicViewType; typedef Kokkos::View KeyViewType; @@ -278,7 +278,7 @@ void test_dynamic_view_sort(unsigned int n) { //---------------------------------------------------------------------------- template -void test_issue_1160() { +void test_issue_1160_impl() { Kokkos::View element_("element", 10); Kokkos::View x_("x", 10); Kokkos::View v_("y", 10); @@ -345,17 +345,34 @@ void test_issue_1160() { //---------------------------------------------------------------------------- +template +void test_1D_sort(unsigned int N) { + test_1D_sort_impl(N * N * N, true); + test_1D_sort_impl(N * N * N, false); +} + +template +void test_3D_sort(unsigned int N) { + test_3D_sort_impl(N); +} + +template +void test_dynamic_view_sort(unsigned int N) { + test_dynamic_view_sort_impl(N * N); +} + +template +void test_issue_1160_sort() { + test_issue_1160_impl(); +} + template void test_sort(unsigned int N) { - test_1D_sort(N * N * N, true); - test_1D_sort(N * N * N, false); -#if !defined(KOKKOS_ENABLE_ROCM) + test_1D_sort(N); test_3D_sort(N); - test_dynamic_view_sort(N * N); -#endif - test_issue_1160(); + test_dynamic_view_sort(N); + test_issue_1160_sort(); } - } // namespace Impl } // namespace Test #endif /* KOKKOS_ALGORITHMS_UNITTESTS_TESTSORT_HPP */ diff --git a/lib/kokkos/appveyor.yml b/lib/kokkos/appveyor.yml new file mode 100644 index 0000000000000000000000000000000000000000..8f139ba6ab1b20749dac0275aa8cf64618087380 --- /dev/null +++ b/lib/kokkos/appveyor.yml @@ -0,0 +1,10 @@ +image: + - Visual Studio 2019 +clone_folder: c:\projects\source +build_script: +- cmd: >- + mkdir build && + cd build && + cmake c:\projects\source -DKokkos_ENABLE_TESTS=ON -DKokkos_ENABLE_LIBDL=OFF -DKokkos_ENABLE_PROFILING=OFF && + cmake --build . --target install && + ctest -C Debug -V diff --git a/lib/kokkos/benchmarks/gups/gups-kokkos.cc b/lib/kokkos/benchmarks/gups/gups-kokkos.cc index 9ac59be4a6b348d28d19757f8f0acb7c59686fe2..36fc36925b90e6e1c9fee0abab7fc3d8342ba2d9 100644 --- a/lib/kokkos/benchmarks/gups/gups-kokkos.cc +++ b/lib/kokkos/benchmarks/gups/gups-kokkos.cc @@ -61,7 +61,7 @@ typedef int GUPSIndex; double now() { struct timeval now; - gettimeofday(&now, NULL); + gettimeofday(&now, nullptr); return (double) now.tv_sec + ((double) now.tv_usec * 1.0e-6); } diff --git a/lib/kokkos/benchmarks/stream/stream-kokkos.cc b/lib/kokkos/benchmarks/stream/stream-kokkos.cc index 6ce789dd82049a81bf9ed2ff5ba2318093c948af..8d604079d485c40183234ef6fa159ce8e2ec5102 100644 --- a/lib/kokkos/benchmarks/stream/stream-kokkos.cc +++ b/lib/kokkos/benchmarks/stream/stream-kokkos.cc @@ -64,7 +64,7 @@ typedef int StreamIndex; double now() { struct timeval now; - gettimeofday(&now, NULL); + gettimeofday(&now, nullptr); return (double) now.tv_sec + ((double) now.tv_usec * 1.0e-6); } diff --git a/lib/kokkos/cm_generate_makefile.bash b/lib/kokkos/cm_generate_makefile.bash deleted file mode 100755 index fd7cfe2d325bb817aeeaa0027fcb99d0169de95c..0000000000000000000000000000000000000000 --- a/lib/kokkos/cm_generate_makefile.bash +++ /dev/null @@ -1,339 +0,0 @@ -#!/bin/bash - -update_kokkos_devices() { - SEARCH_TEXT="*$1*" - if [[ $KOKKOS_DEVICES == $SEARCH_TEXT ]]; then - echo kokkos devices already includes $SEARCH_TEXT - else - if [ "$KOKKOS_DEVICES" = "" ]; then - KOKKOS_DEVICES="$1" - echo reseting kokkos devices to $KOKKOS_DEVICES - else - KOKKOS_DEVICES="${KOKKOS_DEVICES},$1" - echo appending to kokkos devices $KOKKOS_DEVICES - fi - fi -} - -get_kokkos_device_list() { - KOKKOS_DEVICE_CMD= - PARSE_DEVICES_LST=$(echo $KOKKOS_DEVICES | tr "," "\n") - for DEVICE_ in $PARSE_DEVICES_LST - do - UC_DEVICE=$(echo $DEVICE_ | tr "[:lower:]" "[:upper:]") - KOKKOS_DEVICE_CMD="-DKokkos_ENABLE_${UC_DEVICE}=ON ${KOKKOS_DEVICE_CMD}" - done -} - -get_kokkos_arch_list() { - KOKKOS_ARCH_CMD= - PARSE_ARCH_LST=$(echo $KOKKOS_ARCH | tr "," "\n") - for ARCH_ in $PARSE_ARCH_LST - do - UC_ARCH=$(echo $ARCH_ | tr "[:lower:]" "[:upper:]") - KOKKOS_ARCH_CMD="-DKokkos_ARCH_${UC_ARCH}=ON ${KOKKOS_ARCH_CMD}" - done -} - -get_kokkos_cuda_option_list() { - echo parsing KOKKOS_CUDA_OPTIONS=$KOKKOS_CUDA_OPTIONS - KOKKOS_CUDA_OPTION_CMD= - PARSE_CUDA_LST=$(echo $KOKKOS_CUDA_OPTIONS | tr "," "\n") - for CUDA_ in $PARSE_CUDA_LST - do - CUDA_OPT_NAME= - if [ "${CUDA_}" == "enable_lambda" ]; then - CUDA_OPT_NAME=CUDA_LAMBDA - elif [ "${CUDA_}" == "rdc" ]; then - CUDA_OPT_NAME=CUDA_RELOCATABLE_DEVICE_CODE - elif [ "${CUDA_}" == "force_uvm" ]; then - CUDA_OPT_NAME=CUDA_UVM - elif [ "${CUDA_}" == "use_ldg" ]; then - CUDA_OPT_NAME=CUDA_LDG_INTRINSIC - else - echo "${CUDA_} is not a valid cuda options..." - fi - if [ "${CUDA_OPT_NAME}" != "" ]; then - KOKKOS_CUDA_OPTION_CMD="-DKokkos_ENABLE_${CUDA_OPT_NAME}=ON ${KOKKOS_CUDA_OPTION_CMD}" - fi - done -} - -get_kokkos_option_list() { - echo parsing KOKKOS_OPTIONS=$KOKKOS_OPTIONS - KOKKOS_OPTION_CMD= - PARSE_OPTIONS_LST=$(echo $KOKKOS_OPTIONS | tr "," "\n") - for OPT_ in $PARSE_OPTIONS_LST - do - UC_OPT_=$(echo $OPT_ | tr "[:lower:]" "[:upper:]") - if [[ "$UC_OPT_" == *DISABLE* ]]; then - FLIP_OPT_=${UC_OPT_/DISABLE/ENABLE} - KOKKOS_OPTION_CMD="-DKokkos_${FLIP_OPT_}=OFF ${KOKKOS_OPTION_CMD}" - elif [[ "$UC_OPT_" == *ENABLE* ]]; then - KOKKOS_OPTION_CMD="-DKokkos_${UC_OPT_}=ON ${KOKKOS_OPTION_CMD}" - else - KOKKOS_OPTION_CMD="-DKokkos_ENABLE_${UC_OPT_}=ON ${KOKKOS_OPTION_CMD}" - fi - done -} - -display_help_text() { - - echo "Kokkos configure options:" - echo "" - echo "--kokkos-path=/Path/To/Kokkos: Path to the Kokkos root directory." - echo "--prefix=/Install/Path: Path to install the Kokkos library." - echo "" - echo "--with-cuda[=/Path/To/Cuda]: Enable Cuda and set path to Cuda Toolkit." - echo "--with-openmp: Enable OpenMP backend." - echo "--with-pthread: Enable Pthreads backend." - echo "--with-serial: Enable Serial backend." - echo "--with-devices: Explicitly add a set of backends." - echo "" - echo "--arch=[OPT]: Set target architectures. Options are:" - echo " [AMD]" - echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" - echo " [ARM]" - echo " ARMv80 = ARMv8.0 Compatible CPU" - echo " ARMv81 = ARMv8.1 Compatible CPU" - echo " ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU" - echo " ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU" - echo " [IBM]" - echo " BGQ = IBM Blue Gene Q" - echo " Power7 = IBM POWER7 and POWER7+ CPUs" - echo " Power8 = IBM POWER8 CPUs" - echo " Power9 = IBM POWER9 CPUs" - echo " [Intel]" - echo " WSM = Intel Westmere CPUs" - echo " SNB = Intel Sandy/Ivy Bridge CPUs" - echo " HSW = Intel Haswell CPUs" - echo " BDW = Intel Broadwell Xeon E-class CPUs" - echo " SKX = Intel Sky Lake Xeon E-class HPC CPUs (AVX512)" - echo " [Intel Xeon Phi]" - echo " KNC = Intel Knights Corner Xeon Phi" - echo " KNL = Intel Knights Landing Xeon Phi" - echo " [NVIDIA]" - echo " Kepler30 = NVIDIA Kepler generation CC 3.0" - echo " Kepler32 = NVIDIA Kepler generation CC 3.2" - echo " Kepler35 = NVIDIA Kepler generation CC 3.5" - echo " Kepler37 = NVIDIA Kepler generation CC 3.7" - echo " Maxwell50 = NVIDIA Maxwell generation CC 5.0" - echo " Maxwell52 = NVIDIA Maxwell generation CC 5.2" - echo " Maxwell53 = NVIDIA Maxwell generation CC 5.3" - echo " Pascal60 = NVIDIA Pascal generation CC 6.0" - echo " Pascal61 = NVIDIA Pascal generation CC 6.1" - echo " Volta70 = NVIDIA Volta generation CC 7.0" - echo " Volta72 = NVIDIA Volta generation CC 7.2" - echo "" - echo "--compiler=/Path/To/Compiler Set the compiler." - echo "--debug,-dbg: Enable Debugging." - echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" - echo " build. This will still set certain required" - echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," - echo " --std=c++11, etc.)." - echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" - echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" - echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" - echo " build. This will still set certain required" - echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," - echo " -lpthread, etc.)." - echo "--with-gtest=/Path/To/Gtest: Set path to gtest. (Used in unit and performance" - echo " tests.)" - echo "--with-hwloc=/Path/To/Hwloc: Set path to hwloc library." - echo "--with-memkind=/Path/To/MemKind: Set path to memkind library." - echo "--with-options=[OPT]: Additional options to Kokkos:" - echo " compiler_warnings" - echo " aggressive_vectorization = add ivdep on loops" - echo " disable_profiling = do not compile with profiling hooks" - echo " " - echo "--with-cuda-options=[OPT]: Additional options to CUDA:" - echo " force_uvm, use_ldg, enable_lambda, rdc" - echo "--with-hpx-options=[OPT]: Additional options to HPX:" - echo " enable_async_dispatch" - echo "--gcc-toolchain=/Path/To/GccRoot: Set the gcc toolchain to use with clang (e.g. /usr)" - echo "--make-j=[NUM]: DEPRECATED: call make with appropriate" - echo " -j flag" - -} - -while [[ $# > 0 ]] -do - key="$1" - - case $key in - --kokkos-path*) - KOKKOS_PATH="${key#*=}" - ;; - --hpx-path*) - HPX_PATH="${key#*=}" - ;; - --prefix*) - PREFIX="${key#*=}" - ;; - --with-cuda) - update_kokkos_devices Cuda - CUDA_PATH_NVCC=$(command -v nvcc) - CUDA_PATH=${CUDA_PATH_NVCC%/bin/nvcc} - ;; - # Catch this before '--with-cuda*' - --with-cuda-options*) - KOKKOS_CUDA_OPTIONS="${key#*=}" - ;; - --with-cuda*) - update_kokkos_devices Cuda - CUDA_PATH="${key#*=}" - ;; - --with-openmp) - update_kokkos_devices OpenMP - ;; - --with-pthread) - update_kokkos_devices Pthread - ;; - --with-serial) - update_kokkos_devices Serial - ;; - --with-hpx-options*) - KOKKOS_HPX_OPT="${key#*=}" - ;; - --with-hpx*) - update_kokkos_devices HPX - if [ -z "$HPX_PATH" ]; then - HPX_PATH="${key#*=}" - fi - ;; - --with-devices*) - DEVICES="${key#*=}" - PARSE_DEVICES=$(echo $DEVICES | tr "," "\n") - for DEVICE_ in $PARSE_DEVICES - do - update_kokkos_devices $DEVICE_ - done - ;; - --with-gtest*) - GTEST_PATH="${key#*=}" - ;; - --with-hwloc*) - HWLOC_PATH="${key#*=}" - ;; - --with-memkind*) - MEMKIND_PATH="${key#*=}" - ;; - --arch*) - KOKKOS_ARCH="${key#*=}" - ;; - --cxxflags*) - KOKKOS_CXXFLAGS="${key#*=}" - KOKKOS_CXXFLAGS=${KOKKOS_CXXFLAGS//,/ } - ;; - --cxxstandard*) - KOKKOS_CXX_STANDARD="${key#*=}" - ;; - --ldflags*) - KOKKOS_LDFLAGS="${key#*=}" - ;; - --debug|-dbg) - KOKKOS_DEBUG=yes - ;; - --make-j*) - echo "Warning: ${key} is deprecated" - echo "Call make with appropriate -j flag" - ;; - --compiler*) - COMPILER="${key#*=}" - CNUM=$(command -v ${COMPILER} 2>&1 >/dev/null | grep "no ${COMPILER}" | wc -l) - if [ ${CNUM} -gt 0 ]; then - echo "Invalid compiler by --compiler command: '${COMPILER}'" - exit - fi - if [[ ! -n ${COMPILER} ]]; then - echo "Empty compiler specified by --compiler command." - exit - fi - CNUM=$(command -v ${COMPILER} | grep ${COMPILER} | wc -l) - if [ ${CNUM} -eq 0 ]; then - echo "Invalid compiler by --compiler command: '${COMPILER}'" - exit - fi - # ... valid compiler, ensure absolute path set - WCOMPATH=$(command -v $COMPILER) - COMPDIR=$(dirname $WCOMPATH) - COMPNAME=$(basename $WCOMPATH) - COMPILER=${COMPDIR}/${COMPNAME} - ;; - --with-options*) - KOKKOS_OPTIONS="${key#*=}" - ;; - --gcc-toolchain*) - KOKKOS_GCC_TOOLCHAIN="${key#*=}" - ;; - --help) - display_help_text - exit 0 - ;; - *) - echo "warning: ignoring unknown option $key" - ;; - esac - - shift -done - - -if [ "$COMPILER" == "" ]; then - COMPILER_CMD= -else - COMPILER_CMD=-DCMAKE_CXX_COMPILER=$COMPILER -fi - -if [ "$KOKKOS_DEBUG" == "" ]; then - KOKKOS_DEBUG_CMD=-DCMAKE_BUILD_TYPE=RELEASE -else - KOKKOS_DEBUG_CMD=-DCMAKE_BUILD_TYPE=DEBUG -fi - -if [ ! -e ${KOKKOS_PATH}/CMakeLists.txt ]; then - if [ "${KOKKOS_PATH}" == "" ]; then - CM_SCRIPT=$0 - KOKKOS_PATH=`dirname $CM_SCRIPT` - if [ ! -e ${KOKKOS_PATH}/CMakeLists.txt ]; then - echo "${KOKKOS_PATH} repository appears to not be complete. please verify and try again" - exit 0 - fi - else - echo "KOKKOS_PATH does not appear to be set properly. please specify in location of CMakeLists.txt" - display_help_text - exit 0 - fi -fi - -get_kokkos_device_list -get_kokkos_option_list -get_kokkos_arch_list -get_kokkos_cuda_option_list - -## if HPX is enabled, we need to enforce cxx standard = 14 -if [[ ${KOKKOS_DEVICE_CMD} == *Kokkos_ENABLE_HPX* ]]; then - if [ "${KOKKOS_CXX_STANDARD}" == "" ] || [ ${#KOKKOS_CXX_STANDARD} -lt 14 ]; then - echo CXX Standard must be 14 or higher for HPX to work. - KOKKOS_CXX_STANDARD=14 - fi -fi - -if [ "$KOKKOS_CXX_STANDARD" == "" ]; then - STANDARD_CMD= -else - STANDARD_CMD=-DKokkos_CXX_STANDARD=${KOKKOS_CXX_STANDARD} -fi - -if [[ ${COMPILER} == *clang* ]]; then - gcc_path=$(which g++ | awk --field-separator='/bin/g++' '{printf $1}' ) - KOKKOS_CXXFLAGS="${KOKKOS_CXXFLAGS} --gcc-toolchain=${gcc_path}" - - if [ ! "${CUDA_PATH}" == "" ]; then - KOKKOS_CXXFLAGS="${KOKKOS_CXXFLAGS} --cuda-path=${CUDA_PATH}" - fi -fi - -echo cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=ON ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_PATH} -cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS//\"}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS//\"}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=ON ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_PATH} diff --git a/lib/kokkos/cmake/Dependencies.cmake b/lib/kokkos/cmake/Dependencies.cmake index 8c51eab4d78b68f9c01e64f63352a22cf8f2086d..c0be9f56411311a38a0f43a9b07b1109a0135bd8 100644 --- a/lib/kokkos/cmake/Dependencies.cmake +++ b/lib/kokkos/cmake/Dependencies.cmake @@ -6,5 +6,4 @@ TRIBITS_PACKAGE_DEFINE_DEPENDENCIES( Core core PS REQUIRED Containers containers PS OPTIONAL Algorithms algorithms PS OPTIONAL - Example example EX OPTIONAL ) diff --git a/lib/kokkos/cmake/KokkosConfigCommon.cmake.in b/lib/kokkos/cmake/KokkosConfigCommon.cmake.in index da9c61976c596e7318bd7a055ced6c6b527d2f60..8c663d01c1e74ad65b32532360ad43d34c172a9f 100644 --- a/lib/kokkos/cmake/KokkosConfigCommon.cmake.in +++ b/lib/kokkos/cmake/KokkosConfigCommon.cmake.in @@ -73,6 +73,9 @@ function(kokkos_check) # use it to check that there are variables defined for all required # arguments. Success or failure messages will be displayed but we are # responsible for signaling failure and skip the build system generation. + if (KOKKOS_CHECK_RETURN_VALUE) + set(Kokkos_${arg}_FIND_QUIETLY ON) + endif() find_package_handle_standard_args("Kokkos_${arg}" DEFAULT_MSG ${KOKKOS_CHECK_${arg}}) if(NOT Kokkos_${arg}_FOUND) diff --git a/lib/kokkos/cmake/KokkosCore_config.h.in b/lib/kokkos/cmake/KokkosCore_config.h.in index 084afba8a803b16031fdd6b1fb9e96c419d90fff..1d0b58fe02d9183849f007460599921fbe134a8b 100644 --- a/lib/kokkos/cmake/KokkosCore_config.h.in +++ b/lib/kokkos/cmake/KokkosCore_config.h.in @@ -5,11 +5,19 @@ #define KOKKOS_CORE_CONFIG_H #endif +// KOKKOS_VERSION % 100 is the patch level +// KOKKOS_VERSION / 100 % 100 is the minor version +// KOKKOS_VERSION / 10000 is the major version +#cmakedefine KOKKOS_VERSION @KOKKOS_VERSION@ + + /* Execution Spaces */ #cmakedefine KOKKOS_ENABLE_SERIAL #cmakedefine KOKKOS_ENABLE_OPENMP +#cmakedefine KOKKOS_ENABLE_OPENMPTARGET #cmakedefine KOKKOS_ENABLE_THREADS #cmakedefine KOKKOS_ENABLE_CUDA +#cmakedefine KOKKOS_ENABLE_HIP #cmakedefine KOKKOS_ENABLE_HPX #cmakedefine KOKKOS_ENABLE_MEMKIND #cmakedefine KOKKOS_ENABLE_LIBRT @@ -33,6 +41,7 @@ #cmakedefine KOKKOS_ENABLE_CUDA_LAMBDA #cmakedefine KOKKOS_ENABLE_CUDA_CONSTEXPR #cmakedefine KOKKOS_ENABLE_CUDA_LDG_INTRINSIC +#cmakedefine KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE #cmakedefine KOKKOS_ENABLE_HPX_ASYNC_DISPATCH #cmakedefine KOKKOS_ENABLE_DEBUG #cmakedefine KOKKOS_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK diff --git a/lib/kokkos/cmake/KokkosTrilinosConfig.cmake.in b/lib/kokkos/cmake/KokkosTrilinosConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..626ef5a8ebefcaf7adcdeaa3b285f44892527dbc --- /dev/null +++ b/lib/kokkos/cmake/KokkosTrilinosConfig.cmake.in @@ -0,0 +1,17 @@ +IF (NOT TARGET Kokkos::kokkos) + # Compute the installation prefix relative to this file. + get_filename_component(KOKKOS_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) + get_filename_component(KOKKOS_IMPORT_PREFIX "${KOKKOS_IMPORT_PREFIX}" PATH) + get_filename_component(KOKKOS_IMPORT_PREFIX "${KOKKOS_IMPORT_PREFIX}" PATH) + get_filename_component(KOKKOS_IMPORT_PREFIX "${KOKKOS_IMPORT_PREFIX}" PATH) + if(KOKKOS_IMPORT_PREFIX STREQUAL "/") + set(KOKKOS_IMPORT_PREFIX "") + endif() + add_library(Kokkos::kokkos INTERFACE IMPORTED) + set_target_properties(Kokkos::kokkos PROPERTIES + INTERFACE_LINK_LIBRARIES "@Kokkos_LIBRARIES@;@KOKKOS_LINK_OPTIONS@" + INTERFACE_COMPILE_FEATURES "@KOKKOS_CXX_STANDARD_FEATURE@" + INTERFACE_COMPILE_OPTIONS "@KOKKOS_ALL_COMPILE_OPTIONS@" + INTERFACE_INCLUDE_DIRECTORIES "${KOKKOS_IMPORT_PREFIX}/include" + ) +ENDIF() diff --git a/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake b/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake index 36aefcdb44fdc52c2ee62b50973ad28b02a8fbf5..1b36ab819f0d891ff20bc0d3e2c95f92e23250f2 100644 --- a/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake +++ b/lib/kokkos/cmake/Modules/FindTPLCUDA.cmake @@ -1,8 +1,12 @@ IF (KOKKOS_CXX_COMPILER_ID STREQUAL Clang) + # Note: "stubs" suffix allows CMake to find the dummy + # libcuda.so provided by the NVIDIA CUDA Toolkit for + # cross-compiling CUDA on a host without a GPU. KOKKOS_FIND_IMPORTED(CUDA INTERFACE LIBRARIES cudart cuda - LIBRARY_PATHS ENV LD_LIBRARY_PATH ENV CUDA_PATH + LIBRARY_PATHS ENV LD_LIBRARY_PATH ENV CUDA_PATH /usr/local/cuda + LIBRARY_SUFFIXES lib lib64 lib/stubs lib64/stubs ALLOW_SYSTEM_PATH_FALLBACK ) ELSE() diff --git a/lib/kokkos/cmake/Modules/FindTPLPTHREAD.cmake b/lib/kokkos/cmake/Modules/FindTPLPTHREAD.cmake index b4b8c34122a67ba73fc991ed52e35176c7df2fa1..1d154e29afff16479663d9c8d495f81142e5cf82 100644 --- a/lib/kokkos/cmake/Modules/FindTPLPTHREAD.cmake +++ b/lib/kokkos/cmake/Modules/FindTPLPTHREAD.cmake @@ -3,15 +3,18 @@ TRY_COMPILE(KOKKOS_HAS_PTHREAD_ARG ${KOKKOS_TOP_BUILD_DIR}/tpl_tests ${KOKKOS_SOURCE_DIR}/cmake/compile_tests/pthread.cpp LINK_LIBRARIES -pthread - COMPILE_DEFINITIONS -pthread) + COMPILE_DEFINITIONS -pthread +) +# The test no longer requires C++11 +# if we did needed C++ standard support, then we should add option +# ${CMAKE_CXX${KOKKOS_CXX_STANDARD}_STANDARD_COMPILE_OPTION} INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(PTHREAD DEFAULT_MSG KOKKOS_HAS_PTHREAD_ARG) - -KOKKOS_CREATE_IMPORTED_TPL(PTHREAD - INTERFACE #this is not a real library with a real location - COMPILE_OPTIONS -pthread - LINK_OPTIONS -pthread) - - - +#Only create the TPL if we succeed +IF (KOKKOS_HAS_PTHREAD_ARG) + KOKKOS_CREATE_IMPORTED_TPL(PTHREAD + INTERFACE #this is not a real library with a real location + COMPILE_OPTIONS -pthread + LINK_OPTIONS -pthread) +ENDIF() diff --git a/lib/kokkos/cmake/README.md b/lib/kokkos/cmake/README.md index 0543a18e89cc9ed70472ee3381d2fc2834e14d7b..6d0cc2daf10d86e77ff93f96948991536fa8086c 100644 --- a/lib/kokkos/cmake/README.md +++ b/lib/kokkos/cmake/README.md @@ -67,7 +67,7 @@ Note that all of these use `PUBLIC`! Almost every Kokkos flag is not private to ### Compiler Features and Compiler Options -Compiler options are flags like `-fopenmp` that do not need to be "resolved." +Compiler options are flags like `-fopenmp` that do not need to be "resolved." The flag is either on or off. Compiler features are more fine-grained and require conflicting requests to be resolved. Suppose I have @@ -145,11 +145,11 @@ If Kokkos depends on, e.g. `hwloc` the downstream project will also need to link There are three stages in adding a new third-party library (TPL): * Finding: find the desired library on the system and verify the installation is correct * Importing: create a CMake target, if necessary, that is compatible with `target_link_libraries`. This is mostly relevant for TPLs not installed with CMake. -* Exporting: make the desired library visible to downstream projects +* Exporting: make the desired library visible to downstream projects TPLs are somewhat complicated by whether the library was installed with CMake or some other build system. If CMake, our lives are greatly simplified. We simply use `find_package` to locate the installed CMake project then call `target_link_libraries(kokkoscore PUBLIC/PRIVATE TPL)`. For libaries not installed with CMake, the process is a bit more complex. -It is up to the Kokkos developers to "convert" the library into a CMake target as if it had been installed as a valid modern CMake target with properties. +It is up to the Kokkos developers to "convert" the library into a CMake target as if it had been installed as a valid modern CMake target with properties. There are helper functions for simplifying the process of importing TPLs in Kokkos, but we walk through the process in detail to clearly illustrate the steps involved. #### TPL Search Order @@ -166,8 +166,9 @@ There are 3 possibilities that could be used: The following is the search order that Kokkos follows. Note: This differs from the default search order used by CMake `find_library` and `find_header`. CMake prefers default system paths over user-provided paths. For Kokkos (and package managers in general), it is better to prefer user-provided paths since this usually indicates a specific version we want. -1. `_ROOT` -1. `Kokkos__DIR` +1. `_ROOT` command line option +1. `_ROOT` environment variable +1. `Kokkos__DIR` command line option 1. Paths added by Kokkos CMake logic 1. Default system paths (if allowed) diff --git a/lib/kokkos/cmake/compile_tests/clang_omp.cpp b/lib/kokkos/cmake/compile_tests/clang_omp.cpp index ce3bbfb262377248628385f56578db9d8c5b6a33..60a5c522820cdb03cbde8a2cf3a796c57292b46b 100644 --- a/lib/kokkos/cmake/compile_tests/clang_omp.cpp +++ b/lib/kokkos/cmake/compile_tests/clang_omp.cpp @@ -1,6 +1,6 @@ #include -int main(int argc, char** argv) { +int main(int, char**) { int thr = omp_get_num_threads(); if (thr > 0) return thr; diff --git a/lib/kokkos/cmake/compile_tests/pthread.cpp b/lib/kokkos/cmake/compile_tests/pthread.cpp index 3b13f7ba357f6c05ffad30a61b01620fb33666b0..92310da0293704a121e265766dbe2979fc66513e 100644 --- a/lib/kokkos/cmake/compile_tests/pthread.cpp +++ b/lib/kokkos/cmake/compile_tests/pthread.cpp @@ -4,6 +4,10 @@ void* kokkos_test(void* args) { return args; } int main(void) { pthread_t thread; + /* Use NULL to avoid C++11. Some compilers + do not have C++11 by default. Forcing C++11 + in the compile tests can be done, but is unnecessary + */ pthread_create(&thread, NULL, kokkos_test, NULL); pthread_join(thread, NULL); return 0; diff --git a/lib/kokkos/cmake/fake_tribits.cmake b/lib/kokkos/cmake/fake_tribits.cmake index 26948d2cfbbd3bf724703447a81e66ee29ea000e..acee4a249d172cbef6f0409d5a6182349d35c6d4 100644 --- a/lib/kokkos/cmake/fake_tribits.cmake +++ b/lib/kokkos/cmake/fake_tribits.cmake @@ -24,10 +24,6 @@ IF(NOT ${MACRO_DEFINE_NAME} STREQUAL "") ENDIF() ENDMACRO() -MACRO(GLOBAL_RESET VARNAME) - SET(${VARNAME} "" CACHE INTERNAL "" FORCE) -ENDMACRO() - MACRO(GLOBAL_OVERWRITE VARNAME VALUE TYPE) SET(${VARNAME} ${VALUE} CACHE ${TYPE} "" FORCE) ENDMACRO() @@ -88,13 +84,9 @@ MACRO(ADD_INTERFACE_LIBRARY LIB_NAME) SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES INTERFACE TRUE) ENDMACRO() -IF(NOT TARGET check) - ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} -VV -C ${CMAKE_CFG_INTDIR}) -ENDIF() - FUNCTION(KOKKOS_ADD_TEST) if (KOKKOS_HAS_TRILINOS) - CMAKE_PARSE_ARGUMENTS(TEST + CMAKE_PARSE_ARGUMENTS(TEST "" "EXE;NAME" "" @@ -108,22 +100,27 @@ FUNCTION(KOKKOS_ADD_TEST) TRIBITS_ADD_TEST( ${EXE_ROOT} NAME ${TEST_NAME} - ${ARGN} COMM serial mpi NUM_MPI_PROCS 1 ${TEST_UNPARSED_ARGUMENTS} ) else() - CMAKE_PARSE_ARGUMENTS(TEST + CMAKE_PARSE_ARGUMENTS(TEST "WILL_FAIL" "FAIL_REGULAR_EXPRESSION;PASS_REGULAR_EXPRESSION;EXE;NAME" "CATEGORIES;CMD_ARGS" ${ARGN}) + # To match Tribits, we should always be receiving + # the root names of exes/libs IF(TEST_EXE) - SET(EXE ${TEST_EXE}) + SET(EXE_ROOT ${TEST_EXE}) ELSE() - SET(EXE ${TEST_NAME}) + SET(EXE_ROOT ${TEST_NAME}) ENDIF() + # Prepend package name to the test name + # These should be the full target name + SET(TEST_NAME ${PACKAGE_NAME}_${TEST_NAME}) + SET(EXE ${PACKAGE_NAME}_${EXE_ROOT}) IF(WIN32) ADD_TEST(NAME ${TEST_NAME} WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} COMMAND ${EXE}${CMAKE_EXECUTABLE_SUFFIX} ${TEST_CMD_ARGS}) ELSE() @@ -160,7 +157,7 @@ FUNCTION(KOKKOS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES TPL_NAME) if (KOKKOS_HAS_TRILINOS) TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES(${TPL_NAME} ${ARGN}) else() - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "" "" "REQUIRED_HEADERS;REQUIRED_LIBS_NAMES" @@ -214,13 +211,13 @@ ENDFUNCTION() FUNCTION(KOKKOS_TARGET_INCLUDE_DIRECTORIES TARGET) IF(KOKKOS_HAS_TRILINOS) - KOKKOS_LIB_TYPE(${TARGET} INCTYPE) + KOKKOS_LIB_TYPE(${TARGET} INCTYPE) #don't trust tribits to do this correctly - but need to add package name TARGET_INCLUDE_DIRECTORIES(${TARGET} ${INCTYPE} ${ARGN}) -ELSEIF(TARGET ${TARGET}) +ELSEIF(TARGET ${TARGET}) #the target actually exists - this means we are doing separate libs #or this a test library - KOKKOS_LIB_TYPE(${TARGET} INCTYPE) + KOKKOS_LIB_TYPE(${TARGET} INCTYPE) TARGET_INCLUDE_DIRECTORIES(${TARGET} ${INCTYPE} ${ARGN}) ELSE() GET_PROPERTY(LIBS GLOBAL PROPERTY KOKKOS_LIBRARIES_NAMES) @@ -239,7 +236,7 @@ ELSE() SET(options INTERFACE) SET(oneValueArgs) SET(multiValueArgs) - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "INTERFACE" "" "" @@ -264,7 +261,7 @@ ELSE() SET(oneValueArgs) SET(multiValueArgs HEADERS SOURCES) - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "STATIC;SHARED" "" "HEADERS;SOURCES" @@ -277,10 +274,6 @@ ELSE() LIST(REMOVE_DUPLICATES PARSE_SOURCES) ENDIF() ADD_LIBRARY(${NAME} ${PARSE_SOURCES}) - target_link_libraries( - ${NAME} - PUBLIC kokkos - ) ENDIF() ENDFUNCTION() diff --git a/lib/kokkos/cmake/kokkos_arch.cmake b/lib/kokkos/cmake/kokkos_arch.cmake index c33247c9550f026d3ac5f611ecb049fe82333b03..d73a353981812a2643af209cd9945a37626daba1 100644 --- a/lib/kokkos/cmake/kokkos_arch.cmake +++ b/lib/kokkos/cmake/kokkos_arch.cmake @@ -9,52 +9,6 @@ FUNCTION(KOKKOS_ARCH_OPTION SUFFIX DEV_TYPE DESCRIPTION) SET(KOKKOS_ARCH_${SUFFIX} ${KOKKOS_ARCH_${SUFFIX}} PARENT_SCOPE) ENDFUNCTION() -FUNCTION(ARCH_FLAGS) - SET(COMPILERS NVIDIA PGI XL DEFAULT Cray Intel Clang AppleClang GNU) - CMAKE_PARSE_ARGUMENTS( - PARSE - "LINK_ONLY;COMPILE_ONLY" - "" - "${COMPILERS}" - ${ARGN}) - - SET(COMPILER ${KOKKOS_CXX_COMPILER_ID}) - - SET(FLAGS) - SET(NEW_COMPILE_OPTIONS) - SET(NEW_XCOMPILER_OPTIONS) - SET(NEW_LINK_OPTIONS) - LIST(APPEND NEW_XCOMPILER_OPTIONS ${KOKKOS_XCOMPILER_OPTIONS}) - LIST(APPEND NEW_COMPILE_OPTIONS ${KOKKOS_COMPILE_OPTIONS}) - LIST(APPEND NEW_LINK_OPTIONS ${KOKKOS_LINK_OPTIONS}) - FOREACH(COMP ${COMPILERS}) - IF (COMPILER STREQUAL "${COMP}") - IF (PARSE_${COMPILER}) - IF (NOT "${PARSE_${COMPILER}}" STREQUAL "NO-VALUE-SPECIFIED") - SET(FLAGS ${PARSE_${COMPILER}}) - ENDIF() - ELSEIF(PARSE_DEFAULT) - SET(FLAGS ${PARSE_DEFAULT}) - ENDIF() - ENDIF() - ENDFOREACH() - - IF (NOT LINK_ONLY) - # The funky logic here is for future handling of argument deduplication - # If we naively pass multiple -Xcompiler flags to target_compile_options - # -Xcompiler will get deduplicated and break the build - IF ("-Xcompiler" IN_LIST FLAGS) - LIST(REMOVE_ITEM FLAGS "-Xcompiler") - GLOBAL_APPEND(KOKKOS_XCOMPILER_OPTIONS ${FLAGS}) - ELSE() - GLOBAL_APPEND(KOKKOS_COMPILE_OPTIONS ${FLAGS}) - ENDIF() - ENDIF() - - IF (NOT COMPILE_ONLY) - GLOBAL_APPEND(KOKKOS_LINK_OPTIONS ${FLAGS}) - ENDIF() -ENDFUNCTION() # Make sure devices and compiler ID are done KOKKOS_CFG_DEPENDS(ARCH COMPILER_ID) @@ -98,14 +52,15 @@ KOKKOS_ARCH_OPTION(VOLTA70 GPU "NVIDIA Volta generation CC 7.0") KOKKOS_ARCH_OPTION(VOLTA72 GPU "NVIDIA Volta generation CC 7.2") KOKKOS_ARCH_OPTION(TURING75 GPU "NVIDIA Turing generation CC 7.5") KOKKOS_ARCH_OPTION(EPYC HOST "AMD Epyc architecture") - +KOKKOS_ARCH_OPTION(VEGA900 GPU "AMD GPU MI25 GFX900") +KOKKOS_ARCH_OPTION(VEGA906 GPU "AMD GPU MI50/MI60 GFX906") IF (KOKKOS_ENABLE_CUDA) #Regardless of version, make sure we define the general architecture name IF (KOKKOS_ARCH_KEPLER30 OR KOKKOS_ARCH_KEPLER32 OR KOKKOS_ARCH_KEPLER35 OR KOKKOS_ARCH_KEPLER37) SET(KOKKOS_ARCH_KEPLER ON) ENDIF() - + #Regardless of version, make sure we define the general architecture name IF (KOKKOS_ARCH_MAXWELL50 OR KOKKOS_ARCH_MAXWELL52 OR KOKKOS_ARCH_MAXWELL53) SET(KOKKOS_ARCH_MAXWELL ON) @@ -126,13 +81,13 @@ ENDIF() IF(KOKKOS_ENABLE_COMPILER_WARNINGS) SET(COMMON_WARNINGS - "-Wall" "-Wshadow" "-pedantic" + "-Wall" "-Wunused-parameter" "-Wshadow" "-pedantic" "-Wsign-compare" "-Wtype-limits" "-Wuninitialized") SET(GNU_WARNINGS "-Wempty-body" "-Wclobbered" "-Wignored-qualifiers" ${COMMON_WARNINGS}) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( PGI NO-VALUE-SPECIFIED GNU ${GNU_WARNINGS} DEFAULT ${COMMON_WARNINGS} @@ -141,7 +96,8 @@ ENDIF() #------------------------------- KOKKOS_CUDA_OPTIONS --------------------------- -GLOBAL_RESET(KOKKOS_CUDA_OPTIONS) +#clear anything that might be in the cache +GLOBAL_SET(KOKKOS_CUDA_OPTIONS) # Construct the Makefile options IF (KOKKOS_ENABLE_CUDA_LAMBDA) IF(KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) @@ -157,6 +113,7 @@ ENDIF() IF (KOKKOS_CXX_COMPILER_ID STREQUAL Clang) SET(CUDA_ARCH_FLAG "--cuda-gpu-arch") + SET(AMDGPU_ARCH_FLAG "--amdgpu-target") GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS -x cuda) IF (KOKKOS_ENABLE_CUDA) SET(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND ON CACHE BOOL "enable CUDA Clang workarounds" FORCE) @@ -171,27 +128,13 @@ IF (KOKKOS_CXX_COMPILER_ID STREQUAL NVIDIA) GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS -lineinfo) ENDIF() UNSET(_UPPERCASE_CMAKE_BUILD_TYPE) - IF (KOKKOS_CXX_COMPILER_VERSION VERSION_GREATER 9.0 OR KOKKOS_CXX_COMPILER_VERSION VERSION_EQUAL 9.0) - GLOBAL_APPEND(KOKKOS_CUDAFE_OPTIONS --diag_suppress=esa_on_defaulted_function_ignored) + IF (KOKKOS_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0 AND KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 10.0) + GLOBAL_APPEND(KOKKOS_CUDAFE_OPTIONS --diag_suppress=esa_on_defaulted_function_ignored) ENDIF() ENDIF() -IF(KOKKOS_ENABLE_OPENMP) - IF (KOKKOS_CXX_COMPILER_ID STREQUAL AppleClang) - MESSAGE(FATAL_ERROR "Apple Clang does not support OpenMP. Use native Clang instead") - ENDIF() - ARCH_FLAGS( - Clang -fopenmp=libomp - PGI -mp - NVIDIA -Xcompiler -fopenmp - Cray NO-VALUE-SPECIFIED - XL -qsmp=omp - DEFAULT -fopenmp - ) -ENDIF() - IF (KOKKOS_ARCH_ARMV80) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Cray NO-VALUE-SPECIFIED PGI NO-VALUE-SPECIFIED DEFAULT -march=armv8-a @@ -199,7 +142,7 @@ IF (KOKKOS_ARCH_ARMV80) ENDIF() IF (KOKKOS_ARCH_ARMV81) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Cray NO-VALUE-SPECIFIED PGI NO-VALUE-SPECIFIED DEFAULT -march=armv8.1-a @@ -208,7 +151,7 @@ ENDIF() IF (KOKKOS_ARCH_ARMV8_THUNDERX) SET(KOKKOS_ARCH_ARMV80 ON) #Not a cache variable - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Cray NO-VALUE-SPECIFIED PGI NO-VALUE-SPECIFIED DEFAULT -march=armv8-a -mtune=thunderx @@ -217,7 +160,7 @@ ENDIF() IF (KOKKOS_ARCH_ARMV8_THUNDERX2) SET(KOKKOS_ARCH_ARMV81 ON) #Not a cache variable - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Cray NO-VALUE-SPECIFIED PGI NO-VALUE-SPECIFIED DEFAULT -mcpu=thunderx2t99 -mtune=thunderx2t99 @@ -225,7 +168,7 @@ IF (KOKKOS_ARCH_ARMV8_THUNDERX2) ENDIF() IF (KOKKOS_ARCH_EPYC) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -mavx2 DEFAULT -march=znver1 -mtune=znver1 ) @@ -234,7 +177,7 @@ IF (KOKKOS_ARCH_EPYC) ENDIF() IF (KOKKOS_ARCH_WSM) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -xSSE4.2 PGI -tp=nehalem Cray NO-VALUE-SPECIFIED @@ -245,7 +188,7 @@ ENDIF() IF (KOKKOS_ARCH_SNB OR KOKKOS_ARCH_AMDAVX) SET(KOKKOS_ARCH_AVX ON) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -mavx PGI -tp=sandybridge Cray NO-VALUE-SPECIFIED @@ -255,7 +198,7 @@ ENDIF() IF (KOKKOS_ARCH_HSW) SET(KOKKOS_ARCH_AVX2 ON) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -xCORE-AVX2 PGI -tp=haswell Cray NO-VALUE-SPECIFIED @@ -265,7 +208,7 @@ ENDIF() IF (KOKKOS_ARCH_BDW) SET(KOKKOS_ARCH_AVX2 ON) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -xCORE-AVX2 PGI -tp=haswell Cray NO-VALUE-SPECIFIED @@ -275,7 +218,7 @@ ENDIF() IF (KOKKOS_ARCH_EPYC) SET(KOKKOS_ARCH_AMD_AVX2 ON) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -mvax2 DEFAULT -march=znver1 -mtune=znver1 ) @@ -284,7 +227,7 @@ ENDIF() IF (KOKKOS_ARCH_KNL) #avx512-mic SET(KOKKOS_ARCH_AVX512MIC ON) #not a cache variable - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -xMIC-AVX512 PGI NO-VALUE-SPECIFIED Cray NO-VALUE-SPECIFIED @@ -294,7 +237,7 @@ ENDIF() IF (KOKKOS_ARCH_KNC) SET(KOKKOS_USE_ISA_KNC ON) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( DEFAULT -mmic ) ENDIF() @@ -302,7 +245,7 @@ ENDIF() IF (KOKKOS_ARCH_SKX) #avx512-xeon SET(KOKKOS_ARCH_AVX512XEON ON) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Intel -xCORE-AVX512 PGI NO-VALUE-SPECIFIED Cray NO-VALUE-SPECIFIED @@ -319,7 +262,7 @@ IF (KOKKOS_ARCH_BDW OR KOKKOS_ARCH_SKX) ENDIF() IF (KOKKOS_ARCH_POWER7) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( PGI NO-VALUE-SPECIFIED DEFAULT -mcpu=power7 -mtune=power7 ) @@ -327,7 +270,7 @@ IF (KOKKOS_ARCH_POWER7) ENDIF() IF (KOKKOS_ARCH_POWER8) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( PGI NO-VALUE-SPECIFIED NVIDIA NO-VALUE-SPECIFIED DEFAULT -mcpu=power8 -mtune=power8 @@ -335,7 +278,7 @@ IF (KOKKOS_ARCH_POWER8) ENDIF() IF (KOKKOS_ARCH_POWER9) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( PGI NO-VALUE-SPECIFIED NVIDIA NO-VALUE-SPECIFIED DEFAULT -mcpu=power9 -mtune=power9 @@ -347,33 +290,50 @@ IF (KOKKOS_ARCH_POWER8 OR KOKKOS_ARCH_POWER9) ENDIF() IF (Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) - ARCH_FLAGS( + COMPILER_SPECIFIC_FLAGS( Clang -fcuda-rdc NVIDIA --relocatable-device-code=true ) ENDIF() +#Right now we cannot get the compiler ID when cross-compiling, so just check +#that HIP is enabled +IF (Kokkos_ENABLE_HIP) + IF (Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE) + COMPILER_SPECIFIC_FLAGS( + DEFAULT -fgpu-rdc + ) + ELSE() + COMPILER_SPECIFIC_FLAGS( + DEFAULT -fno-gpu-rdc + ) + ENDIF() +ENDIF() + SET(CUDA_ARCH_ALREADY_SPECIFIED "") FUNCTION(CHECK_CUDA_ARCH ARCH FLAG) -IF(KOKKOS_ARCH_${ARCH}) - IF(CUDA_ARCH_ALREADY_SPECIFIED) - MESSAGE(FATAL_ERROR "Multiple GPU architectures given! Already have ${CUDA_ARCH_ALREADY_SPECIFIED}, but trying to add ${ARCH}. If you are re-running CMake, try clearing the cache and running again.") - ENDIF() - SET(CUDA_ARCH_ALREADY_SPECIFIED ${ARCH} PARENT_SCOPE) - IF (NOT KOKKOS_ENABLE_CUDA) - MESSAGE(WARNING "Given CUDA arch ${ARCH}, but Kokkos_ENABLE_CUDA is OFF. Option will be ignored.") - UNSET(KOKKOS_ARCH_${ARCH} PARENT_SCOPE) - ELSE() - GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") - IF(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) - GLOBAL_APPEND(KOKKOS_LINK_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") + IF(KOKKOS_ARCH_${ARCH}) + IF(CUDA_ARCH_ALREADY_SPECIFIED) + MESSAGE(FATAL_ERROR "Multiple GPU architectures given! Already have ${CUDA_ARCH_ALREADY_SPECIFIED}, but trying to add ${ARCH}. If you are re-running CMake, try clearing the cache and running again.") + ENDIF() + SET(CUDA_ARCH_ALREADY_SPECIFIED ${ARCH} PARENT_SCOPE) + IF (NOT KOKKOS_ENABLE_CUDA AND NOT KOKKOS_ENABLE_OPENMPTARGET) + MESSAGE(WARNING "Given CUDA arch ${ARCH}, but Kokkos_ENABLE_CUDA and Kokkos_ENABLE_OPENMPTARGET are OFF. Option will be ignored.") + UNSET(KOKKOS_ARCH_${ARCH} PARENT_SCOPE) + ELSE() + SET(KOKKOS_CUDA_ARCH_FLAG ${FLAG} PARENT_SCOPE) + GLOBAL_APPEND(KOKKOS_CUDA_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") + IF(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) + GLOBAL_APPEND(KOKKOS_LINK_OPTIONS "${CUDA_ARCH_FLAG}=${FLAG}") + ENDIF() ENDIF() ENDIF() -ENDIF() ENDFUNCTION() +#These will define KOKKOS_CUDA_ARCH_FLAG +#to the corresponding flag name if ON CHECK_CUDA_ARCH(KEPLER30 sm_30) CHECK_CUDA_ARCH(KEPLER32 sm_32) CHECK_CUDA_ARCH(KEPLER35 sm_35) @@ -383,18 +343,76 @@ CHECK_CUDA_ARCH(MAXWELL52 sm_52) CHECK_CUDA_ARCH(MAXWELL53 sm_53) CHECK_CUDA_ARCH(PASCAL60 sm_60) CHECK_CUDA_ARCH(PASCAL61 sm_61) -CHECK_CUDA_ARCH(VOLTA70 sm_70) -CHECK_CUDA_ARCH(VOLTA72 sm_72) +CHECK_CUDA_ARCH(VOLTA70 sm_70) +CHECK_CUDA_ARCH(VOLTA72 sm_72) CHECK_CUDA_ARCH(TURING75 sm_75) +SET(AMDGPU_ARCH_ALREADY_SPECIFIED "") +FUNCTION(CHECK_AMDGPU_ARCH ARCH FLAG) + IF(KOKKOS_ARCH_${ARCH}) + IF(AMDGPU_ARCH_ALREADY_SPECIFIED) + MESSAGE(FATAL_ERROR "Multiple GPU architectures given! Already have ${AMDGPU_ARCH_ALREADY_SPECIFIED}, but trying to add ${ARCH}. If you are re-running CMake, try clearing the cache and running again.") + ENDIF() + SET(AMDGPU_ARCH_ALREADY_SPECIFIED ${ARCH} PARENT_SCOPE) + IF (NOT KOKKOS_ENABLE_HIP AND NOT KOKKOS_ENABLE_OPENMPTARGET) + MESSAGE(WARNING "Given HIP arch ${ARCH}, but Kokkos_ENABLE_AMDGPU and Kokkos_ENABLE_OPENMPTARGET are OFF. Option will be ignored.") + UNSET(KOKKOS_ARCH_${ARCH} PARENT_SCOPE) + ELSE() + SET(KOKKOS_AMDGPU_ARCH_FLAG ${FLAG} PARENT_SCOPE) + GLOBAL_APPEND(KOKKOS_AMDGPU_OPTIONS "${AMDGPU_ARCH_FLAG}=${FLAG}") + IF(KOKKOS_ENABLE_HIP) + GLOBAL_APPEND(KOKKOS_LINK_OPTIONS "${AMDGPU_ARCH_FLAG}=${FLAG}") + ENDIF() + ENDIF() + ENDIF() +ENDFUNCTION() + +#These will define KOKKOS_AMDGPU_ARCH_FLAG +#to the corresponding flag name if ON +CHECK_AMDGPU_ARCH(VEGA900 gfx900) # Radeon Instinct MI25 +CHECK_AMDGPU_ARCH(VEGA906 gfx906) # Radeon Instinct MI50 and MI60 + +IF (KOKKOS_ENABLE_OPENMPTARGET) + SET(CLANG_CUDA_ARCH ${KOKKOS_CUDA_ARCH_FLAG}) + IF (CLANG_CUDA_ARCH) + COMPILER_SPECIFIC_FLAGS( + Clang -Xopenmp-target -march=${CLANG_CUDA_ARCH} -fopenmp-targets=nvptx64-nvidia-cuda + XL -qtgtarch=${KOKKOS_CUDA_ARCH_FLAG} + ) + ENDIF() + SET(CLANG_AMDGPU_ARCH ${KOKKOS_AMDGPU_ARCH_FLAG}) + IF (CLANG_AMDGPU_ARCH) + COMPILER_SPECIFIC_FLAGS( + Clang -Xopenmp-target=amdgcn-amd-amdhsa -march=${CLANG_AMDGPU_ARCH} -fopenmp-targets=amdgcn-amd-amdhsa + ) + ENDIF() +ENDIF() + +IF(KOKKOS_ENABLE_CUDA AND NOT CUDA_ARCH_ALREADY_SPECIFIED) + MESSAGE(SEND_ERROR "CUDA enabled but no NVIDIA GPU architecture currently enabled. Please give one -DKokkos_ARCH_{..}=ON' to enable an NVIDIA GPU architecture.") +ENDIF() + #CMake verbose is kind of pointless #Let's just always print things MESSAGE(STATUS "Execution Spaces:") -IF(KOKKOS_ENABLE_CUDA) - MESSAGE(STATUS " Device Parallel: CUDA") -ELSE() - MESSAGE(STATUS " Device Parallel: NONE") + +FOREACH (_BACKEND CUDA OPENMPTARGET HIP) + IF(KOKKOS_ENABLE_${_BACKEND}) + IF(_DEVICE_PARALLEL) + MESSAGE(FATAL_ERROR "Multiple device parallel execution spaces are not allowed! " + "Trying to enable execution space ${_BACKEND}, " + "but execution space ${_DEVICE_PARALLEL} is already enabled. " + "Remove the CMakeCache.txt file and re-configure.") + ENDIF() + SET(_DEVICE_PARALLEL ${_BACKEND}) + ENDIF() +ENDFOREACH() +IF(NOT _DEVICE_PARALLEL) + SET(_DEVICE_PARALLEL "NONE") ENDIF() +MESSAGE(STATUS " Device Parallel: ${_DEVICE_PARALLEL}") +UNSET(_DEVICE_PARALLEL) + FOREACH (_BACKEND OPENMP PTHREAD HPX) IF(KOKKOS_ENABLE_${_BACKEND}) diff --git a/lib/kokkos/cmake/kokkos_check_env.cmake b/lib/kokkos/cmake/kokkos_check_env.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a455a403b9d5ed0fa3772d2d8e619347061bd65e --- /dev/null +++ b/lib/kokkos/cmake/kokkos_check_env.cmake @@ -0,0 +1,12 @@ +SET(CRAYPE_VERSION $ENV{CRAYPE_VERSION}) +IF (CRAYPE_VERSION) + SET(KOKKOS_IS_CRAYPE TRUE) + SET(CRAYPE_LINK_TYPE $ENV{CRAYPE_LINK_TYPE}) + IF (CRAYPE_LINK_TYPE) + IF (NOT CRAYPE_LINK_TYPE STREQUAL "dynamic") + MESSAGE(WARNING "CRAYPE_LINK_TYPE is set to ${CRAYPE_LINK_TYPE}. Linking is likely to fail unless this is set to 'dynamic'") + ENDIF() + ELSE() + MESSAGE(WARNING "CRAYPE_LINK_TYPE is not set. Linking is likely to fail unless this is set to 'dynamic'") + ENDIF() +ENDIF() diff --git a/lib/kokkos/cmake/kokkos_compiler_id.cmake b/lib/kokkos/cmake/kokkos_compiler_id.cmake index d239c3b32e5d2d853a6a5ad9705a49aec895c5a5..cd5e7c9e4e40217ffcfb1c6f64710cfe6f34a584 100644 --- a/lib/kokkos/cmake/kokkos_compiler_id.cmake +++ b/lib/kokkos/cmake/kokkos_compiler_id.cmake @@ -13,7 +13,7 @@ EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version STRING(REGEX REPLACE "^ +" "" - INTERNAL_HAVE_COMPILER_NVCC ${INTERNAL_HAVE_COMPILER_NVCC}) + INTERNAL_HAVE_COMPILER_NVCC "${INTERNAL_HAVE_COMPILER_NVCC}") IF(INTERNAL_HAVE_COMPILER_NVCC) @@ -31,16 +31,32 @@ IF(INTERNAL_HAVE_COMPILER_NVCC) SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) ENDIF() -IF(KOKKOS_CXX_COMPILER_ID STREQUAL Cray) - # SET nvcc's compiler version. +IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang) + # The Cray compiler reports as Clang to most versions of CMake + EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version + COMMAND grep Cray + COMMAND wc -l + OUTPUT_VARIABLE INTERNAL_HAVE_CRAY_COMPILER + OUTPUT_STRIP_TRAILING_WHITESPACE) + IF (INTERNAL_HAVE_CRAY_COMPILER) #not actually Clang + SET(KOKKOS_CLANG_IS_CRAY TRUE) + ENDIF() +ENDIF() + +IF(KOKKOS_CXX_COMPILER_ID STREQUAL Cray OR KOKKOS_CLANG_IS_CRAY) + # SET Cray's compiler version. EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE INTERNAL_CXX_COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+$" + STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" TEMP_CXX_COMPILER_VERSION ${INTERNAL_CXX_COMPILER_VERSION}) - SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) + IF (KOKKOS_CLANG_IS_CRAY) + SET(KOKKOS_CLANG_CRAY_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION}) + ELSE() + SET(KOKKOS_CXX_COMPILER_VERSION ${TEMP_CXX_COMPILER_VERSION} CACHE STRING INTERNAL FORCE) + ENDIF() ENDIF() # Enforce the minimum compilers supported by Kokkos. diff --git a/lib/kokkos/cmake/kokkos_corner_cases.cmake b/lib/kokkos/cmake/kokkos_corner_cases.cmake index c03c385faf69a533fd0f91107fd07668fbb9cdab..e30be3c841ec7913feb41c0545160c6eb48cb704 100644 --- a/lib/kokkos/cmake/kokkos_corner_cases.cmake +++ b/lib/kokkos/cmake/kokkos_corner_cases.cmake @@ -1,4 +1,4 @@ -IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP) +IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP AND NOT KOKKOS_CLANG_IS_CRAY) # The clang "version" doesn't actually tell you what runtimes and tools # were built into Clang. We should therefore make sure that libomp # was actually built into Clang. Otherwise the user will get nonsensical @@ -11,7 +11,7 @@ IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP) #also - this is easier to use than CMakeCheckCXXSourceCompiles TRY_COMPILE(CLANG_HAS_OMP ${KOKKOS_TOP_BUILD_DIR}/corner_cases - ${KOKKOS_SOURCE_DIR}/cmake/compile_tests/clang_omp.cpp + ${KOKKOS_SOURCE_DIR}/cmake/compile_tests/clang_omp.cpp COMPILE_DEFINITIONS -fopenmp=libomp LINK_LIBRARIES -fopenmp=libomp ) @@ -22,6 +22,30 @@ IF(KOKKOS_CXX_COMPILER_ID STREQUAL Clang AND KOKKOS_ENABLE_OPENMP) UNSET(CLANG_HAS_OMP CACHE) #make sure CMake always re-runs this ENDIF() +IF(KOKKOS_CXX_COMPILER_ID STREQUAL AppleClang AND KOKKOS_ENABLE_OPENMP) + # The clang "version" doesn't actually tell you what runtimes and tools + # were built into Clang. We should therefore make sure that libomp + # was actually built into Clang. Otherwise the user will get nonsensical + # errors when they try to build. + + #Try compile is the height of CMake nonsense + #I can't just give it compiler and link flags + #I have to hackily pretend that compiler flags are compiler definitions + #and that linker flags are libraries + #also - this is easier to use than CMakeCheckCXXSourceCompiles + TRY_COMPILE(APPLECLANG_HAS_OMP + ${KOKKOS_TOP_BUILD_DIR}/corner_cases + ${KOKKOS_SOURCE_DIR}/cmake/compile_tests/clang_omp.cpp + COMPILE_DEFINITIONS -Xpreprocessor -fopenmp + LINK_LIBRARIES -lomp + ) + IF (NOT APPLECLANG_HAS_OMP) + UNSET(APPLECLANG_HAS_OMP CACHE) #make sure CMake always re-runs this + MESSAGE(FATAL_ERROR "AppleClang failed OpenMP check. You have requested -DKokkos_ENABLE_OPENMP=ON, but the AppleClang compiler does not appear to have been built with OpenMP support") + ENDIF() + UNSET(APPLECLANG_HAS_OMP CACHE) #make sure CMake always re-runs this +ENDIF() + IF (KOKKOS_CXX_STANDARD STREQUAL 17) IF (KOKKOS_CXX_COMPILER_ID STREQUAL GNU AND KOKKOS_CXX_COMPILER_VERSION VERSION_LESS 7) diff --git a/lib/kokkos/cmake/kokkos_enable_devices.cmake b/lib/kokkos/cmake/kokkos_enable_devices.cmake index ff098766736dd80efb121fb691c8466e5f99f404..7b50cfe458a46c50b06b627a86a70eb36a0c4a5c 100644 --- a/lib/kokkos/cmake/kokkos_enable_devices.cmake +++ b/lib/kokkos/cmake/kokkos_enable_devices.cmake @@ -31,6 +31,41 @@ ELSE() SET(OMP_DEFAULT OFF) ENDIF() KOKKOS_DEVICE_OPTION(OPENMP ${OMP_DEFAULT} HOST "Whether to build OpenMP backend") +IF(KOKKOS_ENABLE_OPENMP) + SET(ClangOpenMPFlag -fopenmp=libomp) + IF(KOKKOS_CLANG_IS_CRAY) + SET(ClangOpenMPFlag -fopenmp) + ENDIF() + COMPILER_SPECIFIC_FLAGS( + Clang ${ClangOpenMPFlag} + AppleClang -Xpreprocessor -fopenmp + PGI -mp + NVIDIA -Xcompiler -fopenmp + Cray NO-VALUE-SPECIFIED + XL -qsmp=omp + DEFAULT -fopenmp + ) + COMPILER_SPECIFIC_LIBS( + AppleClang -lomp + ) +ENDIF() + +KOKKOS_DEVICE_OPTION(OPENMPTARGET OFF DEVICE "Whether to build the OpenMP target backend") +IF (KOKKOS_ENABLE_OPENMPTARGET) + COMPILER_SPECIFIC_FLAGS( + Clang -fopenmp -fopenmp=libomp + XL -qsmp=omp -qoffload -qnoeh + DEFAULT -fopenmp + ) + COMPILER_SPECIFIC_DEFS( + XL KOKKOS_IBM_XL_OMP45_WORKAROUND + Clang KOKKOS_WORKAROUND_OPENMPTARGET_CLANG + ) +# Are there compilers which identify as Clang and need this library? +# COMPILER_SPECIFIC_LIBS( +# Clang -lopenmptarget +# ) +ENDIF() IF(Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA) SET(CUDA_DEFAULT ON) @@ -59,3 +94,5 @@ ENDIF() KOKKOS_DEVICE_OPTION(SERIAL ${SERIAL_DEFAULT} HOST "Whether to build serial backend") KOKKOS_DEVICE_OPTION(HPX OFF HOST "Whether to build HPX backend (experimental)") + +KOKKOS_DEVICE_OPTION(HIP OFF DEVICE "Whether to build HIP backend") diff --git a/lib/kokkos/cmake/kokkos_enable_options.cmake b/lib/kokkos/cmake/kokkos_enable_options.cmake index c0e49482b66c51de0f897bf9730c7db35436e787..4560c3df8fbfd8901bb350d2d41820263061cfd3 100644 --- a/lib/kokkos/cmake/kokkos_enable_options.cmake +++ b/lib/kokkos/cmake/kokkos_enable_options.cmake @@ -21,6 +21,7 @@ ENDFUNCTION() # Certain defaults will depend on knowing the enabled devices KOKKOS_CFG_DEPENDS(OPTIONS DEVICES) +KOKKOS_CFG_DEPENDS(OPTIONS COMPILER_ID) # Put a check in just in case people are using this option KOKKOS_DEPRECATED_LIST(OPTIONS ENABLE) @@ -28,8 +29,10 @@ KOKKOS_DEPRECATED_LIST(OPTIONS ENABLE) KOKKOS_ENABLE_OPTION(CUDA_RELOCATABLE_DEVICE_CODE OFF "Whether to enable relocatable device code (RDC) for CUDA") KOKKOS_ENABLE_OPTION(CUDA_UVM OFF "Whether to use unified memory (UM) for CUDA by default") KOKKOS_ENABLE_OPTION(CUDA_LDG_INTRINSIC OFF "Whether to use CUDA LDG intrinsics") +KOKKOS_ENABLE_OPTION(HIP_RELOCATABLE_DEVICE_CODE OFF "Whether to enable relocatable device code (RDC) for HIP") KOKKOS_ENABLE_OPTION(HPX_ASYNC_DISPATCH OFF "Whether HPX supports asynchronous dispatch") KOKKOS_ENABLE_OPTION(TESTS OFF "Whether to build the unit tests") +KOKKOS_ENABLE_OPTION(EXAMPLES OFF "Whether to build the examples") STRING(TOUPPER "${CMAKE_BUILD_TYPE}" UPPERCASE_CMAKE_BUILD_TYPE) IF(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL "DEBUG") KOKKOS_ENABLE_OPTION(DEBUG ON "Whether to activate extra debug features - may increase compile times") @@ -51,12 +54,14 @@ IF (KOKKOS_ENABLE_CUDA) SET(KOKKOS_COMPILER_CUDA_VERSION "${KOKKOS_COMPILER_VERSION_MAJOR}${KOKKOS_COMPILER_VERSION_MINOR}") ENDIF() -IF (Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA AND DEFINED KOKKOS_COMPILER_CUDA_VERSION AND KOKKOS_COMPILER_CUDA_VERSION GREATER 70) - SET(LAMBDA_DEFAULT ON) +IF (Trilinos_ENABLE_Kokkos AND TPL_ENABLE_CUDA) + SET(CUDA_LAMBDA_DEFAULT ON) +ELSEIF (KOKKOS_ENABLE_CUDA AND (KOKKOS_CXX_COMPILER_ID STREQUAL Clang)) + SET(CUDA_LAMBDA_DEFAULT ON) ELSE() - SET(LAMBDA_DEFAULT OFF) + SET(CUDA_LAMBDA_DEFAULT OFF) ENDIF() -KOKKOS_ENABLE_OPTION(CUDA_LAMBDA ${LAMBDA_DEFAULT} "Whether to activate experimental lambda features") +KOKKOS_ENABLE_OPTION(CUDA_LAMBDA ${CUDA_LAMBDA_DEFAULT} "Whether to activate experimental lambda features") IF (Trilinos_ENABLE_Kokkos) SET(COMPLEX_ALIGN_DEFAULT OFF) ELSE() @@ -64,7 +69,13 @@ ELSE() ENDIF() KOKKOS_ENABLE_OPTION(COMPLEX_ALIGN ${COMPLEX_ALIGN_DEFAULT} "Whether to align Kokkos::complex to 2*alignof(RealType)") -KOKKOS_ENABLE_OPTION(CUDA_CONSTEXPR OFF "Whether to activate experimental relaxed constexpr functions") + +IF (KOKKOS_ENABLE_CUDA AND (KOKKOS_CXX_COMPILER_ID STREQUAL Clang)) + SET(CUDA_CONSTEXPR_DEFAULT ON) +ELSE() + SET(CUDA_CONSTEXPR_DEFAULT OFF) +ENDIF() +KOKKOS_ENABLE_OPTION(CUDA_CONSTEXPR ${CUDA_CONSTEXPR_DEFAULT} "Whether to activate experimental relaxed constexpr functions") FUNCTION(check_device_specific_options) CMAKE_PARSE_ARGUMENTS(SOME "" "DEVICE" "OPTIONS" ${ARGN}) @@ -84,9 +95,18 @@ FUNCTION(check_device_specific_options) ENDFUNCTION() CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE CUDA OPTIONS CUDA_UVM CUDA_RELOCATABLE_DEVICE_CODE CUDA_LAMBDA CUDA_CONSTEXPR CUDA_LDG_INTRINSIC) +CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE HIP OPTIONS HIP_RELOCATABLE_DEVICE_CODE) CHECK_DEVICE_SPECIFIC_OPTIONS(DEVICE HPX OPTIONS HPX_ASYNC_DISPATCH) # Needed due to change from deprecated name to new header define name IF (KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION) SET(KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION ON) ENDIF() + +# This is known to occur with Clang 9. We would need to use nvcc as the linker +# http://lists.llvm.org/pipermail/cfe-dev/2018-June/058296.html +# TODO: Through great effort we can use a different linker by hacking +# CMAKE_CXX_LINK_EXECUTABLE in a future release +IF (KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE AND KOKKOS_CXX_COMPILER_ID STREQUAL Clang) + MESSAGE(FATAL_ERROR "Relocatable device code is currently not supported with Clang - must use nvcc_wrapper or turn off RDC") +ENDIF() diff --git a/lib/kokkos/cmake/kokkos_functions.cmake b/lib/kokkos/cmake/kokkos_functions.cmake index 3644c48ddde7c861e29727805323cbb21ac37d33..fd04966bafa30e59bd9693f536aeb284dcc220a4 100644 --- a/lib/kokkos/cmake/kokkos_functions.cmake +++ b/lib/kokkos/cmake/kokkos_functions.cmake @@ -3,9 +3,9 @@ # kokkos_option # Validate options are given with correct case and define an internal -# upper-case version for use within +# upper-case version for use within -# +# # # @FUNCTION: kokkos_deprecated_list # @@ -62,7 +62,7 @@ FUNCTION(kokkos_option CAMEL_SUFFIX DEFAULT TYPE DOCSTRING) UNSET(${opt} CACHE) ELSE() MESSAGE(FATAL_ERROR "Matching option found for ${CAMEL_NAME} with the wrong case ${opt}. Please delete your CMakeCache.txt and change option to -D${CAMEL_NAME}=${${opt}}. This is now enforced to avoid hard-to-debug CMake cache inconsistencies.") - ENDIF() + ENDIF() ENDIF() ENDIF() ENDFOREACH() @@ -125,7 +125,7 @@ MACRO(kokkos_export_imported_tpl NAME) KOKKOS_APPEND_CONFIG_LINE("IF(NOT TARGET ${NAME})") KOKKOS_APPEND_CONFIG_LINE("ADD_LIBRARY(${NAME} UNKNOWN IMPORTED)") KOKKOS_APPEND_CONFIG_LINE("SET_TARGET_PROPERTIES(${NAME} PROPERTIES") - + GET_TARGET_PROPERTY(TPL_LIBRARY ${NAME} IMPORTED_LOCATION) IF(TPL_LIBRARY) KOKKOS_APPEND_CONFIG_LINE("IMPORTED_LOCATION ${TPL_LIBRARY}") @@ -198,7 +198,7 @@ MACRO(kokkos_import_tpl NAME) # I have still been getting errors about ROOT variables being ignored # I'm not sure if this is a scope issue - but make sure # the policy is set before we do any find_package calls - IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") + IF(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") CMAKE_POLICY(SET CMP0074 NEW) ENDIF() @@ -341,11 +341,12 @@ ENDMACRO() # default, custom paths are prioritized over system paths. The searched # order is: # 1. _ROOT variable -# 2. Kokkos__DIR variable -# 3. Locations in the PATHS option -# 4. Default system paths, if allowed. +# 2. _ROOT environment variable +# 3. Kokkos__DIR variable +# 4. Locations in the PATHS option +# 5. Default system paths, if allowed. # -# Default system paths are allowed if none of options (1)-(3) are specified +# Default system paths are allowed if none of options (1)-(4) are specified # or if default paths are specifically allowed via ALLOW_SYSTEM_PATH_FALLBACK # # Usage:: @@ -387,33 +388,29 @@ MACRO(kokkos_find_header VAR_NAME HEADER TPL_NAME) "PATHS" ${ARGN}) - SET(${HEADER}_FOUND FALSE) + SET(${VAR_NAME} "${VARNAME}-NOTFOUND") SET(HAVE_CUSTOM_PATHS FALSE) - IF(NOT ${HEADER}_FOUND AND DEFINED ${TPL_NAME}_ROOT) - #ONLY look in the root directory - FIND_PATH(${VAR_NAME} ${HEADER} PATHS ${${TPL_NAME}_ROOT}/include NO_DEFAULT_PATH) - SET(HAVE_CUSTOM_PATHS TRUE) - ENDIF() - IF(NOT ${HEADER}_FOUND AND DEFINED KOKKOS_${TPL_NAME}_DIR) - #ONLY look in the root directory - FIND_PATH(${VAR_NAME} ${HEADER} PATHS ${KOKKOS_${TPL_NAME}_DIR}/include NO_DEFAULT_PATH) + IF(DEFINED ${TPL_NAME}_ROOT OR + DEFINED ENV{${TPL_NAME}_ROOT} OR + DEFINED KOKKOS_${TPL_NAME}_DIR OR + TPL_PATHS) + FIND_PATH(${VAR_NAME} ${HEADER} + PATHS + ${${TPL_NAME}_ROOT} + $ENV{${TPL_NAME}_ROOT} + ${KOKKOS_${TPL_NAME}_DIR} + ${TPL_PATHS} + PATH_SUFFIXES include + NO_DEFAULT_PATH) SET(HAVE_CUSTOM_PATHS TRUE) ENDIF() - IF (NOT ${HEADER}_FOUND AND TPL_PATHS) - #we got custom paths - #ONLY look in these paths and nowhere else - FIND_PATH(${VAR_NAME} ${HEADER} PATHS ${TPL_PATHS} NO_DEFAULT_PATH) - SET(HAVE_CUSTOM_PATHS TRUE) + IF(NOT HAVE_CUSTOM_PATHS OR TPL_ALLOW_SYSTEM_PATH_FALLBACK) + #No-op if ${VAR_NAME} set by previous call + FIND_PATH(${VAR_NAME} ${HEADER}) ENDIF() - IF (NOT HAVE_CUSTOM_PATHS OR TPL_ALLOW_SYSTEM_PATH_FALLBACK) - #Now go ahead and look in system paths - IF (NOT ${HEADER}_FOUND) - FIND_PATH(${VAR_NAME} ${HEADER}) - ENDIF() - ENDIF() ENDMACRO() # @@ -424,9 +421,10 @@ ENDMACRO() # default, custom paths are prioritized over system paths. The search # order is: # 1. _ROOT variable -# 2. Kokkos__DIR variable -# 3. Locations in the PATHS option -# 4. Default system paths, if allowed. +# 2. _ROOT environment variable +# 3. Kokkos__DIR variable +# 4. Locations in the PATHS option +# 5. Default system paths, if allowed. # # Default system paths are allowed if none of options (1)-(3) are specified # or if default paths are specifically allowed via ALLOW_SYSTEM_PATH_FALLBACK @@ -439,6 +437,7 @@ ENDMACRO() # # [ALLOW_SYSTEM_PATH_FALLBACK] # [PATHS path1 [path2 ...]] +# [SUFFIXES suffix1 [suffix2 ...]] # ) # # ```` @@ -463,39 +462,46 @@ ENDMACRO() # # Custom paths to search for the library # +# ``SUFFIXES`` +# +# Suffixes appended to PATHS when attempting to locate +# the library. Defaults to {lib, lib64}. +# MACRO(kokkos_find_library VAR_NAME LIB TPL_NAME) CMAKE_PARSE_ARGUMENTS(TPL "ALLOW_SYSTEM_PATH_FALLBACK" "" - "PATHS" + "PATHS;SUFFIXES" ${ARGN}) - SET(${LIB}_FOUND FALSE) - SET(HAVE_CUSTOM_PATHS FALSE) - IF(NOT ${LIB}_FOUND AND DEFINED ${TPL_NAME}_ROOT) - FIND_LIBRARY(${VAR_NAME} ${LIB} PATHS ${${TPL_NAME}_ROOT}/lib ${${TPL_NAME}_ROOT}/lib64 NO_DEFAULT_PATH) - SET(HAVE_CUSTOM_PATHS TRUE) + IF(NOT TPL_SUFFIXES) + SET(TPL_SUFFIXES lib lib64) ENDIF() - IF(NOT ${LIB}_FOUND AND DEFINED KOKKOS_${TPL_NAME}_DIR) - #we got root paths, only look in these paths and nowhere else - FIND_LIBRARY(${VAR_NAME} ${LIB} PATHS ${KOKKOS_${TPL_NAME}_DIR}/lib ${KOKKOS_${TPL_NAME}_DIR}/lib64 NO_DEFAULT_PATH) - SET(HAVE_CUSTOM_PATHS TRUE) - ENDIF() + SET(${VAR_NAME} "${VARNAME}-NOTFOUND") + SET(HAVE_CUSTOM_PATHS FALSE) - IF (NOT ${LIB}_FOUND AND TPL_PATHS) - #we got custom paths, only look in these paths and nowhere else - FIND_LIBRARY(${VAR_NAME} ${LIB} PATHS ${TPL_PATHS} NO_DEFAULT_PATH) + IF(DEFINED ${TPL_NAME}_ROOT OR + DEFINED ENV{${TPL_NAME}_ROOT} OR + DEFINED KOKKOS_${TPL_NAME}_DIR OR + TPL_PATHS) + FIND_LIBRARY(${VAR_NAME} ${LIB} + PATHS + ${${TPL_NAME}_ROOT} + $ENV{${TPL_NAME}_ROOT} + ${KOKKOS_${TPL_NAME}_DIR} + ${TPL_PATHS} + PATH_SUFFIXES + ${TPL_SUFFIXES} + NO_DEFAULT_PATH) SET(HAVE_CUSTOM_PATHS TRUE) ENDIF() - - IF (NOT HAVE_CUSTOM_PATHS OR TPL_ALLOW_SYSTEM_PATH_FALLBACK) - IF (NOT ${LIB}_FOUND) - #Now go ahead and look in system paths - FIND_LIBRARY(${VAR_NAME} ${LIB}) - ENDIF() + IF(NOT HAVE_CUSTOM_PATHS OR TPL_ALLOW_SYSTEM_PATH_FALLBACK) + #No-op if ${VAR_NAME} set by previous call + FIND_LIBRARY(${VAR_NAME} ${LIB} PATH_SUFFIXES ${TPL_SUFFIXES}) ENDIF() + ENDMACRO() # @@ -510,26 +516,28 @@ ENDMACRO() # # INTERFACE # ALLOW_SYSTEM_PATH_FALLBACK -# LIBRARY -# LINK_LIBRARIES ... -# COMPILE_OPTIONS ... -# LINK_OPTIONS ... +# MODULE_NAME +# IMPORTED_NAME +# LIBRARY +# LIBRARIES ... +# LIBRARY_PATHS ... +# LIBRARY_SUFFIXES ... +# HEADER +# HEADERS ... +# HEADER_PATHS ... +# ) # # ``INTERFACE`` # # If specified, this TPL will build an INTERFACE library rather than an # IMPORTED target # -# ``ALLOW_SYSTEM_PATH_FALLBACK" +# ``ALLOW_SYSTEM_PATH_FALLBACK`` # # If custom paths are given and the library is not found # should we be allowed to search default system paths # or error out if not found in given paths. # -# ``LIBRARY `` -# -# If specified, this gives the name of the library to look for -# # ``MODULE_NAME `` # # If specified, the name of the enclosing module passed to @@ -541,29 +549,42 @@ ENDMACRO() # If specified, this gives the name of the target to build. # Defaults to Kokkos:: # +# ``LIBRARY `` +# +# If specified, this gives the name of the library to look for +# +# ``LIBRARIES ...`` +# +# If specified, this gives a list of libraries to find for the package +# # ``LIBRARY_PATHS ...`` # -# If specified, this gives a list of paths to search for the library -# If not given, _ROOT/lib and _ROOT/lib64 will be searched. +# If specified, this gives a list of paths to search for the library. +# If not given, _ROOT will be searched. # -# ``HEADER_PATHS ...`` +# ``LIBRARY_SUFFIXES ...`` # -# If specified, this gives a list of paths to search for the headers -# If not given, _ROOT/include and _ROOT/include will be searched. +# Suffixes appended to LIBRARY_PATHS when attempting to locate +# libraries. If not given, defaults to {lib, lib64}. +# +# ``HEADER `` +# +# If specified, this gives the name of a header to to look for # # ``HEADERS ...`` # # If specified, this gives a list of headers to find for the package # -# ``LIBRARIES ...`` +# ``HEADER_PATHS ...`` # -# If specified, this gives a list of libraries to find for the package +# If specified, this gives a list of paths to search for the headers +# If not given, _ROOT/include and _ROOT/include will be searched. # MACRO(kokkos_find_imported NAME) CMAKE_PARSE_ARGUMENTS(TPL "INTERFACE;ALLOW_SYSTEM_PATH_FALLBACK" - "HEADER;LIBRARY;IMPORTED_NAME;MODULE_NAME" - "HEADER_PATHS;LIBRARY_PATHS;HEADERS;LIBRARIES" + "IMPORTED_NAME;MODULE_NAME;LIBRARY;HEADER" + "LIBRARIES;LIBRARY_PATHS;LIBRARY_SUFFIXES;HEADERS;HEADER_PATHS" ${ARGN}) IF(NOT TPL_MODULE_NAME) @@ -584,6 +605,10 @@ MACRO(kokkos_find_imported NAME) ENDIF() ENDIF() + IF (NOT TPL_LIBRARY_SUFFIXES) + SET(TPL_LIBRARY_SUFFIXES lib lib64) + ENDIF() + SET(${NAME}_INCLUDE_DIRS) IF (TPL_HEADER) KOKKOS_FIND_HEADER(${NAME}_INCLUDE_DIRS ${TPL_HEADER} ${NAME} ${ALLOW_PATH_FALLBACK_OPT} PATHS ${TPL_HEADER_PATHS}) @@ -598,16 +623,22 @@ MACRO(kokkos_find_imported NAME) SET(${NAME}_LIBRARY) IF(TPL_LIBRARY) - KOKKOS_FIND_LIBRARY(${NAME}_LIBRARY ${TPL_LIBRARY} ${NAME} ${ALLOW_PATH_FALLBACK_OPT} PATHS ${TPL_LIBRARY_PATHS}) + KOKKOS_FIND_LIBRARY(${NAME}_LIBRARY ${TPL_LIBRARY} ${NAME} + ${ALLOW_PATH_FALLBACK_OPT} + PATHS ${TPL_LIBRARY_PATHS} + SUFFIXES ${TPL_LIBRARY_SUFFIXES}) ENDIF() SET(${NAME}_FOUND_LIBRARIES) FOREACH(LIB ${TPL_LIBRARIES}) - KOKKOS_FIND_LIBRARY(${LIB}_LOCATION ${LIB} ${NAME} ${ALLOW_PATH_FALLBACK_OPT} PATHS ${TPL_LIBRARY_PATHS}) + KOKKOS_FIND_LIBRARY(${LIB}_LOCATION ${LIB} ${NAME} + ${ALLOW_PATH_FALLBACK_OPT} + PATHS ${TPL_LIBRARY_PATHS} + SUFFIXES ${TPL_LIBRARY_SUFFIXES}) IF(${LIB}_LOCATION) LIST(APPEND ${NAME}_FOUND_LIBRARIES ${${LIB}_LOCATION}) ELSE() - SET(${NAME}_FOUND_LIBRARIES ${${LIB}_LOCATION}) + SET(${NAME}_FOUND_LIBRARIES ${${LIB}_LOCATION}) BREAK() ENDIF() ENDFOREACH() @@ -629,6 +660,13 @@ MACRO(kokkos_find_imported NAME) MARK_AS_ADVANCED(${NAME}_INCLUDE_DIRS ${NAME}_FOUND_LIBRARIES ${NAME}_LIBRARY) + #this is so much fun on a Cray system + #/usr/include should never be added as a -isystem include + #this freaks out the compiler include search order + IF (KOKKOS_IS_CRAYPE) + LIST(REMOVE_ITEM ${NAME}_INCLUDE_DIRS "/usr/include") + ENDIF() + IF (${TPL_MODULE_NAME}_FOUND) SET(IMPORT_TYPE) IF (TPL_INTERFACE) @@ -698,3 +736,66 @@ FUNCTION(kokkos_link_tpl TARGET) ENDIF() ENDFUNCTION() +FUNCTION(COMPILER_SPECIFIC_OPTIONS_HELPER) + SET(COMPILERS NVIDIA PGI XL DEFAULT Cray Intel Clang AppleClang GNU) + CMAKE_PARSE_ARGUMENTS( + PARSE + "LINK_OPTIONS;COMPILE_OPTIONS;COMPILE_DEFINITIONS;LINK_LIBRARIES" + "" + "${COMPILERS}" + ${ARGN}) + IF(PARSE_UNPARSED_ARGUMENTS) + MESSAGE(SEND_ERROR "'${PARSE_UNPARSED_ARGUMENTS}' argument(s) not recognized when providing compiler specific options") + ENDIF() + + SET(COMPILER ${KOKKOS_CXX_COMPILER_ID}) + + SET(COMPILER_SPECIFIC_FLAGS_TMP) + FOREACH(COMP ${COMPILERS}) + IF (COMPILER STREQUAL "${COMP}") + IF (PARSE_${COMPILER}) + IF (NOT "${PARSE_${COMPILER}}" STREQUAL "NO-VALUE-SPECIFIED") + SET(COMPILER_SPECIFIC_FLAGS_TMP ${PARSE_${COMPILER}}) + ENDIF() + ELSEIF(PARSE_DEFAULT) + SET(COMPILER_SPECIFIC_FLAGS_TMP ${PARSE_DEFAULT}) + ENDIF() + ENDIF() + ENDFOREACH() + + IF (PARSE_COMPILE_OPTIONS) + # The funky logic here is for future handling of argument deduplication + # If we naively pass multiple -Xcompiler flags to target_compile_options + # -Xcompiler will get deduplicated and break the build + IF ("-Xcompiler" IN_LIST COMPILER_SPECIFIC_FLAGS_TMP) + LIST(REMOVE_ITEM COMPILER_SPECIFIC_FLAGS_TMP "-Xcompiler") + GLOBAL_APPEND(KOKKOS_XCOMPILER_OPTIONS ${COMPILER_SPECIFIC_FLAGS_TMP}) + ELSE() + GLOBAL_APPEND(KOKKOS_COMPILE_OPTIONS ${COMPILER_SPECIFIC_FLAGS_TMP}) + ENDIF() + ENDIF() + + IF (PARSE_LINK_OPTIONS) + GLOBAL_APPEND(KOKKOS_LINK_OPTIONS ${COMPILER_SPECIFIC_FLAGS_TMP}) + ENDIF() + + IF (PARSE_COMPILE_DEFINITIONS) + GLOBAL_APPEND(KOKKOS_COMPILE_DEFINITIONS ${COMPILER_SPECIFIC_FLAGS_TMP}) + ENDIF() + + IF (PARSE_LINK_LIBRARIES) + GLOBAL_APPEND(KOKKOS_LINK_LIBRARIES ${COMPILER_SPECIFIC_FLAGS_TMP}) + ENDIF() +ENDFUNCTION(COMPILER_SPECIFIC_OPTIONS_HELPER) + +FUNCTION(COMPILER_SPECIFIC_FLAGS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_OPTIONS LINK_OPTIONS) +ENDFUNCTION(COMPILER_SPECIFIC_FLAGS) + +FUNCTION(COMPILER_SPECIFIC_DEFS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} COMPILE_DEFINITIONS) +ENDFUNCTION(COMPILER_SPECIFIC_DEFS) + +FUNCTION(COMPILER_SPECIFIC_LIBS) + COMPILER_SPECIFIC_OPTIONS_HELPER(${ARGN} LINK_LIBRARIES) +ENDFUNCTION(COMPILER_SPECIFIC_LIBS) diff --git a/lib/kokkos/cmake/kokkos_install.cmake b/lib/kokkos/cmake/kokkos_install.cmake index 1e4a5a2aad7e2dfd1eb7fd7d804fd175fef9d564..6a39590f036da00f133c0654cf99f0788d7e6075 100644 --- a/lib/kokkos/cmake/kokkos_install.cmake +++ b/lib/kokkos/cmake/kokkos_install.cmake @@ -31,12 +31,11 @@ IF (NOT KOKKOS_HAS_TRILINOS) ELSE() CONFIGURE_FILE(cmake/KokkosConfigCommon.cmake.in ${Kokkos_BINARY_DIR}/KokkosConfigCommon.cmake @ONLY) file(READ ${Kokkos_BINARY_DIR}/KokkosConfigCommon.cmake KOKKOS_CONFIG_COMMON) - file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/KokkosConfig_install.cmake" ${KOKKOS_CONFIG_COMMON}) + file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/KokkosConfig_install.cmake" "${KOKKOS_CONFIG_COMMON}") + CONFIGURE_FILE(cmake/KokkosTrilinosConfig.cmake.in ${Kokkos_BINARY_DIR}/KokkosTrilinosConfig.cmake @ONLY) + file(READ ${Kokkos_BINARY_DIR}/KokkosTrilinosConfig.cmake KOKKOS_TRILINOS_CONFIG) + file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/KokkosConfig_install.cmake" "${KOKKOS_TRILINOS_CONFIG}") ENDIF() -# build and install pkgconfig file -CONFIGURE_FILE(core/src/kokkos.pc.in kokkos.pc @ONLY) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/kokkos.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/KokkosCore_config.h DESTINATION ${KOKKOS_HEADER_DIR}) diff --git a/lib/kokkos/cmake/kokkos_test_cxx_std.cmake b/lib/kokkos/cmake/kokkos_test_cxx_std.cmake index c264517abe114bc306a19ca3459f584548506dd5..603b4b3d7aef3d48d86aa63b42c1e20dd3f25d04 100644 --- a/lib/kokkos/cmake/kokkos_test_cxx_std.cmake +++ b/lib/kokkos/cmake/kokkos_test_cxx_std.cmake @@ -14,12 +14,12 @@ FUNCTION(kokkos_set_cxx_standard_feature standard) ENDIF() ELSEIF(CMAKE_CXX_EXTENSIONS) IF(KOKKOS_DONT_ALLOW_EXTENSIONS) - MESSAGE(FATAL_ERROR "The chosen configuration does not support CXX extensions flags: ${KOKKOS_DONT_ALLOW_EXTENSIONS}. Must set CMAKE_CXX_EXTENSIONS=OFF to continue") + MESSAGE(FATAL_ERROR "The chosen configuration does not support CXX extensions flags: ${KOKKOS_DONT_ALLOW_EXTENSIONS}. Must set CMAKE_CXX_EXTENSIONS=OFF to continue") ELSE() GLOBAL_SET(KOKKOS_USE_CXX_EXTENSIONS ON) ENDIF() ELSE() - #For trilinos, we need to make sure downstream projects + #For trilinos, we need to make sure downstream projects GLOBAL_SET(KOKKOS_USE_CXX_EXTENSIONS OFF) ENDIF() @@ -29,6 +29,10 @@ FUNCTION(kokkos_set_cxx_standard_feature standard) ELSEIF(NOT KOKKOS_USE_CXX_EXTENSIONS AND ${STANDARD_NAME}) MESSAGE(STATUS "Using ${${STANDARD_NAME}} for C++${standard} standard as feature") GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) + ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + #MSVC doesn't need a command line flag, that doesn't mean it has no support + MESSAGE(STATUS "Using no flag for C++${standard} standard as feature") + GLOBAL_SET(KOKKOS_CXX_STANDARD_FEATURE ${FEATURE_NAME}) ELSE() #nope, we can't do anything here MESSAGE(WARNING "C++${standard} is not supported as a compiler feature. We will choose custom flags for now, but this behavior has been deprecated. Please open an issue at https://github.com/kokkos/kokkos/issues reporting that ${KOKKOS_CXX_COMPILER_ID} ${KOKKOS_CXX_COMPILER_VERSION} failed for ${KOKKOS_CXX_STANDARD}, preferrably including your CMake command.") @@ -119,6 +123,9 @@ IF (NOT KOKKOS_CXX_STANDARD_FEATURE) ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL Intel) INCLUDE(${KOKKOS_SRC_PATH}/cmake/intel.cmake) kokkos_set_intel_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) + ELSEIF(KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + INCLUDE(${KOKKOS_SRC_PATH}/cmake/msvc.cmake) + kokkos_set_msvc_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) ELSE() INCLUDE(${KOKKOS_SRC_PATH}/cmake/gnu.cmake) kokkos_set_gnu_flags(${KOKKOS_CXX_STANDARD} ${KOKKOS_CXX_INTERMEDIATE_STANDARD}) @@ -128,9 +135,9 @@ IF (NOT KOKKOS_CXX_STANDARD_FEATURE) IF (DEFINED CXX_STD_FLAGS_ACCEPTED) UNSET(CXX_STD_FLAGS_ACCEPTED CACHE) ENDIF() - CHECK_CXX_COMPILER_FLAG(${KOKKOS_CXX_STANDARD_FLAG} CXX_STD_FLAGS_ACCEPTED) + CHECK_CXX_COMPILER_FLAG("${KOKKOS_CXX_STANDARD_FLAG}" CXX_STD_FLAGS_ACCEPTED) IF (NOT CXX_STD_FLAGS_ACCEPTED) - CHECK_CXX_COMPILER_FLAG(${KOKKOS_CXX_INTERMEDIATE_STANDARD_FLAG} CXX_INT_STD_FLAGS_ACCEPTED) + CHECK_CXX_COMPILER_FLAG("${KOKKOS_CXX_INTERMEDIATE_STANDARD_FLAG}" CXX_INT_STD_FLAGS_ACCEPTED) IF (NOT CXX_INT_STD_FLAGS_ACCEPTED) MESSAGE(FATAL_ERROR "${KOKKOS_CXX_COMPILER_ID} did not accept ${KOKKOS_CXX_STANDARD_FLAG} or ${KOKKOS_CXX_INTERMEDIATE_STANDARD_FLAG}. You likely need to reduce the level of the C++ standard from ${KOKKOS_CXX_STANDARD}") ENDIF() diff --git a/lib/kokkos/cmake/kokkos_tpls.cmake b/lib/kokkos/cmake/kokkos_tpls.cmake index 181a497d52a0e5f579e4a5ffbe05c1c1591edc29..76efd428479424013aa346895458f99d084e9310 100644 --- a/lib/kokkos/cmake/kokkos_tpls.cmake +++ b/lib/kokkos/cmake/kokkos_tpls.cmake @@ -15,6 +15,10 @@ KOKKOS_TPL_OPTION(CUDA Off) KOKKOS_TPL_OPTION(LIBRT Off) KOKKOS_TPL_OPTION(LIBDL On) +IF(KOKKOS_ENABLE_PROFILING AND NOT KOKKOS_ENABLE_LIBDL) + MESSAGE(SEND_ERROR "Kokkos_ENABLE_PROFILING requires Kokkos_ENABLE_LIBDL=ON") +ENDIF() + IF(Trilinos_ENABLE_Kokkos AND TPL_ENABLE_HPX) SET(HPX_DEFAULT ON) ELSE() diff --git a/lib/kokkos/cmake/kokkos_tribits.cmake b/lib/kokkos/cmake/kokkos_tribits.cmake index d2317d2446ffdbf2626fff6117941af7510db865..1c3b704ada8eb8541694272ba88ed77c64302ba0 100644 --- a/lib/kokkos/cmake/kokkos_tribits.cmake +++ b/lib/kokkos/cmake/kokkos_tribits.cmake @@ -43,6 +43,8 @@ MACRO(KOKKOS_SUBPACKAGE NAME) SET(PACKAGE_NAME ${PACKAGE_NAME}${NAME}) STRING(TOUPPER ${PACKAGE_NAME} PACKAGE_NAME_UC) SET(${PACKAGE_NAME}_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + #ADD_INTERFACE_LIBRARY(PACKAGE_${PACKAGE_NAME}) + #GLOBAL_SET(${PACKAGE_NAME}_LIBS "") endif() ENDMACRO() @@ -114,57 +116,63 @@ MACRO(KOKKOS_INTERNAL_ADD_LIBRARY_INSTALL LIBRARY_NAME) VERIFY_EMPTY(KOKKOS_ADD_LIBRARY ${PARSE_UNPARSED_ARGUMENTS}) ENDMACRO() -FUNCTION(KOKKOS_ADD_EXECUTABLE EXE_NAME) +FUNCTION(KOKKOS_ADD_EXECUTABLE ROOT_NAME) if (KOKKOS_HAS_TRILINOS) - TRIBITS_ADD_EXECUTABLE(${EXE_NAME} ${ARGN}) + TRIBITS_ADD_EXECUTABLE(${ROOT_NAME} ${ARGN}) else() - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "TESTONLY" "" "SOURCES;TESTONLYLIBS" ${ARGN}) + SET(EXE_NAME ${PACKAGE_NAME}_${ROOT_NAME}) ADD_EXECUTABLE(${EXE_NAME} ${PARSE_SOURCES}) IF (PARSE_TESTONLYLIBS) - TARGET_LINK_LIBRARIES(${EXE_NAME} ${PARSE_TESTONLYLIBS}) + TARGET_LINK_LIBRARIES(${EXE_NAME} PRIVATE ${PARSE_TESTONLYLIBS}) ENDIF() VERIFY_EMPTY(KOKKOS_ADD_EXECUTABLE ${PARSE_UNPARSED_ARGUMENTS}) + #All executables must link to all the kokkos targets + #This is just private linkage because exe is final + TARGET_LINK_LIBRARIES(${EXE_NAME} PRIVATE kokkos) endif() ENDFUNCTION() -IF(NOT TARGET check) - ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} -VV -C ${CMAKE_CFG_INTDIR}) -ENDIF() - - FUNCTION(KOKKOS_ADD_EXECUTABLE_AND_TEST ROOT_NAME) IF (KOKKOS_HAS_TRILINOS) TRIBITS_ADD_EXECUTABLE_AND_TEST( - ${ROOT_NAME} - TESTONLYLIBS kokkos_gtest + ${ROOT_NAME} + TESTONLYLIBS kokkos_gtest ${ARGN} NUM_MPI_PROCS 1 COMM serial mpi FAIL_REGULAR_EXPRESSION " FAILED " ) ELSE() - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "" "" "SOURCES;CATEGORIES" ${ARGN}) VERIFY_EMPTY(KOKKOS_ADD_EXECUTABLE_AND_TEST ${PARSE_UNPARSED_ARGUMENTS}) - SET(EXE_NAME ${PACKAGE_NAME}_${ROOT_NAME}) - KOKKOS_ADD_TEST_EXECUTABLE(${EXE_NAME} + KOKKOS_ADD_TEST_EXECUTABLE(${ROOT_NAME} SOURCES ${PARSE_SOURCES} ) - KOKKOS_ADD_TEST(NAME ${ROOT_NAME} - EXE ${EXE_NAME} + KOKKOS_ADD_TEST(NAME ${ROOT_NAME} + EXE ${ROOT_NAME} FAIL_REGULAR_EXPRESSION " FAILED " ) ENDIF() ENDFUNCTION() +FUNCTION(KOKKOS_SET_EXE_PROPERTY ROOT_NAME) + SET(TARGET_NAME ${PACKAGE_NAME}_${ROOT_NAME}) + IF (NOT TARGET ${TARGET_NAME}) + MESSAGE(SEND_ERROR "No target ${TARGET_NAME} exists - cannot set target properties") + ENDIF() + SET_PROPERTY(TARGET ${TARGET_PROPERTY} PROPERTY ${ARGN}) +ENDFUNCTION() + MACRO(KOKKOS_SETUP_BUILD_ENVIRONMENT) INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_compiler_id.cmake) INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_enable_devices.cmake) @@ -178,20 +186,17 @@ MACRO(KOKKOS_SETUP_BUILD_ENVIRONMENT) INCLUDE(${KOKKOS_SRC_PATH}/cmake/kokkos_corner_cases.cmake) ENDMACRO() -MACRO(KOKKOS_ADD_TEST_EXECUTABLE EXE_NAME) - CMAKE_PARSE_ARGUMENTS(PARSE +MACRO(KOKKOS_ADD_TEST_EXECUTABLE ROOT_NAME) + CMAKE_PARSE_ARGUMENTS(PARSE "" "" "SOURCES" ${ARGN}) - KOKKOS_ADD_EXECUTABLE(${EXE_NAME} + KOKKOS_ADD_EXECUTABLE(${ROOT_NAME} SOURCES ${PARSE_SOURCES} ${PARSE_UNPARSED_ARGUMENTS} TESTONLYLIBS kokkos_gtest ) - IF (NOT KOKKOS_HAS_TRILINOS) - ADD_DEPENDENCIES(check ${EXE_NAME}) - ENDIF() ENDMACRO() MACRO(KOKKOS_PACKAGE_POSTPROCESS) @@ -201,7 +206,7 @@ MACRO(KOKKOS_PACKAGE_POSTPROCESS) ENDMACRO() FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "PLAIN_STYLE" "" "" @@ -230,6 +235,15 @@ FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) $<$:${KOKKOS_COMPILE_OPTIONS}> ) + TARGET_COMPILE_DEFINITIONS( + ${LIBRARY_NAME} PUBLIC + $<$:${KOKKOS_COMPILE_DEFINITIONS}> + ) + + TARGET_LINK_LIBRARIES( + ${LIBRARY_NAME} PUBLIC ${KOKKOS_LINK_LIBRARIES} + ) + IF (KOKKOS_ENABLE_CUDA) TARGET_COMPILE_OPTIONS( ${LIBRARY_NAME} @@ -240,11 +254,18 @@ FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) LIST(APPEND NODEDUP_CUDAFE_OPTIONS -Xcudafe ${OPT}) ENDFOREACH() TARGET_COMPILE_OPTIONS( - ${LIBRARY_NAME} + ${LIBRARY_NAME} PUBLIC $<$:${NODEDUP_CUDAFE_OPTIONS}> ) ENDIF() + IF (KOKKOS_ENABLE_HIP) + TARGET_COMPILE_OPTIONS( + ${LIBRARY_NAME} + PUBLIC $<$:${KOKKOS_AMDGPU_OPTIONS}> + ) + ENDIF() + LIST(LENGTH KOKKOS_XCOMPILER_OPTIONS XOPT_LENGTH) IF (XOPT_LENGTH GREATER 1) MESSAGE(FATAL_ERROR "CMake deduplication does not allow multiple -Xcompiler flags (${KOKKOS_XCOMPILER_OPTIONS}): will require Kokkos to upgrade to minimum 3.12") @@ -253,12 +274,12 @@ FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) SET(NODEDUP_XCOMPILER_OPTIONS) FOREACH(OPT ${KOKKOS_XCOMPILER_OPTIONS}) #I have to do this for now because we can't guarantee 3.12 support - #I really should do this with the shell option - LIST(APPEND NODEDUP_XCOMPILER_OPTIONS -Xcompiler) - LIST(APPEND NODEDUP_XCOMPILER_OPTIONS ${OPT}) + #I really should do this with the shell option + LIST(APPEND NODEDUP_XCOMPILER_OPTIONS -Xcompiler) + LIST(APPEND NODEDUP_XCOMPILER_OPTIONS ${OPT}) ENDFOREACH() TARGET_COMPILE_OPTIONS( - ${LIBRARY_NAME} + ${LIBRARY_NAME} PUBLIC $<$:${NODEDUP_XCOMPILER_OPTIONS}> ) ENDIF() @@ -276,7 +297,7 @@ FUNCTION(KOKKOS_SET_LIBRARY_PROPERTIES LIBRARY_NAME) ENDFUNCTION() FUNCTION(KOKKOS_INTERNAL_ADD_LIBRARY LIBRARY_NAME) - CMAKE_PARSE_ARGUMENTS(PARSE + CMAKE_PARSE_ARGUMENTS(PARSE "STATIC;SHARED" "" "HEADERS;SOURCES" @@ -362,7 +383,7 @@ FUNCTION(KOKKOS_LIB_INCLUDE_DIRECTORIES TARGET) #ignore the target, tribits doesn't do anything directly with targets TRIBITS_INCLUDE_DIRECTORIES(${ARGN}) ELSE() #append to a list for later - KOKKOS_LIB_TYPE(${TARGET} INCTYPE) + KOKKOS_LIB_TYPE(${TARGET} INCTYPE) FOREACH(DIR ${ARGN}) TARGET_INCLUDE_DIRECTORIES(${TARGET} ${INCTYPE} $) ENDFOREACH() @@ -390,3 +411,15 @@ MACRO(KOKKOS_ADD_TEST_DIRECTORIES) ENDIF() ENDIF() ENDMACRO() + +MACRO(KOKKOS_ADD_EXAMPLE_DIRECTORIES) + if (KOKKOS_HAS_TRILINOS) + TRIBITS_ADD_EXAMPLE_DIRECTORIES(${ARGN}) + else() + IF(KOKKOS_ENABLE_EXAMPLES) + FOREACH(EXAMPLE_DIR ${ARGN}) + ADD_SUBDIRECTORY(${EXAMPLE_DIR}) + ENDFOREACH() + ENDIF() + endif() +ENDMACRO() diff --git a/lib/kokkos/cmake/msvc.cmake b/lib/kokkos/cmake/msvc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..85421bdbaaa46dd5d671f4e86b50d52b25d98d30 --- /dev/null +++ b/lib/kokkos/cmake/msvc.cmake @@ -0,0 +1,11 @@ + +FUNCTION(kokkos_set_msvc_flags full_standard int_standard) + IF (CMAKE_CXX_EXTENSIONS) + SET(KOKKOS_CXX_STANDARD_FLAG "" PARENT_SCOPE) + SET(KOKKOS_CXX_INTERMEDIATE_STANDARD_FLAG "" PARENT_SCOPE) + ELSE() + SET(KOKKOS_CXX_STANDARD_FLAG "" PARENT_SCOPE) + SET(KOKKOS_CXX_INTERMEDIATE_STANDARD_FLAG "" PARENT_SCOPE) + ENDIF() +ENDFUNCTION() + diff --git a/lib/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake b/lib/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake index b8cee04804cd6cbfdb475b2631c1b1beddfa7b41..a59868b73bc203f69d992b3a19f569a20b359761 100644 --- a/lib/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake +++ b/lib/kokkos/cmake/tpls/FindTPLCUSPARSE.cmake @@ -55,19 +55,9 @@ # Check for CUDA support -IF (NOT TPL_ENABLE_CUDA OR CUDA_VERSION VERSION_LESS "4.1") - MESSAGE(FATAL_ERROR "\nCUSPARSE: did not find acceptable version of CUDA libraries (4.1 or greater)") +IF (NOT TPL_ENABLE_CUDA) + MESSAGE(FATAL_ERROR "\nCUSPARSE requires CUDA") ELSE() - IF(CMAKE_VERSION VERSION_LESS "2.8.8") - # FindCUDA before CMake 2.8.8 does not find cusparse library; therefore, we must - find_library(CUDA_cusparse_LIBRARY - cusparse - HINTS ${CUDA_TOOLKIT_ROOT_DIR}/lib - ) - IF(CUDA_cusparse_LIBRARY STREQUAL "CUDA_cusparse_LIBRARY-NOTFOUND") - MESSAGE(FATAL_ERROR "\nCUSPARSE: could not find cuspasre library.") - ENDIF() - ENDIF() GLOBAL_SET(TPL_CUSPARSE_LIBRARY_DIRS) GLOBAL_SET(TPL_CUSPARSE_INCLUDE_DIRS ${TPL_CUDA_INCLUDE_DIRS}) GLOBAL_SET(TPL_CUSPARSE_LIBRARIES ${CUDA_cusparse_LIBRARY}) diff --git a/lib/kokkos/config/test_all_sandia b/lib/kokkos/config/test_all_sandia index d94c38cbc698be3f54e3c82b47faa3561c03f520..193a162a4e6e385db674d7b3410fe39f81d4e648 100755 --- a/lib/kokkos/config/test_all_sandia +++ b/lib/kokkos/config/test_all_sandia @@ -76,19 +76,18 @@ CLANG_BUILD_LIST="Pthread,Serial,Pthread_Serial" CUDA_BUILD_LIST="Cuda_OpenMP,Cuda_Pthread,Cuda_Serial" CUDA_IBM_BUILD_LIST="Cuda_OpenMP,Cuda_Serial" -GCC_WARNING_FLAGS="-Wall,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wignored-qualifiers,-Wempty-body,-Wclobbered,-Wuninitialized" -IBM_WARNING_FLAGS="-Wall,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" -CLANG_WARNING_FLAGS="-Wall,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" -INTEL_WARNING_FLAGS="-Wall,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" -#CUDA_WARNING_FLAGS="-Wall,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" -CUDA_WARNING_FLAGS="-Wall,-Wshadow,-pedantic,-Wsign-compare,-Wtype-limits,-Wuninitialized" +GCC_WARNING_FLAGS="-Wall,-Wunused-parameter,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wignored-qualifiers,-Wempty-body,-Wclobbered,-Wuninitialized" +IBM_WARNING_FLAGS="-Wall,-Wunused-parameter,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" +CLANG_WARNING_FLAGS="-Wall,-Wunused-parameter,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" +INTEL_WARNING_FLAGS="-Wall,-Wunused-parameter,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" +#CUDA_WARNING_FLAGS="-Wall,-Wunused-parameter,-Wshadow,-pedantic,-Werror,-Wsign-compare,-Wtype-limits,-Wuninitialized" +CUDA_WARNING_FLAGS="-Wall,-Wunused-parameter,-Wshadow,-pedantic,-Wsign-compare,-Wtype-limits,-Wuninitialized" PGI_WARNING_FLAGS="" # Default. Machine specific can override. DEBUG=False ARGS="" CUSTOM_BUILD_LIST="" -QTHREADS_PATH="" DRYRUN=False BUILD_ONLY=False declare -i NUM_JOBS_TO_RUN_IN_PARALLEL=1 @@ -114,9 +113,6 @@ do --kokkos-path*) KOKKOS_PATH="${key#*=}" ;; - --qthreads-path*) - QTHREADS_PATH="${key#*=}" - ;; --build-list*) CUSTOM_BUILD_LIST="${key#*=}" ;; @@ -417,8 +413,8 @@ if [ "$PRINT_HELP" = "True" ]; then echo "--build-list=BUILD,BUILD,BUILD..." echo " Provide a comma-separated list of builds instead of running all builds" echo " Valid items:" - echo " OpenMP, Pthread, Qthreads, Serial, OpenMP_Serial, Pthread_Serial" - echo " Qthreads_Serial, Cuda_OpenMP, Cuda_Pthread, Cuda_Serial" + echo " OpenMP, Pthread, Serial, OpenMP_Serial, Pthread_Serial" + echo " Cuda_OpenMP, Cuda_Pthread, Cuda_Serial" echo "" echo "ARGS: list of expressions matching compilers to test" @@ -483,33 +479,6 @@ for ARG in $ARGS; do done done -# Check if Qthreads build requested. -HAVE_QTHREADS_BUILD="False" -if [ -n "$CUSTOM_BUILD_LIST" ]; then - if [[ "$CUSTOM_BUILD_LIST" = *Qthreads* ]]; then - HAVE_QTHREADS_BUILD="True" - fi -else - for COMPILER_DATA in "${COMPILERS[@]}"; do - ARR=($COMPILER_DATA) - BUILD_LIST=${ARR[2]} - if [[ "$BUILD_LIST" = *Qthreads* ]]; then - HAVE_QTHREADS_BUILD="True" - fi - done -fi - -# Ensure Qthreads path is set if Qthreads build is requested. -if [ "$HAVE_QTHREADS_BUILD" = "True" ]; then - if [ -z "$QTHREADS_PATH" ]; then - echo "Need to supply Qthreads path (--qthreads-path) when testing Qthreads backend." >&2 - exit 1 - else - # Strip trailing slashes from path. - QTHREADS_PATH=$(echo $QTHREADS_PATH | sed 's/\/*$//') - fi -fi - # # Functions. # @@ -627,14 +596,6 @@ single_build_and_test() { local extra_args=--with-hwloc=$(dirname $(dirname $(which hwloc-info))) fi - if [[ "$build" = *Qthreads* ]]; then - if [[ "$build_type" = hwloc* ]]; then - local extra_args="$extra_args --qthreads-path=${QTHREADS_PATH}_hwloc" - else - local extra_args="$extra_args --qthreads-path=$QTHREADS_PATH" - fi - fi - if [[ "$OPT_FLAG" = "" ]]; then OPT_FLAG="-O3" fi diff --git a/lib/kokkos/containers/performance_tests/CMakeLists.txt b/lib/kokkos/containers/performance_tests/CMakeLists.txt index ca76808190d43be58fccd9bceb58b9faaa7fc167..1011cb8fd17eb44bbe5edd3e616af74eef1299b2 100644 --- a/lib/kokkos/containers/performance_tests/CMakeLists.txt +++ b/lib/kokkos/containers/performance_tests/CMakeLists.txt @@ -5,58 +5,42 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../src ) IF(Kokkos_ENABLE_CUDA) SET(SOURCES - TestMain.cpp + TestMain.cpp TestCuda.cpp ) - KOKKOS_ADD_TEST_EXECUTABLE( PerfTestExec_Cuda + KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_Cuda SOURCES ${SOURCES} ) - - KOKKOS_ADD_TEST( NAME PerformanceTest_Cuda - EXE PerfTestExec_Cuda - ) ENDIF() IF(Kokkos_ENABLE_PTHREAD) SET(SOURCES - TestMain.cpp + TestMain.cpp TestThreads.cpp ) - KOKKOS_ADD_TEST_EXECUTABLE( PerfTestExec_Threads + KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_Threads SOURCES ${SOURCES} ) - - KOKKOS_ADD_TEST( NAME PerformanceTest_Threads - EXE PerfTestExec_Threads - ) ENDIF() IF(Kokkos_ENABLE_OPENMP) SET(SOURCES - TestMain.cpp + TestMain.cpp TestOpenMP.cpp ) - KOKKOS_ADD_TEST_EXECUTABLE( PerfTestExec_OpenMP + KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_OpenMP SOURCES ${SOURCES} ) - - KOKKOS_ADD_TEST( NAME PerformanceTest_OpenMP - EXE PerfTestExec_OpenMP - ) ENDIF() IF(Kokkos_ENABLE_HPX) SET(SOURCES - TestMain.cpp + TestMain.cpp TestHPX.cpp ) - KOKKOS_ADD_TEST_EXECUTABLE( PerfTestExec_HPX + KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_HPX SOURCES ${SOURCES} ) - - KOKKOS_ADD_TEST( NAME PerformanceTest_HPX - EXE PerfTestExec_HPX - ) ENDIF() diff --git a/lib/kokkos/containers/src/Kokkos_Bitset.hpp b/lib/kokkos/containers/src/Kokkos_Bitset.hpp index 3596c7653ac1de08f748ef35de2070af4f16630f..ab75fc1e1d006e31c0efce756e85f4354f0c5588 100644 --- a/lib/kokkos/containers/src/Kokkos_Bitset.hpp +++ b/lib/kokkos/containers/src/Kokkos_Bitset.hpp @@ -103,19 +103,19 @@ class Bitset { } } - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION Bitset(const Bitset&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION Bitset& operator=(const Bitset&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION Bitset(Bitset&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION Bitset& operator=(Bitset&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~Bitset() = default; /// number of bits in the set diff --git a/lib/kokkos/containers/src/Kokkos_DualView.hpp b/lib/kokkos/containers/src/Kokkos_DualView.hpp index d8a3ebc1ae947b6ef617d106de8d954ca4bfbc77..ede7d9a31f045a6346f41401d283f94a54675904 100644 --- a/lib/kokkos/containers/src/Kokkos_DualView.hpp +++ b/lib/kokkos/containers/src/Kokkos_DualView.hpp @@ -238,6 +238,53 @@ class DualView : public ViewTraits { #endif } + /// \brief Constructor that allocates View objects on both host and device. + /// + /// This constructor works like the analogous constructor of View. + /// The first arguments are wrapped up in a ViewCtor class, this allows + /// for a label, without initializing, and all of the other things that can + /// be wrapped up in a Ctor class. + /// The arguments that follow are the dimensions of the + /// View objects. For example, if the View has three dimensions, + /// the first three integer arguments will be nonzero, and you may + /// omit the integer arguments that follow. + template + DualView(const Impl::ViewCtorProp& arg_prop, + typename std::enable_if::has_pointer, + size_t>::type const n0 = + KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n1 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n2 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n3 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n4 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) + : d_view(arg_prop, n0, n1, n2, n3, n4, n5, n6, n7), + h_view(create_mirror_view(d_view)) // without UVM, host View mirrors + , + modified_flags(t_modified_flags("DualView::modified_flags")) { +#ifdef KOKKOS_ENABLE_DEPRECATED_CODE + modified_host = t_modified_flag(modified_flags, 0); + modified_device = t_modified_flag(modified_flags, 1); +#endif + } + + explicit inline DualView(const ViewAllocateWithoutInitializing& arg_prop, + const size_t arg_N0 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N1 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N2 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N3 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N4 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, + const size_t arg_N7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) + : DualView(Impl::ViewCtorProp( + arg_prop.label, Kokkos::WithoutInitializing), + arg_N0, arg_N1, arg_N2, arg_N3, arg_N4, arg_N5, arg_N6, + arg_N7) {} + //! Copy constructor (shallow copy) template DualView(const DualView& src) @@ -470,23 +517,43 @@ class DualView : public ViewTraits { /// as modified, by calling the modify() method with the /// appropriate template parameter. template - void sync(const typename Impl::enable_if< + void sync(const typename std::enable_if< (std::is_same::value) || (std::is_same::value), int>::type& = 0) { - if (modified_flags.data() == NULL) return; + if (modified_flags.data() == nullptr) return; int dev = get_device_side(); if (dev == 1) { // if Device is the same as DualView's device type if ((modified_flags(0) > 0) && (modified_flags(0) >= modified_flags(1))) { +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + if (d_view.data() == h_view.data()) + Kokkos::Impl::cuda_prefetch_pointer( + Kokkos::Cuda(), d_view.data(), + sizeof(typename t_dev::value_type) * d_view.span(), true); + } +#endif + deep_copy(d_view, h_view); modified_flags(0) = modified_flags(1) = 0; } } if (dev == 0) { // hopefully Device is the same as DualView's host type if ((modified_flags(1) > 0) && (modified_flags(1) >= modified_flags(0))) { +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + if (d_view.data() == h_view.data()) + Kokkos::Impl::cuda_prefetch_pointer( + Kokkos::Cuda(), d_view.data(), + sizeof(typename t_dev::value_type) * d_view.span(), false); + } +#endif + deep_copy(h_view, d_view); modified_flags(0) = modified_flags(1) = 0; } @@ -499,12 +566,12 @@ class DualView : public ViewTraits { } template - void sync(const typename Impl::enable_if< + void sync(const typename std::enable_if< (!std::is_same::value) || (std::is_same::value), int>::type& = 0) { - if (modified_flags.data() == NULL) return; + if (modified_flags.data() == nullptr) return; int dev = get_device_side(); @@ -527,8 +594,18 @@ class DualView : public ViewTraits { typename traits::non_const_data_type>::value) Impl::throw_runtime_exception( "Calling sync_host on a DualView with a const datatype."); - if (modified_flags.data() == NULL) return; + if (modified_flags.data() == nullptr) return; if (modified_flags(1) > modified_flags(0)) { +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + if (d_view.data() == h_view.data()) + Kokkos::Impl::cuda_prefetch_pointer( + Kokkos::Cuda(), d_view.data(), + sizeof(typename t_dev::value_type) * d_view.span(), false); + } +#endif + deep_copy(h_view, d_view); modified_flags(1) = modified_flags(0) = 0; } @@ -539,8 +616,18 @@ class DualView : public ViewTraits { typename traits::non_const_data_type>::value) Impl::throw_runtime_exception( "Calling sync_device on a DualView with a const datatype."); - if (modified_flags.data() == NULL) return; + if (modified_flags.data() == nullptr) return; if (modified_flags(0) > modified_flags(1)) { +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + if (d_view.data() == h_view.data()) + Kokkos::Impl::cuda_prefetch_pointer( + Kokkos::Cuda(), d_view.data(), + sizeof(typename t_dev::value_type) * d_view.span(), true); + } +#endif + deep_copy(d_view, h_view); modified_flags(1) = modified_flags(0) = 0; } @@ -548,7 +635,7 @@ class DualView : public ViewTraits { template bool need_sync() const { - if (modified_flags.data() == NULL) return false; + if (modified_flags.data() == nullptr) return false; int dev = get_device_side(); if (dev == 1) { // if Device is the same as DualView's device type @@ -565,12 +652,12 @@ class DualView : public ViewTraits { } inline bool need_sync_host() const { - if (modified_flags.data() == NULL) return false; + if (modified_flags.data() == nullptr) return false; return modified_flags(0) < modified_flags(1); } inline bool need_sync_device() const { - if (modified_flags.data() == NULL) return false; + if (modified_flags.data() == nullptr) return false; return modified_flags(1) < modified_flags(0); } @@ -581,7 +668,7 @@ class DualView : public ViewTraits { /// data as modified. template void modify() { - if (modified_flags.data() == NULL) return; + if (modified_flags.data() == nullptr) return; int dev = get_device_side(); if (dev == 1) { // if Device is the same as DualView's device type @@ -612,7 +699,7 @@ class DualView : public ViewTraits { } inline void modify_host() { - if (modified_flags.data() != NULL) { + if (modified_flags.data() != nullptr) { modified_flags(0) = (modified_flags(1) > modified_flags(0) ? modified_flags(1) : modified_flags(0)) + @@ -631,7 +718,7 @@ class DualView : public ViewTraits { } inline void modify_device() { - if (modified_flags.data() != NULL) { + if (modified_flags.data() != nullptr) { modified_flags(1) = (modified_flags(1) > modified_flags(0) ? modified_flags(1) : modified_flags(0)) + @@ -650,7 +737,7 @@ class DualView : public ViewTraits { } inline void clear_sync_state() { - if (modified_flags.data() != NULL) + if (modified_flags.data() != nullptr) modified_flags(1) = modified_flags(0) = 0; } @@ -675,7 +762,7 @@ class DualView : public ViewTraits { h_view = create_mirror_view(d_view); /* Reset dirty flags */ - if (modified_flags.data() == NULL) { + if (modified_flags.data() == nullptr) { modified_flags = t_modified_flags("DualView::modified_flags"); } else modified_flags(1) = modified_flags(0) = 0; @@ -693,7 +780,7 @@ class DualView : public ViewTraits { const size_t n5 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n6 = KOKKOS_IMPL_CTOR_DEFAULT_ARG, const size_t n7 = KOKKOS_IMPL_CTOR_DEFAULT_ARG) { - if (modified_flags.data() == NULL) { + if (modified_flags.data() == nullptr) { modified_flags = t_modified_flags("DualView::modified_flags"); } if (modified_flags(1) >= modified_flags(0)) { @@ -866,4 +953,27 @@ void deep_copy( } // namespace Kokkos +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { + +// +// Non-member resize and realloc +// + +template +void resize(DualView& dv, Args&&... args) noexcept( + noexcept(dv.resize(std::forward(args)...))) { + dv.resize(std::forward(args)...); +} + +template +void realloc(DualView& dv, Args&&... args) noexcept( + noexcept(dv.realloc(std::forward(args)...))) { + dv.realloc(std::forward(args)...); +} + +} // end namespace Kokkos + #endif diff --git a/lib/kokkos/containers/src/Kokkos_DynRankView.hpp b/lib/kokkos/containers/src/Kokkos_DynRankView.hpp index 0ceb9d5d397e77fcfc8ef0a119e99cd6386a184b..4ab212d7b9a9237c5c45f9d3713dffd28a0d147d 100644 --- a/lib/kokkos/containers/src/Kokkos_DynRankView.hpp +++ b/lib/kokkos/containers/src/Kokkos_DynRankView.hpp @@ -293,6 +293,7 @@ KOKKOS_INLINE_FUNCTION void dyn_rank_view_verify_operator_bounds( dyn_rank_view_error_operator_bounds<0>(buffer + n, LEN - n, map, args...); Kokkos::Impl::throw_runtime_exception(std::string(buffer)); #else + (void)tracker; Kokkos::abort("DynRankView bounds error"); #endif } @@ -1065,8 +1066,8 @@ class DynRankView : public ViewTraits { //---------------------------------------- // Standard constructor, destructor, and assignment operators... - KOKKOS_INLINE_FUNCTION - ~DynRankView() {} + KOKKOS_DEFAULTED_FUNCTION + ~DynRankView() = default; KOKKOS_INLINE_FUNCTION DynRankView() : m_track(), m_map(), m_rank() {} // Default ctor @@ -1773,7 +1774,7 @@ struct DynRankViewRemap { const Kokkos::Impl::ParallelFor closure( *this, Policy(0, n0)); closure.execute(); - // Kokkos::fence(); // ?? + // ExecSpace().fence(); // ?? } KOKKOS_INLINE_FUNCTION @@ -1806,7 +1807,8 @@ inline void deep_copy( const DynRankView& dst, typename ViewTraits::const_value_type& value, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { static_assert( std::is_same::non_const_value_type, typename ViewTraits::value_type>::value, @@ -1843,7 +1845,7 @@ inline void deep_copy( (std::is_same::value && std::is_same::value && (Kokkos::is_dyn_rank_view::value || - Kokkos::is_dyn_rank_view::value))>::type* = 0) { + Kokkos::is_dyn_rank_view::value))>::type* = nullptr) { static_assert( std::is_same::value, @@ -2009,7 +2011,7 @@ inline typename DynRankView::HostMirror create_mirror( typename std::enable_if< std::is_same::specialize, void>::value && !std::is_same::array_layout, - Kokkos::LayoutStride>::value>::type* = 0) { + Kokkos::LayoutStride>::value>::type* = nullptr) { typedef DynRankView src_type; typedef typename src_type::HostMirror dst_type; @@ -2036,7 +2038,8 @@ template typename Impl::MirrorDRVType::view_type create_mirror( const Space&, const Kokkos::DynRankView& src, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { return typename Impl::MirrorDRVType::view_type( src.label(), Impl::reconstructLayout(src.layout(), src.rank())); } @@ -2050,7 +2053,7 @@ inline typename DynRankView::HostMirror create_mirror_view( typename DynRankView::HostMirror::memory_space>::value && std::is_same::data_type, typename DynRankView::HostMirror::data_type>:: - value)>::type* = 0) { + value)>::type* = nullptr) { return src; } @@ -2072,7 +2075,8 @@ template typename Impl::MirrorDRViewType::view_type create_mirror_view( const Space&, const Kokkos::DynRankView& src, typename std::enable_if< - Impl::MirrorDRViewType::is_same_memspace>::type* = 0) { + Impl::MirrorDRViewType::is_same_memspace>::type* = + nullptr) { return src; } @@ -2094,7 +2098,8 @@ create_mirror_view_and_copy( const Space&, const Kokkos::DynRankView& src, std::string const& name = "", typename std::enable_if< - Impl::MirrorDRViewType::is_same_memspace>::type* = 0) { + Impl::MirrorDRViewType::is_same_memspace>::type* = + nullptr) { (void)name; return src; } @@ -2139,7 +2144,7 @@ inline void resize(DynRankView& v, static_assert(Kokkos::ViewTraits::is_managed, "Can only resize managed views"); - drview_type v_resized(v.label(), n0, n1, n2, n3, n4, n5, n6); + drview_type v_resized(v.label(), n0, n1, n2, n3, n4, n5, n6, n7); Kokkos::Impl::DynRankViewRemap(v_resized, v); @@ -2166,7 +2171,7 @@ inline void realloc(DynRankView& v, const std::string label = v.label(); v = drview_type(); // Deallocate first, if the only view to allocation - v = drview_type(label, n0, n1, n2, n3, n4, n5, n6); + v = drview_type(label, n0, n1, n2, n3, n4, n5, n6, n7); } } // namespace Kokkos diff --git a/lib/kokkos/containers/src/Kokkos_DynamicView.hpp b/lib/kokkos/containers/src/Kokkos_DynamicView.hpp index 35a64d164fa10055f3de165939581c83fe5bf97f..ebbbcc5e8ca841d6406473cd8a0e402a524f39b1 100644 --- a/lib/kokkos/containers/src/Kokkos_DynamicView.hpp +++ b/lib/kokkos/containers/src/Kokkos_DynamicView.hpp @@ -70,10 +70,10 @@ struct ChunkArraySpace { using memory_space = typename Kokkos::CudaUVMSpace; }; #endif -#ifdef KOKKOS_ENABLE_ROCM +#ifdef KOKKOS_ENABLE_HIP template <> -struct ChunkArraySpace { - using memory_space = typename Kokkos::Experimental::ROCmHostPinnedSpace; +struct ChunkArraySpace { + using memory_space = typename Kokkos::Experimental::HIPHostPinnedSpace; }; #endif } // end namespace Impl @@ -248,8 +248,8 @@ class DynamicView : public Kokkos::ViewTraits { //---------------------------------------- template - KOKKOS_INLINE_FUNCTION reference_type operator()(const I0& i0, - const Args&... args) const { + KOKKOS_INLINE_FUNCTION reference_type + operator()(const I0& i0, const Args&... /*args*/) const { static_assert(Kokkos::Impl::are_integral::value, "Indices must be integral type"); @@ -265,7 +265,7 @@ class DynamicView : public Kokkos::ViewTraits { // If not bounds checking then we assume a non-zero pointer is valid. #if !defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) - if (0 == *ch) + if (nullptr == *ch) #endif { // Verify that allocation of the requested chunk in in progress. @@ -280,7 +280,7 @@ class DynamicView : public Kokkos::ViewTraits { // Allocation of this chunk is in progress // so wait for allocation to complete. - while (0 == *ch) + while (nullptr == *ch) ; } @@ -325,7 +325,7 @@ class DynamicView : public Kokkos::ViewTraits { --*pc; typename traits::memory_space().deallocate( m_chunks[*pc], sizeof(local_value_type) << m_chunk_shift); - m_chunks[*pc] = 0; + m_chunks[*pc] = nullptr; } } // *m_chunks[m_chunk_max+1] stores the 'extent' requested by resize @@ -366,10 +366,10 @@ class DynamicView : public Kokkos::ViewTraits { // Initialize or destroy array of chunk pointers. // Two entries beyond the max chunks are allocation counters. inline void operator()(unsigned i) const { - if (m_destroy && i < m_chunk_max && 0 != m_chunks[i]) { + if (m_destroy && i < m_chunk_max && nullptr != m_chunks[i]) { typename traits::memory_space().deallocate(m_chunks[i], m_chunk_size); } - m_chunks[i] = 0; + m_chunks[i] = nullptr; } void execute(bool arg_destroy) { @@ -419,7 +419,7 @@ class DynamicView : public Kokkos::ViewTraits { const unsigned min_chunk_size, const unsigned max_extent) : m_track(), - m_chunks(0) + m_chunks(nullptr) // The chunk size is guaranteed to be a power of two , m_chunk_shift(Kokkos::Impl::integral_power_of_two_that_contains( @@ -528,7 +528,7 @@ struct CommonSubview, typedef SrcType src_subview_type; dst_subview_type dst_sub; src_subview_type src_sub; - CommonSubview(const DstType& dst, const SrcType& src, const Arg0& arg0) + CommonSubview(const DstType& dst, const SrcType& src, const Arg0& /*arg0*/) : dst_sub(dst), src_sub(src) {} }; diff --git a/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp b/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp index 25335771e4cced618e960dad39da90a9acebf56e..e07c386b7d9c027e426dd61933a1adddce4cf2ce 100644 --- a/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp +++ b/lib/kokkos/containers/src/Kokkos_ErrorReporter.hpp @@ -187,7 +187,7 @@ template void ErrorReporter::resize(const size_t new_size) { m_reports.resize(new_size); m_reporters.resize(new_size); - Kokkos::fence(); + typename DeviceType::execution_space().fence(); } } // namespace Experimental diff --git a/lib/kokkos/containers/src/Kokkos_OffsetView.hpp b/lib/kokkos/containers/src/Kokkos_OffsetView.hpp index a1fe793cc5447c1436a9b455f4ede5eab9a59367..c3c66f0d7f6999b9ec3500624577652359b4c074 100644 --- a/lib/kokkos/containers/src/Kokkos_OffsetView.hpp +++ b/lib/kokkos/containers/src/Kokkos_OffsetView.hpp @@ -362,19 +362,18 @@ class OffsetView : public ViewTraits { //---------------------------------------- private: - enum { - is_layout_left = - std::is_same::value, + static constexpr bool is_layout_left = + std::is_same::value; - is_layout_right = - std::is_same::value, + static constexpr bool is_layout_right = + std::is_same::value; - is_layout_stride = std::is_same::value, + static constexpr bool is_layout_stride = + std::is_same::value; - is_default_map = std::is_same::value && - (is_layout_left || is_layout_right || is_layout_stride) - }; + static constexpr bool is_default_map = + std::is_same::value && + (is_layout_left || is_layout_right || is_layout_stride); template ::accessible> @@ -804,8 +803,8 @@ class OffsetView : public ViewTraits { //---------------------------------------- // Standard destructor, constructors, and assignment operators - KOKKOS_INLINE_FUNCTION - ~OffsetView() {} + KOKKOS_DEFAULTED_FUNCTION + ~OffsetView() = default; KOKKOS_INLINE_FUNCTION OffsetView() : m_track(), m_map() { @@ -1317,7 +1316,7 @@ KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION Kokkos::Impl::ALL_t shift_input(const Kokkos::Impl::ALL_t arg, - const int64_t offset) { + const int64_t /*offset*/) { return arg; } @@ -1347,9 +1346,9 @@ KOKKOS_INLINE_FUNCTION void map_arg_to_new_begin( template KOKKOS_INLINE_FUNCTION void map_arg_to_new_begin( - const size_t i, Kokkos::Array& subviewBegins, - typename std::enable_if::type shiftedArg, const Arg arg, - const A viewBegins, size_t& counter) {} + const size_t /*i*/, Kokkos::Array& /*subviewBegins*/, + typename std::enable_if::type /*shiftedArg*/, + const Arg /*arg*/, const A /*viewBegins*/, size_t& /*counter*/) {} template KOKKOS_INLINE_FUNCTION @@ -1832,7 +1831,8 @@ inline void deep_copy( const OffsetView& dst, typename ViewTraits::const_value_type& value, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { static_assert( std::is_same::non_const_value_type, typename ViewTraits::value_type>::value, @@ -1846,7 +1846,8 @@ template inline void deep_copy( const OffsetView& dst, const OffsetView& value, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { static_assert( std::is_same::value_type, typename ViewTraits::non_const_value_type>::value, @@ -1859,7 +1860,8 @@ template inline void deep_copy( const OffsetView& dst, const View& value, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { static_assert( std::is_same::value_type, typename ViewTraits::non_const_value_type>::value, @@ -1873,7 +1875,8 @@ template inline void deep_copy( const View& dst, const OffsetView& value, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { static_assert( std::is_same::value_type, typename ViewTraits::non_const_value_type>::value, @@ -2011,7 +2014,7 @@ create_mirror_view( std::is_same< typename Kokkos::Experimental::OffsetView::data_type, typename Kokkos::Experimental::OffsetView< - T, P...>::HostMirror::data_type>::value)>::type* = 0) { + T, P...>::HostMirror::data_type>::value)>::type* = nullptr) { return src; } diff --git a/lib/kokkos/containers/src/Kokkos_ScatterView.hpp b/lib/kokkos/containers/src/Kokkos_ScatterView.hpp index ec3a9663259c15c9cb27b736af3749dc79edcb94..eb3bc1f2bcd0a217e067906915a62a210f5047d1 100644 --- a/lib/kokkos/containers/src/Kokkos_ScatterView.hpp +++ b/lib/kokkos/containers/src/Kokkos_ScatterView.hpp @@ -171,24 +171,41 @@ struct DefaultContribution +struct DefaultDuplication { + enum : int { value = Kokkos::Experimental::ScatterNonDuplicated }; +}; +template <> +struct DefaultContribution { + enum : int { value = Kokkos::Experimental::ScatterAtomic }; +}; +template <> +struct DefaultContribution { + enum : int { value = Kokkos::Experimental::ScatterAtomic }; +}; +#endif + /* ScatterValue is the object returned by the access operator() of ScatterAccess, This class inherits from the Sum<> reducer and it wraps join(dest, src) with convenient operator+=, etc. Note the addition of update(ValueType const& rhs) and reset() so that all reducers can have common functions See ReduceDuplicates and ResetDuplicates ) */ -template +template struct ScatterValue; -template -struct ScatterValue +struct ScatterValue - : Sum { + : Sum { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Sum(value_in) {} + : Sum(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Sum(other.reference()) {} + : Sum(other.reference()) {} KOKKOS_FORCEINLINE_FUNCTION void operator+=(ValueType const& rhs) { this->join(this->reference(), rhs); } @@ -206,13 +223,13 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Sum { + : Sum { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Sum(value_in) {} + : Sum(value_in) {} KOKKOS_FORCEINLINE_FUNCTION void operator+=(ValueType const& rhs) { this->join(this->reference(), rhs); @@ -244,15 +261,15 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Prod { + : Prod { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Prod(value_in) {} + : Prod(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Prod(other.reference()) {} + : Prod(other.reference()) {} KOKKOS_FORCEINLINE_FUNCTION void operator*=(ValueType const& rhs) { this->join(this->reference(), rhs); } @@ -271,13 +288,13 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Prod { + : Prod { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Prod(value_in) {} + : Prod(value_in) {} KOKKOS_FORCEINLINE_FUNCTION void operator*=(ValueType const& rhs) { this->join(this->reference(), rhs); @@ -320,15 +337,15 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Min { + : Min { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Min(value_in) {} + : Min(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Min(other.reference()) {} + : Min(other.reference()) {} KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { this->join(this->reference(), rhs); } @@ -340,13 +357,13 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Min { + : Min { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Min(value_in) {} + : Min(value_in) {} KOKKOS_FORCEINLINE_FUNCTION void atomic_min(ValueType& dest, const ValueType& src) const { @@ -382,15 +399,15 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Max { + : Max { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Max(value_in) {} + : Max(value_in) {} KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ScatterValue&& other) - : Max(other.reference()) {} + : Max(other.reference()) {} KOKKOS_FORCEINLINE_FUNCTION void update(ValueType const& rhs) { this->join(this->reference(), rhs); } @@ -402,13 +419,13 @@ struct ScatterValue -struct ScatterValue +struct ScatterValue - : Max { + : Max { public: KOKKOS_FORCEINLINE_FUNCTION ScatterValue(ValueType& value_in) - : Max(value_in) {} + : Max(value_in) {} KOKKOS_FORCEINLINE_FUNCTION void atomic_max(ValueType& dest, const ValueType& src) const { @@ -558,6 +575,8 @@ struct ReduceDuplicatesBase { Kokkos::Profiling::beginParallelFor(std::string("reduce_") + name, 0, &kpID); } +#else + (void)name; #endif typedef RangePolicy policy_type; typedef Kokkos::Impl::ParallelFor closure_type; @@ -584,8 +603,9 @@ struct ReduceDuplicates : Base(src_in, dst_in, stride_in, start_in, n_in, name) {} KOKKOS_FORCEINLINE_FUNCTION void operator()(size_t i) const { for (size_t j = Base::start; j < Base::n; ++j) { - ScatterValue sv( - Base::dst[i]); + ScatterValue + sv(Base::dst[i]); sv.update(Base::src[i + Base::stride * j]); } } @@ -607,6 +627,8 @@ struct ResetDuplicatesBase { Kokkos::Profiling::beginParallelFor(std::string("reduce_") + name, 0, &kpID); } +#else + (void)name; #endif typedef RangePolicy policy_type; typedef Kokkos::Impl::ParallelFor closure_type; @@ -630,8 +652,9 @@ struct ResetDuplicates : public ResetDuplicatesBase { ResetDuplicates(ValueType* data_in, size_t size_in, std::string const& name) : Base(data_in, size_in, name) {} KOKKOS_FORCEINLINE_FUNCTION void operator()(size_t i) const { - ScatterValue sv( - Base::data[i]); + ScatterValue + sv(Base::data[i]); sv.reset(); } }; @@ -768,8 +791,8 @@ class ScatterAccess view_type; typedef typename view_type::original_value_type original_value_type; - typedef Kokkos::Impl::Experimental::ScatterValue + typedef Kokkos::Impl::Experimental::ScatterValue< + original_value_type, Op, DeviceType, override_contribution> value_type; KOKKOS_INLINE_FUNCTION @@ -777,13 +800,8 @@ class ScatterAccess KOKKOS_FORCEINLINE_FUNCTION value_type operator()(Args... args) const { @@ -1190,8 +1208,8 @@ class ScatterAccess view_type; typedef typename view_type::original_value_type original_value_type; - typedef Kokkos::Impl::Experimental::ScatterValue + typedef Kokkos::Impl::Experimental::ScatterValue< + original_value_type, Op, DeviceType, override_contribution> value_type; KOKKOS_FORCEINLINE_FUNCTION diff --git a/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp b/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp index 26c16c4e003df7c7f68746a79be70917d20dd9de..c11413d62789029396ab7cc7fa6ced197d874ac5 100644 --- a/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp +++ b/lib/kokkos/containers/src/Kokkos_StaticCrsGraph.hpp @@ -112,7 +112,7 @@ struct StaticCrsGraphBalancerFunctor { } } else { if ((count >= (current_block + 1) * cost_per_workset) || - (iRow + 2 == row_offsets.extent(0))) { + (iRow + 2 == int_type(row_offsets.extent(0)))) { if (end_block > current_block + 1) { int_type num_block = end_block - current_block; row_block_offsets(current_block + 1) = iRow; @@ -358,8 +358,8 @@ class StaticCrsGraph { /** \brief Destroy this view of the array. * If the last view then allocated memory is deallocated. */ - KOKKOS_INLINE_FUNCTION - ~StaticCrsGraph() {} + KOKKOS_DEFAULTED_FUNCTION + ~StaticCrsGraph() = default; /** \brief Return number of rows in the graph */ @@ -396,7 +396,7 @@ class StaticCrsGraph { const data_type count = static_cast(row_map(i + 1) - start); if (count == 0) { - return GraphRowViewConst(NULL, 1, 0); + return GraphRowViewConst(nullptr, 1, 0); } else { return GraphRowViewConst(entries, 1, count, start); } @@ -414,9 +414,10 @@ class StaticCrsGraph { row_map_type, View > partitioner(row_map, block_offsets, fix_cost_per_row, num_blocks); - Kokkos::parallel_for(Kokkos::RangePolicy(0, numRows()), + Kokkos::parallel_for("Kokkos::StaticCrsGraph::create_block_partitioning", + Kokkos::RangePolicy(0, numRows()), partitioner); - Kokkos::fence(); + typename device_type::execution_space().fence(); row_block_offsets = block_offsets; } @@ -522,7 +523,8 @@ DataType maximum_entry(const StaticCrsGraph FunctorType; DataType result = 0; - Kokkos::parallel_reduce(graph.entries.extent(0), FunctorType(graph), result); + Kokkos::parallel_reduce("Kokkos::maximum_entry", graph.entries.extent(0), + FunctorType(graph), result); return result; } diff --git a/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp b/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp index 32c04996bb4225fca860fc8ee6fac49f2557f3fa..6f0434dd04d160ecf141850d950070ec0beed7b6 100644 --- a/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp +++ b/lib/kokkos/containers/src/Kokkos_UnorderedMap.hpp @@ -201,9 +201,9 @@ class UnorderedMapInsertResult { /// template ::type>, + typename Hasher = pod_hash::type>, typename EqualTo = - pod_equal_to::type> > + pod_equal_to::type> > class UnorderedMap { private: typedef typename ViewTraits::host_mirror_space @@ -215,13 +215,13 @@ class UnorderedMap { // key_types typedef Key declared_key_type; - typedef typename Impl::remove_const::type key_type; - typedef typename Impl::add_const::type const_key_type; + typedef typename std::remove_const::type key_type; + typedef typename std::add_const::type const_key_type; // value_types typedef Value declared_value_type; - typedef typename Impl::remove_const::type value_type; - typedef typename Impl::add_const::type const_value_type; + typedef typename std::remove_const::type value_type; + typedef typename std::add_const::type const_value_type; typedef Device device_type; typedef typename Device::execution_space execution_space; @@ -296,25 +296,13 @@ class UnorderedMap { //! \name Public member functions //@{ - UnorderedMap() - : m_bounded_insert(), - m_hasher(), - m_equal_to(), - m_size(), - m_available_indexes(), - m_hash_lists(), - m_next_index(), - m_keys(), - m_values(), - m_scalars() {} - /// \brief Constructor /// /// \param capacity_hint [in] Initial guess of how many unique keys will be /// inserted into the map \param hash [in] Hasher function for \c Key /// instances. The /// default value usually suffices. - UnorderedMap(size_type capacity_hint, hasher_type hasher = hasher_type(), + UnorderedMap(size_type capacity_hint = 0, hasher_type hasher = hasher_type(), equal_to_type equal_to = equal_to_type()) : m_bounded_insert(true), m_hasher(hasher), @@ -689,7 +677,7 @@ class UnorderedMap { template UnorderedMap( UnorderedMap const &src, - typename Impl::enable_if< + typename std::enable_if< Impl::UnorderedMapCanAssign::value, int>::type = 0) @@ -705,7 +693,7 @@ class UnorderedMap { m_scalars(src.m_scalars) {} template - typename Impl::enable_if< + typename std::enable_if< Impl::UnorderedMapCanAssign::value, declared_map_type &>::type @@ -724,9 +712,9 @@ class UnorderedMap { } template - typename Impl::enable_if< - std::is_same::type, key_type>::value && - std::is_same::type, + typename std::enable_if< + std::is_same::type, key_type>::value && + std::is_same::type, value_type>::value>::type create_copy_view( UnorderedMap const &src) { diff --git a/lib/kokkos/containers/src/Kokkos_Vector.hpp b/lib/kokkos/containers/src/Kokkos_Vector.hpp index 0641eeba82fb6a0444f58f3d4c47495f1c31aec6..02c3e44fc48b0b9069d0c0b09ce9fd3b8219406e 100644 --- a/lib/kokkos/containers/src/Kokkos_Vector.hpp +++ b/lib/kokkos/containers/src/Kokkos_Vector.hpp @@ -118,12 +118,12 @@ class vector : public DualView { if (DV::template need_sync()) { set_functor_host f(DV::h_view, val); - parallel_for(n, f); + parallel_for("Kokkos::vector::assign", n, f); typename DV::t_host::execution_space().fence(); DV::template modify(); } else { set_functor f(DV::d_view, val); - parallel_for(n, f); + parallel_for("Kokkos::vector::assign", n, f); typename DV::t_dev::execution_space().fence(); DV::template modify(); } diff --git a/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp b/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp index f5fa4d518a07744162078bfbb37244cf3f0cfb99..6fd4319a822161bb1082c39043704d8b732c65e2 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_Bitset_impl.hpp @@ -77,7 +77,8 @@ struct BitsetCount { size_type apply() const { size_type count = 0u; - parallel_reduce(m_bitset.m_blocks.extent(0), *this, count); + parallel_reduce("Kokkos::Impl::BitsetCount::apply", + m_bitset.m_blocks.extent(0), *this, count); return count; } diff --git a/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp b/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp index d644c57c0ac1c4a57623aefbd7a31dfba6076134..a5fb9990f6a2cda37872eeffe75cb810c4c1cca1 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_StaticCrsGraph_factory.hpp @@ -58,8 +58,8 @@ inline typename StaticCrsGraph& view, - typename Impl::enable_if::is_hostspace>::type* = 0) { + typename std::enable_if::is_hostspace>::type* = 0) { return view; } #else @@ -70,8 +70,8 @@ inline typename StaticCrsGraph& view, - typename Impl::enable_if::is_hostspace>::type* = 0) { + typename std::enable_if::is_hostspace>::type* = 0) { return view; } #endif @@ -128,8 +128,8 @@ inline typename StaticCrsGraph& view, - typename Impl::enable_if::is_hostspace>::type* = 0) + typename std::enable_if::is_hostspace>::type* = 0) #else template @@ -138,8 +138,8 @@ inline typename StaticCrsGraph& view, - typename Impl::enable_if::is_hostspace>::type* = 0) + typename std::enable_if::is_hostspace>::type* = 0) #endif { return create_mirror(view); diff --git a/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp b/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp index 55e76c424df86746db72c9451844aa8e9c4107f7..813936575cf79bf8161b38d623b4f543b7e6b92d 100644 --- a/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp +++ b/lib/kokkos/containers/src/impl/Kokkos_UnorderedMap_impl.hpp @@ -71,7 +71,10 @@ struct UnorderedMapRehash { UnorderedMapRehash(map_type const& dst, const_map_type const& src) : m_dst(dst), m_src(src) {} - void apply() const { parallel_for(m_src.capacity(), *this); } + void apply() const { + parallel_for("Kokkos::Impl::UnorderedMapRehash::apply", m_src.capacity(), + *this); + } KOKKOS_INLINE_FUNCTION void operator()(size_type i) const { @@ -91,7 +94,10 @@ struct UnorderedMapErase { UnorderedMapErase(map_type const& map) : m_map(map) {} - void apply() const { parallel_for(m_map.m_hash_lists.extent(0), *this); } + void apply() const { + parallel_for("Kokkos::Impl::UnorderedMapErase::apply", + m_map.m_hash_lists.extent(0), *this); + } KOKKOS_INLINE_FUNCTION void operator()(size_type i) const { @@ -152,7 +158,10 @@ struct UnorderedMapHistogram { m_distance("UnorderedMap Histogram"), m_block_distance("UnorderedMap Histogram") {} - void calculate() { parallel_for(m_map.m_hash_lists.extent(0), *this); } + void calculate() { + parallel_for("Kokkos::Impl::UnorderedMapHistogram::calculate", + m_map.m_hash_lists.extent(0), *this); + } void clear() { Kokkos::deep_copy(m_length, 0); @@ -229,7 +238,10 @@ struct UnorderedMapPrint { UnorderedMapPrint(map_type const& map) : m_map(map) {} - void apply() { parallel_for(m_map.m_hash_lists.extent(0), *this); } + void apply() { + parallel_for("Kokkos::Impl::UnorderedMapPrint::apply", + m_map.m_hash_lists.extent(0), *this); + } KOKKOS_INLINE_FUNCTION void operator()(size_type i) const { @@ -245,21 +257,22 @@ struct UnorderedMapPrint { }; template -struct UnorderedMapCanAssign : public false_ {}; +struct UnorderedMapCanAssign : public std::false_type {}; template -struct UnorderedMapCanAssign : public true_ {}; +struct UnorderedMapCanAssign : public std::true_type {}; template -struct UnorderedMapCanAssign : public true_ {}; +struct UnorderedMapCanAssign + : public std::true_type {}; template struct UnorderedMapCanAssign - : public true_ {}; + : public std::true_type {}; template struct UnorderedMapCanAssign - : public true_ {}; + : public std::true_type {}; } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/containers/unit_tests/CMakeLists.txt b/lib/kokkos/containers/unit_tests/CMakeLists.txt index a83ab1293c19d257106012e0f879a83bebbd42e8..448cdf4386765e4f658b2a64e416085b62ba1a69 100644 --- a/lib/kokkos/containers/unit_tests/CMakeLists.txt +++ b/lib/kokkos/containers/unit_tests/CMakeLists.txt @@ -3,7 +3,7 @@ KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../src ) -foreach(Tag Threads;Serial;OpenMP;HPX;Cuda) +foreach(Tag Threads;Serial;OpenMP;HPX;Cuda;HIP) # Because there is always an exception to the rule if(Tag STREQUAL "Threads") set(DEVICE "PTHREAD") @@ -13,23 +13,31 @@ foreach(Tag Threads;Serial;OpenMP;HPX;Cuda) string(TOLOWER ${Tag} dir) # Add test for that backend if it is enabled if(Kokkos_ENABLE_${DEVICE}) - KOKKOS_ADD_EXECUTABLE_AND_TEST( - UnitTest_${Tag} - SOURCES - UnitTestMain.cpp - ${dir}/Test${Tag}_BitSet.cpp - ${dir}/Test${Tag}_DualView.cpp - ${dir}/Test${Tag}_DynamicView.cpp - ${dir}/Test${Tag}_DynRankViewAPI_generic.cpp - ${dir}/Test${Tag}_DynRankViewAPI_rank12345.cpp - ${dir}/Test${Tag}_DynRankViewAPI_rank67.cpp - ${dir}/Test${Tag}_ErrorReporter.cpp - ${dir}/Test${Tag}_OffsetView.cpp - ${dir}/Test${Tag}_ScatterView.cpp - ${dir}/Test${Tag}_StaticCrsGraph.cpp - ${dir}/Test${Tag}_UnorderedMap.cpp - ${dir}/Test${Tag}_Vector.cpp - ${dir}/Test${Tag}_ViewCtorPropEmbeddedDim.cpp + set(UnitTestSources UnitTestMain.cpp) + set(dir ${CMAKE_CURRENT_BINARY_DIR}/${dir}) + file(MAKE_DIRECTORY ${dir}) + foreach(Name + Bitset + DualView + DynamicView + DynViewAPI_generic + DynViewAPI_rank12345 + DynViewAPI_rank67 + ErrorReporter + OffsetView + ScatterView + StaticCrsGraph + UnorderedMap + Vector + ViewCtorPropEmbeddedDim + ) + set(file ${dir}/Test${Tag}_${Name}.cpp) + file(WRITE ${file} + "#include \n" + "#include \n" ) + list(APPEND UnitTestSources ${file}) + endforeach() + KOKKOS_ADD_EXECUTABLE_AND_TEST(UnitTest_${Tag} SOURCES ${UnitTestSources}) endif() endforeach() diff --git a/lib/kokkos/containers/unit_tests/Makefile b/lib/kokkos/containers/unit_tests/Makefile index a7e0233f8a58790bcd8f845a314703d0f2b6e2f5..308b5aa8b5ff5cb39fabb20143ef742c6992a86d 100644 --- a/lib/kokkos/containers/unit_tests/Makefile +++ b/lib/kokkos/containers/unit_tests/Makefile @@ -9,7 +9,7 @@ vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/serial vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/threads vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/rocm vpath %.cpp ${KOKKOS_PATH}/containers/unit_tests/cuda - +vpath %.cpp ${CURDIR} default: build_all echo "End Build" @@ -31,14 +31,24 @@ KOKKOS_CXXFLAGS += -I$(GTEST_PATH) -I${KOKKOS_PATH}/containers/unit_tests TEST_TARGETS = TARGETS = +TESTS = Bitset DualView DynamicView DynViewAPI_generic DynViewAPI_rank12345 DynViewAPI_rank67 ErrorReporter OffsetView ScatterView StaticCrsGraph UnorderedMap Vector ViewCtorPropEmbeddedDim +tmp := $(foreach device, $(KOKKOS_DEVICELIST), \ + tmp2 := $(foreach test, $(TESTS), \ + $(if $(filter Test$(device)_$(test).cpp, $(shell ls Test$(device)_$(test).cpp 2>/dev/null)),,\ + $(shell echo "\#include" > Test$(device)_$(test).cpp); \ + $(shell echo "\#include" >> Test$(device)_$(test).cpp); \ + )\ + ) \ +) + ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) OBJ_CUDA = UnitTestMain.o gtest-all.o - OBJ_CUDA += TestCuda_BitSet.o + OBJ_CUDA += TestCuda_Bitset.o OBJ_CUDA += TestCuda_DualView.o OBJ_CUDA += TestCuda_DynamicView.o - OBJ_CUDA += TestCuda_DynRankViewAPI_generic.o - OBJ_CUDA += TestCuda_DynRankViewAPI_rank12345.o - OBJ_CUDA += TestCuda_DynRankViewAPI_rank67.o + OBJ_CUDA += TestCuda_DynViewAPI_generic.o + OBJ_CUDA += TestCuda_DynViewAPI_rank12345.o + OBJ_CUDA += TestCuda_DynViewAPI_rank67.o OBJ_CUDA += TestCuda_ErrorReporter.o OBJ_CUDA += TestCuda_OffsetView.o OBJ_CUDA += TestCuda_ScatterView.o @@ -50,33 +60,14 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) TEST_TARGETS += test-cuda endif -ifeq ($(KOKKOS_INTERNAL_USE_ROCM), 1) - OBJ_ROCM = UnitTestMain.o gtest-all.o - OBJ_ROCM += TestROCm_BitSet.o - OBJ_ROCM += TestROCm_DualView.o - OBJ_ROCM += TestROCm_DynamicView.o - OBJ_ROCM += TestROCm_DynRankViewAPI_generic.o - OBJ_ROCM += TestROCm_DynRankViewAPI_rank12345.o - OBJ_ROCM += TestROCm_DynRankViewAPI_rank67.o - OBJ_ROCM += TestROCm_ErrorReporter.o - OBJ_ROCM += TestROCm_OffsetView.o - OBJ_ROCM += TestROCm_ScatterView.o - OBJ_ROCM += TestROCm_StaticCrsGraph.o - OBJ_ROCM += TestROCm_UnorderedMap.o - OBJ_ROCM += TestROCm_Vector.o - OBJ_ROCM += TestROCm_ViewCtorPropEmbeddedDim.o - TARGETS += KokkosContainers_UnitTest_ROCm - TEST_TARGETS += test-rocm -endif - ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) OBJ_THREADS = UnitTestMain.o gtest-all.o - OBJ_THREADS += TestThreads_BitSet.o + OBJ_THREADS += TestThreads_Bitset.o OBJ_THREADS += TestThreads_DualView.o OBJ_THREADS += TestThreads_DynamicView.o - OBJ_THREADS += TestThreads_DynRankViewAPI_generic.o - OBJ_THREADS += TestThreads_DynRankViewAPI_rank12345.o - OBJ_THREADS += TestThreads_DynRankViewAPI_rank67.o + OBJ_THREADS += TestThreads_DynViewAPI_generic.o + OBJ_THREADS += TestThreads_DynViewAPI_rank12345.o + OBJ_THREADS += TestThreads_DynViewAPI_rank67.o OBJ_THREADS += TestThreads_ErrorReporter.o OBJ_THREADS += TestThreads_OffsetView.o OBJ_THREADS += TestThreads_ScatterView.o @@ -90,12 +81,12 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) OBJ_OPENMP = UnitTestMain.o gtest-all.o - OBJ_OPENMP += TestOpenMP_BitSet.o + OBJ_OPENMP += TestOpenMP_Bitset.o OBJ_OPENMP += TestOpenMP_DualView.o OBJ_OPENMP += TestOpenMP_DynamicView.o - OBJ_OPENMP += TestOpenMP_DynRankViewAPI_generic.o - OBJ_OPENMP += TestOpenMP_DynRankViewAPI_rank12345.o - OBJ_OPENMP += TestOpenMP_DynRankViewAPI_rank67.o + OBJ_OPENMP += TestOpenMP_DynViewAPI_generic.o + OBJ_OPENMP += TestOpenMP_DynViewAPI_rank12345.o + OBJ_OPENMP += TestOpenMP_DynViewAPI_rank67.o OBJ_OPENMP += TestOpenMP_ErrorReporter.o OBJ_OPENMP += TestOpenMP_OffsetView.o OBJ_OPENMP += TestOpenMP_ScatterView.o @@ -109,12 +100,12 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) OBJ_HPX = UnitTestMain.o gtest-all.o - OBJ_HPX += TestHPX_BitSet.o + OBJ_HPX += TestHPX_Bitset.o OBJ_HPX += TestHPX_DualView.o OBJ_HPX += TestHPX_DynamicView.o - OBJ_HPX += TestHPX_DynRankViewAPI_generic.o - OBJ_HPX += TestHPX_DynRankViewAPI_rank12345.o - OBJ_HPX += TestHPX_DynRankViewAPI_rank67.o + OBJ_HPX += TestHPX_DynViewAPI_generic.o + OBJ_HPX += TestHPX_DynViewAPI_rank12345.o + OBJ_HPX += TestHPX_DynViewAPI_rank67.o OBJ_HPX += TestHPX_ErrorReporter.o OBJ_HPX += TestHPX_OffsetView.o OBJ_HPX += TestHPX_ScatterView.o @@ -128,12 +119,12 @@ endif ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) OBJ_SERIAL = UnitTestMain.o gtest-all.o - OBJ_SERIAL += TestSerial_BitSet.o + OBJ_SERIAL += TestSerial_Bitset.o OBJ_SERIAL += TestSerial_DualView.o OBJ_SERIAL += TestSerial_DynamicView.o - OBJ_SERIAL += TestSerial_DynRankViewAPI_generic.o - OBJ_SERIAL += TestSerial_DynRankViewAPI_rank12345.o - OBJ_SERIAL += TestSerial_DynRankViewAPI_rank67.o + OBJ_SERIAL += TestSerial_DynViewAPI_generic.o + OBJ_SERIAL += TestSerial_DynViewAPI_rank12345.o + OBJ_SERIAL += TestSerial_DynViewAPI_rank67.o OBJ_SERIAL += TestSerial_ErrorReporter.o OBJ_SERIAL += TestSerial_OffsetView.o OBJ_SERIAL += TestSerial_ScatterView.o @@ -148,9 +139,6 @@ endif KokkosContainers_UnitTest_Cuda: $(OBJ_CUDA) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_CUDA) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosContainers_UnitTest_Cuda -KokkosContainers_UnitTest_ROCm: $(OBJ_ROCM) $(KOKKOS_LINK_DEPENDS) - $(LINK) $(EXTRA_PATH) $(OBJ_ROCM) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosContainers_UnitTest_ROCm - KokkosContainers_UnitTest_Threads: $(OBJ_THREADS) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_THREADS) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosContainers_UnitTest_Threads @@ -166,9 +154,6 @@ KokkosContainers_UnitTest_Serial: $(OBJ_SERIAL) $(KOKKOS_LINK_DEPENDS) test-cuda: KokkosContainers_UnitTest_Cuda ./KokkosContainers_UnitTest_Cuda -test-rocm: KokkosContainers_UnitTest_ROCm - ./KokkosContainers_UnitTest_ROCm - test-threads: KokkosContainers_UnitTest_Threads ./KokkosContainers_UnitTest_Threads @@ -186,7 +171,7 @@ build_all: $(TARGETS) test: $(TEST_TARGETS) clean: kokkos-clean - rm -f *.o $(TARGETS) + rm -f *.o $(TARGETS) *.cpp # Compilation rules diff --git a/lib/kokkos/containers/unit_tests/TestBitset.hpp b/lib/kokkos/containers/unit_tests/TestBitset.hpp index ebd35d3ae721e5fbdceddea39cff7d675f74acac..661a1365cb51d3e8f6fac51310a3867dd2b1e76a 100644 --- a/lib/kokkos/containers/unit_tests/TestBitset.hpp +++ b/lib/kokkos/containers/unit_tests/TestBitset.hpp @@ -253,8 +253,10 @@ void test_bitset() { } } +// FIXME_HIP deadlock +#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, bitset) { test_bitset(); } - +#endif } // namespace Test #endif // KOKKOS_TEST_BITSET_HPP diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_Category.hpp b/lib/kokkos/containers/unit_tests/TestCuda_Category.hpp similarity index 100% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_Category.hpp rename to lib/kokkos/containers/unit_tests/TestCuda_Category.hpp diff --git a/lib/kokkos/containers/unit_tests/TestDualView.hpp b/lib/kokkos/containers/unit_tests/TestDualView.hpp index 572ef48839f6c1f92127028e44e8d52dc47a2771..665f25115803cd332bc2d54686e34fce97e23aac 100644 --- a/lib/kokkos/containers/unit_tests/TestDualView.hpp +++ b/lib/kokkos/containers/unit_tests/TestDualView.hpp @@ -67,11 +67,17 @@ struct test_dualview_combinations { Scalar result; template - Scalar run_me(unsigned int n, unsigned int m) { + Scalar run_me(unsigned int n, unsigned int m, bool with_init) { if (n < 10) n = 10; if (m < 3) m = 3; - ViewType a("A", n, m); + ViewType a; + + if (with_init) { + a = ViewType("A", n, m); + } else { + a = ViewType(Kokkos::ViewAllocateWithoutInitializing("A"), n, m); + } Kokkos::deep_copy(a.d_view, 1); a.template modify(); @@ -96,9 +102,9 @@ struct test_dualview_combinations { return count - a.d_view.extent(0) * a.d_view.extent(1) - 2 - 4 - 3 * 2; } - test_dualview_combinations(unsigned int size) { + test_dualview_combinations(unsigned int size, bool with_init) { result = run_me >( - size, 3); + size, 3, with_init); } }; @@ -124,18 +130,25 @@ struct test_dual_view_deep_copy { typedef Device execution_space; template - void run_me() { - const unsigned int n = 10; - const unsigned int m = 5; - const unsigned int sum_total = n * m; - - ViewType a("A", n, m); - ViewType b("B", n, m); + void run_me(int n, const int m, const bool use_templ_sync) { + ViewType a, b; + if (n >= 0) { + a = ViewType("A", n, m); + b = ViewType("B", n, m); + } else { + n = 0; + } + const scalar_type sum_total = scalar_type(n * m); Kokkos::deep_copy(a.d_view, 1); - a.template modify(); - a.template sync(); + if (use_templ_sync) { + a.template modify(); + a.template sync(); + } else { + a.modify_device(); + a.sync_host(); + } // Check device view is initialized as expected scalar_type a_d_sum = 0; @@ -159,7 +172,11 @@ struct test_dual_view_deep_copy { // Test deep_copy Kokkos::deep_copy(b, a); - b.template sync(); + if (use_templ_sync) { + b.template sync(); + } else { + b.sync_host(); + } // Perform same checks on b as done on a // Check device view is initialized as expected @@ -183,6 +200,145 @@ struct test_dual_view_deep_copy { } // end run_me test_dual_view_deep_copy() { + run_me >(10, 5, + true); + run_me >(10, 5, + false); + // Test zero length but allocated (a.d_view.data!=nullptr but + // a.d_view.span()==0) + run_me >(0, 5, true); + run_me >(0, 5, + false); + + // Test default constructed view + run_me >(-1, 5, + true); + run_me >(-1, 5, + false); + } +}; + +template +struct test_dualview_resize { + typedef Scalar scalar_type; + typedef Device execution_space; + + template + void run_me() { + const unsigned int n = 10; + const unsigned int m = 5; + const unsigned int factor = 2; + + ViewType a("A", n, m); + Kokkos::deep_copy(a.d_view, 1); + + /* Covers case "Resize on Device" */ + a.modify_device(); + Kokkos::resize(a, factor * n, factor * m); + ASSERT_EQ(a.extent(0), n * factor); + ASSERT_EQ(a.extent(1), m * factor); + + Kokkos::deep_copy(a.d_view, 1); + a.sync_host(); + + // Check device view is initialized as expected + scalar_type a_d_sum = 0; + // Execute on the execution_space associated with t_dev's memory space + typedef typename ViewType::t_dev::memory_space::execution_space + t_dev_exec_space; + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, a.d_view.extent(0)), + SumViewEntriesFunctor(a.d_view), + a_d_sum); + + // Check host view is synced as expected + scalar_type a_h_sum = 0; + for (size_t i = 0; i < a.h_view.extent(0); ++i) + for (size_t j = 0; j < a.h_view.extent(1); ++j) { + a_h_sum += a.h_view(i, j); + } + + // Check + ASSERT_EQ(a_h_sum, a_d_sum); + ASSERT_EQ(a_h_sum, a.extent(0) * a.extent(1)); + + /* Covers case "Resize on Host" */ + a.modify_host(); + + Kokkos::resize(a, n / factor, m / factor); + ASSERT_EQ(a.extent(0), n / factor); + ASSERT_EQ(a.extent(1), m / factor); + + a.sync_device(); + + // Check device view is initialized as expected + a_d_sum = 0; + // Execute on the execution_space associated with t_dev's memory space + typedef typename ViewType::t_dev::memory_space::execution_space + t_dev_exec_space; + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, a.d_view.extent(0)), + SumViewEntriesFunctor(a.d_view), + a_d_sum); + + // Check host view is synced as expected + a_h_sum = 0; + for (size_t i = 0; i < a.h_view.extent(0); ++i) + for (size_t j = 0; j < a.h_view.extent(1); ++j) { + a_h_sum += a.h_view(i, j); + } + + // Check + ASSERT_EQ(a_h_sum, a.extent(0) * a.extent(1)); + ASSERT_EQ(a_h_sum, a_d_sum); + + } // end run_me + + test_dualview_resize() { + run_me >(); + } +}; + +template +struct test_dualview_realloc { + typedef Scalar scalar_type; + typedef Device execution_space; + + template + void run_me() { + const unsigned int n = 10; + const unsigned int m = 5; + + ViewType a("A", n, m); + Kokkos::realloc(a, n, m); + + Kokkos::deep_copy(a.d_view, 1); + a.modify_device(); + a.sync_host(); + + // Check device view is initialized as expected + scalar_type a_d_sum = 0; + // Execute on the execution_space associated with t_dev's memory space + typedef typename ViewType::t_dev::memory_space::execution_space + t_dev_exec_space; + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, a.d_view.extent(0)), + SumViewEntriesFunctor(a.d_view), + a_d_sum); + + // Check host view is synced as expected + scalar_type a_h_sum = 0; + for (size_t i = 0; i < a.h_view.extent(0); ++i) + for (size_t j = 0; j < a.h_view.extent(1); ++j) { + a_h_sum += a.h_view(i, j); + } + + // Check + ASSERT_EQ(a_h_sum, a.extent(0) * a.extent(1)); + ASSERT_EQ(a_h_sum, a_d_sum); + } // end run_me + + test_dualview_realloc() { run_me >(); } }; @@ -190,8 +346,8 @@ struct test_dual_view_deep_copy { } // namespace Impl template -void test_dualview_combinations(unsigned int size) { - Impl::test_dualview_combinations test(size); +void test_dualview_combinations(unsigned int size, bool with_init) { + Impl::test_dualview_combinations test(size, with_init); ASSERT_EQ(test.result, 0); } @@ -200,8 +356,22 @@ void test_dualview_deep_copy() { Impl::test_dual_view_deep_copy(); } +template +void test_dualview_realloc() { + Impl::test_dualview_realloc(); +} + +template +void test_dualview_resize() { + Impl::test_dualview_resize(); +} + TEST(TEST_CATEGORY, dualview_combination) { - test_dualview_combinations(10); + test_dualview_combinations(10, true); +} + +TEST(TEST_CATEGORY, dualview_combinations_without_init) { + test_dualview_combinations(10, false); } TEST(TEST_CATEGORY, dualview_deep_copy) { @@ -209,6 +379,14 @@ TEST(TEST_CATEGORY, dualview_deep_copy) { test_dualview_deep_copy(); } +TEST(TEST_CATEGORY, dualview_realloc) { + test_dualview_realloc(); +} + +TEST(TEST_CATEGORY, dualview_resize) { + test_dualview_resize(); +} + } // namespace Test -#endif // KOKKOS_TEST_UNORDERED_MAP_HPP +#endif // KOKKOS_TEST_DUALVIEW_HPP diff --git a/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp b/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp index 3692aa8a125240407b0331158dd9a1d7febed6c4..5c1d0229cbaa131d2e8b629051c3076df72d2b92 100644 --- a/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynViewAPI.hpp @@ -706,8 +706,6 @@ class TestDynViewAPI { typedef typename View0::host_mirror_space host_view_space; - TestDynViewAPI() {} - static void run_tests() { run_test_resize_realloc(); run_test_mirror(); @@ -1078,12 +1076,12 @@ class TestDynViewAPI { ASSERT_TRUE(Kokkos::is_dyn_rank_view::value); ASSERT_FALSE(Kokkos::is_dyn_rank_view >::value); - ASSERT_TRUE(dx.data() == 0); // Okay with UVM - ASSERT_TRUE(dy.data() == 0); // Okay with UVM - ASSERT_TRUE(dz.data() == 0); // Okay with UVM - ASSERT_TRUE(hx.data() == 0); - ASSERT_TRUE(hy.data() == 0); - ASSERT_TRUE(hz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); // Okay with UVM + ASSERT_TRUE(dy.data() == nullptr); // Okay with UVM + ASSERT_TRUE(dz.data() == nullptr); // Okay with UVM + ASSERT_TRUE(hx.data() == nullptr); + ASSERT_TRUE(hy.data() == nullptr); + ASSERT_TRUE(hz.data() == nullptr); ASSERT_EQ(dx.extent(0), 0u); // Okay with UVM ASSERT_EQ(dy.extent(0), 0u); // Okay with UVM ASSERT_EQ(dz.extent(0), 0u); // Okay with UVM @@ -1154,11 +1152,11 @@ class TestDynViewAPI { ASSERT_EQ(dx.use_count(), size_t(2)); - ASSERT_FALSE(dx.data() == 0); - ASSERT_FALSE(const_dx.data() == 0); - ASSERT_FALSE(unmanaged_dx.data() == 0); - ASSERT_FALSE(unmanaged_from_ptr_dx.data() == 0); - ASSERT_FALSE(dy.data() == 0); + ASSERT_FALSE(dx.data() == nullptr); + ASSERT_FALSE(const_dx.data() == nullptr); + ASSERT_FALSE(unmanaged_dx.data() == nullptr); + ASSERT_FALSE(unmanaged_from_ptr_dx.data() == nullptr); + ASSERT_FALSE(dy.data() == nullptr); ASSERT_NE(dx, dy); ASSERT_EQ(dx.extent(0), unsigned(N0)); @@ -1318,17 +1316,17 @@ class TestDynViewAPI { ASSERT_NE(dx, dz); dx = dView0(); - ASSERT_TRUE(dx.data() == 0); - ASSERT_FALSE(dy.data() == 0); - ASSERT_FALSE(dz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_FALSE(dy.data() == nullptr); + ASSERT_FALSE(dz.data() == nullptr); dy = dView0(); - ASSERT_TRUE(dx.data() == 0); - ASSERT_TRUE(dy.data() == 0); - ASSERT_FALSE(dz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_TRUE(dy.data() == nullptr); + ASSERT_FALSE(dz.data() == nullptr); dz = dView0(); - ASSERT_TRUE(dx.data() == 0); - ASSERT_TRUE(dy.data() == 0); - ASSERT_TRUE(dz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_TRUE(dy.data() == nullptr); + ASSERT_TRUE(dz.data() == nullptr); // View - DynRankView Interoperability tests // deep_copy from view to dynrankview diff --git a/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp b/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp index 90ca5df194d5c33f53446125470ab7f464085095..b3e2812b4402b23213606bba7a9c34485a3e18a2 100644 --- a/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynViewAPI_generic.hpp @@ -44,7 +44,10 @@ #include namespace Test { +// FIXME_HIP attempt to access inaccessible memory space +#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, dyn_rank_view_api_generic) { TestDynViewAPI::run_tests(); } +#endif } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp b/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp index 050ebbe35cab5e85b726b7ad5f9a10f3170607bb..86a2e4e9548cb7cd37dedf30897327a09c526392 100644 --- a/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynViewAPI_rank12345.hpp @@ -45,7 +45,10 @@ #include namespace Test { +// FIXME_HIP failing with wrong value +#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, dyn_rank_view_api_operator_rank12345) { TestDynViewAPI::run_operator_test_rank12345(); } +#endif } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/TestDynamicView.hpp b/lib/kokkos/containers/unit_tests/TestDynamicView.hpp index 235464ef07e0648088153fb94b0613d4fdab376a..8eabbcb3718fcba29c4285a49ab8ddc63ff1d9da 100644 --- a/lib/kokkos/containers/unit_tests/TestDynamicView.hpp +++ b/lib/kokkos/containers/unit_tests/TestDynamicView.hpp @@ -79,7 +79,6 @@ struct TestDynamicView { ASSERT_EQ(da.size(), da_size); #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::parallel_for( Kokkos::RangePolicy(0, da_size), KOKKOS_LAMBDA(const int i) { da(i) = Scalar(i); }); @@ -93,7 +92,6 @@ struct TestDynamicView { result_sum); ASSERT_EQ(result_sum, (value_type)(da_size * (da_size - 1) / 2)); -#endif #endif // add 3x more entries i.e. 4x larger than previous size @@ -103,7 +101,6 @@ struct TestDynamicView { ASSERT_EQ(da.size(), da_resize); #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::parallel_for( Kokkos::RangePolicy(da_size, da_resize), KOKKOS_LAMBDA(const int i) { da(i) = Scalar(i); }); @@ -118,7 +115,6 @@ struct TestDynamicView { ASSERT_EQ(new_result_sum + result_sum, (value_type)(da_resize * (da_resize - 1) / 2)); -#endif #endif } // end scope @@ -135,7 +131,6 @@ struct TestDynamicView { ASSERT_EQ(da.size(), da_size); #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::parallel_for( Kokkos::RangePolicy(0, da_size), KOKKOS_LAMBDA(const int i) { da(i) = Scalar(i); }); @@ -149,7 +144,6 @@ struct TestDynamicView { result_sum); ASSERT_EQ(result_sum, (value_type)(da_size * (da_size - 1) / 2)); -#endif #endif // add 3x more entries i.e. 4x larger than previous size @@ -159,7 +153,6 @@ struct TestDynamicView { ASSERT_EQ(da.size(), da_resize); #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::parallel_for( Kokkos::RangePolicy(da_size, da_resize), KOKKOS_LAMBDA(const int i) { da(i) = Scalar(i); }); @@ -174,7 +167,6 @@ struct TestDynamicView { ASSERT_EQ(new_result_sum + result_sum, (value_type)(da_resize * (da_resize - 1) / 2)); -#endif #endif } // end scope @@ -191,7 +183,6 @@ struct TestDynamicView { ASSERT_EQ(da.size(), da_size); #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::parallel_for( Kokkos::RangePolicy(0, da_size), KOKKOS_LAMBDA(const int i) { da(i) = Scalar(i); }); @@ -205,7 +196,6 @@ struct TestDynamicView { result_sum); ASSERT_EQ(result_sum, (value_type)(da_size * (da_size - 1) / 2)); -#endif #endif // remove the final 3/4 entries i.e. first 1/4 remain @@ -214,7 +204,6 @@ struct TestDynamicView { ASSERT_EQ(da.size(), da_resize); #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::parallel_for( Kokkos::RangePolicy(0, da_resize), KOKKOS_LAMBDA(const int i) { da(i) = Scalar(i); }); @@ -228,7 +217,6 @@ struct TestDynamicView { new_result_sum); ASSERT_EQ(new_result_sum, (value_type)(da_resize * (da_resize - 1) / 2)); -#endif #endif } // end scope } diff --git a/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp b/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp index 49b71cdea7a3449b56cffcb1b2cbfc3bc2f2f6e9..318132500c57b32511ece11d4472b883d40164a7 100644 --- a/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp +++ b/lib/kokkos/containers/unit_tests/TestErrorReporter.hpp @@ -50,9 +50,13 @@ #include #include +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + namespace Test { -// Just save the data in the report. Informative text goies in the +// Just save the data in the report. Informative text goes in the // operator<<(..). template struct ThreeValReport { @@ -85,7 +89,7 @@ struct ErrorReporterDriverBase { error_reporter_type; error_reporter_type m_errorReporter; - ErrorReporterDriverBase(int reporter_capacity, int test_size) + ErrorReporterDriverBase(int reporter_capacity, int /*test_size*/) : m_errorReporter(reporter_capacity) {} KOKKOS_INLINE_FUNCTION bool error_condition(const int work_idx) const { @@ -176,7 +180,8 @@ struct ErrorReporterDriver : public ErrorReporterDriverBase { } }; -#if defined(KOKKOS_CLASS_LAMBDA) +#if defined(KOKKOS_CLASS_LAMBDA) && \ + (!defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_CUDA_LAMBDA)) template struct ErrorReporterDriverUseLambda : public ErrorReporterDriverBase { @@ -225,7 +230,8 @@ struct ErrorReporterDriverNativeOpenMP }; #endif -#if defined(KOKKOS_CLASS_LAMBDA) +#if defined(KOKKOS_CLASS_LAMBDA) && \ + (!defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_CUDA_LAMBDA)) TEST(TEST_CATEGORY, ErrorReporterViaLambda) { TestErrorReporter>(); } diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_Category.hpp b/lib/kokkos/containers/unit_tests/TestHIP_Category.hpp similarity index 93% rename from lib/kokkos/containers/unit_tests/rocm/TestROCm_Category.hpp rename to lib/kokkos/containers/unit_tests/TestHIP_Category.hpp index d37cd05db68163a0e24bf61204e3054860537a5d..c2d60d18148b30674de5ee559ecafc09d23d126f 100644 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_Category.hpp +++ b/lib/kokkos/containers/unit_tests/TestHIP_Category.hpp @@ -42,10 +42,10 @@ //@HEADER */ -#ifndef KOKKOS_TEST_ROCM_HPP -#define KOKKOS_TEST_ROCM_HPP +#ifndef KOKKOS_TEST_HIP_HPP +#define KOKKOS_TEST_HIP_HPP -#define TEST_CATEGORY rocm -#define TEST_EXECSPACE Kokkos::Experimental::ROCm +#define TEST_CATEGORY hip +#define TEST_EXECSPACE Kokkos::Experimental::HIP #endif diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_Category.hpp b/lib/kokkos/containers/unit_tests/TestHPX_Category.hpp similarity index 100% rename from lib/kokkos/containers/unit_tests/hpx/TestHPX_Category.hpp rename to lib/kokkos/containers/unit_tests/TestHPX_Category.hpp diff --git a/lib/kokkos/containers/unit_tests/TestOffsetView.hpp b/lib/kokkos/containers/unit_tests/TestOffsetView.hpp index 12bcda9524ee7c179b697b41be9450b5018740df..5114b8022faf8835512965c31a3787485a7de38d 100644 --- a/lib/kokkos/containers/unit_tests/TestOffsetView.hpp +++ b/lib/kokkos/containers/unit_tests/TestOffsetView.hpp @@ -60,7 +60,7 @@ using std::endl; namespace Test { template -void test_offsetview_construction(unsigned int size) { +void test_offsetview_construction() { typedef Kokkos::Experimental::OffsetView offset_view_type; typedef Kokkos::View view_type; @@ -185,15 +185,17 @@ void test_offsetview_construction(unsigned int size) { Kokkos::deep_copy(view3D, 1); - Kokkos::Array begins = {{-10, -20, -30}}; - Kokkos::Experimental::OffsetView offsetView3D(view3D, - begins); - typedef Kokkos::MDRangePolicy, Kokkos::IndexType > range3_type; typedef typename range3_type::point_type point3_type; + typename point3_type::value_type begins0 = -10, begins1 = -20, + begins2 = -30; + Kokkos::Array begins = {{begins0, begins1, begins2}}; + Kokkos::Experimental::OffsetView offsetView3D(view3D, + begins); + range3_type rangePolicy3DZero(point3_type{{0, 0, 0}}, point3_type{{extent0, extent1, extent2}}); @@ -207,9 +209,8 @@ void test_offsetview_construction(unsigned int size) { view3DSum); range3_type rangePolicy3D( - point3_type{{begins[0], begins[1], begins[2]}}, - point3_type{ - {begins[0] + extent0, begins[1] + extent1, begins[2] + extent2}}); + point3_type{{begins0, begins1, begins2}}, + point3_type{{begins0 + extent0, begins1 + extent1, begins2 + extent2}}); int offsetView3DSum = 0; Kokkos::parallel_reduce( @@ -388,7 +389,7 @@ void test_offsetview_unmanaged_construction() { } template -void test_offsetview_subview(unsigned int size) { +void test_offsetview_subview() { { // test subview 1 Kokkos::Experimental::OffsetView sliceMe("offsetToSlice", {-10, 20}); @@ -675,7 +676,7 @@ void test_offsetview_offsets_rank3() { #endif TEST(TEST_CATEGORY, offsetview_construction) { - test_offsetview_construction(10); + test_offsetview_construction(); } TEST(TEST_CATEGORY, offsetview_unmanaged_construction) { @@ -683,7 +684,7 @@ TEST(TEST_CATEGORY, offsetview_unmanaged_construction) { } TEST(TEST_CATEGORY, offsetview_subview) { - test_offsetview_subview(10); + test_offsetview_subview(); } #if defined(KOKKOS_ENABLE_CUDA_LAMBDA) || !defined(KOKKOS_ENABLE_CUDA) diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_Category.hpp b/lib/kokkos/containers/unit_tests/TestOpenMP_Category.hpp similarity index 100% rename from lib/kokkos/containers/unit_tests/openmp/TestOpenMP_Category.hpp rename to lib/kokkos/containers/unit_tests/TestOpenMP_Category.hpp diff --git a/lib/kokkos/containers/unit_tests/TestScatterView.hpp b/lib/kokkos/containers/unit_tests/TestScatterView.hpp index 93b69cc769c28dd9c165983e8ba3b5cce81c6ccf..915d96d321009aa41f9562c52562ebd330470259 100644 --- a/lib/kokkos/containers/unit_tests/TestScatterView.hpp +++ b/lib/kokkos/containers/unit_tests/TestScatterView.hpp @@ -50,21 +50,21 @@ namespace Test { -template struct test_scatter_view_impl_cls; -template -struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView scatter_view_type; - typedef Kokkos::View orig_view_type; + typedef Kokkos::View orig_view_type; scatter_view_type scatter_view; int scatterSize; @@ -90,7 +90,8 @@ struct test_scatter_view_impl_cls(0, n); + auto policy = + Kokkos::RangePolicy(0, n); Kokkos::parallel_for(policy, *this, "scatter_view_test: Sum"); } @@ -123,17 +124,17 @@ struct test_scatter_view_impl_cls -struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView scatter_view_type; - typedef Kokkos::View orig_view_type; + typedef Kokkos::View orig_view_type; scatter_view_type scatter_view; int scatterSize; @@ -159,7 +160,8 @@ struct test_scatter_view_impl_cls(0, n); + auto policy = + Kokkos::RangePolicy(0, n); Kokkos::parallel_for(policy, *this, "scatter_view_test: Prod"); } @@ -192,17 +194,17 @@ struct test_scatter_view_impl_cls -struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView scatter_view_type; - typedef Kokkos::View orig_view_type; + typedef Kokkos::View orig_view_type; scatter_view_type scatter_view; int scatterSize; @@ -228,7 +230,8 @@ struct test_scatter_view_impl_cls(0, n); + auto policy = + Kokkos::RangePolicy(0, n); Kokkos::parallel_for(policy, *this, "scatter_view_test: Prod"); } @@ -261,17 +264,17 @@ struct test_scatter_view_impl_cls -struct test_scatter_view_impl_cls { public: - typedef Kokkos::Experimental::ScatterView scatter_view_type; - typedef Kokkos::View orig_view_type; + typedef Kokkos::View orig_view_type; scatter_view_type scatter_view; int scatterSize; @@ -297,7 +300,7 @@ struct test_scatter_view_impl_cls(0, n); + Kokkos::RangePolicy policy(0, n); Kokkos::parallel_for(policy, *this, "scatter_view_test: Prod"); } @@ -330,20 +333,18 @@ struct test_scatter_view_impl_cls struct test_scatter_view_config { public: typedef - typename test_scatter_view_impl_cls::scatter_view_type scatter_view_def; - typedef typename test_scatter_view_impl_cls::orig_view_type orig_view_def; - test_scatter_view_config() {} - void run_test(int n) { // Test creation via create_scatter_view { @@ -351,7 +352,7 @@ struct test_scatter_view_config { scatter_view_def scatter_view = Kokkos::Experimental::create_scatter_view< op, duplication, contribution>(original_view); - test_scatter_view_impl_cls scatter_view_test_impl(scatter_view); scatter_view_test_impl.initialize(original_view); @@ -379,7 +380,7 @@ struct test_scatter_view_config { orig_view_def original_view("original_view", n); scatter_view_def scatter_view(original_view); - test_scatter_view_impl_cls scatter_view_test_impl(scatter_view); scatter_view_test_impl.initialize(original_view); @@ -405,17 +406,18 @@ struct test_scatter_view_config { } }; -template +template struct TestDuplicatedScatterView { TestDuplicatedScatterView(int n) { // ScatterSum test - test_scatter_view_config< - ExecSpace, Kokkos::LayoutRight, Kokkos::Experimental::ScatterDuplicated, - Kokkos::Experimental::ScatterNonAtomic, ScatterType> + test_scatter_view_config test_sv_right_config; test_sv_right_config.run_test(n); test_scatter_view_config< - ExecSpace, Kokkos::LayoutLeft, Kokkos::Experimental::ScatterDuplicated, + DeviceType, Kokkos::LayoutLeft, Kokkos::Experimental::ScatterDuplicated, Kokkos::Experimental::ScatterNonAtomic, ScatterType> test_sv_left_config; test_sv_left_config.run_test(n); @@ -429,6 +431,16 @@ template struct TestDuplicatedScatterView { TestDuplicatedScatterView(int) {} }; +template +struct TestDuplicatedScatterView< + Kokkos::Device, ScatterType> { + TestDuplicatedScatterView(int) {} +}; +template +struct TestDuplicatedScatterView< + Kokkos::Device, ScatterType> { + TestDuplicatedScatterView(int) {} +}; #endif #ifdef KOKKOS_ENABLE_ROCM @@ -440,17 +452,15 @@ struct TestDuplicatedScatterView { }; #endif -template +template void test_scatter_view(int n) { - // all of these configurations should compile okay, but only some of them are - // correct and/or sensible in terms of memory use - Kokkos::Experimental::UniqueToken unique_token{ExecSpace()}; + using execution_space = typename DeviceType::execution_space; // no atomics or duplication is only sensible if the execution space // is running essentially in serial (doesn't have to be Serial though, // we also test OpenMP with one thread: LAMMPS cares about that) - if (unique_token.size() == 1) { - test_scatter_view_config @@ -458,9 +468,9 @@ void test_scatter_view(int n) { test_sv_config.run_test(n); } #ifdef KOKKOS_ENABLE_SERIAL - if (!std::is_same::value) { + if (!std::is_same::value) { #endif - test_scatter_view_config test_sv_config; @@ -473,16 +483,18 @@ void test_scatter_view(int n) { constexpr std::size_t maximum_allowed_total_bytes = 8ull * 1024ull * 1024ull * 1024ull; std::size_t const maximum_allowed_copy_bytes = - maximum_allowed_total_bytes / std::size_t(unique_token.size()); + maximum_allowed_total_bytes / + std::size_t(execution_space().concurrency()); constexpr std::size_t bytes_per_value = sizeof(double) * 3; std::size_t const maximum_allowed_copy_values = maximum_allowed_copy_bytes / bytes_per_value; n = std::min(n, int(maximum_allowed_copy_values)); - TestDuplicatedScatterView duptest(n); + TestDuplicatedScatterView duptest(n); } +// FIXME_HIP ScatterView requires UniqueToken +#ifndef KOKKOS_ENABLE_HIP TEST(TEST_CATEGORY, scatterview) { -#ifndef KOKKOS_ENABLE_ROCM test_scatter_view(10); test_scatter_view(10); test_scatter_view(10); @@ -504,8 +516,38 @@ TEST(TEST_CATEGORY, scatterview) { test_scatter_view(big_n); test_scatter_view(big_n); test_scatter_view(big_n); +} + +TEST(TEST_CATEGORY, scatterview_devicetype) { + using device_type = + Kokkos::Device; + + test_scatter_view(10); + test_scatter_view(10); + test_scatter_view(10); + test_scatter_view(10); + +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + using cuda_device_type = Kokkos::Device; + test_scatter_view(10); + test_scatter_view(10); + test_scatter_view(10); + test_scatter_view(10); + using cudauvm_device_type = + Kokkos::Device; + test_scatter_view( + 10); + test_scatter_view( + 10); + test_scatter_view( + 10); + test_scatter_view( + 10); + } #endif } +#endif } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_Category.hpp b/lib/kokkos/containers/unit_tests/TestSerial_Category.hpp similarity index 100% rename from lib/kokkos/containers/unit_tests/serial/TestSerial_Category.hpp rename to lib/kokkos/containers/unit_tests/TestSerial_Category.hpp diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_Category.hpp b/lib/kokkos/containers/unit_tests/TestThreads_Category.hpp similarity index 100% rename from lib/kokkos/containers/unit_tests/threads/TestThreads_Category.hpp rename to lib/kokkos/containers/unit_tests/TestThreads_Category.hpp diff --git a/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp b/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp index 82782d3bf43b27cf3e63ea56435c305bf6a4ebd9..3ec3a4e5ec2a575943b107ea0e7a340eadf6ea44 100644 --- a/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp +++ b/lib/kokkos/containers/unit_tests/TestUnorderedMap.hpp @@ -174,6 +174,9 @@ struct TestFind { } // namespace Impl +// MSVC reports a syntax error for this test. +// WORKAROUND MSVC +#ifndef _WIN32 template void test_insert(uint32_t num_nodes, uint32_t num_inserts, uint32_t num_duplicates, bool near) { @@ -225,6 +228,7 @@ void test_insert(uint32_t num_nodes, uint32_t num_inserts, EXPECT_EQ(0u, map.size()); } } +#endif template void test_failed_insert(uint32_t num_nodes) { @@ -291,12 +295,17 @@ void test_deep_copy(uint32_t num_nodes) { } } +// FIXME_HIP deadlock +#ifndef KOKKOS_ENABLE_HIP +// WORKAROUND MSVC +#ifndef _WIN32 TEST(TEST_CATEGORY, UnorderedMap_insert) { for (int i = 0; i < 500; ++i) { test_insert(100000, 90000, 100, true); test_insert(100000, 90000, 100, false); } } +#endif TEST(TEST_CATEGORY, UnorderedMap_failed_insert) { for (int i = 0; i < 1000; ++i) test_failed_insert(10000); @@ -305,6 +314,19 @@ TEST(TEST_CATEGORY, UnorderedMap_failed_insert) { TEST(TEST_CATEGORY, UnorderedMap_deep_copy) { for (int i = 0; i < 2; ++i) test_deep_copy(10000); } +#endif + +TEST(TEST_CATEGORY, UnorderedMap_valid_empty) { + using Key = int; + using Value = int; + using Map = Kokkos::UnorderedMap; + + Map m{}; + Map n{}; + n = Map{m.capacity()}; + n.rehash(m.capacity()); + Kokkos::deep_copy(n, m); +} } // namespace Test diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_rank67.cpp b/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_rank67.cpp deleted file mode 100644 index 19e248dd9330486a2c3faf440cc7d4adb4f73757..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_rank67.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_ScatterView.cpp b/lib/kokkos/containers/unit_tests/cuda/TestCuda_ScatterView.cpp deleted file mode 100644 index 10b63d037d7e20575d4987ccfcc87c36ec591a8f..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_ScatterView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_StaticCrsGraph.cpp b/lib/kokkos/containers/unit_tests/cuda/TestCuda_StaticCrsGraph.cpp deleted file mode 100644 index 9c93da9c503ea73c7c29332f0e33da12c7562c83..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_StaticCrsGraph.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_UnorderedMap.cpp b/lib/kokkos/containers/unit_tests/cuda/TestCuda_UnorderedMap.cpp deleted file mode 100644 index b204e68977f1c84a79eff2a8fa44d5d9722081a8..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_UnorderedMap.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_ViewCtorPropEmbeddedDim.cpp b/lib/kokkos/containers/unit_tests/cuda/TestCuda_ViewCtorPropEmbeddedDim.cpp deleted file mode 100644 index c865deb0b252018fb3ae9aa5d444999124fe4551..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_ViewCtorPropEmbeddedDim.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_generic.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_generic.cpp deleted file mode 100644 index 778bd891d68befa2f3cc8a1ff39cc64d073da05f..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_generic.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_rank12345.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_rank12345.cpp deleted file mode 100644 index 0bb77a266d5b1feb85c02c65576eeaf76651b11f..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_rank12345.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_rank67.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_rank67.cpp deleted file mode 100644 index 6594cb3213f49b005e27f7a455ebc6e1cf639e0e..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynRankViewAPI_rank67.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynamicView.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynamicView.cpp deleted file mode 100644 index c1efc778a69455dd17d764330bd9420628c58dfd..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DynamicView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_ErrorReporter.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_ErrorReporter.cpp deleted file mode 100644 index 3f68c6d07f3bb0375f981f167497d21aa78c40be..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_ErrorReporter.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_OffsetView.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_OffsetView.cpp deleted file mode 100644 index 171930022820eb0a8d707612c4df6b3380283bac..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_OffsetView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_ScatterView.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_ScatterView.cpp deleted file mode 100644 index 8f9eb059189b266af3359f5c9de97bf07b8e1ef8..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_ScatterView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_StaticCrsGraph.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_StaticCrsGraph.cpp deleted file mode 100644 index 4f513efb0f0e981d88f91af075cc13ff2d73e524..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_StaticCrsGraph.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_UnorderedMap.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_UnorderedMap.cpp deleted file mode 100644 index 517135290a8ad7cf16b9ed20c4495e725e788148..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_UnorderedMap.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_ViewCtorPropEmbeddedDim.cpp b/lib/kokkos/containers/unit_tests/hpx/TestHPX_ViewCtorPropEmbeddedDim.cpp deleted file mode 100644 index de2e96be7301cc8bae137162463a6b8fbd6fa5a4..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_ViewCtorPropEmbeddedDim.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_generic.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_generic.cpp deleted file mode 100644 index 637be64dfa07202ef3c6a4950bb5f9cf2ab8e8e9..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_generic.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_rank12345.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_rank12345.cpp deleted file mode 100644 index 01b57a1690a70df1161b99004ea0af901ee8515a..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_rank12345.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_rank67.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_rank67.cpp deleted file mode 100644 index 7d742eaeed19353ef61eee454e8982169002c8f7..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynRankViewAPI_rank67.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynamicView.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynamicView.cpp deleted file mode 100644 index 75b616f168c0a6ad58c989b1f99d972e72d39c2a..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DynamicView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ErrorReporter.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ErrorReporter.cpp deleted file mode 100644 index 1f00f1853282b5dac360225ca35ecf31d12e476d..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ErrorReporter.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_OffsetView.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_OffsetView.cpp deleted file mode 100644 index 98531ff212e0b821a848a805b49443f855cb699d..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_OffsetView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ScatterView.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ScatterView.cpp deleted file mode 100644 index c49577f75ddb63c0b0238c634ffadf14169373ef..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ScatterView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_StaticCrsGraph.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_StaticCrsGraph.cpp deleted file mode 100644 index d8ab7b6b211ab8e17a39e279a7c55e306265f518..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_StaticCrsGraph.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_UnorderedMap.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_UnorderedMap.cpp deleted file mode 100644 index c3db0c0d888c8c0e439dd16998a44245f388091e..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_UnorderedMap.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_Vector.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_Vector.cpp deleted file mode 100644 index 7ac49f24fb3000b6852289311ae8b9e1189f9dce..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_Vector.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ViewCtorPropEmbeddedDim.cpp b/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ViewCtorPropEmbeddedDim.cpp deleted file mode 100644 index b9ae5d80ed93666e8d7be610d4763adfebac9290..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_ViewCtorPropEmbeddedDim.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_BitSet.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_BitSet.cpp deleted file mode 100644 index c72077eb4c7a1bd519eed3b2f0322d99409a7ebf..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_BitSet.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DualView.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_DualView.cpp deleted file mode 100644 index e9820395ba5bdba199e2948ac39956b3ae5c3b33..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DualView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_generic.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_generic.cpp deleted file mode 100644 index 7a3dd65f0efc1eb4ba5b5d7fa0912b6f0d09aee0..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_generic.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_rank12345.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_rank12345.cpp deleted file mode 100644 index 3963dd9c9cf8fbffc4a3763f472ca1073e7b9dbc..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_rank12345.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_rank67.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_rank67.cpp deleted file mode 100644 index b9a4582622807bb1f52aaf3e6c9302cf372fbb2f..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynRankViewAPI_rank67.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynamicView.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynamicView.cpp deleted file mode 100644 index 285ed916c432d499d4b230d9c63600a7f41e803f..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_DynamicView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_ErrorReporter.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_ErrorReporter.cpp deleted file mode 100644 index 2af2f79a16806659b4650313950d00aaa4d684bd..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_ErrorReporter.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_ScatterView.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_ScatterView.cpp deleted file mode 100644 index f7000bc99e206e852081488405d21fc24c1d9f04..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_ScatterView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_StaticCrsGraph.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_StaticCrsGraph.cpp deleted file mode 100644 index bb1e04c53647f2457f852f23230d9178ab2b1211..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_StaticCrsGraph.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_UnorderedMap.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_UnorderedMap.cpp deleted file mode 100644 index 7b8172fabdcdd04d81a0d9441abe5690ecb256bb..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_UnorderedMap.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_Vector.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_Vector.cpp deleted file mode 100644 index 1759797487c45f0c4ccb8b48e9140b4034bb4fdc..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_Vector.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/rocm/TestROCm_ViewCtorPropEmbeddedDim.cpp b/lib/kokkos/containers/unit_tests/rocm/TestROCm_ViewCtorPropEmbeddedDim.cpp deleted file mode 100644 index e95680445b5d75864367c1cf0c4268ac50907c15..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/rocm/TestROCm_ViewCtorPropEmbeddedDim.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_generic.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_generic.cpp deleted file mode 100644 index e8f577c6ac3d5445027298a208b823b66ca81576..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_generic.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_rank12345.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_rank12345.cpp deleted file mode 100644 index 7db8983c1b1332840d76aa4cfc748d9379a4e469..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_rank12345.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_rank67.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_rank67.cpp deleted file mode 100644 index a3a745efb5d1faa9fcd7e31c0014115290368249..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynRankViewAPI_rank67.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynamicView.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_DynamicView.cpp deleted file mode 100644 index 6624e3aa07f1fe0d790b9f517db8b3bd85fbcb40..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_DynamicView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_ErrorReporter.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_ErrorReporter.cpp deleted file mode 100644 index 280302275fe1bd6278ee7cbb9e7403af5642bbda..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_ErrorReporter.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_OffsetView.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_OffsetView.cpp deleted file mode 100644 index 5f8caf7c3f09af0022e041c7255ba970ca261634..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_OffsetView.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_ScatterView.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_ScatterView.cpp deleted file mode 100644 index 3f102e5cbc9d301664f9ca102b1db824c3540a7a..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_ScatterView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_StaticCrsGraph.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_StaticCrsGraph.cpp deleted file mode 100644 index 64f09e76e5899dc60541a1ea7ddc47a55c1c7bf4..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_StaticCrsGraph.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_UnorderedMap.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_UnorderedMap.cpp deleted file mode 100644 index a72be8e2fc25febb9afa102ed1cf2c5cf72d711e..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_UnorderedMap.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_Vector.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_Vector.cpp deleted file mode 100644 index 3826dab1d7053a12b821e5034fe52d8d52280d37..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_Vector.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_ViewCtorPropEmbeddedDim.cpp b/lib/kokkos/containers/unit_tests/serial/TestSerial_ViewCtorPropEmbeddedDim.cpp deleted file mode 100644 index 1251808bed7e610aa7eddb4e36b6973edf657712..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_ViewCtorPropEmbeddedDim.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_generic.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_generic.cpp deleted file mode 100644 index b015683bb9d9ac0f97c87a153b4260d9d86b351a..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_generic.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_rank12345.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_rank12345.cpp deleted file mode 100644 index dea56c408bd093d75895f8e32d76fa0e5a0ca672..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_rank12345.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_rank67.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_rank67.cpp deleted file mode 100644 index 17a289b506538dcf2249f0f85a96104b40f1b824..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynRankViewAPI_rank67.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynamicView.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_DynamicView.cpp deleted file mode 100644 index 499321dbbea92f52e12a0a21321425ef5f5d423e..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_DynamicView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_ErrorReporter.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_ErrorReporter.cpp deleted file mode 100644 index 513fdc4af62d92d83e8f21b74e5e300d33d2d1a8..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_ErrorReporter.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_OffsetView.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_OffsetView.cpp deleted file mode 100644 index 717967b2ef3d8bdafe6c92efdc3b556811a96a47..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_OffsetView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_ScatterView.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_ScatterView.cpp deleted file mode 100644 index fbb37606ea01e358b62accc2349a7e7268179b99..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_ScatterView.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_StaticCrsGraph.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_StaticCrsGraph.cpp deleted file mode 100644 index 29117c4ef6546190a130947094fe6918bbfc3f7c..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_StaticCrsGraph.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_UnorderedMap.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_UnorderedMap.cpp deleted file mode 100644 index 9a06288de46c989f992cf07eda485a29fd4f6d8a..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_UnorderedMap.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_Vector.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_Vector.cpp deleted file mode 100644 index 33e8b26c8ef375c61bc26ef2d961cb3494aeaa2b..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_Vector.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_ViewCtorPropEmbeddedDim.cpp b/lib/kokkos/containers/unit_tests/threads/TestThreads_ViewCtorPropEmbeddedDim.cpp deleted file mode 100644 index 567b2241953b5cbb956a6d04ad8b7acea93ff8cf..0000000000000000000000000000000000000000 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_ViewCtorPropEmbeddedDim.cpp +++ /dev/null @@ -1,47 +0,0 @@ - -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#include diff --git a/lib/kokkos/core/cmake/Dependencies.cmake b/lib/kokkos/core/cmake/Dependencies.cmake index 9ad7660bdf675f00758ddbaf7ef5a0555946d5cc..cc901a4ede0c6b17fbb89bfa9edfaf6544d7b269 100644 --- a/lib/kokkos/core/cmake/Dependencies.cmake +++ b/lib/kokkos/core/cmake/Dependencies.cmake @@ -1,5 +1,5 @@ TRIBITS_PACKAGE_DEFINE_DEPENDENCIES( - LIB_OPTIONAL_TPLS Pthread CUDA HWLOC QTHREADS DLlib HPX + LIB_OPTIONAL_TPLS Pthread CUDA HWLOC DLlib HPX TEST_OPTIONAL_TPLS CUSPARSE ) diff --git a/lib/kokkos/core/cmake/KokkosCore_config.h.in b/lib/kokkos/core/cmake/KokkosCore_config.h.in index f430c2b5f6512ee2e389ec61c322fefaffbfc7fc..095c869a32d1997a902898b8e5861299fc0a9e30 100644 --- a/lib/kokkos/core/cmake/KokkosCore_config.h.in +++ b/lib/kokkos/core/cmake/KokkosCore_config.h.in @@ -12,6 +12,7 @@ #endif #cmakedefine KOKKOS_ENABLE_CUDA +#cmakedefine KOKKOS_ENABLE_HIP #cmakedefine KOKKOS_ENABLE_OPENMP #cmakedefine KOKKOS_ENABLE_THREADS #cmakedefine KOKKOS_ENABLE_SERIAL @@ -63,6 +64,10 @@ #cmakedefine KOKKOS_ENABLE_ISA_POWERPCLE #endif +#ifdef KOKKOS_ENABLE_HIP +#cmakedefine KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE +#endif + #cmakedefine KOKKOS_ARCH_ARMV80 1 #cmakedefine KOKKOS_ARCH_ARMV81 1 #cmakedefine KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/perf_test/CMakeLists.txt b/lib/kokkos/core/perf_test/CMakeLists.txt index 79567835ee0446347acbd35b7f182cae58f03cb5..ca695e2700dd98f8838b042d6cea49854be637ef 100644 --- a/lib/kokkos/core/perf_test/CMakeLists.txt +++ b/lib/kokkos/core/perf_test/CMakeLists.txt @@ -48,6 +48,14 @@ SET(SOURCES PerfTest_ViewResize_8.cpp ) +IF(Kokkos_ENABLE_HIP) +# FIXME requires TeamPolicy + LIST(REMOVE_ITEM SOURCES + PerfTest_CustomReduction.cpp + PerfTest_ExecSpacePartitioning.cpp + ) +ENDIF() + # Per #374, we always want to build this test, but we only want to run # it as a PERFORMANCE test. That's why we separate building the test # from running the test. @@ -58,11 +66,14 @@ KOKKOS_INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../../algorithms/src") KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) -KOKKOS_ADD_EXECUTABLE_AND_TEST( - PerfTestExec - SOURCES ${SOURCES} - CATEGORIES PERFORMANCE -) +# This test currently times out for MSVC +IF(NOT KOKKOS_CXX_COMPILER_ID STREQUAL "MSVC") + KOKKOS_ADD_EXECUTABLE_AND_TEST( + PerfTestExec + SOURCES ${SOURCES} + CATEGORIES PERFORMANCE + ) +ENDIF() KOKKOS_ADD_EXECUTABLE_AND_TEST( PerformanceTest_TaskDag diff --git a/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp b/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp index a5a376565d812b69d48b217bd528c4fe769d448f..2717b133bd6915f8a4725f0e33a8add69b604324 100644 --- a/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp +++ b/lib/kokkos/core/perf_test/PerfTestBlasKernels.hpp @@ -49,64 +49,9 @@ namespace Kokkos { -template -struct Dot; - -template -struct DotSingle; - -template -struct Scale; - -template -struct AXPBY; - -/** \brief Y = alpha * X + beta * Y */ -template -void axpby(const ConstScalarType& alpha, const ConstVectorType& X, - const ConstScalarType& beta, const VectorType& Y) { - typedef AXPBY functor; - - parallel_for(Y.extent(0), functor(alpha, X, beta, Y)); -} - -/** \brief Y *= alpha */ -template -void scale(const ConstScalarType& alpha, const VectorType& Y) { - typedef Scale functor; - - parallel_for(Y.extent(0), functor(alpha, Y)); -} - -template -void dot(const ConstVectorType& X, const ConstVectorType& Y, - const Finalize& finalize) { - typedef Dot functor; - - parallel_reduce(X.extent(0), functor(X, Y), finalize); -} - -template -void dot(const ConstVectorType& X, const Finalize& finalize) { - typedef DotSingle functor; - - parallel_reduce(X.extent(0), functor(X), finalize); -} - -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { - -template +template struct Dot { - typedef typename Device::execution_space execution_space; + typedef typename Type::execution_space execution_space; static_assert(static_cast(Type::Rank) == static_cast(1), "Dot static_assert Fail: Rank != 1"); @@ -136,9 +81,9 @@ struct Dot { static void init(value_type& update) { update = 0; } }; -template +template struct DotSingle { - typedef typename Device::execution_space execution_space; + typedef typename Type::execution_space execution_space; static_assert(static_cast(Type::Rank) == static_cast(1), "DotSingle static_assert Fail: Rank != 1"); @@ -169,9 +114,9 @@ struct DotSingle { static void init(value_type& update) { update = 0; } }; -template +template struct Scale { - typedef typename Device::execution_space execution_space; + typedef typename VectorType::execution_space execution_space; static_assert(static_cast(ScalarType::Rank) == static_cast(0), @@ -196,10 +141,9 @@ struct Scale { void operator()(int i) const { Y[i] *= alpha(); } }; -template +template struct AXPBY { - typedef typename Device::execution_space execution_space; + typedef typename VectorType::execution_space execution_space; static_assert(static_cast(ScalarType::Rank) == static_cast(0), @@ -233,4 +177,42 @@ struct AXPBY { } /* namespace Kokkos */ +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +/** \brief Y = alpha * X + beta * Y */ +template +void axpby(const ConstScalarType& alpha, const ConstVectorType& X, + const ConstScalarType& beta, const VectorType& Y) { + typedef AXPBY functor; + + parallel_for(Y.extent(0), functor(alpha, X, beta, Y)); +} + +/** \brief Y *= alpha */ +template +void scale(const ConstScalarType& alpha, const VectorType& Y) { + typedef Scale functor; + + parallel_for(Y.extent(0), functor(alpha, Y)); +} + +template +void dot(const ConstVectorType& X, const ConstVectorType& Y, + const Finalize& finalize) { + typedef Dot functor; + + parallel_reduce(X.extent(0), functor(X, Y), finalize); +} + +template +void dot(const ConstVectorType& X, const Finalize& finalize) { + typedef DotSingle functor; + + parallel_reduce(X.extent(0), functor(X), finalize); +} + +} /* namespace Kokkos */ + #endif /* #ifndef KOKKOS_BLAS_KERNELS_HPP */ diff --git a/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp b/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp index 5e85163acfce8a648dca4732a3194af821d4dfb5..0916b230ecb65a50247fee3b31d5bb954dda247f 100644 --- a/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp +++ b/lib/kokkos/core/perf_test/PerfTestGramSchmidt.cpp @@ -69,7 +69,10 @@ struct InvNorm2 : public Kokkos::DotSingle { KOKKOS_INLINE_FUNCTION void final(value_type& result) const { - result = std::sqrt(result); +#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP + using std::sqrt; +#endif + result = sqrt(result); Rjj() = result; inv() = (0 < result) ? 1.0 / result : 0; } diff --git a/lib/kokkos/core/perf_test/PerfTestMain.cpp b/lib/kokkos/core/perf_test/PerfTestMain.cpp index 8cd015fbe85ccddbddbc1f3f9afc162424071ea8..8f4d48d57bf3f2c21ed78054a22abc6c4694bdcb 100644 --- a/lib/kokkos/core/perf_test/PerfTestMain.cpp +++ b/lib/kokkos/core/perf_test/PerfTestMain.cpp @@ -54,13 +54,13 @@ int command_line_num_args(int n = 0) { return n_args; } -const char* command_line_arg(int k, char** input_args = NULL) { +const char* command_line_arg(int k, char** input_args = nullptr) { static char** args; - if (input_args != NULL) args = input_args; + if (input_args != nullptr) args = input_args; if (command_line_num_args() > k) return args[k]; else - return NULL; + return nullptr; } } // namespace Test diff --git a/lib/kokkos/core/perf_test/PerfTest_Category.hpp b/lib/kokkos/core/perf_test/PerfTest_Category.hpp index c2cff22502096a670e863c2c1402c5e2fe20a1c8..0f24490bfeb77df3e86b4af14e9dcfdf5680efbb 100644 --- a/lib/kokkos/core/perf_test/PerfTest_Category.hpp +++ b/lib/kokkos/core/perf_test/PerfTest_Category.hpp @@ -50,7 +50,7 @@ namespace Test { extern int command_line_num_args(int n = 0); -extern const char* command_line_arg(int k, char** input_args = NULL); +extern const char* command_line_arg(int k, char** input_args = nullptr); } // namespace Test diff --git a/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp b/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp index d06851ec9b3cc553bb703d637782dbd68a1723da..75ca4a0d5a461f823edbd2b52a932902acfed1ea 100644 --- a/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp +++ b/lib/kokkos/core/perf_test/PerfTest_CustomReduction.cpp @@ -76,8 +76,8 @@ void custom_reduction_test(int N, int R, int num_trials) { Kokkos::ThreadVectorRange(team, 32), [&](const int& k, Scalar& max_) { const Scalar val = a((i * 32 + j) * 32 + k); - if (val > lmax) lmax = val; - if ((k == 11) && (j == 17) && (i == 2)) lmax = 11.5; + if (val > max_) max_ = val; + if ((k == 11) && (j == 17) && (i == 2)) max_ = 11.5; }, Kokkos::Max(t_max)); if (t_max > thread_max) thread_max = t_max; @@ -106,8 +106,8 @@ void custom_reduction_test(int N, int R, int num_trials) { Kokkos::ThreadVectorRange(team, 32), [&](const int& k, Scalar& max_) { const Scalar val = a((i * 32 + j) * 32 + k); - if (val > lmax) lmax = val; - if ((k == 11) && (j == 17) && (i == 2)) lmax = 11.5; + if (val > max_) max_ = val; + if ((k == 11) && (j == 17) && (i == 2)) max_ = 11.5; }, Kokkos::Max(t_max)); if (t_max > thread_max) thread_max = t_max; diff --git a/lib/kokkos/core/src/CMakeLists.txt b/lib/kokkos/core/src/CMakeLists.txt index eb058a982e199c3244e5640b61a95df5f61dd6c3..5b91b30787ae968b3cb05fa9a0ccee600023d0c3 100644 --- a/lib/kokkos/core/src/CMakeLists.txt +++ b/lib/kokkos/core/src/CMakeLists.txt @@ -35,6 +35,10 @@ IF (KOKKOS_ENABLE_OPENMP) ENDIF() ENDIF() +IF (KOKKOS_ENABLE_OPENMPTARGET) + APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/OpenMPTarget/*.cpp) +ENDIF() + IF (KOKKOS_ENABLE_PTHREAD) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/Threads/*.cpp) IF (KOKKOS_ENABLE_ETI) @@ -42,6 +46,10 @@ IF (KOKKOS_ENABLE_PTHREAD) ENDIF() ENDIF() +IF (KOKKOS_ENABLE_HIP) + APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/HIP/*.cpp) +ENDIF() + IF (KOKKOS_ENABLE_HPX) APPEND_GLOB(KOKKOS_CORE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/HPX/*.cpp) ENDIF() diff --git a/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp b/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp index 24be022d24c7f494c30e2f1f3a002f725e74314e..e11961d763a40821e21ae865aa3c21fd7123526a 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_CudaSpace.cpp @@ -147,7 +147,7 @@ void CudaSpace::access_error(const void *const) { /*--------------------------------------------------------------------------*/ bool CudaUVMSpace::available() { -#if defined(CUDA_VERSION) && (6000 <= CUDA_VERSION) && !defined(__APPLE__) +#if defined(CUDA_VERSION) && !defined(__APPLE__) enum { UVM_available = true }; #else enum { UVM_available = false }; @@ -219,19 +219,10 @@ void *CudaSpace::allocate(const size_t arg_alloc_size) const { void *CudaUVMSpace::allocate(const size_t arg_alloc_size) const { void *ptr = nullptr; - enum { max_uvm_allocations = 65536 }; - Cuda::impl_static_fence(); if (arg_alloc_size > 0) { Kokkos::Impl::num_uvm_allocations++; - if (Kokkos::Impl::num_uvm_allocations.load() > max_uvm_allocations) { - throw Experimental::CudaRawMemoryAllocationFailure( - arg_alloc_size, 1, - Experimental::RawMemoryAllocationFailure::FailureMode:: - MaximumCudaUVMAllocationsExceeded); - } - auto error_code = cudaMallocManaged(&ptr, arg_alloc_size, cudaMemAttachGlobal); @@ -360,7 +351,8 @@ SharedAllocationRecord::attach_texture_object( resDesc.res.linear.sizeInBytes = alloc_size; resDesc.res.linear.devPtr = alloc_ptr; - CUDA_SAFE_CALL(cudaCreateTextureObject(&tex_obj, &resDesc, &texDesc, NULL)); + CUDA_SAFE_CALL( + cudaCreateTextureObject(&tex_obj, &resDesc, &texDesc, nullptr)); return tex_obj; } @@ -797,6 +789,8 @@ SharedAllocationRecord // Iterate records to print orphaned memory ... void SharedAllocationRecord::print_records( std::ostream &s, const Kokkos::CudaSpace &, bool detail) { + (void)s; + (void)detail; #ifdef KOKKOS_DEBUG SharedAllocationRecord *r = &s_root_record; @@ -869,6 +863,8 @@ void SharedAllocationRecord::print_records( void SharedAllocationRecord::print_records( std::ostream &s, const Kokkos::CudaUVMSpace &, bool detail) { + (void)s; + (void)detail; #ifdef KOKKOS_DEBUG SharedAllocationRecord::print_host_accessible_records( s, "CudaUVM", &s_root_record, detail); @@ -881,6 +877,8 @@ void SharedAllocationRecord::print_records( void SharedAllocationRecord::print_records( std::ostream &s, const Kokkos::CudaHostPinnedSpace &, bool detail) { + (void)s; + (void)detail; #ifdef KOKKOS_DEBUG SharedAllocationRecord::print_host_accessible_records( s, "CudaHostPinned", &s_root_record, detail); @@ -895,7 +893,7 @@ void SharedAllocationRecord::print_records( //============================================================================== void *cuda_resize_scratch_space(std::int64_t bytes, bool force_shrink) { - static void *ptr = NULL; + static void *ptr = nullptr; static std::int64_t current_size = 0; if (current_size == 0) { current_size = bytes; @@ -917,6 +915,27 @@ void *cuda_resize_scratch_space(std::int64_t bytes, bool force_shrink) { return ptr; } +void cuda_prefetch_pointer(const Cuda &space, const void *ptr, size_t bytes, + bool to_device) { + if ((ptr == nullptr) || (bytes == 0)) return; + cudaPointerAttributes attr; + CUDA_SAFE_CALL(cudaPointerGetAttributes(&attr, ptr)); + // I measured this and it turns out prefetching towards the host slows + // DualView syncs down. Probably because the latency is not too bad in the + // first place for the pull down. If we want to change that provde + // cudaCpuDeviceId as the device if to_device is false +#if CUDA_VERSION < 10000 + bool is_managed = attr.isManaged; +#else + bool is_managed = attr.type == cudaMemoryTypeManaged; +#endif + if (to_device && is_managed && + space.cuda_device_prop().concurrentManagedAccess) { + CUDA_SAFE_CALL(cudaMemPrefetchAsync(ptr, bytes, space.cuda_device(), + space.cuda_stream())); + } +} + } // namespace Impl } // namespace Kokkos #else diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp index 3b674bbb30d13f1a2e68b6ed4749a73edcf80d40..01e60315ee0b7c2d8e06c618e44a521a3fc902ac 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Error.hpp @@ -58,10 +58,10 @@ namespace Impl { void cuda_device_synchronize(); void cuda_internal_error_throw(cudaError e, const char* name, - const char* file = NULL, const int line = 0); + const char* file = nullptr, const int line = 0); inline void cuda_internal_safe_call(cudaError e, const char* name, - const char* file = NULL, + const char* file = nullptr, const int line = 0) { if (cudaSuccess != e) { cuda_internal_error_throw(e, name, file, line); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp index b3c7edf67cdb1662399285893cd1e01e188f7556..37d0ffb687e40930e9599a169297efcaf81fb465 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.cpp @@ -115,10 +115,14 @@ __global__ void query_cuda_kernel_arch(int *d_arch) { /** Query what compute capability is actually launched to the device: */ int cuda_kernel_arch() { - int *d_arch = 0; + int arch = 0; + int *d_arch = nullptr; + cudaMalloc((void **)&d_arch, sizeof(int)); + cudaMemcpy(d_arch, &arch, sizeof(int), cudaMemcpyDefault); + query_cuda_kernel_arch<<<1, 1>>>(d_arch); - int arch = 0; + cudaMemcpy(&arch, d_arch, sizeof(int), cudaMemcpyDefault); cudaFree(d_arch); return arch; @@ -313,6 +317,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { enum { WordSize = sizeof(size_type) }; +#ifndef KOKKOS_IMPL_TURN_OFF_CUDA_HOST_INIT_CHECK #ifdef KOKKOS_ENABLE_DEPRECATED_CODE if (!HostSpace::execution_space::is_initialized()) { #else @@ -323,6 +328,7 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { "initialized"); throw_runtime_exception(msg); } +#endif const CudaInternalDevices &dev_info = CudaInternalDevices::singleton(); @@ -340,7 +346,8 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { if (ok_init && ok_dev) { const struct cudaDeviceProp &cudaProp = dev_info.m_cudaProp[cuda_device_id]; - m_cudaDev = cuda_device_id; + m_cudaDev = cuda_device_id; + m_deviceProp = cudaProp; CUDA_SAFE_CALL(cudaSetDevice(m_cudaDev)); Kokkos::Impl::cuda_device_synchronize(); @@ -348,17 +355,24 @@ void CudaInternal::initialize(int cuda_device_id, cudaStream_t stream) { // Query what compute capability architecture a kernel executes: m_cudaArch = cuda_kernel_arch(); + if (m_cudaArch == 0) { + std::stringstream ss; + ss << "Kokkos::Cuda::initialize ERROR: likely mismatch of architecture" + << std::endl; + std::string msg = ss.str(); + Kokkos::abort(msg.c_str()); + } + int compiled_major = m_cudaArch / 100; int compiled_minor = (m_cudaArch % 100) / 10; - if (compiled_major < 5 && cudaProp.major >= 5) { + if (compiled_major != cudaProp.major || compiled_minor < cudaProp.minor) { std::stringstream ss; ss << "Kokkos::Cuda::initialize ERROR: running kernels compiled for " "compute capability " << compiled_major << "." << compiled_minor - << " (< 5.0) on device with compute capability " << cudaProp.major - << "." << cudaProp.minor - << " (>=5.0), this would give incorrect results!" << std::endl; + << " on device with compute capability " << cudaProp.major << "." + << cudaProp.minor << " is not supported by CUDA!" << std::endl; std::string msg = ss.str(); Kokkos::abort(msg.c_str()); } @@ -742,7 +756,7 @@ int Cuda::impl_is_initialized() void Cuda::initialize(const Cuda::SelectDevice config, size_t num_instances) #else void Cuda::impl_initialize(const Cuda::SelectDevice config, - size_t num_instances) + size_t /*num_instances*/) #endif { Impl::CudaInternal::singleton().initialize(config.cuda_device_id, 0); @@ -826,6 +840,9 @@ const char *Cuda::name() { return "Cuda"; } cudaStream_t Cuda::cuda_stream() const { return m_space_instance->m_stream; } int Cuda::cuda_device() const { return m_space_instance->m_cudaDev; } +const cudaDeviceProp &Cuda::cuda_device_prop() const { + return m_space_instance->m_deviceProp; +} } // namespace Kokkos diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp index 9d2c939af85305cfb09a3b2fc53f85edfa2e86bc..2158f03dd58df353aa26ca7addd7485445921aec 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Instance.hpp @@ -97,6 +97,8 @@ class CudaInternal { int m_maxThreadsPerSM; int m_maxThreadsPerBlock; + cudaDeviceProp m_deviceProp; + mutable size_type m_scratchSpaceCount; mutable size_type m_scratchFlagsCount; mutable size_type m_scratchUnifiedCount; diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp index 590fa7a7847733c65189a815b37857a2d94ee57c..ca72b3b3021baca225fe0e61f188f0306a51c458 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp @@ -150,7 +150,7 @@ template __global__ static void cuda_parallel_launch_constant_or_global_memory( const DriverType* driver_ptr) { const DriverType& driver = - driver_ptr != NULL + driver_ptr != nullptr ? *driver_ptr : *((const DriverType*)kokkos_impl_cuda_constant_memory_buffer); @@ -162,7 +162,7 @@ __global__ __launch_bounds__(maxTperB, minBperSM) static void cuda_parallel_launch_constant_or_global_memory( const DriverType* driver_ptr) { const DriverType& driver = - driver_ptr != NULL + driver_ptr != nullptr ? *driver_ptr : *((const DriverType*)kokkos_impl_cuda_constant_memory_buffer); @@ -260,6 +260,8 @@ struct CudaParallelLaunch< (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); } +#else + (void)prefer_shmem; #endif // Copy functor to constant memory on the device @@ -317,6 +319,8 @@ struct CudaParallelLaunch, (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); } +#else + (void)prefer_shmem; #endif // Copy functor to constant memory on the device @@ -371,6 +375,8 @@ struct CudaParallelLaunch< (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); } +#else + (void)prefer_shmem; #endif KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); @@ -419,6 +425,8 @@ struct CudaParallelLaunch, (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); } +#else + (void)prefer_shmem; #endif KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); @@ -465,11 +473,13 @@ struct CudaParallelLaunch< (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); } +#else + (void)prefer_shmem; #endif KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); - DriverType* driver_ptr = NULL; + DriverType* driver_ptr = nullptr; driver_ptr = reinterpret_cast( cuda_instance->scratch_functor(sizeof(DriverType))); cudaMemcpyAsync(driver_ptr, &driver, sizeof(DriverType), @@ -516,11 +526,13 @@ struct CudaParallelLaunch, (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1))); } +#else + (void)prefer_shmem; #endif KOKKOS_ENSURE_CUDA_LOCK_ARRAYS_ON_DEVICE(); - DriverType* driver_ptr = NULL; + DriverType* driver_ptr = nullptr; driver_ptr = reinterpret_cast( cuda_instance->scratch_functor(sizeof(DriverType))); cudaMemcpyAsync(driver_ptr, &driver, sizeof(DriverType), diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp index 78db807478642fbfb4aa4450643d2e344d80f159..71ddadf74e275398eb3b87d67742e4834db8f80c 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Parallel.hpp @@ -192,7 +192,7 @@ class TeamPolicyInternal } template - inline int team_size_max(const FunctorType& f, const ReducerType& r, + inline int team_size_max(const FunctorType& f, const ReducerType& /*r*/, const ParallelReduceTag&) const { using closure_type = Impl::ParallelReduce, @@ -304,7 +304,7 @@ class TeamPolicyInternal return m_thread_scratch_size[level]; } - inline typename traits::execution_space space() const { return m_space; } + const typename traits::execution_space& space() const { return m_space; } TeamPolicyInternal() : m_space(typename traits::execution_space()), @@ -895,10 +895,10 @@ class ParallelFor, // Functor's reduce memory, team scan memory, and team shared memory depend // upon team size. - m_scratch_ptr[0] = NULL; + m_scratch_ptr[0] = nullptr; m_scratch_ptr[1] = m_team_size <= 0 - ? NULL + ? nullptr : cuda_resize_scratch_space( static_cast(m_scratch_size[1]) * static_cast(Cuda::concurrency() / @@ -1207,7 +1207,7 @@ class ParallelReduce, ReducerType, ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ViewType& arg_result, typename std::enable_if::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -1499,7 +1499,7 @@ class ParallelReduce, ReducerType, ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ViewType& arg_result, typename std::enable_if::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -1810,7 +1810,7 @@ class ParallelReduce, ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const ViewType& arg_result, typename std::enable_if::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -1824,7 +1824,7 @@ class ParallelReduce, m_team_begin(0), m_shmem_begin(0), m_shmem_size(0), - m_scratch_ptr{NULL, NULL}, + m_scratch_ptr{nullptr, nullptr}, m_league_size(arg_policy.league_size()), m_team_size(arg_policy.team_size()), m_vector_size(arg_policy.vector_length()) { @@ -1861,7 +1861,7 @@ class ParallelReduce, m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); m_scratch_ptr[1] = m_team_size <= 0 - ? NULL + ? nullptr : cuda_resize_scratch_space( static_cast(m_scratch_size[1]) * (static_cast(Cuda::concurrency() / @@ -1923,7 +1923,7 @@ class ParallelReduce, m_team_begin(0), m_shmem_begin(0), m_shmem_size(0), - m_scratch_ptr{NULL, NULL}, + m_scratch_ptr{nullptr, nullptr}, m_league_size(arg_policy.league_size()), m_team_size(arg_policy.team_size()), m_vector_size(arg_policy.vector_length()) { @@ -1960,7 +1960,7 @@ class ParallelReduce, m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); m_scratch_ptr[1] = m_team_size <= 0 - ? NULL + ? nullptr : cuda_resize_scratch_space( static_cast(m_scratch_size[1]) * static_cast(Cuda::concurrency() / diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp index 41431bfb8da350341deac44f7e764c17b43c73dc..7d996fba0438e05c33ba0dbaf4831b21240429df 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_ReduceScan.hpp @@ -133,7 +133,8 @@ __device__ bool cuda_inter_block_reduction( typename FunctorValueTraits::reference_type value, typename FunctorValueTraits::reference_type neutral, const JoinOp& join, Cuda::size_type* const m_scratch_space, - typename FunctorValueTraits::pointer_type const result, + typename FunctorValueTraits::pointer_type const /*result*/, Cuda::size_type* const m_scratch_flags, const int max_active_thread = blockDim.y) { #ifdef __CUDA_ARCH__ @@ -236,6 +237,12 @@ __device__ bool cuda_inter_block_reduction( // "value" return last_block; #else + (void)value; + (void)neutral; + (void)join; + (void)m_scratch_space; + (void)m_scratch_flags; + (void)max_active_thread; return true; #endif } @@ -426,6 +433,10 @@ __device__ inline // "value" return last_block; #else + (void)reducer; + (void)m_scratch_space; + (void)m_scratch_flags; + (void)max_active_thread; return true; #endif } @@ -500,7 +511,7 @@ struct CudaReductionsFunctor { } __device__ static inline bool scalar_inter_block_reduction( - const FunctorType& functor, const Cuda::size_type block_id, + const FunctorType& functor, const Cuda::size_type /*block_id*/, const Cuda::size_type block_count, Cuda::size_type* const shared_data, Cuda::size_type* const global_data, Cuda::size_type* const global_flags) { Scalar* const global_team_buffer_element = ((Scalar*)global_data); @@ -577,7 +588,7 @@ struct CudaReductionsFunctor { __device__ static inline void scalar_intra_block_reduction( const FunctorType& functor, Scalar value, const bool skip, Scalar* result, - const int shared_elements, Scalar* shared_team_buffer_element) { + const int /*shared_elements*/, Scalar* shared_team_buffer_element) { const int warp_id = (threadIdx.y * blockDim.x) / 32; Scalar* const my_shared_team_buffer_element = shared_team_buffer_element + threadIdx.y * blockDim.x + threadIdx.x; @@ -601,7 +612,7 @@ struct CudaReductionsFunctor { } __device__ static inline bool scalar_inter_block_reduction( - const FunctorType& functor, const Cuda::size_type block_id, + const FunctorType& functor, const Cuda::size_type /*block_id*/, const Cuda::size_type block_count, Cuda::size_type* const shared_data, Cuda::size_type* const global_data, Cuda::size_type* const global_flags) { Scalar* const global_team_buffer_element = ((Scalar*)global_data); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp index 237d2430d6cd6820aab0bb8773d6baf44a61e681..decbecc5e67bf4e42b27bacec7ce9935d10c53a1 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Task.hpp @@ -128,7 +128,7 @@ class TaskQueueSpecialization> { auto current_task = OptionalRef(); // Loop until all queues are empty and no tasks in flight - while (not queue.is_done()) { + while (!queue.is_done()) { if (warp_lane == 0) { // should be (?) same as team_exec.team_rank() == 0 // pop off a task current_task = diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp index ac9ab9660cbdd092fc8ccdeafc6f3bb68faf8649..d9d5ed0bf3265bab12dd94948343693736c25b7e 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Team.hpp @@ -164,6 +164,8 @@ class CudaTeamMember { template KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& val, const int& thread_id) const { + (void)val; + (void)thread_id; #ifdef __CUDA_ARCH__ if (1 == blockDim.z) { // team == block __syncthreads(); @@ -184,6 +186,9 @@ class CudaTeamMember { template KOKKOS_INLINE_FUNCTION void team_broadcast(Closure const& f, ValueType& val, const int& thread_id) const { + (void)f; + (void)val; + (void)thread_id; #ifdef __CUDA_ARCH__ f(val); @@ -230,6 +235,8 @@ class CudaTeamMember { typename std::enable_if::value>::type team_reduce(ReducerType const& reducer, typename ReducerType::value_type& value) const noexcept { + (void)reducer; + (void)value; #ifdef __CUDA_ARCH__ cuda_intra_block_reduction(reducer, value, blockDim.y); #endif /* #ifdef __CUDA_ARCH__ */ @@ -274,6 +281,8 @@ class CudaTeamMember { return base_data[threadIdx.y]; #else + (void)value; + (void)global_accum; return Type(); #endif } @@ -302,6 +311,8 @@ class CudaTeamMember { typename std::enable_if::value>::type vector_reduce(ReducerType const& reducer, typename ReducerType::value_type& value) { + (void)reducer; + (void)value; #ifdef __CUDA_ARCH__ if (blockDim.x == 1) return; @@ -509,6 +520,11 @@ class CudaTeamMember { return 0; #else + (void)reducer; + (void)global_scratch_flags; + (void)global_scratch_space; + (void)shmem; + (void)shmem_size; return 0; #endif } @@ -683,6 +699,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::TeamThreadRangeBoundariesStruct& loop_boundaries, const Closure& closure) { + (void)loop_boundaries; + (void)closure; #ifdef __CUDA_ARCH__ for (iType i = loop_boundaries.start + threadIdx.y; i < loop_boundaries.end; i += blockDim.y) @@ -706,6 +724,9 @@ KOKKOS_INLINE_FUNCTION parallel_reduce(const Impl::TeamThreadRangeBoundariesStruct< iType, Impl::CudaTeamMember>& loop_boundaries, const Closure& closure, const ReducerType& reducer) { + (void)loop_boundaries; + (void)closure; + (void)reducer; #ifdef __CUDA_ARCH__ typename ReducerType::value_type value; reducer.init(value); @@ -734,6 +755,9 @@ KOKKOS_INLINE_FUNCTION parallel_reduce(const Impl::TeamThreadRangeBoundariesStruct< iType, Impl::CudaTeamMember>& loop_boundaries, const Closure& closure, ValueType& result) { + (void)loop_boundaries; + (void)closure; + (void)result; #ifdef __CUDA_ARCH__ ValueType val; Kokkos::Sum reducer(val); @@ -755,6 +779,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::TeamVectorRangeBoundariesStruct& loop_boundaries, const Closure& closure) { + (void)loop_boundaries; + (void)closure; #ifdef __CUDA_ARCH__ for (iType i = loop_boundaries.start + threadIdx.y * blockDim.x + threadIdx.x; i < loop_boundaries.end; i += blockDim.y * blockDim.x) @@ -768,6 +794,9 @@ KOKKOS_INLINE_FUNCTION parallel_reduce(const Impl::TeamVectorRangeBoundariesStruct< iType, Impl::CudaTeamMember>& loop_boundaries, const Closure& closure, const ReducerType& reducer) { + (void)loop_boundaries; + (void)closure; + (void)reducer; #ifdef __CUDA_ARCH__ typename ReducerType::value_type value; reducer.init(value); @@ -788,6 +817,9 @@ KOKKOS_INLINE_FUNCTION parallel_reduce(const Impl::TeamVectorRangeBoundariesStruct< iType, Impl::CudaTeamMember>& loop_boundaries, const Closure& closure, ValueType& result) { + (void)loop_boundaries; + (void)closure; + (void)result; #ifdef __CUDA_ARCH__ ValueType val; Kokkos::Sum reducer(val); @@ -818,6 +850,8 @@ KOKKOS_INLINE_FUNCTION void parallel_for( const Impl::ThreadVectorRangeBoundariesStruct& loop_boundaries, const Closure& closure) { + (void)loop_boundaries; + (void)closure; #ifdef __CUDA_ARCH__ for (iType i = loop_boundaries.start + threadIdx.x; i < loop_boundaries.end; i += blockDim.x) { @@ -853,6 +887,9 @@ KOKKOS_INLINE_FUNCTION parallel_reduce(Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::CudaTeamMember> const& loop_boundaries, Closure const& closure, ReducerType const& reducer) { + (void)loop_boundaries; + (void)closure; + (void)reducer; #ifdef __CUDA_ARCH__ reducer.init(reducer.reference()); @@ -884,6 +921,9 @@ KOKKOS_INLINE_FUNCTION parallel_reduce(Impl::ThreadVectorRangeBoundariesStruct< iType, Impl::CudaTeamMember> const& loop_boundaries, Closure const& closure, ValueType& result) { + (void)loop_boundaries; + (void)closure; + (void)result; #ifdef __CUDA_ARCH__ result = ValueType(); @@ -912,6 +952,8 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( const Impl::ThreadVectorRangeBoundariesStruct& loop_boundaries, const Closure& closure) { + (void)loop_boundaries; + (void)closure; #ifdef __CUDA_ARCH__ // Extract value_type from closure @@ -986,6 +1028,7 @@ template KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct&, const FunctorType& lambda) { + (void)lambda; #ifdef __CUDA_ARCH__ if (threadIdx.x == 0) lambda(); #ifdef KOKKOS_IMPL_CUDA_SYNCWARP_NEEDS_MASK @@ -1003,6 +1046,7 @@ template KOKKOS_INLINE_FUNCTION void single( const Impl::ThreadSingleStruct&, const FunctorType& lambda) { + (void)lambda; #ifdef __CUDA_ARCH__ if (threadIdx.x == 0 && threadIdx.y == 0) lambda(); #ifdef KOKKOS_IMPL_CUDA_SYNCWARP_NEEDS_MASK @@ -1020,6 +1064,8 @@ template KOKKOS_INLINE_FUNCTION void single( const Impl::VectorSingleStruct&, const FunctorType& lambda, ValueType& val) { + (void)lambda; + (void)val; #ifdef __CUDA_ARCH__ if (threadIdx.x == 0) lambda(val); unsigned mask = blockDim.x == 32 @@ -1034,6 +1080,9 @@ template KOKKOS_INLINE_FUNCTION void single( const Impl::ThreadSingleStruct& single_struct, const FunctorType& lambda, ValueType& val) { + (void)single_struct; + (void)lambda; + (void)val; #ifdef __CUDA_ARCH__ if (threadIdx.x == 0 && threadIdx.y == 0) { lambda(val); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp index a0de4eaa7f429f0cc28dce861fd1316c9063ee84..3b470edbc35dd456f9da0d8d95002b54b7a612a2 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_UniqueToken.hpp @@ -76,41 +76,17 @@ class UniqueToken { explicit UniqueToken(execution_space const& = execution_space()); #endif -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION - UniqueToken(const UniqueToken& rhs) - : m_buffer(rhs.m_buffer), m_count(rhs.m_count) {} - - KOKKOS_INLINE_FUNCTION - UniqueToken(UniqueToken&& rhs) - : m_buffer(std::move(rhs.m_buffer)), m_count(std::move(rhs.m_count)) {} - - KOKKOS_INLINE_FUNCTION - UniqueToken& operator=(const UniqueToken& rhs) { - m_buffer = rhs.m_buffer; - m_count = rhs.m_count; - return *this; - } - - KOKKOS_INLINE_FUNCTION - UniqueToken& operator=(UniqueToken&& rhs) { - m_buffer = std::move(rhs.m_buffer); - m_count = std::move(rhs.m_count); - return *this; - } -#else - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION UniqueToken(const UniqueToken&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION UniqueToken(UniqueToken&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION UniqueToken& operator=(const UniqueToken&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION UniqueToken& operator=(UniqueToken&&) = default; -#endif /// \brief upper bound for acquired values, i.e. 0 <= value < size() KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp index 085262b8040660bd84ad7720da142354cce7148a..f75d2e56f7ae687fc4b6345bc6c1762d1eb801e5 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Vectorization.hpp @@ -55,7 +55,7 @@ namespace Kokkos { namespace Impl { // Include all lanes -constexpr unsigned shfl_all_mask = 0xffffffff; +constexpr unsigned shfl_all_mask = 0xffffffffu; //---------------------------------------------------------------------------- // Shuffle operations require input to be a register (stack) variable @@ -71,20 +71,32 @@ struct in_place_shfl_op { return *static_cast(this); } - // sizeof(Scalar) == sizeof(int) case + // sizeof(Scalar) <= sizeof(int) case template // requires _assignable_from_bits - __device__ inline typename std::enable_if::type + __device__ inline typename std::enable_if::type operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, unsigned mask = shfl_all_mask) const noexcept { + using shfl_type = int; + union conv_type { + Scalar orig; + shfl_type conv; + }; + conv_type tmp_in; + tmp_in.orig = in; + conv_type tmp_out; + tmp_out.conv = tmp_in.conv; + conv_type res; //------------------------------------------------ - reinterpret_cast(out) = self().do_shfl_op( - mask, reinterpret_cast(in), lane_or_delta, width); + res.conv = self().do_shfl_op( + mask, reinterpret_cast(tmp_out.conv), lane_or_delta, + width); //------------------------------------------------ + out = res.orig; } // TODO: figure out why 64-bit shfl fails in Clang -#if (CUDA_VERSION >= 9000) && (!defined(KOKKOS_COMPILER_CLANG)) +#if !defined(KOKKOS_COMPILER_CLANG) // sizeof(Scalar) == sizeof(double) case // requires _assignable_from_bits template @@ -140,6 +152,10 @@ struct in_place_shfl_fn : in_place_shfl_op { __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, int lane, int width) const noexcept { + (void)mask; + (void)val; + (void)lane; + (void)width; return KOKKOS_IMPL_CUDA_SHFL_MASK(mask, val, lane, width); } }; @@ -167,6 +183,10 @@ struct in_place_shfl_down_fn : in_place_shfl_op { __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, int lane, int width) const noexcept { + (void)mask; + (void)val; + (void)lane; + (void)width; return KOKKOS_IMPL_CUDA_SHFL_DOWN_MASK(mask, val, lane, width); } }; diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Version_9_8_Compatibility.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Version_9_8_Compatibility.hpp index 66231e55f9c0dd55956c34f77519ce8a5fddb501..0cdd84ce27157e118065c6fbcf2da71a875b81e0 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Version_9_8_Compatibility.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_Version_9_8_Compatibility.hpp @@ -1,20 +1,6 @@ #include #if defined(__CUDA_ARCH__) -#if (CUDA_VERSION < 9000) -#define KOKKOS_IMPL_CUDA_ACTIVEMASK 0 -#define KOKKOS_IMPL_CUDA_SYNCWARP __threadfence_block() -#define KOKKOS_IMPL_CUDA_SYNCWARP_MASK(m) \ - if (m) __threadfence_block() -#define KOKKOS_IMPL_CUDA_BALLOT(x) __ballot(x) -#define KOKKOS_IMPL_CUDA_BALLOT_MASK(m, x) __ballot(x) -#define KOKKOS_IMPL_CUDA_SHFL(x, y, z) __shfl(x, y, z) -#define KOKKOS_IMPL_CUDA_SHFL_MASK(m, x, y, z) __shfl(x, y, z) -#define KOKKOS_IMPL_CUDA_SHFL_UP(x, y, z) __shfl_up(x, y, z) -#define KOKKOS_IMPL_CUDA_SHFL_UP_MASK(m, x, y, z) __shfl_up(x, y, z) -#define KOKKOS_IMPL_CUDA_SHFL_DOWN(x, y, z) __shfl_down(x, y, z) -#define KOKKOS_IMPL_CUDA_SHFL_DOWN_MASK(m, x, y, z) __shfl_down(x, y, z) -#else #define KOKKOS_IMPL_CUDA_ACTIVEMASK __activemask() #define KOKKOS_IMPL_CUDA_SYNCWARP __syncwarp(0xffffffff) #define KOKKOS_IMPL_CUDA_SYNCWARP_MASK(m) __syncwarp(m) @@ -27,7 +13,6 @@ #define KOKKOS_IMPL_CUDA_SHFL_DOWN(x, y, z) \ __shfl_down_sync(0xffffffff, x, y, z) #define KOKKOS_IMPL_CUDA_SHFL_DOWN_MASK(m, x, y, z) __shfl_down_sync(m, x, y, z) -#endif #else #define KOKKOS_IMPL_CUDA_ACTIVEMASK 0 #define KOKKOS_IMPL_CUDA_SYNCWARP @@ -41,25 +26,13 @@ #define KOKKOS_IMPL_CUDA_SHFL_DOWN_MASK(m, x, y, z) 0 #endif -#if (CUDA_VERSION >= 9000) && (!defined(KOKKOS_COMPILER_CLANG)) +#if !defined(KOKKOS_COMPILER_CLANG) #define KOKKOS_IMPL_CUDA_MAX_SHFL_SIZEOF sizeof(long long) #else #define KOKKOS_IMPL_CUDA_MAX_SHFL_SIZEOF sizeof(int) #endif #if defined(__CUDA_ARCH__) -#if (CUDA_VERSION < 9000) -#define KOKKOS_IMPL_CUDA_SYNCWARP_OR_RETURN(MSG) \ - { \ - const unsigned b = __ballot(1); \ - if (b != 0xffffffff) { \ - printf(" SYNCWARP AT %s (%d,%d,%d) (%d,%d,%d) failed %x\n", MSG, \ - blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, \ - threadIdx.z, b); \ - return; \ - } \ - } -#else #define KOKKOS_IMPL_CUDA_SYNCWARP_OR_RETURN(MSG) \ { \ __syncwarp(); \ @@ -71,7 +44,6 @@ return; \ } \ } -#endif #else #define KOKKOS_IMPL_CUDA_SYNCWARP_OR_RETURN(MSG) #endif diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp index 08fdbea38728e7bcf0d1d57ff7c594180d6cc90a..364f334a4cdb944d40c2ff7813562a043834db5d 100644 --- a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_View.hpp @@ -84,8 +84,8 @@ struct CudaTextureFetch { KOKKOS_INLINE_FUNCTION CudaTextureFetch() : m_obj(), m_ptr(), m_offset() {} - KOKKOS_INLINE_FUNCTION - ~CudaTextureFetch() {} + KOKKOS_DEFAULTED_FUNCTION + ~CudaTextureFetch() = default; KOKKOS_INLINE_FUNCTION CudaTextureFetch(const CudaTextureFetch& rhs) @@ -153,8 +153,8 @@ struct CudaLDGFetch { KOKKOS_INLINE_FUNCTION CudaLDGFetch() : m_ptr() {} - KOKKOS_INLINE_FUNCTION - ~CudaLDGFetch() {} + KOKKOS_DEFAULTED_FUNCTION + ~CudaLDGFetch() = default; KOKKOS_INLINE_FUNCTION CudaLDGFetch(const CudaLDGFetch& rhs) : m_ptr(rhs.m_ptr) {} @@ -250,7 +250,7 @@ class ViewDataHandle< KOKKOS_INLINE_FUNCTION static handle_type assign(value_type* arg_data_ptr, track_type const& arg_tracker) { - if (arg_data_ptr == NULL) return handle_type(); + if (arg_data_ptr == nullptr) return handle_type(); #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) // Assignment of texture = non-texture requires creation of a texture object @@ -273,6 +273,7 @@ class ViewDataHandle< return handle_type(arg_data_ptr, r); #else + (void)arg_tracker; Kokkos::Impl::cuda_abort( "Cannot create Cuda texture object from within a Cuda kernel"); return handle_type(); diff --git a/lib/kokkos/core/src/Cuda/Kokkos_Cuda_fwd.hpp b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_fwd.hpp new file mode 100644 index 0000000000000000000000000000000000000000..4bda5e9411f05bfd76495c346f053acf958a84a7 --- /dev/null +++ b/lib/kokkos/core/src/Cuda/Kokkos_Cuda_fwd.hpp @@ -0,0 +1,67 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_CUDA_FWD_HPP_ +#define KOKKOS_CUDA_FWD_HPP_ +#if defined(KOKKOS_ENABLE_CUDA) +namespace Kokkos { + +class CudaSpace; ///< Memory space on Cuda GPU +class CudaUVMSpace; ///< Memory space on Cuda GPU with UVM +class CudaHostPinnedSpace; ///< Memory space on Host accessible to Cuda GPU +class Cuda; ///< Execution space for Cuda GPU + +namespace Impl { + +template +void cuda_prefetch_pointer(const ExecSpace& /*space*/, const void* /*ptr*/, + size_t /*bytes*/, bool /*to_device*/) {} + +void cuda_prefetch_pointer(const Cuda& space, const void* ptr, size_t bytes, + bool to_device); + +} // namespace Impl +} // namespace Kokkos +#endif +#endif diff --git a/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp b/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp new file mode 100644 index 0000000000000000000000000000000000000000..e2525d70c175e109663511078caae2a574a9f413 --- /dev/null +++ b/lib/kokkos/core/src/HIP/KokkosExp_HIP_IterateTile.hpp @@ -0,0 +1,3296 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_EXP_ITERATE_TILE_REFACTOR_HPP +#define KOKKOS_HIP_EXP_ITERATE_TILE_REFACTOR_HPP + +#include +#if defined(__HIPCC__) + +#include +#include +#include + +#include + +#if defined(KOKKOS_ENABLE_PROFILING) +#include +#include +#endif + +namespace Kokkos { +namespace Impl { + +// ------------------------------------------------------------------ // +// ParallelFor iteration pattern +template +struct DeviceIterateTile; + +// Rank 2 +// Specializations for void tag type +template +struct DeviceIterateTile<2, PolicyType, Functor, void> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + m_func(offset_0, offset_1); + } + } + } + } + } + // LR + else { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + m_func(offset_0, offset_1); + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Specializations for tag type +template +struct DeviceIterateTile<2, PolicyType, Functor, Tag> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (PolicyType::inner_direction == PolicyType::Left) { + // Loop over size maxnumblocks until full range covered + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + m_func(Tag(), offset_0, offset_1); + } + } + } + } + } else { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + m_func(Tag(), offset_0, offset_1); + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Rank 3 +// Specializations for void tag type +template +struct DeviceIterateTile<3, PolicyType, Functor, void> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (index_type tile_id2 = static_cast(hipBlockIdx_z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_z) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_z) < m_policy.m_tile[2]) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; + tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < + m_policy.m_tile[0]) { + m_func(offset_0, offset_1, offset_2); + } + } + } + } + } + } + } + // LR + else { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast(hipBlockIdx_z); + tile_id2 < m_policy.m_tile_end[2]; + tile_id2 += hipGridDim_z) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_z) < + m_policy.m_tile[2]) { + m_func(offset_0, offset_1, offset_2); + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Specializations for void tag type +template +struct DeviceIterateTile<3, PolicyType, Functor, Tag> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (PolicyType::inner_direction == PolicyType::Left) { + for (index_type tile_id2 = static_cast(hipBlockIdx_z); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_z) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_z) < m_policy.m_tile[2]) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; + tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < + m_policy.m_tile[0]) { + m_func(Tag(), offset_0, offset_1, offset_2); + } + } + } + } + } + } + } else { + for (index_type tile_id0 = static_cast(hipBlockIdx_x); + tile_id0 < m_policy.m_tile_end[0]; tile_id0 += hipGridDim_x) { + const index_type offset_0 = + tile_id0 * m_policy.m_tile[0] + + static_cast(hipThreadIdx_x) + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + static_cast(hipThreadIdx_x) < m_policy.m_tile[0]) { + for (index_type tile_id1 = static_cast(hipBlockIdx_y); + tile_id1 < m_policy.m_tile_end[1]; tile_id1 += hipGridDim_y) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast(hipBlockIdx_z); + tile_id2 < m_policy.m_tile_end[2]; + tile_id2 += hipGridDim_z) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_z) < + m_policy.m_tile[2]) { + m_func(Tag(), offset_0, offset_1, offset_2); + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Rank 4 +// Specializations for void tag type +template +struct DeviceIterateTile<4, PolicyType, Functor, void> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + const index_type temp0 = m_policy.m_tile_end[0]; + const index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl1 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl0) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) % numbl0; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) / numbl0; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + + for (index_type tile_id3 = static_cast(hipBlockIdx_z); + tile_id3 < m_policy.m_tile_end[3]; tile_id3 += hipGridDim_z) { + const index_type offset_3 = + tile_id3 * m_policy.m_tile[3] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + static_cast(hipThreadIdx_z) < m_policy.m_tile[3]) { + for (index_type tile_id2 = static_cast(hipBlockIdx_y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_y) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[2]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; + i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + thr_id0 < m_policy.m_tile[0]) { + m_func(offset_0, offset_1, offset_2, offset_3); + } + } + } + } + } + } + } + } + } + // LR + else { + const index_type temp0 = m_policy.m_tile_end[0]; + const index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl0 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl1) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) / numbl1; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) % numbl1; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && thr_id0 < m_policy.m_tile[0]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast(hipBlockIdx_y); + tile_id2 < m_policy.m_tile_end[2]; + tile_id2 += hipGridDim_y) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_y) < + m_policy.m_tile[2]) { + for (index_type tile_id3 = + static_cast(hipBlockIdx_z); + tile_id3 < m_policy.m_tile_end[3]; + tile_id3 += hipGridDim_z) { + const index_type offset_3 = + tile_id3 * m_policy.m_tile[3] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + static_cast(hipThreadIdx_z) < + m_policy.m_tile[3]) { + m_func(offset_0, offset_1, offset_2, offset_3); + } + } + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Specializations for void tag type +template +struct DeviceIterateTile<4, PolicyType, Functor, Tag> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (PolicyType::inner_direction == PolicyType::Left) { + const index_type temp0 = m_policy.m_tile_end[0]; + const index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl1 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl0) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) % numbl0; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) / numbl0; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + + for (index_type tile_id3 = static_cast(hipBlockIdx_z); + tile_id3 < m_policy.m_tile_end[3]; tile_id3 += hipGridDim_z) { + const index_type offset_3 = + tile_id3 * m_policy.m_tile[3] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + static_cast(hipThreadIdx_z) < m_policy.m_tile[3]) { + for (index_type tile_id2 = static_cast(hipBlockIdx_y); + tile_id2 < m_policy.m_tile_end[2]; tile_id2 += hipGridDim_y) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_y) < m_policy.m_tile[2]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; + i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + thr_id0 < m_policy.m_tile[0]) { + m_func(Tag(), offset_0, offset_1, offset_2, offset_3); + } + } + } + } + } + } + } + } + } else { + const index_type temp0 = m_policy.m_tile_end[0]; + const index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl0 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl1) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) / numbl1; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) % numbl1; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && thr_id0 < m_policy.m_tile[0]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + tile_id1 * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type tile_id2 = static_cast(hipBlockIdx_y); + tile_id2 < m_policy.m_tile_end[2]; + tile_id2 += hipGridDim_y) { + const index_type offset_2 = + tile_id2 * m_policy.m_tile[2] + + static_cast(hipThreadIdx_y) + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + static_cast(hipThreadIdx_y) < + m_policy.m_tile[2]) { + for (index_type tile_id3 = + static_cast(hipBlockIdx_z); + tile_id3 < m_policy.m_tile_end[3]; + tile_id3 += hipGridDim_z) { + const index_type offset_3 = + tile_id3 * m_policy.m_tile[3] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + static_cast(hipThreadIdx_z) < + m_policy.m_tile[3]) { + m_func(Tag(), offset_0, offset_1, offset_2, offset_3); + } + } + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Rank 5 +// Specializations for void tag type +template +struct DeviceIterateTile<5, PolicyType, Functor, void> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl1 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl0) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) % numbl0; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) / numbl0; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl3 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl2) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) % numbl2; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) / numbl2; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + + for (index_type tile_id4 = static_cast(hipBlockIdx_z); + tile_id4 < m_policy.m_tile_end[4]; tile_id4 += hipGridDim_z) { + const index_type offset_4 = + tile_id4 * m_policy.m_tile[4] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + static_cast(hipThreadIdx_z) < m_policy.m_tile[4]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; + i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + thr_id0 < m_policy.m_tile[0]) { + m_func(offset_0, offset_1, offset_2, offset_3, + offset_4); + } + } + } + } + } + } + } + } + } + } + } + // LR + else { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl0 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl1) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) / numbl1; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) % numbl1; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl2 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl3) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) / numbl3; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) % numbl3; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && thr_id0 < m_policy.m_tile[0]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type tile_id4 = + static_cast(hipBlockIdx_z); + tile_id4 < m_policy.m_tile_end[4]; + tile_id4 += hipGridDim_z) { + const index_type offset_4 = + tile_id4 * m_policy.m_tile[4] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + static_cast(hipThreadIdx_z) < + m_policy.m_tile[4]) { + m_func(offset_0, offset_1, offset_2, offset_3, + offset_4); + } + } + } + } + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Specializations for tag type +template +struct DeviceIterateTile<5, PolicyType, Functor, Tag> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl1 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl0) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) % numbl0; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) / numbl0; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl3 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl2) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) % numbl2; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) / numbl2; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + + for (index_type tile_id4 = static_cast(hipBlockIdx_z); + tile_id4 < m_policy.m_tile_end[4]; tile_id4 += hipGridDim_z) { + const index_type offset_4 = + tile_id4 * m_policy.m_tile[4] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + static_cast(hipThreadIdx_z) < m_policy.m_tile[4]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; + i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + thr_id0 < m_policy.m_tile[0]) { + m_func(Tag(), offset_0, offset_1, offset_2, offset_3, + offset_4); + } + } + } + } + } + } + } + } + } + } + } + // LR + else { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl0 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl1) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) / numbl1; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) % numbl1; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl2 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl3) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) / numbl3; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) % numbl3; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && thr_id0 < m_policy.m_tile[0]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type tile_id4 = + static_cast(hipBlockIdx_z); + tile_id4 < m_policy.m_tile_end[4]; + tile_id4 += hipGridDim_z) { + const index_type offset_4 = + tile_id4 * m_policy.m_tile[4] + + static_cast(hipThreadIdx_z) + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + static_cast(hipThreadIdx_z) < + m_policy.m_tile[4]) { + m_func(Tag(), offset_0, offset_1, offset_2, offset_3, + offset_4); + } + } + } + } + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Rank 6 +// Specializations for void tag type +template +struct DeviceIterateTile<6, PolicyType, Functor, void> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& rp_, const Functor& f_) + : m_policy(rp_), m_func(f_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl1 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl0) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) % numbl0; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) / numbl0; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl3 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl2) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) % numbl2; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) / numbl2; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + + temp0 = m_policy.m_tile_end[4]; + temp1 = m_policy.m_tile_end[5]; + const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl5 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl4) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id4 = + static_cast(hipBlockIdx_z) % numbl4; + const index_type tile_id5 = + static_cast(hipBlockIdx_z) / numbl4; + const index_type thr_id4 = + static_cast(hipThreadIdx_z) % m_policy.m_tile[4]; + const index_type thr_id5 = + static_cast(hipThreadIdx_z) / m_policy.m_tile[4]; + + for (index_type n = tile_id5; n < m_policy.m_tile_end[5]; n += numbl5) { + const index_type offset_5 = + n * m_policy.m_tile[5] + thr_id5 + + static_cast(m_policy.m_lower[5]); + if (offset_5 < m_policy.m_upper[5] && thr_id5 < m_policy.m_tile[5]) { + for (index_type m = tile_id4; m < m_policy.m_tile_end[4]; + m += numbl4) { + const index_type offset_4 = + m * m_policy.m_tile[4] + thr_id4 + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + thr_id4 < m_policy.m_tile[4]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type i = tile_id0; + i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + thr_id0 < m_policy.m_tile[0]) { + m_func(offset_0, offset_1, offset_2, offset_3, + offset_4, offset_5); + } + } + } + } + } + } + } + } + } + } + } + } + } + // LR + else { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl0 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl1) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) / numbl1; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) % numbl1; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl2 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl3) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) / numbl3; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) % numbl3; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + + temp0 = m_policy.m_tile_end[4]; + temp1 = m_policy.m_tile_end[5]; + const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl4 = + (temp0 * temp1 > max_blocks + ? index_type(max_blocks / numbl5) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id4 = + static_cast(hipBlockIdx_z) / numbl5; + const index_type tile_id5 = + static_cast(hipBlockIdx_z) % numbl5; + const index_type thr_id4 = + static_cast(hipThreadIdx_z) / m_policy.m_tile[5]; + const index_type thr_id5 = + static_cast(hipThreadIdx_z) % m_policy.m_tile[5]; + + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && thr_id0 < m_policy.m_tile[0]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type m = tile_id4; m < m_policy.m_tile_end[4]; + m += numbl4) { + const index_type offset_4 = + m * m_policy.m_tile[4] + thr_id4 + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + thr_id4 < m_policy.m_tile[4]) { + for (index_type n = tile_id5; + n < m_policy.m_tile_end[5]; n += numbl5) { + const index_type offset_5 = + n * m_policy.m_tile[5] + thr_id5 + + static_cast(m_policy.m_lower[5]); + if (offset_5 < m_policy.m_upper[5] && + thr_id5 < m_policy.m_tile[5]) { + m_func(offset_0, offset_1, offset_2, offset_3, + offset_4, offset_5); + } + } + } + } + } + } + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// Specializations for tag type +template +struct DeviceIterateTile<6, PolicyType, Functor, Tag> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_) + : m_policy(policy_), m_func(f_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl0 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl1 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl0) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) % numbl0; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) / numbl0; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[0]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[0]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl2 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl3 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl2) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) % numbl2; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) / numbl2; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[2]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[2]; + + temp0 = m_policy.m_tile_end[4]; + temp1 = m_policy.m_tile_end[5]; + const index_type numbl4 = (temp0 <= max_blocks ? temp0 : max_blocks); + const index_type numbl5 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl4) + : (temp1 <= max_blocks ? temp1 : max_blocks)); + + const index_type tile_id4 = + static_cast(hipBlockIdx_z) % numbl4; + const index_type tile_id5 = + static_cast(hipBlockIdx_z) / numbl4; + const index_type thr_id4 = + static_cast(hipThreadIdx_z) % m_policy.m_tile[4]; + const index_type thr_id5 = + static_cast(hipThreadIdx_z) / m_policy.m_tile[4]; + + for (index_type n = tile_id5; n < m_policy.m_tile_end[5]; n += numbl5) { + const index_type offset_5 = + n * m_policy.m_tile[5] + thr_id5 + + static_cast(m_policy.m_lower[5]); + if (offset_5 < m_policy.m_upper[5] && thr_id5 < m_policy.m_tile[5]) { + for (index_type m = tile_id4; m < m_policy.m_tile_end[4]; + m += numbl4) { + const index_type offset_4 = + m * m_policy.m_tile[4] + thr_id4 + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + thr_id4 < m_policy.m_tile[4]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type i = tile_id0; + i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && + thr_id0 < m_policy.m_tile[0]) { + m_func(Tag(), offset_0, offset_1, offset_2, + offset_3, offset_4, offset_5); + } + } + } + } + } + } + } + } + } + } + } + } + } + // LR + else { + index_type temp0 = m_policy.m_tile_end[0]; + index_type temp1 = m_policy.m_tile_end[1]; + const index_type numbl1 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl0 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl1) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id0 = + static_cast(hipBlockIdx_x) / numbl1; + const index_type tile_id1 = + static_cast(hipBlockIdx_x) % numbl1; + const index_type thr_id0 = + static_cast(hipThreadIdx_x) / m_policy.m_tile[1]; + const index_type thr_id1 = + static_cast(hipThreadIdx_x) % m_policy.m_tile[1]; + + temp0 = m_policy.m_tile_end[2]; + temp1 = m_policy.m_tile_end[3]; + const index_type numbl3 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl2 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl3) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id2 = + static_cast(hipBlockIdx_y) / numbl3; + const index_type tile_id3 = + static_cast(hipBlockIdx_y) % numbl3; + const index_type thr_id2 = + static_cast(hipThreadIdx_y) / m_policy.m_tile[3]; + const index_type thr_id3 = + static_cast(hipThreadIdx_y) % m_policy.m_tile[3]; + + temp0 = m_policy.m_tile_end[4]; + temp1 = m_policy.m_tile_end[5]; + const index_type numbl5 = (temp1 <= max_blocks ? temp1 : max_blocks); + const index_type numbl4 = + (temp0 * temp1 > max_blocks + ? static_cast(max_blocks / numbl5) + : (temp0 <= max_blocks ? temp0 : max_blocks)); + + const index_type tile_id4 = + static_cast(hipBlockIdx_z) / numbl5; + const index_type tile_id5 = + static_cast(hipBlockIdx_z) % numbl5; + const index_type thr_id4 = + static_cast(hipThreadIdx_z) / m_policy.m_tile[5]; + const index_type thr_id5 = + static_cast(hipThreadIdx_z) % m_policy.m_tile[5]; + + for (index_type i = tile_id0; i < m_policy.m_tile_end[0]; i += numbl0) { + const index_type offset_0 = + i * m_policy.m_tile[0] + thr_id0 + + static_cast(m_policy.m_lower[0]); + if (offset_0 < m_policy.m_upper[0] && thr_id0 < m_policy.m_tile[0]) { + for (index_type j = tile_id1; j < m_policy.m_tile_end[1]; + j += numbl1) { + const index_type offset_1 = + j * m_policy.m_tile[1] + thr_id1 + + static_cast(m_policy.m_lower[1]); + if (offset_1 < m_policy.m_upper[1] && + thr_id1 < m_policy.m_tile[1]) { + for (index_type k = tile_id2; k < m_policy.m_tile_end[2]; + k += numbl2) { + const index_type offset_2 = + k * m_policy.m_tile[2] + thr_id2 + + static_cast(m_policy.m_lower[2]); + if (offset_2 < m_policy.m_upper[2] && + thr_id2 < m_policy.m_tile[2]) { + for (index_type l = tile_id3; l < m_policy.m_tile_end[3]; + l += numbl3) { + const index_type offset_3 = + l * m_policy.m_tile[3] + thr_id3 + + static_cast(m_policy.m_lower[3]); + if (offset_3 < m_policy.m_upper[3] && + thr_id3 < m_policy.m_tile[3]) { + for (index_type m = tile_id4; m < m_policy.m_tile_end[4]; + m += numbl4) { + const index_type offset_4 = + m * m_policy.m_tile[4] + thr_id4 + + static_cast(m_policy.m_lower[4]); + if (offset_4 < m_policy.m_upper[4] && + thr_id4 < m_policy.m_tile[4]) { + for (index_type n = tile_id5; + n < m_policy.m_tile_end[5]; n += numbl5) { + const index_type offset_5 = + n * m_policy.m_tile[5] + thr_id5 + + static_cast(m_policy.m_lower[5]); + if (offset_5 < m_policy.m_upper[5] && + thr_id5 < m_policy.m_tile[5]) { + m_func(Tag(), offset_0, offset_1, offset_2, + offset_3, offset_4, offset_5); + } + } + } + } + } + } + } + } + } + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; +}; + +// ---------------------------------------------------------------------------------- + +namespace Reduce { + +template +using is_void = std::is_same; + +template +struct is_array_type : std::false_type { + using value_type = T; +}; + +template +struct is_array_type : std::true_type { + using value_type = T; +}; + +template +struct is_array_type : std::true_type { + using value_type = T; +}; + +// ------------------------------------------------------------------ // +template +struct DeviceIterateTile; + +// ParallelReduce iteration pattern +// Scalar reductions + +// num_blocks = min( num_tiles, max_num_blocks ); //i.e. determined by number of +// tiles and reduction algorithm constraints extract n-dim tile offsets (i.e. +// tile's global starting mulit-index) from the tileid = blockid using tile +// dimensions local indices within a tile extracted from (index_type)threadIdx_x +// using tile dims, constrained by blocksize combine tile and local id info for +// multi-dim global ids + +// Pattern: +// Each block+thread is responsible for a tile+local_id combo (additional when +// striding by num_blocks) +// 1. create offset arrays +// 2. loop over number of tiles, striding by griddim (equal to num tiles, or max +// num blocks) +// 3. temps set for tile_idx and thrd_idx, which will be modified +// 4. if LL vs LR: +// determine tile starting point offsets (multidim) +// determine local index offsets (multidim) +// concatentate tile offset + local offset for global multi-dim index +// if offset withinin range bounds AND local offset within tile bounds, call +// functor + +// ValueType = T +// Rank 2 +// Specializations for void tag type +template +struct DeviceIterateTile< + 2, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& rp_, const Functor& f_, + ValueType& v_) + : m_policy(rp_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + // Deduce this blocks tile_id + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_v); + } + } + } + } + + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Specializations for tag type +template +struct DeviceIterateTile< + 2, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& rp_, const Functor& f_, ValueType& v_) + : m_policy(rp_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = + (thrd_idx % + m_policy.m_tile[i]); // Move this to first computation, + // add to m_offset right away + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Rank 3 +// Specializations for void tag type +template +struct DeviceIterateTile< + 3, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = + (thrd_idx % + m_policy.m_tile[i]); // Move this to first computation, + // add to m_offset right away + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Specializations for void tag type +template +struct DeviceIterateTile< + 3, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = + (thrd_idx % + m_policy.m_tile[i]); // Move this to first computation, + // add to m_offset right away + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Rank 4 +// Specializations for void tag type +template +struct DeviceIterateTile< + 4, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Specializations for void tag type +template +struct DeviceIterateTile< + 4, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Rank 5 +// Specializations for void tag type +template +struct DeviceIterateTile< + 5, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Specializations for tag type +template +struct DeviceIterateTile< + 5, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Rank 6 +// Specializations for void tag type +template +struct DeviceIterateTile< + 6, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + ValueType& v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// Specializations for tag type +template +struct DeviceIterateTile< + 6, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + + __device__ DeviceIterateTile(const PolicyType& rp_, const Functor& f_, + ValueType& v_) + : m_policy(rp_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + ValueType& m_v; +}; + +// ValueType = T[], T* +// Rank 2 +// Specializations for void tag type +template +struct DeviceIterateTile< + 2, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + __device__ DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = + (thrd_idx % + m_policy.m_tile[i]); // Move this to first computation, + // add to m_offset right away + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Specializations for tag type +template +struct DeviceIterateTile< + 2, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& rp_, const Functor& f_, value_type* v_) + : m_policy(rp_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_v); + } + } + } // end for loop over num_tiles - product of tiles in each direction + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Rank 3 +// Specializations for void tag type +template +struct DeviceIterateTile< + 3, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = + (thrd_idx % + m_policy.m_tile[i]); // Move this to first computation, + // add to m_offset right away + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = + (thrd_idx % + m_policy.m_tile[i]); // Move this to first computation, + // add to m_offset right away + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Specializations for void tag type +template +struct DeviceIterateTile< + 3, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Rank 4 +// Specializations for void tag type +template +struct DeviceIterateTile< + 4, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Specializations for void tag type +template +struct DeviceIterateTile< + 4, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with (index_type)threadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Rank 5 +// Specializations for void tag type +template +struct DeviceIterateTile< + 5, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Specializations for tag type +template +struct DeviceIterateTile< + 5, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Rank 6 +// Specializations for void tag type +template +struct DeviceIterateTile< + 6, PolicyType, Functor, void, ValueType, + typename std::enable_if::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +// Specializations for tag type +template +struct DeviceIterateTile< + 6, PolicyType, Functor, Tag, ValueType, + typename std::enable_if::value && + !is_void::value>::type> { + using index_type = typename PolicyType::index_type; + using value_type = typename is_array_type::value_type; + + KOKKOS_INLINE_FUNCTION + DeviceIterateTile(const PolicyType& policy_, const Functor& f_, + value_type* v_) + : m_policy(policy_), m_func(f_), m_v(v_) {} + + static constexpr index_type max_blocks = 65535; + + KOKKOS_INLINE_FUNCTION + void exec_range() const { + if (static_cast(hipBlockIdx_x) < m_policy.m_num_tiles && + static_cast(hipThreadIdx_y) < m_policy.m_prod_tile_dims) { + index_type m_offset[PolicyType::rank]; // tile starting global id offset + index_type + m_local_offset[PolicyType::rank]; // tile starting global id offset + + for (index_type tileidx = static_cast(hipBlockIdx_x); + tileidx < m_policy.m_num_tiles; tileidx += hipGridDim_x) { + index_type tile_idx = + tileidx; // temp because tile_idx will be modified while + // determining tile starting point offsets + index_type thrd_idx = static_cast(hipThreadIdx_y); + bool in_bounds = true; + + // LL + if (PolicyType::inner_direction == PolicyType::Left) { + for (int i = 0; i < PolicyType::rank; ++i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + // LR + else { + for (int i = PolicyType::rank - 1; i >= 0; --i) { + m_offset[i] = + (tile_idx % m_policy.m_tile_end[i]) * m_policy.m_tile[i] + + m_policy.m_lower[i]; + tile_idx /= m_policy.m_tile_end[i]; + + // tile-local indices identified with hipThreadIdx_y + m_local_offset[i] = (thrd_idx % m_policy.m_tile[i]); + thrd_idx /= m_policy.m_tile[i]; + + m_offset[i] += m_local_offset[i]; + if (!(m_offset[i] < m_policy.m_upper[i] && + m_local_offset[i] < m_policy.m_tile[i])) { + in_bounds &= false; + } + } + if (in_bounds) { + m_func(Tag(), m_offset[0], m_offset[1], m_offset[2], m_offset[3], + m_offset[4], m_offset[5], m_v); + } + } + } + } + } // end exec_range + + private: + const PolicyType& m_policy; + const Functor& m_func; + value_type* m_v; +}; + +} // namespace Reduce +} // namespace Impl +} // namespace Kokkos +#endif +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp new file mode 100644 index 0000000000000000000000000000000000000000..1eaae38302477865f2072450aae93991618bb10e --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Abort.hpp @@ -0,0 +1,68 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_ABORT_HPP +#define KOKKOS_HIP_ABORT_HPP + +#include +#if defined(KOKKOS_ENABLE_HIP) + +#include + +namespace Kokkos { +namespace Impl { + +__device__ inline void hip_abort(char const *msg) { + printf("%s", msg); + // FIXME_HIP both abort and the __assertfail system call are currently + // implemented with __builtin_trap which causes the program to exit abnormally + // without printing the error message. + // abort(); +} + +} // namespace Impl +} // namespace Kokkos + +#endif +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp new file mode 100644 index 0000000000000000000000000000000000000000..c09e09f50041528a096f0a1edba7649d0fb5776a --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Atomic.hpp @@ -0,0 +1,576 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_ATOMIC_HPP +#define KOKKOS_HIP_ATOMIC_HPP + +#ifdef KOKKOS_ENABLE_HIP_ATOMICS + +namespace Kokkos { +// HIP can do: +// Types int/unsigned int +// variants: +// atomic_exchange/compare_exchange/fetch_add/fetch_sub/fetch_max/fetch_min/fetch_and/fetch_or/fetch_xor/fetch_inc/fetch_dec + +// atomic_exchange ------------------------------------------------------------- + +__inline__ __device__ int atomic_exchange(volatile int *const dest, + const int val) { + return atomicExch(const_cast(dest), val); +} + +__inline__ __device__ unsigned int atomic_exchange( + volatile unsigned int *const dest, const unsigned int val) { + return atomicExch(const_cast(dest), val); +} + +__inline__ __device__ unsigned long long int atomic_exchange( + volatile unsigned long long int *const dest, + const unsigned long long int val) { + return atomicExch(const_cast(dest), val); +} + +__inline__ __device__ float atomic_exchange(volatile float *const dest, + const float val) { + return atomicExch(const_cast(dest), val); +} + +template +__inline__ __device__ T atomic_exchange( + volatile T *const dest, + typename std::enable_if::type val) { + int tmp = atomicExch(reinterpret_cast(const_cast(dest)), + *reinterpret_cast(const_cast(&val))); + return reinterpret_cast(tmp); +} + +template +__inline__ __device__ T atomic_exchange( + volatile T *const dest, + typename std::enable_if::type val) { + typedef unsigned long long int type; + + type tmp = atomicExch(reinterpret_cast(const_cast(dest)), + *reinterpret_cast(const_cast(&val))); + return reinterpret_cast(tmp); +} + +template +__inline__ __device__ T +atomic_exchange(volatile T *const dest, + typename std::enable_if::type &val) { + // FIXME_HIP + Kokkos::abort("atomic_exchange not implemented for large types.\n"); + T return_val; + int done = 0; + unsigned int active = __ballot(1); + unsigned int done_active = 0; + while (active != done_active) { + if (!done) { + // if (Impl::lock_address_hip_space((void*)dest)) + { + return_val = *dest; + *dest = val; + // Impl::unlock_address_hip_space((void*)dest); + done = 1; + } + } + done_active = __ballot(done); + } + return return_val; +} + +// atomic_assign --------------------------------------------------------------- + +template +__inline__ __device__ void atomic_assign( + volatile T *const dest, + typename std::enable_if::type val) { + atomicExch(reinterpret_cast(const_cast(dest)), + *reinterpret_cast(const_cast(&val))); +} + +template +__inline__ __device__ void atomic_assign( + volatile T *const dest, + typename std::enable_if::type val) { + typedef unsigned long long int type; + atomicExch(reinterpret_cast(const_cast(dest)), + *reinterpret_cast(const_cast(&val))); +} + +template +__inline__ __device__ void atomic_assign( + volatile T *const dest, + typename std::enable_if::type val) { + atomic_exchange(dest, val); +} + +// atomic_compare_exchange ----------------------------------------------------- + +inline __device__ int atomic_compare_exchange(volatile int *dest, int compare, + const int &val) { + return atomicCAS(const_cast(dest), compare, val); +} + +inline __device__ unsigned int atomic_compare_exchange( + volatile unsigned int *dest, unsigned int compare, + const unsigned int &val) { + return atomicCAS(const_cast(dest), compare, val); +} + +inline __device__ unsigned long long int atomic_compare_exchange( + volatile unsigned long long int *dest, unsigned long long int compare, + const unsigned long long int &val) { + return atomicCAS(const_cast(dest), compare, val); +} + +template +__inline__ __device__ T atomic_compare_exchange( + volatile T *dest, T compare, + typename std::enable_if::type val) { + // FIXME_HIP UB + union U { + int i; + T f; + __inline__ __device__ U() {} + } idest, icompare, ival; + icompare.f = compare; + ival.f = val; + idest.i = atomicCAS(reinterpret_cast(const_cast(dest)), + icompare.i, ival.i); + return idest.f; +} + +template +__inline__ __device__ T atomic_compare_exchange( + volatile T *dest, T compare, + typename std::enable_if::type val) { + // FIXME_HIP UB + union U { + unsigned long long int i; + T f; + __inline__ __device__ U() {} + } idest, icompare, ival; + icompare.f = compare; + ival.f = val; + idest.i = atomicCAS( + reinterpret_cast(const_cast(dest)), + icompare.i, ival.i); + return idest.f; +} + +template +__inline__ __device__ T atomic_compare_exchange( + volatile T *const dest, const T &compare, + typename std::enable_if::type &val) { + // FIXME_HIP + Kokkos::abort("atomic_compare_exchange not implemented for large types.\n"); + T return_val; + int done = 0; + unsigned int active = __ballot(1); + unsigned int done_active = 0; + while (active != done_active) { + if (!done) { + // if (Impl::lock_address_hip_space((void*)dest)) + { + return_val = *dest; + if (return_val == compare) *dest = val; + // Impl::unlock_address_hip_space((void*)dest); + done = 1; + } + } + done_active = __ballot(done); + } + return return_val; +} + +// atomic_fetch_add ------------------------------------------------------------ + +inline __device__ int atomic_fetch_add(volatile int *dest, const int &val) { + return atomicAdd(const_cast(dest), val); +} + +inline __device__ unsigned int atomic_fetch_add(volatile unsigned int *dest, + const unsigned int &val) { + return atomicAdd(const_cast(dest), val); +} + +inline __device__ unsigned long long atomic_fetch_add( + volatile unsigned long long *dest, const unsigned long long &val) { + return atomicAdd(const_cast(dest), val); +} + +inline __device__ float atomic_fetch_add(volatile float *dest, + const float &val) { + return atomicAdd(const_cast(dest), val); +} + +template +inline __device__ T atomic_fetch_add( + volatile T *const dest, + typename std::enable_if::type val) { + // FIXME_HIP UB + union U { + int i; + T t; + __inline__ __device__ U() {} + } assume, oldval, newval; + + oldval.t = *dest; + + do { + assume.i = oldval.i; + newval.t = assume.t + val; + oldval.i = atomicCAS(reinterpret_cast(const_cast(dest)), + assume.i, newval.i); + } while (assume.i != oldval.i); + + return oldval.t; +} + +template +inline __device__ T atomic_fetch_add( + volatile T *const dest, + typename std::enable_if::type + val) { + // FIXME_HIP UB + union U { + unsigned long long i; + T t; + __inline__ __device__ U() {} + } assume, oldval, newval; + + oldval.t = *dest; + + do { + assume.i = oldval.i; + newval.t = assume.t + val; + oldval.i = atomic_compare_exchange( + reinterpret_cast(dest), assume.i, + newval.i); + } while (assume.i != oldval.i); + + return oldval.t; +} + +__inline__ __device__ char atomic_fetch_add(volatile char *dest, + const char &val) { + unsigned int oldval, newval, assume; + oldval = *reinterpret_cast(&dest); + + do { + assume = oldval; + newval = assume & 0x7fffff00 + ((assume & 0xff) + val) & 0xff; + oldval = + atomicCAS(reinterpret_cast(const_cast(dest)), + assume, newval); + } while (assume != oldval); + + return oldval; +} + +__inline__ __device__ short atomic_fetch_add(volatile short *dest, + const short &val) { + unsigned int oldval, newval, assume; + oldval = *reinterpret_cast(&dest); + + do { + assume = oldval; + newval = assume & 0x7fff0000 + ((assume & 0xffff) + val) & 0xffff; + oldval = + atomicCAS(reinterpret_cast(const_cast(dest)), + assume, newval); + } while (assume != oldval); + + return oldval; +} + +__inline__ __device__ long long atomic_fetch_add(volatile long long *dest, + const long long &val) { + return atomicAdd( + reinterpret_cast(const_cast(dest)), + val); +} + +template +__inline__ __device__ T +atomic_fetch_add(volatile T *dest, + typename std::enable_if::type val) { + // FIXME_HIP + Kokkos::abort("atomic_fetch_add not implemented for large types.\n"); + T return_val; + int done = 0; + unsigned int active = __ballot(1); + unsigned int done_active = 0; + while (active != done_active) { + if (!done) { + // if(Kokkos::Impl::lock_address_hip_space((void *)dest)) + { + return_val = *dest; + *dest = return_val + val; + // Kokkos::Impl::unlock_address_hip_space((void *)dest); + done = 1; + } + } + done_active = __ballot(done); + } + return return_val; +} + +// atmic_fetch_sub ------------------------------------------------------------- + +__inline__ __device__ int atomic_fetch_sub(volatile int *dest, int const &val) { + return atomicSub(const_cast(dest), val); +} + +__inline__ __device__ unsigned int atomic_fetch_sub(volatile unsigned int *dest, + unsigned int const &val) { + return atomicSub(const_cast(dest), val); +} + +__inline__ __device__ unsigned long long atomic_fetch_sub( + unsigned long long *dest, int64_t const &val) { + return atomicAdd(reinterpret_cast(dest), + -reinterpret_cast(val)); +} + +__inline__ __device__ char atomic_fetch_sub(volatile char *dest, + const char &val) { + unsigned int oldval, newval, assume; + oldval = *reinterpret_cast(dest); + + do { + assume = oldval; + newval = assume & 0x7fffff00 + ((assume & 0xff) - val) & 0xff; + oldval = + atomicCAS(reinterpret_cast(const_cast(dest)), + assume, newval); + } while (assume != oldval); + + return oldval; +} + +__inline__ __device__ short atomic_fetch_sub(volatile short *dest, + const short &val) { + unsigned int oldval, newval, assume; + oldval = *reinterpret_cast(dest); + + do { + assume = oldval; + newval = assume & 0x7fff0000 + ((assume & 0xffff) - val) & 0xffff; + oldval = + atomicCAS(reinterpret_cast(const_cast(dest)), + assume, newval); + } while (assume != oldval); + + return oldval; +} + +__inline__ __device__ long long atomic_fetch_sub(volatile long long *dest, + const long long &val) { + return static_cast(atomicAdd( + reinterpret_cast(const_cast(dest)), + -reinterpret_cast(val))); +} + +template +__inline__ __device__ T atomic_fetch_sub( + volatile T *dest, + typename std::enable_if::type val) { + // FIXME_HIP UB + union U { + int i; + T t; + __inline__ __device__ U() {} + } assume, oldval, newval; + + oldval.t = *dest; + + do { + assume.i = oldval.i; + newval.t = assume.t - val; + oldval.i = atomic_compare_exchange(reinterpret_cast(dest), + assume.i, newval.i); + } while (assume.i != oldval.i); + + return oldval.t; +} + +template +inline __device__ T atomic_fetch_sub( + volatile T *const dest, + typename std::enable_if::type + val) { + // FIXME_HIP UB + union U { + unsigned long long i; + T t; + __inline__ __device__ U() {} + } assume, oldval, newval; + + oldval.t = *dest; + + do { + assume.i = oldval.i; + newval.t = assume.t - val; + oldval.i = atomic_compare_exchange( + reinterpret_cast(dest), assume.i, + newval.i); + } while (assume.i != oldval.i); + + return oldval.t; +} + +template +__inline__ __device__ T atomic_fetch_sub( + volatile T *dest, + typename std::enable_if::type val) { + unsigned int oldval, newval, assume; + oldval = *reinterpret_cast(dest); + + do { + assume = oldval; + newval = assume & 0x7fffff00 + ((assume & 0xff) - val) & 0xff; + oldval = atomicCAS(reinterpret_cast(dest), assume, newval); + } while (assume != oldval); + + return reinterpret_cast(oldval) & 0xff; +} + +template +__inline__ __device__ T atomic_fetch_sub( + volatile T *dest, + typename std::enable_if::type val) { + unsigned int oldval, newval, assume; + oldval = *reinterpret_cast(dest); + + do { + assume = oldval; + newval = assume & 0x7fff0000 + ((assume & 0xffff) - val) & 0xffff; + oldval = atomicCAS(reinterpret_cast(dest), assume, newval); + } while (assume != oldval); + + return reinterpret_cast(oldval) & 0xffff; +} + +template +__inline__ __device__ T +atomic_fetch_sub(volatile T *const dest, + typename std::enable_if::type &val) { + // FIXME_HIP + Kokkos::abort("atomic_fetch_sub not implemented for large types.\n"); + T return_val; + int done = 0; + unsigned int active = __ballot(1); + unsigned int done_active = 0; + while (active != done_active) { + if (!done) { + /*if (Impl::lock_address_hip_space((void*)dest)) */ + { + return_val = *dest; + *dest = return_val - val; + // Impl::unlock_address_hip_space((void*)dest); + done = 1; + } + } + done_active = __ballot(done); + } + return return_val; +} + +// atomic_fetch_or ------------------------------------------------------------- + +__inline__ __device__ int atomic_fetch_or(volatile int *const dest, + int const val) { + return atomicOr(const_cast(dest), val); +} + +__inline__ __device__ unsigned int atomic_fetch_or( + volatile unsigned int *const dest, unsigned int const val) { + return atomicOr(const_cast(dest), val); +} + +__inline__ __device__ unsigned long long int atomic_fetch_or( + volatile unsigned long long int *const dest, + unsigned long long int const val) { + return atomicOr(const_cast(dest), val); +} + +// atomic_fetch_and ------------------------------------------------------------ + +__inline__ __device__ int atomic_fetch_and(volatile int *const dest, + int const val) { + return atomicAnd(const_cast(dest), val); +} + +__inline__ __device__ unsigned int atomic_fetch_and( + volatile unsigned int *const dest, unsigned int const val) { + return atomicAnd(const_cast(dest), val); +} + +__inline__ __device__ unsigned long long int atomic_fetch_and( + volatile unsigned long long int *const dest, + unsigned long long int const val) { + return atomicAnd(const_cast(dest), val); +} +} // namespace Kokkos +#endif + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8799d359ff012462232a2a742c85d3195717379d --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_BlockSize_Deduction.hpp @@ -0,0 +1,339 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_BLOCKSIZE_DEDUCTION_HPP +#define KOKKOS_HIP_BLOCKSIZE_DEDUCTION_HPP + +#include + +#if defined(__HIPCC__) + +#include +#include + +namespace Kokkos { +namespace Experimental { +namespace Impl { +template +struct HIPGetMaxBlockSize; + +template +int hip_get_max_block_size(typename DriverType::functor_type const &f, + size_t const vector_length, + size_t const shmem_extra_block, + size_t const shmem_extra_thread) { + return HIPGetMaxBlockSize::get_block_size( + f, vector_length, shmem_extra_block, shmem_extra_thread); +} + +template +int hip_get_max_block_size(const HIPInternal * /*hip_instance*/, + const hipFuncAttributes &attr, + const FunctorType & /*f*/, + const size_t /*vector_length*/, + const size_t /*shmem_block*/, + const size_t /*shmem_thread*/) { + // FIXME_HIP find a better algorithm. Be aware that + // maxThreadsPerMultiProcessor, regsPerBlock, and l2CacheSize are bugged and + // always return zero + // https://github.com/ROCm-Developer-Tools/HIP/blob/6c5fa32815650cc20a4f783d09b013610348a4d5/include/hip/hcc_detail/hip_runtime_api.h#L438-L440 + // and we don't have access to the same information than we do for CUDA + + int const max_threads_per_block_mi60 = 1024; + int const max_threads_per_block = LaunchBounds::maxTperB == 0 + ? max_threads_per_block_mi60 + : LaunchBounds::maxTperB; + return std::min(attr.maxThreadsPerBlock, max_threads_per_block); +} + +template +struct HIPGetMaxBlockSize, true> { + static int get_block_size(typename DriverType::functor_type const &f, + size_t const vector_length, + size_t const shmem_extra_block, + size_t const shmem_extra_thread) { + unsigned int numBlocks = 0; + int blockSize = 1024; + int sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, hip_parallel_launch_constant_memory, blockSize, + sharedmem); + + if (numBlocks > 0) return blockSize; + while (blockSize > HIPTraits::WarpSize && numBlocks == 0) { + blockSize /= 2; + sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, hip_parallel_launch_constant_memory, + blockSize, sharedmem); + } + int blockSizeUpperBound = blockSize * 2; + while (blockSize < blockSizeUpperBound && numBlocks > 0) { + blockSize += HIPTraits::WarpSize; + sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, hip_parallel_launch_constant_memory, + blockSize, sharedmem); + } + return blockSize - HIPTraits::WarpSize; + } +}; + +template +struct HIPGetOptBlockSize; + +template +int hip_get_opt_block_size(typename DriverType::functor_type const &f, + size_t const vector_length, + size_t const shmem_extra_block, + size_t const shmem_extra_thread) { + return HIPGetOptBlockSize< + DriverType, LaunchBounds, + (HIPTraits::ConstantMemoryUseThreshold < + sizeof(DriverType))>::get_block_size(f, vector_length, shmem_extra_block, + shmem_extra_thread); +} + +template +int hip_get_opt_block_size(HIPInternal const * /*hip_instance*/, + hipFuncAttributes const &attr, + FunctorType const & /*f*/, + size_t const /*vector_length*/, + size_t const /*shmem_block*/, + size_t const /*shmem_thread*/) { + // FIXME_HIP find a better algorithm. Be aware that + // maxThreadsPerMultiProcessor, regsPerBlock, and l2CacheSize are bugged and + // always return zero + // https://github.com/ROCm-Developer-Tools/HIP/blob/6c5fa32815650cc20a4f783d09b013610348a4d5/include/hip/hcc_detail/hip_runtime_api.h#L438-L440 + // and we don't have access to the same information than we do for CUDA + + int const max_threads_per_block_mi60 = 1024; + int const max_threads_per_block = LaunchBounds::maxTperB == 0 + ? max_threads_per_block_mi60 + : LaunchBounds::maxTperB; + return std::min(attr.maxThreadsPerBlock, max_threads_per_block); +} + +// FIXME_HIP the code is identical to the false struct except for +// hip_parallel_launch_constant_memory +template +struct HIPGetOptBlockSize, true> { + static int get_block_size(typename DriverType::functor_type const &f, + size_t const vector_length, + size_t const shmem_extra_block, + size_t const shmem_extra_thread) { + int blockSize = HIPTraits::WarpSize / 2; + int numBlocks; + int sharedmem; + int maxOccupancy = 0; + int bestBlockSize = 0; + + while (blockSize < 1024) { + blockSize *= 2; + + // calculate the occupancy with that optBlockSize and check whether its + // larger than the largest one found so far + sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, hip_parallel_launch_constant_memory, + blockSize, sharedmem); + if (maxOccupancy < numBlocks * blockSize) { + maxOccupancy = numBlocks * blockSize; + bestBlockSize = blockSize; + } + } + return bestBlockSize; + } +}; + +template +struct HIPGetOptBlockSize, false> { + static int get_block_size(const typename DriverType::functor_type &f, + const size_t vector_length, + const size_t shmem_extra_block, + const size_t shmem_extra_thread) { + int blockSize = HIPTraits::WarpSize / 2; + int numBlocks; + int sharedmem; + int maxOccupancy = 0; + int bestBlockSize = 0; + + while (blockSize < 1024) { + blockSize *= 2; + sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, hip_parallel_launch_local_memory, blockSize, + sharedmem); + + if (maxOccupancy < numBlocks * blockSize) { + maxOccupancy = numBlocks * blockSize; + bestBlockSize = blockSize; + } + } + return bestBlockSize; + } +}; + +// FIXME_HIP the code is identical to the false struct except for +// hip_parallel_launch_constant_memory +template +struct HIPGetOptBlockSize< + DriverType, Kokkos::LaunchBounds, + true> { + static int get_block_size(const typename DriverType::functor_type &f, + const size_t vector_length, + const size_t shmem_extra_block, + const size_t shmem_extra_thread) { + int blockSize = HIPTraits::WarpSize / 2; + int numBlocks; + int sharedmem; + int maxOccupancy = 0; + int bestBlockSize = 0; + int max_threads_per_block = + std::min(MaxThreadsPerBlock, + hip_internal_maximum_warp_count() * HIPTraits::WarpSize); + + while (blockSize < max_threads_per_block) { + blockSize *= 2; + + // calculate the occupancy with that optBlockSize and check whether its + // larger than the largest one found so far + sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, + hip_parallel_launch_constant_memory, + blockSize, sharedmem); + if (numBlocks >= static_cast(MinBlocksPerSM) && + blockSize <= static_cast(MaxThreadsPerBlock)) { + if (maxOccupancy < numBlocks * blockSize) { + maxOccupancy = numBlocks * blockSize; + bestBlockSize = blockSize; + } + } + } + if (maxOccupancy > 0) return bestBlockSize; + return -1; + } +}; + +template +struct HIPGetOptBlockSize< + DriverType, Kokkos::LaunchBounds, + false> { + static int get_block_size(const typename DriverType::functor_type &f, + const size_t vector_length, + const size_t shmem_extra_block, + const size_t shmem_extra_thread) { + int blockSize = HIPTraits::WarpSize / 2; + int numBlocks; + int sharedmem; + int maxOccupancy = 0; + int bestBlockSize = 0; + int max_threads_per_block = + std::min(MaxThreadsPerBlock, + hip_internal_maximum_warp_count() * HIPTraits::WarpSize); + + while (blockSize < max_threads_per_block) { + blockSize *= 2; + sharedmem = + shmem_extra_block + shmem_extra_thread * (blockSize / vector_length) + + ::Kokkos::Impl::FunctorTeamShmemSize< + typename DriverType::functor_type>::value(f, blockSize / + vector_length); + + hipOccupancyMaxActiveBlocksPerMultiprocessor( + &numBlocks, + hip_parallel_launch_local_memory, + blockSize, sharedmem); + if (numBlocks >= int(MinBlocksPerSM) && + blockSize <= int(MaxThreadsPerBlock)) { + if (maxOccupancy < numBlocks * blockSize) { + maxOccupancy = numBlocks * blockSize; + bestBlockSize = blockSize; + } + } + } + if (maxOccupancy > 0) return bestBlockSize; + return -1; + } +}; + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos + +#endif + +#endif diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_ViewAPI_b.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp similarity index 50% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_ViewAPI_b.cpp rename to lib/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp index b37937369a6df295d96e5e5e9e1fa7ef52995797..2abded0e99a6ab1cd5719789e100156aa3ef9cc1 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_ViewAPI_b.cpp +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Error.hpp @@ -42,91 +42,69 @@ //@HEADER */ -#include +#ifndef KOKKOS_HIP_ERROR_HPP +#define KOKKOS_HIP_ERROR_HPP -namespace Test { +#include +#include -TEST_F(qthreads, impl_shared_alloc) { -#if 0 - test_shared_alloc< Kokkos::HostSpace, Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, impl_view_mapping_b) { -#if 0 - test_view_mapping_subview< Kokkos::Qthreads >(); - TestViewMappingAtomic< Kokkos::Qthreads >::run(); -#endif -} +#include -TEST_F(qthreads, view_api) { -#if 0 - TestViewAPI< double, Kokkos::Qthreads >(); -#endif -} +#include -TEST_F(qthreads, view_nested_view) { -#if 0 - ::Test::view_nested_view< Kokkos::Qthreads >(); -#endif -} +namespace Kokkos { +namespace Impl { -TEST_F(qthreads, view_remap) { -#if 0 - enum { N0 = 3, N1 = 2, N2 = 8, N3 = 9 }; +void hip_internal_error_throw(hipError_t e, const char* name, + const char* file = NULL, const int line = 0); - typedef Kokkos::View< double*[N1][N2][N3], - Kokkos::LayoutRight, - Kokkos::Qthreads > output_type; +inline void hip_internal_safe_call(hipError_t e, const char* name, + const char* file = NULL, + const int line = 0) { + if (hipSuccess != e) { + hip_internal_error_throw(e, name, file, line); + } +} - typedef Kokkos::View< int**[N2][N3], - Kokkos::LayoutLeft, - Kokkos::Qthreads > input_type; +} // namespace Impl +} // namespace Kokkos - typedef Kokkos::View< int*[N0][N2][N3], - Kokkos::LayoutLeft, - Kokkos::Qthreads > diff_type; +#define HIP_SAFE_CALL(call) \ + Kokkos::Impl::hip_internal_safe_call(call, #call, __FILE__, __LINE__) - output_type output( "output", N0 ); - input_type input ( "input", N0, N1 ); - diff_type diff ( "diff", N0 ); +namespace Kokkos { +namespace Experimental { - int value = 0; +class HIPRawMemoryAllocationFailure : public RawMemoryAllocationFailure { + private: + hipError_t m_error_code = hipSuccess; - for ( size_t i3 = 0; i3 < N3; ++i3 ) - for ( size_t i2 = 0; i2 < N2; ++i2 ) - for ( size_t i1 = 0; i1 < N1; ++i1 ) - for ( size_t i0 = 0; i0 < N0; ++i0 ) - { - input( i0, i1, i2, i3 ) = ++value; + static FailureMode get_failure_mode(hipError_t error_code) { + switch (error_code) { + case hipErrorMemoryAllocation: return FailureMode::OutOfMemoryError; + case hipErrorInvalidValue: return FailureMode::InvalidAllocationSize; + default: return FailureMode::Unknown; + } } - // Kokkos::deep_copy( diff, input ); // Throw with incompatible shape. - Kokkos::deep_copy( output, input ); - - value = 0; - - for ( size_t i3 = 0; i3 < N3; ++i3 ) - for ( size_t i2 = 0; i2 < N2; ++i2 ) - for ( size_t i1 = 0; i1 < N1; ++i1 ) - for ( size_t i0 = 0; i0 < N0; ++i0 ) - { - ++value; - ASSERT_EQ( value, ( (int) output( i0, i1, i2, i3 ) ) ); + public: + HIPRawMemoryAllocationFailure(size_t arg_attempted_size, + hipError_t arg_error_code, + AllocationMechanism arg_mechanism) noexcept + : RawMemoryAllocationFailure( + arg_attempted_size, /* HIPSpace doesn't handle alignment? */ 1, + get_failure_mode(arg_error_code), arg_mechanism), + m_error_code(arg_error_code) {} + + void append_additional_error_information(std::ostream& o) const override { + if (m_error_code != hipSuccess) { + o << " The HIP allocation returned the error code \"\"" + << hipGetErrorName(m_error_code) << "\"."; + } } -#endif -} +}; -TEST_F(qthreads, view_aggregate) { -#if 0 - TestViewAggregate< Kokkos::Qthreads >(); -#endif -} +} // namespace Experimental +} // namespace Kokkos -TEST_F(qthreads, template_meta_functions) { -#if 0 - TestTemplateMetaFunctions< int, Kokkos::Qthreads >(); #endif -} - -} // namespace Test diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1dcba0ff3e7322a3713583ef2a683fee64552d40 --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.cpp @@ -0,0 +1,373 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/*--------------------------------------------------------------------------*/ +/* Kokkos interfaces */ + +#include + +#include +#include +#include +#include + +/*--------------------------------------------------------------------------*/ +/* Standard 'C' libraries */ +#include + +/* Standard 'C++' libraries */ +#include +#include +#include +#include + +namespace Kokkos { +namespace Experimental { +namespace { +class HIPInternalDevices { + public: + enum { MAXIMUM_DEVICE_COUNT = 64 }; + struct hipDeviceProp_t m_hipProp[MAXIMUM_DEVICE_COUNT]; + int m_hipDevCount; + + HIPInternalDevices(); + + static HIPInternalDevices const &singleton(); +}; + +HIPInternalDevices::HIPInternalDevices() { + HIP_SAFE_CALL(hipGetDeviceCount(&m_hipDevCount)); + + if (m_hipDevCount > MAXIMUM_DEVICE_COUNT) { + Kokkos::abort( + "Sorry, you have more GPUs per node than we thought anybody would ever " + "have. Please report this to github.com/kokkos/kokkos."); + } + for (int i = 0; i < m_hipDevCount; ++i) { + HIP_SAFE_CALL(hipGetDeviceProperties(m_hipProp + i, i)); + } +} + +const HIPInternalDevices &HIPInternalDevices::singleton() { + static HIPInternalDevices self; + return self; +} +} // namespace + +namespace Impl { + +int HIPInternal::was_initialized = 0; +int HIPInternal::was_finalized = 0; +//---------------------------------------------------------------------------- + +void HIPInternal::print_configuration(std::ostream & /*s*/) const { + // FIXME_HIP + Kokkos::abort("print_configuration not implemented!\n"); + /*const HIPInternalDevices & dev_info = HIPInternalDevices::singleton(); + +#if defined( KOKKOS_ENABLE_HIP ) + s << "macro KOKKOS_ENABLE_HIP : defined" << std::endl ; +#endif +#if defined( __hcc_version__ ) + s << "macro __hcc_version__ = " << __hcc_version__ + << std::endl ; +#endif + + for ( int i = 0 ; i < dev_info.m_hipDevCount ; ++i ) { + s << "Kokkos::Experimental::HIP[ " << i << " ] " + << dev_info.m_hipProp[i].name + << " version " << (dev_info.m_hipProp[i].major) << "." << +dev_info.m_hipProp[i].minor + << ", Total Global Memory: " << +human_memory_size(dev_info.m_hipProp[i].totalGlobalMem) + << ", Shared Memory per Wavefront: " << +human_memory_size(dev_info.m_hipProp[i].sharedMemPerWavefront); if ( m_hipDev == +i ) s << " : Selected" ; s << std::endl ; + }*/ +} + +//---------------------------------------------------------------------------- + +HIPInternal::~HIPInternal() { + if (m_scratchSpace || m_scratchFlags) { + std::cerr << "Kokkos::Experimental::HIP ERROR: Failed to call " + "Kokkos::Experimental::HIP::finalize()" + << std::endl; + std::cerr.flush(); + } + + m_hipDev = -1; + m_hipArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxSharedWords = 0; + m_maxShmemPerBlock = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchSpace = 0; + m_scratchFlags = 0; +} + +int HIPInternal::verify_is_initialized(const char *const label) const { + if (m_hipDev < 0) { + std::cerr << "Kokkos::Experimental::HIP::" << label + << " : ERROR device not initialized" << std::endl; + } + return 0 <= m_hipDev; +} + +HIPInternal &HIPInternal::singleton() { + static HIPInternal *self = nullptr; + if (!self) { + self = new HIPInternal(); + } + return *self; +} + +void HIPInternal::initialize(int hip_device_id) { + if (was_finalized) + Kokkos::abort("Calling HIP::initialize after HIP::finalize is illegal\n"); + + if (is_initialized()) return; + + enum { WordSize = sizeof(size_type) }; + + if (!HostSpace::execution_space::impl_is_initialized()) { + const std::string msg( + "HIP::initialize ERROR : HostSpace::execution_space " + "is not initialized"); + Kokkos::Impl::throw_runtime_exception(msg); + } + + const HIPInternalDevices &dev_info = HIPInternalDevices::singleton(); + + const bool ok_init = 0 == m_scratchSpace || 0 == m_scratchFlags; + + // Need at least a GPU device + const bool ok_id = + 0 <= hip_device_id && hip_device_id < dev_info.m_hipDevCount; + + if (ok_init && ok_id) { + const struct hipDeviceProp_t &hipProp = dev_info.m_hipProp[hip_device_id]; + + m_hipDev = hip_device_id; + + hipSetDevice(m_hipDev); + + // FIXME_HIP for now always uses default stream + m_stream = 0; + + // number of multiprocessors + m_multiProcCount = hipProp.multiProcessorCount; + + //---------------------------------- + // Maximum number of warps, + // at most one warp per thread in a warp for reduction. + m_maxWarpCount = hipProp.maxThreadsPerBlock / Impl::HIPTraits::WarpSize; + if (HIPTraits::WarpSize < m_maxWarpCount) { + m_maxWarpCount = Impl::HIPTraits::WarpSize; + } + m_maxSharedWords = hipProp.sharedMemPerBlock / WordSize; + + //---------------------------------- + // Maximum number of blocks + m_maxBlock = hipProp.maxGridSize[0]; + + m_shmemPerSM = hipProp.maxSharedMemoryPerMultiProcessor; + m_maxShmemPerBlock = hipProp.sharedMemPerBlock; + m_maxThreadsPerSM = hipProp.maxThreadsPerMultiProcessor; + m_maxThreadsPerBlock = hipProp.maxThreadsPerBlock; + + //---------------------------------- + // Multiblock reduction uses scratch flags for counters + // and scratch space for partial reduction values. + // Allocate some initial space. This will grow as needed. + { + const unsigned reduce_block_count = + m_maxWarpCount * Impl::HIPTraits::WarpSize; + + (void)scratch_flags(reduce_block_count * 2 * sizeof(size_type)); + (void)scratch_space(reduce_block_count * 16 * sizeof(size_type)); + } + //---------------------------------- + } else { + std::ostringstream msg; + msg << "Kokkos::Experimental::HIP::initialize(" << hip_device_id + << ") FAILED"; + + if (!ok_init) { + msg << " : Already initialized"; + } + if (!ok_id) { + msg << " : Device identifier out of range " + << "[0.." << dev_info.m_hipDevCount - 1 << "]"; + } + Kokkos::Impl::throw_runtime_exception(msg.str()); + } + + // Init the array for used for arbitrarily sized atomics + // FIXME_HIP uncomment this when global variable works + // if (m_stream == 0) ::Kokkos::Impl::initialize_host_hip_lock_arrays(); +} + +//---------------------------------------------------------------------------- + +typedef Kokkos::Experimental::HIP::size_type + ScratchGrain[Impl::HIPTraits::WarpSize]; +enum { sizeScratchGrain = sizeof(ScratchGrain) }; + +Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_space( + const Kokkos::Experimental::HIP::size_type size) { + if (verify_is_initialized("scratch_space") && + m_scratchSpaceCount * sizeScratchGrain < size) { + m_scratchSpaceCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; + + typedef Kokkos::Impl::SharedAllocationRecord + Record; + + static Record *const r = Record::allocate( + Kokkos::Experimental::HIPSpace(), "InternalScratchSpace", + (sizeScratchGrain * m_scratchSpaceCount)); + + Record::increment(r); + + m_scratchSpace = reinterpret_cast(r->data()); + } + + return m_scratchSpace; +} + +Kokkos::Experimental::HIP::size_type *HIPInternal::scratch_flags( + const Kokkos::Experimental::HIP::size_type size) { + if (verify_is_initialized("scratch_flags") && + m_scratchFlagsCount * sizeScratchGrain < size) { + m_scratchFlagsCount = (size + sizeScratchGrain - 1) / sizeScratchGrain; + + typedef Kokkos::Impl::SharedAllocationRecord + Record; + + Record *const r = Record::allocate( + Kokkos::Experimental::HIPSpace(), "InternalScratchFlags", + (sizeScratchGrain * m_scratchFlagsCount)); + + Record::increment(r); + + m_scratchFlags = reinterpret_cast(r->data()); + + hipMemset(m_scratchFlags, 0, m_scratchFlagsCount * sizeScratchGrain); + } + + return m_scratchFlags; +} + +//---------------------------------------------------------------------------- + +void HIPInternal::finalize() { + HIP().fence(); + was_finalized = 1; + if (0 != m_scratchSpace || 0 != m_scratchFlags) { + typedef Kokkos::Impl::SharedAllocationRecord + RecordHIP; + + RecordHIP::decrement(RecordHIP::get_record(m_scratchFlags)); + RecordHIP::decrement(RecordHIP::get_record(m_scratchSpace)); + + m_hipDev = -1; + m_hipArch = -1; + m_multiProcCount = 0; + m_maxWarpCount = 0; + m_maxBlock = 0; + m_maxSharedWords = 0; + m_maxShmemPerBlock = 0; + m_scratchSpaceCount = 0; + m_scratchFlagsCount = 0; + m_scratchSpace = 0; + m_scratchFlags = 0; + } +} + +//---------------------------------------------------------------------------- + +Kokkos::Experimental::HIP::size_type hip_internal_maximum_warp_count() { + return HIPInternal::singleton().m_maxWarpCount; +} + +Kokkos::Experimental::HIP::size_type hip_internal_maximum_grid_count() { + return HIPInternal::singleton().m_maxBlock; +} + +Kokkos::Experimental::HIP::size_type *hip_internal_scratch_space( + const Kokkos::Experimental::HIP::size_type size) { + return HIPInternal::singleton().scratch_space(size); +} + +Kokkos::Experimental::HIP::size_type *hip_internal_scratch_flags( + const Kokkos::Experimental::HIP::size_type size) { + return HIPInternal::singleton().scratch_flags(size); +} + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { +void hip_device_synchronize() { HIP_SAFE_CALL(hipDeviceSynchronize()); } + +void hip_internal_error_throw(hipError_t e, const char *name, const char *file, + const int line) { + std::ostringstream out; + out << name << " error( " << hipGetErrorName(e) + << "): " << hipGetErrorString(e); + if (file) { + out << " " << file << ":" << line; + } + throw_runtime_exception(out.str()); +} +} // namespace Impl +} // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp new file mode 100644 index 0000000000000000000000000000000000000000..c66fb2776f56b471b293d2f6b7d5d30bb0e5f4db --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Instance.hpp @@ -0,0 +1,141 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/*--------------------------------------------------------------------------*/ + +#ifndef KOKKOS_HIP_INSTANCE_HPP +#define KOKKOS_HIP_INSTANCE_HPP + +#include + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +struct HIPTraits { + static int constexpr WarpSize = 64; + static int constexpr WarpIndexShift = 6; /* WarpSize == 1 << WarpShift*/ + + static int constexpr ConstantMemoryUsage = 0x008000; /* 32k bytes */ + static int constexpr ConstantMemoryUseThreshold = 0x000200; /* 512 bytes */ +}; + +//---------------------------------------------------------------------------- + +HIP::size_type hip_internal_maximum_warp_count(); +HIP::size_type hip_internal_maximum_grid_count(); + +HIP::size_type *hip_internal_scratch_space(const HIP::size_type size); +HIP::size_type *hip_internal_scratch_flags(const HIP::size_type size); + +//---------------------------------------------------------------------------- + +class HIPInternal { + private: + HIPInternal(const HIPInternal &); + HIPInternal &operator=(const HIPInternal &); + + public: + using size_type = ::Kokkos::Experimental::HIP::size_type; + + int m_hipDev; + int m_hipArch; + unsigned m_multiProcCount; + unsigned m_maxWarpCount; + unsigned m_maxBlock; + unsigned m_maxSharedWords; + int m_shmemPerSM; + int m_maxShmemPerBlock; + int m_maxThreadsPerSM; + int m_maxThreadsPerBlock; + size_type m_scratchSpaceCount; + size_type m_scratchFlagsCount; + size_type *m_scratchSpace; + size_type *m_scratchFlags; + + hipStream_t m_stream; + + static int was_initialized; + static int was_finalized; + + static HIPInternal &singleton(); + + int verify_is_initialized(const char *const label) const; + + int is_initialized() const { + return m_hipDev >= 0; + } // 0 != m_scratchSpace && 0 != m_scratchFlags ; } + + void initialize(int hip_device_id); + void finalize(); + + void print_configuration(std::ostream &) const; + + ~HIPInternal(); + + HIPInternal() + : m_hipDev(-1), + m_hipArch(-1), + m_multiProcCount(0), + m_maxWarpCount(0), + m_maxBlock(0), + m_maxSharedWords(0), + m_shmemPerSM(0), + m_maxShmemPerBlock(0), + m_maxThreadsPerSM(0), + m_maxThreadsPerBlock(0), + m_scratchSpaceCount(0), + m_scratchFlagsCount(0), + m_scratchSpace(0), + m_scratchFlags(0) {} + + size_type *scratch_space(const size_type size); + size_type *scratch_flags(const size_type size); +}; + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7c8582ef0ea55f3909ddfe68f9fa20d83da05c9f --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.cpp @@ -0,0 +1,72 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +void *hip_resize_scratch_space(std::int64_t bytes, bool force_shrink) { + static void *ptr = nullptr; + static std::int64_t current_size = 0; + if (bytes > current_size) { + current_size = bytes; + if (ptr) Kokkos::kokkos_free<::Kokkos::Experimental::HIPSpace>(ptr); + ptr = Kokkos::kokkos_malloc( + "HIPSpace::ScratchMemory", current_size); + } + if ((bytes < current_size) && (force_shrink)) { + current_size = bytes; + Kokkos::kokkos_free<::Kokkos::Experimental::HIPSpace>(ptr); + ptr = Kokkos::kokkos_malloc( + "HIPSpace::ScratchMemory", current_size); + } + return ptr; +} +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp new file mode 100644 index 0000000000000000000000000000000000000000..5c19a3e0da58a7b9871ae7501de8e78951a921fb --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_KernelLaunch.hpp @@ -0,0 +1,212 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_KERNEL_LAUNCH_HPP +#define KOKKOS_HIP_KERNEL_LAUNCH_HPP + +#include + +#if defined(__HIPCC__) + +#include +#include +#include + +// FIXME_HIP cannot use global variable on the device with ROCm 2.9 +//__device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer +// [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / +// sizeof(unsigned long)]; + +namespace Kokkos { +namespace Experimental { +template +inline __device__ T *kokkos_impl_hip_shared_memory() { + extern __shared__ HIPSpace::size_type sh[]; + return (T *)sh; +} +} // namespace Experimental +} // namespace Kokkos + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +void *hip_resize_scratch_space(std::int64_t bytes, bool force_shrink = false); + +template +__global__ static void hip_parallel_launch_constant_memory() { + __device__ __constant__ unsigned long kokkos_impl_hip_constant_memory_buffer + [Kokkos::Experimental::Impl::HIPTraits::ConstantMemoryUsage / + sizeof(unsigned long)]; + + const DriverType &driver = *(reinterpret_cast( + kokkos_impl_hip_constant_memory_buffer)); + + driver(); +} + +template +__global__ static void hip_parallel_launch_local_memory( + const DriverType driver) { + driver(); +} + +template +__global__ __launch_bounds__( + maxTperB, + minBperSM) static void hip_parallel_launch_local_memory(const DriverType + driver) { + driver(); +} + +enum class HIPLaunchMechanism : unsigned { + Default = 0, + ConstantMemory = 1, + GlobalMemory = 2, + LocalMemory = 4 +}; + +constexpr inline HIPLaunchMechanism operator|(HIPLaunchMechanism p1, + HIPLaunchMechanism p2) { + return static_cast(static_cast(p1) | + static_cast(p2)); +} +constexpr inline HIPLaunchMechanism operator&(HIPLaunchMechanism p1, + HIPLaunchMechanism p2) { + return static_cast(static_cast(p1) & + static_cast(p2)); +} + +template +struct HIPDispatchProperties { + HIPLaunchMechanism launch_mechanism = l; +}; + +template , + HIPLaunchMechanism LaunchMechanism = HIPLaunchMechanism::LocalMemory> +struct HIPParallelLaunch; + +template +struct HIPParallelLaunch< + DriverType, Kokkos::LaunchBounds, + HIPLaunchMechanism::LocalMemory> { + inline HIPParallelLaunch(const DriverType &driver, const dim3 &grid, + const dim3 &block, const int shmem, + const HIPInternal *hip_instance, + const bool /*prefer_shmem*/) { + if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { + if (hip_instance->m_maxShmemPerBlock < shmem) { + Kokkos::Impl::throw_runtime_exception( + "HIPParallelLaunch FAILED: shared memory request is too large"); + } + + // Invoke the driver function on the device + printf("%i %i %i | %i %i %i | %i\n", grid.x, grid.y, grid.z, block.x, + block.y, block.z, shmem); + printf("Pre Launch Error: %s\n", hipGetErrorName(hipGetLastError())); + + hipLaunchKernelGGL( + (hip_parallel_launch_local_memory), + grid, block, shmem, hip_instance->m_stream, driver); + + Kokkos::Experimental::HIP().fence(); + printf("Post Launch Error: %s\n", hipGetErrorName(hipGetLastError())); +#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) + HIP_SAFE_CALL(hipGetLastError()); + Kokkos::Experimental::HIP().fence(); +#endif + } + } + + static hipFuncAttributes get_hip_func_attributes() { + hipFuncAttributes attr; + hipFuncGetAttributes( + &attr, hip_parallel_launch_local_memory); + return attr; + } +}; + +template +struct HIPParallelLaunch, + HIPLaunchMechanism::LocalMemory> { + inline HIPParallelLaunch(const DriverType &driver, const dim3 &grid, + const dim3 &block, const int shmem, + const HIPInternal *hip_instance, + const bool /*prefer_shmem*/) { + if ((grid.x != 0) && ((block.x * block.y * block.z) != 0)) { + if (hip_instance->m_maxShmemPerBlock < shmem) { + Kokkos::Impl::throw_runtime_exception(std::string( + "HIPParallelLaunch FAILED: shared memory request is too large")); + } + + // Invoke the driver function on the device + hipLaunchKernelGGL(hip_parallel_launch_local_memory, grid, + block, shmem, hip_instance->m_stream, driver); + + Kokkos::Experimental::HIP().fence(); +#if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) + HIP_SAFE_CALL(hipGetLastError()); + Kokkos::Experimental::HIP().fence(); +#endif + } + } + + static hipFuncAttributes get_hip_func_attributes() { + hipFuncAttributes attr; + hipFuncGetAttributes(&attr, + reinterpret_cast( + &hip_parallel_launch_local_memory)); + return attr; + } +}; +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos + +#endif + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0a34ed505b700bee79cc3b758373230d505e8002 --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.cpp @@ -0,0 +1,118 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include + +#include +#include +#include + +#include + +#include + +#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE +__device__ __constant__ HIPLockArrays g_device_hip_lock_arrays = {nullptr, + nullptr, 0}; +#endif + +namespace Kokkos { + +namespace { + +__global__ void init_lock_array_kernel_atomic() { + unsigned i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + if (i < KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1) { + g_device_hip_lock_arrays.atomic[i] = 0; + } +} + +__global__ void init_lock_array_kernel_threadid(int N) { + unsigned i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + if (i < static_cast(N)) { + g_device_hip_lock_arrays.scratch[i] = 0; + } +} + +} // namespace + +namespace Impl { + +HIPLockArrays g_host_hip_lock_arrays = {nullptr, nullptr, 0}; + +void initialize_host_hip_lock_arrays() { + if (g_host_hip_lock_arrays.atomic != nullptr) return; + HIP_SAFE_CALL(hipMalloc( + &g_host_hip_lock_arrays.atomic, + sizeof(std::int32_t) * (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1))); + HIP_SAFE_CALL(hipMalloc( + &g_host_hip_lock_arrays.scratch, + sizeof(std::int32_t) * (::Kokkos::Experimental::HIP::concurrency()))); + + g_host_hip_lock_arrays.n = ::Kokkos::Experimental::HIP::concurrency(); + + KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE(); + hipLaunchKernelGGL(init_lock_array_kernel_atomic, + (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1 + 255) / 256, 256, + 0, 0); + hipLaunchKernelGGL(init_lock_array_kernel_threadid, + (::Kokkos::Experimental::HIP::concurrency() + 255) / 256, + 256, 0, 0, ::Kokkos::Experimental::HIP::concurrency()); +} + +void finalize_host_hip_lock_arrays() { + if (g_host_hip_lock_arrays.atomic == nullptr) return; + hipFree(g_host_hip_lock_arrays.atomic); + g_host_hip_lock_arrays.atomic = nullptr; + hipFree(g_host_hip_lock_arrays.scratch); + g_host_hip_lock_arrays.scratch = nullptr; + g_host_hip_lock_arrays.n = 0; +#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE + KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE(); +#endif +} + +} // namespace Impl + +} // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp new file mode 100644 index 0000000000000000000000000000000000000000..fb6728ea14aaefc52c892accee32534157c519cf --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Locks.hpp @@ -0,0 +1,174 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_LOCKS_HPP +#define KOKKOS_HIP_LOCKS_HPP + +#include + +#include + +#include + +// FIXME_HIP We cannot use global variables defined in a namespace + +struct HIPLockArrays { + std::int32_t* atomic; + std::int32_t* scratch; + std::int32_t n; +}; + +/// \brief This global variable in Host space is the central definition +/// of these arrays. +extern HIPLockArrays g_host_hip_lock_arrays; + +namespace Kokkos { +namespace Impl { + +/// \brief After this call, the g_host_hip_lock_arrays variable has +/// valid, initialized arrays. +/// +/// This call is idempotent. +void initialize_host_hip_lock_arrays(); + +/// \brief After this call, the g_host_hip_lock_arrays variable has +/// all null pointers, and all array memory has been freed. +/// +/// This call is idempotent. +void finalize_host_hip_lock_arrays(); + +} // namespace Impl +} // namespace Kokkos + +#if defined(__HIPCC__) + +/// \brief This global variable in HIP space is what kernels use +/// to get access to the lock arrays. +/// +/// When relocatable device code is enabled, there can be one single +/// instance of this global variable for the entire executable, +/// whose definition will be in Kokkos_HIP_Locks.cpp (and whose declaration +/// here must then be extern). +/// This one instance will be initialized by initialize_host_HIP_lock_arrays +/// and need not be modified afterwards. +/// +/// When relocatable device code is disabled, an instance of this variable +/// will be created in every translation unit that sees this header file. +/// Since the Kokkos_HIP_Locks.cpp translation unit cannot initialize the +/// instances in other translation units, we must update this HIP global +/// variable based on the Host global variable prior to running any kernels +/// that will use it. +/// That is the purpose of the KOKKOS_ENSURE_HIP_LOCK_ARRAYS_ON_DEVICE macro. +__device__ +#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE + __constant__ extern +#endif + HIPLockArrays g_device_hip_lock_arrays; + +#define KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK 0x1FFFF + +namespace Kokkos { +namespace Impl { + +/// \brief Acquire a lock for the address +/// +/// This function tries to acquire the lock for the hash value derived +/// from the provided ptr. If the lock is successfully acquired the +/// function returns true. Otherwise it returns false. +__device__ inline bool lock_address_hip_space(void* ptr) { + auto offset = reinterpret_cast(ptr); + offset = offset >> 2; + offset = offset & KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK; + return (0 == atomicCAS(&g_device_hip_lock_arrays.atomic[offset], 0, 1)); +} + +/// \brief Release lock for the address +/// +/// This function releases the lock for the hash value derived +/// from the provided ptr. This function should only be called +/// after previously successfully aquiring a lock with +/// lock_address. +__device__ inline void unlock_address_hip_space(void* ptr) { + auto offset = reinterpret_cast(ptr); + offset = offset >> 2; + offset = offset & KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK; + atomicExch(&g_device_hip_lock_arrays.atomic[offset], 0); +} + +} // namespace Impl +} // namespace Kokkos + +// Make lock_array_copied an explicit translation unit scope thingy +namespace Kokkos { +namespace Impl { +namespace { +static int lock_array_copied = 0; +inline int eliminate_warning_for_lock_array() { return lock_array_copied; } +} // namespace +} // namespace Impl +} // namespace Kokkos + +/* Dan Ibanez: it is critical that this code be a macro, so that it will + capture the right address for g_device_hip_lock_arrays! + putting this in an inline function will NOT do the right thing! */ +#define KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE() \ + { \ + if (::Kokkos::Impl::lock_array_copied == 0) { \ + HIP_SAFE_CALL(hipMemcpyToSymbol(HIP_SYMBOL(g_device_hip_lock_arrays), \ + &g_host_hip_lock_arrays, \ + sizeof(HIPLockArrays))); \ + } \ + lock_array_copied = 1; \ + } + +#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE +#define KOKKOS_ENSURE_HIP_LOCK_ARRAYS_ON_DEVICE() +#else +#define KOKKOS_ENSURE_HIP_LOCK_ARRAYS_ON_DEVICE() \ + KOKKOS_COPY_HIP_LOCK_ARRAYS_TO_DEVICE() +#endif + +#endif /* defined( __HIPCC__ ) */ + +#endif /* #ifndef KOKKOS_HIP_LOCKS_HPP */ diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..7a6161346c7d3a53afe000056548938aa24a617b --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_MDRange.hpp @@ -0,0 +1,411 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_PARALLEL_MDRANGE_HPP +#define KOKKOS_HIP_PARALLEL_MDRANGE_HPP + +#include +#include +#include +#include +#include + +namespace Kokkos { +namespace Impl { +// ParallelFor +template +class ParallelFor, + Kokkos::Experimental::HIP> { + public: + using Policy = Kokkos::MDRangePolicy; + + private: + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + using LaunchBounds = typename Policy::launch_bounds; + + const FunctorType m_functor; + const Policy m_policy; + + ParallelFor() = delete; + ParallelFor& operator=(ParallelFor const&) = delete; + + public: + inline __device__ void operator()(void) const { + Kokkos::Impl::DeviceIterateTile(m_policy, + m_functor) + .exec_range(); + } + + inline void execute() const { + if (m_policy.m_num_tiles == 0) return; + array_index_type const maxblocks = static_cast( + m_policy.space().impl_internal_space_instance()->m_maxBlock); + if (Policy::rank == 2) { + dim3 const block(m_policy.m_tile[0], m_policy.m_tile[1], 1); + dim3 const grid( + std::min((m_policy.m_upper[0] - m_policy.m_lower[0] + block.x - 1) / + block.x, + maxblocks), + std::min((m_policy.m_upper[1] - m_policy.m_lower[1] + block.y - 1) / + block.y, + maxblocks), + 1); + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, 0, + m_policy.space().impl_internal_space_instance(), false); + } else if (Policy::rank == 3) { + dim3 const block(m_policy.m_tile[0], m_policy.m_tile[1], + m_policy.m_tile[2]); + dim3 const grid( + std::min((m_policy.m_upper[0] - m_policy.m_lower[0] + block.x - 1) / + block.x, + maxblocks), + std::min((m_policy.m_upper[1] - m_policy.m_lower[1] + block.y - 1) / + block.y, + maxblocks), + std::min((m_policy.m_upper[2] - m_policy.m_lower[2] + block.z - 1) / + block.z, + maxblocks)); + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, 0, + m_policy.space().impl_internal_space_instance(), false); + } else if (Policy::rank == 4) { + // id0,id1 encoded within hipThreadIdx_x; id2 to hipThreadIdx_y; id3 to + // hipThreadIdx_z + dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], + m_policy.m_tile[2], m_policy.m_tile[3]); + dim3 const grid( + std::min(static_cast(m_policy.m_tile_end[0] * + m_policy.m_tile_end[1]), + static_cast(maxblocks)), + std::min((m_policy.m_upper[2] - m_policy.m_lower[2] + block.y - 1) / + block.y, + maxblocks), + std::min((m_policy.m_upper[3] - m_policy.m_lower[3] + block.z - 1) / + block.z, + maxblocks)); + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, 0, + m_policy.space().impl_internal_space_instance(), false); + } else if (Policy::rank == 5) { + // id0,id1 encoded within hipThreadIdx_x; id2,id3 to hipThreadIdx_y; id4 + // to hipThreadIdx_z + dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], + m_policy.m_tile[2] * m_policy.m_tile[3], + m_policy.m_tile[4]); + dim3 const grid( + std::min(static_cast(m_policy.m_tile_end[0] * + m_policy.m_tile_end[1]), + static_cast(maxblocks)), + std::min(static_cast(m_policy.m_tile_end[2] * + m_policy.m_tile_end[3]), + static_cast(maxblocks)), + std::min((m_policy.m_upper[4] - m_policy.m_lower[4] + block.z - 1) / + block.z, + maxblocks)); + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, 0, + m_policy.space().impl_internal_space_instance(), false); + } else if (Policy::rank == 6) { + // id0,id1 encoded within hipThreadIdx_x; id2,id3 to hipThreadIdx_y; + // id4,id5 to hipThreadIdx_z + dim3 const block(m_policy.m_tile[0] * m_policy.m_tile[1], + m_policy.m_tile[2] * m_policy.m_tile[3], + m_policy.m_tile[4] * m_policy.m_tile[5]); + dim3 const grid(std::min(static_cast(m_policy.m_tile_end[0] * + m_policy.m_tile_end[1]), + static_cast(maxblocks)), + std::min(static_cast(m_policy.m_tile_end[2] * + m_policy.m_tile_end[3]), + static_cast(maxblocks)), + std::min(static_cast(m_policy.m_tile_end[4] * + m_policy.m_tile_end[5]), + static_cast(maxblocks))); + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, 0, + m_policy.space().impl_internal_space_instance(), false); + } else { + printf("Kokkos::MDRange Error: Exceeded rank bounds with HIP\n"); + Kokkos::abort("Aborting"); + } + + } // end execute + + ParallelFor(FunctorType const& arg_functor, Policy const& arg_policy) + : m_functor(arg_functor), m_policy(arg_policy) {} +}; + +// ParallelReduce +template +class ParallelReduce, ReducerType, + Kokkos::Experimental::HIP> { + public: + using Policy = Kokkos::MDRangePolicy; + + private: + using array_index_type = typename Policy::array_index_type; + using index_type = typename Policy::index_type; + + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = + typename Kokkos::Impl::if_c::value, + WorkTag, void>::type; + + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + + public: + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Experimental::HIP::size_type; + + // Algorithmic constraints: blockSize is a power of two AND hipBlockDim_y == + // hipBlockDim_z == 1 + + const FunctorType m_functor; + const Policy m_policy; // used for workrange and nwork + const ReducerType m_reducer; + const pointer_type m_result_ptr; + const bool m_result_ptr_device_accessible; + size_type* m_scratch_space; + size_type* m_scratch_flags; + + using DeviceIteratePattern = typename Kokkos::Impl::Reduce::DeviceIterateTile< + Policy::rank, Policy, FunctorType, WorkTag, reference_type>; + + // Shall we use the shfl based reduction or not (only use it for static sized + // types of more than 128bit + enum { + UseShflReduction = ((sizeof(value_type) > 2 * sizeof(double)) && + (ValueTraits::StaticValueSize != 0)) + }; + // Some crutch to do function overloading + private: + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; + + public: + inline __device__ void exec_range(reference_type update) const { + DeviceIteratePattern(m_policy, m_functor, update).exec_range(); + } + + inline __device__ void operator()(void) const { + const integral_nonzero_constant + word_count(ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)) / + sizeof(size_type)); + + { + reference_type value = ValueInit::init( + ReducerConditional::select(m_functor, m_reducer), + Experimental::kokkos_impl_hip_shared_memory() + + hipThreadIdx_y * word_count.value); + + // Number of blocks is bounded so that the reduction can be limited to two + // passes. Each thread block is given an approximately equal amount of + // work to perform. Accumulate the values for this block. The accumulation + // ordering does not match the final pass, but is arithmatically + // equivalent. + + this->exec_range(value); + } + + // Reduce with final value at hipBlockDim_y - 1 location. + // Problem: non power-of-two blockDim + if (::Kokkos::Impl::hip_single_inter_block_reduce_scan< + false, ReducerTypeFwd, WorkTagFwd>( + ReducerConditional::select(m_functor, m_reducer), hipBlockIdx_x, + hipGridDim_x, + Experimental::kokkos_impl_hip_shared_memory(), + m_scratch_space, m_scratch_flags)) { + // This is the final block with the final result at the final threads' + // location + size_type* const shared = + Experimental::kokkos_impl_hip_shared_memory() + + (hipBlockDim_y - 1) * word_count.value; + size_type* const global = m_result_ptr_device_accessible + ? reinterpret_cast(m_result_ptr) + : m_scratch_space; + + if (hipThreadIdx_y == 0) { + Kokkos::Impl::FunctorFinal::final( + ReducerConditional::select(m_functor, m_reducer), shared); + } + + if (Experimental::Impl::HIPTraits::WarpSize < word_count.value) { + __syncthreads(); + } + + for (unsigned i = hipThreadIdx_y; i < word_count.value; + i += hipBlockDim_y) { + global[i] = shared[i]; + } + } + } + + // Determine block size constrained by shared memory: + // This is copy/paste from Kokkos_HIP_Parallel_Range + inline unsigned local_block_size(const FunctorType& f) { + unsigned n = Experimental::Impl::HIPTraits::WarpSize * 8; + int shmem_size = ::Kokkos::Impl::hip_single_inter_block_reduce_scan_shmem< + false, FunctorType, WorkTag>(f, n); + while ( + (n && + (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size)) || + (n > static_cast( + ::Kokkos::Experimental::Impl::hip_get_max_block_size< + ParallelReduce, LaunchBounds>(f, 1, shmem_size, 0)))) { + n >>= 1; + shmem_size = ::Kokkos::Impl::hip_single_inter_block_reduce_scan_shmem< + false, FunctorType, WorkTag>(f, n); + } + return n; + } + + inline void execute() { + const int nwork = m_policy.m_num_tiles; + if (nwork) { + int block_size = m_policy.m_prod_tile_dims; + // CONSTRAINT: Algorithm requires block_size >= product of tile dimensions + // Nearest power of two + int exponent_pow_two = std::ceil(std::log2(block_size)); + block_size = std::pow(2, exponent_pow_two); + int suggested_blocksize = local_block_size(m_functor); + + block_size = (block_size > suggested_blocksize) + ? block_size + : suggested_blocksize; // Note: block_size must be less + // than or equal to 512 + + m_scratch_space = + ::Kokkos::Experimental::Impl::hip_internal_scratch_space( + ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)) * + block_size /* block_size == max block_count */); + m_scratch_flags = + ::Kokkos::Experimental::Impl::hip_internal_scratch_flags( + sizeof(size_type)); + + // REQUIRED ( 1 , N , 1 ) + const dim3 block(1, block_size, 1); + // Required grid.x <= block.y + const dim3 grid(std::min(int(block.y), int(nwork)), 1, 1); + + const int shmem = + UseShflReduction + ? 0 + : ::Kokkos::Impl::hip_single_inter_block_reduce_scan_shmem< + false, FunctorType, WorkTag>(m_functor, block.y); + + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shmem, + m_policy.space().impl_internal_space_instance(), + false); // copy to device and execute + + if (!m_result_ptr_device_accessible) { + Experimental::HIP().fence(); + + if (m_result_ptr) { + const int size = ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)); + DeepCopy(m_result_ptr, + m_scratch_space, size); + } + } + } else { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + } + } + } + + template + ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, + const ViewType& arg_result, + typename std::enable_if::value, + void*>::type = NULL) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(InvalidType()), + m_result_ptr(arg_result.data()), + m_result_ptr_device_accessible( + MemorySpaceAccess::accessible), + m_scratch_space(0), + m_scratch_flags(0) {} + + ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, + const ReducerType& reducer) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(reducer), + m_result_ptr(reducer.view().data()), + m_result_ptr_device_accessible( + MemorySpaceAccess::accessible), + m_scratch_space(0), + m_scratch_flags(0) {} +}; +} // namespace Impl +} // namespace Kokkos + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp new file mode 100644 index 0000000000000000000000000000000000000000..a9c44606e4a497ba66b6e3838604b70a90fb02dd --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Range.hpp @@ -0,0 +1,655 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKO_HIP_PARALLEL_RANGE_HPP +#define KOKKO_HIP_PARALLEL_RANGE_HPP + +#include + +#if defined(__HIPCC__) + +#include +#include +#include + +namespace Kokkos { +namespace Impl { + +template +class ParallelFor, + Kokkos::Experimental::HIP> { + public: + using Policy = Kokkos::RangePolicy; + + private: + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; + + const FunctorType m_functor; + const Policy m_policy; + + ParallelFor() = delete; + ParallelFor& operator=(const ParallelFor&) = delete; + + template + inline __device__ + typename std::enable_if::value>::type + exec_range(const Member i) const { + m_functor(i); + } + + template + inline __device__ + typename std::enable_if::value>::type + exec_range(const Member i) const { + m_functor(TagType(), i); + } + + public: + using functor_type = FunctorType; + + inline __device__ void operator()(void) const { + const Member work_stride = hipBlockDim_y * hipGridDim_x; + const Member work_end = m_policy.end(); + + for (Member iwork = + m_policy.begin() + hipThreadIdx_y + hipBlockDim_y * hipBlockIdx_x; + iwork < work_end; + iwork = iwork < work_end - work_stride ? iwork + work_stride + : work_end) { + this->template exec_range(iwork); + } + } + + inline void execute() const { + const typename Policy::index_type nwork = m_policy.end() - m_policy.begin(); + + const int block_size = 256; // FIXME_HIP Choose block_size better + const dim3 block(1, block_size, 1); + const dim3 grid( + typename Policy::index_type((nwork + block.y - 1) / block.y), 1, 1); + + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, 0, m_policy.space().impl_internal_space_instance(), + false); + } + + ParallelFor(const FunctorType& arg_functor, const Policy& arg_policy) + : m_functor(arg_functor), m_policy(arg_policy) {} +}; + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +template +class ParallelReduce, ReducerType, + Kokkos::Experimental::HIP> { + public: + using Policy = Kokkos::RangePolicy; + + private: + using WorkRange = typename Policy::WorkRange; + using WorkTag = typename Policy::work_tag; + using Member = typename Policy::member_type; + using LaunchBounds = typename Policy::launch_bounds; + + using ReducerConditional = + Kokkos::Impl::if_c::value, + FunctorType, ReducerType>; + using ReducerTypeFwd = typename ReducerConditional::type; + using WorkTagFwd = + typename Kokkos::Impl::if_c::value, + WorkTag, void>::type; + + using ValueTraits = + Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueJoin = Kokkos::Impl::FunctorValueJoin; + + public: + using pointer_type = typename ValueTraits::pointer_type; + using value_type = typename ValueTraits::value_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Kokkos::Experimental::HIP::size_type; + using index_type = typename Policy::index_type; + + // Algorithmic constraints: blockSize is a power of two AND hipBlockDim_y == + // hipBlockDim_z == 1 + + const FunctorType m_functor; + const Policy m_policy; + const ReducerType m_reducer; + const pointer_type m_result_ptr; + const bool m_result_ptr_device_accessible; + size_type* m_scratch_space = nullptr; + size_type* m_scratch_flags = nullptr; + + // Shall we use the shfl based reduction or not (only use it for static sized + // types of more than 128bit) + enum { + UseShflReduction = false + }; //((sizeof(value_type)>2*sizeof(double)) && ValueTraits::StaticValueSize) + //}; + // Some crutch to do function overloading + private: + using DummyShflReductionType = double; + using DummySHMEMReductionType = int; + + public: + // Make the exec_range calls call to Reduce::DeviceIterateTile + template + __device__ inline + typename std::enable_if::value>::type + exec_range(const Member& i, reference_type update) const { + m_functor(i, update); + } + + template + __device__ inline + typename std::enable_if::value>::type + exec_range(const Member& i, reference_type update) const { + m_functor(TagType(), i, update); + } + + __device__ inline void operator()() const { + const integral_nonzero_constant + word_count(ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)) / + sizeof(size_type)); + + { + reference_type value = ValueInit::init( + ReducerConditional::select(m_functor, m_reducer), + ::Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + hipThreadIdx_y * word_count.value); + + // Number of blocks is bounded so that the reduction can be limited to two + // passes. Each thread block is given an approximately equal amount of + // work to perform. Accumulate the values for this block. The accumulation + // ordering does not match the final pass, but is arithmetically + // equivalent. + + const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + + for (Member iwork = range.begin() + hipThreadIdx_y, + iwork_end = range.end(); + iwork < iwork_end; iwork += hipBlockDim_y) { + this->template exec_range(iwork, value); + } + } + + // Reduce with final value at hipBlockDim_y - 1 location. + if (hip_single_inter_block_reduce_scan( + ReducerConditional::select(m_functor, m_reducer), hipBlockIdx_x, + hipGridDim_x, + ::Kokkos::Experimental::kokkos_impl_hip_shared_memory(), + m_scratch_space, m_scratch_flags)) { + // This is the final block with the final result at the final threads' + // location + + size_type* const shared = + ::Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + (hipBlockDim_y - 1) * word_count.value; + size_type* const global = m_result_ptr_device_accessible + ? reinterpret_cast(m_result_ptr) + : m_scratch_space; + + if (hipThreadIdx_y == 0) { + Kokkos::Impl::FunctorFinal::final( + ReducerConditional::select(m_functor, m_reducer), shared); + } + + if (::Kokkos::Experimental::Impl::HIPTraits::WarpSize < + word_count.value) { + __syncthreads(); + } + + for (unsigned i = hipThreadIdx_y; i < word_count.value; + i += hipBlockDim_y) { + global[i] = shared[i]; + } + } + } + + // Determine block size constrained by shared memory: + inline unsigned local_block_size(const FunctorType& f) { + // FIXME_HIP I don't know where 8 comes from + unsigned int n = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize * 8; + int shmem_size = + hip_single_inter_block_reduce_scan_shmem( + f, n); + while ( + (n && + (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size)) || + (n > static_cast( + Kokkos::Experimental::Impl::hip_get_max_block_size< + ParallelReduce, LaunchBounds>(f, 1, shmem_size, 0)))) { + n >>= 1; + shmem_size = + hip_single_inter_block_reduce_scan_shmem( + f, n); + } + return n; + } + + inline void execute() { + const index_type nwork = m_policy.end() - m_policy.begin(); + if (nwork) { + const int block_size = local_block_size(m_functor); + + m_scratch_space = + ::Kokkos::Experimental::Impl::hip_internal_scratch_space( + ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)) * + block_size /* block_size == max block_count */); + m_scratch_flags = + ::Kokkos::Experimental::Impl::hip_internal_scratch_flags( + sizeof(size_type)); + + // REQUIRED ( 1 , N , 1 ) + const dim3 block(1, block_size, 1); + // Required grid.x <= block.y + const dim3 grid( + std::min(int(block.y), int((nwork + block.y - 1) / block.y)), 1, 1); + + const int shmem = + UseShflReduction + ? 0 + : hip_single_inter_block_reduce_scan_shmem(m_functor, + block.y); + + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shmem, + m_policy.space().impl_internal_space_instance(), + false); // copy to device and execute + + if (!m_result_ptr_device_accessible) { + ::Kokkos::Experimental::HIP().fence(); + + if (m_result_ptr) { + const int size = ValueTraits::value_size( + ReducerConditional::select(m_functor, m_reducer)); + DeepCopy( + m_result_ptr, m_scratch_space, size); + } + } + } else { + if (m_result_ptr) { + ValueInit::init(ReducerConditional::select(m_functor, m_reducer), + m_result_ptr); + } + } + } + + template + ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, + const ViewType& arg_result, + typename std::enable_if::value, + void*>::type = NULL) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(InvalidType()), + m_result_ptr(arg_result.data()), + m_result_ptr_device_accessible( + MemorySpaceAccess::accessible) {} + + ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, + const ReducerType& reducer) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(reducer), + m_result_ptr(reducer.view().data()), + m_result_ptr_device_accessible( + MemorySpaceAccess::accessible) {} +}; + +template +class ParallelScanHIPBase { + public: + using Policy = Kokkos::RangePolicy; + + protected: + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using WorkRange = typename Policy::WorkRange; + using LaunchBounds = typename Policy::launch_bounds; + + using ValueTraits = Kokkos::Impl::FunctorValueTraits; + using ValueInit = Kokkos::Impl::FunctorValueInit; + using ValueOps = Kokkos::Impl::FunctorValueOps; + + public: + using pointer_type = typename ValueTraits::pointer_type; + using reference_type = typename ValueTraits::reference_type; + using functor_type = FunctorType; + using size_type = Kokkos::Experimental::HIP::size_type; + using index_type = typename Policy::index_type; + + protected: + // Algorithmic constraints: + // (a) hipBlockDim_y is a power of two + // (b) hipBlockDim_x == hipBlockDim_z == 1 + // (c) hipGridDim_x <= hipBlockDim_y * hipBlockDim_y + // (d) hipGridDim_y == hipGridDim_z == 1 + + const FunctorType m_functor; + const Policy m_policy; + size_type* m_scratch_space = nullptr; + size_type* m_scratch_flags = nullptr; + size_type m_final = false; + int m_grid_x = 0; + + private: + template + __device__ inline + typename std::enable_if::value>::type + exec_range(const Member& i, reference_type update, + const bool final_result) const { + m_functor(i, update, final_result); + } + + template + __device__ inline + typename std::enable_if::value>::type + exec_range(const Member& i, reference_type update, + const bool final_result) const { + m_functor(TagType(), i, update, final_result); + } + + //---------------------------------------- + + __device__ inline void initial(void) const { + const integral_nonzero_constant + word_count(ValueTraits::value_size(m_functor) / sizeof(size_type)); + + size_type* const shared_value = + Kokkos::Experimental::kokkos_impl_hip_shared_memory() + + word_count.value * hipThreadIdx_y; + + ValueInit::init(m_functor, shared_value); + + // Number of blocks is bounded so that the reduction can be limited to two + // passes. Each thread block is given an approximately equal amount of work + // to perform. Accumulate the values for this block. The accumulation + // ordering does not match the final pass, but is arithmetically equivalent. + + const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + + for (Member iwork = range.begin() + hipThreadIdx_y, iwork_end = range.end(); + iwork < iwork_end; iwork += hipBlockDim_y) { + this->template exec_range( + iwork, ValueOps::reference(shared_value), false); + } + + // Reduce and scan, writing out scan of blocks' totals and block-groups' + // totals. Blocks' scan values are written to 'hipBlockIdx_x' location. + // Block-groups' scan values are at: i = ( j * hipBlockDim_y - 1 ) for i < + // hipGridDim_x + hip_single_inter_block_reduce_scan( + m_functor, hipBlockIdx_x, hipGridDim_x, + Kokkos::Experimental::kokkos_impl_hip_shared_memory(), + m_scratch_space, m_scratch_flags); + } + + //---------------------------------------- + + __device__ inline void final(void) const { + const integral_nonzero_constant + word_count(ValueTraits::value_size(m_functor) / sizeof(size_type)); + + // Use shared memory as an exclusive scan: { 0 , value[0] , value[1] , + // value[2] , ... } + size_type* const shared_data = + Kokkos::Experimental::kokkos_impl_hip_shared_memory(); + size_type* const shared_prefix = + shared_data + word_count.value * hipThreadIdx_y; + size_type* const shared_accum = + shared_data + word_count.value * (hipBlockDim_y + 1); + + // Starting value for this thread block is the previous block's total. + if (hipBlockIdx_x) { + size_type* const block_total = + m_scratch_space + word_count.value * (hipBlockIdx_x - 1); + for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + shared_accum[i] = block_total[i]; + } + } else if (0 == hipThreadIdx_y) { + ValueInit::init(m_functor, shared_accum); + } + + const WorkRange range(m_policy, hipBlockIdx_x, hipGridDim_x); + + for (typename Policy::member_type iwork_base = range.begin(); + iwork_base < range.end(); iwork_base += hipBlockDim_y) { + const typename Policy::member_type iwork = iwork_base + hipThreadIdx_y; + + __syncthreads(); // Don't overwrite previous iteration values until they + // are used + + ValueInit::init(m_functor, shared_prefix + word_count.value); + + // Copy previous block's accumulation total into thread[0] prefix and + // inclusive scan value of this block + for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + shared_data[i + word_count.value] = shared_data[i] = shared_accum[i]; + } + + // Make sure the write is seen by all threads + __threadfence_block(); + + // Call functor to accumulate inclusive scan value for this work item + const bool doWork = (iwork < range.end()); + if (doWork) { + this->template exec_range( + iwork, ValueOps::reference(shared_prefix + word_count.value), + false); + } + + // Scan block values into locations shared_data[1..hipBlockDim_y] + hip_intra_block_reduce_scan( + m_functor, + typename ValueTraits::pointer_type(shared_data + word_count.value)); + + { + size_type* const block_total = + shared_data + word_count.value * hipBlockDim_y; + for (unsigned i = hipThreadIdx_y; i < word_count.value; ++i) { + shared_accum[i] = block_total[i]; + } + } + + // Call functor with exclusive scan value + if (doWork) { + this->template exec_range( + iwork, ValueOps::reference(shared_prefix), true); + } + } + } + + public: + //---------------------------------------- + + __device__ inline void operator()(void) const { + if (!m_final) { + initial(); + } else { + final(); + } + } + + // Determine block size constrained by shared memory: + inline unsigned local_block_size(const FunctorType& f) { + // hipBlockDim_y must be power of two = 128 (2 warps) or 256 (4 warps) or + // 512 (8 warps) hipGridDim_x <= hipBlockDim_y * hipBlockDim_y + // + // TODO check best option + + unsigned n = Experimental::Impl::HIPTraits::WarpSize * 4; + while (n && static_cast(m_policy.space() + .impl_internal_space_instance() + ->m_maxShmemPerBlock) < + hip_single_inter_block_reduce_scan_shmem(f, n)) { + n >>= 1; + } + return n; + } + + inline void impl_execute() { + const index_type nwork = m_policy.end() - m_policy.begin(); + if (nwork) { + // FIXME_HIP we cannot choose it larger for large work sizes to work + // correctly, the unit tests fail with wrong results + const int gridMaxComputeCapability_2x = 0x01fff; + + // FIXME_HIP block sizes greater than 256 don't work correctly, + // the unit tests fail with wrong results + const int block_size = + std::min(static_cast(local_block_size(m_functor)), 256); + + const int grid_max = + std::min(block_size * block_size, gridMaxComputeCapability_2x); + + // At most 'max_grid' blocks: + const int max_grid = + std::min(grid_max, (nwork + block_size - 1) / block_size); + + // How much work per block: + const int work_per_block = (nwork + max_grid - 1) / max_grid; + + // How many block are really needed for this much work: + m_grid_x = (nwork + work_per_block - 1) / work_per_block; + + m_scratch_space = Kokkos::Experimental::Impl::hip_internal_scratch_space( + ValueTraits::value_size(m_functor) * m_grid_x); + m_scratch_flags = Kokkos::Experimental::Impl::hip_internal_scratch_flags( + sizeof(size_type) * 1); + + dim3 grid(m_grid_x, 1, 1); + dim3 block(1, block_size, 1); // REQUIRED DIMENSIONS ( 1 , N , 1 ) + const int shmem = ValueTraits::value_size(m_functor) * (block_size + 2); + + m_final = false; + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shmem, + m_policy.space().impl_internal_space_instance(), + false); // copy to device and execute + + m_final = true; + Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shmem, + m_policy.space().impl_internal_space_instance(), + false); // copy to device and execute + } + } + + ParallelScanHIPBase(const FunctorType& arg_functor, const Policy& arg_policy) + : m_functor(arg_functor), m_policy(arg_policy) {} +}; + +template +class ParallelScan, + Kokkos::Experimental::HIP> + : private ParallelScanHIPBase { + public: + using Base = ParallelScanHIPBase; + using Base::operator(); + + inline void execute() { Base::impl_execute(); } + + ParallelScan(const FunctorType& arg_functor, + const typename Base::Policy& arg_policy) + : Base(arg_functor, arg_policy) {} +}; + +//---------------------------------------------------------------------------- + +template +class ParallelScanWithTotal, + ReturnType, Kokkos::Experimental::HIP> + : private ParallelScanHIPBase { + public: + using Base = ParallelScanHIPBase; + using Base::operator(); + + ReturnType& m_returnvalue; + + inline void execute() { + Base::impl_execute(); + + const auto nwork = Base::m_policy.end() - Base::m_policy.begin(); + if (nwork) { + const int size = Base::ValueTraits::value_size(Base::m_functor); + DeepCopy( + &m_returnvalue, + Base::m_scratch_space + (Base::m_grid_x - 1) * size / sizeof(int), + size); + } + } + + ParallelScanWithTotal(const FunctorType& arg_functor, + const typename Base::Policy& arg_policy, + ReturnType& arg_returnvalue) + : Base(arg_functor, arg_policy), m_returnvalue(arg_returnvalue) {} +}; + +} // namespace Impl +} // namespace Kokkos + +#endif + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp new file mode 100644 index 0000000000000000000000000000000000000000..53097f36431678e83f10231afca96bbb72bf2c42 --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Parallel_Team.hpp @@ -0,0 +1,562 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKO_HIP_PARALLEL_TEAM_HPP +#define KOKKO_HIP_PARALLEL_TEAM_HPP + +#include + +#if defined(__HIPCC__) + +#include +#include +#include +#include + +namespace Kokkos { +namespace Impl { +template +class TeamPolicyInternal + : public PolicyTraits { + public: + using execution_policy = TeamPolicyInternal; + + using traits = PolicyTraits; + + template + friend class TeamPolicyInternal; + + private: + static int constexpr MAX_WARP = 8; + + typename traits::execution_space m_space; + int m_league_size; + int m_team_size; + int m_vector_length; + int m_team_scratch_size[2]; + int m_thread_scratch_size[2]; + int m_chunk_size; + + public: + using execution_space = Kokkos::Experimental::HIP; + + template + TeamPolicyInternal(TeamPolicyInternal const& p) { + m_league_size = p.m_league_size; + m_team_size = p.m_team_size; + m_vector_length = p.m_vector_length; + m_team_scratch_size[0] = p.m_team_scratch_size[0]; + m_team_scratch_size[1] = p.m_team_scratch_size[1]; + m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; + m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; + m_chunk_size = p.m_chunk_size; + m_space = p.m_space; + } + + TeamPolicyInternal& operator=(TeamPolicyInternal const& p) { + m_league_size = p.m_league_size; + m_team_size = p.m_team_size; + m_vector_length = p.m_vector_length; + m_team_scratch_size[0] = p.m_team_scratch_size[0]; + m_team_scratch_size[1] = p.m_team_scratch_size[1]; + m_thread_scratch_size[0] = p.m_thread_scratch_size[0]; + m_thread_scratch_size[1] = p.m_thread_scratch_size[1]; + m_chunk_size = p.m_chunk_size; + m_space = p.m_space; + return *this; + } + + template + int team_size_max(FunctorType const& f, ParallelForTag const&) const { + using closure_type = + Impl::ParallelFor >; + hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< + closure_type, + typename traits::launch_bounds>::get_hip_func_attributes(); + int const block_size = ::Kokkos::Experimental::Impl::hip_get_max_block_size< + FunctorType, typename traits::launch_bounds>( + space().impl_internal_space_instance(), attr, f, + static_cast(vector_length()), + static_cast(team_scratch_size(0)) + 2 * sizeof(double), + static_cast(thread_scratch_size(0)) + sizeof(double)); + return block_size / vector_length(); + } + + template + int team_size_recommended(FunctorType const& f, ParallelForTag const&) const { + typedef Impl::ParallelFor > + closure_type; + hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< + closure_type, + typename traits::launch_bounds>::get_hip_func_attributes(); + int const block_size = ::Kokkos::Experimental::Impl::hip_get_opt_block_size< + FunctorType, typename traits::launch_bounds>( + space().impl_internal_space_instance(), attr, f, + static_cast(vector_length()), + static_cast(team_scratch_size(0)) + 2 * sizeof(double), + static_cast(thread_scratch_size(0)) + sizeof(double)); + return block_size / vector_length(); + } + + static int vector_length_max() { + return ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + } + + static int verify_requested_vector_length(int requested_vector_length) { + int test_vector_length = + std::min(requested_vector_length, vector_length_max()); + + // Allow only power-of-two vector_length + if (!(is_integral_power_of_two(test_vector_length))) { + int test_pow2 = 1; + for (int i = 0; i < 5; i++) { + test_pow2 = test_pow2 << 1; + if (test_pow2 > test_vector_length) { + break; + } + } + test_vector_length = test_pow2 >> 1; + } + + return test_vector_length; + } + + static int scratch_size_max(int level) { + return ( + level == 0 ? 1024 * 40 : // FIXME_HIP arbitrarily setting this to 48kB + 20 * 1024 * 1024); // FIXME_HIP arbitrarily setting this to 20MB + } + + int vector_length() const { return m_vector_length; } + + int team_size() const { return m_team_size; } + + int league_size() const { return m_league_size; } + + int scratch_size(int level, int team_size_ = -1) const { + if (team_size_ < 0) team_size_ = m_team_size; + return m_team_scratch_size[level] + + team_size_ * m_thread_scratch_size[level]; + } + + int team_scratch_size(int level) const { return m_team_scratch_size[level]; } + + int thread_scratch_size(int level) const { + return m_thread_scratch_size[level]; + } + + typename traits::execution_space space() const { return m_space; } + + TeamPolicyInternal() + : m_space(typename traits::execution_space()), + m_league_size(0), + m_team_size(-1), + m_vector_length(0), + m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) {} + + /** \brief Specify league size, request team size */ + TeamPolicyInternal(const execution_space space_, int league_size_, + int team_size_request, int vector_length_request = 1) + : m_space(space_), + m_league_size(league_size_), + m_team_size(team_size_request), + m_vector_length(verify_requested_vector_length(vector_length_request)), + m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { + // Make sure league size is permissable + if (league_size_ >= + static_cast( + ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) + Impl::throw_runtime_exception( + "Requested too large league_size for TeamPolicy on HIP execution " + "space."); + + // Make sure total block size is permissable + if (m_team_size * m_vector_length > 1024) { + Impl::throw_runtime_exception( + std::string("Kokkos::TeamPolicy< HIP > the team size is too large. " + "Team size x vector length must be smaller than 1024.")); + } + } + + /** \brief Specify league size, request team size */ + TeamPolicyInternal(const execution_space space_, int league_size_, + const Kokkos::AUTO_t& /* team_size_request */, + int vector_length_request = 1) + : m_space(space_), + m_league_size(league_size_), + m_team_size(-1), + m_vector_length(verify_requested_vector_length(vector_length_request)), + m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { + // Make sure league size is permissable + if (league_size_ >= + static_cast( + ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) + Impl::throw_runtime_exception( + "Requested too large league_size for TeamPolicy on HIP execution " + "space."); + } + + TeamPolicyInternal(int league_size_, int team_size_request, + int vector_length_request = 1) + : m_space(typename traits::execution_space()), + m_league_size(league_size_), + m_team_size(team_size_request), + m_vector_length(verify_requested_vector_length(vector_length_request)), + m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { + // Make sure league size is permissable + if (league_size_ >= + static_cast( + ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) + Impl::throw_runtime_exception( + "Requested too large league_size for TeamPolicy on HIP execution " + "space."); + + // Make sure total block size is permissable + if (m_team_size * m_vector_length > 1024) { + Impl::throw_runtime_exception( + std::string("Kokkos::TeamPolicy< HIP > the team size is too large. " + "Team size x vector length must be smaller than 1024.")); + } + } + + TeamPolicyInternal(int league_size_, + const Kokkos::AUTO_t& /* team_size_request */, + int vector_length_request = 1) + : m_space(typename traits::execution_space()), + m_league_size(league_size_), + m_team_size(-1), + m_vector_length(verify_requested_vector_length(vector_length_request)), + m_team_scratch_size{0, 0}, + m_thread_scratch_size{0, 0}, + m_chunk_size(::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { + // Make sure league size is permissable + if (league_size_ >= + static_cast( + ::Kokkos::Experimental::Impl::hip_internal_maximum_grid_count())) + Impl::throw_runtime_exception( + "Requested too large league_size for TeamPolicy on HIP execution " + "space."); + } + + int chunk_size() const { return m_chunk_size; } + + TeamPolicyInternal& set_chunk_size(typename traits::index_type chunk_size_) { + m_chunk_size = chunk_size_; + return *this; + } + + /** \brief set per team scratch size for a specific level of the scratch + * hierarchy */ + TeamPolicyInternal& set_scratch_size(int level, + PerTeamValue const& per_team) { + m_team_scratch_size[level] = per_team.value; + return *this; + } + + /** \brief set per thread scratch size for a specific level of the scratch + * hierarchy */ + TeamPolicyInternal& set_scratch_size(int level, + PerThreadValue const& per_thread) { + m_thread_scratch_size[level] = per_thread.value; + return *this; + } + + /** \brief set per thread and per team scratch size for a specific level of + * the scratch hierarchy */ + TeamPolicyInternal& set_scratch_size(int level, PerTeamValue const& per_team, + PerThreadValue const& per_thread) { + m_team_scratch_size[level] = per_team.value; + m_thread_scratch_size[level] = per_thread.value; + return *this; + } + + using member_type = Kokkos::Impl::HIPTeamMember; + + protected: + template + int internal_team_size_common(const FunctorType& f, + BlockSizeCallable&& block_size_callable) const { + using closure_type = ClosureType; + using functor_value_traits = + Impl::FunctorValueTraits; + + hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< + closure_type, + typename traits::launch_bounds>::get_hip_func_attributes(); + const int block_size = std::forward(block_size_callable)( + space().impl_internal_space_instance(), attr, f, + static_cast(vector_length()), + static_cast(team_scratch_size(0)) + 2 * sizeof(double), + static_cast(thread_scratch_size(0)) + sizeof(double) + + ((functor_value_traits::StaticValueSize != 0) + ? 0 + : functor_value_traits::value_size(f))); + KOKKOS_ASSERT(block_size > 0); + + // Currently we require Power-of-2 team size for reductions. + int p2 = 1; + while (p2 <= block_size) p2 *= 2; + p2 /= 2; + return p2 / vector_length(); + } + + template + int internal_team_size_max(const FunctorType& f) const { + return internal_team_size_common( + f, ::Kokkos::Experimental::Impl::hip_get_max_block_size< + FunctorType, typename traits::launch_bounds>); + } + + template + int internal_team_size_recommended(const FunctorType& f) const { + return internal_team_size_common( + f, ::Kokkos::Experimental::Impl::hip_get_opt_block_size< + FunctorType, typename traits::launch_bounds>); + } +}; + +struct HIPLockArrays { + std::int32_t* atomic = nullptr; + std::int32_t* scratch = nullptr; + std::int32_t n = 0; +}; + +template +class ParallelFor, + Kokkos::Experimental::HIP> { + public: + using Policy = TeamPolicyInternal; + using functor_type = FunctorType; + using size_type = ::Kokkos::Experimental::HIP::size_type; + + private: + using Member = typename Policy::member_type; + using WorkTag = typename Policy::work_tag; + using LaunchBounds = typename Policy::launch_bounds; + + // Algorithmic constraints: hipBlockDim_y is a power of two AND hipBlockDim_y + // == hipBlockDim_z == 1 shared memory utilization: + // + // [ team reduce space ] + // [ team shared space ] + + FunctorType const m_functor; + Policy const m_policy; + size_type const m_league_size; + int m_team_size; + size_type const m_vector_size; + int m_shmem_begin; + int m_shmem_size; + void* m_scratch_ptr[2]; + int m_scratch_size[2]; + mutable HIPLockArrays hip_lock_arrays; + + template + __device__ inline + typename std::enable_if::value>::type + exec_team(const Member& member) const { + m_functor(member); + } + + template + __device__ inline + typename std::enable_if::value>::type + exec_team(const Member& member) const { + m_functor(TagType(), member); + } + + public: + __device__ inline void operator()(void) const { + // Iterate this block through the league + int64_t threadid = 0; + if (m_scratch_size[1] > 0) { + __shared__ int64_t base_thread_id; + if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) { + threadid = (hipBlockIdx_x * hipBlockDim_z + hipThreadIdx_z) % + (hip_lock_arrays.n / (hipBlockDim_x * hipBlockDim_y)); + threadid *= hipBlockDim_x * hipBlockDim_y; + int done = 0; + while (!done) { + done = (0 == atomicCAS(&hip_lock_arrays.scratch[threadid], 0, 1)); + if (!done) { + threadid += hipBlockDim_x * hipBlockDim_y; + if (int64_t(threadid + hipBlockDim_x * hipBlockDim_y) >= + int64_t(hip_lock_arrays.n)) + threadid = 0; + } + } + base_thread_id = threadid; + } + __syncthreads(); + threadid = base_thread_id; + } + + int const int_league_size = static_cast(m_league_size); + for (int league_rank = hipBlockIdx_x; league_rank < int_league_size; + league_rank += hipGridDim_x) { + this->template exec_team(typename Policy::member_type( + ::Kokkos::Experimental::kokkos_impl_hip_shared_memory(), + m_shmem_begin, m_shmem_size, + static_cast( + static_cast(m_scratch_ptr[1]) + + ptrdiff_t(threadid / (hipBlockDim_x * hipBlockDim_y)) * + m_scratch_size[1]), + m_scratch_size[1], league_rank, m_league_size)); + } + if (m_scratch_size[1] > 0) { + __syncthreads(); + if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) + hip_lock_arrays.scratch[threadid] = 0; + } + } + + inline void execute() const { + HIP_SAFE_CALL(hipMalloc( + &hip_lock_arrays.atomic, + sizeof(std::int32_t) * (KOKKOS_IMPL_HIP_SPACE_ATOMIC_MASK + 1))); + HIP_SAFE_CALL(hipMalloc( + &hip_lock_arrays.scratch, + sizeof(std::int32_t) * (::Kokkos::Experimental::HIP::concurrency()))); + HIP_SAFE_CALL(hipMemset( + hip_lock_arrays.scratch, 0, + sizeof(std::int32_t) * (::Kokkos::Experimental::HIP::concurrency()))); + hip_lock_arrays.n = ::Kokkos::Experimental::HIP::concurrency(); + + int64_t const shmem_size_total = m_shmem_begin + m_shmem_size; + dim3 const grid(static_cast(m_league_size), 1, 1); + dim3 const block(static_cast(m_vector_size), + static_cast(m_team_size), 1); + + ::Kokkos::Experimental::Impl::HIPParallelLaunch( + *this, grid, block, shmem_size_total, + m_policy.space().impl_internal_space_instance(), + true); // copy to device and execute + + if (hip_lock_arrays.atomic) { + HIP_SAFE_CALL(hipFree(hip_lock_arrays.atomic)); + hip_lock_arrays.atomic = nullptr; + } + if (hip_lock_arrays.scratch) { + HIP_SAFE_CALL(hipFree(hip_lock_arrays.scratch)); + hip_lock_arrays.scratch = nullptr; + } + hip_lock_arrays.n = 0; + } + + ParallelFor(FunctorType const& arg_functor, Policy const& arg_policy) + : m_functor(arg_functor), + m_policy(arg_policy), + m_league_size(arg_policy.league_size()), + m_team_size(arg_policy.team_size()), + m_vector_size(arg_policy.vector_length()) { + hipFuncAttributes attr = ::Kokkos::Experimental::Impl::HIPParallelLaunch< + ParallelFor, LaunchBounds>::get_hip_func_attributes(); + m_team_size = + m_team_size >= 0 + ? m_team_size + : ::Kokkos::Experimental::Impl::hip_get_opt_block_size< + FunctorType, LaunchBounds>( + m_policy.space().impl_internal_space_instance(), attr, + m_functor, m_vector_size, m_policy.team_scratch_size(0), + m_policy.thread_scratch_size(0)) / + m_vector_size; + + m_shmem_begin = (sizeof(double) * (m_team_size + 2)); + m_shmem_size = + (m_policy.scratch_size(0, m_team_size) + + FunctorTeamShmemSize::value(m_functor, m_team_size)); + m_scratch_size[0] = m_policy.scratch_size(0, m_team_size); + m_scratch_size[1] = m_policy.scratch_size(1, m_team_size); + + // Functor's reduce memory, team scan memory, and team shared memory depend + // upon team size. + m_scratch_ptr[0] = nullptr; + m_scratch_ptr[1] = + m_team_size <= 0 + ? nullptr + : ::Kokkos::Experimental::Impl::hip_resize_scratch_space( + static_cast(m_scratch_size[1]) * + static_cast( + ::Kokkos::Experimental::HIP::concurrency() / + (m_team_size * m_vector_size))); + + int const shmem_size_total = m_shmem_begin + m_shmem_size; + if (m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock < + shmem_size_total) { + printf( + "%i %i\n", + m_policy.space().impl_internal_space_instance()->m_maxShmemPerBlock, + shmem_size_total); + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Impl::ParallelFor< HIP > insufficient shared memory")); + } + + if (static_cast(m_team_size) > + static_cast( + ::Kokkos::Experimental::Impl::hip_get_max_block_size( + m_policy.space().impl_internal_space_instance(), attr, + arg_functor, arg_policy.vector_length(), + arg_policy.team_scratch_size(0), + arg_policy.thread_scratch_size(0)) / + arg_policy.vector_length())) { + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Impl::ParallelFor< HIP > requested too large team size.")); + } + } +}; +} // namespace Impl +} // namespace Kokkos + +#endif + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp new file mode 100644 index 0000000000000000000000000000000000000000..362128c41195d450070fb7a13610d2436c11aed7 --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_ReduceScan.hpp @@ -0,0 +1,420 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_REDUCESCAN_HPP +#define KOKKOS_HIP_REDUCESCAN_HPP + +#include + +#if defined(__HIPCC__) + +namespace Kokkos { +namespace Impl { +template +struct HIPReductionsFunctor; + +template +struct HIPReductionsFunctor { + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; + using pointer_type = typename ValueTraits::pointer_type; + using Scalar = typename ValueTraits::value_type; + + __device__ static inline void scalar_intra_warp_reduction( + FunctorType const& functor, + Scalar* value, // Contribution + bool const skip_vector, // Skip threads if Kokkos vector lanes are not + // part of the reduction + int const width) // How much of the warp participates + { + int const lane_id = (hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x) % + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + for (int delta = skip_vector ? hipBlockDim_x : 1; delta < width; + delta *= 2) { + if (lane_id + delta < ::Kokkos::Experimental::Impl::HIPTraits::WarpSize) { + ValueJoin::join(functor, value, value + delta); + } + } + *value = *(value - lane_id); + } + + __device__ static inline void scalar_intra_block_reduction( + FunctorType const& functor, Scalar value, bool const skip, Scalar* result, + int const /*shared_elements*/, Scalar* shared_team_buffer_element) { + int const warp_id = (hipThreadIdx_y * hipBlockDim_x) / + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + Scalar* const my_shared_team_buffer_element = + shared_team_buffer_element + hipThreadIdx_y * hipBlockDim_x + + hipThreadIdx_x; + *my_shared_team_buffer_element = value; + // Warp Level Reduction, ignoring Kokkos vector entries + scalar_intra_warp_reduction( + functor, my_shared_team_buffer_element, skip, + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize); + // Wait for every warp to be done before using one warp to do final cross + // warp reduction + __syncthreads(); + + if (warp_id == 0) { + const unsigned int delta = + (hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x) * + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + if (delta < hipBlockDim_x * hipBlockDim_y) + *my_shared_team_buffer_element = shared_team_buffer_element[delta]; + scalar_intra_warp_reduction( + functor, my_shared_team_buffer_element, false, + hipBlockDim_x * hipBlockDim_y / + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize); + if (hipThreadIdx_x + hipThreadIdx_y == 0) + *result = *shared_team_buffer_element; + } + } + + __device__ static inline bool scalar_inter_block_reduction( + FunctorType const& functor, + ::Kokkos::Experimental::HIP::size_type const /*block_id*/, + ::Kokkos::Experimental::HIP::size_type const block_count, + ::Kokkos::Experimental::HIP::size_type* const shared_data, + ::Kokkos::Experimental::HIP::size_type* const global_data, + ::Kokkos::Experimental::HIP::size_type* const global_flags) { + Scalar* const global_team_buffer_element = + reinterpret_cast(global_data); + Scalar* const my_global_team_buffer_element = + global_team_buffer_element + hipBlockIdx_x; + Scalar* shared_team_buffer_elements = + reinterpret_cast(shared_data); + Scalar value = shared_team_buffer_elements[hipThreadIdx_y]; + int shared_elements = (hipBlockDim_x * hipBlockDim_y) / + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + int global_elements = block_count; + __syncthreads(); + + // Do the scalar reduction inside each block + scalar_intra_block_reduction(functor, value, true, + my_global_team_buffer_element, shared_elements, + shared_team_buffer_elements); + __syncthreads(); + + // Use the last block that is done to do the do the reduction across the + // block + __shared__ unsigned int num_teams_done; + if (hipThreadIdx_x + hipThreadIdx_y == 0) { + __threadfence(); + num_teams_done = Kokkos::atomic_fetch_add(global_flags, 1) + 1; + } + bool is_last_block = false; + // FIXME_HIP HIP does not support syncthreads_or. That's why we need to make + // num_teams_done __shared__ + // if (__syncthreads_or(num_teams_done == hipGridDim_x)) {*/ + __syncthreads(); + if (num_teams_done == hipGridDim_x) { + is_last_block = true; + *global_flags = 0; + ValueInit::init(functor, &value); + for (int i = hipThreadIdx_y * hipBlockDim_x + hipThreadIdx_x; + i < global_elements; i += hipBlockDim_x * hipBlockDim_y) { + ValueJoin::join(functor, &value, &global_team_buffer_element[i]); + } + scalar_intra_block_reduction( + functor, value, false, + shared_team_buffer_elements + (hipBlockDim_y - 1), shared_elements, + shared_team_buffer_elements); + } + + return is_last_block; + } +}; + +//---------------------------------------------------------------------------- +/* + * Algorithmic constraints: + * (a) hipBlockDim_y is a power of two + * (b) hipBlockDim_y <= 1024 + * (c) hipBlockDim_x == hipBlockDim_z == 1 + */ + +template +__device__ void hip_intra_block_reduce_scan( + FunctorType const& functor, + typename FunctorValueTraits::pointer_type const + base_data) { + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + + using pointer_type = typename ValueTraits::pointer_type; + + unsigned int const value_count = ValueTraits::value_count(functor); + unsigned int const BlockSizeMask = hipBlockDim_y - 1; + int const WarpMask = Experimental::Impl::HIPTraits::WarpSize - 1; + + // Must have power of two thread count + if ((hipBlockDim_y - 1) & hipBlockDim_y) { + Kokkos::abort( + "HIP::hip_intra_block_reduce_scan requires power-of-two " + "hipBlockDim_y\n"); + } + + auto block_reduce_step = + [&functor, value_count](int const R, pointer_type const TD, int const S) { + if (R > ((1 << S) - 1)) { + ValueJoin::join(functor, TD, (TD - (value_count << S))); + } + }; + + { // Intra-warp reduction: + const unsigned rtid_intra = hipThreadIdx_y & WarpMask; + const pointer_type tdata_intra = base_data + value_count * hipThreadIdx_y; + + block_reduce_step(rtid_intra, tdata_intra, 0); + block_reduce_step(rtid_intra, tdata_intra, 1); + block_reduce_step(rtid_intra, tdata_intra, 2); + block_reduce_step(rtid_intra, tdata_intra, 3); + block_reduce_step(rtid_intra, tdata_intra, 4); + block_reduce_step(rtid_intra, tdata_intra, 5); + } + + __syncthreads(); // Wait for all warps to reduce + + { // Inter-warp reduce-scan by a single warp to avoid extra synchronizations + unsigned int const rtid_inter = + ((hipThreadIdx_y + 1) + << Experimental::Impl::HIPTraits::WarpIndexShift) - + 1; + + if (rtid_inter < hipBlockDim_y) { + pointer_type const tdata_inter = base_data + value_count * rtid_inter; + + if ((1 << 6) < BlockSizeMask) { + block_reduce_step(rtid_inter, tdata_inter, 6); + } + if ((1 << 7) < BlockSizeMask) { + block_reduce_step(rtid_inter, tdata_inter, 7); + } + if ((1 << 8) < BlockSizeMask) { + block_reduce_step(rtid_inter, tdata_inter, 8); + } + if ((1 << 9) < BlockSizeMask) { + block_reduce_step(rtid_inter, tdata_inter, 9); + } + if ((1 << 10) < BlockSizeMask) { + block_reduce_step(rtid_inter, tdata_inter, 10); + } + } + } + + __syncthreads(); // Wait for inter-warp reduce-scan to complete + + if (DoScan) { + // Update all the values for the respective warps (except for the last one) + // by adding from the last value of the previous warp. + if (hipThreadIdx_y >= Experimental::Impl::HIPTraits::WarpSize && + (hipThreadIdx_y & WarpMask) != + Experimental::Impl::HIPTraits::WarpSize - 1) { + const int offset_to_previous_warp_total = + (hipThreadIdx_y & (~WarpMask)) - 1; + ValueJoin::join(functor, base_data + value_count * hipThreadIdx_y, + base_data + value_count * offset_to_previous_warp_total); + } + } +} + +//---------------------------------------------------------------------------- +/**\brief Input value-per-thread starting at 'shared_data'. + * Reduction value at last thread's location. + * + * If 'DoScan' then write blocks' scan values and block-groups' scan values. + * + * Global reduce result is in the last threads' 'shared_data' location. + */ + +template +__device__ bool hip_single_inter_block_reduce_scan2( + FunctorType const& functor, + ::Kokkos::Experimental::HIP::size_type const block_id, + ::Kokkos::Experimental::HIP::size_type const block_count, + ::Kokkos::Experimental::HIP::size_type* const shared_data, + ::Kokkos::Experimental::HIP::size_type* const global_data, + ::Kokkos::Experimental::HIP::size_type* const global_flags) { + using size_type = ::Kokkos::Experimental::HIP::size_type; + using ValueTraits = FunctorValueTraits; + using ValueJoin = FunctorValueJoin; + using ValueInit = FunctorValueInit; + using ValueOps = FunctorValueOps; + + using pointer_type = typename ValueTraits::pointer_type; + + // '__ffs' = position of the least significant bit set to 1. + // 'hipBlockDim_y' is guaranteed to be a power of two so this + // is the integral shift value that can replace an integral divide. + unsigned int const BlockSizeShift = __ffs(hipBlockDim_y) - 1; + unsigned int const BlockSizeMask = hipBlockDim_y - 1; + + // Must have power of two thread count + if (BlockSizeMask & hipBlockDim_y) { + Kokkos::abort( + "HIP::hip_single_inter_block_reduce_scan requires power-of-two " + "blockDim"); + } + + integral_nonzero_constant const + word_count(ValueTraits::value_size(functor) / sizeof(size_type)); + + // Reduce the accumulation for the entire block. + hip_intra_block_reduce_scan( + functor, pointer_type(shared_data)); + + { + // Write accumulation total to global scratch space. + // Accumulation total is the last thread's data. + size_type* const shared = shared_data + word_count.value * BlockSizeMask; + size_type* const global = global_data + word_count.value * block_id; + + for (size_t i = hipThreadIdx_y; i < word_count.value; i += hipBlockDim_y) { + global[i] = shared[i]; + } + } + + // Contributing blocks note that their contribution has been completed via an + // atomic-increment flag If this block is not the last block to contribute to + // this group then the block is done. + // FIXME_HIP __syncthreads_or is not supported by HIP yet. + // const bool is_last_block = !__syncthreads_or( + // threadIdx.y + // ? 0 + // : (1 + atomicInc(global_flags, block_count - 1) < block_count)); + __shared__ int n_done; + n_done = 0; + __syncthreads(); + if (hipThreadIdx_y == 0) { + __threadfence(); + n_done = 1 + atomicInc(global_flags, block_count - 1); + } + __syncthreads(); + bool const is_last_block = (n_done == static_cast(block_count)); + + if (is_last_block) { + size_type const b = (static_cast(block_count) * + static_cast(hipThreadIdx_y)) >> + BlockSizeShift; + size_type const e = (static_cast(block_count) * + static_cast(hipThreadIdx_y + 1)) >> + BlockSizeShift; + + { + void* const shared_ptr = shared_data + word_count.value * hipThreadIdx_y; + /* reference_type shared_value = */ ValueInit::init(functor, shared_ptr); + + for (size_type i = b; i < e; ++i) { + ValueJoin::join(functor, shared_ptr, + global_data + word_count.value * i); + } + } + + hip_intra_block_reduce_scan( + functor, pointer_type(shared_data)); + + if (DoScan) { + size_type* const shared_value = + shared_data + word_count.value * (hipThreadIdx_y ? hipThreadIdx_y - 1 + : hipBlockDim_y); + + if (!hipThreadIdx_y) { + ValueInit::init(functor, shared_value); + } + + // Join previous inclusive scan value to each member + for (size_type i = b; i < e; ++i) { + size_type* const global_value = global_data + word_count.value * i; + ValueJoin::join(functor, shared_value, global_value); + ValueOps::copy(functor, global_value, shared_value); + } + } + } + + return is_last_block; +} + +template +__device__ bool hip_single_inter_block_reduce_scan( + FunctorType const& functor, + ::Kokkos::Experimental::HIP::size_type const block_id, + ::Kokkos::Experimental::HIP::size_type const block_count, + ::Kokkos::Experimental::HIP::size_type* const shared_data, + ::Kokkos::Experimental::HIP::size_type* const global_data, + ::Kokkos::Experimental::HIP::size_type* const global_flags) { + using ValueTraits = FunctorValueTraits; + if (!DoScan && /*FIXME*/ (bool)ValueTraits::StaticValueSize) + // FIXME_HIP For now we don't use shuffle + // return Kokkos::Impl::HIPReductionsFunctor< + // FunctorType, ArgTag, false, (ValueTraits::StaticValueSize > 16)>:: + // scalar_inter_block_reduction(functor, block_id, block_count, + // shared_data, global_data, global_flags); + return Kokkos::Impl::HIPReductionsFunctor< + FunctorType, ArgTag, false, + false>::scalar_inter_block_reduction(functor, block_id, block_count, + shared_data, global_data, + global_flags); + else { + return hip_single_inter_block_reduce_scan2( + functor, block_id, block_count, shared_data, global_data, global_flags); + } +} + +// Size in bytes required for inter block reduce or scan +template +inline unsigned hip_single_inter_block_reduce_scan_shmem( + const FunctorType& functor, const unsigned BlockSize) { + return (BlockSize + 2) * + Impl::FunctorValueTraits::value_size(functor); +} + +} // namespace Impl +} // namespace Kokkos + +#endif + +#endif diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2dca7f13c956c135b87e53b39bedad52caab6ca0 --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Space.cpp @@ -0,0 +1,636 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ +namespace Kokkos { +namespace Impl { + +namespace { +hipStream_t get_deep_copy_stream() { + static hipStream_t s = 0; + if (s == 0) { + HIP_SAFE_CALL(hipStreamCreate(&s)); + } + return s; +} +} // namespace + +DeepCopy::DeepCopy(void* dst, const void* src, + size_t n) { + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(void* dst, const void* src, + size_t n) { + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(void* dst, const void* src, + size_t n) { + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(const Kokkos::Experimental::HIP& + /*instance*/, + void* dst, const void* src, + size_t n) { + // FIXME_HIP use instance + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy:: + DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + const void* src, size_t n) { + // FIXME_HIP use instance + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy:: + DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + const void* src, size_t n) { + // FIXME_HIP use instance + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(void* dst, const void* src, + size_t n) { + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(void* dst, const void* src, + size_t n) { + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(void* dst, const void* src, + size_t n) { + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy:: + DeepCopy(const Kokkos::Experimental::HIP& /*instance*/, void* dst, + const void* src, size_t n) { + // FIXME_HIP use instance + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(const Kokkos::Experimental::HIP& + /*instance*/, + void* dst, const void* src, + size_t n) { + // FIXME_HIP use instance + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +DeepCopy::DeepCopy(const Kokkos::Experimental::HIP& + /*instance*/, + void* dst, const void* src, + size_t n) { + // FIXME_HIP use instance + HIP_SAFE_CALL(hipMemcpy(dst, src, n, hipMemcpyDefault)); +} + +void DeepCopyAsyncHIP(void* dst, void const* src, size_t n) { + hipStream_t s = get_deep_copy_stream(); + HIP_SAFE_CALL(hipMemcpyAsync(dst, src, n, hipMemcpyDefault, s)); + hipStreamSynchronize(s); +} + +} // namespace Impl +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { + +void Experimental::HIPSpace::access_error() { + const std::string msg( + "Kokkos::Experimental::HIPSpace::access_error attempt to execute " + "Experimental::HIP function from non-HIP space"); + Kokkos::Impl::throw_runtime_exception(msg); +} + +void Experimental::HIPSpace::access_error(const void* const) { + const std::string msg( + "Kokkos::Experimental::HIPSpace::access_error attempt to execute " + "Experimental::HIP function from non-HIP space"); + Kokkos::Impl::throw_runtime_exception(msg); +} + +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { +namespace Experimental { + +HIPSpace::HIPSpace() : m_device(HIP().hip_device()) {} + +HIPHostPinnedSpace::HIPHostPinnedSpace() {} + +void* HIPSpace::allocate(const size_t arg_alloc_size) const { + void* ptr = nullptr; + + auto const error_code = hipMalloc(&ptr, arg_alloc_size); + if (error_code != hipSuccess) { + hipGetLastError(); // This is the only way to clear the last error, which + // we should do here since we're turning it into an + // exception here + throw HIPRawMemoryAllocationFailure( + arg_alloc_size, error_code, + RawMemoryAllocationFailure::AllocationMechanism::HIPMalloc); + } + + return ptr; +} + +void* HIPHostPinnedSpace::allocate(const size_t arg_alloc_size) const { + void* ptr = nullptr; + + auto const error_code = hipHostMalloc(&ptr, arg_alloc_size); + if (error_code != hipSuccess) { + hipGetLastError(); // This is the only way to clear the last error, which + // we should do here since we're turning it into an + // exception here + throw HIPRawMemoryAllocationFailure( + arg_alloc_size, error_code, + RawMemoryAllocationFailure::AllocationMechanism::HIPHostMalloc); + } + + return ptr; +} + +void HIPSpace::deallocate(void* const arg_alloc_ptr, + const size_t /* arg_alloc_size */) const { + HIP_SAFE_CALL(hipFree(arg_alloc_ptr)); +} + +void HIPHostPinnedSpace::deallocate(void* const arg_alloc_ptr, + const size_t /* arg_alloc_size */) const { + HIP_SAFE_CALL(hipHostFree(arg_alloc_ptr)); +} + +} // namespace Experimental +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +#ifdef KOKKOS_DEBUG +SharedAllocationRecord + SharedAllocationRecord::s_root_record; + +SharedAllocationRecord SharedAllocationRecord< + Kokkos::Experimental::HIPHostPinnedSpace, void>::s_root_record; +#endif + +std::string SharedAllocationRecord::get_label() const { + SharedAllocationHeader header; + + Kokkos::Impl::DeepCopy( + &header, RecordBase::head(), sizeof(SharedAllocationHeader)); + + return std::string(header.m_label); +} + +std::string SharedAllocationRecord::get_label() const { + return std::string(RecordBase::head()->m_label); +} + +SharedAllocationRecord* +SharedAllocationRecord::allocate( + const Kokkos::Experimental::HIPSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size) { + return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); +} + +SharedAllocationRecord* +SharedAllocationRecord:: + allocate(const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size) { + return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); +} + +void SharedAllocationRecord::deallocate( + SharedAllocationRecord* arg_rec) { + delete static_cast(arg_rec); +} + +void SharedAllocationRecord:: + deallocate(SharedAllocationRecord* arg_rec) { + delete static_cast(arg_rec); +} + +SharedAllocationRecord::~SharedAllocationRecord() { +#if defined(KOKKOS_ENABLE_PROFILING) + if (Kokkos::Profiling::profileLibraryLoaded()) { + SharedAllocationHeader header; + Kokkos::Impl::DeepCopy( + &header, RecordBase::m_alloc_ptr, sizeof(SharedAllocationHeader)); + + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::SpaceHandle(Kokkos::Experimental::HIPSpace::name()), + header.m_label, data(), size()); + } +#endif + + m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, + SharedAllocationRecord::m_alloc_size); +} + +SharedAllocationRecord::~SharedAllocationRecord() { +#if defined(KOKKOS_ENABLE_PROFILING) + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::deallocateData( + Kokkos::Profiling::SpaceHandle( + Kokkos::Experimental::HIPHostPinnedSpace::name()), + RecordBase::m_alloc_ptr->m_label, data(), size()); + } +#endif + + m_space.deallocate(SharedAllocationRecord::m_alloc_ptr, + SharedAllocationRecord::m_alloc_size); +} + +SharedAllocationRecord:: + SharedAllocationRecord( + const Kokkos::Experimental::HIPSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size, + const SharedAllocationRecord::function_type arg_dealloc) + // Pass through allocated [ SharedAllocationHeader , user_memory ] + // Pass through deallocation function + : SharedAllocationRecord( +#ifdef KOKKOS_DEBUG + &SharedAllocationRecord::s_root_record, +#endif + Kokkos::Impl::checked_allocation_with_header(arg_space, arg_label, + arg_alloc_size), + sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), + m_space(arg_space) { +#if defined(KOKKOS_ENABLE_PROFILING) + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::allocateData( + Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), + arg_alloc_size); + } +#endif + + SharedAllocationHeader header; + + // Fill in the Header information + header.m_record = static_cast*>(this); + + strncpy(header.m_label, arg_label.c_str(), + SharedAllocationHeader::maximum_label_length); + // Set last element zero, in case c_str is too long + header.m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; + + // Copy to device memory + Kokkos::Impl::DeepCopy( + RecordBase::m_alloc_ptr, &header, sizeof(SharedAllocationHeader)); +} + +SharedAllocationRecord:: + SharedAllocationRecord( + const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size, + const SharedAllocationRecord::function_type arg_dealloc) + // Pass through allocated [ SharedAllocationHeader , user_memory ] + // Pass through deallocation function + : SharedAllocationRecord( +#ifdef KOKKOS_DEBUG + &SharedAllocationRecord::s_root_record, +#endif + Kokkos::Impl::checked_allocation_with_header(arg_space, arg_label, + arg_alloc_size), + sizeof(SharedAllocationHeader) + arg_alloc_size, arg_dealloc), + m_space(arg_space) { +#if defined(KOKKOS_ENABLE_PROFILING) + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::allocateData( + Kokkos::Profiling::SpaceHandle(arg_space.name()), arg_label, data(), + arg_alloc_size); + } +#endif + // Fill in the Header information, directly accessible via host pinned memory + + RecordBase::m_alloc_ptr->m_record = this; + + strncpy(RecordBase::m_alloc_ptr->m_label, arg_label.c_str(), + SharedAllocationHeader::maximum_label_length); + // Set last element zero, in case c_str is too long + RecordBase::m_alloc_ptr + ->m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; +} + +//---------------------------------------------------------------------------- + +void* SharedAllocationRecord:: + allocate_tracked(const Kokkos::Experimental::HIPSpace& arg_space, + const std::string& arg_alloc_label, + const size_t arg_alloc_size) { + if (!arg_alloc_size) return (void*)0; + + SharedAllocationRecord* const r = + allocate(arg_space, arg_alloc_label, arg_alloc_size); + + RecordBase::increment(r); + + return r->data(); +} + +void SharedAllocationRecord::deallocate_tracked(void* const + arg_alloc_ptr) { + if (arg_alloc_ptr != 0) { + SharedAllocationRecord* const r = get_record(arg_alloc_ptr); + + RecordBase::decrement(r); + } +} + +void* SharedAllocationRecord:: + reallocate_tracked(void* const arg_alloc_ptr, const size_t arg_alloc_size) { + SharedAllocationRecord* const r_old = get_record(arg_alloc_ptr); + SharedAllocationRecord* const r_new = + allocate(r_old->m_space, r_old->get_label(), arg_alloc_size); + + Kokkos::Impl::DeepCopy( + r_new->data(), r_old->data(), std::min(r_old->size(), r_new->size())); + + RecordBase::increment(r_new); + RecordBase::decrement(r_old); + + return r_new->data(); +} + +//---------------------------------------------------------------------------- + +SharedAllocationRecord* +SharedAllocationRecord::get_record( + void* alloc_ptr) { + using Header = SharedAllocationHeader; + using RecordHIP = + SharedAllocationRecord; + + // Copy the header from the allocation + Header head; + + Header const* const head_hip = + alloc_ptr ? Header::get_header(alloc_ptr) : (Header*)0; + + if (alloc_ptr) { + Kokkos::Impl::DeepCopy( + &head, head_hip, sizeof(SharedAllocationHeader)); + } + + RecordHIP* const record = + alloc_ptr ? static_cast(head.m_record) : (RecordHIP*)0; + + if (!alloc_ptr || record->m_alloc_ptr != head_hip) { + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Impl::SharedAllocationRecord< Kokkos::Experimental::HIPSpace " + ", void >::get_record ERROR")); + } + + return record; +} + +// Iterate records to print orphaned memory ... +void SharedAllocationRecord:: + print_records(std::ostream& s, const Kokkos::Experimental::HIPSpace& space, + bool detail) { +#ifdef KOKKOS_DEBUG + SharedAllocationRecord* r = &s_root_record; + + char buffer[256]; + + SharedAllocationHeader head; + + if (detail) { + do { + if (r->m_alloc_ptr) { + Kokkos::Impl::DeepCopy( + &head, r->m_alloc_ptr, sizeof(SharedAllocationHeader)); + } else { + head.m_label[0] = 0; + } + + // Formatting dependent on sizeof(uintptr_t) + const char* format_string; + + if (sizeof(uintptr_t) == sizeof(unsigned long)) { + format_string = + "HIP addr( 0x%.12lx ) list( 0x%.12lx 0x%.12lx ) extent[ 0x%.12lx + " + "%.8ld ] count(%d) dealloc(0x%.12lx) %s\n"; + } else if (sizeof(uintptr_t) == sizeof(unsigned long long)) { + format_string = + "HIP addr( 0x%.12llx ) list( 0x%.12llx 0x%.12llx ) extent[ " + "0x%.12llx + %.8ld ] count(%d) dealloc(0x%.12llx) %s\n"; + } + + snprintf(buffer, 256, format_string, reinterpret_cast(r), + reinterpret_cast(r->m_prev), + reinterpret_cast(r->m_next), + reinterpret_cast(r->m_alloc_ptr), r->m_alloc_size, + r->m_count, reinterpret_cast(r->m_dealloc), + head.m_label); + std::cout << buffer; + r = r->m_next; + } while (r != &s_root_record); + } else { + do { + if (r->m_alloc_ptr) { + Kokkos::Impl::DeepCopy( + &head, r->m_alloc_ptr, sizeof(SharedAllocationHeader)); + + // Formatting dependent on sizeof(uintptr_t) + const char* format_string; + + if (sizeof(uintptr_t) == sizeof(unsigned long)) { + format_string = "HIP [ 0x%.12lx + %ld ] %s\n"; + } else if (sizeof(uintptr_t) == sizeof(unsigned long long)) { + format_string = "HIP [ 0x%.12llx + %ld ] %s\n"; + } + + snprintf(buffer, 256, format_string, + reinterpret_cast(r->data()), r->size(), + head.m_label); + } else { + snprintf(buffer, 256, "HIP [ 0 + 0 ]\n"); + } + std::cout << buffer; + r = r->m_next; + } while (r != &s_root_record); + } +#else + (void)s; + (void)space; + (void)detail; + throw_runtime_exception( + "Kokkos::Impl::SharedAllocationRecord::print_records" + " only works with KOKKOS_DEBUG enabled"); +#endif +} + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +void* hip_resize_scratch_space(size_t bytes, bool force_shrink) { + static void* ptr = NULL; + static size_t current_size = 0; + if (current_size == 0) { + current_size = bytes; + ptr = Kokkos::kokkos_malloc( + "HIPSpace::ScratchMemory", current_size); + } + if (bytes > current_size) { + current_size = bytes; + ptr = Kokkos::kokkos_realloc(ptr, + current_size); + } + if ((bytes < current_size) && (force_shrink)) { + current_size = bytes; + Kokkos::kokkos_free(ptr); + ptr = Kokkos::kokkos_malloc( + "HIPSpace::ScratchMemory", current_size); + } + return ptr; +} + +} // namespace Impl +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ +namespace Kokkos { +namespace Experimental { + +// HIP::size_type HIP::detect_device_count() +//{ return Impl::HIPInternalDevices::singleton().m_hipDevCount ; } + +int HIP::concurrency() { + // FIXME_HIP + // MI60: ThreadsPerComputeUnit*ComputeUnits/ShaderEngine*ShaderEngines) + return 2536 * 16 * 4; +} +int HIP::impl_is_initialized() { + return Impl::HIPInternal::singleton().is_initialized(); +} + +void HIP::impl_initialize(const HIP::SelectDevice config) { + Impl::HIPInternal::singleton().initialize(config.hip_device_id); + +#if defined(KOKKOS_ENABLE_PROFILING) + Kokkos::Profiling::initialize(); +#endif +} + +void HIP::impl_finalize() { + Impl::HIPInternal::singleton().finalize(); + +#if defined(KOKKOS_ENABLE_PROFILING) + Kokkos::Profiling::finalize(); +#endif +} + +HIP::HIP() : m_space_instance(&Impl::HIPInternal::singleton()) { + Impl::HIPInternal::singleton().verify_is_initialized( + "HIP instance constructor"); +} + +// HIP::HIP( const int instance_id ) +// : m_device( Impl::HIPInternal::singleton().m_hipDev ) +//{} + +void HIP::print_configuration(std::ostream& s, const bool) { + Impl::HIPInternal::singleton().print_configuration(s); +} + +void HIP::fence() const { HIP_SAFE_CALL(hipDeviceSynchronize()); } + +int HIP::hip_device() const { return impl_internal_space_instance()->m_hipDev; } +const char* HIP::name() { return "HIP"; } + +} // namespace Experimental +} // namespace Kokkos diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp new file mode 100644 index 0000000000000000000000000000000000000000..b3c4f4609b4f96ab37c07bf9e0359fe11b5981d2 --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Team.hpp @@ -0,0 +1,1106 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_TEAM_HPP +#define KOKKOS_HIP_TEAM_HPP + +#include + +#if defined(__HIPCC__) + +#include +#include + +#include +#include +#include +#include + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template +struct HIPJoinFunctor { + typedef Type value_type; + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& update, + volatile const value_type& input) { + update += input; + } +}; + +/**\brief Team member_type passed to TeamPolicy or TeamTask closures. + * + * HIP thread blocks for team closures are dimensioned as: + * hipBlockDim_x == number of "vector lanes" per "thread" + * hipBlockDim_y == number of "threads" per team + * hipBlockDim_z == number of teams in a block + * where + * A set of teams exactly fill a warp OR a team is the whole block + * ( 0 == WarpSize % ( hipBlockDim_x * hipBlockDim_y ) ) + * OR + * ( 1 == hipBlockDim_z ) + + * Thus when 1 < hipBlockDim_z the team is warp-synchronous + * and __syncthreads should not be called in team collectives. + * + * When multiple teams are mapped onto a single block then the + * total available shared memory must be partitioned among teams. + */ +class HIPTeamMember { + public: + using execution_space = Kokkos::Experimental::HIP; + using scratch_memory_space = execution_space::scratch_memory_space; + + private: + mutable void* m_team_reduce; + scratch_memory_space m_team_shared; + int m_team_reduce_size; + int m_league_rank; + int m_league_size; + + public: + KOKKOS_INLINE_FUNCTION + const execution_space::scratch_memory_space& team_shmem() const { + return m_team_shared.set_team_thread_mode(0, 1, 0); + } + + KOKKOS_INLINE_FUNCTION + const execution_space::scratch_memory_space& team_scratch( + const int& level) const { + return m_team_shared.set_team_thread_mode(level, 1, 0); + } + + KOKKOS_INLINE_FUNCTION + const execution_space::scratch_memory_space& thread_scratch( + const int& level) const { + return m_team_shared.set_team_thread_mode(level, team_size(), team_rank()); + } + + KOKKOS_INLINE_FUNCTION int league_rank() const { return m_league_rank; } + KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } + KOKKOS_INLINE_FUNCTION int team_rank() const { +#ifdef __HIP_DEVICE_COMPILE__ + return hipThreadIdx_y; +#else + return 0; +#endif + } + + KOKKOS_INLINE_FUNCTION int team_size() const { +#ifdef __HIP_DEVICE_COMPILE__ + return hipBlockDim_y; +#else + return 1; +#endif + } + + KOKKOS_INLINE_FUNCTION void team_barrier() const { +#ifdef __HIP_DEVICE_COMPILE__ + if (1 == hipBlockDim_z) + __syncthreads(); // team == block + else + __threadfence_block(); // team <= warp +#endif + } + + //-------------------------------------------------------------------------- + + template + KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& val, + const int& thread_id) const { +#ifdef __HIP_DEVICE_COMPILE__ + if (1 == hipBlockDim_z) { // team == block + __syncthreads(); + // Wait for shared data write until all threads arrive here + if (hipThreadIdx_x == 0u && + hipThreadIdx_y == static_cast(thread_id)) { + *(reinterpret_cast(m_team_reduce)) = val; + } + __syncthreads(); // Wait for shared data read until root thread writes + val = *(reinterpret_cast(m_team_reduce)); + } else { // team <= warp + ValueType tmp(val); // input might not be a register variable + ::Kokkos::Experimental::Impl::in_place_shfl( + val, tmp, hipBlockDim_x * thread_id, hipBlockDim_x * hipBlockDim_y); + } +#else + (void)val; + (void)thread_id; +#endif + } + + template + KOKKOS_INLINE_FUNCTION void team_broadcast(Closure const& f, ValueType& val, + const int& thread_id) const { +#ifdef __HIP_DEVICE_COMPILE__ + f(val); + + if (1 == hipBlockDim_z) { // team == block + __syncthreads(); + // Wait for shared data write until all threads arrive here + if (hipThreadIdx_x == 0u && + hipThreadIdx_y == static_cast(thread_id)) { + *(reinterpret_cast(m_team_reduce)) = val; + } + __syncthreads(); // Wait for shared data read until root thread writes + val = *(reinterpret_cast(m_team_reduce)); + } else { // team <= warp + ValueType tmp(val); // input might not be a register variable + ::Kokkos::Experimental::Impl::in_place_shfl( + val, tmp, hipBlockDim_x * thread_id, hipBlockDim_x * hipBlockDim_y); + } +#else + (void)f; + (void)val; + (void)thread_id; +#endif + } + + //-------------------------------------------------------------------------- + /**\brief Reduction across a team + * + * Mapping of teams onto blocks: + * hipBlockDim_x is "vector lanes" + * hipBlockDim_y is team "threads" + * hipBlockDim_z is number of teams per block + * + * Requires: + * hipBlockDim_x is power two + * hipBlockDim_x <= HIPTraits::WarpSize + * ( 0 == HIPTraits::WarpSize % ( hipBlockDim_x * hipBlockDim_y ) + * OR + * ( 1 == hipBlockDim_z ) + */ + template + KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + team_reduce(ReducerType const& reducer) const noexcept { + team_reduce(reducer, reducer.reference()); + } + + template + KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + team_reduce(ReducerType const& reducer, + typename ReducerType::value_type& value) const noexcept { +#ifdef __HIP_DEVICE_COMPILE__ + hip_intra_block_reduction(reducer, value, hipBlockDim_y); +#else + (void)reducer; + (void)value; +#endif + } + + //-------------------------------------------------------------------------- + /** \brief Intra-team exclusive prefix sum with team_rank() ordering + * with intra-team non-deterministic ordering accumulation. + * + * The global inter-team accumulation value will, at the end of the + * league's parallel execution, be the scan's total. + * Parallel execution ordering of the league's teams is non-deterministic. + * As such the base value for each team's scan operation is similarly + * non-deterministic. + */ + template + KOKKOS_INLINE_FUNCTION Type team_scan(const Type& value, + Type* const global_accum) const { +#ifdef __HIP_DEVICE_COMPILE__ + Type* const base_data = reinterpret_cast(m_team_reduce); + + __syncthreads(); // Don't write in to shared data until all threads have + // entered this function + + if (0 == hipThreadIdx_y) { + base_data[0] = 0; + } + + base_data[hipThreadIdx_y + 1] = value; + + Impl::hip_intra_block_reduce_scan, void>( + Impl::HIPJoinFunctor(), base_data + 1); + + if (global_accum) { + if (hipBlockDim_y == hipThreadIdx_y + 1) { + base_data[hipBlockDim_y] = + atomic_fetch_add(global_accum, base_data[hipBlockDim_y]); + } + __syncthreads(); // Wait for atomic + base_data[hipThreadIdx_y] += base_data[hipBlockDim_y]; + } + + return base_data[hipThreadIdx_y]; +#else + (void)value; + (void)global_accum; + return Type(); +#endif + } + + /** \brief Intra-team exclusive prefix sum with team_rank() ordering. + * + * The highest rank thread can compute the reduction total as + * reduction_total = dev.team_scan( value ) + value ; + */ + template + KOKKOS_INLINE_FUNCTION Type team_scan(const Type& value) const { + return this->template team_scan(value, 0); + } + + //---------------------------------------- + + template + KOKKOS_INLINE_FUNCTION static + typename std::enable_if::value>::type + vector_reduce(ReducerType const& reducer) { + vector_reduce(reducer, reducer.reference()); + } + + template + KOKKOS_INLINE_FUNCTION static + typename std::enable_if::value>::type + vector_reduce(ReducerType const& reducer, + typename ReducerType::value_type& value) { +#ifdef __HIP_DEVICE_COMPILE__ + if (hipBlockDim_x == 1) return; + + // Intra vector lane shuffle reduction: + typename ReducerType::value_type tmp(value); + typename ReducerType::value_type tmp2 = tmp; + + int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + unsigned mask = + hipBlockDim_x == warp_size + ? 0xffffffff + : ((1 << hipBlockDim_x) - 1) + << ((hipThreadIdx_y % (warp_size / hipBlockDim_x)) * + hipBlockDim_x); + + for (int i = hipBlockDim_x; (i >>= 1);) { + ::Kokkos::Experimental::Impl::in_place_shfl_down(tmp2, tmp, i, + hipBlockDim_x, mask); + if (static_cast(hipThreadIdx_x) < i) { + reducer.join(tmp, tmp2); + } + } + + // Broadcast from root lane to all other lanes. + // Cannot use "butterfly" algorithm to avoid the broadcast + // because floating point summation is not associative + // and thus different threads could have different results. + + ::Kokkos::Experimental::Impl::in_place_shfl(tmp2, tmp, 0, hipBlockDim_x, + mask); + value = tmp2; + reducer.reference() = tmp2; +#else + (void)reducer; + (void)value; +#endif + } + + //-------------------------------------------------------------------------- + /**\brief Global reduction across all blocks + * + * Return !0 if reducer contains the final value + */ + template + KOKKOS_INLINE_FUNCTION static + typename std::enable_if::value, int>::type + global_reduce(ReducerType const& reducer, int* const global_scratch_flags, + void* const global_scratch_space, void* const shmem, + int const shmem_size) { +#ifdef __HIP_COMPILE_DEVICE__ + + typedef typename ReducerType::value_type value_type; + typedef value_type volatile* pointer_type; + + // Number of shared memory entries for the reduction: + const int nsh = shmem_size / sizeof(value_type); + + // Number of HIP threads in the block, rank within the block + const int nid = hipBlockDim_x * hipBlockDim_y * hipBlockDim_z; + const int tid = + hipThreadIdx_x + + hipBlockDim_x * (hipThreadIdx_y + hipBlockDim_y * hipThreadIdx_z); + + // Reduces within block using all available shared memory + // Contributes if it is the root "vector lane" + + // wn == number of warps in the block + // wx == which lane within the warp + // wy == which warp within the block + + const int wn = + (nid + HIPTraits::WarpIndexMask) >> HIPTraits::WarpIndexShift; + const int wx = tid & HIPTraits::WarpIndexMask; + const int wy = tid >> HIPTraits::WarpIndexShift; + + //------------------------ + { // Intra warp shuffle reduction from contributing CUDA threads + + value_type tmp(reducer.reference()); + + int constexpr warp_size = + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + for (int i = warp_size; static_cast(hipBlockDim_x) <= (i >>= 1);) { + Impl::in_place_shfl_down(reducer.reference(), tmp, i, warp_size); + + // Root of each vector lane reduces "thread" contribution + if (0 == hipThreadIdx_x && wx < i) { + reducer.join(&tmp, reducer.data()); + } + } + + // Reduce across warps using shared memory. + // Number of warps may not be power of two. + + __syncthreads(); // Wait before shared data write + + // Number of shared memory entries for the reduction + // is at most one per warp + const int nentry = wn < nsh ? wn : nsh; + + if (0 == wx && wy < nentry) { + // Root thread of warp 'wy' has warp's value to contribute + (reinterpret_cast(shmem))[wy] = tmp; + } + + __syncthreads(); // Wait for write to be visible to block + + // When more warps than shared entries + // then warps must take turns joining their contribution + // to the designated shared memory entry. + for (int i = nentry; i < wn; i += nentry) { + const int k = wy - i; + + if (0 == wx && i <= wy && k < nentry) { + // Root thread of warp 'wy' has warp's value to contribute + reducer.join((reinterpret_cast(shmem)) + k, &tmp); + } + + __syncthreads(); // Wait for write to be visible to block + } + + // One warp performs the inter-warp reduction: + + if (0 == wy) { + // Start fan-in at power of two covering nentry + + for (int i = (1 << (32 - __clz(nentry - 1))); (i >>= 1);) { + const int k = wx + i; + if (wx < i && k < nentry) { + reducer.join((reinterpret_cast(shmem)) + wx, + (reinterpret_cast(shmem)) + k); + __threadfence_block(); // Wait for write to be visible to warp + } + } + } + } + //------------------------ + { // Write block's value to global_scratch_memory + + int last_block = 0; + + if (0 == wx) { + reducer.copy((reinterpret_cast(global_scratch_space)) + + hipBlockIdx_x * reducer.length(), + reducer.data()); + + __threadfence(); // Wait until global write is visible. + + last_block = static_cast(hipGridDim_x) == + 1 + Kokkos::atomic_fetch_add(global_scratch_flags, 1); + + // If last block then reset count + if (last_block) *global_scratch_flags = 0; + } + + // FIXME hip does not support __syncthreads_or so we need to do it by hand + // last_block = __syncthreads_or(last_block); + + __shared__ int last_block_shared; + if (last_block) last_block_shared = last_block; + __threadfence_block(); + + if (!last_block_shared) return 0; + } + //------------------------ + // Last block reads global_scratch_memory into shared memory. + + const int nentry = nid < hipGridDim_x + ? (nid < nsh ? nid : nsh) + : (hipGridDim_x < nsh ? hipGridDim_x : nsh); + + // nentry = min( nid , nsh , gridDim.x ) + + // whole block reads global memory into shared memory: + + if (tid < nentry) { + const int offset = tid * reducer.length(); + + reducer.copy( + (reinterpret_cast(shmem)) + offset, + (reinterpret_cast(global_scratch_space)) + offset); + + for (int i = nentry + tid; i < static_cast(hipGridDim_x); + i += nentry) { + reducer.join((reinterpret_cast(shmem)) + offset, + (reinterpret_cast(global_scratch_space)) + + i * reducer.length()); + } + } + + __syncthreads(); // Wait for writes to be visible to block + + if (0 == wy) { + // Iterate to reduce shared memory to single warp fan-in size + + int constexpr warp_size = + ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + const int nreduce = warp_size < nentry ? warp_size : nentry; + + if (wx < nreduce && nreduce < nentry) { + for (int i = nreduce + wx; i < nentry; i += nreduce) { + reducer.join(((pointer_type)shmem) + wx, ((pointer_type)shmem) + i); + } + __threadfence_block(); // Wait for writes to be visible to warp + } + + // Start fan-in at power of two covering nentry + + for (int i = (1 << (warp_size - __clz(nreduce - 1))); (i >>= 1);) { + const int k = wx + i; + if (wx < i && k < nreduce) { + reducer.join((reinterpret_cast(shmem)) + wx, + (reinterpret_cast(shmem)) + k); + __threadfence_block(); // Wait for writes to be visible to warp + } + } + + if (0 == wx) { + reducer.copy(reducer.data(), reinterpret_cast(shmem)); + return 1; + } + } + return 0; + +#else + (void)reducer; + (void)global_scratch_flags; + (void)shmem; + (void)global_scratch_space; + (void)shmem_size; + return 0; +#endif + } + + //---------------------------------------- + // Private for the driver + + KOKKOS_INLINE_FUNCTION + HIPTeamMember(void* shared, const int shared_begin, const int shared_size, + void* scratch_level_1_ptr, const int scratch_level_1_size, + const int arg_league_rank, const int arg_league_size) + : m_team_reduce(shared), + m_team_shared(((char*)shared) + shared_begin, shared_size, + scratch_level_1_ptr, scratch_level_1_size), + m_team_reduce_size(shared_begin), + m_league_rank(arg_league_rank), + m_league_size(arg_league_size) {} + + public: + // Declare to avoid unused private member warnings which are trigger + // when SFINAE excludes the member function which uses these variables + // Making another class a friend also surpresses these warnings + bool impl_avoid_sfinae_warning() const noexcept { + return m_team_reduce_size > 0 && m_team_reduce != nullptr; + } +}; + +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template +struct TeamThreadRangeBoundariesStruct { + typedef iType index_type; + const HIPTeamMember& member; + const iType start; + const iType end; + + KOKKOS_INLINE_FUNCTION + TeamThreadRangeBoundariesStruct(const HIPTeamMember& thread_, iType count) + : member(thread_), start(0), end(count) {} + + KOKKOS_INLINE_FUNCTION + TeamThreadRangeBoundariesStruct(const HIPTeamMember& thread_, iType begin_, + iType end_) + : member(thread_), start(begin_), end(end_) {} +}; + +template +struct TeamVectorRangeBoundariesStruct { + typedef iType index_type; + const HIPTeamMember& member; + const iType start; + const iType end; + + KOKKOS_INLINE_FUNCTION + TeamVectorRangeBoundariesStruct(const HIPTeamMember& thread_, + const iType& count) + : member(thread_), start(0), end(count) {} + + KOKKOS_INLINE_FUNCTION + TeamVectorRangeBoundariesStruct(const HIPTeamMember& thread_, + const iType& begin_, const iType& end_) + : member(thread_), start(begin_), end(end_) {} +}; + +template +struct ThreadVectorRangeBoundariesStruct { + typedef iType index_type; + const index_type start; + const index_type end; + + KOKKOS_INLINE_FUNCTION + ThreadVectorRangeBoundariesStruct(const HIPTeamMember, index_type count) + : start(static_cast(0)), end(count) {} + + KOKKOS_INLINE_FUNCTION + ThreadVectorRangeBoundariesStruct(index_type count) + : start(static_cast(0)), end(count) {} + + KOKKOS_INLINE_FUNCTION + ThreadVectorRangeBoundariesStruct(const HIPTeamMember, index_type arg_begin, + index_type arg_end) + : start(arg_begin), end(arg_end) {} + + KOKKOS_INLINE_FUNCTION + ThreadVectorRangeBoundariesStruct(index_type arg_begin, index_type arg_end) + : start(arg_begin), end(arg_end) {} +}; + +} // namespace Impl + +template +KOKKOS_INLINE_FUNCTION + Impl::TeamThreadRangeBoundariesStruct + TeamThreadRange(const Impl::HIPTeamMember& thread, iType count) { + return Impl::TeamThreadRangeBoundariesStruct( + thread, count); +} + +template +KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< + typename std::common_type::type, Impl::HIPTeamMember> +TeamThreadRange(const Impl::HIPTeamMember& thread, iType1 begin, iType2 end) { + typedef typename std::common_type::type iType; + return Impl::TeamThreadRangeBoundariesStruct( + thread, iType(begin), iType(end)); +} + +template +KOKKOS_INLINE_FUNCTION + Impl::TeamVectorRangeBoundariesStruct + TeamVectorRange(const Impl::HIPTeamMember& thread, const iType& count) { + return Impl::TeamVectorRangeBoundariesStruct( + thread, count); +} + +template +KOKKOS_INLINE_FUNCTION Impl::TeamVectorRangeBoundariesStruct< + typename std::common_type::type, Impl::HIPTeamMember> +TeamVectorRange(const Impl::HIPTeamMember& thread, const iType1& begin, + const iType2& end) { + typedef typename std::common_type::type iType; + return Impl::TeamVectorRangeBoundariesStruct( + thread, iType(begin), iType(end)); +} + +template +KOKKOS_INLINE_FUNCTION + Impl::ThreadVectorRangeBoundariesStruct + ThreadVectorRange(const Impl::HIPTeamMember& thread, iType count) { + return Impl::ThreadVectorRangeBoundariesStruct( + thread, count); +} + +template +KOKKOS_INLINE_FUNCTION + Impl::ThreadVectorRangeBoundariesStruct + ThreadVectorRange(const Impl::HIPTeamMember& thread, iType arg_begin, + iType arg_end) { + return Impl::ThreadVectorRangeBoundariesStruct( + thread, arg_begin, arg_end); +} + +KOKKOS_INLINE_FUNCTION +Impl::ThreadSingleStruct PerTeam( + const Impl::HIPTeamMember& thread) { + return Impl::ThreadSingleStruct(thread); +} + +KOKKOS_INLINE_FUNCTION +Impl::VectorSingleStruct PerThread( + const Impl::HIPTeamMember& thread) { + return Impl::VectorSingleStruct(thread); +} + +//---------------------------------------------------------------------------- + +/** \brief Inter-thread parallel_for. + * + * Executes closure(iType i) for each i=[0..N). + * + * The range [0..N) is mapped to all threads of the the calling thread team. + */ +template +KOKKOS_INLINE_FUNCTION void parallel_for( + const Impl::TeamThreadRangeBoundariesStruct& + loop_boundaries, + const Closure& closure) { +#ifdef __HIP_DEVICE_COMPILE__ + for (iType i = loop_boundaries.start + hipThreadIdx_y; + i < loop_boundaries.end; i += hipBlockDim_y) + closure(i); +#else + (void)loop_boundaries; + (void)closure; +#endif +} + +//---------------------------------------------------------------------------- + +/** \brief Inter-thread parallel_reduce with a reducer. + * + * Executes closure(iType i, ValueType & val) for each i=[0..N) + * + * The range [0..N) is mapped to all threads of the + * calling thread team and a summation of val is + * performed and put into result. + */ +template +KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + parallel_reduce(const Impl::TeamThreadRangeBoundariesStruct< + iType, Impl::HIPTeamMember>& loop_boundaries, + const Closure& closure, const ReducerType& reducer) { +#ifdef __HIP_DEVICE_COMPILE__ + typename ReducerType::value_type value; + reducer.init(value); + + for (iType i = loop_boundaries.start + hipThreadIdx_y; + i < loop_boundaries.end; i += hipBlockDim_y) { + closure(i, value); + } + + loop_boundaries.member.team_reduce(reducer, value); +#else + (void)loop_boundaries; + (void)closure; + (void)reducer; +#endif +} + +/** \brief Inter-thread parallel_reduce assuming summation. + * + * Executes closure(iType i, ValueType & val) for each i=[0..N) + * + * The range [0..N) is mapped to all threads of the + * calling thread team and a summation of val is + * performed and put into result. + */ +template +KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + parallel_reduce(const Impl::TeamThreadRangeBoundariesStruct< + iType, Impl::HIPTeamMember>& loop_boundaries, + const Closure& closure, ValueType& result) { +#ifdef __HIP_DEVICE_COMPILE__ + ValueType val; + Kokkos::Sum reducer(val); + + reducer.init(reducer.reference()); + + for (iType i = loop_boundaries.start + hipThreadIdx_y; + i < loop_boundaries.end; i += hipBlockDim_y) { + closure(i, val); + } + + loop_boundaries.member.team_reduce(reducer, val); + result = reducer.reference(); +#else + (void)loop_boundaries; + (void)closure; + (void)result; +#endif +} + +template +KOKKOS_INLINE_FUNCTION void parallel_for( + const Impl::TeamVectorRangeBoundariesStruct& + loop_boundaries, + const Closure& closure) { +#ifdef __HIP_DEVICE_COMPILE__ + for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + + hipThreadIdx_x; + i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) + closure(i); +#else + (void)loop_boundaries; + (void)closure; +#endif +} + +template +KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + parallel_reduce(const Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::HIPTeamMember>& loop_boundaries, + const Closure& closure, const ReducerType& reducer) { +#ifdef __HIP_DEVICE_COMPILE__ + typename ReducerType::value_type value; + reducer.init(value); + + for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + + hipThreadIdx_x; + i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) { + closure(i, value); + } + + loop_boundaries.member.vector_reduce(reducer, value); + loop_boundaries.member.team_reduce(reducer, value); +#else + (void)loop_boundaries; + (void)closure; + (void)reducer; +#endif +} + +template +KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + parallel_reduce(const Impl::TeamVectorRangeBoundariesStruct< + iType, Impl::HIPTeamMember>& loop_boundaries, + const Closure& closure, ValueType& result) { +#ifdef __HIP_DEVICE_COMPILE__ + ValueType val; + Kokkos::Sum reducer(val); + + reducer.init(reducer.reference()); + + for (iType i = loop_boundaries.start + hipThreadIdx_y * hipBlockDim_x + + hipThreadIdx_x; + i < loop_boundaries.end; i += hipBlockDim_y * hipBlockDim_x) { + closure(i, val); + } + + loop_boundaries.member.vector_reduce(reducer); + loop_boundaries.member.team_reduce(reducer); + result = reducer.reference(); +#else + (void)loop_boundaries; + (void)closure; + (void)result; +#endif +} + +//---------------------------------------------------------------------------- + +/** \brief Intra-thread vector parallel_for. + * + * Executes closure(iType i) for each i=[0..N) + * + * The range [0..N) is mapped to all vector lanes of the the calling thread. + */ +template +KOKKOS_INLINE_FUNCTION void parallel_for( + const Impl::ThreadVectorRangeBoundariesStruct& + loop_boundaries, + const Closure& closure) { +#ifdef __HIP_DEVICE_COMPILE__ + for (iType i = loop_boundaries.start + hipThreadIdx_x; + i < loop_boundaries.end; i += hipBlockDim_x) { + closure(i); + } +#else + (void)loop_boundaries; + (void)closure; +#endif +} + +//---------------------------------------------------------------------------- + +/** \brief Intra-thread vector parallel_reduce. + * + * Calls closure(iType i, ValueType & val) for each i=[0..N). + * + * The range [0..N) is mapped to all vector lanes of + * the calling thread and a reduction of val is performed using += + * and output into result. + * + * The identity value for the += operator is assumed to be the default + * constructed value. + */ +template +KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + parallel_reduce(Impl::ThreadVectorRangeBoundariesStruct< + iType, Impl::HIPTeamMember> const& loop_boundaries, + Closure const& closure, ReducerType const& reducer) { +#ifdef __HIP_DEVICE_COMPILE__ + reducer.init(reducer.reference()); + + for (iType i = loop_boundaries.start + hipThreadIdx_x; + i < loop_boundaries.end; i += hipBlockDim_x) { + closure(i, reducer.reference()); + } + + Impl::HIPTeamMember::vector_reduce(reducer); +#else + (void)loop_boundaries; + (void)closure; + (void)reducer; +#endif +} + +/** \brief Intra-thread vector parallel_reduce. + * + * Calls closure(iType i, ValueType & val) for each i=[0..N). + * + * The range [0..N) is mapped to all vector lanes of + * the calling thread and a reduction of val is performed using += + * and output into result. + * + * The identity value for the += operator is assumed to be the default + * constructed value. + */ +template +KOKKOS_INLINE_FUNCTION + typename std::enable_if::value>::type + parallel_reduce(Impl::ThreadVectorRangeBoundariesStruct< + iType, Impl::HIPTeamMember> const& loop_boundaries, + Closure const& closure, ValueType& result) { +#ifdef __HIP_DEVICE_COMPILE__ + result = ValueType(); + + for (iType i = loop_boundaries.start + hipThreadIdx_x; + i < loop_boundaries.end; i += hipBlockDim_x) { + closure(i, result); + } + + Impl::HIPTeamMember::vector_reduce(Kokkos::Sum(result)); +#else + (void)loop_boundaries; + (void)closure; + (void)result; +#endif +} + +//---------------------------------------------------------------------------- + +/** \brief Intra-thread vector parallel exclusive prefix sum. + * + * Executes closure(iType i, ValueType & val, bool final) for each i=[0..N) + * + * The range [0..N) is mapped to all vector lanes in the + * thread and a scan operation is performed. + * The last call to closure has final == true. + */ +template +KOKKOS_INLINE_FUNCTION void parallel_scan( + const Impl::ThreadVectorRangeBoundariesStruct& + loop_boundaries, + const Closure& closure) { +#ifdef __HIP_DEVICE_COMPILE__ + // Extract value_type from closure + + using value_type = typename Kokkos::Impl::FunctorAnalysis< + Kokkos::Impl::FunctorPatternInterface::SCAN, void, Closure>::value_type; + + // Loop through boundaries by vector-length chunks + // must scan at each iteration + + value_type accum = 0; + + // All thread "lanes" must loop the same number of times. + // Determine an loop end for all thread "lanes." + // Requires: + // hipBlockDim_x is power of two and thus + // ( end % hipBlockDim_x ) == ( end & ( hipBlockDim_x - 1 ) ) + // 1 <= hipBlockDim_x <= HIPTraits::WarpSize + + int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + const int mask = hipBlockDim_x - 1; + const unsigned active_mask = + blockDim.x == warp_size + ? 0xffffffff + : ((1 << hipBlockDim_x) - 1) + << (hipThreadIdx_y % (warp_size / hipBlockDim_x)) * + hipBlockDim_x; + const int rem = loop_boundaries.end & mask; // == end % hipBlockDim_x + const int end = loop_boundaries.end + (rem ? hipBlockDim_x - rem : 0); + + for (int i = hipThreadIdx_x; i < end; i += hipBlockDim_x) { + value_type val = 0; + + // First acquire per-lane contributions: + if (i < loop_boundaries.end) closure(i, val, false); + + value_type sval = val; + + // Bottom up inclusive scan in triangular pattern + // where each HIP thread is the root of a reduction tree + // from the zeroth "lane" to itself. + // [t] += [t-1] if t >= 1 + // [t] += [t-2] if t >= 2 + // [t] += [t-4] if t >= 4 + // ... + + for (int j = 1; j < static_cast(hipBlockDim_x); j <<= 1) { + value_type tmp = 0; + ::Kokkos::Experimental::Impl::in_place_shfl_up( + tmp, sval, j, hipBlockDim_x, active_mask); + if (j <= static_cast(hipThreadIdx_x)) { + sval += tmp; + } + } + + // Include accumulation and remove value for exclusive scan: + val = accum + sval - val; + + // Provide exclusive scan value: + if (i < loop_boundaries.end) closure(i, val, true); + + // Accumulate the last value in the inclusive scan: + ::Kokkos::Experimental::Impl::in_place_shfl(sval, sval, mask, blockDim.x, + active_mask); + + accum += sval; + } +#else + (void)loop_boundaries; + (void)closure; +#endif +} + +} // namespace Kokkos + +namespace Kokkos { + +template +KOKKOS_INLINE_FUNCTION void single( + const Impl::VectorSingleStruct&, + const FunctorType& lambda) { +#ifdef __HIP_DEVICE_COMPILE__ + if (hipThreadIdx_x == 0) lambda(); +#else + (void)lambda; +#endif +} + +template +KOKKOS_INLINE_FUNCTION void single( + const Impl::ThreadSingleStruct&, + const FunctorType& lambda) { +#ifdef __HIP_DEVICE_COMPILE__ + if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) lambda(); +#else + (void)lambda; +#endif +} + +template +KOKKOS_INLINE_FUNCTION void single( + const Impl::VectorSingleStruct&, + const FunctorType& lambda, ValueType& val) { +#ifdef __HIP_DEVICE_COMPILE__ + int constexpr warp_size = ::Kokkos::Experimental::Impl::HIPTraits::WarpSize; + if (hipThreadIdx_x == 0) lambda(val); + unsigned mask = hipBlockDim_x == warp_size + ? 0xffffffff + : ((1 << hipBlockDim_x) - 1) + << ((hipThreadIdx_y % (warp_size / hipBlockDim_x)) * + hipBlockDim_x); + ::Kokkos::Experimental::Impl::in_place_shfl(val, val, 0, hipBlockDim_x, mask); +#else + (void)lambda; + (void)val; +#endif +} + +template +KOKKOS_INLINE_FUNCTION void single( + const Impl::ThreadSingleStruct& single_struct, + const FunctorType& lambda, ValueType& val) { + (void)single_struct; + (void)lambda; + (void)val; +#ifdef __HIP_DEVICE_COMPILE__ + if (hipThreadIdx_x == 0 && hipThreadIdx_y == 0) { + lambda(val); + } + single_struct.team_member.team_broadcast(val, 0); +#else + (void)single_struct; + (void)lambda; + (void)val; +#endif +} + +} // namespace Kokkos + +#endif /* defined( __HIPCC__ ) */ + +#endif /* #ifndef KOKKOS_CUDA_TEAM_HPP */ diff --git a/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp b/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp new file mode 100644 index 0000000000000000000000000000000000000000..58b5abb2eefad23f8325c7ea90bb2147a86e62df --- /dev/null +++ b/lib/kokkos/core/src/HIP/Kokkos_HIP_Vectorization.hpp @@ -0,0 +1,160 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_VECTORIZATION_HPP +#define KOKKOS_HIP_VECTORIZATION_HPP + +#include +#include + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +// Include all lanes +constexpr unsigned shfl_all_mask = 0xffffffff; + +//---------------------------------------------------------------------------- +// Shuffle operations require input to be a register (stack) variable + +// Derived implements do_shfl_op(unsigned mask, T& in, int lane, int width), +// which turns in to one of KOKKOS_IMPL_HIP_SHFL(_UP_|_DOWN_|_)MASK +// Since the logic with respect to value sizes, etc., is the same everywhere, +// put it all in one place. +template +struct in_place_shfl_op { + // CRTP boilerplate + __device__ KOKKOS_IMPL_FORCEINLINE const Derived& self() const noexcept { + return *static_cast(this); + } + + // sizeof(Scalar) == sizeof(int) case + template + // requires _assignable_from_bits + __device__ inline typename std::enable_if::type + operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, + unsigned mask = shfl_all_mask) const noexcept { + //------------------------------------------------ + reinterpret_cast(out) = self().do_shfl_op( + mask, reinterpret_cast(in), lane_or_delta, width); + //------------------------------------------------ + } + + template + __device__ inline + typename std::enable_if::type + operator()(Scalar& out, Scalar const& in, int lane_or_delta, int width, + unsigned mask = shfl_all_mask) const noexcept { + //------------------------------------------------ + reinterpret_cast(out) = self().do_shfl_op( + mask, *reinterpret_cast(&in), lane_or_delta, width); + //------------------------------------------------ + } + + // sizeof(Scalar) > sizeof(double) case + template + __device__ inline + typename std::enable_if<(sizeof(Scalar) > sizeof(double))>::type + operator()(Scalar& out, const Scalar& val, int lane_or_delta, int width, + unsigned mask = shfl_all_mask) const noexcept { + using shuffle_as_t = int; + enum : int { N = sizeof(Scalar) / sizeof(shuffle_as_t) }; + + for (int i = 0; i < N; ++i) { + reinterpret_cast(&out)[i] = self().do_shfl_op( + mask, reinterpret_cast(&val)[i], lane_or_delta, + width); + } + } +}; + +struct in_place_shfl_fn : in_place_shfl_op { + template + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, + int lane, int width) const + noexcept { + return KOKKOS_IMPL_HIP_SHFL_MASK(mask, val, lane, width); + } +}; + +template +__device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl(Args&&... args) noexcept { + in_place_shfl_fn{}((Args &&) args...); +} + +struct in_place_shfl_up_fn : in_place_shfl_op { + template + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, + int lane, int width) const + noexcept { + return KOKKOS_IMPL_HIP_SHFL_UP_MASK(mask, val, lane, width); + } +}; + +template +__device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl_up( + Args&&... args) noexcept { + in_place_shfl_up_fn{}((Args &&) args...); +} + +struct in_place_shfl_down_fn : in_place_shfl_op { + template + __device__ KOKKOS_IMPL_FORCEINLINE T do_shfl_op(unsigned mask, T& val, + int lane, int width) const + noexcept { + return KOKKOS_IMPL_HIP_SHFL_DOWN_MASK(mask, val, lane, width); + } +}; + +template +__device__ KOKKOS_IMPL_FORCEINLINE void in_place_shfl_down( + Args&&... args) noexcept { + in_place_shfl_down_fn{}((Args &&) args...); +} + +} // namespace Impl +} // namespace Experimental +} // namespace Kokkos + +#endif diff --git a/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp b/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp index 0c4cca70f8ee0cdec9d2884a5ab30f78a0b95536..acbd1074fde913f4e4a267cd2c991db9ac5a494d 100644 --- a/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp +++ b/lib/kokkos/core/src/HPX/Kokkos_HPX.cpp @@ -85,6 +85,9 @@ void HPX::impl_initialize(int thread_count) { char *argv_hpx[] = {name, nullptr}; hpx::start(nullptr, argc_hpx, argv_hpx, config); +#if HPX_VERSION_FULL < 0x010400 + // This has been fixed in HPX 1.4.0. + // // NOTE: Wait for runtime to start. hpx::start returns as soon as // possible, meaning some operations are not allowed immediately // after hpx::start. Notably, hpx::stop needs state_running. This @@ -94,6 +97,7 @@ void HPX::impl_initialize(int thread_count) { rt = hpx::get_runtime_ptr(); hpx::util::yield_while( [rt]() { return rt->get_state() < hpx::state_running; }); +#endif m_hpx_initialized = true; } diff --git a/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp b/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp index 7981c04b4f411a0ec98ea4031a7ad85c55509ca4..3195dbdedf0607f6d8413d81e5240e67fca4437a 100644 --- a/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp +++ b/lib/kokkos/core/src/KokkosExp_MDRangePolicy.hpp @@ -63,6 +63,10 @@ #include #endif +#if defined(__HIPCC__) && defined(KOKKOS_ENABLE_HIP) +#include +#endif + namespace Kokkos { // ------------------------------------------------------------------ // @@ -79,7 +83,8 @@ enum class Iterate template struct default_outer_direction { using type = Iterate; -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ + defined(KOKKOS_ENABLE_HIP) static constexpr Iterate value = Iterate::Left; #else static constexpr Iterate value = Iterate::Right; @@ -89,7 +94,8 @@ struct default_outer_direction { template struct default_inner_direction { using type = Iterate; -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ + defined(KOKKOS_ENABLE_HIP) static constexpr Iterate value = Iterate::Left; #else static constexpr Iterate value = Iterate::Right; @@ -256,6 +262,10 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { #if defined(KOKKOS_ENABLE_ROCM) && !std::is_same::value +#endif +#if defined(KOKKOS_ENABLE_HIP) + && !std::is_same::value #endif ) { index_type span; @@ -275,7 +285,7 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { m_prod_tile_dims *= m_tile[i]; } } -#if defined(KOKKOS_ENABLE_CUDA) +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) else // Cuda { index_type span; @@ -287,15 +297,21 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { rank_start = rank - 1; rank_end = -1; } + bool is_cuda_exec_space = +#if defined(KOKKOS_ENABLE_CUDA) + std::is_same::value; +#else + false; +#endif for (int i = rank_start; i != rank_end; i += increment) { span = m_upper[i] - m_lower[i]; if (m_tile[i] <= 0) { - // TODO: determine what is a good default tile size for cuda + // TODO: determine what is a good default tile size for cuda and HIP // may be rank dependent if (((int)inner_direction == (int)Right && (i < rank - 1)) || ((int)inner_direction == (int)Left && (i > 0))) { if (m_prod_tile_dims < 256) { - m_tile[i] = 2; + m_tile[i] = (is_cuda_exec_space) ? 2 : 4; } else { m_tile[i] = 1; } @@ -311,13 +327,18 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { if (m_prod_tile_dims > 1024) { // Match Cuda restriction for ParallelReduce; 1024,1024,64 // max per dim (Kepler), but product num_threads < 1024 - printf(" Tile dimensions exceed Cuda limits\n"); - Kokkos::abort( - " Cuda ExecSpace Error: MDRange tile dims exceed maximum number of " - "threads per block - choose smaller tile dims"); - // Kokkos::Impl::throw_runtime_exception( " Cuda ExecSpace Error: - // MDRange tile dims exceed maximum number of threads per block - choose - // smaller tile dims"); + if (is_cuda_exec_space) { + printf(" Tile dimensions exceed Cuda limits\n"); + Kokkos::abort( + " Cuda ExecSpace Error: MDRange tile dims exceed maximum number " + "of " + "threads per block - choose smaller tile dims"); + } else { + printf(" Tile dimensions exceed HIP limits\n"); + Kokkos::abort( + "HIP ExecSpace Error: MDRange tile dims exceed maximum number of " + "threads per block - choose smaller tile dims"); + } } } #endif @@ -396,6 +417,10 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { #if defined(KOKKOS_ENABLE_ROCM) && !std::is_same::value +#endif +#if defined(KOKKOS_ENABLE_HIP) + && !std::is_same::value #endif ) { index_type span; @@ -415,8 +440,8 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { m_prod_tile_dims *= m_tile[i]; } } -#if defined(KOKKOS_ENABLE_CUDA) - else // Cuda +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_HIP) + else // Cuda or HIP { index_type span; int increment = 1; @@ -451,13 +476,17 @@ struct MDRangePolicy : public Kokkos::Impl::PolicyTraits { if (m_prod_tile_dims > 1024) { // Match Cuda restriction for ParallelReduce; 1024,1024,64 // max per dim (Kepler), but product num_threads < 1024 +#if defined(KOKKOS_ENABLE_CUDA) printf(" Tile dimensions exceed Cuda limits\n"); Kokkos::abort( " Cuda ExecSpace Error: MDRange tile dims exceed maximum number of " "threads per block - choose smaller tile dims"); - // Kokkos::Impl::throw_runtime_exception( " Cuda ExecSpace Error: - // MDRange tile dims exceed maximum number of threads per block - choose - // smaller tile dims"); +#else + printf(" Tile dimensions exceed HIP limits\n"); + Kokkos::abort( + " HIP ExecSpace Error: MDRange tile dims exceed maximum number of " + "threads per block - choose smaller tile dims"); +#endif } } #endif diff --git a/lib/kokkos/core/src/Kokkos_Array.hpp b/lib/kokkos/core/src/Kokkos_Array.hpp index 88e7883cb97cd6bd4d2d286446f2d3c9763dfa40..d830616bd67225eb4a1f0b6cb1c3f235307cf037 100644 --- a/lib/kokkos/core/src/Kokkos_Array.hpp +++ b/lib/kokkos/core/src/Kokkos_Array.hpp @@ -159,22 +159,21 @@ struct Array { return &m_internal_implementation_private_member_data[0]; } -#ifdef KOKKOS_IMPL_ROCM_CLANG_WORKAROUND +#ifdef KOKKOS_IMPL_HIP_CLANG_WORKAROUND // Do not default unless move and move-assignment are also defined - KOKKOS_INLINE_FUNCTION - ~Array() = default; - Array() = default; - Array(const Array&) = default; - Array& operator=(const Array&) = default; + KOKKOS_DEFAULTED_FUNCTION ~Array() = default; + KOKKOS_DEFAULTED_FUNCTION Array() = default; + KOKKOS_DEFAULTED_FUNCTION Array(const Array&) = default; + KOKKOS_DEFAULTED_FUNCTION Array& operator=(const Array&) = default; // Some supported compilers are not sufficiently C++11 compliant // for default move constructor and move assignment operator. - Array(Array&&) = default; - Array& operator=(Array&&) = default; + KOKKOS_DEFAULTED_FUNCTION Array(Array&&) = default; + KOKKOS_DEFAULTED_FUNCTION Array& operator=(Array&&) = default; KOKKOS_INLINE_FUNCTION Array(const std::initializer_list& vals) { - for (int i = 0; i < N; i++) { + for (size_t i = 0; i < N; i++) { m_internal_implementation_private_member_data[i] = vals.begin()[i]; } } @@ -217,17 +216,10 @@ struct Array { KOKKOS_INLINE_FUNCTION pointer data() { return pointer(0); } KOKKOS_INLINE_FUNCTION const_pointer data() const { return const_pointer(0); } -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION ~Array() {} - KOKKOS_INLINE_FUNCTION Array() {} - KOKKOS_INLINE_FUNCTION Array(const Array&) {} - KOKKOS_INLINE_FUNCTION Array& operator=(const Array&) {} -#else - KOKKOS_INLINE_FUNCTION ~Array() = default; - KOKKOS_INLINE_FUNCTION Array() = default; - KOKKOS_INLINE_FUNCTION Array(const Array&) = default; - KOKKOS_INLINE_FUNCTION Array& operator=(const Array&) = default; -#endif + KOKKOS_DEFAULTED_FUNCTION ~Array() = default; + KOKKOS_DEFAULTED_FUNCTION Array() = default; + KOKKOS_DEFAULTED_FUNCTION Array(const Array&) = default; + KOKKOS_DEFAULTED_FUNCTION Array& operator=(const Array&) = default; // Some supported compilers are not sufficiently C++11 compliant // for default move constructor and move assignment operator. @@ -281,13 +273,9 @@ struct Array::contiguous> { KOKKOS_INLINE_FUNCTION pointer data() { return m_elem; } KOKKOS_INLINE_FUNCTION const_pointer data() const { return m_elem; } -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION ~Array() {} -#else - KOKKOS_INLINE_FUNCTION ~Array() = default; -#endif - Array() = delete; - Array(const Array& rhs) = delete; + KOKKOS_DEFAULTED_FUNCTION ~Array() = default; + KOKKOS_INLINE_FUNCTION_DELETED Array() = delete; + KOKKOS_INLINE_FUNCTION_DELETED Array(const Array& rhs) = delete; // Some supported compilers are not sufficiently C++11 compliant // for default move constructor and move assignment operator. @@ -354,13 +342,9 @@ struct Array::strided> { KOKKOS_INLINE_FUNCTION pointer data() { return m_elem; } KOKKOS_INLINE_FUNCTION const_pointer data() const { return m_elem; } -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION ~Array() {} -#else - KOKKOS_INLINE_FUNCTION ~Array() = default; -#endif - Array() = delete; - Array(const Array&) = delete; + KOKKOS_DEFAULTED_FUNCTION ~Array() = default; + KOKKOS_INLINE_FUNCTION_DELETED Array() = delete; + KOKKOS_INLINE_FUNCTION_DELETED Array(const Array&) = delete; // Some supported compilers are not sufficiently C++11 compliant // for default move constructor and move assignment operator. diff --git a/lib/kokkos/core/src/Kokkos_Atomic.hpp b/lib/kokkos/core/src/Kokkos_Atomic.hpp index c4f7fa3ec14dc58414904a62942938bd8b73493e..55139d07b94aaa7c0b621a515335f31307d70101 100644 --- a/lib/kokkos/core/src/Kokkos_Atomic.hpp +++ b/lib/kokkos/core/src/Kokkos_Atomic.hpp @@ -86,6 +86,10 @@ #define KOKKOS_ENABLE_ROCM_ATOMICS +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) + +#define KOKKOS_ENABLE_HIP_ATOMICS + #endif #if !defined(KOKKOS_ENABLE_GNU_ATOMICS) && \ @@ -178,11 +182,13 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); } // namespace Kokkos #include #endif +#if defined(KOKKOS_ENABLE_HIP) +#include +#endif #ifdef _WIN32 #include "impl/Kokkos_Atomic_Windows.hpp" #else - //---------------------------------------------------------------------------- // Atomic Assembly // @@ -209,6 +215,11 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #include "impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp" +#endif //_WIN32 + +#include "impl/Kokkos_Atomic_Generic.hpp" + +#ifndef _WIN32 //---------------------------------------------------------------------------- // Atomic fetch and add // @@ -262,6 +273,18 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); // { T tmp = *dest ; *dest = tmp & val ; return tmp ; } #include "impl/Kokkos_Atomic_Fetch_And.hpp" + +//---------------------------------------------------------------------------- +// Atomic MinMax +// +// template +// T atomic_min(volatile T* const dest, const T val) +// { T tmp = *dest ; *dest = min(*dest, val); return tmp ; } +// template +// T atomic_max(volatile T* const dest, const T val) +// { T tmp = *dest ; *dest = max(*dest, val); return tmp ; } + +#include "impl/Kokkos_Atomic_MinMax.hpp" #endif /*Not _WIN32*/ //---------------------------------------------------------------------------- @@ -284,16 +307,14 @@ extern KOKKOS_INLINE_FUNCTION void unlock_address_rocm_space(void* ptr); #include "impl/Kokkos_Volatile_Load.hpp" -#ifndef _WIN32 -#include "impl/Kokkos_Atomic_Generic.hpp" -#endif - //---------------------------------------------------------------------------- // Provide atomic loads and stores with memory order semantics #include "impl/Kokkos_Atomic_Load.hpp" #include "impl/Kokkos_Atomic_Store.hpp" +// Generic functions using the above defined functions +#include "impl/Kokkos_Atomic_Generic_Secondary.hpp" //---------------------------------------------------------------------------- // This atomic-style macro should be an inlined function, not a macro diff --git a/lib/kokkos/core/src/Kokkos_Complex.hpp b/lib/kokkos/core/src/Kokkos_Complex.hpp index a9af073b4193d9e643d6f3c31c7dbd0837f65b60..fec5d62c3dd6c988fc542dcf3aeb43e58030dce7 100644 --- a/lib/kokkos/core/src/Kokkos_Complex.hpp +++ b/lib/kokkos/core/src/Kokkos_Complex.hpp @@ -73,14 +73,14 @@ class using value_type = RealType; //! Default constructor (initializes both real and imaginary parts to zero). - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION complex() noexcept = default; //! Copy constructor. - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION complex(const complex&) noexcept = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION complex& operator=(const complex&) noexcept = default; /// \brief Conversion constructor from compatible RType @@ -219,7 +219,10 @@ class // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. - const RealType s = std::fabs(y.real()) + std::fabs(y.imag()); +#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP + using std::fabs; +#endif + const RealType s = fabs(y.real()) + fabs(y.imag()); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -247,7 +250,10 @@ class // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. - const RealType s = std::fabs(y.real()) + std::fabs(y.imag()); +#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP + using std::fabs; +#endif + const RealType s = fabs(y.real()) + fabs(y.imag()); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, @@ -298,8 +304,21 @@ class /// complex& . See Kokkos Issue #177 for the /// explanation. In practice, this means that you should not chain /// assignments with volatile lvalues. - KOKKOS_INLINE_FUNCTION void operator=( - const complex& src) volatile noexcept { + // + // Templated, so as not to be a copy assignment operator (Kokkos issue #2577) + // Intended to behave as + // void operator=(const complex&) volatile noexcept + // + // Use cases: + // complex r; + // const complex cr; + // volatile complex vl; + // vl = r; + // vl = cr; + template ::value, + int>::type = 0> + KOKKOS_INLINE_FUNCTION void operator=(const Complex& src) volatile noexcept { re_ = src.re_; im_ = src.im_; // We deliberately do not return anything here. See explanation @@ -308,16 +327,45 @@ class //! Assignment operator, volatile LHS and volatile RHS // TODO Should this return void like the other volatile assignment operators? + // + // Templated, so as not to be a copy assignment operator (Kokkos issue #2577) + // Intended to behave as + // volatile complex& operator=(const volatile complex&) volatile noexcept + // + // Use cases: + // volatile complex vr; + // const volatile complex cvr; + // volatile complex vl; + // vl = vr; + // vl = cvr; + template ::value, + int>::type = 0> KOKKOS_INLINE_FUNCTION volatile complex& operator=( - const volatile complex& src) volatile noexcept { + const volatile Complex& src) volatile noexcept { re_ = src.re_; im_ = src.im_; return *this; } //! Assignment operator, volatile RHS and non-volatile LHS + // + // Templated, so as not to be a copy assignment operator (Kokkos issue #2577) + // Intended to behave as + // complex& operator=(const volatile complex&) noexcept + // + // Use cases: + // volatile complex vr; + // const volatile complex cvr; + // complex l; + // l = vr; + // l = cvr; + // + template ::value, + int>::type = 0> KOKKOS_INLINE_FUNCTION complex& operator=( - const volatile complex& src) noexcept { + const volatile Complex& src) noexcept { re_ = src.re_; im_ = src.im_; return *this; @@ -650,7 +698,8 @@ KOKKOS_INLINE_FUNCTION RealType real(const complex& x) noexcept { //! Absolute value (magnitude) of a complex number. template KOKKOS_INLINE_FUNCTION RealType abs(const complex& x) { -#ifndef __CUDA_ARCH__ +#if !defined(__CUDA_ARCH__) && \ + !defined(__HIP_DEVICE_COMPILE__) // FIXME_CUDA FIXME_HIP using std::hypot; #endif return hypot(x.real(), x.imag()); @@ -660,20 +709,32 @@ KOKKOS_INLINE_FUNCTION RealType abs(const complex& x) { template KOKKOS_INLINE_FUNCTION Kokkos::complex pow(const complex& x, const RealType& e) { - RealType r = abs(x); - RealType phi = std::atan(x.imag() / x.real()); - return std::pow(r, e) * - Kokkos::complex(std::cos(phi * e), std::sin(phi * e)); + RealType r = abs(x); +#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP + using std::atan; + using std::cos; + using std::pow; + using std::sin; +#endif + using ::pow; + RealType phi = atan(x.imag() / x.real()); + return pow(r, e) * Kokkos::complex(cos(phi * e), sin(phi * e)); } //! Square root of a complex number. template KOKKOS_INLINE_FUNCTION Kokkos::complex sqrt( const complex& x) { - RealType r = abs(x); - RealType phi = std::atan(x.imag() / x.real()); - return std::sqrt(r) * - Kokkos::complex(std::cos(phi * 0.5), std::sin(phi * 0.5)); + RealType r = abs(x); +#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP + using std::atan; + using std::cos; + using std::sin; + using std::sqrt; +#endif + using ::sqrt; + RealType phi = atan(x.imag() / x.real()); + return sqrt(r) * Kokkos::complex(cos(phi * 0.5), sin(phi * 0.5)); } //! Conjugate of a complex number. @@ -686,8 +747,14 @@ KOKKOS_INLINE_FUNCTION complex conj( //! Exponential of a complex number. template KOKKOS_INLINE_FUNCTION complex exp(const complex& x) { - return std::exp(x.real()) * - complex(std::cos(x.imag()), std::sin(x.imag())); +#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP + using std::cos; + using std::exp; + using std::sin; +#else + using ::exp; +#endif + return exp(x.real()) * complex(cos(x.imag()), sin(x.imag())); } /// This function cannot be called in a CUDA device function, @@ -720,9 +787,12 @@ KOKKOS_INLINE_FUNCTION // Scale (by the "1-norm" of y) to avoid unwarranted overflow. // If the real part is +/-Inf and the imaginary part is -/+Inf, // this won't change the result. +#if !defined(__HIP_DEVICE_COMPILE__) // FIXME_HIP + using std::fabs; +#endif typedef typename std::common_type::type common_real_type; - const common_real_type s = std::fabs(real(y)) + std::fabs(imag(y)); + const common_real_type s = fabs(real(y)) + fabs(imag(y)); // If s is 0, then y is zero, so x/y == real(x)/0 + i*imag(x)/0. // In that case, the relation x/y == (x/s) / (y/s) doesn't hold, diff --git a/lib/kokkos/core/src/Kokkos_Concepts.hpp b/lib/kokkos/core/src/Kokkos_Concepts.hpp index 99b7aa9aab185d8a4cfc25a224acfcf25f7e816c..13d7925c127c2353af68d11d8746263047dfd1dc 100644 --- a/lib/kokkos/core/src/Kokkos_Concepts.hpp +++ b/lib/kokkos/core/src/Kokkos_Concepts.hpp @@ -153,19 +153,17 @@ namespace Kokkos { template \ struct have : std::false_type {}; \ template \ - struct have::type, \ - typename std::remove_cv::type>::type> \ + struct have::type> \ : std::true_type {}; \ template \ struct have::type, \ - typename std::remove_cv::type>::type> \ + typename std::is_base_of::type> \ : std::true_type {}; \ \ public: \ - enum { value = is_##CONCEPT::template have::value }; \ + static constexpr bool value = \ + is_##CONCEPT::template have::type>::value; \ + constexpr operator bool() const noexcept { return value; } \ }; // Public concept: @@ -205,6 +203,43 @@ KOKKOS_IMPL_IS_CONCEPT(host_thread_team_member) } // namespace Kokkos +namespace Kokkos { +namespace Impl { + +template +class has_member_team_shmem_size { + template + static int32_t test_for_member(decltype(&T::team_shmem_size)) { + return int32_t(0); + } + template + static int64_t test_for_member(...) { + return int64_t(0); + } + + public: + constexpr static bool value = + sizeof(test_for_member(0)) == sizeof(int32_t); +}; + +template +class has_member_shmem_size { + template + static int32_t test_for_member(decltype(&T::shmem_size_me)) { + return int32_t(0); + } + template + static int64_t test_for_member(...) { + return int64_t(0); + } + + public: + constexpr static bool value = + sizeof(test_for_member(0)) == sizeof(int32_t); +}; + +} // namespace Impl +} // namespace Kokkos //---------------------------------------------------------------------------- namespace Kokkos { @@ -220,6 +255,23 @@ struct Device { typedef Device device_type; }; +namespace Impl { + +template +struct is_device_helper : std::false_type {}; + +template +struct is_device_helper> : std::true_type { +}; + +} // namespace Impl + +template +using is_device = + typename Impl::is_device_helper::type>::type; + +//---------------------------------------------------------------------------- + template struct is_space { private: @@ -259,12 +311,17 @@ struct is_space { typedef typename U::device_type space; }; - typedef typename is_space::template exe is_exe; - typedef typename is_space::template mem is_mem; - typedef typename is_space::template dev is_dev; + typedef typename is_space::template exe::type> + is_exe; + typedef typename is_space::template mem::type> + is_mem; + typedef typename is_space::template dev::type> + is_dev; public: - enum { value = is_exe::value || is_mem::value || is_dev::value }; + static constexpr bool value = is_exe::value || is_mem::value || is_dev::value; + + constexpr operator bool() const noexcept { return value; } typedef typename is_exe::space execution_space; typedef typename is_mem::space memory_space; @@ -300,7 +357,7 @@ struct is_space { typedef typename std::conditional< std::is_same::value && std::is_same::value, - T, Kokkos::Device >::type + T, Kokkos::Device>::type host_mirror_space; }; @@ -426,7 +483,7 @@ struct SpaceAccessibility { std::is_same::value || !exe_access::accessible, AccessSpace, - Kokkos::Device >::type + Kokkos::Device>::type space; }; diff --git a/lib/kokkos/core/src/Kokkos_CopyViews.hpp b/lib/kokkos/core/src/Kokkos_CopyViews.hpp index 9b3db1277d677cf0e7a86a74ec0b161d55a466bc..810b71273330ffa183d2d305a2ce23af30bdedaa 100644 --- a/lib/kokkos/core/src/Kokkos_CopyViews.hpp +++ b/lib/kokkos/core/src/Kokkos_CopyViews.hpp @@ -84,7 +84,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); }; template { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&) const; }; @@ -104,7 +104,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&) const; }; @@ -115,7 +115,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&, const iType&) const; }; @@ -126,7 +126,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&, const iType&, const iType&) const; }; @@ -137,7 +137,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&, const iType&, const iType&, const iType&) const; @@ -149,7 +149,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&, const iType&, const iType&, const iType&, const iType&) const; @@ -161,7 +161,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&, const iType&, const iType&, const iType&, const iType&, const iType&) const; @@ -173,7 +173,7 @@ struct ViewFill { ViewType a; typename ViewType::const_value_type val; typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType&, const ST&); + ViewFill(const ViewType&, const ST&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType&, const iType&, const iType&, const iType&, const iType&, const iType&, const iType&, const iType&) const; @@ -183,9 +183,9 @@ template struct ViewFill { typedef typename ViewType::non_const_value_type ST; - ViewFill(const ViewType& a, const ST& val) { - Kokkos::Impl::DeepCopy( - a.data(), &val, sizeof(ST)); + ViewFill(const ViewType& a, const ST& val, const ExecSpace& space) { + Kokkos::Impl::DeepCopy(space, a.data(), &val, sizeof(ST)); } }; @@ -196,12 +196,11 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); - Kokkos::parallel_for("Kokkos::ViewFill-1D", policy_type(0, a.extent(0)), - *this); - ExecSpace().fence(); + Kokkos::parallel_for("Kokkos::ViewFill-1D", + policy_type(space, 0, a.extent(0)), *this); } KOKKOS_INLINE_FUNCTION @@ -221,13 +220,12 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); Kokkos::parallel_for("Kokkos::ViewFill-2D", - policy_type({0, 0}, {a.extent(0), a.extent(1)}), + policy_type(space, {0, 0}, {a.extent(0), a.extent(1)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -247,13 +245,13 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); Kokkos::parallel_for( "Kokkos::ViewFill-3D", - policy_type({0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2)}), *this); - ExecSpace().fence(); + policy_type(space, {0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2)}), + *this); } KOKKOS_INLINE_FUNCTION @@ -275,14 +273,14 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); - Kokkos::parallel_for("Kokkos::ViewFill-4D", - policy_type({0, 0, 0, 0}, {a.extent(0), a.extent(1), - a.extent(2), a.extent(3)}), - *this); - ExecSpace().fence(); + Kokkos::parallel_for( + "Kokkos::ViewFill-4D", + policy_type(space, {0, 0, 0, 0}, + {a.extent(0), a.extent(1), a.extent(2), a.extent(3)}), + *this); } KOKKOS_INLINE_FUNCTION @@ -305,15 +303,14 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); - Kokkos::parallel_for( - "Kokkos::ViewFill-5D", - policy_type({0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), + Kokkos::parallel_for("Kokkos::ViewFill-5D", + policy_type(space, {0, 0, 0, 0, 0}, + {a.extent(0), a.extent(1), a.extent(2), a.extent(3), a.extent(4)}), - *this); - ExecSpace().fence(); + *this); } KOKKOS_INLINE_FUNCTION @@ -336,15 +333,14 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); Kokkos::parallel_for("Kokkos::ViewFill-6D", - policy_type({0, 0, 0, 0, 0, 0}, + policy_type(space, {0, 0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), a.extent(3), a.extent(4), a.extent(5)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -367,15 +363,14 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); Kokkos::parallel_for("Kokkos::ViewFill-7D", - policy_type({0, 0, 0, 0, 0, 0}, + policy_type(space, {0, 0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), a.extent(3), a.extent(5), a.extent(6)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -399,15 +394,14 @@ struct ViewFill> policy_type; - ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_) + ViewFill(const ViewType& a_, typename ViewType::const_value_type& val_, + const ExecSpace& space) : a(a_), val(val_) { - ExecSpace().fence(); Kokkos::parallel_for("Kokkos::ViewFill-8D", - policy_type({0, 0, 0, 0, 0, 0}, + policy_type(space, {0, 0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(3), a.extent(5), a.extent(6), a.extent(7)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -424,7 +418,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0) const; }; @@ -434,7 +428,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1) const; }; @@ -444,7 +438,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2) const; }; @@ -454,7 +448,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2, const iType& i3) const; @@ -465,7 +459,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2, const iType& i3, const iType& i4) const; @@ -476,7 +470,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2, const iType& i3, const iType& i4, const iType& i5) const; @@ -487,7 +481,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2, const iType& i3, const iType& i4, const iType& i5, @@ -499,7 +493,7 @@ template { ViewTypeA a; ViewTypeB b; - ViewCopy(const ViewTypeA&, const ViewTypeB&); + ViewCopy(const ViewTypeA&, const ViewTypeB&, const ExecSpace&); KOKKOS_INLINE_FUNCTION void operator()(const iType& i0, const iType& i1, const iType& i2, const iType& i3, const iType& i4, const iType& i5, @@ -515,11 +509,11 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); - Kokkos::parallel_for("Kokkos::ViewCopy-1D", policy_type(0, a.extent(0)), - *this); - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { + Kokkos::parallel_for("Kokkos::ViewCopy-1D", + policy_type(space, 0, a.extent(0)), *this); } KOKKOS_INLINE_FUNCTION @@ -542,12 +536,12 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { Kokkos::parallel_for("Kokkos::ViewCopy-2D", - policy_type({0, 0}, {a.extent(0), a.extent(1)}), + policy_type(space, {0, 0}, {a.extent(0), a.extent(1)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -573,12 +567,13 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { Kokkos::parallel_for( "Kokkos::ViewCopy-3D", - policy_type({0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2)}), *this); - ExecSpace().fence(); + policy_type(space, {0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2)}), + *this); } KOKKOS_INLINE_FUNCTION @@ -604,13 +599,14 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); - Kokkos::parallel_for("Kokkos::ViewCopy-4D", - policy_type({0, 0, 0, 0}, {a.extent(0), a.extent(1), - a.extent(2), a.extent(3)}), - *this); - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { + Kokkos::parallel_for( + "Kokkos::ViewCopy-4D", + policy_type(space, {0, 0, 0, 0}, + {a.extent(0), a.extent(1), a.extent(2), a.extent(3)}), + *this); } KOKKOS_INLINE_FUNCTION @@ -637,14 +633,14 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); - Kokkos::parallel_for( - "Kokkos::ViewCopy-5D", - policy_type({0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { + Kokkos::parallel_for("Kokkos::ViewCopy-5D", + policy_type(space, {0, 0, 0, 0, 0}, + {a.extent(0), a.extent(1), a.extent(2), a.extent(3), a.extent(4)}), - *this); - ExecSpace().fence(); + *this); } KOKKOS_INLINE_FUNCTION @@ -671,14 +667,14 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { Kokkos::parallel_for("Kokkos::ViewCopy-6D", - policy_type({0, 0, 0, 0, 0, 0}, + policy_type(space, {0, 0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(2), a.extent(3), a.extent(4), a.extent(5)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -705,14 +701,14 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { Kokkos::parallel_for("Kokkos::ViewCopy-7D", - policy_type({0, 0, 0, 0, 0, 0}, + policy_type(space, {0, 0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(3), a.extent(4), a.extent(5), a.extent(6)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -740,14 +736,14 @@ struct ViewCopy> policy_type; - ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_) : a(a_), b(b_) { - ExecSpace().fence(); + ViewCopy(const ViewTypeA& a_, const ViewTypeB& b_, + const ExecSpace space = ExecSpace()) + : a(a_), b(b_) { Kokkos::parallel_for("Kokkos::ViewCopy-8D", - policy_type({0, 0, 0, 0, 0, 0}, + policy_type(space, {0, 0, 0, 0, 0, 0}, {a.extent(0), a.extent(1), a.extent(3), a.extent(5), a.extent(6), a.extent(7)}), *this); - ExecSpace().fence(); } KOKKOS_INLINE_FUNCTION @@ -767,6 +763,85 @@ struct ViewCopy +void view_copy(const ExecutionSpace& space, const DstType& dst, + const SrcType& src) { + typedef typename DstType::memory_space dst_memory_space; + typedef typename SrcType::memory_space src_memory_space; + + enum { + ExecCanAccessSrc = + Kokkos::Impl::SpaceAccessibility::accessible + }; + enum { + ExecCanAccessDst = + Kokkos::Impl::SpaceAccessibility::accessible + }; + + if (!(ExecCanAccessSrc && ExecCanAccessDst)) { + Kokkos::Impl::throw_runtime_exception( + "Kokkos::Impl::view_copy called with invalid execution space"); + } else { + // Figure out iteration order in case we need it + int64_t strides[DstType::Rank + 1]; + dst.stride(strides); + Kokkos::Iterate iterate; + if (Kokkos::is_layouttiled::value) { + iterate = Kokkos::layout_iterate_type_selector< + typename DstType::array_layout>::outer_iteration_pattern; + } else if (std::is_same::value) { + iterate = Kokkos::Iterate::Right; + } else if (std::is_same::value) { + iterate = Kokkos::Iterate::Left; + } else if (std::is_same::value) { + if (strides[0] > strides[DstType::Rank - 1]) + iterate = Kokkos::Iterate::Right; + else + iterate = Kokkos::Iterate::Left; + } else { + if (std::is_same::value) + iterate = Kokkos::Iterate::Right; + else + iterate = Kokkos::Iterate::Left; + } + + if ((dst.span() >= size_t(std::numeric_limits::max())) || + (src.span() >= size_t(std::numeric_limits::max()))) { + if (iterate == Kokkos::Iterate::Right) + Kokkos::Impl::ViewCopy< + typename DstType::uniform_runtime_nomemspace_type, + typename SrcType::uniform_runtime_const_nomemspace_type, + Kokkos::LayoutRight, ExecutionSpace, DstType::Rank, int64_t>( + dst, src, space); + else + Kokkos::Impl::ViewCopy< + typename DstType::uniform_runtime_nomemspace_type, + typename SrcType::uniform_runtime_const_nomemspace_type, + Kokkos::LayoutLeft, ExecutionSpace, DstType::Rank, int64_t>( + dst, src, space); + } else { + if (iterate == Kokkos::Iterate::Right) + Kokkos::Impl::ViewCopy< + typename DstType::uniform_runtime_nomemspace_type, + typename SrcType::uniform_runtime_const_nomemspace_type, + Kokkos::LayoutRight, ExecutionSpace, DstType::Rank, int>(dst, src, + space); + else + Kokkos::Impl::ViewCopy< + typename DstType::uniform_runtime_nomemspace_type, + typename SrcType::uniform_runtime_const_nomemspace_type, + Kokkos::LayoutLeft, ExecutionSpace, DstType::Rank, int>(dst, src, + space); + } + } +} + template void view_copy(const DstType& dst, const SrcType& src) { typedef typename DstType::execution_space dst_execution_space; @@ -1421,21 +1496,22 @@ inline void deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { typedef View ViewType; + using exec_space_type = typename ViewType::execution_space; #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle( - typename ViewType::memory_space().name()), + Kokkos::Profiling::SpaceHandle(ViewType::memory_space::name()), dst.label(), dst.data(), - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace().name()), "Scalar", + Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "Scalar", &value, dst.span() * sizeof(typename ViewType::value_type)); } #endif - if (dst.data() == NULL) { + if (dst.data() == nullptr) { Kokkos::fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -1463,13 +1539,13 @@ inline void deep_copy( ViewTypeFlat dst_flat(dst.data(), dst.size()); if (dst.span() < static_cast(std::numeric_limits::max())) { - Kokkos::Impl::ViewFill(dst_flat, value); + Kokkos::Impl::ViewFill(dst_flat, value, + exec_space_type()); } else - Kokkos::Impl::ViewFill(dst_flat, value); + Kokkos::Impl::ViewFill(dst_flat, value, + exec_space_type()); Kokkos::fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -1511,21 +1587,21 @@ inline void deep_copy( if (dst.span() > static_cast(std::numeric_limits::max())) { if (iterate == Kokkos::Iterate::Right) Kokkos::Impl::ViewFill(dst, value); + exec_space_type, ViewType::Rank, int64_t>( + dst, value, exec_space_type()); else Kokkos::Impl::ViewFill(dst, value); + exec_space_type, ViewType::Rank, int64_t>( + dst, value, exec_space_type()); } else { if (iterate == Kokkos::Iterate::Right) Kokkos::Impl::ViewFill(dst, value); + exec_space_type, ViewType::Rank, int>( + dst, value, exec_space_type()); else Kokkos::Impl::ViewFill(dst, value); + exec_space_type, ViewType::Rank, int>( + dst, value, exec_space_type()); } Kokkos::fence(); @@ -1542,7 +1618,8 @@ inline void deep_copy( typename ViewTraits::non_const_value_type& dst, const View& src, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { typedef ViewTraits src_traits; typedef typename src_traits::memory_space src_memory_space; @@ -1552,14 +1629,14 @@ inline void deep_copy( #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace().name()), "Scalar", - &dst, Kokkos::Profiling::SpaceHandle(src_memory_space().name()), + Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "Scalar", + &dst, Kokkos::Profiling::SpaceHandle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename src_traits::value_type)); } #endif - if (src.data() == NULL) { + if (src.data() == nullptr) { Kokkos::fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -1587,7 +1664,8 @@ inline void deep_copy( std::is_same::specialize, void>::value && std::is_same::specialize, void>::value && (unsigned(ViewTraits::rank) == unsigned(0) && - unsigned(ViewTraits::rank) == unsigned(0)))>::type* = 0) { + unsigned(ViewTraits::rank) == unsigned(0)))>::type* = + nullptr) { typedef View dst_type; typedef View src_type; @@ -1602,14 +1680,14 @@ inline void deep_copy( #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space().name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space().name()), + Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), + dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename dst_type::value_type)); } #endif - if (dst.data() == NULL && src.data() == NULL) { + if (dst.data() == nullptr && src.data() == nullptr) { Kokkos::fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -1643,7 +1721,7 @@ inline void deep_copy( std::is_same::specialize, void>::value && std::is_same::specialize, void>::value && (unsigned(ViewTraits::rank) != 0 || - unsigned(ViewTraits::rank) != 0))>::type* = 0) { + unsigned(ViewTraits::rank) != 0))>::type* = nullptr) { typedef View dst_type; typedef View src_type; typedef typename dst_type::execution_space dst_execution_space; @@ -1663,14 +1741,14 @@ inline void deep_copy( #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space().name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space().name()), + Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), + dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), src.label(), src.data(), src.span() * sizeof(typename dst_type::value_type)); } #endif - if (dst.data() == NULL || src.data() == NULL) { + if (dst.data() == nullptr || src.data() == nullptr) { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE // do nothing #else @@ -1874,7 +1952,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 1 && unsigned(ViewTraits::rank) == - 1)>::type* = 0) { + 1)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -1893,7 +1971,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 2 && unsigned(ViewTraits::rank) == - 2)>::type* = 0) { + 2)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -1921,7 +1999,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 3 && unsigned(ViewTraits::rank) == - 3)>::type* = 0) { + 3)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -1951,7 +2029,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 4 && unsigned(ViewTraits::rank) == - 4)>::type* = 0) { + 4)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -1984,7 +2062,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 5 && unsigned(ViewTraits::rank) == - 5)>::type* = 0) { + 5)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2019,7 +2097,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 6 && unsigned(ViewTraits::rank) == - 6)>::type* = 0) { + 6)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2056,7 +2134,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 7 && unsigned(ViewTraits::rank) == - 7)>::type* = 0) { + 7)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2095,7 +2173,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 1 && unsigned(ViewTraits::rank) == - 1)>::type* = 0) { + 1)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2112,7 +2190,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 2 && unsigned(ViewTraits::rank) == - 2)>::type* = 0) { + 2)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2130,7 +2208,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 3 && unsigned(ViewTraits::rank) == - 3)>::type* = 0) { + 3)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2150,7 +2228,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 4 && unsigned(ViewTraits::rank) == - 4)>::type* = 0) { + 4)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2171,7 +2249,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 5 && unsigned(ViewTraits::rank) == - 5)>::type* = 0) { + 5)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2193,7 +2271,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 6 && unsigned(ViewTraits::rank) == - 6)>::type* = 0) { + 6)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2216,7 +2294,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, const View& src, typename std::enable_if<(unsigned(ViewTraits::rank) == 7 && unsigned(ViewTraits::rank) == - 7)>::type* = 0) { + 7)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2260,7 +2338,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 1)>::type* = 0) { + 1)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2278,7 +2356,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 2)>::type* = 0) { + 2)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2305,7 +2383,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 3)>::type* = 0) { + 3)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2334,7 +2412,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 4)>::type* = 0) { + 4)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2366,7 +2444,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 5)>::type* = 0) { + 5)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2400,7 +2478,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 6)>::type* = 0) { + 6)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2436,7 +2514,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const TeamType& team, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 7)>::type* = 0) { + 7)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2475,7 +2553,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 1)>::type* = 0) { + 1)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2492,7 +2570,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 2)>::type* = 0) { + 2)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2510,7 +2588,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 3)>::type* = 0) { + 3)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2529,7 +2607,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 4)>::type* = 0) { + 4)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2550,7 +2628,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 5)>::type* = 0) { + 5)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2572,7 +2650,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 6)>::type* = 0) { + 6)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2595,7 +2673,7 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if<(unsigned(ViewTraits::rank) == - 7)>::type* = 0) { + 7)>::type* = nullptr) { if (dst.data() == nullptr) { return; } @@ -2621,33 +2699,88 @@ void KOKKOS_INLINE_FUNCTION local_deep_copy( namespace Kokkos { -/** \brief Deep copy a value from Host memory into a view. */ +/** \brief Deep copy a value from Host memory into a view. ExecSpace can access + * dst */ template inline void deep_copy( - const ExecSpace&, const View& dst, + const ExecSpace& space, const View& dst, typename ViewTraits::const_value_type& value, typename std::enable_if< Kokkos::Impl::is_execution_space::value && - std::is_same::specialize, - void>::value>::type* = 0) { + std::is_same::specialize, void>::value && + Kokkos::Impl::SpaceAccessibility< + ExecSpace, + typename ViewTraits::memory_space>::accessible>::type* = + nullptr) { typedef ViewTraits dst_traits; + static_assert(std::is_same::value, + "deep_copy requires non-const type"); +#if defined(KOKKOS_ENABLE_PROFILING) typedef typename dst_traits::memory_space dst_memory_space; + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::beginDeepCopy( + Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), + dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), + "(none)", &value, dst.span() * sizeof(typename dst_traits::value_type)); + } +#endif + if (dst.data() == nullptr) { + space.fence(); + } else { + using ViewTypeUniform = typename std::conditional< + View::Rank == 0, + typename View::uniform_runtime_type, + typename View::uniform_runtime_nomemspace_type>::type; + Kokkos::Impl::ViewFill(dst, value, space); + } +#if defined(KOKKOS_ENABLE_PROFILING) + if (Kokkos::Profiling::profileLibraryLoaded()) { + Kokkos::Profiling::endDeepCopy(); + } +#endif +} + +/** \brief Deep copy a value from Host memory into a view. ExecSpace can not + * access dst */ +template +inline void deep_copy( + const ExecSpace& space, const View& dst, + typename ViewTraits::const_value_type& value, + typename std::enable_if< + Kokkos::Impl::is_execution_space::value && + std::is_same::specialize, void>::value && + !Kokkos::Impl::SpaceAccessibility< + ExecSpace, + typename ViewTraits::memory_space>::accessible>::type* = + nullptr) { + typedef ViewTraits dst_traits; static_assert(std::is_same::value, "deep_copy requires non-const type"); #if defined(KOKKOS_ENABLE_PROFILING) + typedef typename dst_traits::memory_space dst_memory_space; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space().name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace().name()), + Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), + dst.data(), Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "(none)", &value, dst.span() * sizeof(typename dst_traits::value_type)); } #endif - ExecSpace().fence(); - typedef - typename View::uniform_runtime_nomemspace_type ViewTypeUniform; - Kokkos::Impl::ViewFill(dst, value); - ExecSpace().fence(); + if (dst.data() == nullptr) { + space.fence(); + } else { + space.fence(); + using ViewTypeUniform = typename std::conditional< + View::Rank == 0, + typename View::uniform_runtime_type, + typename View::uniform_runtime_nomemspace_type>::type; + using fill_exec_space = typename dst_traits::memory_space::execution_space; + Kokkos::Impl::ViewFill(dst, value, fill_exec_space()); + fill_exec_space().fence(); + } #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); @@ -2672,13 +2805,13 @@ inline void deep_copy( #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace().name()), "(none)", - &dst, Kokkos::Profiling::SpaceHandle(src_memory_space().name()), + Kokkos::Profiling::SpaceHandle(Kokkos::HostSpace::name()), "(none)", + &dst, Kokkos::Profiling::SpaceHandle(src_memory_space::name()), src.label(), src.data(), sizeof(ST)); } #endif - if (src.data() == NULL) { + if (src.data() == nullptr) { exec_space.fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -2721,13 +2854,13 @@ inline void deep_copy( #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space().name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space().name()), + Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), + dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), src.label(), src.data(), sizeof(DT)); } #endif - if (dst.data() == NULL && src.data() == NULL) { + if (dst.data() == nullptr && src.data() == nullptr) { exec_space.fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -2737,13 +2870,11 @@ inline void deep_copy( return; } - exec_space.fence(); if (dst.data() != src.data()) { Kokkos::Impl::DeepCopy( exec_space, dst.data(), src.data(), sizeof(typename dst_traits::value_type)); } - exec_space.fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); @@ -2764,7 +2895,7 @@ inline void deep_copy( std::is_same::specialize, void>::value && std::is_same::specialize, void>::value && (unsigned(ViewTraits::rank) != 0 || - unsigned(ViewTraits::rank) != 0))>::type* = 0) { + unsigned(ViewTraits::rank) != 0))>::type* = nullptr) { typedef View dst_type; typedef View src_type; @@ -2785,13 +2916,21 @@ inline void deep_copy( #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::beginDeepCopy( - Kokkos::Profiling::SpaceHandle(dst_memory_space().name()), dst.label(), - dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space().name()), + Kokkos::Profiling::SpaceHandle(dst_memory_space::name()), dst.label(), + dst.data(), Kokkos::Profiling::SpaceHandle(src_memory_space::name()), src.label(), src.data(), dst.span() * sizeof(dst_value_type)); } #endif - if (dst.data() == NULL || src.data() == NULL) { + dst_value_type* dst_start = dst.data(); + dst_value_type* dst_end = dst.data() + dst.span(); + src_value_type* src_start = src.data(); + src_value_type* src_end = src.data() + src.span(); + + // Early dropout if identical range + if ((dst_start == nullptr || src_start == nullptr) || + ((std::ptrdiff_t(dst_start) == std::ptrdiff_t(src_start)) && + (std::ptrdiff_t(dst_end) == std::ptrdiff_t(src_end)))) { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE // do nothing #else @@ -2823,7 +2962,6 @@ inline void deep_copy( Kokkos::Impl::throw_runtime_exception(message); } #endif - exec_space.fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); @@ -2851,11 +2989,7 @@ inline void deep_copy( dst_memory_space>::accessible }; - // Checking for Overlapping Views. - dst_value_type* dst_start = dst.data(); - dst_value_type* dst_end = dst.data() + dst.span(); - src_value_type* src_start = src.data(); - src_value_type* src_end = src.data() + src.span(); + // Error out for non-identical overlapping views. if ((((std::ptrdiff_t)dst_start < (std::ptrdiff_t)src_end) && ((std::ptrdiff_t)dst_end > (std::ptrdiff_t)src_start)) && ((dst.span_is_contiguous() && src.span_is_contiguous()))) { @@ -2881,23 +3015,27 @@ inline void deep_copy( (src.extent(4) != dst.extent(4)) || (src.extent(5) != dst.extent(5)) || (src.extent(6) != dst.extent(6)) || (src.extent(7) != dst.extent(7))) { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE - exec_space.fence(); if (ExecCanAccessSrcDst) { Kokkos::Impl::ViewRemap(dst, src); + exec_space.fence(); } else if (DstExecCanAccessSrc) { // Copying data between views in accessible memory spaces and either // non-contiguous or incompatible shape. - Kokkos::Impl::ViewRemap(dst, src); + exec_space.fence(); + Kokkos::Impl::ViewRemap(dst, + src); + dst_execution_space().fence(); } else if (SrcExecCanAccessDst) { // Copying data between views in accessible memory spaces and either // non-contiguous or incompatible shape. + exec_space.fence(); Kokkos::Impl::ViewRemap(dst, src); + src_execution_space().fence(); } else { Kokkos::Impl::throw_runtime_exception( "deep_copy given views that would require a temporary allocation"); } - exec_space.fence(); #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::endDeepCopy(); @@ -2946,16 +3084,26 @@ inline void deep_copy( ((dst_type::rank < 7) || (dst.stride_6() == src.stride_6())) && ((dst_type::rank < 8) || (dst.stride_7() == src.stride_7()))) { const size_t nbytes = sizeof(typename dst_type::value_type) * dst.span(); - exec_space.fence(); if ((void*)dst.data() != (void*)src.data()) { Kokkos::Impl::DeepCopy( exec_space, dst.data(), src.data(), nbytes); } - exec_space.fence(); } else { - exec_space.fence(); - Impl::view_copy(dst, src); - exec_space.fence(); + // Copying data between views in accessible memory spaces and either + // non-contiguous or incompatible shape. + if (ExecCanAccessSrcDst) { + Impl::view_copy(exec_space, dst, src); + } else if (DstExecCanAccessSrc || SrcExecCanAccessDst) { + using cpy_exec_space = + typename std::conditional::type; + exec_space.fence(); + Impl::view_copy(cpy_exec_space(), dst, src); + cpy_exec_space().fence(); + } else { + Kokkos::Impl::throw_runtime_exception( + "deep_copy given views that would require a temporary allocation"); + } } #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { @@ -3285,7 +3433,7 @@ inline typename Kokkos::View::HostMirror create_mirror( typename std::enable_if< std::is_same::specialize, void>::value && !std::is_same::array_layout, - Kokkos::LayoutStride>::value>::type* = 0) { + Kokkos::LayoutStride>::value>::type* = nullptr) { typedef View src_type; typedef typename src_type::HostMirror dst_type; @@ -3321,7 +3469,7 @@ inline typename Kokkos::View::HostMirror create_mirror( typename std::enable_if< std::is_same::specialize, void>::value && std::is_same::array_layout, - Kokkos::LayoutStride>::value>::type* = 0) { + Kokkos::LayoutStride>::value>::type* = nullptr) { typedef View src_type; typedef typename src_type::HostMirror dst_type; @@ -3353,7 +3501,8 @@ template typename Impl::MirrorType::view_type create_mirror( const Space&, const Kokkos::View& src, typename std::enable_if::specialize, void>::value>::type* = 0) { + typename ViewTraits::specialize, void>::value>::type* = + nullptr) { return typename Impl::MirrorType::view_type(src.label(), src.layout()); } @@ -3367,7 +3516,7 @@ inline typename Kokkos::View::HostMirror create_mirror_view( typename Kokkos::View::HostMirror::memory_space>::value && std::is_same::data_type, typename Kokkos::View::HostMirror::data_type>:: - value)>::type* = 0) { + value)>::type* = nullptr) { return src; } @@ -3389,7 +3538,8 @@ template typename Impl::MirrorViewType::view_type create_mirror_view( const Space&, const Kokkos::View& src, typename std::enable_if< - Impl::MirrorViewType::is_same_memspace>::type* = 0) { + Impl::MirrorViewType::is_same_memspace>::type* = + nullptr) { return src; } @@ -3411,8 +3561,10 @@ create_mirror_view_and_copy( const Space&, const Kokkos::View& src, std::string const& name = "", typename std::enable_if< - Impl::MirrorViewType::is_same_memspace>::type* = 0) { + Impl::MirrorViewType::is_same_memspace>::type* = + nullptr) { (void)name; + fence(); // same behavior as deep_copy(src, src) return src; } @@ -3427,7 +3579,8 @@ create_mirror_view_and_copy( !Impl::MirrorViewType::is_same_memspace>::type* = 0) { using Mirror = typename Impl::MirrorViewType::view_type; std::string label = name.empty() ? src.label() : name; - auto mirror = Mirror(ViewAllocateWithoutInitializing(label), src.layout()); + auto mirror = typename Mirror::non_const_type{ + ViewAllocateWithoutInitializing(label), src.layout()}; deep_copy(mirror, src); return mirror; } @@ -3439,7 +3592,8 @@ typename Impl::MirrorViewType::view_type create_mirror_view( const Space&, const Kokkos::View& src, Kokkos::Impl::WithoutInitializing_t, typename std::enable_if< - Impl::MirrorViewType::is_same_memspace>::type* = 0) { + Impl::MirrorViewType::is_same_memspace>::type* = + nullptr) { return src; } diff --git a/lib/kokkos/core/src/Kokkos_Core.hpp b/lib/kokkos/core/src/Kokkos_Core.hpp index 7661efeca7954ecefb441bdcb2fb5127f21b628b..8392f0f3e56677fc3e7d7cc2d30c60973c2fb131 100644 --- a/lib/kokkos/core/src/Kokkos_Core.hpp +++ b/lib/kokkos/core/src/Kokkos_Core.hpp @@ -58,13 +58,9 @@ #include #endif -//#if defined( KOKKOS_ENABLE_OPENMPTARGET ) +#if defined(KOKKOS_ENABLE_OPENMPTARGET) #include #include -//#endif - -#if defined(KOKKOS_ENABLE_QTHREADS) -#include #endif #if defined(KOKKOS_ENABLE_HPX) @@ -82,6 +78,9 @@ #if defined(KOKKOS_ENABLE_ROCM) #include #endif +#if defined(KOKKOS_ENABLE_HIP) +#include +#endif #include #include @@ -93,9 +92,7 @@ #include #include #include - #include - #include #include #include @@ -123,7 +120,15 @@ struct InitArguments { void initialize(int& narg, char* arg[]); -void initialize(const InitArguments& args = InitArguments()); +void initialize(InitArguments args = InitArguments()); + +namespace Impl { + +void pre_initialize(const InitArguments& args); + +void post_initialize(const InitArguments& args); + +} // namespace Impl bool is_initialized() noexcept; diff --git a/lib/kokkos/core/src/Kokkos_Core_fwd.hpp b/lib/kokkos/core/src/Kokkos_Core_fwd.hpp index 5b89dc51ca47b81d149eafefc60c9dcf75369dfc..4828a95775188938710cb4fd5f2ee0511b65f90f 100644 --- a/lib/kokkos/core/src/Kokkos_Core_fwd.hpp +++ b/lib/kokkos/core/src/Kokkos_Core_fwd.hpp @@ -99,10 +99,6 @@ class HBWSpace; /// Memory space for hbw_malloc from memkind (e.g. for KNL class Serial; ///< Execution space main process on CPU. #endif -#if defined(KOKKOS_ENABLE_QTHREADS) -class Qthreads; ///< Execution space with Qthreads back-end. -#endif - #if defined(KOKKOS_ENABLE_HPX) namespace Experimental { class HPX; ///< Execution space with HPX back-end. @@ -124,13 +120,6 @@ class OpenMPTargetSpace; } // namespace Experimental #endif -#if defined(KOKKOS_ENABLE_CUDA) -class CudaSpace; ///< Memory space on Cuda GPU -class CudaUVMSpace; ///< Memory space on Cuda GPU with UVM -class CudaHostPinnedSpace; ///< Memory space on Host accessible to Cuda GPU -class Cuda; ///< Execution space for Cuda GPU -#endif - #if defined(KOKKOS_ENABLE_ROCM) namespace Experimental { class ROCmSpace; ///< Memory space on ROCm GPU @@ -138,11 +127,20 @@ class ROCm; ///< Execution space for ROCm GPU } // namespace Experimental #endif +#if defined(KOKKOS_ENABLE_HIP) +namespace Experimental { +class HIPSpace; ///< Memory space on HIP GPU +class HIP; ///< Execution space for HIP GPU +} // namespace Experimental +#endif + template struct Device; } // namespace Kokkos +#include "Cuda/Kokkos_Cuda_fwd.hpp" + //---------------------------------------------------------------------------- // Set the default execution space. @@ -157,44 +155,42 @@ namespace Kokkos { typedef Cuda DefaultExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) typedef Experimental::OpenMPTarget DefaultExecutionSpace; +#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) +typedef Experimental::HIP DefaultExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) typedef Experimental::ROCm DefaultExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) typedef OpenMP DefaultExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) typedef Threads DefaultExecutionSpace; -//#elif defined( KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS ) -// typedef Qthreads DefaultExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) typedef Kokkos::Experimental::HPX DefaultExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) typedef Serial DefaultExecutionSpace; #else #error \ - "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::Cuda, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, Kokkos::Threads, Kokkos::Qthreads, or Kokkos::Serial." + "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::Cuda, Kokkos::Experimental::HIP, Kokkos::Experimental::OpenMPTarget, Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." #endif #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) typedef OpenMP DefaultHostExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) typedef Threads DefaultHostExecutionSpace; -//#elif defined( KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS ) -// typedef Qthreads DefaultHostExecutionSpace; +#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) +typedef Kokkos::Experimental::HPX DefaultHostExecutionSpace; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) typedef Serial DefaultHostExecutionSpace; #elif defined(KOKKOS_ENABLE_OPENMP) typedef OpenMP DefaultHostExecutionSpace; #elif defined(KOKKOS_ENABLE_THREADS) typedef Threads DefaultHostExecutionSpace; -//#elif defined( KOKKOS_ENABLE_QTHREADS ) -// typedef Qthreads DefaultHostExecutionSpace; #elif defined(KOKKOS_ENABLE_HPX) typedef Kokkos::Experimental::HPX DefaultHostExecutionSpace; #elif defined(KOKKOS_ENABLE_SERIAL) typedef Serial DefaultHostExecutionSpace; #else #error \ - "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::OpenMP, Kokkos::Threads, Kokkos::Qthreads, or Kokkos::Serial." + "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::OpenMP, Kokkos::Threads, Kokkos::Experimental::HPX, or Kokkos::Serial." #endif } // namespace Kokkos @@ -213,6 +209,8 @@ namespace Impl { typedef Kokkos::CudaSpace ActiveExecutionMemorySpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU) typedef Kokkos::HostSpace ActiveExecutionMemorySpace; +#elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) +typedef Kokkos::Experimental::HIPSpace ActiveExecutionMemorySpace; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) typedef Kokkos::HostSpace ActiveExecutionMemorySpace; #else diff --git a/lib/kokkos/core/src/Kokkos_Crs.hpp b/lib/kokkos/core/src/Kokkos_Crs.hpp index f57863263b6120ca2ef11bd6c4eddc80d29b79e1..3725ba2604ad40e7912b6afea92ccb629206554e 100644 --- a/lib/kokkos/core/src/Kokkos_Crs.hpp +++ b/lib/kokkos/core/src/Kokkos_Crs.hpp @@ -105,12 +105,12 @@ class Crs { /* * Default Constructors, operators and destructor */ - KOKKOS_FUNCTION Crs() = default; - KOKKOS_FUNCTION Crs(Crs const&) = default; - KOKKOS_FUNCTION Crs(Crs&&) = default; - KOKKOS_FUNCTION Crs& operator=(Crs const&) = default; - KOKKOS_FUNCTION Crs& operator=(Crs&&) = default; - KOKKOS_FUNCTION ~Crs() = default; + KOKKOS_DEFAULTED_FUNCTION Crs() = default; + KOKKOS_DEFAULTED_FUNCTION Crs(Crs const&) = default; + KOKKOS_DEFAULTED_FUNCTION Crs(Crs&&) = default; + KOKKOS_DEFAULTED_FUNCTION Crs& operator=(Crs const&) = default; + KOKKOS_DEFAULTED_FUNCTION Crs& operator=(Crs&&) = default; + KOKKOS_DEFAULTED_FUNCTION ~Crs() = default; /** \brief Assign to a view of the rhs array. * If the old view is the last view @@ -313,7 +313,7 @@ struct CountAndFillBase; template struct CountAndFillBase { - using data_type = typename CrsType::size_type; + using data_type = typename CrsType::data_type; using size_type = typename CrsType::size_type; using row_map_type = typename CrsType::row_map_type; using counts_type = row_map_type; @@ -343,7 +343,7 @@ struct CountAndFillBase { #if defined(KOKKOS_ENABLE_CUDA) template struct CountAndFillBase { - using data_type = typename CrsType::size_type; + using data_type = typename CrsType::data_type; using size_type = typename CrsType::size_type; using row_map_type = typename CrsType::row_map_type; using counts_type = row_map_type; diff --git a/lib/kokkos/core/src/Kokkos_Cuda.hpp b/lib/kokkos/core/src/Kokkos_Cuda.hpp index ad62ecf38357c2a8de9d2e99fb52f73ea0e770f3..ed51e95778f93ab4ce0e835a9ca5afba0939ea7a 100644 --- a/lib/kokkos/core/src/Kokkos_Cuda.hpp +++ b/lib/kokkos/core/src/Kokkos_Cuda.hpp @@ -199,8 +199,7 @@ class Cuda { //-------------------------------------------------- //! \name Cuda space instances - KOKKOS_INLINE_FUNCTION - ~Cuda() {} + ~Cuda() = default; Cuda(); @@ -258,6 +257,7 @@ class Cuda { cudaStream_t cuda_stream() const; int cuda_device() const; + const cudaDeviceProp& cuda_device_prop() const; //@} //-------------------------------------------------------------------------- @@ -267,11 +267,21 @@ class Cuda { inline Impl::CudaInternal* impl_internal_space_instance() const { return m_space_instance; } + uint32_t impl_instance_id() const noexcept { return 0; } private: Impl::CudaInternal* m_space_instance; }; +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + /// \brief An ID to differentiate (for example) Serial from OpenMP in Tooling + static constexpr DeviceType id = DeviceType::Cuda; +}; +} // namespace Experimental +} // namespace Profiling } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_CudaSpace.hpp b/lib/kokkos/core/src/Kokkos_CudaSpace.hpp index 34db47f1c0096aac753b2f9b3c9af66740377bf6..53e3b7778641d45af2d43b6fd08db499d012e370 100644 --- a/lib/kokkos/core/src/Kokkos_CudaSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_CudaSpace.hpp @@ -166,7 +166,7 @@ class CudaUVMSpace { /*--------------------------------*/ /** \brief CudaUVMSpace specific routine */ - static int number_of_allocations(); + KOKKOS_DEPRECATED static int number_of_allocations(); /*--------------------------------*/ @@ -401,6 +401,126 @@ struct DeepCopy { DeepCopy(const Cuda&, void* dst, const void* src, size_t); }; +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + DeepCopy(const Cuda& instance, void* dst, const void* src, size_t n) { + (void)DeepCopy(instance, dst, src, n); + } +}; + template struct DeepCopy { inline DeepCopy(void* dst, const void* src, size_t n) { @@ -640,8 +760,8 @@ struct VerifyExecutionCanAccessMemorySpace struct VerifyExecutionCanAccessMemorySpace< - typename enable_if::value, - Kokkos::CudaSpace>::type, + typename std::enable_if::value, + Kokkos::CudaSpace>::type, OtherSpace> { enum { value = false }; KOKKOS_INLINE_FUNCTION static void verify(void) { diff --git a/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp b/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp index bf3a134b64b3e89d9e8f3a1650cd1cb2ef7c1794..11910138d3322a8cfad4266e2323bcfbd0d8dcc7 100644 --- a/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp +++ b/lib/kokkos/core/src/Kokkos_ExecPolicy.hpp @@ -193,6 +193,7 @@ class RangePolicy : public Impl::PolicyTraits { inline void set(const ChunkSize& chunksize, Args... args) { m_granularity = chunksize.value; m_granularity_mask = m_granularity - 1; + set(args...); } public: @@ -210,8 +211,8 @@ class RangePolicy : public Impl::PolicyTraits { private: /** \brief finalize chunk_size if it was set to AUTO*/ inline void set_auto_chunk_size() { - typename traits::index_type concurrency = - traits::execution_space::concurrency(); + int64_t concurrency = + static_cast(traits::execution_space::concurrency()); if (concurrency == 0) concurrency = 1; if (m_granularity > 0) { @@ -219,12 +220,14 @@ class RangePolicy : public Impl::PolicyTraits { Kokkos::abort("RangePolicy blocking granularity must be power of two"); } - member_type new_chunk_size = 1; - while (new_chunk_size * 100 * concurrency < m_end - m_begin) + int64_t new_chunk_size = 1; + while (new_chunk_size * 100 * concurrency < + static_cast(m_end - m_begin)) new_chunk_size *= 2; if (new_chunk_size < 128) { new_chunk_size = 1; - while ((new_chunk_size * 40 * concurrency < m_end - m_begin) && + while ((new_chunk_size * 40 * concurrency < + static_cast(m_end - m_begin)) && (new_chunk_size < 128)) new_chunk_size *= 2; } @@ -483,7 +486,6 @@ struct ScratchRequest { level = level_; per_team = 0; per_thread = thread_value.value; - ; } inline ScratchRequest(const int& level_, const Impl::PerTeamValue& team_value, @@ -491,7 +493,6 @@ struct ScratchRequest { level = level_; per_team = team_value.value; per_thread = thread_value.value; - ; } inline ScratchRequest(const int& level_, @@ -500,7 +501,6 @@ struct ScratchRequest { level = level_; per_team = team_value.value; per_thread = thread_value.value; - ; } }; diff --git a/lib/kokkos/core/src/Kokkos_Extents.hpp b/lib/kokkos/core/src/Kokkos_Extents.hpp index 2e07e8b76b69e6c2fa2932d57dc3c4941cb946ce..856adf9cf9744d8c6ce03cfb0f13ac5bb3277efd 100644 --- a/lib/kokkos/core/src/Kokkos_Extents.hpp +++ b/lib/kokkos/core/src/Kokkos_Extents.hpp @@ -97,36 +97,39 @@ struct _parse_impl { // backwards template struct _parse_impl< - T*, Experimental::Extents, + T*, Kokkos::Experimental::Extents, typename std::enable_if<_all_remaining_extents_dynamic::value>::type> - : _parse_impl> {}; + : _parse_impl> { +}; // int*(*[x])[y] should still work also (meaning int[][x][][y]) template -struct _parse_impl, - typename std::enable_if< - not _all_remaining_extents_dynamic::value>::type> { +struct _parse_impl< + T*, Kokkos::Experimental::Extents, + typename std::enable_if::value>::type> { using _next = Kokkos::Experimental::AppendExtent< - typename _parse_impl, void>::type, - Experimental::dynamic_extent>; + typename _parse_impl, + void>::type, + Kokkos::Experimental::dynamic_extent>; using type = typename _next::type; }; template -struct _parse_impl, void> - : _parse_impl, void> + : _parse_impl< + T, Kokkos::Experimental::Extents // TODO @pedantic this // could be a // narrowing cast - > {}; + > {}; } // end namespace _parse_view_extents_impl template struct ParseViewExtents { using type = typename _parse_view_extents_impl ::_parse_impl< - DataType, Experimental::Extents<>>::type; + DataType, Kokkos::Experimental::Extents<>>::type; }; template @@ -135,7 +138,7 @@ struct ApplyExtent { }; template -struct ApplyExtent { +struct ApplyExtent { using type = ValueType*; }; @@ -150,15 +153,17 @@ struct ApplyExtent { }; template -struct ApplyExtent { +struct ApplyExtent { using type = - typename ApplyExtent::type*; + typename ApplyExtent::type*; }; template -struct ApplyExtent { +struct ApplyExtent { using type = - typename ApplyExtent::type[N]; + typename ApplyExtent::type[N]; }; } // end namespace Impl diff --git a/lib/kokkos/core/src/Kokkos_Future.hpp b/lib/kokkos/core/src/Kokkos_Future.hpp index 15a5d39aad989a89f0897be93fafa983863028f7..1995e2609a8faf978597dd9c0898db9646e97960 100644 --- a/lib/kokkos/core/src/Kokkos_Future.hpp +++ b/lib/kokkos/core/src/Kokkos_Future.hpp @@ -296,7 +296,8 @@ class BasicFuture { task_base* m_task; - KOKKOS_INLINE_FUNCTION explicit BasicFuture(task_base* task) : m_task(0) { + KOKKOS_INLINE_FUNCTION explicit BasicFuture(task_base* task) + : m_task(nullptr) { if (task) queue_type::assign(&m_task, task); } @@ -306,7 +307,7 @@ class BasicFuture { //---------------------------------------- KOKKOS_INLINE_FUNCTION - bool is_null() const { return 0 == m_task; } + bool is_null() const { return nullptr == m_task; } KOKKOS_INLINE_FUNCTION int reference_count() const { @@ -317,7 +318,7 @@ class BasicFuture { KOKKOS_INLINE_FUNCTION void clear() { - if (m_task) queue_type::assign(&m_task, (task_base*)0); + if (m_task) queue_type::assign(&m_task, nullptr); } //---------------------------------------- @@ -332,11 +333,11 @@ class BasicFuture { KOKKOS_INLINE_FUNCTION BasicFuture(BasicFuture&& rhs) noexcept : m_task(rhs.m_task) { - rhs.m_task = 0; + rhs.m_task = nullptr; } KOKKOS_INLINE_FUNCTION - BasicFuture(const BasicFuture& rhs) : m_task(0) { + BasicFuture(const BasicFuture& rhs) : m_task(nullptr) { if (rhs.m_task) queue_type::assign(&m_task, rhs.m_task); } @@ -344,7 +345,7 @@ class BasicFuture { BasicFuture& operator=(BasicFuture&& rhs) noexcept { clear(); m_task = rhs.m_task; - rhs.m_task = 0; + rhs.m_task = nullptr; return *this; } @@ -420,13 +421,13 @@ class BasicFuture { KOKKOS_INLINE_FUNCTION int is_ready() const noexcept { - return (0 == m_task) || + return (nullptr == m_task) || (((task_base*)task_base::LockTag) == m_task->m_wait); } KOKKOS_INLINE_FUNCTION const typename Impl::TaskResult::reference_type get() const { - if (0 == m_task) { + if (nullptr == m_task) { Kokkos::abort("Kokkos:::Future::get ERROR: is_null()"); } return Impl::TaskResult::get(m_task); diff --git a/lib/kokkos/core/src/Kokkos_HBWSpace.hpp b/lib/kokkos/core/src/Kokkos_HBWSpace.hpp index c1f03f8962b0ad14788b3eb092b115478635a51f..ce36b018cf4c16580aa2aad7b468e5419e573fd0 100644 --- a/lib/kokkos/core/src/Kokkos_HBWSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_HBWSpace.hpp @@ -110,19 +110,15 @@ class HBWSpace { typedef Kokkos::OpenMP execution_space; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) typedef Kokkos::Threads execution_space; -//#elif defined( KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS ) -// typedef Kokkos::Qthreads execution_space; #elif defined(KOKKOS_ENABLE_OPENMP) typedef Kokkos::OpenMP execution_space; #elif defined(KOKKOS_ENABLE_THREADS) typedef Kokkos::Threads execution_space; -//#elif defined( KOKKOS_ENABLE_QTHREADS ) -// typedef Kokkos::Qthreads execution_space; #elif defined(KOKKOS_ENABLE_SERIAL) typedef Kokkos::Serial execution_space; #else #error \ - "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, Kokkos::Qhreads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." + "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." #endif //! This memory space preferred device_type @@ -192,7 +188,12 @@ class SharedAllocationRecord const Kokkos::Experimental::HBWSpace m_space; protected: - ~SharedAllocationRecord(); + ~SharedAllocationRecord() +#if defined( \ + KOKKOS_IMPL_INTEL_WORKAROUND_NOEXCEPT_SPECIFICATION_VIRTUAL_FUNCTION) + noexcept +#endif + ; SharedAllocationRecord() = default; SharedAllocationRecord( diff --git a/lib/kokkos/core/src/Kokkos_HIP.hpp b/lib/kokkos/core/src/Kokkos_HIP.hpp new file mode 100644 index 0000000000000000000000000000000000000000..4e9325c2d28352fcf575079f5dfac0a3807aa002 --- /dev/null +++ b/lib/kokkos/core/src/Kokkos_HIP.hpp @@ -0,0 +1,65 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIP_HPP +#define KOKKOS_HIP_HPP + +#include + +#if defined(KOKKOS_ENABLE_HIP) + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +#include +#include +#include + +#include +#include +#include +#include + +#endif +#endif diff --git a/lib/kokkos/core/src/Kokkos_HIP_Space.hpp b/lib/kokkos/core/src/Kokkos_HIP_Space.hpp new file mode 100644 index 0000000000000000000000000000000000000000..90bdb7b9130c9288fb5b63def3cc17890ce95b22 --- /dev/null +++ b/lib/kokkos/core/src/Kokkos_HIP_Space.hpp @@ -0,0 +1,758 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_HIPSPACE_HPP +#define KOKKOS_HIPSPACE_HPP + +#include + +#if defined(KOKKOS_ENABLE_HIP) + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { +namespace Experimental { +/** \brief HIP on-device memory management */ + +class HIPSpace { + public: + //! Tag this class as a kokkos memory space + using memory_space = HIPSpace; + using execution_space = Kokkos::Experimental::HIP; + using device_type = Kokkos::Device; + + using size_type = unsigned int; + + /*--------------------------------*/ + + HIPSpace(); + HIPSpace(HIPSpace&& rhs) = default; + HIPSpace(const HIPSpace& rhs) = default; + HIPSpace& operator=(HIPSpace&& rhs) = default; + HIPSpace& operator=(const HIPSpace& rhs) = default; + ~HIPSpace() = default; + + /**\brief Allocate untracked memory in the hip space */ + void* allocate(const size_t arg_alloc_size) const; + + /**\brief Deallocate untracked memory in the hip space */ + void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + + /**\brief Return Name of the MemorySpace */ + static constexpr const char* name() { return "HIP"; } + + /*--------------------------------*/ + /** \brief Error reporting for HostSpace attempt to access HIPSpace */ + static void access_error(); + static void access_error(const void* const); + + private: + int m_device; ///< Which HIP device + + friend class Kokkos::Impl::SharedAllocationRecord< + Kokkos::Experimental::HIPSpace, void>; +}; + +} // namespace Experimental + +namespace Impl { + +/// \brief Initialize lock array for arbitrary size atomics. +/// +/// Arbitrary atomics are implemented using a hash table of locks +/// where the hash value is derived from the address of the +/// object for which an atomic operation is performed. +/// This function initializes the locks to zero (unset). +void init_lock_arrays_hip_space(); + +/// \brief Retrieve the pointer to the lock array for arbitrary size atomics. +/// +/// Arbitrary atomics are implemented using a hash table of locks +/// where the hash value is derived from the address of the +/// object for which an atomic operation is performed. +/// This function retrieves the lock array pointer. +/// If the array is not yet allocated it will do so. +int* atomic_lock_array_hip_space_ptr(bool deallocate = false); + +/// \brief Retrieve the pointer to the scratch array for team and thread private +/// global memory. +/// +/// Team and Thread private scratch allocations in +/// global memory are acquired via locks. +/// This function retrieves the lock array pointer. +/// If the array is not yet allocated it will do so. +int* scratch_lock_array_hip_space_ptr(bool deallocate = false); + +/// \brief Retrieve the pointer to the scratch array for unique identifiers. +/// +/// Unique identifiers in the range 0-HIP::concurrency +/// are provided via locks. +/// This function retrieves the lock array pointer. +/// If the array is not yet allocated it will do so. +int* threadid_lock_array_hip_space_ptr(bool deallocate = false); +} // namespace Impl +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { +namespace Experimental { +/** \brief Host memory that is accessible to HIP execution space + * through HIP's host-pinned memory allocation. + */ +class HIPHostPinnedSpace { + public: + //! Tag this class as a kokkos memory space + /** \brief Memory is in HostSpace so use the HostSpace::execution_space */ + using execution_space = HostSpace::execution_space; + using memory_space = HIPHostPinnedSpace; + using device_type = Kokkos::Device; + using size_type = unsigned int; + + /*--------------------------------*/ + + HIPHostPinnedSpace(); + HIPHostPinnedSpace(HIPHostPinnedSpace&& rhs) = default; + HIPHostPinnedSpace(const HIPHostPinnedSpace& rhs) = default; + HIPHostPinnedSpace& operator=(HIPHostPinnedSpace&& rhs) = default; + HIPHostPinnedSpace& operator=(const HIPHostPinnedSpace& rhs) = default; + ~HIPHostPinnedSpace() = default; + + /**\brief Allocate untracked memory in the space */ + void* allocate(const size_t arg_alloc_size) const; + + /**\brief Deallocate untracked memory in the space */ + void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + + /**\brief Return Name of the MemorySpace */ + static constexpr const char* name() { return "HIPHostPinned"; } + + /*--------------------------------*/ +}; +} // namespace Experimental +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { +namespace Impl { + +static_assert( + Kokkos::Impl::MemorySpaceAccess::assignable, + ""); + +//---------------------------------------- + +template <> +struct MemorySpaceAccess { + enum { assignable = false }; + enum { accessible = false }; + enum { deepcopy = true }; +}; + +template <> +struct MemorySpaceAccess { + // HostSpace::execution_space == HIPHostPinnedSpace::execution_space + enum { assignable = true }; + enum { accessible = true }; + enum { deepcopy = true }; +}; + +//---------------------------------------- + +template <> +struct MemorySpaceAccess { + enum { assignable = false }; + enum { accessible = false }; + enum { deepcopy = true }; +}; + +template <> +struct MemorySpaceAccess { + // HIPSpace::execution_space != HIPHostPinnedSpace::execution_space + enum { assignable = false }; + enum { accessible = true }; // HIPSpace::execution_space + enum { deepcopy = true }; +}; + +//---------------------------------------- +// HIPHostPinnedSpace::execution_space == HostSpace::execution_space +// HIPHostPinnedSpace accessible to both HIP and Host + +template <> +struct MemorySpaceAccess { + enum { assignable = false }; // Cannot access from HIP + enum { accessible = true }; // HIPHostPinnedSpace::execution_space + enum { deepcopy = true }; +}; + +template <> +struct MemorySpaceAccess { + enum { assignable = false }; // Cannot access from Host + enum { accessible = false }; + enum { deepcopy = true }; +}; + +}; // namespace Impl +//---------------------------------------- + +} // namespace Kokkos + +/*--------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------*/ + +namespace Kokkos { +namespace Impl { + +void DeepCopyAsyncHIP(void* dst, const void* src, size_t n); + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::HIP&, void* dst, const void* src, + size_t); +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::HIP&, void* dst, const void* src, + size_t); +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::HIP&, void* dst, const void* src, + size_t); +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy( + dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::HIP&, void* dst, const void* src, + size_t); +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::HIP&, void* dst, const void* src, + size_t); +}; + +template <> +struct DeepCopy { + DeepCopy(void* dst, const void* src, size_t); + DeepCopy(const Kokkos::Experimental::HIP&, void* dst, const void* src, + size_t); +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; + +template +struct DeepCopy { + inline DeepCopy(void* dst, const void* src, size_t n) { + (void)DeepCopy(dst, src, n); + } + + inline DeepCopy(const ExecutionSpace& exec, void* dst, const void* src, + size_t n) { + exec.fence(); + DeepCopyAsyncHIP(dst, src, n); + } +}; +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +/** Running in HIPSpace attempting to access HostSpace: error */ +template <> +struct VerifyExecutionCanAccessMemorySpace { + enum { value = false }; + KOKKOS_INLINE_FUNCTION static void verify(void) { + Kokkos::abort("HIP code attempted to access HostSpace memory"); + } + + KOKKOS_INLINE_FUNCTION static void verify(const void*) { + Kokkos::abort("HIP code attempted to access HostSpace memory"); + } +}; + +/** Running in HIPSpace accessing HIPHostPinnedSpace: ok */ +template <> +struct VerifyExecutionCanAccessMemorySpace< + Kokkos::Experimental::HIPSpace, Kokkos::Experimental::HIPHostPinnedSpace> { + enum { value = true }; + KOKKOS_INLINE_FUNCTION static void verify(void) {} + KOKKOS_INLINE_FUNCTION static void verify(const void*) {} +}; + +/** Running in HIPSpace attempting to access an unknown space: error */ +template +struct VerifyExecutionCanAccessMemorySpace< + typename std::enable_if< + !std::is_same::value, + Kokkos::Experimental::HIPSpace>::type, + OtherSpace> { + enum { value = false }; + KOKKOS_INLINE_FUNCTION static void verify(void) { + Kokkos::abort("HIP code attempted to access unknown Space memory"); + } + + KOKKOS_INLINE_FUNCTION static void verify(const void*) { + Kokkos::abort("HIP code attempted to access unknown Space memory"); + } +}; + +//---------------------------------------------------------------------------- +/** Running in HostSpace attempting to access HIPSpace */ +template <> +struct VerifyExecutionCanAccessMemorySpace { + enum { value = false }; + inline static void verify(void) { + Kokkos::Experimental::HIPSpace::access_error(); + } + inline static void verify(const void* p) { + Kokkos::Experimental::HIPSpace::access_error(p); + } +}; + +/** Running in HostSpace accessing HIPHostPinnedSpace is OK */ +template <> +struct VerifyExecutionCanAccessMemorySpace< + Kokkos::HostSpace, Kokkos::Experimental::HIPHostPinnedSpace> { + enum { value = true }; + KOKKOS_INLINE_FUNCTION static void verify(void) {} + KOKKOS_INLINE_FUNCTION static void verify(const void*) {} +}; +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template <> +class SharedAllocationRecord + : public SharedAllocationRecord { + private: + typedef SharedAllocationRecord RecordBase; + + SharedAllocationRecord(const SharedAllocationRecord&) = delete; + SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; + + static void deallocate(RecordBase*); + +#ifdef KOKKOS_DEBUG + static RecordBase s_root_record; +#endif + + const Kokkos::Experimental::HIPSpace m_space; + + protected: + ~SharedAllocationRecord(); + + SharedAllocationRecord( + const Kokkos::Experimental::HIPSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size, + const RecordBase::function_type arg_dealloc = &deallocate); + + public: + std::string get_label() const; + + static SharedAllocationRecord* allocate( + const Kokkos::Experimental::HIPSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size); + + /**\brief Allocate tracked memory in the space */ + static void* allocate_tracked(const Kokkos::Experimental::HIPSpace& arg_space, + const std::string& arg_label, + const size_t arg_alloc_size); + + /**\brief Reallocate tracked memory in the space */ + static void* reallocate_tracked(void* const arg_alloc_ptr, + const size_t arg_alloc_size); + + /**\brief Deallocate tracked memory in the space */ + static void deallocate_tracked(void* const arg_alloc_ptr); + + static SharedAllocationRecord* get_record(void* arg_alloc_ptr); + + static void print_records(std::ostream&, + const Kokkos::Experimental::HIPSpace&, + bool detail = false); +}; + +template <> +class SharedAllocationRecord + : public SharedAllocationRecord { + private: + typedef SharedAllocationRecord RecordBase; + + SharedAllocationRecord(const SharedAllocationRecord&) = delete; + SharedAllocationRecord& operator=(const SharedAllocationRecord&) = delete; + + static void deallocate(RecordBase*); + +#ifdef KOKKOS_DEBUG + static RecordBase s_root_record; +#endif + + const Kokkos::Experimental::HIPHostPinnedSpace m_space; + + protected: + ~SharedAllocationRecord(); + SharedAllocationRecord() : RecordBase(), m_space() {} + + SharedAllocationRecord( + const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size, + const RecordBase::function_type arg_dealloc = &deallocate); + + public: + std::string get_label() const; + + static SharedAllocationRecord* allocate( + const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size); + /**\brief Allocate tracked memory in the space */ + static void* allocate_tracked( + const Kokkos::Experimental::HIPHostPinnedSpace& arg_space, + const std::string& arg_label, const size_t arg_alloc_size); + + /**\brief Reallocate tracked memory in the space */ + static void* reallocate_tracked(void* const arg_alloc_ptr, + const size_t arg_alloc_size); + + /**\brief Deallocate tracked memory in the space */ + static void deallocate_tracked(void* const arg_alloc_ptr); + + static SharedAllocationRecord* get_record(void* arg_alloc_ptr); + + static void print_records(std::ostream&, + const Kokkos::Experimental::HIPHostPinnedSpace&, + bool detail = false); +}; +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Experimental { +namespace Impl { +class HIPInternal; +} +/// \class HIP +/// \brief Kokkos device for multicore processors in the host memory space. +class HIP { + public: + //------------------------------------ + //! \name Type declarations that all Kokkos devices must provide. + //@{ + + //! Tag this class as a kokkos execution space + using execution_space = HIP; + using memory_space = HIPSpace; + using device_type = Kokkos::Device; + + using array_layout = LayoutLeft; + using size_type = HIPSpace::size_type; + + using scratch_memory_space = ScratchMemorySpace; + + ~HIP() = default; + HIP(); + // explicit HIP( const int instance_id ); + + HIP(HIP&&) = default; + HIP(const HIP&) = default; + HIP& operator=(HIP&&) = default; + HIP& operator=(const HIP&) = default; + + //@} + //------------------------------------ + //! \name Functions that all Kokkos devices must implement. + //@{ + + KOKKOS_INLINE_FUNCTION static int in_parallel() { +#if defined(__HIP_ARCH__) + return true; +#else + return false; +#endif + } + + /** \brief Wait until all dispatched functors complete. A noop for OpenMP. */ + static void impl_static_fence(); + void fence() const; + + /// \brief Print configuration information to the given output stream. + static void print_configuration(std::ostream&, const bool detail = false); + + /// \brief Free any resources being consumed by the device. + static void impl_finalize(); + + /** \brief Initialize the device. + * + */ + struct SelectDevice { + int hip_device_id; + SelectDevice() : hip_device_id(0) {} + explicit SelectDevice(int id) : hip_device_id(id) {} + }; + + int hip_device() const; + + static void impl_initialize(const SelectDevice = SelectDevice()); + + static int impl_is_initialized(); + + // static size_type device_arch(); + + // static size_type detect_device_count(); + + static int concurrency(); + static const char* name(); + + inline Impl::HIPInternal* impl_internal_space_instance() const { + return m_space_instance; + } + + uint32_t impl_instance_id() const noexcept { return 0; } + + private: + Impl::HIPInternal* m_space_instance; +}; +} // namespace Experimental +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + static constexpr DeviceType id = DeviceType::HIP; +}; +} // namespace Experimental +} // namespace Profiling +} // namespace Kokkos + +namespace Kokkos { +namespace Impl { + +template <> +struct MemorySpaceAccess { + enum { assignable = false }; + enum { accessible = true }; + enum { deepcopy = false }; +}; + +template <> +struct VerifyExecutionCanAccessMemorySpace< + Kokkos::Experimental::HIP::memory_space, + Kokkos::Experimental::HIP::scratch_memory_space> { + enum { value = true }; + KOKKOS_INLINE_FUNCTION static void verify(void) {} + KOKKOS_INLINE_FUNCTION static void verify(const void*) {} +}; + +template <> +struct VerifyExecutionCanAccessMemorySpace< + Kokkos::HostSpace, Kokkos::Experimental::HIP::scratch_memory_space> { + enum { value = false }; + inline static void verify(void) { + Kokkos::Experimental::HIPSpace::access_error(); + } + inline static void verify(const void* p) { + Kokkos::Experimental::HIPSpace::access_error(p); + } +}; + +} // namespace Impl +} // namespace Kokkos + +#endif /* #if defined( KOKKOS_ENABLE_HIP ) */ +#endif /* #define KOKKOS_HIPSPACE_HPP */ diff --git a/lib/kokkos/core/src/Kokkos_HPX.hpp b/lib/kokkos/core/src/Kokkos_HPX.hpp index 46101c824f24e6a62512a9a927b776b67ab61e6f..10354635c5857952b751267881eca0a7f5b2043a 100644 --- a/lib/kokkos/core/src/Kokkos_HPX.hpp +++ b/lib/kokkos/core/src/Kokkos_HPX.hpp @@ -83,6 +83,7 @@ #include #include #include +#include #include #include @@ -194,6 +195,7 @@ class HPX { const bool /* verbose */ = false) { std::cout << "HPX backend" << std::endl; } + uint32_t impl_instance_id() const noexcept { return 0; } static bool in_parallel(HPX const & = HPX()) noexcept { return false; } static void impl_static_fence(HPX const & = HPX()) @@ -228,8 +230,8 @@ class HPX { } template - static void partition_master(F const &f, int requested_num_partitions = 0, - int requested_partition_size = 0) { + static void partition_master(F const &, int requested_num_partitions = 0, + int = 0) { if (requested_num_partitions > 1) { Kokkos::abort( "Kokkos::Experimental::HPX::partition_master: can't partition an " @@ -297,6 +299,15 @@ class HPX { }; } // namespace Experimental +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + constexpr static DeviceType id = DeviceType::HPX; +}; +} // namespace Experimental +} // namespace Profiling + namespace Impl { template inline void dispatch_execute_task(Closure *closure) { @@ -462,7 +473,7 @@ struct HPXTeamMember { template KOKKOS_INLINE_FUNCTION typename std::enable_if::value>::type - team_reduce(const ReducerType &reducer) const {} + team_reduce(const ReducerType &) const {} template KOKKOS_INLINE_FUNCTION Type @@ -590,6 +601,11 @@ class TeamPolicyInternal template friend class TeamPolicyInternal; + const typename traits::execution_space &space() const { + static typename traits::execution_space m_space; + return m_space; + } + template TeamPolicyInternal(const TeamPolicyInternal &p) { @@ -612,8 +628,7 @@ class TeamPolicyInternal } TeamPolicyInternal(const typename traits::execution_space &, - int league_size_request, - const Kokkos::AUTO_t &team_size_request, + int league_size_request, const Kokkos::AUTO_t &, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, @@ -629,8 +644,7 @@ class TeamPolicyInternal init(league_size_request, team_size_request); } - TeamPolicyInternal(int league_size_request, - const Kokkos::AUTO_t &team_size_request, + TeamPolicyInternal(int league_size_request, const Kokkos::AUTO_t &, int /* vector_length_request */ = 1) : m_team_scratch_size{0, 0}, m_thread_scratch_size{0, 0}, @@ -1169,7 +1183,7 @@ class ParallelReduce, ReducerType, const ViewType &arg_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void *>::type = NULL) + void *>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -1359,7 +1373,7 @@ class ParallelReduce, ReducerType, const ViewType &arg_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void *>::type = NULL) + void *>::type = nullptr) : m_functor(arg_functor), m_mdr_policy(arg_policy), m_policy(Policy(0, m_mdr_policy.m_num_tiles).set_chunk_size(1)), @@ -1990,7 +2004,7 @@ class ParallelReduce, const ViewType &arg_result, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void *>::type = NULL) + void *>::type = nullptr) : m_functor(arg_functor), m_league(arg_policy.league_size()), m_policy(arg_policy), @@ -2241,28 +2255,28 @@ KOKKOS_INLINE_FUNCTION void parallel_scan( template KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct &single_struct, + const Impl::VectorSingleStruct &, const FunctorType &lambda) { lambda(); } template KOKKOS_INLINE_FUNCTION void single( - const Impl::ThreadSingleStruct &single_struct, + const Impl::ThreadSingleStruct &, const FunctorType &lambda) { lambda(); } template KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct &single_struct, + const Impl::VectorSingleStruct &, const FunctorType &lambda, ValueType &val) { lambda(val); } template KOKKOS_INLINE_FUNCTION void single( - const Impl::ThreadSingleStruct &single_struct, + const Impl::ThreadSingleStruct &, const FunctorType &lambda, ValueType &val) { lambda(val); } diff --git a/lib/kokkos/core/src/Kokkos_HostSpace.hpp b/lib/kokkos/core/src/Kokkos_HostSpace.hpp index c1b842c1c4a743eb7a85a9c698032c39be0e7715..5bc50c7ff086a3d0ab972a9dbdbea9432788ceda 100644 --- a/lib/kokkos/core/src/Kokkos_HostSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_HostSpace.hpp @@ -118,21 +118,17 @@ class HostSpace { typedef Kokkos::Threads execution_space; #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) typedef Kokkos::Experimental::HPX execution_space; -//#elif defined( KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS ) -// typedef Kokkos::Qthreads execution_space; #elif defined(KOKKOS_ENABLE_OPENMP) typedef Kokkos::OpenMP execution_space; #elif defined(KOKKOS_ENABLE_THREADS) typedef Kokkos::Threads execution_space; -//#elif defined( KOKKOS_ENABLE_QTHREADS ) -// typedef Kokkos::Qthreads execution_space; #elif defined(KOKKOS_ENABLE_HPX) typedef Kokkos::Experimental::HPX execution_space; #elif defined(KOKKOS_ENABLE_SERIAL) typedef Kokkos::Serial execution_space; #else #error \ - "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, Kokkos::Qthreads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." + "At least one of the following host execution spaces must be defined: Kokkos::OpenMP, Kokkos::Threads, or Kokkos::Serial. You might be seeing this message if you disabled the Kokkos::Serial device explicitly using the Kokkos_ENABLE_Serial:BOOL=OFF CMake option, but did not enable any of the other host execution space devices." #endif //! This memory space preferred device_type @@ -248,7 +244,12 @@ class SharedAllocationRecord const Kokkos::HostSpace m_space; protected: - ~SharedAllocationRecord(); + ~SharedAllocationRecord() +#if defined( \ + KOKKOS_IMPL_INTEL_WORKAROUND_NOEXCEPT_SPECIFICATION_VIRTUAL_FUNCTION) + noexcept +#endif + ; SharedAllocationRecord() = default; SharedAllocationRecord( @@ -267,6 +268,9 @@ class SharedAllocationRecord #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); #else + (void)arg_space; + (void)arg_label; + (void)arg_alloc_size; return (SharedAllocationRecord*)0; #endif } diff --git a/lib/kokkos/core/src/Kokkos_Macros.hpp b/lib/kokkos/core/src/Kokkos_Macros.hpp index 5649d12e97fbf187b24d8a48554f5848dcd34065..00a07bdcf9d63621c9d3edcd015b1c64a70d0984 100644 --- a/lib/kokkos/core/src/Kokkos_Macros.hpp +++ b/lib/kokkos/core/src/Kokkos_Macros.hpp @@ -50,7 +50,6 @@ * * KOKKOS_ENABLE_CUDA Kokkos::Cuda execution and memory spaces * KOKKOS_ENABLE_THREADS Kokkos::Threads execution space - * KOKKOS_ENABLE_QTHREADS Kokkos::Qthreads execution space * KOKKOS_ENABLE_HPX Kokkos::Experimental::HPX execution space * KOKKOS_ENABLE_OPENMP Kokkos::OpenMP execution space * KOKKOS_ENABLE_OPENMPTARGET Kokkos::Experimental::OpenMPTarget @@ -80,6 +79,7 @@ * KOKKOS_COMPILER_APPLECC * KOKKOS_COMPILER_CLANG * KOKKOS_COMPILER_PGI + * KOKKOS_COMPILER_MSVC * * Macros for which compiler extension to use for atomics on intrinsice types * @@ -99,17 +99,17 @@ //---------------------------------------------------------------------------- -#if defined(KOKKOS_ENABLE_SERIAL) || defined(KOKKOS_ENABLE_THREADS) || \ - defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_QTHREADS) || \ - defined(KOKKOS_ENABLE_HPX) || defined(KOKKOS_ENABLE_ROCM) || \ - defined(KOKKOS_ENABLE_OPENMPTARGET) +#if defined(KOKKOS_ENABLE_SERIAL) || defined(KOKKOS_ENABLE_THREADS) || \ + defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_HPX) || \ + defined(KOKKOS_ENABLE_ROCM) || defined(KOKKOS_ENABLE_OPENMPTARGET) || \ + defined(KOKKOS_ENABLE_HIP) #define KOKKOS_INTERNAL_ENABLE_NON_CUDA_BACKEND #endif -#if !defined(KOKKOS_ENABLE_THREADS) && !defined(KOKKOS_ENABLE_CUDA) && \ - !defined(KOKKOS_ENABLE_OPENMP) && !defined(KOKKOS_ENABLE_QTHREADS) && \ - !defined(KOKKOS_ENABLE_HPX) && !defined(KOKKOS_ENABLE_ROCM) && \ - !defined(KOKKOS_ENABLE_OPENMPTARGET) +#if !defined(KOKKOS_ENABLE_THREADS) && !defined(KOKKOS_ENABLE_CUDA) && \ + !defined(KOKKOS_ENABLE_OPENMP) && !defined(KOKKOS_ENABLE_HPX) && \ + !defined(KOKKOS_ENABLE_ROCM) && !defined(KOKKOS_ENABLE_OPENMPTARGET) && \ + !defined(KOKKOS_ENABLE_HIP) #define KOKKOS_INTERNAL_NOT_PARALLEL #endif @@ -131,37 +131,17 @@ #error "#include did not define CUDA_VERSION." #endif -#if (CUDA_VERSION < 7000) -// CUDA supports C++11 in device code starting with version 7.0. -// This includes auto type and device code internal lambdas. -#error "Cuda version 7.0 or greater required." -#endif - #if defined(__CUDA_ARCH__) && (__CUDA_ARCH__ < 300) // Compiling with CUDA compiler for device code. #error "Cuda device capability >= 3.0 is required." #endif #ifdef KOKKOS_ENABLE_CUDA_LAMBDA -#if (CUDA_VERSION < 7050) -// CUDA supports C++11 lambdas generated in host code to be given -// to the device starting with version 7.5. But the release candidate (7.5.6) -// still identifies as 7.0. -#error "Cuda version 7.5 or greater required for host-to-device Lambda support." -#endif - -#if (CUDA_VERSION < 8000) && defined(__NVCC__) -#define KOKKOS_LAMBDA [=] __device__ -#if defined(KOKKOS_INTERNAL_ENABLE_NON_CUDA_BACKEND) -#undef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA -#endif -#else #define KOKKOS_LAMBDA [=] __host__ __device__ #if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) #define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ #endif -#endif #if defined(__NVCC__) #define KOKKOS_IMPL_NEED_FUNCTOR_WRAPPER @@ -170,12 +150,6 @@ #undef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA #endif // !defined(KOKKOS_ENABLE_CUDA_LAMBDA) -#if (9000 <= CUDA_VERSION) && (CUDA_VERSION < 10000) -// CUDA 9 introduced an incorrect warning, -// see https://github.com/kokkos/kokkos/issues/1470 -#define KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND -#endif - #if (10000 > CUDA_VERSION) #define KOKKOS_ENABLE_PRE_CUDA_10_DEPRECATION_API #endif @@ -194,6 +168,17 @@ #endif // #if defined( KOKKOS_ENABLE_CUDA ) && defined( __CUDACC__ ) +#if defined(KOKKOS_ENABLE_HIP) + +#define KOKKOS_IMPL_HIP_CLANG_WORKAROUND + +#define HIP_ENABLE_PRINTF +#include +#include + +#define KOKKOS_LAMBDA [=] __host__ __device__ +#endif // #if defined(KOKKOS_ENABLE_HIP) + //---------------------------------------------------------------------------- // Mapping compiler built-ins to KOKKOS_COMPILER_*** macros @@ -267,6 +252,10 @@ #endif #endif +#if defined(_MSC_VER) && !defined(KOKKOS_COMPILER_INTEL) +#define KOKKOS_COMPILER_MSVC _MSC_VER +#endif + //#endif // #if !defined( __CUDA_ARCH__ ) //---------------------------------------------------------------------------- // Language info: C++, CUDA, OPENMP @@ -283,7 +272,24 @@ #else #define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline #endif -#endif // #if defined( __CUDA_ARCH__ ) +#if (CUDA_VERSION < 10000) +#define KOKKOS_DEFAULTED_FUNCTION __host__ __device__ inline +#else +#define KOKKOS_DEFAULTED_FUNCTION inline +#endif +#endif + +#if defined(KOKKOS_ENABLE_HIP) + +#define KOKKOS_FORCEINLINE_FUNCTION __device__ __host__ __forceinline__ +#define KOKKOS_INLINE_FUNCTION __device__ __host__ inline +#define KOKKOS_DEFAULTED_FUNCTION __device__ __host__ inline +#define KOKKOS_INLINE_FUNCTION_DELETED __device__ __host__ inline +#define KOKKOS_FUNCTION __device__ __host__ +#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) +#define KOKKOS_CLASS_LAMBDA [ =, *this ] __host__ __device__ +#endif +#endif // #if defined( KOKKOS_ENABLE_HIP ) #if defined(KOKKOS_ENABLE_ROCM) && defined(__HCC__) @@ -291,6 +297,7 @@ #define KOKKOS_INLINE_FUNCTION __attribute__((amp, cpu)) inline #define KOKKOS_FUNCTION __attribute__((amp, cpu)) #define KOKKOS_LAMBDA [=] __attribute__((amp, cpu)) +#define KOKKOS_DEFAULTED_FUNCTION __attribute__((amp, cpu)) inline #endif #if defined(_OPENMP) @@ -355,6 +362,10 @@ #endif #endif +#if (1800 > KOKKOS_COMPILER_INTEL) +#define KOKKOS_IMPL_INTEL_WORKAROUND_NOEXCEPT_SPECIFICATION_VIRTUAL_FUNCTION +#endif + #if defined(__MIC__) // Compiling for Xeon Phi #endif @@ -470,6 +481,10 @@ #if !defined(KOKKOS_INLINE_FUNCTION_DELETED) #define KOKKOS_INLINE_FUNCTION_DELETED inline #endif + +#if !defined(KOKKOS_DEFAULTED_FUNCTION) +#define KOKKOS_DEFAULTED_FUNCTION inline +#endif //---------------------------------------------------------------------------- // Define empty macro for restrict if necessary: @@ -497,28 +512,30 @@ // There is zero or one default execution space specified. #if 1 < ((defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA) ? 1 : 0) + \ + (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) ? 1 : 0) + \ - (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) ? 1 : 0) + \ (defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) ? 1 : 0)) #error "More than one KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_* specified." #endif // If default is not specified then chose from enabled execution spaces. -// Priority: CUDA, OPENMP, THREADS, QTHREADS, HPX, SERIAL +// Priority: CUDA, HIP, ROCM, OPENMPTARGET, OPENMP, THREADS, HPX, SERIAL #if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA) +#elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMPTARGET) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS) -//#elif defined( KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS ) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX) #elif defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_SERIAL) #elif defined(KOKKOS_ENABLE_CUDA) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_CUDA +#elif defined(KOKKOS_ENABLE_HIP) +#define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP #elif defined(KOKKOS_ENABLE_ROCM) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_ROCM #elif defined(KOKKOS_ENABLE_OPENMPTARGET) @@ -527,8 +544,6 @@ #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP #elif defined(KOKKOS_ENABLE_THREADS) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS -//#elif defined( KOKKOS_ENABLE_QTHREADS ) -// #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS #elif defined(KOKKOS_ENABLE_HPX) #define KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HPX #else @@ -543,6 +558,10 @@ #elif defined(__HCC__) && defined(__HCC_ACCELERATOR__) && \ defined(KOKKOS_ENABLE_ROCM) #define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_ROCM_GPU +#elif defined(__HIPCC__) && \ + (defined(__HCC_ACCELERATOR__) || defined(__CUDA_ARCH__)) && \ + defined(KOKKOS_ENABLE_HIP) +#define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU #else #define KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST #endif @@ -557,27 +576,25 @@ #endif //---------------------------------------------------------------------------- -// If compiling with CUDA then must be using CUDA 8 or better -// and use relocateable device code to enable the task policy. -// nvcc relocatable device code option: --relocatable-device-code=true +// If compiling with CUDA, we must use relocateable device code +// to enable the task policy. -#if (defined(KOKKOS_ENABLE_CUDA)) -#if (8000 <= CUDA_VERSION) && \ - defined(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) +#if defined(KOKKOS_ENABLE_CUDA) +#if defined(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE) #define KOKKOS_ENABLE_TASKDAG #endif #else +#ifndef KOKKOS_ENABLE_HIP #define KOKKOS_ENABLE_TASKDAG #endif +#endif #if defined(KOKKOS_ENABLE_CUDA) -#if (9000 <= CUDA_VERSION) #define KOKKOS_IMPL_CUDA_VERSION_9_WORKAROUND #if (__CUDA_ARCH__) #define KOKKOS_IMPL_CUDA_SYNCWARP_NEEDS_MASK #endif #endif -#endif #define KOKKOS_INVALID_INDEX (~std::size_t(0)) @@ -622,4 +639,17 @@ #define KOKKOS_IMPL_ENABLE_CXXABI #endif +// WORKAROUND for AMD aomp which apparently defines CUDA_ARCH when building for +// AMD GPUs with OpenMP Target ??? +#if defined(__CUDA_ARCH__) && !defined(__CUDACC__) && \ + !defined(KOKKOS_ENABLE_HIP) && !defined(KOKKOS_ENABLE_CUDA) +#undef __CUDA_ARCH__ +#endif + +#if defined(KOKKOS_COMPILER_MSVC) +#define KOKKOS_THREAD_LOCAL __declspec(thread) +#else +#define KOKKOS_THREAD_LOCAL __thread +#endif + #endif // #ifndef KOKKOS_MACROS_HPP diff --git a/lib/kokkos/core/src/Kokkos_MemoryPool.hpp b/lib/kokkos/core/src/Kokkos_MemoryPool.hpp index 5228f3661206d016e14dfa94fa4b6c2c2cec4b9b..da0754470188df0801eafb26f591a34f82fbae81 100644 --- a/lib/kokkos/core/src/Kokkos_MemoryPool.hpp +++ b/lib/kokkos/core/src/Kokkos_MemoryPool.hpp @@ -257,61 +257,14 @@ class MemoryPool { //-------------------------------------------------------------------------- -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION MemoryPool(MemoryPool &&rhs) - : m_tracker(std::move(rhs.m_tracker)), - m_sb_state_array(std::move(rhs.m_sb_state_array)), - m_sb_state_size(std::move(rhs.m_sb_state_size)), - m_sb_size_lg2(std::move(rhs.m_sb_size_lg2)), - m_max_block_size_lg2(std::move(rhs.m_max_block_size_lg2)), - m_min_block_size_lg2(std::move(rhs.m_min_block_size_lg2)), - m_sb_count(std::move(rhs.m_sb_count)), - m_hint_offset(std::move(rhs.m_hint_offset)), - m_data_offset(std::move(rhs.m_data_offset)) {} - KOKKOS_INLINE_FUNCTION MemoryPool(const MemoryPool &rhs) - : m_tracker(rhs.m_tracker), - m_sb_state_array(rhs.m_sb_state_array), - m_sb_state_size(rhs.m_sb_state_size), - m_sb_size_lg2(rhs.m_sb_size_lg2), - m_max_block_size_lg2(rhs.m_max_block_size_lg2), - m_min_block_size_lg2(rhs.m_min_block_size_lg2), - m_sb_count(rhs.m_sb_count), - m_hint_offset(rhs.m_hint_offset), - m_data_offset(rhs.m_data_offset) {} - KOKKOS_INLINE_FUNCTION MemoryPool &operator=(MemoryPool &&rhs) { - m_tracker = std::move(rhs.m_tracker); - m_sb_state_array = std::move(rhs.m_sb_state_array); - m_sb_state_size = std::move(rhs.m_sb_state_size); - m_sb_size_lg2 = std::move(rhs.m_sb_size_lg2); - m_max_block_size_lg2 = std::move(rhs.m_max_block_size_lg2); - m_min_block_size_lg2 = std::move(rhs.m_min_block_size_lg2); - m_sb_count = std::move(rhs.m_sb_count); - m_hint_offset = std::move(rhs.m_hint_offset); - m_data_offset = std::move(rhs.m_data_offset); - return *this; - } - KOKKOS_INLINE_FUNCTION MemoryPool &operator=(const MemoryPool &rhs) { - m_tracker = rhs.m_tracker; - m_sb_state_array = rhs.m_sb_state_array; - m_sb_state_size = rhs.m_sb_state_size; - m_sb_size_lg2 = rhs.m_sb_size_lg2; - m_max_block_size_lg2 = rhs.m_max_block_size_lg2; - m_min_block_size_lg2 = rhs.m_min_block_size_lg2; - m_sb_count = rhs.m_sb_count; - m_hint_offset = rhs.m_hint_offset; - m_data_offset = rhs.m_data_offset; - return *this; - } -#else - KOKKOS_INLINE_FUNCTION MemoryPool(MemoryPool &&) = default; - KOKKOS_INLINE_FUNCTION MemoryPool(const MemoryPool &) = default; - KOKKOS_INLINE_FUNCTION MemoryPool &operator=(MemoryPool &&) = default; - KOKKOS_INLINE_FUNCTION MemoryPool &operator=(const MemoryPool &) = default; -#endif + KOKKOS_DEFAULTED_FUNCTION MemoryPool(MemoryPool &&) = default; + KOKKOS_DEFAULTED_FUNCTION MemoryPool(const MemoryPool &) = default; + KOKKOS_DEFAULTED_FUNCTION MemoryPool &operator=(MemoryPool &&) = default; + KOKKOS_DEFAULTED_FUNCTION MemoryPool &operator=(const MemoryPool &) = default; KOKKOS_INLINE_FUNCTION MemoryPool() : m_tracker(), - m_sb_state_array(0), + m_sb_state_array(nullptr), m_sb_state_size(0), m_sb_size_lg2(0), m_max_block_size_lg2(0), @@ -339,7 +292,7 @@ class MemoryPool { const size_t min_total_alloc_size, size_t min_block_alloc_size = 0, size_t max_block_alloc_size = 0, size_t min_superblock_size = 0) : m_tracker(), - m_sb_state_array(0), + m_sb_state_array(nullptr), m_sb_state_size(0), m_sb_size_lg2(0), m_max_block_size_lg2(0), @@ -547,9 +500,9 @@ class MemoryPool { "allocation size"); } - if (0 == alloc_size) return (void *)0; + if (0 == alloc_size) return nullptr; - void *p = 0; + void *p = nullptr; const uint32_t block_size_lg2 = get_block_size_lg2(alloc_size); @@ -590,7 +543,7 @@ class MemoryPool { int32_t sb_id = -1; - volatile uint32_t *sb_state_array = 0; + volatile uint32_t *sb_state_array = nullptr; while (attempt_limit) { int32_t hint_sb_id = -1; @@ -784,7 +737,7 @@ class MemoryPool { */ KOKKOS_INLINE_FUNCTION void deallocate(void *p, size_t /* alloc_size */) const noexcept { - if (0 == p) return; + if (nullptr == p) return; // Determine which superblock and block const ptrdiff_t d = diff --git a/lib/kokkos/core/src/Kokkos_NumericTraits.hpp b/lib/kokkos/core/src/Kokkos_NumericTraits.hpp index 666bb3326623ec84d0d8fb92edebf22e29ef602d..88040bcbaa6946fd727c2df6907131204b57ce93 100644 --- a/lib/kokkos/core/src/Kokkos_NumericTraits.hpp +++ b/lib/kokkos/core/src/Kokkos_NumericTraits.hpp @@ -160,8 +160,8 @@ struct reduction_identity { KOKKOS_FORCEINLINE_FUNCTION constexpr static long prod() { return static_cast(1); } - KOKKOS_FORCEINLINE_FUNCTION constexpr static long max() { return LLONG_MIN; } - KOKKOS_FORCEINLINE_FUNCTION constexpr static long min() { return LLONG_MAX; } + KOKKOS_FORCEINLINE_FUNCTION constexpr static long max() { return LONG_MIN; } + KOKKOS_FORCEINLINE_FUNCTION constexpr static long min() { return LONG_MAX; } KOKKOS_FORCEINLINE_FUNCTION constexpr static long bor() { return static_cast(0x0); } @@ -368,7 +368,8 @@ struct reduction_identity { KOKKOS_FORCEINLINE_FUNCTION constexpr static double min() { return DBL_MAX; } }; -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) +#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) && \ + !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HIP_GPU) template <> struct reduction_identity { KOKKOS_FORCEINLINE_FUNCTION constexpr static long double sum() { diff --git a/lib/kokkos/core/src/Kokkos_OpenMP.hpp b/lib/kokkos/core/src/Kokkos_OpenMP.hpp index 3955c061562e17017b71b1b1ca6b21afcf47f17f..d9b9077c6df877f069eb3b2e6c3cd78439fbbf8f 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMP.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMP.hpp @@ -94,9 +94,6 @@ class OpenMP { using size_type = memory_space::size_type; using scratch_memory_space = ScratchMemorySpace; - /// \brief Get a handle to the default execution space instance - inline OpenMP() noexcept; - /// \brief Print configuration information to the given output stream. static void print_configuration(std::ostream&, const bool verbose = false); @@ -225,8 +222,17 @@ class OpenMP { #endif static constexpr const char* name() noexcept { return "OpenMP"; } + uint32_t impl_instance_id() const noexcept { return 0; } }; +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + static constexpr DeviceType id = DeviceType::OpenMP; +}; +} // namespace Experimental +} // namespace Profiling } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp b/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp index 9706751f9cf8de95bed61f36f0cb6255a4ccb717..d113f244229ff81e95585a5043a65340846ea1d9 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMPTarget.hpp @@ -65,6 +65,10 @@ namespace Kokkos { namespace Experimental { +namespace Impl { +class OpenMPTargetInternal; +} + /// \class OpenMPTarget /// \brief Kokkos device for multicore processors in the host memory space. class OpenMPTarget { @@ -84,76 +88,47 @@ class OpenMPTarget { typedef ScratchMemorySpace scratch_memory_space; - //@} - //------------------------------------ - //! \name Functions that all Kokkos execution spaces must implement. - //@{ - inline static bool in_parallel() { return omp_in_parallel(); } - /** \brief Set the device in a "sleep" state. A noop for OpenMPTarget. */ - static bool sleep(); - - /** \brief Wake the device from the 'sleep' state. A noop for OpenMPTarget. */ - static bool wake(); - - /** \brief Wait until all dispatched functors complete. A noop for - * OpenMPTarget. */ - static void fence() {} - - /// \brief Print configuration information to the given output stream. - static void print_configuration(std::ostream&, const bool detail = false); - - /// \brief Free any resources being consumed by the device. - static void finalize(); - - /** \brief Initialize the device. - * - * 1) If the hardware locality library is enabled and OpenMPTarget has not - * already bound threads then bind OpenMPTarget threads to maximize - * core utilization and group for memory hierarchy locality. - * - * 2) Allocate a HostThread for each OpenMPTarget thread to hold its - * topology and fan in/out data. - */ - static void initialize(unsigned thread_count = 0, unsigned use_numa_count = 0, - unsigned use_cores_per_numa = 0); - - static int is_initialized(); + static void fence(); /** \brief Return the maximum amount of concurrency. */ static int concurrency(); - //@} - //------------------------------------ - /** \brief This execution space has a topological thread pool which can be - * queried. - * - * All threads within a pool have a common memory space for which they are - * cache coherent. depth = 0 gives the number of threads in the whole pool. - * depth = 1 gives the number of threads in a NUMA region, typically - * sharing L3 cache. depth = 2 gives the number of threads at the finest - * granularity, typically sharing L1 cache. - */ - inline static int thread_pool_size(int depth = 0); - - /** \brief The rank of the executing thread in this thread pool */ - KOKKOS_INLINE_FUNCTION static int thread_pool_rank(); + //! Print configuration information to the given output stream. + void print_configuration(std::ostream&, const bool detail = false); - //------------------------------------ + static const char* name(); - inline static unsigned max_hardware_threads() { return thread_pool_size(0); } + //! Free any resources being consumed by the device. + void impl_finalize(); - KOKKOS_INLINE_FUNCTION static unsigned hardware_thread_id() { - return thread_pool_rank(); + //! Has been initialized + static int impl_is_initialized(); + + //! Initialize, telling the CUDA run-time library which device to use. + void impl_initialize(); + + inline Impl::OpenMPTargetInternal* impl_internal_space_instance() const { + return m_space_instance; } - static const char* name(); + OpenMPTarget(); + uint32_t impl_instance_id() const noexcept { return 0; } private: - static bool m_is_initialized; + Impl::OpenMPTargetInternal* m_space_instance; +}; +} // namespace Experimental + +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + static constexpr DeviceType id = DeviceType::OpenMPTarget; }; } // namespace Experimental +} // namespace Profiling } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -179,6 +154,7 @@ struct VerifyExecutionCanAccessMemorySpace< #include #include +#include #include /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp b/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp index eef5893be5bf4ed8d3f53cef6f92c80815e487e6..9d24a342e7b27f2fa7fa2b0f67f8f2688cc57c77 100644 --- a/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_OpenMPTargetSpace.hpp @@ -128,6 +128,8 @@ class OpenMPTargetSpace { /**\brief Deallocate untracked memory in the space */ void deallocate(void* const arg_alloc_ptr, const size_t arg_alloc_size) const; + static constexpr const char* name() { return "OpenMPTargetSpace"; } + private: friend class Kokkos::Impl::SharedAllocationRecord< Kokkos::Experimental::OpenMPTargetSpace, void>; @@ -174,7 +176,13 @@ class SharedAllocationRecord KOKKOS_INLINE_FUNCTION static SharedAllocationRecord* allocate( const Kokkos::Experimental::OpenMPTargetSpace& arg_space, - const std::string& arg_label, const size_t arg_alloc_size); + const std::string& arg_label, const size_t arg_alloc_size) { +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) + return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); +#else + return nullptr; +#endif + } /**\brief Allocate tracked memory in the space */ static void* allocate_tracked( diff --git a/lib/kokkos/core/src/Kokkos_Pair.hpp b/lib/kokkos/core/src/Kokkos_Pair.hpp index ee9797b4b34f5ed8b1e60869fe55630248400876..23bb755e33432bcd6d352c4e77da53f9d5598806 100644 --- a/lib/kokkos/core/src/Kokkos_Pair.hpp +++ b/lib/kokkos/core/src/Kokkos_Pair.hpp @@ -78,14 +78,7 @@ struct pair { /// This calls the default constructors of T1 and T2. It won't /// compile if those default constructors are not defined and /// public. - KOKKOS_FORCEINLINE_FUNCTION constexpr -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - pair() - : first(), second() { - } -#else - pair() = default; -#endif + KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default; /// \brief Constructor that takes both elements of the pair. /// @@ -439,14 +432,7 @@ struct pair { first_type first; enum { second = 0 }; - KOKKOS_FORCEINLINE_FUNCTION constexpr -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - pair() - : first() { - } -#else - pair() = default; -#endif + KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default; KOKKOS_FORCEINLINE_FUNCTION constexpr pair(const first_type& f) : first(f) {} diff --git a/lib/kokkos/core/src/Kokkos_Parallel.hpp b/lib/kokkos/core/src/Kokkos_Parallel.hpp index 7277ce287a17df96799d734eddb57c01fc746435..775ab9203c5a20b5b3a11f32e0da14e8514533b1 100644 --- a/lib/kokkos/core/src/Kokkos_Parallel.hpp +++ b/lib/kokkos/core/src/Kokkos_Parallel.hpp @@ -114,7 +114,7 @@ struct FunctorPolicyExecutionSpace< Functor, Policy, typename enable_if_type::type, EnablePolicy> { - typedef typename Functor::device_type execution_space; + typedef typename Functor::device_type::execution_space execution_space; }; template @@ -158,16 +158,21 @@ template inline void parallel_for( const ExecPolicy& policy, const FunctorType& functor, const std::string& str = "", - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { #if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); - Kokkos::Profiling::beginParallelFor(name.get(), 0, &kpID); + Kokkos::Profiling::beginParallelFor( + name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), + &kpID); } +#else + (void)str; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -194,8 +199,12 @@ inline void parallel_for(const size_t work_count, const FunctorType& functor, uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); - Kokkos::Profiling::beginParallelFor(name.get(), 0, &kpID); + Kokkos::Profiling::beginParallelFor( + name.get(), + Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); } +#else + (void)str; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -403,16 +412,21 @@ template inline void parallel_scan( const ExecutionPolicy& policy, const FunctorType& functor, const std::string& str = "", - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { #if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); - Kokkos::Profiling::beginParallelScan(name.get(), 0, &kpID); + Kokkos::Profiling::beginParallelScan( + name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), + &kpID); } +#else + (void)str; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -440,8 +454,12 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); - Kokkos::Profiling::beginParallelScan(name.get(), 0, &kpID); + Kokkos::Profiling::beginParallelScan( + name.get(), + Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); } +#else + (void)str; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -479,16 +497,21 @@ template inline void parallel_scan( const ExecutionPolicy& policy, const FunctorType& functor, ReturnType& return_value, const std::string& str = "", - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { #if defined(KOKKOS_ENABLE_PROFILING) uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); - Kokkos::Profiling::beginParallelScan(name.get(), 0, &kpID); + Kokkos::Profiling::beginParallelScan( + name.get(), Kokkos::Profiling::Experimental::device_id(policy.space()), + &kpID); } +#else + (void)str; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -503,7 +526,7 @@ inline void parallel_scan( Kokkos::Profiling::endParallelScan(kpID); } #endif - Kokkos::fence(); + policy.space().fence(); } template @@ -519,8 +542,12 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, uint64_t kpID = 0; if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Impl::ParallelConstructName name(str); - Kokkos::Profiling::beginParallelScan(name.get(), 0, &kpID); + Kokkos::Profiling::beginParallelScan( + name.get(), + Kokkos::Profiling::Experimental::device_id(policy().space()), &kpID); } +#else + (void)str; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -535,7 +562,7 @@ inline void parallel_scan(const size_t work_count, const FunctorType& functor, Kokkos::Profiling::endParallelScan(kpID); } #endif - Kokkos::fence(); + execution_space().fence(); } template @@ -564,7 +591,10 @@ inline void parallel_scan(const std::string& str, const ExecutionPolicy& policy, namespace Kokkos { namespace Impl { -template +template ::value, + bool HasShmemSize = has_member_shmem_size::value> struct FunctorTeamShmemSize { KOKKOS_INLINE_FUNCTION static size_t value(const FunctorType&, int) { return 0; @@ -572,22 +602,27 @@ struct FunctorTeamShmemSize { }; template -struct FunctorTeamShmemSize< - FunctorType, - typename Impl::enable_if<0 < sizeof(&FunctorType::team_shmem_size)>::type> { +struct FunctorTeamShmemSize { static inline size_t value(const FunctorType& f, int team_size) { return f.team_shmem_size(team_size); } }; template -struct FunctorTeamShmemSize< - FunctorType, - typename Impl::enable_if<0 < sizeof(&FunctorType::shmem_size)>::type> { +struct FunctorTeamShmemSize { static inline size_t value(const FunctorType& f, int team_size) { return f.shmem_size(team_size); } }; +template +struct FunctorTeamShmemSize { + static inline size_t value(const FunctorType& /*f*/, int /*team_size*/) { + Kokkos::abort( + "Functor with both team_shmem_size and shmem_size defined is " + "not allowed"); + return 0; + } +}; } // namespace Impl } // namespace Kokkos diff --git a/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp b/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp index dbd33860fbc32a744a50c81970626eff61b594e7..4ef2dbdf0d7cf33564689bcbfdc5762108dc8a50 100644 --- a/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp +++ b/lib/kokkos/core/src/Kokkos_Parallel_Reduce.hpp @@ -543,7 +543,6 @@ struct MaxLoc { KOKKOS_INLINE_FUNCTION void init(value_type& val) const { val.val = reduction_identity::max(); - ; val.loc = reduction_identity::min(); } @@ -622,7 +621,6 @@ struct MinMax { KOKKOS_INLINE_FUNCTION void init(value_type& val) const { val.max_val = reduction_identity::max(); - ; val.min_val = reduction_identity::min(); } @@ -711,7 +709,6 @@ struct MinMaxLoc { KOKKOS_INLINE_FUNCTION void init(value_type& val) const { val.max_val = reduction_identity::max(); - ; val.min_val = reduction_identity::min(); val.max_loc = reduction_identity::min(); val.min_loc = reduction_identity::min(); @@ -772,7 +769,7 @@ struct ParallelReduceReturnValue< template struct ParallelReduceReturnValue< - typename std::enable_if<(is_array::value || + typename std::enable_if<(std::is_array::value || std::is_pointer::value)>::type, ReturnType, FunctorType> { typedef Kokkos::View::type, @@ -788,7 +785,7 @@ struct ParallelReduceReturnValue< #ifdef KOKKOS_ENABLE_DEPRECATED_CODE return return_type(return_val, functor.value_count); #else - if (is_array::value) + if (std::is_array::value) return return_type(return_val); else return return_type(return_val, functor.value_count); @@ -865,6 +862,8 @@ struct ParallelReduceAdaptor { name(label); Kokkos::Profiling::beginParallelReduce(name.get(), 0, &kpID); } +#else + (void)label; #endif Kokkos::Impl::shared_allocation_tracking_disable(); @@ -915,22 +914,25 @@ struct ReducerHasTestReferenceFunction { static std::false_type test_func(...); enum { - value = std::is_same(0))>::value + value = std::is_same(nullptr))>::value }; }; -template ::value> +template ::value> struct ParallelReduceFence { - static void fence(const T&) { Kokkos::fence(); } + static void fence(const ExecutionSpace& execution_space, const T&) { + execution_space.fence(); + } }; -template -struct ParallelReduceFence, false> { - static void fence(const View){}; +template +struct ParallelReduceFence, false> { + static void fence(const ExecutionSpace&, const View){}; }; -template -struct ParallelReduceFence { - static void fence(const T& reducer) { - if (reducer.references_scalar()) Kokkos::fence(); +template +struct ParallelReduceFence { + static void fence(const ExecutionSpace& execution_space, const T& reducer) { + if (reducer.references_scalar()) execution_space.fence(); } }; } // namespace Impl @@ -976,22 +978,26 @@ template inline void parallel_reduce( const std::string& label, const PolicyType& policy, const FunctorType& functor, ReturnType& return_value, - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { Impl::ParallelReduceAdaptor::execute( label, policy, functor, return_value); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence::fence(policy.space(), return_value); } template inline void parallel_reduce( const PolicyType& policy, const FunctorType& functor, ReturnType& return_value, - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { Impl::ParallelReduceAdaptor::execute( "", policy, functor, return_value); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence::fence(policy.space(), return_value); } template @@ -1001,7 +1007,8 @@ inline void parallel_reduce(const size_t& policy, const FunctorType& functor, void, size_t, FunctorType>::policy_type policy_type; Impl::ParallelReduceAdaptor::execute( "", policy_type(0, policy), functor, return_value); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence:: + fence(typename policy_type::execution_space(), return_value); } template @@ -1012,7 +1019,8 @@ inline void parallel_reduce(const std::string& label, const size_t& policy, void, size_t, FunctorType>::policy_type policy_type; Impl::ParallelReduceAdaptor::execute( label, policy_type(0, policy), functor, return_value); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence:: + fence(typename policy_type::execution_space(), return_value); } // ReturnValue as View or Reducer: take by copy to allow for inline construction @@ -1021,24 +1029,28 @@ template inline void parallel_reduce( const std::string& label, const PolicyType& policy, const FunctorType& functor, const ReturnType& return_value, - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( label, policy, functor, return_value_impl); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence::fence(policy.space(), return_value); } template inline void parallel_reduce( const PolicyType& policy, const FunctorType& functor, const ReturnType& return_value, - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( "", policy, functor, return_value_impl); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence::fence(policy.space(), return_value); } template @@ -1049,7 +1061,8 @@ inline void parallel_reduce(const size_t& policy, const FunctorType& functor, ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( "", policy_type(0, policy), functor, return_value_impl); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence:: + fence(typename policy_type::execution_space(), return_value); } template @@ -1061,7 +1074,8 @@ inline void parallel_reduce(const std::string& label, const size_t& policy, ReturnType return_value_impl = return_value; Impl::ParallelReduceAdaptor::execute( label, policy_type(0, policy), functor, return_value_impl); - Impl::ParallelReduceFence::fence(return_value); + Impl::ParallelReduceFence:: + fence(typename policy_type::execution_space(), return_value); } // No Return Argument @@ -1070,8 +1084,9 @@ template inline void parallel_reduce( const std::string& label, const PolicyType& policy, const FunctorType& functor, - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { typedef Kokkos::Impl::FunctorValueTraits ValueTraits; typedef typename Kokkos::Impl::if_c< (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, @@ -1094,8 +1109,9 @@ inline void parallel_reduce( template inline void parallel_reduce( const PolicyType& policy, const FunctorType& functor, - typename Impl::enable_if< - Kokkos::Impl::is_execution_policy::value>::type* = 0) { + typename std::enable_if< + Kokkos::Impl::is_execution_policy::value>::type* = + nullptr) { typedef Kokkos::Impl::FunctorValueTraits ValueTraits; typedef typename Kokkos::Impl::if_c< (ValueTraits::StaticValueSize != 0), typename ValueTraits::value_type, diff --git a/lib/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp b/lib/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp index 3c667f4432030862311dbfa533299f2341aac3f8..3999ccb96632bc2c4b6d01832ed2464e584a6b5c 100644 --- a/lib/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp +++ b/lib/kokkos/core/src/Kokkos_Profiling_ProfileSection.hpp @@ -1,46 +1,46 @@ /* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 + //@HEADER + // ************************************************************************ + // + // Kokkos v. 3.0 // Copyright (2020) National Technology & Engineering // Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ + // + // Under the terms of Contract DE-NA0003525 with NTESS, + // the U.S. Government retains certain rights in this software. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are + // met: + // + // 1. Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // + // 2. Redistributions in binary form must reproduce the above copyright + // notice, this list of conditions and the following disclaimer in the + // documentation and/or other materials provided with the distribution. + // + // 3. Neither the name of the Corporation nor the names of the + // contributors may be used to endorse or promote products derived from + // this software without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY + // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE + // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // + // Questions? Contact Christian R. Trott (crtrott@sandia.gov) + // + // ************************************************************************ + //@HEADER + */ #ifndef KOKKOSP_PROFILE_SECTION_HPP #define KOKKOSP_PROFILE_SECTION_HPP diff --git a/lib/kokkos/core/src/Kokkos_Qthreads.hpp b/lib/kokkos/core/src/Kokkos_Qthreads.hpp deleted file mode 100644 index e10bd48593aa19b43c75acaba74c16911338b497..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Kokkos_Qthreads.hpp +++ /dev/null @@ -1,196 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_QTHREADS_HPP -#define KOKKOS_QTHREADS_HPP - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) - -#include - -// Defines to enable experimental Qthreads functionality. -#define QTHREAD_LOCAL_PRIORITY -#define CLONED_TASKS - -#include - -#include -#include - -#include -#include -#include -//#include -//#include -//#include // Uncomment when Tasking working. -#include -#include -#include - -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { - -namespace Impl { - -class QthreadsExec; - -} // namespace Impl - -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { - -/** \brief Execution space supported by Qthreads */ -class Qthreads { - public: - //! \name Type declarations that all Kokkos devices must provide. - //@{ - - //! Tag this class as an execution space - typedef Qthreads execution_space; - typedef Kokkos::HostSpace memory_space; - //! This execution space preferred device_type - typedef Kokkos::Device device_type; - - typedef Kokkos::LayoutRight array_layout; - typedef memory_space::size_type size_type; - - typedef ScratchMemorySpace scratch_memory_space; - - //@} - /*------------------------------------------------------------------------*/ - - /** \brief Initialization will construct one or more instances */ - static Qthreads& instance(int = 0); - - /** \brief Set the execution space to a "sleep" state. - * - * This function sets the "sleep" state in which it is not ready for work. - * This may consume less resources than in an "ready" state, - * but it may also take time to transition to the "ready" state. - * - * \return True if enters or is in the "sleep" state. - * False if functions are currently executing. - */ - bool sleep(); - - /** \brief Wake from the sleep state. - * - * \return True if enters or is in the "ready" state. - * False if functions are currently executing. - */ - static bool wake(); - - /** \brief Wait until all dispatched functions to complete. - * - * The parallel_for or parallel_reduce dispatch of a functor may - * return asynchronously, before the functor completes. This - * method does not return until all dispatched functors on this - * device have completed. - */ - static void fence(); - - /*------------------------------------------------------------------------*/ - - static int in_parallel(); - - static int is_initialized(); - - /** \brief Return maximum amount of concurrency */ - static int concurrency(); - - static void initialize(int thread_count); - static void finalize(); - - /** \brief Print configuration information to the given output stream. */ - static void print_configuration(std::ostream&, const bool detail = false); - - int shepherd_size() const; - int shepherd_worker_size() const; - - static const char* name(); -}; - -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ - -namespace Kokkos { - -namespace Impl { - -template <> -struct MemorySpaceAccess { - enum { assignable = false }; - enum { accessible = true }; - enum { deepcopy = false }; -}; - -template <> -struct VerifyExecutionCanAccessMemorySpace< - Kokkos::Qthreads::memory_space, Kokkos::Qthreads::scratch_memory_space> { - enum { value = true }; - inline static void verify(void) {} - inline static void verify(const void*) {} -}; - -} // namespace Impl - -} // namespace Kokkos - -/*--------------------------------------------------------------------------*/ - -#include -#include -//#include // Uncomment when Tasking -// working. #include // Uncomment when -// Tasking working. - -#endif // #define KOKKOS_ENABLE_QTHREADS -#endif // #define KOKKOS_QTHREADS_HPP diff --git a/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp b/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp index df13a7c2aae6f6f1794dff03a91c591c9da7fc00..56a1a93b9d0350a6364a9c5c56a9d5d004e6f6cf 100644 --- a/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_ROCmSpace.hpp @@ -481,7 +481,7 @@ struct VerifyExecutionCanAccessMemorySpace< /** Running in ROCmSpace attempting to access an unknown space: error */ template struct VerifyExecutionCanAccessMemorySpace< - typename enable_if< + typename std::enable_if< !is_same::value, Kokkos::Experimental::ROCmSpace>::type, OtherSpace> { diff --git a/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp b/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp index c2337f08a111d5e875977f8fbf9af3d64e108362..708e0218b7b9327de6945dd698f8d72b7a60622c 100644 --- a/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp +++ b/lib/kokkos/core/src/Kokkos_ScratchSpace.hpp @@ -92,6 +92,8 @@ class ScratchMemorySpace { typedef typename ExecSpace::array_layout array_layout; typedef typename ExecSpace::size_type size_type; + static constexpr const char* name() { return "ScratchMemorySpace"; } + template KOKKOS_INLINE_FUNCTION static IntType align(const IntType& size) { return (size + MASK) & ~MASK; @@ -108,13 +110,13 @@ class ScratchMemorySpace { #ifdef KOKKOS_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The - // function still returns NULL if not enough memory. + // function still returns nullptr if not enough memory. printf( "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L0 - m_iter_L0)); #endif // KOKKOS_DEBUG - tmp = 0; + tmp = nullptr; } return tmp; } else { @@ -124,13 +126,13 @@ class ScratchMemorySpace { #ifdef KOKKOS_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The - // function still returns NULL if not enough memory. + // function still returns nullptr if not enough memory. printf( "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L1 - m_iter_L1)); #endif // KOKKOS_DEBUG - tmp = 0; + tmp = nullptr; } return tmp; } @@ -151,13 +153,13 @@ class ScratchMemorySpace { #ifdef KOKKOS_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The - // function still returns NULL if not enough memory. + // function still returns nullptr if not enough memory. printf( "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L0 - m_iter_L0)); #endif // KOKKOS_DEBUG - tmp = 0; + tmp = nullptr; } return tmp; } else { @@ -171,13 +173,13 @@ class ScratchMemorySpace { #ifdef KOKKOS_DEBUG // mfh 23 Jun 2015: printf call consumes 25 registers // in a CUDA build, so only print in debug mode. The - // function still returns NULL if not enough memory. + // function still returns nullptr if not enough memory. printf( "ScratchMemorySpace<...>::get_shmem: Failed to allocate " "%ld byte(s); remaining capacity is %ld byte(s)\n", long(size), long(m_end_L1 - m_iter_L1)); #endif // KOKKOS_DEBUG - tmp = 0; + tmp = nullptr; } return tmp; } @@ -186,7 +188,7 @@ class ScratchMemorySpace { template KOKKOS_INLINE_FUNCTION ScratchMemorySpace(void* ptr_L0, const IntType& size_L0, - void* ptr_L1 = NULL, + void* ptr_L1 = nullptr, const IntType& size_L1 = 0) : m_iter_L0((char*)ptr_L0), m_end_L0(m_iter_L0 + size_L0), diff --git a/lib/kokkos/core/src/Kokkos_Serial.hpp b/lib/kokkos/core/src/Kokkos_Serial.hpp index e30598be21244e28b565f2b2c6bb80300ee339b6..1f97998ea50d3c8b8aec335db8837ef41c3acdb5 100644 --- a/lib/kokkos/core/src/Kokkos_Serial.hpp +++ b/lib/kokkos/core/src/Kokkos_Serial.hpp @@ -181,11 +181,20 @@ class Serial { return impl_thread_pool_size(0); } #endif + uint32_t impl_instance_id() const noexcept { return 0; } static const char* name(); //-------------------------------------------------------------------------- }; +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + static constexpr DeviceType id = DeviceType::Serial; +}; +} // namespace Experimental +} // namespace Profiling } // namespace Kokkos /*--------------------------------------------------------------------------*/ @@ -257,6 +266,11 @@ class TeamPolicyInternal //! Execution space of this execution policy: typedef Kokkos::Serial execution_space; + const typename traits::execution_space& space() const { + static typename traits::execution_space m_space; + return m_space; + } + TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { m_league_size = p.m_league_size; m_team_scratch_size[0] = p.m_team_scratch_size[0]; @@ -641,7 +655,7 @@ class ParallelReduce, ReducerType, const HostViewType& arg_result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -912,7 +926,7 @@ class ParallelReduce, ReducerType, const HostViewType& arg_result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_mdr_policy(arg_policy), m_policy(Policy(0, m_mdr_policy.m_num_tiles).set_chunk_size(1)), @@ -1087,7 +1101,7 @@ class ParallelReduce, const ViewType& arg_result, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_league(arg_policy.league_size()), m_reducer(InvalidType()), diff --git a/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp b/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp index 4a78d6aca1cbf4717032271f5217d9d23802ca76..6b9608d6290a51ecf04b5643bd7f4a15499cd643 100644 --- a/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp +++ b/lib/kokkos/core/src/Kokkos_TaskScheduler.hpp @@ -143,7 +143,7 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { Kokkos::BasicFuture _spawn_impl(DepTaskType* arg_predecessor_task, TaskPriority arg_priority, typename task_base::function_type arg_function, - typename task_base::destroy_type arg_destroy, + typename task_base::destroy_type /*arg_destroy*/, FunctorType&& arg_functor) { using functor_future_type = future_type_for_functor::type>; @@ -203,7 +203,7 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { public: KOKKOS_INLINE_FUNCTION - BasicTaskScheduler() : m_track(), m_queue(0) {} + BasicTaskScheduler() : m_track(), m_queue(nullptr) {} KOKKOS_INLINE_FUNCTION BasicTaskScheduler(BasicTaskScheduler&& rhs) noexcept @@ -231,7 +231,7 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { } explicit BasicTaskScheduler(memory_pool const& arg_memory_pool) noexcept - : m_track(), m_queue(0) { + : m_track(), m_queue(nullptr) { typedef Kokkos::Impl::SharedAllocationRecord record_type; @@ -349,7 +349,7 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { task->m_priority = static_cast(arg_priority); - task->add_dependence((task_base*)0); + task->add_dependence(nullptr); // Postcondition: task is in Executing-Respawn state } @@ -380,8 +380,8 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { } } - if (q != 0) { // this should probably handle the queue == 0 case, but - // this is deprecated code anyway + if (q != nullptr) { // this should probably handle the queue == 0 case, + // but this is deprecated code anyway size_t const alloc_size = q->when_all_allocation_size(narg); @@ -459,7 +459,7 @@ class BasicTaskScheduler : public Impl::TaskSchedulerBase { for (int i = 0; i < narg; ++i) { const input_type arg_f = func(i); - if (0 != arg_f.m_task) { + if (nullptr != arg_f.m_task) { // Not scheduled, so task scheduler is not yet set // if ( m_queue != static_cast< BasicTaskScheduler const * >( // arg_f.m_task->m_scheduler )->m_queue ) { diff --git a/lib/kokkos/core/src/Kokkos_Threads.hpp b/lib/kokkos/core/src/Kokkos_Threads.hpp index d44042b062b5bd98e020e1bc6298ecffebd4df8f..9dd644df2eac700db270cccd9f95c1fc91060ec1 100644 --- a/lib/kokkos/core/src/Kokkos_Threads.hpp +++ b/lib/kokkos/core/src/Kokkos_Threads.hpp @@ -56,6 +56,7 @@ #include #include #include +#include #include /*--------------------------------------------------------------------------*/ @@ -200,11 +201,21 @@ class Threads { } #endif + uint32_t impl_instance_id() const noexcept { return 0; } + static const char* name(); //@} //---------------------------------------- }; +namespace Profiling { +namespace Experimental { +template <> +struct DeviceTypeTraits { + static constexpr DeviceType id = DeviceType::Threads; +}; +} // namespace Experimental +} // namespace Profiling } // namespace Kokkos /*--------------------------------------------------------------------------*/ diff --git a/lib/kokkos/core/src/Kokkos_Timer.hpp b/lib/kokkos/core/src/Kokkos_Timer.hpp index 117f097f66d01d46812431c7fdb58dc834526dac..1dab73b44cb325f74f095f0232614d892c539b7f 100644 --- a/lib/kokkos/core/src/Kokkos_Timer.hpp +++ b/lib/kokkos/core/src/Kokkos_Timer.hpp @@ -60,7 +60,7 @@ class Timer { public: inline void reset() { m_old = std::chrono::high_resolution_clock::now(); } - inline ~Timer() {} + inline ~Timer() = default; inline Timer() { reset(); } diff --git a/lib/kokkos/core/src/Kokkos_Vectorization.hpp b/lib/kokkos/core/src/Kokkos_Vectorization.hpp index 2604538b1c113c001f74be77069784510f691686..cd24734100e6bf07f32e1e20a9096e81734a4848 100644 --- a/lib/kokkos/core/src/Kokkos_Vectorization.hpp +++ b/lib/kokkos/core/src/Kokkos_Vectorization.hpp @@ -49,6 +49,8 @@ #if defined(KOKKOS_ENABLE_CUDA) #include +#elif defined(KOKKOS_ENABLE_HIP) +#include #endif #endif diff --git a/lib/kokkos/core/src/Kokkos_View.hpp b/lib/kokkos/core/src/Kokkos_View.hpp index 6610bb842bd549ade6c015ec786d3a4a2b49d510..3d68d780a2ee92eb67e0a9215f23566915eaf40b 100644 --- a/lib/kokkos/core/src/Kokkos_View.hpp +++ b/lib/kokkos/core/src/Kokkos_View.hpp @@ -450,6 +450,70 @@ struct ViewTraits { template class View; +template +struct is_always_assignable_impl; + +template +struct is_always_assignable_impl, + Kokkos::View> { + using mapping_type = Kokkos::Impl::ViewMapping< + typename Kokkos::View::traits, + typename Kokkos::View::traits, + typename Kokkos::View::traits::specialize>; + + constexpr static bool value = + mapping_type::is_assignable && + static_cast(Kokkos::View::rank_dynamic) >= + static_cast(Kokkos::View::rank_dynamic); +}; + +template +using is_always_assignable = is_always_assignable_impl< + typename std::remove_reference::type, + typename std::remove_const< + typename std::remove_reference::type>::type>; + +#ifdef KOKKOS_ENABLE_CXX17 +template +inline constexpr bool is_always_assignable_v = + is_always_assignable::value; +#endif + +template +constexpr bool is_assignable(const Kokkos::View& dst, + const Kokkos::View& src) { + using DstTraits = typename Kokkos::View::traits; + using SrcTraits = typename Kokkos::View::traits; + using mapping_type = + Kokkos::Impl::ViewMapping; + +#ifdef KOKKOS_ENABLE_CXX17 + return is_always_assignable_v, + Kokkos::View> || +#else + return is_always_assignable, + Kokkos::View>::value || +#endif + (mapping_type::is_assignable && + ((DstTraits::dimension::rank_dynamic >= 1) || + (dst.static_extent(0) == src.extent(0))) && + ((DstTraits::dimension::rank_dynamic >= 2) || + (dst.static_extent(1) == src.extent(1))) && + ((DstTraits::dimension::rank_dynamic >= 3) || + (dst.static_extent(2) == src.extent(2))) && + ((DstTraits::dimension::rank_dynamic >= 4) || + (dst.static_extent(3) == src.extent(3))) && + ((DstTraits::dimension::rank_dynamic >= 5) || + (dst.static_extent(4) == src.extent(4))) && + ((DstTraits::dimension::rank_dynamic >= 6) || + (dst.static_extent(5) == src.extent(5))) && + ((DstTraits::dimension::rank_dynamic >= 7) || + (dst.static_extent(6) == src.extent(6))) && + ((DstTraits::dimension::rank_dynamic >= 8) || + (dst.static_extent(7) == src.extent(7)))); +} + } /* namespace Kokkos */ //---------------------------------------------------------------------------- @@ -793,19 +857,18 @@ class View : public ViewTraits { //---------------------------------------- private: - enum { - is_layout_left = - std::is_same::value, + static constexpr bool is_layout_left = + std::is_same::value; - is_layout_right = - std::is_same::value, + static constexpr bool is_layout_right = + std::is_same::value; - is_layout_stride = std::is_same::value, + static constexpr bool is_layout_stride = + std::is_same::value; - is_default_map = std::is_same::value && - (is_layout_left || is_layout_right || is_layout_stride) - }; + static constexpr bool is_default_map = + std::is_same::value && + (is_layout_left || is_layout_right || is_layout_stride); template ::accessible> @@ -823,6 +886,8 @@ class View : public ViewTraits { #if defined(KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK) +#define KOKKOS_IMPL_SINK(ARG) ARG + #define KOKKOS_IMPL_VIEW_OPERATOR_VERIFY(ARG) \ View::template verify_space< \ Kokkos::Impl::ActiveExecutionMemorySpace>::check(); \ @@ -830,6 +895,8 @@ class View : public ViewTraits { #else +#define KOKKOS_IMPL_SINK(ARG) + #define KOKKOS_IMPL_VIEW_OPERATOR_VERIFY(ARG) \ View::template verify_space< \ Kokkos::Impl::ActiveExecutionMemorySpace>::check(); @@ -1452,8 +1519,9 @@ class View : public ViewTraits { typename std::enable_if<(Kokkos::Impl::are_integral::value && (0 == Rank)), reference_type>::type - access(Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, args...)) + access(Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, args...))) return m_map.reference(); } @@ -1462,8 +1530,9 @@ class View : public ViewTraits { typename std::enable_if<(Kokkos::Impl::are_integral::value && (1 == Rank) && !is_default_map), reference_type>::type - access(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) + access(const I0& i0, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, args...))) return m_map.reference(i0); } @@ -1473,8 +1542,9 @@ class View : public ViewTraits { (1 == Rank) && is_default_map && !is_layout_stride), reference_type>::type - access(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) + access(const I0& i0, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, args...))) return m_map.m_impl_handle[i0]; } @@ -1484,8 +1554,9 @@ class View : public ViewTraits { (1 == Rank) && is_default_map && is_layout_stride), reference_type>::type - access(const I0& i0, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, args...)) + access(const I0& i0, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, args...))) return m_map.m_impl_handle[m_map.m_impl_offset.m_stride.S0 * i0]; } @@ -1494,8 +1565,9 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (2 == Rank) && !is_default_map), reference_type>::type - access(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) + access(const I0& i0, const I1& i1, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, args...))) return m_map.reference(i0, i1); } @@ -1504,8 +1576,9 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (2 == Rank) && is_default_map && is_layout_left && (traits::rank_dynamic == 0)), reference_type>::type - access(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) + access(const I0& i0, const I1& i1, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, args...))) return m_map.m_impl_handle[i0 + m_map.m_impl_offset.m_dim.N0 * i1]; } @@ -1514,8 +1587,9 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (2 == Rank) && is_default_map && is_layout_left && (traits::rank_dynamic != 0)), reference_type>::type - access(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) + access(const I0& i0, const I1& i1, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, args...))) return m_map.m_impl_handle[i0 + m_map.m_impl_offset.m_stride * i1]; } @@ -1524,8 +1598,9 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (2 == Rank) && is_default_map && is_layout_right && (traits::rank_dynamic == 0)), reference_type>::type - access(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) + access(const I0& i0, const I1& i1, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, args...))) return m_map.m_impl_handle[i1 + m_map.m_impl_offset.m_dim.N1 * i0]; } @@ -1534,8 +1609,9 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (2 == Rank) && is_default_map && is_layout_right && (traits::rank_dynamic != 0)), reference_type>::type - access(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) + access(const I0& i0, const I1& i1, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, args...))) return m_map.m_impl_handle[i1 + m_map.m_impl_offset.m_stride * i0]; } @@ -1544,8 +1620,9 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (2 == Rank) && is_default_map && is_layout_stride), reference_type>::type - access(const I0& i0, const I1& i1, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, args...)) + access(const I0& i0, const I1& i1, Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, args...))) return m_map.m_impl_handle[i0 * m_map.m_impl_offset.m_stride.S0 + i1 * m_map.m_impl_offset.m_stride.S1]; } @@ -1558,8 +1635,10 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (3 == Rank) && is_default_map), reference_type>::type - access(const I0& i0, const I1& i1, const I2& i2, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, args...)) + access(const I0& i0, const I1& i1, const I2& i2, + Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, args...))) return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2)]; } @@ -1568,8 +1647,10 @@ class View : public ViewTraits { (Kokkos::Impl::are_integral::value && (3 == Rank) && !is_default_map), reference_type>::type - access(const I0& i0, const I1& i1, const I2& i2, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, args...)) + access(const I0& i0, const I1& i1, const I2& i2, + Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, args...))) return m_map.reference(i0, i1, i2); } @@ -1582,8 +1663,9 @@ class View : public ViewTraits { (4 == Rank) && is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, i3, args...)) + Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, args...))) return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3)]; } @@ -1593,8 +1675,9 @@ class View : public ViewTraits { (4 == Rank) && !is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, - Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY((m_track, m_map, i0, i1, i2, i3, args...)) + Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, args...))) return m_map.reference(i0, i1, i2, i3); } @@ -1608,9 +1691,9 @@ class View : public ViewTraits { (5 == Rank) && is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - Args... args) const { + Args... KOKKOS_IMPL_SINK(args)) const { KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, args...)) + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, i4, args...))) return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4)]; } @@ -1621,9 +1704,9 @@ class View : public ViewTraits { (5 == Rank) && !is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - Args... args) const { + Args... KOKKOS_IMPL_SINK(args)) const { KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, args...)) + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, i4, args...))) return m_map.reference(i0, i1, i2, i3, i4); } @@ -1637,9 +1720,9 @@ class View : public ViewTraits { (6 == Rank) && is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - const I5& i5, Args... args) const { + const I5& i5, Args... KOKKOS_IMPL_SINK(args)) const { KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, args...)) + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, i4, i5, args...))) return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5)]; } @@ -1650,9 +1733,9 @@ class View : public ViewTraits { (6 == Rank) && !is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - const I5& i5, Args... args) const { + const I5& i5, Args... KOKKOS_IMPL_SINK(args)) const { KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, args...)) + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, i4, i5, args...))) return m_map.reference(i0, i1, i2, i3, i4, i5); } @@ -1666,9 +1749,9 @@ class View : public ViewTraits { (7 == Rank) && is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - const I5& i5, const I6& i6, Args... args) const { + const I5& i5, const I6& i6, Args... KOKKOS_IMPL_SINK(args)) const { KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...)) + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...))) return m_map.m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5, i6)]; } @@ -1679,9 +1762,9 @@ class View : public ViewTraits { (7 == Rank) && !is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - const I5& i5, const I6& i6, Args... args) const { + const I5& i5, const I6& i6, Args... KOKKOS_IMPL_SINK(args)) const { KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...)) + KOKKOS_IMPL_SINK((m_track, m_map, i0, i1, i2, i3, i4, i5, i6, args...))) return m_map.reference(i0, i1, i2, i3, i4, i5, i6); } @@ -1696,9 +1779,10 @@ class View : public ViewTraits { (8 == Rank) && is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - const I5& i5, const I6& i6, const I7& i7, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...)) + const I5& i5, const I6& i6, const I7& i7, + Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY(KOKKOS_IMPL_SINK( + (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...))) return m_map .m_impl_handle[m_map.m_impl_offset(i0, i1, i2, i3, i4, i5, i6, i7)]; } @@ -1711,9 +1795,10 @@ class View : public ViewTraits { (8 == Rank) && !is_default_map), reference_type>::type access(const I0& i0, const I1& i1, const I2& i2, const I3& i3, const I4& i4, - const I5& i5, const I6& i6, const I7& i7, Args... args) const { - KOKKOS_IMPL_VIEW_OPERATOR_VERIFY( - (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...)) + const I5& i5, const I6& i6, const I7& i7, + Args... KOKKOS_IMPL_SINK(args)) const { + KOKKOS_IMPL_VIEW_OPERATOR_VERIFY(KOKKOS_IMPL_SINK( + (m_track, m_map, i0, i1, i2, i3, i4, i5, i6, i7, args...))) return m_map.reference(i0, i1, i2, i3, i4, i5, i6, i7); } @@ -1722,8 +1807,8 @@ class View : public ViewTraits { //---------------------------------------- // Standard destructor, constructors, and assignment operators - KOKKOS_INLINE_FUNCTION - ~View() {} + KOKKOS_DEFAULTED_FUNCTION + ~View() = default; KOKKOS_INLINE_FUNCTION View() : m_track(), m_map() {} @@ -1759,7 +1844,8 @@ class View : public ViewTraits { const View& rhs, typename std::enable_if::traits, - typename traits::specialize>::is_assignable_data_type>::type* = 0) + typename traits::specialize>::is_assignable_data_type>::type* = + nullptr) : m_track(rhs.m_track, traits::is_managed), m_map() { typedef typename View::traits SrcTraits; typedef Kokkos::Impl::ViewMapping { // If allocating in CudaUVMSpace must fence before and after // the allocation to protect against possible concurrent access // on the CPU and the GPU. - // Fence using the trait's executon space (which will be Kokkos::Cuda) - // to avoid incomplete type errors from usng Kokkos::Cuda directly. + // Fence using the trait's execution space (which will be Kokkos::Cuda) + // to avoid incomplete type errors from using Kokkos::Cuda directly. if (std::is_same::value) { typename traits::device_type::memory_space::execution_space().fence(); diff --git a/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp b/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp index 26df7e03a287d6c04ae108d211f2f17699fb5b83..6ff2f0d4b72178f9ee9ef0cc0d042af1f7275bee 100644 --- a/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/Kokkos_WorkGraphPolicy.hpp @@ -199,6 +199,8 @@ class WorkGraphPolicy : public Kokkos::Impl::PolicyTraits { if (0 == count_queue[w]) push_work(w); } + execution_space space() const { return execution_space(); } + WorkGraphPolicy(const graph_type& arg_graph) : m_graph(arg_graph), m_queue(view_alloc("queue", WithoutInitializing), diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp index d152fd62dc47e3cb247cec400a18c9422dde7d7a..21151156e3d210f6ce39e79661d9361d1f95e871 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.cpp @@ -149,12 +149,12 @@ void OpenMPExec::clear_thread_data() { { const int rank = omp_get_thread_num(); - if (0 != m_pool[rank]) { + if (nullptr != m_pool[rank]) { m_pool[rank]->disband_pool(); space.deallocate(m_pool[rank], old_alloc_bytes); - m_pool[rank] = 0; + m_pool[rank] = nullptr; } } /* END #pragma omp parallel */ @@ -211,7 +211,7 @@ void OpenMPExec::resize_thread_data(size_t pool_reduce_bytes, { const int rank = omp_get_thread_num(); - if (0 != m_pool[rank]) { + if (nullptr != m_pool[rank]) { m_pool[rank]->disband_pool(); space.deallocate(m_pool[rank], old_alloc_bytes); @@ -447,7 +447,7 @@ void OpenMP::impl_finalize() //---------------------------------------------------------------------------- -void OpenMP::print_configuration(std::ostream &s, const bool verbose) { +void OpenMP::print_configuration(std::ostream &s, const bool /*verbose*/) { s << "Kokkos::OpenMP"; const bool is_initialized = Impl::t_openmp_instance != nullptr; diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp index 6a8773a58f53fd61c4f9c4a0ceef64742369b450..6614050f025b2579d6b0756d2973b4b6c6dacb4e 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Exec.hpp @@ -129,8 +129,6 @@ class OpenMPExec { namespace Kokkos { -inline OpenMP::OpenMP() noexcept {} - inline #ifdef KOKKOS_ENABLE_DEPRECATED_CODE bool @@ -176,20 +174,24 @@ int OpenMP::impl_thread_pool_rank() noexcept #endif } -inline void OpenMP::impl_static_fence(OpenMP const& instance) noexcept {} +inline void OpenMP::impl_static_fence(OpenMP const& /*instance*/) noexcept {} #ifdef KOKKOS_ENABLE_DEPRECATED_CODE inline void OpenMP::fence(OpenMP const& instance) noexcept {} #endif -inline bool OpenMP::is_asynchronous(OpenMP const& instance) noexcept { +inline bool OpenMP::is_asynchronous(OpenMP const& /*instance*/) noexcept { return false; } template void OpenMP::partition_master(F const& f, int num_partitions, int partition_size) { - if (omp_get_nested()) { +#if _OPENMP >= 201811 + if (omp_get_max_active_levels() > 1) { +#else + if (omp_get_nested() > 1) { +#endif using Exec = Impl::OpenMPExec; Exec* prev_instance = Impl::t_openmp_instance; diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp index 5442119e73678544d74a8ac8d7200bdba0078980..83773ac3055213563b7e90c5f4108e61853a0ef9 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Parallel.hpp @@ -389,7 +389,7 @@ class ParallelReduce, ReducerType, const ViewType& arg_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_instance(t_openmp_instance), m_functor(arg_functor), m_policy(arg_policy), @@ -551,7 +551,7 @@ class ParallelReduce, ReducerType, const ViewType& arg_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_instance(t_openmp_instance), m_functor(arg_functor), m_mdr_policy(arg_policy), @@ -1146,7 +1146,7 @@ class ParallelReduce, const ViewType& arg_result, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_instance(t_openmp_instance), m_functor(arg_functor), m_policy(arg_policy), diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp index 0cbdfbbdaa64c27b76cef3b0d1478b105c54ea9b..62f0a77d0e10363b3c14671193ea56545ea6e109 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Task.hpp @@ -132,14 +132,14 @@ class TaskQueueSpecialization > { auto current_task = OptionalRef(nullptr); - while (not queue.is_done()) { + while (!queue.is_done()) { // Each team lead attempts to acquire either a thread team task // or a single thread task for the team. if (team_exec.team_rank() == 0) { // loop while both: // - the queue is not done // - the most recently popped task is a single task or empty - while (not queue.is_done()) { + while (!queue.is_done()) { current_task = queue.pop_ready_task(team_scheduler.team_scheduler_info()); diff --git a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp index 39fd5ae0337c232820cb4df9c59aa1625a554d1f..f54b6e2d51dfcb1b47a15c8aaafc38399b49d608 100644 --- a/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp +++ b/lib/kokkos/core/src/OpenMP/Kokkos_OpenMP_Team.hpp @@ -62,6 +62,11 @@ class TeamPolicyInternal typedef PolicyTraits traits; + const typename traits::execution_space& space() const { + static typename traits::execution_space m_space; + return m_space; + } + TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { m_league_size = p.m_league_size; m_team_size = p.m_team_size; diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp index 2dd038dce72359546565a938967a5bf71d3330be..ab833b03637b707aa7541b5e0f177f30696014bc 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTargetSpace.cpp @@ -111,14 +111,6 @@ std::string SharedAllocationRecord * -SharedAllocationRecord::allocate( - const Kokkos::Experimental::OpenMPTargetSpace &arg_space, - const std::string &arg_label, const size_t arg_alloc_size) { - return new SharedAllocationRecord(arg_space, arg_label, arg_alloc_size); -} - void SharedAllocationRecord::deallocate(SharedAllocationRecord *arg_rec) { @@ -151,6 +143,8 @@ SharedAllocationRecord:: header.m_label[SharedAllocationHeader::maximum_label_length - 1] = (char)0; // TODO DeepCopy // DeepCopy + Kokkos::Impl::DeepCopy( + RecordBase::m_alloc_ptr, &header, sizeof(SharedAllocationHeader)); } //---------------------------------------------------------------------------- @@ -203,18 +197,22 @@ SharedAllocationRecord typedef SharedAllocationRecord RecordHost; - SharedAllocationHeader const *const head = - alloc_ptr ? Header::get_header(alloc_ptr) : (SharedAllocationHeader *)0; - RecordHost *const record = - head ? static_cast(head->m_record) : (RecordHost *)0; + if (alloc_ptr) { + Header head; + const Header *const head_ompt = Header::get_header(alloc_ptr); - if (!alloc_ptr || record->m_alloc_ptr != head) { - Kokkos::Impl::throw_runtime_exception(std::string( - "Kokkos::Experimental::Impl::SharedAllocationRecord< " - "Kokkos::Experimental::OpenMPTargetSpace , void >::get_record ERROR")); - } + Kokkos::Impl::DeepCopy( + &head, head_ompt, sizeof(SharedAllocationHeader)); - return record; + RecordHost *record = static_cast(head.m_record); + if (record->m_alloc_ptr == head_ompt) { + return record; + } + } + Kokkos::Impl::throw_runtime_exception(std::string( + "Kokkos::Experimental::Impl::SharedAllocationRecord< " + "Kokkos::Experimental::OpenMPTargetSpace , void >::get_record ERROR")); + return nullptr; } // Iterate records to print orphaned memory ... diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp index 140a4cb88ec2a767a483da03b7df6d6ddebc4fbd..b09dbeba3a5c68271c3f4468634b3b918a2acc38 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.cpp @@ -61,17 +61,8 @@ namespace { KOKKOS_INLINE_FUNCTION int kokkos_omp_in_parallel(); -int kokkos_omp_in_critical_region = - (Kokkos::HostSpace::register_in_parallel(kokkos_omp_in_parallel), 0); - KOKKOS_INLINE_FUNCTION -int kokkos_omp_in_parallel() { -#ifndef __CUDA_ARCH__ - return omp_in_parallel() && !kokkos_omp_in_critical_region; -#else - return 0; -#endif -} +int kokkos_omp_in_parallel() { return omp_in_parallel(); } bool s_using_hwloc = false; @@ -79,23 +70,9 @@ bool s_using_hwloc = false; } // namespace Impl } // namespace Kokkos -namespace Kokkos { -namespace Experimental { -bool OpenMPTarget::m_is_initialized = false; -} -} // namespace Kokkos - namespace Kokkos { namespace Impl { -// int OpenMPTargetExec::m_map_rank[ OpenMPTargetExec::MAX_THREAD_COUNT ] = { 0 -// }; - -// int OpenMPTargetExec::m_pool_topo[ 4 ] = { 0 }; - -// OpenMPTargetExec * OpenMPTargetExec::m_pool[ -// OpenMPTargetExec::MAX_THREAD_COUNT ] = { 0 }; - void OpenMPTargetExec::verify_is_process(const char* const label) { if (omp_in_parallel()) { std::string msg(label); @@ -105,28 +82,21 @@ void OpenMPTargetExec::verify_is_process(const char* const label) { } void OpenMPTargetExec::verify_initialized(const char* const label) { - if (0 == Kokkos::Experimental::OpenMPTarget::is_initialized()) { + if (0 == Kokkos::Experimental::OpenMPTarget().impl_is_initialized()) { std::string msg(label); msg.append(" ERROR: not initialized"); Kokkos::Impl::throw_runtime_exception(msg); } - - if (omp_get_max_threads() != - Kokkos::Experimental::OpenMPTarget::thread_pool_size(0)) { - std::string msg(label); - msg.append(" ERROR: Initialized but threads modified inappropriately"); - Kokkos::Impl::throw_runtime_exception(msg); - } } -void* OpenMPTargetExec::m_scratch_ptr = NULL; +void* OpenMPTargetExec::m_scratch_ptr = nullptr; int64_t OpenMPTargetExec::m_scratch_size = 0; void OpenMPTargetExec::clear_scratch() { Kokkos::Experimental::OpenMPTargetSpace space; space.deallocate(m_scratch_ptr, m_scratch_size); - m_scratch_ptr = NULL; - m_scratch_size = NULL; + m_scratch_ptr = nullptr; + m_scratch_size = 0; } void* OpenMPTargetExec::get_scratch_ptr() { return m_scratch_ptr; } @@ -151,122 +121,4 @@ void OpenMPTargetExec::resize_scratch(int64_t reduce_bytes, } // namespace Impl } // namespace Kokkos -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Experimental { -//---------------------------------------------------------------------------- - -int OpenMPTarget::is_initialized() { - return m_is_initialized; -} // != Impl::OpenMPTargetExec::m_pool[0]; } - -void OpenMPTarget::initialize(unsigned thread_count, unsigned use_numa_count, - unsigned use_cores_per_numa) { - // Before any other call to OMP query the maximum number of threads - // and save the value for re-initialization unit testing. - - // Init the array for used for arbitrarily sized atomics - Kokkos::Impl::init_lock_array_host_space(); - -#ifdef KOKKOS_ENABLE_PROFILING - Kokkos::Profiling::initialize(); -#endif - m_is_initialized = true; -} - -//---------------------------------------------------------------------------- - -void OpenMPTarget::finalize() { - Kokkos::Impl::OpenMPTargetExec::verify_initialized("OpenMPTarget::finalize"); - Kokkos::Impl::OpenMPTargetExec::verify_is_process("OpenMPTarget::finalize"); - - m_is_initialized = false; - - omp_set_num_threads(1); - - if (Kokkos::Impl::s_using_hwloc && Kokkos::hwloc::can_bind_threads()) { - hwloc::unbind_this_thread(); - } - -#ifdef KOKKOS_ENABLE_PROFILING - Kokkos::Profiling::finalize(); -#endif -} - -//---------------------------------------------------------------------------- - -void OpenMPTarget::print_configuration(std::ostream& s, const bool detail) { - Kokkos::Impl::OpenMPTargetExec::verify_is_process( - "OpenMPTarget::print_configuration"); - /* - s << "Kokkos::Experimental::OpenMPTarget" ; - - #if defined( KOKKOS_ENABLE_OPENMPTARGET ) - s << " KOKKOS_ENABLE_OPENMPTARGET" ; - #endif - #if defined( KOKKOS_ENABLE_HWLOC ) - - const unsigned numa_count_ = - Kokkos::hwloc::get_available_numa_count(); const unsigned cores_per_numa = - Kokkos::hwloc::get_available_cores_per_numa(); const unsigned threads_per_core - = Kokkos::hwloc::get_available_threads_per_core(); - - s << " hwloc[" << numa_count_ << "x" << cores_per_numa << "x" << - threads_per_core << "]" - << " hwloc_binding_" << ( Impl::s_using_hwloc ? "enabled" : "disabled" ) - ; - #endif - - const bool is_initialized = 0 != Impl::OpenMPTargetExec::m_pool[0] ; - - if ( is_initialized ) { - const int numa_count = Kokkos::Impl::OpenMPTargetExec::m_pool_topo[0] - / Kokkos::Impl::OpenMPTargetExec::m_pool_topo[1] ; const int core_per_numa = - Kokkos::Impl::OpenMPTargetExec::m_pool_topo[1] / - Kokkos::Impl::OpenMPTargetExec::m_pool_topo[2] ; const int thread_per_core = - Kokkos::Impl::OpenMPTargetExec::m_pool_topo[2] ; - - s << " thread_pool_topology[ " << numa_count - << " x " << core_per_numa - << " x " << thread_per_core - << " ]" - << std::endl ; - - if ( detail ) { - std::vector< std::pair > coord( - Kokkos::Impl::OpenMPTargetExec::m_pool_topo[0] ); - - #pragma omp parallel - { - #pragma omp critical - { - coord[ omp_get_thread_num() ] = hwloc::get_this_thread_coordinate(); - } - // END #pragma omp critical - } - // END #pragma omp parallel - - for ( unsigned i = 0 ; i < coord.size() ; ++i ) { - s << " thread omp_rank[" << i << "]" - << " kokkos_rank[" << Impl::OpenMPTargetExec::m_map_rank[ i ] << "]" - << " hwloc_coord[" << coord[i].first << "." << coord[i].second << - "]" - << std::endl ; - } - } - } - else { - s << " not initialized" << std::endl ; - } - */ -} - -int OpenMPTarget::concurrency() { return thread_pool_size(0); } - -const char* OpenMPTarget::name() { return "OpenMPTarget"; } -} // namespace Experimental -} // namespace Kokkos - #endif // KOKKOS_ENABLE_OPENMPTARGET diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp index c9d8543eab0662baccbd030572c0124b30a9e53f..be6ddb5ed42260eaebbe3fdbf805223d555b9b0c 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp @@ -341,19 +341,39 @@ class TeamPolicyInternal //---------------------------------------- template - inline static int team_size_max(const FunctorType&) { - return 1024; + inline static int team_size_max(const FunctorType&, const ParallelForTag&) { + return 256; } template - inline static int team_size_recommended(const FunctorType&) { + inline static int team_size_max(const FunctorType&, + const ParallelReduceTag&) { + return 256; + } + + template + inline static int team_size_max(const FunctorType&, const ReducerType&, + const ParallelReduceTag&) { return 256; } template inline static int team_size_recommended(const FunctorType&, - const int& vector_length) { - return 256 / vector_length; + const ParallelForTag&) { + return 128; + } + + template + inline static int team_size_recommended(const FunctorType&, + const ParallelReduceTag&) { + return 128; + } + + template + inline static int team_size_recommended(const FunctorType&, + const ReducerType&, + const ParallelReduceTag&) { + return 128; } //---------------------------------------- @@ -391,6 +411,10 @@ class TeamPolicyInternal team_size_ * m_thread_scratch_size[level]; } + inline Kokkos::Experimental::OpenMPTarget space() const { + return Kokkos::Experimental::OpenMPTarget(); + } + /** \brief Specify league size, request team size */ TeamPolicyInternal(typename traits::execution_space&, int league_size_request, int team_size_request, int vector_length_request = 1) @@ -540,8 +564,8 @@ class TeamPolicyInternal private: /** \brief finalize chunk_size if it was set to AUTO*/ inline void set_auto_chunk_size() { - int concurrency = - traits::execution_space::thread_pool_size(0) / m_team_alloc; + int concurrency = 2048 * 128; + if (concurrency == 0) concurrency = 1; if (m_chunk_size > 0) { @@ -568,23 +592,6 @@ class TeamPolicyInternal } // namespace Kokkos -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Experimental { - -inline int OpenMPTarget::thread_pool_size(int depth) { - // return Impl::OpenMPTargetExec::pool_size(depth); - return omp_get_max_threads(); -} - -KOKKOS_INLINE_FUNCTION -int OpenMPTarget::thread_pool_rank() { return omp_get_thread_num(); } - -} // namespace Experimental -} // namespace Kokkos - namespace Kokkos { template diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp new file mode 100644 index 0000000000000000000000000000000000000000..011bb1c8e1a4fea3ab7e83705f0a44cc4f3d4844 --- /dev/null +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.cpp @@ -0,0 +1,50 @@ +#include + +namespace Kokkos { +namespace Experimental { +namespace Impl { +void OpenMPTargetInternal::fence() {} +int OpenMPTargetInternal::concurrency() { return 128000; } +const char* OpenMPTargetInternal::name() { return "OpenMPTarget"; } +void OpenMPTargetInternal::print_configuration(std::ostream& stream, + const bool) { + printf("Using OpenMPTarget\n"); +} + +void OpenMPTargetInternal::impl_finalize() { m_is_initialized = false; } +void OpenMPTargetInternal::impl_initialize() { m_is_initialized = true; } +int OpenMPTargetInternal::impl_is_initialized() { + return m_is_initialized ? 1 : 0; +} + +OpenMPTargetInternal* OpenMPTargetInternal::impl_singleton() { + static OpenMPTargetInternal self; + return &self; +} +} // Namespace Impl + +OpenMPTarget::OpenMPTarget() + : m_space_instance(Impl::OpenMPTargetInternal::impl_singleton()) {} + +const char* OpenMPTarget::name() { + return Impl::OpenMPTargetInternal::impl_singleton()->name(); +} +void OpenMPTarget::print_configuration(std::ostream& stream, + const bool detail) { + m_space_instance->print_configuration(stream, detail); +} + +int OpenMPTarget::concurrency() { + return Impl::OpenMPTargetInternal::impl_singleton()->concurrency(); +} +void OpenMPTarget::fence() { + Impl::OpenMPTargetInternal::impl_singleton()->fence(); +} + +void OpenMPTarget::impl_initialize() { m_space_instance->impl_initialize(); } +void OpenMPTarget::impl_finalize() { m_space_instance->impl_finalize(); } +int OpenMPTarget::impl_is_initialized() { + return Impl::OpenMPTargetInternal::impl_singleton()->impl_is_initialized(); +} +} // Namespace Experimental +} // Namespace Kokkos diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp new file mode 100644 index 0000000000000000000000000000000000000000..2087226d7cce8eb5f84428d494e70ca0a41a39a5 --- /dev/null +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Instance.hpp @@ -0,0 +1,40 @@ +#include + +namespace Kokkos { +namespace Experimental { +namespace Impl { + +class OpenMPTargetInternal { + private: + OpenMPTargetInternal() = default; + OpenMPTargetInternal(const OpenMPTargetInternal&) = default; + OpenMPTargetInternal& operator=(const OpenMPTargetInternal&) = default; + + public: + void fence(); + + /** \brief Return the maximum amount of concurrency. */ + int concurrency(); + + //! Print configuration information to the given output stream. + void print_configuration(std::ostream&, const bool detail = false); + + static const char* name(); + + //! Free any resources being consumed by the device. + void impl_finalize(); + + //! Has been initialized + int impl_is_initialized(); + + //! Initialize, telling the CUDA run-time library which device to use. + void impl_initialize(); + + static OpenMPTargetInternal* impl_singleton(); + + private: + bool m_is_initialized = false; +}; +} // Namespace Impl +} // Namespace Experimental +} // Namespace Kokkos diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp index 2252cf0372fcbf54ba596c31723718f2b77b709d..d5b62f60b89900db7466ae40788bc0dfa130d4ab 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp @@ -57,6 +57,374 @@ namespace Kokkos { namespace Impl { +template +struct OpenMPTargetReducerWrapper { + typedef typename Reducer::value_type value_type; + + KOKKOS_INLINE_FUNCTION + static void join(value_type&, const value_type&) { + printf( + "Using a generic unknown Reducer for the OpenMPTarget backend is not " + "implemented."); + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type&, const volatile value_type&) { + printf( + "Using a generic unknown Reducer for the OpenMPTarget backend is not " + "implemented."); + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type&) { + printf( + "Using a generic unknown Reducer for the OpenMPTarget backend is not " + "implemented."); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { dest += src; } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest += src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::sum(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { dest *= src; } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest *= src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::prod(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src < dest) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src < dest) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::min(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src > dest) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src > dest) dest = src; + } + + // Required + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::max(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest && src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest && src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::land(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + typedef Kokkos::View result_view_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest || src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest || src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::lor(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest & src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest & src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::band(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + public: + // Required + typedef typename std::remove_cv::type value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + dest = dest | src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + dest = dest | src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val = reduction_identity::bor(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + private: + typedef typename std::remove_cv::type scalar_type; + typedef typename std::remove_cv::type index_type; + + public: + // Required + typedef ValLocScalar value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.val < dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.val < dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.val = reduction_identity::min(); + val.loc = reduction_identity::min(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + private: + typedef typename std::remove_cv::type scalar_type; + typedef typename std::remove_cv::type index_type; + + public: + // Required + typedef ValLocScalar value_type; + + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.val > dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.val > dest.val) dest = src; + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.val = reduction_identity::max(); + val.loc = reduction_identity::min(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + private: + typedef typename std::remove_cv::type scalar_type; + + public: + // Required + typedef MinMaxScalar value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + } + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + } + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.max_val = reduction_identity::max(); + val.min_val = reduction_identity::min(); + } +}; + +template +struct OpenMPTargetReducerWrapper> { + private: + typedef typename std::remove_cv::type scalar_type; + typedef typename std::remove_cv::type index_type; + + public: + // Required + typedef MinMaxLocScalar value_type; + + // Required + KOKKOS_INLINE_FUNCTION + static void join(value_type& dest, const value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + dest.min_loc = src.min_loc; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + dest.max_loc = src.max_loc; + } + } + + KOKKOS_INLINE_FUNCTION + static void join(volatile value_type& dest, const volatile value_type& src) { + if (src.min_val < dest.min_val) { + dest.min_val = src.min_val; + dest.min_loc = src.min_loc; + } + if (src.max_val > dest.max_val) { + dest.max_val = src.max_val; + dest.max_loc = src.max_loc; + } + } + + KOKKOS_INLINE_FUNCTION + static void init(value_type& val) { + val.max_val = reduction_identity::max(); + val.min_val = reduction_identity::min(); + val.max_loc = reduction_identity::min(); + val.min_loc = reduction_identity::min(); + } +}; +/* +template +class OpenMPTargetReducerWrapper { + public: + const ReducerType& reducer; + typedef typename ReducerType::value_type value_type; + value_type& value; + + KOKKOS_INLINE_FUNCTION + void join(const value_type& upd) { + reducer.join(value,upd); + } + + KOKKOS_INLINE_FUNCTION + void init(const value_type& upd) { + reducer.init(value,upd); + } +};*/ + +} // namespace Impl +} // namespace Kokkos + +namespace Kokkos { +namespace Impl { + template class ParallelFor, Kokkos::Experimental::OpenMPTarget> { @@ -71,7 +439,21 @@ class ParallelFor, public: inline void execute() const { execute_impl(); } - + /* + template + inline typename std::enable_if::value>::type + execute_impl() const { + OpenMPTargetExec::verify_is_process( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + OpenMPTargetExec::verify_initialized( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + const typename Policy::member_type begin = m_policy.begin(); + const typename Policy::member_type end = m_policy.end(); + + #pragma omp target teams distribute parallel for map(to: this->m_functor) + for (int i = begin; i < end; i++) m_functor(i); + } + */ template inline typename std::enable_if::value>::type execute_impl() const { @@ -82,8 +464,12 @@ class ParallelFor, const typename Policy::member_type begin = m_policy.begin(); const typename Policy::member_type end = m_policy.end(); -#pragma omp target teams distribute parallel for map(to : this->m_functor) - for (int i = begin; i < end; i++) m_functor(i); + if (end <= begin) return; + + FunctorType a_functor(m_functor); + +#pragma omp target teams distribute parallel for map(to : a_functor) + for (int i = begin; i < end; i++) a_functor(i); } template @@ -96,10 +482,13 @@ class ParallelFor, const typename Policy::member_type begin = m_policy.begin(); const typename Policy::member_type end = m_policy.end(); + if (end <= begin) return; + + FunctorType a_functor(m_functor); #pragma omp target teams distribute parallel for num_threads(128) \ map(to \ - : this->m_functor) - for (int i = begin; i < end; i++) m_functor(TagType(), i); + : a_functor) + for (int i = begin; i < end; i++) a_functor(TagType(), i); } inline ParallelFor(const FunctorType& arg_functor, Policy arg_policy) @@ -143,8 +532,11 @@ struct ParallelReduceSpecialize, const typename PolicyType::member_type begin = p.begin(); const typename PolicyType::member_type end = p.end(); + if (end <= begin) return; + ValueType result = ValueType(); -#pragma omp target teams distribute parallel for num_teams(512) map(to:f) map(tofrom:result) reduction(+: result) +#pragma omp target teams distribute parallel for num_teams(512) \ + map(to:f) map(tofrom:result) reduction(+: result) for (int i = begin; i < end; i++) f(i, result); *result_ptr = result; @@ -162,8 +554,12 @@ struct ParallelReduceSpecialize, const typename PolicyType::member_type begin = p.begin(); const typename PolicyType::member_type end = p.end(); + if (end <= begin) return; + ValueType result = ValueType(); -#pragma omp target teams distribute parallel for num_teams(512) map(to:f) map(tofrom: result) reduction(+: result) +#pragma omp target teams distribute parallel for \ + num_teams(512) map(to:f) map(tofrom: result) \ + reduction(+: result) for (int i = begin; i < end; i++) f(TagType(), i, result); *result_ptr = result; @@ -174,62 +570,73 @@ struct ParallelReduceSpecialize, execute_impl(f, p, ptr); } }; -/* -template struct ParallelReduceSpecialize { - #pragma omp declare reduction(custom: ValueType : ReducerType::join(omp_out, -omp_in)) initializer ( ReducerType::init(omp_priv) ) +template +struct ParallelReduceSpecialize { +#pragma omp declare reduction( \ + custom:ValueType \ + : OpenMPTargetReducerWrapper ::join(omp_out, omp_in)) \ + initializer(OpenMPTargetReducerWrapper ::init(omp_priv)) - template< class TagType > + template inline static - typename std::enable_if< std::is_same< TagType , void >::value >::type - execute_impl(const FunctorType& f, const PolicyType& p, PointerType -result_ptr) - { - OpenMPTargetExec::verify_is_process("Kokkos::Experimental::OpenMPTarget -parallel_for"); - OpenMPTargetExec::verify_initialized("Kokkos::Experimental::OpenMPTarget -parallel_for"); const typename PolicyType::member_type begin = p.begin(); const -typename PolicyType::member_type end = p.end(); - - ValueType result = ValueType(); - #pragma omp target teams distribute parallel for num_teams(512) map(to:f) -map(tofrom:result) reduction(custom: result) for(int i=begin; i::value>::type + execute_impl(const FunctorType& f, const PolicyType& p, + PointerType result_ptr) { + OpenMPTargetExec::verify_is_process( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + OpenMPTargetExec::verify_initialized( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + const typename PolicyType::member_type begin = p.begin(); + const typename PolicyType::member_type end = p.end(); + if (end <= begin) return; - template< class TagType > + ValueType result = ValueType(); + OpenMPTargetReducerWrapper::init(result); + +// clang-format off +#pragma omp target teams distribute parallel for num_teams(512) map(to: f) \ + map(tofrom: result) reduction(custom: result) + for (int i = begin; i < end; i++) f(i, result); + // clang-format on + + *result_ptr = result; + } + + template inline static - typename std::enable_if< ! std::is_same< TagType , void >::value >::type - execute_impl(const FunctorType& f, const PolicyType& p, PointerType -result_ptr) - { - OpenMPTargetExec::verify_is_process("Kokkos::Experimental::OpenMPTarget -parallel_for"); - OpenMPTargetExec::verify_initialized("Kokkos::Experimental::OpenMPTarget -parallel_for"); const typename PolicyType::member_type begin = p.begin(); const -typename PolicyType::member_type end = p.end(); - - ValueType result = ValueType(); - #pragma omp target teams distribute parallel for num_teams(512) map(to:f) -map(tofrom: result) reduction(custom: result) for(int i=begin; i::value>::type + execute_impl(const FunctorType& f, const PolicyType& p, + PointerType result_ptr) { + OpenMPTargetExec::verify_is_process( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + OpenMPTargetExec::verify_initialized( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + const typename PolicyType::member_type begin = p.begin(); + const typename PolicyType::member_type end = p.end(); + if (end <= begin) return; - inline static - void execute(const FunctorType& f, const PolicyType& p, PointerType ptr) { - execute_impl(f,p,ptr); - } + ValueType result = ValueType(); + OpenMPTargetReducerWrapper::init(result); + +// clang-format off +#pragma omp target teams distribute parallel for num_teams(512) map(to: f) \ + map(tofrom: result) reduction(custom: result) + for (int i = begin; i < end; i++) f(TagType(), i, result); +//clang format on + + *result_ptr = result; + } + + inline static void execute(const FunctorType& f, const PolicyType& p, + PointerType ptr) { + execute_impl(f, p, ptr); + } }; -*/ template class ParallelReduce, ReducerType, @@ -265,7 +672,7 @@ class ParallelReduce, ReducerType, typedef ParallelReduceSpecialize< FunctorType, Policy, ReducerType, pointer_type, typename ValueTraits::value_type, HasJoin, UseReducer> - ParForSpecialize; + ParReduceSpecialize; const FunctorType m_functor; const Policy m_policy; @@ -274,7 +681,7 @@ class ParallelReduce, ReducerType, public: inline void execute() const { - ParForSpecialize::execute(m_functor, m_policy, m_result_ptr); + ParReduceSpecialize::execute(m_functor, m_policy, m_result_ptr); } template @@ -283,28 +690,18 @@ class ParallelReduce, ReducerType, const ViewType& arg_result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), - m_result_ptr(arg_result_view.data()) { - /*static_assert( std::is_same< typename ViewType::memory_space - , Kokkos::HostSpace >::value - , "Reduction result on Kokkos::Experimental::OpenMPTarget must be a - Kokkos::View in HostSpace" );*/ - } + m_result_ptr(arg_result_view.data()) {} inline ParallelReduce(const FunctorType& arg_functor, Policy arg_policy, const ReducerType& reducer) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(reducer), - m_result_ptr(reducer.result_view().data()) { - /*static_assert( std::is_same< typename ViewType::memory_space - , Kokkos::HostSpace >::value - , "Reduction result on Kokkos::Experimental::OpenMPTarget must be a - Kokkos::View in HostSpace" );*/ - } + m_result_ptr(reducer.view().data()) {} }; } // namespace Impl @@ -488,10 +885,11 @@ class ParallelFor, 0, 0); void* scratch_ptr = OpenMPTargetExec::get_scratch_ptr(); + FunctorType a_functor(m_functor); #pragma omp target teams distribute parallel for num_teams(league_size) \ num_threads(team_size* vector_length) schedule(static, 1) \ map(to \ - : this->m_functor, scratch_ptr) + : a_functor, scratch_ptr) for (int i = 0; i < league_size * team_size * vector_length; i++) { typename Policy::member_type team(i / (team_size * vector_length), league_size, team_size, vector_length, @@ -513,6 +911,7 @@ class ParallelFor, const int nteams = OpenMPTargetExec::MAX_ACTIVE_TEAMS < league_size ? OpenMPTargetExec::MAX_ACTIVE_TEAMS : league_size; + FunctorType a_functor(m_functor); OpenMPTargetExec::resize_scratch(0, Policy::member_type::TEAM_REDUCE_SIZE, 0, 0); @@ -520,7 +919,7 @@ class ParallelFor, #pragma omp target teams distribute parallel for num_teams(league_size) \ num_threads(team_size* vector_length) schedule(static, 1) \ map(to \ - : this->m_functor, scratch_ptr) + : a_functor, scratch_ptr) for (int i = 0; i < league_size; i++) { typename Policy::member_type team(i / (team_size * vector_length), league_size, team_size, vector_length, @@ -663,7 +1062,7 @@ class ParallelReduce, public: inline void execute() const { - ParForSpecialize::execute(m_functor, m_policy, m_result_ptr); + // ParForSpecialize::execute(m_functor, m_policy, m_result_ptr); } template @@ -672,11 +1071,11 @@ class ParallelReduce, const ViewType& arg_result, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), - m_result_ptr(arg_result.ptr_on_device()), + m_result_ptr(arg_result.data()), m_shmem_size(arg_policy.scratch_size(0) + arg_policy.scratch_size(1) + FunctorTeamShmemSize::value( arg_functor, arg_policy.team_size())) {} @@ -686,7 +1085,7 @@ class ParallelReduce, : m_functor(arg_functor), m_policy(arg_policy), m_reducer(reducer), - m_result_ptr(reducer.result_view().data()), + m_result_ptr(reducer.view().data()), m_shmem_size(arg_policy.scratch_size(0) + arg_policy.scratch_size(1) + FunctorTeamShmemSize::value( arg_functor, arg_policy.team_size())) { diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..4ce2dee122e86f608a00b315971965af171138d8 --- /dev/null +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Parallel_MDRange.hpp @@ -0,0 +1,549 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_OPENMPTARGET_PARALLEL_MDRANGE_HPP +#define KOKKOS_OPENMPTARGET_PARALLEL_MDRANGE_HPP + +#include +#include +#include +#include +#include + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template +class ParallelFor, + Kokkos::Experimental::OpenMPTarget> { + private: + typedef Kokkos::MDRangePolicy Policy; + typedef typename Policy::work_tag WorkTag; + typedef typename Policy::member_type Member; + + const FunctorType m_functor; + const Policy m_policy; + + public: + inline void execute() const { + OpenMPTargetExec::verify_is_process( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + OpenMPTargetExec::verify_initialized( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + const int64_t begin = 0; + const int64_t end = m_policy.m_num_tiles; + FunctorType functor(m_functor); + Policy policy = m_policy; +#pragma omp target teams distribute map(to : functor) num_teams(end - begin) + { + for (ptrdiff_t tile_idx = begin; tile_idx < end; tile_idx++) { +#pragma omp parallel + { + typename Policy::point_type offset; + if (Policy::outer_direction == Policy::Left) { + for (int i = 0; i < Policy::rank; ++i) { + offset[i] = (tile_idx % policy.m_tile_end[i]) * policy.m_tile[i] + + policy.m_lower[i]; + tile_idx /= policy.m_tile_end[i]; + } + } else { + for (int i = Policy::rank - 1; i >= 0; --i) { + offset[i] = (tile_idx % policy.m_tile_end[i]) * policy.m_tile[i] + + policy.m_lower[i]; + tile_idx /= policy.m_tile_end[i]; + } + } + execute_tile(offset, functor, policy); + } + } + } + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; +#pragma omp for + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) { + functor(i0); + } + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + +#pragma omp for collapse(2) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) functor(i0, i1); + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + + const ptrdiff_t begin_2 = offset[2]; + ptrdiff_t end_2 = begin_2 + policy.m_tile[2]; + end_2 = end_2 < policy.m_upper[2] ? end_2 : policy.m_upper[2]; + +#pragma omp for collapse(3) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) functor(i0, i1, i2); + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + + const ptrdiff_t begin_2 = offset[2]; + ptrdiff_t end_2 = begin_2 + policy.m_tile[2]; + end_2 = end_2 < policy.m_upper[2] ? end_2 : policy.m_upper[2]; + + const ptrdiff_t begin_3 = offset[3]; + ptrdiff_t end_3 = begin_3 + policy.m_tile[3]; + end_3 = end_3 < policy.m_upper[3] ? end_3 : policy.m_upper[3]; + +#pragma omp for collapse(4) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) + functor(i0, i1, i2, i3); + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + + const ptrdiff_t begin_2 = offset[2]; + ptrdiff_t end_2 = begin_2 + policy.m_tile[2]; + end_2 = end_2 < policy.m_upper[2] ? end_2 : policy.m_upper[2]; + + const ptrdiff_t begin_3 = offset[3]; + ptrdiff_t end_3 = begin_3 + policy.m_tile[3]; + end_3 = end_3 < policy.m_upper[3] ? end_3 : policy.m_upper[3]; + + const ptrdiff_t begin_4 = offset[4]; + ptrdiff_t end_4 = begin_4 + policy.m_tile[4]; + end_4 = end_4 < policy.m_upper[4] ? end_4 : policy.m_upper[4]; + +#pragma omp for collapse(5) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) + functor(i0, i1, i2, i3, i4); + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + + const ptrdiff_t begin_2 = offset[2]; + ptrdiff_t end_2 = begin_2 + policy.m_tile[2]; + end_2 = end_2 < policy.m_upper[2] ? end_2 : policy.m_upper[2]; + + const ptrdiff_t begin_3 = offset[3]; + ptrdiff_t end_3 = begin_3 + policy.m_tile[3]; + end_3 = end_3 < policy.m_upper[3] ? end_3 : policy.m_upper[3]; + + const ptrdiff_t begin_4 = offset[4]; + ptrdiff_t end_4 = begin_4 + policy.m_tile[4]; + end_4 = end_4 < policy.m_upper[4] ? end_4 : policy.m_upper[4]; + + const ptrdiff_t begin_5 = offset[5]; + ptrdiff_t end_5 = begin_5 + policy.m_tile[5]; + end_5 = end_5 < policy.m_upper[5] ? end_5 : policy.m_upper[5]; + +#pragma omp for collapse(6) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) + functor(i0, i1, i2, i3, i4, i5); + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + + const ptrdiff_t begin_2 = offset[2]; + ptrdiff_t end_2 = begin_2 + policy.m_tile[2]; + end_2 = end_2 < policy.m_upper[2] ? end_2 : policy.m_upper[2]; + + const ptrdiff_t begin_3 = offset[3]; + ptrdiff_t end_3 = begin_3 + policy.m_tile[3]; + end_3 = end_3 < policy.m_upper[3] ? end_3 : policy.m_upper[3]; + + const ptrdiff_t begin_4 = offset[4]; + ptrdiff_t end_4 = begin_4 + policy.m_tile[4]; + end_4 = end_4 < policy.m_upper[4] ? end_4 : policy.m_upper[4]; + + const ptrdiff_t begin_5 = offset[5]; + ptrdiff_t end_5 = begin_5 + policy.m_tile[5]; + end_5 = end_5 < policy.m_upper[5] ? end_5 : policy.m_upper[5]; + + const ptrdiff_t begin_6 = offset[6]; + ptrdiff_t end_6 = begin_6 + policy.m_tile[6]; + end_6 = end_6 < policy.m_upper[6] ? end_6 : policy.m_upper[6]; + +#pragma omp for collapse(7) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) + for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) + functor(i0, i1, i2, i3, i4, i5, i6); + } + + template + inline typename std::enable_if::type execute_tile( + typename Policy::point_type offset, const FunctorType& functor, + const Policy& policy) const { + const ptrdiff_t begin_0 = offset[0]; + ptrdiff_t end_0 = begin_0 + policy.m_tile[0]; + end_0 = end_0 < policy.m_upper[0] ? end_0 : policy.m_upper[0]; + + const ptrdiff_t begin_1 = offset[1]; + ptrdiff_t end_1 = begin_1 + policy.m_tile[1]; + end_1 = end_1 < policy.m_upper[1] ? end_1 : policy.m_upper[1]; + + const ptrdiff_t begin_2 = offset[2]; + ptrdiff_t end_2 = begin_2 + policy.m_tile[2]; + end_2 = end_2 < policy.m_upper[2] ? end_2 : policy.m_upper[2]; + + const ptrdiff_t begin_3 = offset[3]; + ptrdiff_t end_3 = begin_3 + policy.m_tile[3]; + end_3 = end_3 < policy.m_upper[3] ? end_3 : policy.m_upper[3]; + + const ptrdiff_t begin_4 = offset[4]; + ptrdiff_t end_4 = begin_4 + policy.m_tile[4]; + end_4 = end_4 < policy.m_upper[4] ? end_4 : policy.m_upper[4]; + + const ptrdiff_t begin_5 = offset[5]; + ptrdiff_t end_5 = begin_5 + policy.m_tile[5]; + end_5 = end_5 < policy.m_upper[5] ? end_5 : policy.m_upper[5]; + + const ptrdiff_t begin_6 = offset[6]; + ptrdiff_t end_6 = begin_6 + policy.m_tile[6]; + end_6 = end_6 < policy.m_upper[6] ? end_6 : policy.m_upper[6]; + + const ptrdiff_t begin_7 = offset[7]; + ptrdiff_t end_7 = begin_7 + policy.m_tile[7]; + end_7 = end_7 < policy.m_upper[7] ? end_7 : policy.m_upper[7]; + +#pragma omp for collapse(8) + for (ptrdiff_t i0 = begin_0; i0 < end_0; i0++) + for (ptrdiff_t i1 = begin_1; i1 < end_1; i1++) + for (ptrdiff_t i2 = begin_2; i2 < end_2; i2++) + for (ptrdiff_t i3 = begin_3; i3 < end_3; i3++) + for (ptrdiff_t i4 = begin_4; i4 < end_4; i4++) + for (ptrdiff_t i5 = begin_5; i5 < end_5; i5++) + for (ptrdiff_t i6 = begin_6; i6 < end_6; i6++) + for (ptrdiff_t i7 = begin_7; i7 < end_7; i7++) + functor(i0, i1, i2, i3, i4, i5, i6, i7); + } + + inline ParallelFor(const FunctorType& arg_functor, Policy arg_policy) + : m_functor(arg_functor), m_policy(arg_policy) {} +}; + +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +namespace Kokkos { +namespace Impl { + +template +struct ParallelReduceSpecialize, + ReducerType, PointerType, ValueType, 0, 0> { + typedef Kokkos::RangePolicy PolicyType; + template + inline static + typename std::enable_if::value>::type + execute_impl(const FunctorType& f, const PolicyType& p, + PointerType result_ptr) { + OpenMPTargetExec::verify_is_process( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + OpenMPTargetExec::verify_initialized( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + const typename PolicyType::member_type begin = p.begin(); + const typename PolicyType::member_type end = p.end(); + + ValueType result = ValueType(); +#pragma omp target teams distribute parallel for num_teams(512) map(to:f) map(tofrom:result) reduction(+: result) + for (int i = begin; i < end; i++) f(i, result); + + *result_ptr = result; + } + + template + inline static + typename std::enable_if::value>::type + execute_impl(const FunctorType& f, const PolicyType& p, + PointerType result_ptr) { + OpenMPTargetExec::verify_is_process( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + OpenMPTargetExec::verify_initialized( + "Kokkos::Experimental::OpenMPTarget parallel_for"); + const typename PolicyType::member_type begin = p.begin(); + const typename PolicyType::member_type end = p.end(); + + ValueType result = ValueType(); +#pragma omp target teams distribute parallel for num_teams(512) map(to:f) map(tofrom: result) reduction(+: result) + for (int i = begin; i < end; i++) f(TagType(), i, result); + + *result_ptr = result; + } + + inline static void execute(const FunctorType& f, const PolicyType& p, + PointerType ptr) { + execute_impl(f, p, ptr); + } +}; +/* +template struct ParallelReduceSpecialize { + + #pragma omp declare reduction(custom: ValueType : ReducerType::join(omp_out, +omp_in)) initializer ( ReducerType::init(omp_priv) ) + + template< class TagType > + inline static + typename std::enable_if< std::is_same< TagType , void >::value >::type + execute_impl(const FunctorType& f, const PolicyType& p, PointerType +result_ptr) + { + OpenMPTargetExec::verify_is_process("Kokkos::Experimental::OpenMPTarget +parallel_for"); + OpenMPTargetExec::verify_initialized("Kokkos::Experimental::OpenMPTarget +parallel_for"); const typename PolicyType::member_type begin = p.begin(); const +typename PolicyType::member_type end = p.end(); + + ValueType result = ValueType(); + #pragma omp target teams distribute parallel for num_teams(512) map(to:f) +map(tofrom:result) reduction(custom: result) for(int i=begin; i + inline static + typename std::enable_if< ! std::is_same< TagType , void >::value >::type + execute_impl(const FunctorType& f, const PolicyType& p, PointerType +result_ptr) + { + OpenMPTargetExec::verify_is_process("Kokkos::Experimental::OpenMPTarget +parallel_for"); + OpenMPTargetExec::verify_initialized("Kokkos::Experimental::OpenMPTarget +parallel_for"); const typename PolicyType::member_type begin = p.begin(); const +typename PolicyType::member_type end = p.end(); + + ValueType result = ValueType(); + #pragma omp target teams distribute parallel for num_teams(512) map(to:f) +map(tofrom: result) reduction(custom: result) for(int i=begin; i(f,p,ptr); + } +}; + + +template +class ParallelReduce, ReducerType, + Kokkos::Experimental::OpenMPTarget> { + private: + typedef Kokkos::MDRangePolicy Policy; + + typedef typename Policy::work_tag WorkTag; + typedef typename Policy::WorkRange WorkRange; + typedef typename Policy::member_type Member; + + typedef Kokkos::Impl::if_c::value, + FunctorType, ReducerType> + ReducerConditional; + typedef typename ReducerConditional::type ReducerTypeFwd; + typedef + typename Kokkos::Impl::if_c::value, + WorkTag, void>::type WorkTagFwd; + + // Static Assert WorkTag void if ReducerType not InvalidType + + typedef Kokkos::Impl::FunctorValueTraits + ValueTraits; + typedef Kokkos::Impl::FunctorValueInit ValueInit; + typedef Kokkos::Impl::FunctorValueJoin ValueJoin; + + enum { HasJoin = ReduceFunctorHasJoin::value }; + enum { UseReducer = is_reducer_type::value }; + + typedef typename ValueTraits::pointer_type pointer_type; + typedef typename ValueTraits::reference_type reference_type; + + typedef ParallelReduceSpecialize< + FunctorType, Policy, ReducerType, pointer_type, + typename ValueTraits::value_type, HasJoin, UseReducer> + ParForSpecialize; + + const FunctorType m_functor; + const Policy m_policy; + const ReducerType m_reducer; + const pointer_type m_result_ptr; + + public: + inline void execute() const { + ParForSpecialize::execute(m_functor, m_policy, m_result_ptr); + } + + template + inline ParallelReduce( + const FunctorType& arg_functor, Policy arg_policy, + const ViewType& arg_result_view, + typename std::enable_if::value && + !Kokkos::is_reducer_type::value, + void*>::type = NULL) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(InvalidType()), + m_result_ptr(arg_result_view.data()) { + //static_assert( std::is_same< typename ViewType::memory_space + // , Kokkos::HostSpace >::value + // , "Reduction result on Kokkos::Experimental::OpenMPTarget must be a + // Kokkos::View in HostSpace" ); + } + + inline ParallelReduce(const FunctorType& arg_functor, Policy arg_policy, + const ReducerType& reducer) + : m_functor(arg_functor), + m_policy(arg_policy), + m_reducer(reducer), + m_result_ptr(reducer.view().data()) { + //static_assert( std::is_same< typename ViewType::memory_space + // , Kokkos::HostSpace >::value + // , "Reduction result on Kokkos::Experimental::OpenMPTarget must be a + // Kokkos::View in HostSpace" ); + } +};*/ + +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- +//---------------------------------------------------------------------------- + +#endif /* KOKKOS_OPENMPTARGET_PARALLEL_HPP */ diff --git a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp index a40ec19e798a31dfec081a33d0bc4a8d9b2ce51c..19956dad2e706825a20b6e91a966b4ea2b8c7ac6 100644 --- a/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp +++ b/lib/kokkos/core/src/OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp @@ -113,7 +113,7 @@ class TaskExec { public: #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) void* team_shared() const { - return m_team_exec ? m_team_exec->scratch_thread() : (void*)0; + return m_team_exec ? m_team_exec->scratch_thread() : nullptr; } int team_shared_size() const { diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_QthreadsExec.cpp b/lib/kokkos/core/src/Qthreads/Kokkos_QthreadsExec.cpp deleted file mode 100644 index 4372f3ce807fd8424f22c451205facd0c6503bdf..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_QthreadsExec.cpp +++ /dev/null @@ -1,535 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -// Defines to enable experimental Qthreads functionality. -//#define QTHREAD_LOCAL_PRIORITY -//#define CLONED_TASKS - -//#include - -//---------------------------------------------------------------------------- - -namespace Kokkos { - -namespace Impl { - -namespace { - -enum { MAXIMUM_QTHREADS_WORKERS = 1024 }; - -/** s_exec is indexed by the reverse rank of the workers - * for faster fan-in / fan-out lookups - * [ n - 1, n - 2, ..., 0 ] - */ -QthreadsExec *s_exec[MAXIMUM_QTHREADS_WORKERS]; - -int s_number_shepherds = 0; -int s_number_workers_per_shepherd = 0; -int s_number_workers = 0; - -inline QthreadsExec **worker_exec() { - return s_exec + s_number_workers - - (qthread_shep() * s_number_workers_per_shepherd + - qthread_worker_local(NULL) + 1); -} - -const int s_base_size = QthreadsExec::align_alloc(sizeof(QthreadsExec)); - -int s_worker_reduce_end = 0; // End of worker reduction memory. -int s_worker_shared_end = 0; // Total of worker scratch memory. -int s_worker_shared_begin = 0; // Beginning of worker shared memory. - -QthreadsExecFunctionPointer volatile s_active_function = 0; -const void *volatile s_active_function_arg = 0; - -} // namespace - -} // namespace Impl - -} // namespace Kokkos - -//---------------------------------------------------------------------------- - -namespace Kokkos { - -int Qthreads::is_initialized() { return Impl::s_number_workers != 0; } - -int Qthreads::concurrency() { return Impl::s_number_workers_per_shepherd; } - -int Qthreads::in_parallel() { return Impl::s_active_function != 0; } - -void Qthreads::initialize(int thread_count) { - // Environment variable: QTHREAD_NUM_SHEPHERDS - // Environment variable: QTHREAD_NUM_WORKERS_PER_SHEP - // Environment variable: QTHREAD_HWPAR - - { - char buffer[256]; - snprintf(buffer, sizeof(buffer), "QTHREAD_HWPAR=%d", thread_count); - putenv(buffer); - } - - const bool ok_init = - (QTHREAD_SUCCESS == qthread_initialize()) && - (thread_count == - qthread_num_shepherds() * qthread_num_workers_local(NO_SHEPHERD)) && - (thread_count == qthread_num_workers()); - - bool ok_symmetry = true; - - if (ok_init) { - Impl::s_number_shepherds = qthread_num_shepherds(); - Impl::s_number_workers_per_shepherd = - qthread_num_workers_local(NO_SHEPHERD); - Impl::s_number_workers = - Impl::s_number_shepherds * Impl::s_number_workers_per_shepherd; - - for (int i = 0; ok_symmetry && i < Impl::s_number_shepherds; ++i) { - ok_symmetry = - (Impl::s_number_workers_per_shepherd == qthread_num_workers_local(i)); - } - } - - if (!ok_init || !ok_symmetry) { - std::ostringstream msg; - - msg << "Kokkos::Qthreads::initialize(" << thread_count << ") FAILED"; - msg << " : qthread_num_shepherds = " << qthread_num_shepherds(); - msg << " : qthread_num_workers_per_shepherd = " - << qthread_num_workers_local(NO_SHEPHERD); - msg << " : qthread_num_workers = " << qthread_num_workers(); - - if (!ok_symmetry) { - msg << " : qthread_num_workers_local = {"; - for (int i = 0; i < Impl::s_number_shepherds; ++i) { - msg << " " << qthread_num_workers_local(i); - } - msg << " }"; - } - - Impl::s_number_workers = 0; - Impl::s_number_shepherds = 0; - Impl::s_number_workers_per_shepherd = 0; - - if (ok_init) { - qthread_finalize(); - } - - Kokkos::Impl::throw_runtime_exception(msg.str()); - } - - Impl::QthreadsExec::resize_worker_scratch(256, 256); - - // Init the array for used for arbitrarily sized atomics. - Impl::init_lock_array_host_space(); -} - -void Qthreads::finalize() { - Impl::QthreadsExec::clear_workers(); - - if (Impl::s_number_workers) { - qthread_finalize(); - } - - Impl::s_number_workers = 0; - Impl::s_number_shepherds = 0; - Impl::s_number_workers_per_shepherd = 0; -} - -void Qthreads::print_configuration(std::ostream &s, const bool detail) { - s << "Kokkos::Qthreads {" - << " num_shepherds(" << Impl::s_number_shepherds << ")" - << " num_workers_per_shepherd(" << Impl::s_number_workers_per_shepherd - << ")" - << " }" << std::endl; -} - -Qthreads &Qthreads::instance(int) { - static Qthreads q; - return q; -} - -void Qthreads::fence() {} - -int Qthreads::shepherd_size() const { return Impl::s_number_shepherds; } -int Qthreads::shepherd_worker_size() const { - return Impl::s_number_workers_per_shepherd; -} - -const char *Qthreads::name() { return "Qthreads"; } - -} // namespace Kokkos - -//---------------------------------------------------------------------------- - -namespace Kokkos { - -namespace Impl { - -namespace { - -aligned_t driver_exec_all(void *arg) { - QthreadsExec &exec = **worker_exec(); - - (*s_active_function)(exec, s_active_function_arg); - - /* - fprintf( stdout - , "QthreadsExec driver worker(%d:%d) shepherd(%d:%d) - shepherd_worker(%d:%d) done\n" , exec.worker_rank() , exec.worker_size() , - exec.shepherd_rank() , exec.shepherd_size() , exec.shepherd_worker_rank() , - exec.shepherd_worker_size() - ); - fflush(stdout); - */ - - return 0; -} - -aligned_t driver_resize_worker_scratch(void *arg) { - static volatile int lock_begin = 0; - static volatile int lock_end = 0; - - QthreadsExec **const exec = worker_exec(); - - //---------------------------------------- - // Serialize allocation for thread safety. - - while (!atomic_compare_exchange_strong(&lock_begin, 0, 1)) - ; // Spin wait to claim lock. - - const bool ok = 0 == *exec; - - if (ok) { - *exec = (QthreadsExec *)malloc(s_base_size + s_worker_shared_end); - } - - lock_begin = 0; // Release lock. - - if (ok) { - new (*exec) QthreadsExec(); - } - - //---------------------------------------- - // Wait for all calls to complete to insure that each worker has executed. - - if (s_number_workers == 1 + atomic_fetch_add(&lock_end, 1)) { - lock_end = 0; - } - - while (lock_end) - ; - - /* - fprintf( stdout - , "QthreadsExec resize worker(%d:%d) shepherd(%d:%d) - shepherd_worker(%d:%d) done\n" , (**exec).worker_rank() , - (**exec).worker_size() , (**exec).shepherd_rank() , (**exec).shepherd_size() - , (**exec).shepherd_worker_rank() - , (**exec).shepherd_worker_size() - ); - fflush(stdout); - */ - - //---------------------------------------- - - if (!ok) { - fprintf(stderr, "Kokkos::QthreadsExec resize failed\n"); - fflush(stderr); - } - - return 0; -} - -void verify_is_process(const char *const label, bool not_active = false) { - const bool not_process = - 0 != qthread_shep() || 0 != qthread_worker_local(NULL); - const bool is_active = - not_active && (s_active_function || s_active_function_arg); - - if (not_process || is_active) { - std::string msg(label); - msg.append(" : FAILED"); - if (not_process) msg.append(" : not called by main process"); - if (is_active) msg.append(" : parallel execution in progress"); - Kokkos::Impl::throw_runtime_exception(msg); - } -} - -} // namespace - -int QthreadsExec::worker_per_shepherd() { - return s_number_workers_per_shepherd; -} - -QthreadsExec::QthreadsExec() { - const int shepherd_rank = qthread_shep(); - const int shepherd_worker_rank = qthread_worker_local(NULL); - const int worker_rank = - shepherd_rank * s_number_workers_per_shepherd + shepherd_worker_rank; - - m_worker_base = s_exec; - m_shepherd_base = s_exec + s_number_workers_per_shepherd * - ((s_number_shepherds - (shepherd_rank + 1))); - m_scratch_alloc = ((unsigned char *)this) + s_base_size; - m_reduce_end = s_worker_reduce_end; - m_shepherd_rank = shepherd_rank; - m_shepherd_size = s_number_shepherds; - m_shepherd_worker_rank = shepherd_worker_rank; - m_shepherd_worker_size = s_number_workers_per_shepherd; - m_worker_rank = worker_rank; - m_worker_size = s_number_workers; - m_worker_state = QthreadsExec::Active; -} - -void QthreadsExec::clear_workers() { - for (int iwork = 0; iwork < s_number_workers; ++iwork) { - QthreadsExec *const exec = s_exec[iwork]; - s_exec[iwork] = 0; - free(exec); - } -} - -void QthreadsExec::shared_reset(Qthreads::scratch_memory_space &space) { - new (&space) Qthreads::scratch_memory_space( - ((unsigned char *)(**m_shepherd_base).m_scratch_alloc) + - s_worker_shared_begin, - s_worker_shared_end - s_worker_shared_begin); -} - -void QthreadsExec::resize_worker_scratch(const int reduce_size, - const int shared_size) { - const int exec_all_reduce_alloc = align_alloc(reduce_size); - const int shepherd_scan_alloc = align_alloc(8); - const int shepherd_shared_end = - exec_all_reduce_alloc + shepherd_scan_alloc + align_alloc(shared_size); - - if (s_worker_reduce_end < exec_all_reduce_alloc || - s_worker_shared_end < shepherd_shared_end) { - /* - fprintf( stdout, "QthreadsExec::resize\n"); - fflush(stdout); - */ - - // Clear current worker memory before allocating new worker memory. - clear_workers(); - - // Increase the buffers to an aligned allocation. - s_worker_reduce_end = exec_all_reduce_alloc; - s_worker_shared_begin = exec_all_reduce_alloc + shepherd_scan_alloc; - s_worker_shared_end = shepherd_shared_end; - - // Need to query which shepherd this main 'process' is running. - - const int main_shep = qthread_shep(); - - // Have each worker resize its memory for proper first-touch. -#if 0 - for ( int jshep = 0; jshep < s_number_shepherds; ++jshep ) { - for ( int i = jshep != main_shep ? 0 : 1; i < s_number_workers_per_shepherd; ++i ) { - qthread_fork_to( driver_resize_worker_scratch, NULL, NULL, jshep ); - } - } -#else - // If this function is used before the 'qthreads.task_policy' unit test, - // the 'qthreads.task_policy' unit test fails with a seg-fault within - // libqthread.so. - for (int jshep = 0; jshep < s_number_shepherds; ++jshep) { - const int num_clone = jshep != main_shep - ? s_number_workers_per_shepherd - : s_number_workers_per_shepherd - 1; - - if (num_clone) { - const int ret = qthread_fork_clones_to_local_priority( - driver_resize_worker_scratch // Function - , - NULL // Function data block - , - NULL // Pointer to return value feb - , - jshep // Shepherd number - , - num_clone - 1 // Number of instances - 1 - ); - - assert(ret == QTHREAD_SUCCESS); - } - } -#endif - - driver_resize_worker_scratch(NULL); - - // Verify all workers allocated. - - bool ok = true; - for (int iwork = 0; ok && iwork < s_number_workers; ++iwork) { - ok = 0 != s_exec[iwork]; - } - - if (!ok) { - std::ostringstream msg; - msg << "Kokkos::Impl::QthreadsExec::resize : FAILED for workers {"; - for (int iwork = 0; iwork < s_number_workers; ++iwork) { - if (0 == s_exec[iwork]) { - msg << " " << (s_number_workers - (iwork + 1)); - } - } - msg << " }"; - Kokkos::Impl::throw_runtime_exception(msg.str()); - } - } -} - -void QthreadsExec::exec_all(Qthreads &, QthreadsExecFunctionPointer func, - const void *arg) { - verify_is_process("QthreadsExec::exec_all(...)", true); - - /* - fprintf( stdout, "QthreadsExec::exec_all\n"); - fflush(stdout); - */ - - s_active_function = func; - s_active_function_arg = arg; - - // Need to query which shepherd this main 'process' is running. - - const int main_shep = qthread_shep(); - -#if 0 - for ( int jshep = 0, iwork = 0; jshep < s_number_shepherds; ++jshep ) { - for ( int i = jshep != main_shep ? 0 : 1; i < s_number_workers_per_shepherd; ++i, ++iwork ) { - qthread_fork_to( driver_exec_all, NULL, NULL, jshep ); - } - } -#else - // If this function is used before the 'qthreads.task_policy' unit test, - // the 'qthreads.task_policy' unit test fails with a seg-fault within - // libqthread.so. - for (int jshep = 0; jshep < s_number_shepherds; ++jshep) { - const int num_clone = jshep != main_shep - ? s_number_workers_per_shepherd - : s_number_workers_per_shepherd - 1; - - if (num_clone) { - const int ret = qthread_fork_clones_to_local_priority( - driver_exec_all // Function - , - NULL // Function data block - , - NULL // Pointer to return value feb - , - jshep // Shepherd number - , - num_clone - 1 // Number of instances - 1 - ); - - assert(ret == QTHREAD_SUCCESS); - } - } -#endif - - driver_exec_all(NULL); - - s_active_function = 0; - s_active_function_arg = 0; -} - -void *QthreadsExec::exec_all_reduce_result() { - return s_exec[0]->m_scratch_alloc; -} - -} // namespace Impl - -} // namespace Kokkos - -namespace Kokkos { - -namespace Impl { - -QthreadsTeamPolicyMember::QthreadsTeamPolicyMember() - : m_exec(**worker_exec()), - m_team_shared(0, 0), - m_team_size(1), - m_team_rank(0), - m_league_size(1), - m_league_end(1), - m_league_rank(0) { - m_exec.shared_reset(m_team_shared); -} - -QthreadsTeamPolicyMember::QthreadsTeamPolicyMember( - const QthreadsTeamPolicyMember::TaskTeam &) - : m_exec(**worker_exec()), - m_team_shared(0, 0), - m_team_size(s_number_workers_per_shepherd), - m_team_rank(m_exec.shepherd_worker_rank()), - m_league_size(1), - m_league_end(1), - m_league_rank(0) { - m_exec.shared_reset(m_team_shared); -} - -} // namespace Impl - -} // namespace Kokkos - -#else -void KOKKOS_SRC_QTHREADS_EXEC_PREVENT_LINK_ERROR() {} -#endif // #if defined( KOKKOS_ENABLE_QTHREADS ) diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_QthreadsExec.hpp b/lib/kokkos/core/src/Qthreads/Kokkos_QthreadsExec.hpp deleted file mode 100644 index aa0fd73a4abced088cefd24b036d11b30dadcbef..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_QthreadsExec.hpp +++ /dev/null @@ -1,687 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_QTHREADSEXEC_HPP -#define KOKKOS_QTHREADSEXEC_HPP - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) - -#include - -//---------------------------------------------------------------------------- - -namespace Kokkos { - -namespace Impl { - -class QthreadsExec; - -typedef void (*QthreadsExecFunctionPointer)(QthreadsExec &, const void *); - -class QthreadsExec { - private: - enum { Inactive = 0, Active = 1 }; - - const QthreadsExec *const *m_worker_base; - const QthreadsExec *const *m_shepherd_base; - - void *m_scratch_alloc; ///< Scratch memory [ reduce, team, shared ] - int m_reduce_end; ///< End of scratch reduction memory - - int m_shepherd_rank; - int m_shepherd_size; - - int m_shepherd_worker_rank; - int m_shepherd_worker_size; - - /* - * m_worker_rank = m_shepherd_rank * m_shepherd_worker_size + - * m_shepherd_worker_rank m_worker_size = m_shepherd_size * - * m_shepherd_worker_size - */ - int m_worker_rank; - int m_worker_size; - - int mutable volatile m_worker_state; - - friend class Kokkos::Qthreads; - - ~QthreadsExec(); - QthreadsExec(const QthreadsExec &); - QthreadsExec &operator=(const QthreadsExec &); - - public: - QthreadsExec(); - - /** Execute the input function on all available Qthreads workers. */ - static void exec_all(Qthreads &, QthreadsExecFunctionPointer, const void *); - - /** Barrier across all workers participating in the 'exec_all'. */ - void exec_all_barrier() const { - const int rev_rank = m_worker_size - (m_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < m_worker_size); - n <<= 1) { - Impl::spinwait_while_equal(m_worker_base[j]->m_worker_state, - QthreadsExec::Active); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < m_worker_size); - n <<= 1) { - m_worker_base[j]->m_worker_state = QthreadsExec::Active; - } - } - - /** Barrier across workers within the shepherd with rank < team_rank. */ - void shepherd_barrier(const int team_size) const { - if (m_shepherd_worker_rank < team_size) { - const int rev_rank = team_size - (m_shepherd_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - Impl::spinwait_while_equal(m_shepherd_base[j]->m_worker_state, - QthreadsExec::Active); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - m_shepherd_base[j]->m_worker_state = QthreadsExec::Active; - } - } - } - - /** Reduce across all workers participating in the 'exec_all'. */ - template - inline void exec_all_reduce(const FunctorType &func, - const ReducerType &reduce) const { - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - - const int rev_rank = m_worker_size - (m_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < m_worker_size); - n <<= 1) { - const QthreadsExec &fan = *m_worker_base[j]; - - Impl::spinwait_while_equal(fan.m_worker_state, QthreadsExec::Active); - - ValueJoin::join(ReducerConditional::select(func, reduce), m_scratch_alloc, - fan.m_scratch_alloc); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < m_worker_size); - n <<= 1) { - m_worker_base[j]->m_worker_state = QthreadsExec::Active; - } - } - - /** Scan across all workers participating in the 'exec_all'. */ - template - inline void exec_all_scan(const FunctorType &func) const { - typedef Kokkos::Impl::FunctorValueInit ValueInit; - typedef Kokkos::Impl::FunctorValueJoin ValueJoin; - typedef Kokkos::Impl::FunctorValueOps ValueOps; - - const int rev_rank = m_worker_size - (m_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < m_worker_size); - n <<= 1) { - Impl::spinwait_while_equal(m_worker_base[j]->m_worker_state, - QthreadsExec::Active); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } else { - // Root thread scans across values before releasing threads. - // Worker data is in reverse order, so m_worker_base[0] is the - // highest ranking thread. - - // Copy from lower ranking to higher ranking worker. - for (int i = 1; i < m_worker_size; ++i) { - ValueOps::copy(func, m_worker_base[i - 1]->m_scratch_alloc, - m_worker_base[i]->m_scratch_alloc); - } - - ValueInit::init(func, m_worker_base[m_worker_size - 1]->m_scratch_alloc); - - // Join from lower ranking to higher ranking worker. - // Value at m_worker_base[n-1] is zero so skip adding it to - // m_worker_base[n-2]. - for (int i = m_worker_size - 1; --i > 0;) { - ValueJoin::join(func, m_worker_base[i - 1]->m_scratch_alloc, - m_worker_base[i]->m_scratch_alloc); - } - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < m_worker_size); - n <<= 1) { - m_worker_base[j]->m_worker_state = QthreadsExec::Active; - } - } - - //---------------------------------------- - - template - inline volatile Type *shepherd_team_scratch_value() const { - return (volatile Type *)(((unsigned char *)m_scratch_alloc) + m_reduce_end); - } - - template - inline void shepherd_broadcast(Type &value, const int team_size, - const int team_rank) const { - if (m_shepherd_base) { - Type *const shared_value = - m_shepherd_base[0]->shepherd_team_scratch_value(); - if (m_shepherd_worker_rank == team_rank) { - *shared_value = value; - } - memory_fence(); - shepherd_barrier(team_size); - value = *shared_value; - } - } - - template - inline Type shepherd_reduce(const int team_size, const Type &value) const { - volatile Type *const shared_value = shepherd_team_scratch_value(); - *shared_value = value; - // *shepherd_team_scratch_value() = value; - - memory_fence(); - - const int rev_rank = team_size - (m_shepherd_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - Impl::spinwait_while_equal(m_shepherd_base[j]->m_worker_state, - QthreadsExec::Active); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } else { - Type &accum = *m_shepherd_base[0]->shepherd_team_scratch_value(); - for (int i = 1; i < n; ++i) { - accum += *m_shepherd_base[i]->shepherd_team_scratch_value(); - } - for (int i = 1; i < n; ++i) { - *m_shepherd_base[i]->shepherd_team_scratch_value() = accum; - } - - memory_fence(); - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - m_shepherd_base[j]->m_worker_state = QthreadsExec::Active; - } - - return *shepherd_team_scratch_value(); - } - - template - inline typename JoinOp::value_type shepherd_reduce( - const int team_size, const typename JoinOp::value_type &value, - const JoinOp &op) const { - typedef typename JoinOp::value_type Type; - - volatile Type *const shared_value = shepherd_team_scratch_value(); - *shared_value = value; - // *shepherd_team_scratch_value() = value; - - memory_fence(); - - const int rev_rank = team_size - (m_shepherd_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - Impl::spinwait_while_equal(m_shepherd_base[j]->m_worker_state, - QthreadsExec::Active); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } else { - volatile Type &accum = - *m_shepherd_base[0]->shepherd_team_scratch_value(); - for (int i = 1; i < team_size; ++i) { - op.join(accum, - *m_shepherd_base[i]->shepherd_team_scratch_value()); - } - for (int i = 1; i < team_size; ++i) { - *m_shepherd_base[i]->shepherd_team_scratch_value() = accum; - } - - memory_fence(); - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - m_shepherd_base[j]->m_worker_state = QthreadsExec::Active; - } - - return *shepherd_team_scratch_value(); - } - - template - inline Type shepherd_scan(const int team_size, const Type &value, - Type *const global_value = 0) const { - *shepherd_team_scratch_value() = value; - - memory_fence(); - - const int rev_rank = team_size - (m_shepherd_worker_rank + 1); - - int n, j; - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - Impl::spinwait_while_equal(m_shepherd_base[j]->m_worker_state, - QthreadsExec::Active); - } - - if (rev_rank) { - m_worker_state = QthreadsExec::Inactive; - Impl::spinwait_while_equal(m_worker_state, QthreadsExec::Inactive); - } else { - // Root thread scans across values before releasing threads. - // Worker data is in reverse order, so m_shepherd_base[0] is the - // highest ranking thread. - - // Copy from lower ranking to higher ranking worker. - - Type accum = *m_shepherd_base[0]->shepherd_team_scratch_value(); - for (int i = 1; i < team_size; ++i) { - const Type tmp = - *m_shepherd_base[i]->shepherd_team_scratch_value(); - accum += tmp; - *m_shepherd_base[i - 1]->shepherd_team_scratch_value() = tmp; - } - - *m_shepherd_base[team_size - 1]->shepherd_team_scratch_value() = - global_value ? atomic_fetch_add(global_value, accum) : 0; - - // Join from lower ranking to higher ranking worker. - for (int i = team_size; --i;) { - *m_shepherd_base[i - 1]->shepherd_team_scratch_value() += - *m_shepherd_base[i]->shepherd_team_scratch_value(); - } - - memory_fence(); - } - - for (n = 1; (!(rev_rank & n)) && ((j = rev_rank + n) < team_size); - n <<= 1) { - m_shepherd_base[j]->m_worker_state = QthreadsExec::Active; - } - - return *shepherd_team_scratch_value(); - } - - //---------------------------------------- - - static inline int align_alloc(int size) { - enum { ALLOC_GRAIN = 1 << 6 /* power of two, 64bytes */ }; - enum { ALLOC_GRAIN_MASK = ALLOC_GRAIN - 1 }; - return (size + ALLOC_GRAIN_MASK) & ~ALLOC_GRAIN_MASK; - } - - void shared_reset(Qthreads::scratch_memory_space &); - - void *exec_all_reduce_value() const { return m_scratch_alloc; } - - static void *exec_all_reduce_result(); - - static void resize_worker_scratch(const int reduce_size, - const int shared_size); - static void clear_workers(); - - //---------------------------------------- - - inline int worker_rank() const { return m_worker_rank; } - inline int worker_size() const { return m_worker_size; } - inline int shepherd_worker_rank() const { return m_shepherd_worker_rank; } - inline int shepherd_worker_size() const { return m_shepherd_worker_size; } - inline int shepherd_rank() const { return m_shepherd_rank; } - inline int shepherd_size() const { return m_shepherd_size; } - - static int worker_per_shepherd(); -}; - -} // namespace Impl - -} // namespace Kokkos - -//---------------------------------------------------------------------------- - -namespace Kokkos { - -namespace Impl { - -class QthreadsTeamPolicyMember { - private: - typedef Kokkos::Qthreads execution_space; - typedef execution_space::scratch_memory_space scratch_memory_space; - - Impl::QthreadsExec &m_exec; - scratch_memory_space m_team_shared; - const int m_team_size; - const int m_team_rank; - const int m_league_size; - const int m_league_end; - int m_league_rank; - - public: - KOKKOS_INLINE_FUNCTION - const scratch_memory_space &team_shmem() const { return m_team_shared; } - - KOKKOS_INLINE_FUNCTION int league_rank() const { return m_league_rank; } - KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } - KOKKOS_INLINE_FUNCTION int team_rank() const { return m_team_rank; } - KOKKOS_INLINE_FUNCTION int team_size() const { return m_team_size; } - - KOKKOS_INLINE_FUNCTION void team_barrier() const -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - { - } -#else - { - m_exec.shepherd_barrier(m_team_size); - } -#endif - - template - KOKKOS_INLINE_FUNCTION Type team_broadcast(const Type &value, int rank) const -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - { - return Type(); - } -#else - { - return m_exec.template shepherd_broadcast(value, m_team_size, rank); - } -#endif - - template - KOKKOS_INLINE_FUNCTION Type team_reduce(const Type &value) const -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - { - return Type(); - } -#else - { - return m_exec.template shepherd_reduce(m_team_size, value); - } -#endif - - template - KOKKOS_INLINE_FUNCTION typename JoinOp::value_type team_reduce( - const typename JoinOp::value_type &value, const JoinOp &op) const -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - { - return typename JoinOp::value_type(); - } -#else - { - return m_exec.template shepherd_reduce(m_team_size, value, op); - } -#endif - - /** \brief Intra-team exclusive prefix sum with team_rank() ordering. - * - * The highest rank thread can compute the reduction total as - * reduction_total = dev.team_scan( value ) + value; - */ - template - KOKKOS_INLINE_FUNCTION Type team_scan(const Type &value) const -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - { - return Type(); - } -#else - { - return m_exec.template shepherd_scan(m_team_size, value); - } -#endif - - /** \brief Intra-team exclusive prefix sum with team_rank() ordering - * with intra-team non-deterministic ordering accumulation. - * - * The global inter-team accumulation value will, at the end of the league's - * parallel execution, be the scan's total. Parallel execution ordering of - * the league's teams is non-deterministic. As such the base value for each - * team's scan operation is similarly non-deterministic. - */ - template - KOKKOS_INLINE_FUNCTION Type team_scan(const Type &value, - Type *const global_accum) const -#if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - { - return Type(); - } -#else - { - return m_exec.template shepherd_scan(m_team_size, value, - global_accum); - } -#endif - - //---------------------------------------- - // Private driver for task-team parallel. - - struct TaskTeam {}; - - QthreadsTeamPolicyMember(); - explicit QthreadsTeamPolicyMember(const TaskTeam &); - - //---------------------------------------- - // Private for the driver ( for ( member_type i( exec, team ); i; - // i.next_team() ) { ... } - - // Initialize. - template - QthreadsTeamPolicyMember( - Impl::QthreadsExec &exec, - const Kokkos::Impl::TeamPolicyInternal &team) - : m_exec(exec), - m_team_shared(0, 0), - m_team_size(team.m_team_size), - m_team_rank(exec.shepherd_worker_rank()), - m_league_size(team.m_league_size), - m_league_end(team.m_league_size - - team.m_shepherd_iter * - (exec.shepherd_size() - (exec.shepherd_rank() + 1))), - m_league_rank(m_league_end > team.m_shepherd_iter - ? m_league_end - team.m_shepherd_iter - : 0) { - m_exec.shared_reset(m_team_shared); - } - - // Continue. - operator bool() const { return m_league_rank < m_league_end; } - - // Iterate. - void next_team() { - ++m_league_rank; - m_exec.shared_reset(m_team_shared); - } -}; - -template -class TeamPolicyInternal - : public PolicyTraits { - private: - const int m_league_size; - const int m_team_size; - const int m_shepherd_iter; - - public: - //! Tag this class as a kokkos execution policy. - typedef TeamPolicyInternal execution_policy; - typedef Qthreads execution_space; - typedef PolicyTraits traits; - - //---------------------------------------- - - template - inline static int team_size_max(const FunctorType &) { - return Qthreads::instance().shepherd_worker_size(); - } - - template - static int team_size_recommended(const FunctorType &f) { - return team_size_max(f); - } - - template - inline static int team_size_recommended(const FunctorType &f, const int &) { - return team_size_max(f); - } - - //---------------------------------------- - - inline int team_size() const { return m_team_size; } - inline int league_size() const { return m_league_size; } - - // One active team per shepherd. - TeamPolicyInternal(Kokkos::Qthreads &q, const int league_size, - const int team_size, const int /* vector_length */ = 0) - : m_league_size(league_size), - m_team_size(team_size < q.shepherd_worker_size() - ? team_size - : q.shepherd_worker_size()), - m_shepherd_iter((league_size + q.shepherd_size() - 1) / - q.shepherd_size()) {} - - // TODO: Make sure this is correct. - // One active team per shepherd. - TeamPolicyInternal(Kokkos::Qthreads &q, const int league_size, - const Kokkos::AUTO_t & /* team_size_request */ - , - const int /* vector_length */ = 0) - : m_league_size(league_size), - m_team_size(q.shepherd_worker_size()), - m_shepherd_iter((league_size + q.shepherd_size() - 1) / - q.shepherd_size()) {} - - // One active team per shepherd. - TeamPolicyInternal(const int league_size, const int team_size, - const int /* vector_length */ = 0) - : m_league_size(league_size), - m_team_size(team_size < Qthreads::instance().shepherd_worker_size() - ? team_size - : Qthreads::instance().shepherd_worker_size()), - m_shepherd_iter( - (league_size + Qthreads::instance().shepherd_size() - 1) / - Qthreads::instance().shepherd_size()) {} - - // TODO: Make sure this is correct. - // One active team per shepherd. - TeamPolicyInternal(const int league_size, - const Kokkos::AUTO_t & /* team_size_request */ - , - const int /* vector_length */ = 0) - : m_league_size(league_size), - m_team_size(Qthreads::instance().shepherd_worker_size()), - m_shepherd_iter( - (league_size + Qthreads::instance().shepherd_size() - 1) / - Qthreads::instance().shepherd_size()) {} - - // TODO: Doesn't do anything yet. Fix this. - /** \brief set chunk_size to a discrete value*/ - inline TeamPolicyInternal set_chunk_size( - typename traits::index_type chunk_size_) const { - TeamPolicyInternal p = *this; - // p.m_chunk_size = chunk_size_; - return p; - } - - typedef Impl::QthreadsTeamPolicyMember member_type; - - friend class Impl::QthreadsTeamPolicyMember; -}; - -} // namespace Impl - -} // namespace Kokkos - -//---------------------------------------------------------------------------- - -#endif -#endif // #define KOKKOS_QTHREADSEXEC_HPP diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Parallel.hpp b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Parallel.hpp deleted file mode 100644 index 8611818e27cbd385b21aa7c96f8c121fbc91a251..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Parallel.hpp +++ /dev/null @@ -1,753 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_QTHREADS_PARALLEL_HPP -#define KOKKOS_QTHREADS_PARALLEL_HPP - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) - -#include - -#include - -#include - -#include - -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -//---------------------------------------------------------------------------- - -template -class ParallelFor, - Kokkos::Qthreads> { - private: - typedef Kokkos::RangePolicy Policy; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - typedef typename Policy::WorkRange WorkRange; - - const FunctorType m_functor; - const Policy m_policy; - - template - inline static - typename std::enable_if::value>::type - exec_range(const FunctorType& functor, const Member ibeg, - const Member iend) { - for (Member i = ibeg; i < iend; ++i) { - functor(i); - } - } - - template - inline static - typename std::enable_if::value>::type - exec_range(const FunctorType& functor, const Member ibeg, - const Member iend) { - const TagType t{}; - for (Member i = ibeg; i < iend; ++i) { - functor(t, i); - } - } - - // Function is called once by every concurrent thread. - static void exec(QthreadsExec& exec, const void* arg) { - const ParallelFor& self = *((const ParallelFor*)arg); - - const WorkRange range(self.m_policy, exec.worker_rank(), - exec.worker_size()); - - ParallelFor::template exec_range(self.m_functor, range.begin(), - range.end()); - - // All threads wait for completion. - exec.exec_all_barrier(); - } - - public: - inline void execute() const { - Impl::QthreadsExec::exec_all(Qthreads::instance(), &ParallelFor::exec, - this); - } - - ParallelFor(const FunctorType& arg_functor, const Policy& arg_policy) - : m_functor(arg_functor), m_policy(arg_policy) {} -}; - -//---------------------------------------------------------------------------- - -template -class ParallelReduce, ReducerType, - Kokkos::Qthreads> { - private: - typedef Kokkos::RangePolicy Policy; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef - typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; - - // Static Assert WorkTag void if ReducerType not InvalidType - - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - - const FunctorType m_functor; - const Policy m_policy; - const ReducerType m_reducer; - const pointer_type m_result_ptr; - - template - inline static - typename std::enable_if::value>::type - exec_range(const FunctorType& functor, const Member ibeg, - const Member iend, reference_type update) { - for (Member i = ibeg; i < iend; ++i) { - functor(i, update); - } - } - - template - inline static - typename std::enable_if::value>::type - exec_range(const FunctorType& functor, const Member ibeg, - const Member iend, reference_type update) { - const TagType t{}; - for (Member i = ibeg; i < iend; ++i) { - functor(t, i, update); - } - } - - static void exec(QthreadsExec& exec, const void* arg) { - const ParallelReduce& self = *((const ParallelReduce*)arg); - - const WorkRange range(self.m_policy, exec.worker_rank(), - exec.worker_size()); - - ParallelReduce::template exec_range( - self.m_functor, range.begin(), range.end(), - ValueInit::init( - ReducerConditional::select(self.m_functor, self.m_reducer), - exec.exec_all_reduce_value())); - - exec.template exec_all_reduce( - self.m_functor, self.m_reducer); - } - - public: - inline void execute() const { - QthreadsExec::resize_worker_scratch( - ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer)), - 0); - Impl::QthreadsExec::exec_all(Qthreads::instance(), &ParallelReduce::exec, - this); - - const pointer_type data = - (pointer_type)QthreadsExec::exec_all_reduce_result(); - - Kokkos::Impl::FunctorFinal::final( - ReducerConditional::select(m_functor, m_reducer), data); - - if (m_result_ptr) { - const unsigned n = ValueTraits::value_count( - ReducerConditional::select(m_functor, m_reducer)); - for (unsigned i = 0; i < n; ++i) { - m_result_ptr[i] = data[i]; - } - } - } - - template - ParallelReduce( - const FunctorType& arg_functor, const Policy& arg_policy, - const ViewType& arg_result_view, - typename std::enable_if::value && - !Kokkos::is_reducer_type::value, - void*>::type = NULL) - : m_functor(arg_functor), - m_policy(arg_policy), - m_reducer(InvalidType()), - m_result_ptr(arg_result_view.data()) {} - - ParallelReduce(const FunctorType& arg_functor, Policy arg_policy, - const ReducerType& reducer) - : m_functor(arg_functor), - m_policy(arg_policy), - m_reducer(reducer), - m_result_ptr(reducer.result_view().data()) {} -}; - -//---------------------------------------------------------------------------- - -template -class ParallelFor, Kokkos::Qthreads> { - private: - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - typedef typename Policy::member_type Member; - typedef typename Policy::work_tag WorkTag; - - const FunctorType m_functor; - const Policy m_policy; - - template - inline static - typename std::enable_if::value>::type - exec_team(const FunctorType& functor, Member member) { - while (member) { - functor(member); - member.team_barrier(); - member.next_team(); - } - } - - template - inline static - typename std::enable_if::value>::type - exec_team(const FunctorType& functor, Member member) { - const TagType t{}; - while (member) { - functor(t, member); - member.team_barrier(); - member.next_team(); - } - } - - static void exec(QthreadsExec& exec, const void* arg) { - const ParallelFor& self = *((const ParallelFor*)arg); - - ParallelFor::template exec_team(self.m_functor, - Member(exec, self.m_policy)); - - exec.exec_all_barrier(); - } - - public: - inline void execute() const { - QthreadsExec::resize_worker_scratch( - /* reduction memory */ 0, - /* team shared memory */ FunctorTeamShmemSize::value( - m_functor, m_policy.team_size())); - Impl::QthreadsExec::exec_all(Qthreads::instance(), &ParallelFor::exec, - this); - } - - ParallelFor(const FunctorType& arg_functor, const Policy& arg_policy) - : m_functor(arg_functor), m_policy(arg_policy) {} -}; - -//---------------------------------------------------------------------------- - -template -class ParallelReduce, ReducerType, - Kokkos::Qthreads> { - private: - typedef Kokkos::Impl::TeamPolicyInternal - Policy; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::if_c::value, - FunctorType, ReducerType> - ReducerConditional; - typedef typename ReducerConditional::type ReducerTypeFwd; - typedef - typename Kokkos::Impl::if_c::value, - WorkTag, void>::type WorkTagFwd; - - typedef Kokkos::Impl::FunctorValueTraits - ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - - const FunctorType m_functor; - const Policy m_policy; - const ReducerType m_reducer; - const pointer_type m_result_ptr; - - template - inline static - typename std::enable_if::value>::type - exec_team(const FunctorType& functor, Member member, - reference_type update) { - while (member) { - functor(member, update); - member.team_barrier(); - member.next_team(); - } - } - - template - inline static - typename std::enable_if::value>::type - exec_team(const FunctorType& functor, Member member, - reference_type update) { - const TagType t{}; - while (member) { - functor(t, member, update); - member.team_barrier(); - member.next_team(); - } - } - - static void exec(QthreadsExec& exec, const void* arg) { - const ParallelReduce& self = *((const ParallelReduce*)arg); - - ParallelReduce::template exec_team( - self.m_functor, Member(exec, self.m_policy), - ValueInit::init( - ReducerConditional::select(self.m_functor, self.m_reducer), - exec.exec_all_reduce_value())); - - exec.template exec_all_reduce( - self.m_functor, self.m_reducer); - } - - public: - inline void execute() const { - QthreadsExec::resize_worker_scratch( - /* reduction memory */ ValueTraits::value_size( - ReducerConditional::select(m_functor, m_reducer)), - /* team shared memory */ FunctorTeamShmemSize::value( - m_functor, m_policy.team_size())); - - Impl::QthreadsExec::exec_all(Qthreads::instance(), &ParallelReduce::exec, - this); - - const pointer_type data = - (pointer_type)QthreadsExec::exec_all_reduce_result(); - - Kokkos::Impl::FunctorFinal::final( - ReducerConditional::select(m_functor, m_reducer), data); - - if (m_result_ptr) { - const unsigned n = ValueTraits::value_count( - ReducerConditional::select(m_functor, m_reducer)); - for (unsigned i = 0; i < n; ++i) { - m_result_ptr[i] = data[i]; - } - } - } - - template - ParallelReduce( - const FunctorType& arg_functor, const Policy& arg_policy, - const ViewType& arg_result, - typename std::enable_if::value && - !Kokkos::is_reducer_type::value, - void*>::type = NULL) - : m_functor(arg_functor), - m_policy(arg_policy), - m_reducer(InvalidType()), - m_result_ptr(arg_result.ptr_on_device()) {} - - inline ParallelReduce(const FunctorType& arg_functor, Policy arg_policy, - const ReducerType& reducer) - : m_functor(arg_functor), - m_policy(arg_policy), - m_reducer(reducer), - m_result_ptr(reducer.result_view().data()) {} -}; - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -template -class ParallelScan, - Kokkos::Qthreads> { - private: - typedef Kokkos::RangePolicy Policy; - - typedef typename Policy::work_tag WorkTag; - typedef typename Policy::WorkRange WorkRange; - typedef typename Policy::member_type Member; - - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef Kokkos::Impl::FunctorValueInit ValueInit; - - typedef typename ValueTraits::pointer_type pointer_type; - typedef typename ValueTraits::reference_type reference_type; - - const FunctorType m_functor; - const Policy m_policy; - - template - inline static - typename std::enable_if::value>::type - exec_range(const FunctorType& functor, const Member ibeg, - const Member iend, reference_type update, const bool final) { - for (Member i = ibeg; i < iend; ++i) { - functor(i, update, final); - } - } - - template - inline static - typename std::enable_if::value>::type - exec_range(const FunctorType& functor, const Member ibeg, - const Member iend, reference_type update, const bool final) { - const TagType t{}; - for (Member i = ibeg; i < iend; ++i) { - functor(t, i, update, final); - } - } - - static void exec(QthreadsExec& exec, const void* arg) { - const ParallelScan& self = *((const ParallelScan*)arg); - - const WorkRange range(self.m_policy, exec.worker_rank(), - exec.worker_size()); - - // Initialize thread-local value - reference_type update = - ValueInit::init(self.m_functor, exec.exec_all_reduce_value()); - - ParallelScan::template exec_range(self.m_functor, range.begin(), - range.end(), update, false); - - exec.template exec_all_scan( - self.m_functor); - - ParallelScan::template exec_range(self.m_functor, range.begin(), - range.end(), update, true); - - exec.exec_all_barrier(); - } - - public: - inline void execute() const { - QthreadsExec::resize_worker_scratch(ValueTraits::value_size(m_functor), 0); - Impl::QthreadsExec::exec_all(Qthreads::instance(), &ParallelScan::exec, - this); - } - - ParallelScan(const FunctorType& arg_functor, const Policy& arg_policy) - : m_functor(arg_functor), m_policy(arg_policy) {} -}; - -} // namespace Impl - -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { - -template -KOKKOS_INLINE_FUNCTION - Impl::TeamThreadRangeBoundariesStruct - TeamThreadRange(const Impl::QthreadsTeamPolicyMember& thread, - const iType& count) { - return Impl::TeamThreadRangeBoundariesStruct( - thread, count); -} - -template -KOKKOS_INLINE_FUNCTION Impl::TeamThreadRangeBoundariesStruct< - typename std::common_type::type, - Impl::QthreadsTeamPolicyMember> -TeamThreadRange(const Impl::QthreadsTeamPolicyMember& thread, - const iType1& begin, const iType2& end) { - typedef typename std::common_type::type iType; - return Impl::TeamThreadRangeBoundariesStruct( - thread, iType(begin), iType(end)); -} - -template -KOKKOS_INLINE_FUNCTION Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember> -ThreadVectorRange(const Impl::QthreadsTeamPolicyMember& thread, - const iType& count) { - return Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>(thread, count); -} - -template -KOKKOS_INLINE_FUNCTION Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember> -ThreadVectorRange(const Impl::QthreadsTeamPolicyMember& thread, - const iType& arg_begin, const iType& arg_end) { - return Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>(thread, arg_begin, arg_end); -} - -KOKKOS_INLINE_FUNCTION -Impl::ThreadSingleStruct PerTeam( - const Impl::QthreadsTeamPolicyMember& thread) { - return Impl::ThreadSingleStruct(thread); -} - -KOKKOS_INLINE_FUNCTION -Impl::VectorSingleStruct PerThread( - const Impl::QthreadsTeamPolicyMember& thread) { - return Impl::VectorSingleStruct(thread); -} - -/** \brief Inter-thread parallel_for. Executes lambda(iType i) for each - * i=0..N-1. - * - * The range i=0..N-1 is mapped to all threads of the the calling thread team. - * This functionality requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_for( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const Lambda& lambda) { - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) - lambda(i); -} - -/** \brief Inter-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all threads of the the calling thread team - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const Lambda& lambda, ValueType& result) { - result = ValueType(); - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - ValueType tmp = ValueType(); - lambda(i, tmp); - result += tmp; - } - - result = - loop_boundaries.thread.team_reduce(result, Impl::JoinAdd()); -} - -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a reduction of val is performed using JoinType(ValueType& val, const - * ValueType& update) and put into init_result. The input value of init_result - * is used as initializer for temporary variables of ValueType. Therefore the - * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::TeamThreadRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const Lambda& lambda, const JoinType& join, ValueType& init_result) { - ValueType result = init_result; - - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - ValueType tmp = ValueType(); - lambda(i, tmp); - join(result, tmp); - } - - init_result = loop_boundaries.thread.team_reduce( - result, Impl::JoinLambdaAdapter(join)); -} - -/** \brief Intra-thread vector parallel_for. Executes lambda(iType i) for each - * i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread. - * This functionality requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_for( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const Lambda& lambda) { -#ifdef KOKKOS_ENABLE_PRAGMA_IVDEP -#pragma ivdep -#endif - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) - lambda(i); -} - -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a summation of val is performed and put into result. This functionality - * requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const Lambda& lambda, ValueType& result) { - result = ValueType(); -#ifdef KOKKOS_ENABLE_PRAGMA_IVDEP -#pragma ivdep -#endif - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - ValueType tmp = ValueType(); - lambda(i, tmp); - result += tmp; - } -} - -/** \brief Intra-thread vector parallel_reduce. Executes lambda(iType i, - * ValueType & val) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes of the the calling thread - * and a reduction of val is performed using JoinType(ValueType& val, const - * ValueType& update) and put into init_result. The input value of init_result - * is used as initializer for temporary variables of ValueType. Therefore the - * input value should be the neutral element with respect to the join operation - * (e.g. '0 for +-' or '1 for *'). This functionality requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_reduce( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const Lambda& lambda, const JoinType& join, ValueType& init_result) { - ValueType result = init_result; -#ifdef KOKKOS_ENABLE_PRAGMA_IVDEP -#pragma ivdep -#endif - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - ValueType tmp = ValueType(); - lambda(i, tmp); - join(result, tmp); - } - init_result = result; -} - -/** \brief Intra-thread vector parallel exclusive prefix sum. Executes - * lambda(iType i, ValueType & val, bool final) for each i=0..N-1. - * - * The range i=0..N-1 is mapped to all vector lanes in the thread and a scan - * operation is performed. Depending on the target execution space the operator - * might be called twice: once with final=false and once with final=true. When - * final==true val contains the prefix sum value. The contribution of this "i" - * needs to be added to val no matter whether final==true or not. In a serial - * execution (i.e. team_size==1) the operator is only called once with - * final==true. Scan_val will be set to the final sum value over all vector - * lanes. This functionality requires C++11 support.*/ -template -KOKKOS_INLINE_FUNCTION void parallel_scan( - const Impl::ThreadVectorRangeBoundariesStruct< - iType, Impl::QthreadsTeamPolicyMember>& loop_boundaries, - const FunctorType& lambda) { - typedef Kokkos::Impl::FunctorValueTraits ValueTraits; - typedef typename ValueTraits::value_type value_type; - - value_type scan_val = value_type(); - -#ifdef KOKKOS_ENABLE_PRAGMA_IVDEP -#pragma ivdep -#endif - for (iType i = loop_boundaries.start; i < loop_boundaries.end; - i += loop_boundaries.increment) { - lambda(i, scan_val, true); - } -} - -template -KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct& - single_struct, - const FunctorType& lambda) { - lambda(); -} - -template -KOKKOS_INLINE_FUNCTION void single( - const Impl::ThreadSingleStruct& - single_struct, - const FunctorType& lambda) { - if (single_struct.team_member.team_rank() == 0) lambda(); -} - -template -KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct& - single_struct, - const FunctorType& lambda, ValueType& val) { - lambda(val); -} - -template -KOKKOS_INLINE_FUNCTION void single( - const Impl::ThreadSingleStruct& - single_struct, - const FunctorType& lambda, ValueType& val) { - if (single_struct.team_member.team_rank() == 0) { - lambda(val); - } - single_struct.team_member.team_broadcast(val, 0); -} - -} // namespace Kokkos - -#endif -#endif /* #define KOKKOS_QTHREADS_PARALLEL_HPP */ diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Task.cpp b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Task.cpp deleted file mode 100644 index b3a903494a60e85115e97acf748170dd67b99ca4..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Task.cpp +++ /dev/null @@ -1,308 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) && defined(KOKKOS_ENABLE_TASKPOLICY) - -#include -#include - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template class TaskQueue; - -//---------------------------------------------------------------------------- - -TaskExec::TaskExec() - : m_self_exec(0), - m_team_exec(0), - m_sync_mask(0), - m_sync_value(0), - m_sync_step(0), - m_group_rank(0), - m_team_rank(0), - m_team_size(1) {} - -TaskExec::TaskExec(Kokkos::Impl::QthreadsExec &arg_exec, - int const arg_team_size) - : m_self_exec(&arg_exec), - m_team_exec(arg_exec.pool_rev(arg_exec.pool_rank_rev() / arg_team_size)), - m_sync_mask(0), - m_sync_value(0), - m_sync_step(0), - m_group_rank(arg_exec.pool_rank_rev() / arg_team_size), - m_team_rank(arg_exec.pool_rank_rev() % arg_team_size), - m_team_size(arg_team_size) { - // This team spans - // m_self_exec->pool_rev( team_size * group_rank ) - // m_self_exec->pool_rev( team_size * ( group_rank + 1 ) - 1 ) - - int64_t volatile *const sync = (int64_t *)m_self_exec->scratch_reduce(); - - sync[0] = int64_t(0); - sync[1] = int64_t(0); - - for (int i = 0; i < m_team_size; ++i) { - m_sync_value |= int64_t(1) << (8 * i); - m_sync_mask |= int64_t(3) << (8 * i); - } - - Kokkos::memory_fence(); -} - -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - -void TaskExec::team_barrier() const { - if (1 < m_team_size) { - if (m_team_exec->scratch_reduce_size() < int(2 * sizeof(int64_t))) { - Kokkos::abort("TaskQueue scratch_reduce memory too small"); - } - - // Use team shared memory to synchronize. - // Alternate memory locations between barriers to avoid a sequence - // of barriers overtaking one another. - - int64_t volatile *const sync = - ((int64_t *)m_team_exec->scratch_reduce()) + (m_sync_step & 0x01); - - // This team member sets one byte within the sync variable - int8_t volatile *const sync_self = ((int8_t *)sync) + m_team_rank; - -#if 0 -fprintf( stdout, - "barrier group(%d) member(%d) step(%d) wait(%lx) : before(%lx)\n", - m_group_rank, - m_team_rank, - m_sync_step, - m_sync_value, - *sync - ); -fflush(stdout); -#endif - - *sync_self = int8_t(m_sync_value & 0x03); // signal arrival - - while (m_sync_value != *sync) - ; // wait for team to arrive - -#if 0 -fprintf( stdout, - "barrier group(%d) member(%d) step(%d) wait(%lx) : after(%lx)\n", - m_group_rank, - m_team_rank, - m_sync_step, - m_sync_value, - *sync - ); -fflush(stdout); -#endif - - ++m_sync_step; - - if (0 == (0x01 & m_sync_step)) { // Every other step - m_sync_value ^= m_sync_mask; - if (1000 < m_sync_step) m_sync_step = 0; - } - } -} - -#endif - -//---------------------------------------------------------------------------- - -void TaskQueueSpecialization::execute( - TaskQueue *const queue) { - using execution_space = Kokkos::Qthreads; - using queue_type = TaskQueue; - using task_root_type = TaskBase; - using PoolExec = Kokkos::Impl::QthreadsExec; - using Member = TaskExec; - - task_root_type *const end = (task_root_type *)task_root_type::EndTag; - - // Required: team_size <= 8 - - const int team_size = PoolExec::pool_size(2); // Threads per core - // const int team_size = PoolExec::pool_size(1); // Threads per NUMA - - if (8 < team_size) { - Kokkos::abort("TaskQueue unsupported team size"); - } - -#pragma omp parallel - { - PoolExec &self = *PoolExec::get_thread_omp(); - - Member single_exec; - Member team_exec(self, team_size); - - // Team shared memory - task_root_type *volatile *const task_shared = - (task_root_type **)team_exec.m_team_exec->scratch_thread(); - -// Barrier across entire Qthreads thread pool to insure initialization -#pragma omp barrier - - // Loop until all queues are empty and no tasks in flight - - do { - // Each team lead attempts to acquire either a thread team task - // or collection of single thread tasks for the team. - - if (0 == team_exec.team_rank()) { - task_root_type *tmp = - 0 < *((volatile int *)&queue->m_ready_count) ? end : 0; - - // Loop by priority and then type - for (int i = 0; i < queue_type::NumQueue && end == tmp; ++i) { - for (int j = 0; j < 2 && end == tmp; ++j) { - tmp = queue_type::pop_task(&queue->m_ready[i][j]); - } - } - - *task_shared = tmp; - - // Fence to be sure shared_task_array is stored - Kokkos::memory_fence(); - } - - // Whole team waits for every team member to reach this statement - team_exec.team_barrier(); - - Kokkos::memory_fence(); - - task_root_type *const task = *task_shared; - -#if 0 -fprintf( stdout, - "\nexecute group(%d) member(%d) task_shared(0x%lx) task(0x%lx)\n", - team_exec.m_group_rank, - team_exec.m_team_rank, - uintptr_t(task_shared), - uintptr_t(task) - ); -fflush(stdout); -#endif - - if (0 == task) break; // 0 == m_ready_count - - if (end == task) { - team_exec.team_barrier(); - } else if (task_root_type::TaskTeam == task->m_task_type) { - // Thread Team Task - (*task->m_apply)(task, &team_exec); - - // The m_apply function performs a barrier - - if (0 == team_exec.team_rank()) { - // team member #0 completes the task, which may delete the task - queue->complete(task); - } - } else { - // Single Thread Task - - if (0 == team_exec.team_rank()) { - (*task->m_apply)(task, &single_exec); - - queue->complete(task); - } - - // All team members wait for whole team to reach this statement. - // Not necessary to complete the task. - // Is necessary to prevent task_shared from being updated - // before it is read by all threads. - team_exec.team_barrier(); - } - } while (1); - } - // END #pragma omp parallel -} - -void TaskQueueSpecialization:: - iff_single_thread_recursive_execute( - TaskQueue *const queue) { - using execution_space = Kokkos::Qthreads; - using queue_type = TaskQueue; - using task_root_type = TaskBase; - using Member = TaskExec; - - if (1 == omp_get_num_threads()) { - task_root_type *const end = (task_root_type *)task_root_type::EndTag; - - Member single_exec; - - task_root_type *task = end; - - do { - task = end; - - // Loop by priority and then type - for (int i = 0; i < queue_type::NumQueue && end == task; ++i) { - for (int j = 0; j < 2 && end == task; ++j) { - task = queue_type::pop_task(&queue->m_ready[i][j]); - } - } - - if (end == task) break; - - (*task->m_apply)(task, &single_exec); - - queue->complete(task); - - } while (1); - } -} - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -#else -void KOKKOS_SRC_QTHREADS_TASK_PREVENT_LINK_ERROR() {} -#endif /* #if defined( KOKKOS_ENABLE_QTHREADS ) && defined( \ - KOKKOS_ENABLE_TASKPOLICY ) */ diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Task.hpp b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Task.hpp deleted file mode 100644 index 1b2c3d3855e19d0a79af18257d2641eaf42239b5..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_Task.hpp +++ /dev/null @@ -1,149 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_IMPL_QTHREADS_TASK_HPP -#define KOKKOS_IMPL_QTHREADS_TASK_HPP - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) && defined(KOKKOS_ENABLE_TASKPOLICY) - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template <> -class TaskQueueSpecialization { - public: - using execution_space = Kokkos::Qthreads; - using queue_type = Kokkos::Impl::TaskQueue; - using task_base_type = Kokkos::Impl::TaskBase; - - // Must specify memory space - using memory_space = Kokkos::HostSpace; - - static void iff_single_thread_recursive_execute(queue_type* const); - - // Must provide task queue execution function - static void execute(queue_type* const); - - // Must provide mechanism to set function pointer in - // execution space from the host process. - template - static void proc_set_apply(task_base_type::function_type* ptr) { - using TaskType = TaskBase; - *ptr = TaskType::apply; - } -}; - -extern template class TaskQueue; - -//---------------------------------------------------------------------------- - -template <> -class TaskExec { - private: - TaskExec(TaskExec&&) = delete; - TaskExec(TaskExec const&) = delete; - TaskExec& operator=(TaskExec&&) = delete; - TaskExec& operator=(TaskExec const&) = delete; - - using PoolExec = Kokkos::Impl::QthreadsExec; - - friend class Kokkos::Impl::TaskQueue; - friend class Kokkos::Impl::TaskQueueSpecialization; - - PoolExec* const m_self_exec; ///< This thread's thread pool data structure - PoolExec* const m_team_exec; ///< Team thread's thread pool data structure - int64_t m_sync_mask; - int64_t mutable m_sync_value; - int mutable m_sync_step; - int m_group_rank; ///< Which "team" subset of thread pool - int m_team_rank; ///< Which thread within a team - int m_team_size; - - TaskExec(); - TaskExec(PoolExec& arg_exec, int arg_team_size); - - public: -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - void* team_shared() const { - return m_team_exec ? m_team_exec->scratch_thread() : (void*)0; - } - - int team_shared_size() const { - return m_team_exec ? m_team_exec->scratch_thread_size() : 0; - } - - /**\brief Whole team enters this function call - * before any teeam member returns from - * this function call. - */ - void team_barrier() const; -#else - KOKKOS_INLINE_FUNCTION void team_barrier() const {} - KOKKOS_INLINE_FUNCTION void* team_shared() const { return 0; } - KOKKOS_INLINE_FUNCTION int team_shared_size() const { return 0; } -#endif - - KOKKOS_INLINE_FUNCTION - int team_rank() const { return m_team_rank; } - - KOKKOS_INLINE_FUNCTION - int team_size() const { return m_team_size; } -}; - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #if defined( KOKKOS_ENABLE_TASKPOLICY ) */ -#endif /* #ifndef KOKKOS_IMPL_QTHREADS_TASK_HPP */ diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskPolicy.cpp.old b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskPolicy.cpp.old deleted file mode 100644 index a59afb2881e9f6771f8b9808af07ed6f54e25496..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskPolicy.cpp.old +++ /dev/null @@ -1,493 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 2.0 -// Copyright (2014) Sandia Corporation -// -// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact H. Carter Edwards (hcedwar@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -// Experimental unified task-data parallel manycore LDRD. - - -#include -#if defined( KOKKOS_ENABLE_QTHREADS ) - -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include - -#if defined( KOKKOS_ENABLE_TASKDAG ) - -namespace Kokkos { -namespace Experimental { -namespace Impl { - -typedef TaskMember< Kokkos::Qthreads , void , void > Task ; - -namespace { - -inline -unsigned padded_sizeof_derived( unsigned sizeof_derived ) -{ - return sizeof_derived + - ( sizeof_derived % sizeof(Task*) ? sizeof(Task*) - sizeof_derived % sizeof(Task*) : 0 ); -} - -// int lock_alloc_dealloc = 0 ; - -} // namespace - -void Task::deallocate( void * ptr ) -{ - // Counting on 'free' thread safety so lock/unlock not required. - // However, isolate calls here to mitigate future need to introduce lock/unlock. - - // lock - - // while ( ! Kokkos::atomic_compare_exchange_strong( & lock_alloc_dealloc , 0 , 1 ) ); - - free( ptr ); - - // unlock - - // Kokkos::atomic_compare_exchange_strong( & lock_alloc_dealloc , 1 , 0 ); -} - -void * Task::allocate( const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity ) -{ - // Counting on 'malloc' thread safety so lock/unlock not required. - // However, isolate calls here to mitigate future need to introduce lock/unlock. - - // lock - - // while ( ! Kokkos::atomic_compare_exchange_strong( & lock_alloc_dealloc , 0 , 1 ) ); - - void * const ptr = malloc( padded_sizeof_derived( arg_sizeof_derived ) + arg_dependence_capacity * sizeof(Task*) ); - - // unlock - - // Kokkos::atomic_compare_exchange_strong( & lock_alloc_dealloc , 1 , 0 ); - - return ptr ; -} - -Task::~TaskMember() -{ - -} - - -Task::TaskMember( const function_verify_type arg_verify - , const function_dealloc_type arg_dealloc - , const function_single_type arg_apply_single - , const function_team_type arg_apply_team - , volatile int & arg_active_count - , const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity - ) - : m_dealloc( arg_dealloc ) - , m_verify( arg_verify ) - , m_apply_single( arg_apply_single ) - , m_apply_team( arg_apply_team ) - , m_active_count( & arg_active_count ) - , m_qfeb(0) - , m_dep( (Task **)( ((unsigned char *) this) + padded_sizeof_derived( arg_sizeof_derived ) ) ) - , m_dep_capacity( arg_dependence_capacity ) - , m_dep_size( 0 ) - , m_ref_count( 0 ) - , m_state( Kokkos::Experimental::TASK_STATE_CONSTRUCTING ) -{ - qthread_empty( & m_qfeb ); // Set to full when complete - for ( unsigned i = 0 ; i < arg_dependence_capacity ; ++i ) m_dep[i] = 0 ; -} - -Task::TaskMember( const function_dealloc_type arg_dealloc - , const function_single_type arg_apply_single - , const function_team_type arg_apply_team - , volatile int & arg_active_count - , const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity - ) - : m_dealloc( arg_dealloc ) - , m_verify( & Task::verify_type ) - , m_apply_single( arg_apply_single ) - , m_apply_team( arg_apply_team ) - , m_active_count( & arg_active_count ) - , m_qfeb(0) - , m_dep( (Task **)( ((unsigned char *) this) + padded_sizeof_derived( arg_sizeof_derived ) ) ) - , m_dep_capacity( arg_dependence_capacity ) - , m_dep_size( 0 ) - , m_ref_count( 0 ) - , m_state( Kokkos::Experimental::TASK_STATE_CONSTRUCTING ) -{ - qthread_empty( & m_qfeb ); // Set to full when complete - for ( unsigned i = 0 ; i < arg_dependence_capacity ; ++i ) m_dep[i] = 0 ; -} - -//---------------------------------------------------------------------------- - -void Task::throw_error_add_dependence() const -{ - std::cerr << "TaskMember< Qthreads >::add_dependence ERROR" - << " state(" << m_state << ")" - << " dep_size(" << m_dep_size << ")" - << std::endl ; - throw std::runtime_error("TaskMember< Qthreads >::add_dependence ERROR"); -} - -void Task::throw_error_verify_type() -{ - throw std::runtime_error("TaskMember< Qthreads >::verify_type ERROR"); -} - -//---------------------------------------------------------------------------- - -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) -void Task::assign( Task ** const lhs , Task * rhs , const bool no_throw ) -{ - static const char msg_error_header[] = "Kokkos::Impl::TaskManager::assign ERROR" ; - static const char msg_error_count[] = ": negative reference count" ; - static const char msg_error_complete[] = ": destroy task that is not complete" ; - static const char msg_error_dependences[] = ": destroy task that has dependences" ; - static const char msg_error_exception[] = ": caught internal exception" ; - - if ( rhs ) { Kokkos::atomic_increment( &(*rhs).m_ref_count ); } - - Task * const lhs_val = Kokkos::atomic_exchange( lhs , rhs ); - - if ( lhs_val ) { - - const int count = Kokkos::atomic_fetch_add( & (*lhs_val).m_ref_count , -1 ); - - const char * msg_error = 0 ; - - try { - - if ( 1 == count ) { - - // Reference count at zero, delete it - - // Should only be deallocating a completed task - if ( (*lhs_val).m_state == Kokkos::Experimental::TASK_STATE_COMPLETE ) { - - // A completed task should not have dependences... - for ( int i = 0 ; i < (*lhs_val).m_dep_size && 0 == msg_error ; ++i ) { - if ( (*lhs_val).m_dep[i] ) msg_error = msg_error_dependences ; - } - } - else { - msg_error = msg_error_complete ; - } - - if ( 0 == msg_error ) { - // Get deletion function and apply it - const Task::function_dealloc_type d = (*lhs_val).m_dealloc ; - - (*d)( lhs_val ); - } - } - else if ( count <= 0 ) { - msg_error = msg_error_count ; - } - } - catch( ... ) { - if ( 0 == msg_error ) msg_error = msg_error_exception ; - } - - if ( 0 != msg_error ) { - if ( no_throw ) { - std::cerr << msg_error_header << msg_error << std::endl ; - std::cerr.flush(); - } - else { - std::string msg(msg_error_header); - msg.append(msg_error); - throw std::runtime_error( msg ); - } - } - } -} -#endif - - -//---------------------------------------------------------------------------- - -void Task::closeout() -{ - enum { RESPAWN = int( Kokkos::Experimental::TASK_STATE_WAITING ) | - int( Kokkos::Experimental::TASK_STATE_EXECUTING ) }; - -#if 0 -fprintf( stdout - , "worker(%d.%d) task 0x%.12lx %s\n" - , qthread_shep() - , qthread_worker_local(NULL) - , reinterpret_cast(this) - , ( m_state == RESPAWN ? "respawn" : "complete" ) - ); -fflush(stdout); -#endif - - // When dependent tasks run there would be a race - // condition between destroying this task and - // querying the active count pointer from this task. - int volatile * const active_count = m_active_count ; - - if ( m_state == RESPAWN ) { - // Task requests respawn, set state to waiting and reschedule the task - m_state = Kokkos::Experimental::TASK_STATE_WAITING ; - schedule(); - } - else { - - // Task did not respawn, is complete - m_state = Kokkos::Experimental::TASK_STATE_COMPLETE ; - - // Release dependences before allowing dependent tasks to run. - // Otherwise there is a thread race condition for removing dependences. - for ( int i = 0 ; i < m_dep_size ; ++i ) { - assign( & m_dep[i] , 0 ); - } - - // Set Qthreads FEB to full so that dependent tasks are allowed to execute. - // This 'task' may be deleted immediately following this function call. - qthread_fill( & m_qfeb ); - - // The dependent task could now complete and destroy 'this' task - // before the call to 'qthread_fill' returns. Therefore, for - // thread safety assume that 'this' task has now been destroyed. - } - - // Decrement active task count before returning. - Kokkos::atomic_decrement( active_count ); -} - -aligned_t Task::qthread_func( void * arg ) -{ - Task * const task = reinterpret_cast< Task * >(arg); - - // First member of the team change state to executing. - // Use compare-exchange to avoid race condition with a respawn. - Kokkos::atomic_compare_exchange_strong( & task->m_state - , int(Kokkos::Experimental::TASK_STATE_WAITING) - , int(Kokkos::Experimental::TASK_STATE_EXECUTING) - ); - - if ( task->m_apply_team && ! task->m_apply_single ) { - Kokkos::Impl::QthreadsTeamPolicyMember::TaskTeam task_team_tag ; - - // Initialize team size and rank with shephered info - Kokkos::Impl::QthreadsTeamPolicyMember member( task_team_tag ); - - (*task->m_apply_team)( task , member ); - -#if 0 -fprintf( stdout - , "worker(%d.%d) task 0x%.12lx executed by member(%d:%d)\n" - , qthread_shep() - , qthread_worker_local(NULL) - , reinterpret_cast(task) - , member.team_rank() - , member.team_size() - ); -fflush(stdout); -#endif - - member.team_barrier(); - if ( member.team_rank() == 0 ) task->closeout(); - member.team_barrier(); - } - else if ( task->m_apply_team && task->m_apply_single == reinterpret_cast(1) ) { - // Team hard-wired to one, no cloning - Kokkos::Impl::QthreadsTeamPolicyMember member ; - (*task->m_apply_team)( task , member ); - task->closeout(); - } - else { - (*task->m_apply_single)( task ); - task->closeout(); - } - -#if 0 -fprintf( stdout - , "worker(%d.%d) task 0x%.12lx return\n" - , qthread_shep() - , qthread_worker_local(NULL) - , reinterpret_cast(task) - ); -fflush(stdout); -#endif - - return 0 ; -} - -void Task::respawn() -{ - // Change state from pure executing to ( waiting | executing ) - // to avoid confusion with simply waiting. - Kokkos::atomic_compare_exchange_strong( & m_state - , int(Kokkos::Experimental::TASK_STATE_EXECUTING) - , int(Kokkos::Experimental::TASK_STATE_WAITING | - Kokkos::Experimental::TASK_STATE_EXECUTING) - ); -} - -void Task::schedule() -{ - // Is waiting for execution - - // Increment active task count before spawning. - Kokkos::atomic_increment( m_active_count ); - - // spawn in Qthreads. must malloc the precondition array and give to Qthreads. - // Qthreads will eventually free this allocation so memory will not be leaked. - - // concern with thread safety of malloc, does this need to be guarded? - aligned_t ** qprecon = (aligned_t **) malloc( ( m_dep_size + 1 ) * sizeof(aligned_t *) ); - - qprecon[0] = reinterpret_cast( uintptr_t(m_dep_size) ); - - for ( int i = 0 ; i < m_dep_size ; ++i ) { - qprecon[i+1] = & m_dep[i]->m_qfeb ; // Qthreads precondition flag - } - - if ( m_apply_team && ! m_apply_single ) { - // If more than one shepherd spawn on a shepherd other than this shepherd - const int num_shepherd = qthread_num_shepherds(); - const int num_worker_per_shepherd = qthread_num_workers_local(NO_SHEPHERD); - const int this_shepherd = qthread_shep(); - - int spawn_shepherd = ( this_shepherd + 1 ) % num_shepherd ; - -#if 0 -fprintf( stdout - , "worker(%d.%d) task 0x%.12lx spawning on shepherd(%d) clone(%d)\n" - , qthread_shep() - , qthread_worker_local(NULL) - , reinterpret_cast(this) - , spawn_shepherd - , num_worker_per_shepherd - 1 - ); -fflush(stdout); -#endif - - qthread_spawn_cloneable - ( & Task::qthread_func - , this - , 0 - , NULL - , m_dep_size , qprecon /* dependences */ - , spawn_shepherd - , unsigned( QTHREAD_SPAWN_SIMPLE | QTHREAD_SPAWN_LOCAL_PRIORITY ) - , num_worker_per_shepherd - 1 - ); - } - else { - qthread_spawn( & Task::qthread_func /* function */ - , this /* function argument */ - , 0 - , NULL - , m_dep_size , qprecon /* dependences */ - , NO_SHEPHERD - , QTHREAD_SPAWN_SIMPLE /* allows optimization for non-blocking task */ - ); - } -} - -} // namespace Impl -} // namespace Experimental -} // namespace Kokkos - -namespace Kokkos { -namespace Experimental { - -TaskPolicy< Kokkos::Qthreads >:: -TaskPolicy - ( const unsigned /* arg_task_max_count */ - , const unsigned /* arg_task_max_size */ - , const unsigned arg_task_default_dependence_capacity - , const unsigned arg_task_team_size - ) - : m_default_dependence_capacity( arg_task_default_dependence_capacity ) - , m_team_size( arg_task_team_size != 0 ? arg_task_team_size : unsigned(qthread_num_workers_local(NO_SHEPHERD)) ) - , m_active_count_root(0) - , m_active_count( m_active_count_root ) -{ - const unsigned num_worker_per_shepherd = unsigned( qthread_num_workers_local(NO_SHEPHERD) ); - - if ( m_team_size != 1 && m_team_size != num_worker_per_shepherd ) { - std::ostringstream msg ; - msg << "Kokkos::Experimental::TaskPolicy< Kokkos::Qthreads >( " - << "default_depedence = " << arg_task_default_dependence_capacity - << " , team_size = " << arg_task_team_size - << " ) ERROR, valid team_size arguments are { (omitted) , 1 , " << num_worker_per_shepherd << " }" ; - Kokkos::Impl::throw_runtime_exception(msg.str()); - } -} - -TaskPolicy< Kokkos::Qthreads >::member_type & -TaskPolicy< Kokkos::Qthreads >::member_single() -{ - static member_type s ; - return s ; -} - -void wait( Kokkos::Experimental::TaskPolicy< Kokkos::Qthreads > & policy ) -{ - volatile int * const active_task_count = & policy.m_active_count ; - while ( *active_task_count ) qthread_yield(); -} - -} // namespace Experimental -} // namespace Kokkos - -#else -void KOKKOS_CORE_SRC_QTHREADS_KOKKOS_QTHREADS_TASKPOLICY_PREVENT_LINK_ERROR() {} -#endif // #if defined( KOKKOS_ENABLE_TASKDAG ) -#endif // #if defined( KOKKOS_ENABLE_QTHREADS ) - diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskPolicy.hpp.old b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskPolicy.hpp.old deleted file mode 100644 index adb6859763d39fbded63fdf476a6b04f639241cf..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskPolicy.hpp.old +++ /dev/null @@ -1,666 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 2.0 -// Copyright (2014) Sandia Corporation -// -// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact H. Carter Edwards (hcedwar@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -// Experimental unified task-data parallel manycore LDRD - -#ifndef KOKKOS_QTHREADS_TASKSCHEDULER_HPP -#define KOKKOS_QTHREADS_TASKSCHEDULER_HPP - -#include -#if defined( KOKKOS_ENABLE_TASKDAG ) - -#include -#include -#include - -//---------------------------------------------------------------------------- -// Defines to enable experimental Qthreads functionality - -#define QTHREAD_LOCAL_PRIORITY -#define CLONED_TASKS - -#include - -#undef QTHREAD_LOCAL_PRIORITY -#undef CLONED_TASKS - -//---------------------------------------------------------------------------- - -#include -#include -#include - -#include - - -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Experimental { -namespace Impl { - -template<> -class TaskMember< Kokkos::Qthreads , void , void > -{ -public: - - typedef TaskMember * (* function_verify_type) ( TaskMember * ); - typedef void (* function_single_type) ( TaskMember * ); - typedef void (* function_team_type) ( TaskMember * , Kokkos::Impl::QthreadsTeamPolicyMember & ); - typedef void (* function_dealloc_type)( TaskMember * ); - -private: - - const function_dealloc_type m_dealloc ; ///< Deallocation - const function_verify_type m_verify ; ///< Result type verification - const function_single_type m_apply_single ; ///< Apply function - const function_team_type m_apply_team ; ///< Apply function - int volatile * const m_active_count ; ///< Count of active tasks on this policy - aligned_t m_qfeb ; ///< Qthreads full/empty bit - TaskMember ** const m_dep ; ///< Dependences - const int m_dep_capacity ; ///< Capacity of dependences - int m_dep_size ; ///< Actual count of dependences - int m_ref_count ; ///< Reference count - int m_state ; ///< State of the task - - TaskMember() /* = delete */ ; - TaskMember( const TaskMember & ) /* = delete */ ; - TaskMember & operator = ( const TaskMember & ) /* = delete */ ; - - static aligned_t qthread_func( void * arg ); - - static void * allocate( const unsigned arg_sizeof_derived , const unsigned arg_dependence_capacity ); - static void deallocate( void * ); - - void throw_error_add_dependence() const ; - static void throw_error_verify_type(); - - template < class DerivedTaskType > - static - void deallocate( TaskMember * t ) - { - DerivedTaskType * ptr = static_cast< DerivedTaskType * >(t); - ptr->~DerivedTaskType(); - deallocate( (void *) ptr ); - } - - void schedule(); - void closeout(); - -protected : - - ~TaskMember(); - - // Used by TaskMember< Qthreads , ResultType , void > - TaskMember( const function_verify_type arg_verify - , const function_dealloc_type arg_dealloc - , const function_single_type arg_apply_single - , const function_team_type arg_apply_team - , volatile int & arg_active_count - , const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity - ); - - // Used for TaskMember< Qthreads , void , void > - TaskMember( const function_dealloc_type arg_dealloc - , const function_single_type arg_apply_single - , const function_team_type arg_apply_team - , volatile int & arg_active_count - , const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity - ); - -public: - - template< typename ResultType > - KOKKOS_FUNCTION static - TaskMember * verify_type( TaskMember * t ) - { - enum { check_type = ! std::is_same< ResultType , void >::value }; - - if ( check_type && t != 0 ) { - - // Verify that t->m_verify is this function - const function_verify_type self = & TaskMember::template verify_type< ResultType > ; - - if ( t->m_verify != self ) { - t = 0 ; -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - throw_error_verify_type(); -#endif - } - } - return t ; - } - - //---------------------------------------- - /* Inheritence Requirements on task types: - * typedef FunctorType::value_type value_type ; - * class DerivedTaskType - * : public TaskMember< Qthreads , value_type , FunctorType > - * { ... }; - * class TaskMember< Qthreads , value_type , FunctorType > - * : public TaskMember< Qthreads , value_type , void > - * , public Functor - * { ... }; - * If value_type != void - * class TaskMember< Qthreads , value_type , void > - * : public TaskMember< Qthreads , void , void > - * - * Allocate space for DerivedTaskType followed by TaskMember*[ dependence_capacity ] - * - */ - - /** \brief Allocate and construct a single-thread task */ - template< class DerivedTaskType > - static - TaskMember * create_single( const typename DerivedTaskType::functor_type & arg_functor - , volatile int & arg_active_count - , const unsigned arg_dependence_capacity ) - { - typedef typename DerivedTaskType::functor_type functor_type ; - typedef typename functor_type::value_type value_type ; - - DerivedTaskType * const task = - new( allocate( sizeof(DerivedTaskType) , arg_dependence_capacity ) ) - DerivedTaskType( & TaskMember::template deallocate< DerivedTaskType > - , & TaskMember::template apply_single< functor_type , value_type > - , 0 - , arg_active_count - , sizeof(DerivedTaskType) - , arg_dependence_capacity - , arg_functor ); - - return static_cast< TaskMember * >( task ); - } - - /** \brief Allocate and construct a team-thread task */ - template< class DerivedTaskType > - static - TaskMember * create_team( const typename DerivedTaskType::functor_type & arg_functor - , volatile int & arg_active_count - , const unsigned arg_dependence_capacity - , const bool arg_is_team ) - { - typedef typename DerivedTaskType::functor_type functor_type ; - typedef typename functor_type::value_type value_type ; - - const function_single_type flag = reinterpret_cast( arg_is_team ? 0 : 1 ); - - DerivedTaskType * const task = - new( allocate( sizeof(DerivedTaskType) , arg_dependence_capacity ) ) - DerivedTaskType( & TaskMember::template deallocate< DerivedTaskType > - , flag - , & TaskMember::template apply_team< functor_type , value_type > - , arg_active_count - , sizeof(DerivedTaskType) - , arg_dependence_capacity - , arg_functor ); - - return static_cast< TaskMember * >( task ); - } - - void respawn(); - void spawn() - { - m_state = Kokkos::Experimental::TASK_STATE_WAITING ; - schedule(); - } - - //---------------------------------------- - - typedef FutureValueTypeIsVoidError get_result_type ; - - KOKKOS_INLINE_FUNCTION - get_result_type get() const { return get_result_type() ; } - - KOKKOS_INLINE_FUNCTION - Kokkos::Experimental::TaskState get_state() const { return Kokkos::Experimental::TaskState( m_state ); } - - //---------------------------------------- - -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - static - void assign( TaskMember ** const lhs , TaskMember * const rhs , const bool no_throw = false ); -#else - KOKKOS_INLINE_FUNCTION static - void assign( TaskMember ** const lhs , TaskMember * const rhs , const bool no_throw = false ) {} -#endif - - KOKKOS_INLINE_FUNCTION - TaskMember * get_dependence( int i ) const - { return ( Kokkos::Experimental::TASK_STATE_EXECUTING == m_state && 0 <= i && i < m_dep_size ) ? m_dep[i] : (TaskMember*) 0 ; } - - KOKKOS_INLINE_FUNCTION - int get_dependence() const - { return m_dep_size ; } - - KOKKOS_INLINE_FUNCTION - void clear_dependence() - { - for ( int i = 0 ; i < m_dep_size ; ++i ) assign( m_dep + i , 0 ); - m_dep_size = 0 ; - } - - KOKKOS_INLINE_FUNCTION - void add_dependence( TaskMember * before ) - { - if ( ( Kokkos::Experimental::TASK_STATE_CONSTRUCTING == m_state || - Kokkos::Experimental::TASK_STATE_EXECUTING == m_state ) && - m_dep_size < m_dep_capacity ) { - assign( m_dep + m_dep_size , before ); - ++m_dep_size ; - } - else { - throw_error_add_dependence(); - } - } - - //---------------------------------------- - - template< class FunctorType , class ResultType > - KOKKOS_INLINE_FUNCTION static - void apply_single( typename std::enable_if< ! std::is_same< ResultType , void >::value , TaskMember * >::type t ) - { - typedef TaskMember< Kokkos::Qthreads , ResultType , FunctorType > derived_type ; - - // TaskMember< Kokkos::Qthreads , ResultType , FunctorType > - // : public TaskMember< Kokkos::Qthreads , ResultType , void > - // , public FunctorType - // { ... }; - - derived_type & m = * static_cast< derived_type * >( t ); - - Kokkos::Impl::FunctorApply< FunctorType , void , ResultType & >::apply( (FunctorType &) m , & m.m_result ); - } - - template< class FunctorType , class ResultType > - KOKKOS_INLINE_FUNCTION static - void apply_single( typename std::enable_if< std::is_same< ResultType , void >::value , TaskMember * >::type t ) - { - typedef TaskMember< Kokkos::Qthreads , ResultType , FunctorType > derived_type ; - - // TaskMember< Kokkos::Qthreads , ResultType , FunctorType > - // : public TaskMember< Kokkos::Qthreads , ResultType , void > - // , public FunctorType - // { ... }; - - derived_type & m = * static_cast< derived_type * >( t ); - - Kokkos::Impl::FunctorApply< FunctorType , void , void >::apply( (FunctorType &) m ); - } - - //---------------------------------------- - - template< class FunctorType , class ResultType > - KOKKOS_INLINE_FUNCTION static - void apply_team( typename std::enable_if< ! std::is_same< ResultType , void >::value , TaskMember * >::type t - , Kokkos::Impl::QthreadsTeamPolicyMember & member ) - { - typedef TaskMember< Kokkos::Qthreads , ResultType , FunctorType > derived_type ; - - derived_type & m = * static_cast< derived_type * >( t ); - - m.FunctorType::apply( member , m.m_result ); - } - - template< class FunctorType , class ResultType > - KOKKOS_INLINE_FUNCTION static - void apply_team( typename std::enable_if< std::is_same< ResultType , void >::value , TaskMember * >::type t - , Kokkos::Impl::QthreadsTeamPolicyMember & member ) - { - typedef TaskMember< Kokkos::Qthreads , ResultType , FunctorType > derived_type ; - - derived_type & m = * static_cast< derived_type * >( t ); - - m.FunctorType::apply( member ); - } -}; - -//---------------------------------------------------------------------------- -/** \brief Base class for tasks with a result value in the Qthreads execution space. - * - * The FunctorType must be void because this class is accessed by the - * Future class for the task and result value. - * - * Must be derived from TaskMember 'root class' so the Future class - * can correctly static_cast from the 'root class' to this class. - */ -template < class ResultType > -class TaskMember< Kokkos::Qthreads , ResultType , void > - : public TaskMember< Kokkos::Qthreads , void , void > -{ -public: - - ResultType m_result ; - - typedef const ResultType & get_result_type ; - - KOKKOS_INLINE_FUNCTION - get_result_type get() const { return m_result ; } - -protected: - - typedef TaskMember< Kokkos::Qthreads , void , void > task_root_type ; - typedef task_root_type::function_dealloc_type function_dealloc_type ; - typedef task_root_type::function_single_type function_single_type ; - typedef task_root_type::function_team_type function_team_type ; - - inline - TaskMember( const function_dealloc_type arg_dealloc - , const function_single_type arg_apply_single - , const function_team_type arg_apply_team - , volatile int & arg_active_count - , const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity - ) - : task_root_type( & task_root_type::template verify_type< ResultType > - , arg_dealloc - , arg_apply_single - , arg_apply_team - , arg_active_count - , arg_sizeof_derived - , arg_dependence_capacity ) - , m_result() - {} -}; - -template< class ResultType , class FunctorType > -class TaskMember< Kokkos::Qthreads , ResultType , FunctorType > - : public TaskMember< Kokkos::Qthreads , ResultType , void > - , public FunctorType -{ -public: - - typedef FunctorType functor_type ; - - typedef TaskMember< Kokkos::Qthreads , void , void > task_root_type ; - typedef TaskMember< Kokkos::Qthreads , ResultType , void > task_base_type ; - typedef task_root_type::function_dealloc_type function_dealloc_type ; - typedef task_root_type::function_single_type function_single_type ; - typedef task_root_type::function_team_type function_team_type ; - - inline - TaskMember( const function_dealloc_type arg_dealloc - , const function_single_type arg_apply_single - , const function_team_type arg_apply_team - , volatile int & arg_active_count - , const unsigned arg_sizeof_derived - , const unsigned arg_dependence_capacity - , const functor_type & arg_functor - ) - : task_base_type( arg_dealloc - , arg_apply_single - , arg_apply_team - , arg_active_count - , arg_sizeof_derived - , arg_dependence_capacity ) - , functor_type( arg_functor ) - {} -}; - -} /* namespace Impl */ -} /* namespace Experimental */ -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Experimental { - -void wait( TaskPolicy< Kokkos::Qthreads > & ); - -template<> -class TaskPolicy< Kokkos::Qthreads > -{ -public: - - typedef Kokkos::Qthreads execution_space ; - typedef TaskPolicy execution_policy ; - typedef Kokkos::Impl::QthreadsTeamPolicyMember member_type ; - -private: - - typedef Impl::TaskMember< execution_space , void , void > task_root_type ; - - template< class FunctorType > - static inline - const task_root_type * get_task_root( const FunctorType * f ) - { - typedef Impl::TaskMember< execution_space , typename FunctorType::value_type , FunctorType > task_type ; - return static_cast< const task_root_type * >( static_cast< const task_type * >(f) ); - } - - template< class FunctorType > - static inline - task_root_type * get_task_root( FunctorType * f ) - { - typedef Impl::TaskMember< execution_space , typename FunctorType::value_type , FunctorType > task_type ; - return static_cast< task_root_type * >( static_cast< task_type * >(f) ); - } - - unsigned m_default_dependence_capacity ; - unsigned m_team_size ; - volatile int m_active_count_root ; - volatile int & m_active_count ; - -public: - - TaskPolicy - ( const unsigned arg_task_max_count - , const unsigned arg_task_max_size - , const unsigned arg_task_default_dependence_capacity = 4 - , const unsigned arg_task_team_size = 0 /* choose default */ - ); - - KOKKOS_FUNCTION TaskPolicy() = default ; - KOKKOS_FUNCTION TaskPolicy( TaskPolicy && rhs ) = default ; - KOKKOS_FUNCTION TaskPolicy( const TaskPolicy & rhs ) = default ; - KOKKOS_FUNCTION TaskPolicy & operator = ( TaskPolicy && rhs ) = default ; - KOKKOS_FUNCTION TaskPolicy & operator = ( const TaskPolicy & rhs ) = default ; - - //---------------------------------------- - - KOKKOS_INLINE_FUNCTION - int allocated_task_count() const { return m_active_count ; } - - template< class ValueType > - const Future< ValueType , execution_space > & - spawn( const Future< ValueType , execution_space > & f - , const bool priority = false ) const - { -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - f.m_task->spawn(); -#endif - return f ; - } - - // Create single-thread task - - template< class FunctorType > - KOKKOS_INLINE_FUNCTION - Future< typename FunctorType::value_type , execution_space > - task_create( const FunctorType & functor - , const unsigned dependence_capacity = ~0u ) const - { - typedef typename FunctorType::value_type value_type ; - typedef Impl::TaskMember< execution_space , value_type , FunctorType > task_type ; - return Future< value_type , execution_space >( -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - task_root_type::create_single< task_type > - ( functor - , m_active_count - , ( ~0u == dependence_capacity ? m_default_dependence_capacity : dependence_capacity ) - ) -#endif - ); - } - - template< class FunctorType > - Future< typename FunctorType::value_type , execution_space > - proc_create( const FunctorType & functor - , const unsigned dependence_capacity = ~0u ) const - { return task_create( functor , dependence_capacity ); } - - // Create thread-team task - - template< class FunctorType > - KOKKOS_INLINE_FUNCTION - Future< typename FunctorType::value_type , execution_space > - task_create_team( const FunctorType & functor - , const unsigned dependence_capacity = ~0u ) const - { - typedef typename FunctorType::value_type value_type ; - typedef Impl::TaskMember< execution_space , value_type , FunctorType > task_type ; - - return Future< value_type , execution_space >( -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - task_root_type::create_team< task_type > - ( functor - , m_active_count - , ( ~0u == dependence_capacity ? m_default_dependence_capacity : dependence_capacity ) - , 1 < m_team_size - ) -#endif - ); - } - - template< class FunctorType > - KOKKOS_INLINE_FUNCTION - Future< typename FunctorType::value_type , execution_space > - proc_create_team( const FunctorType & functor - , const unsigned dependence_capacity = ~0u ) const - { return task_create_team( functor , dependence_capacity ); } - - // Add dependence - template< class A1 , class A2 , class A3 , class A4 > - void add_dependence( const Future & after - , const Future & before - , typename std::enable_if - < std::is_same< typename Future::execution_space , execution_space >::value - && - std::is_same< typename Future::execution_space , execution_space >::value - >::type * = 0 - ) - { -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - after.m_task->add_dependence( before.m_task ); -#endif - } - - //---------------------------------------- - // Functions for an executing task functor to query dependences, - // set new dependences, and respawn itself. - - template< class FunctorType > - Future< void , execution_space > - get_dependence( const FunctorType * task_functor , int i ) const - { - return Future( -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - get_task_root(task_functor)->get_dependence(i) -#endif - ); - } - - template< class FunctorType > - int get_dependence( const FunctorType * task_functor ) const -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - { return get_task_root(task_functor)->get_dependence(); } -#else - { return 0 ; } -#endif - - template< class FunctorType > - void clear_dependence( FunctorType * task_functor ) const - { -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - get_task_root(task_functor)->clear_dependence(); -#endif - } - - template< class FunctorType , class A3 , class A4 > - void add_dependence( FunctorType * task_functor - , const Future & before - , typename std::enable_if - < std::is_same< typename Future::execution_space , execution_space >::value - >::type * = 0 - ) - { -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - get_task_root(task_functor)->add_dependence( before.m_task ); -#endif - } - - template< class FunctorType > - void respawn( FunctorType * task_functor - , const bool priority = false ) const - { -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - get_task_root(task_functor)->respawn(); -#endif - } - - template< class FunctorType > - void respawn_needing_memory( FunctorType * task_functor ) const - { -#if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) - get_task_root(task_functor)->respawn(); -#endif - } - - static member_type & member_single(); - - friend void wait( TaskPolicy< Kokkos::Qthreads > & ); -}; - -} /* namespace Experimental */ -} // namespace Kokkos - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #if defined( KOKKOS_ENABLE_TASKDAG ) */ -#endif /* #define KOKKOS_QTHREADS_TASK_HPP */ - diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskQueue.hpp b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskQueue.hpp deleted file mode 100644 index b9b6dd86e41eaa750cb5c3fae4d5d732aac94d89..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskQueue.hpp +++ /dev/null @@ -1,321 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_QTHREADS_TASKQUEUE_HPP -#define KOKKOS_QTHREADS_TASKQUEUE_HPP - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) && defined(KOKKOS_ENABLE_TASKPOLICY) - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -/** \brief Manage task allocation, deallocation, and scheduling. - * - * Task execution is handled here directly for the Qthread implementation. - */ -template <> -class TaskQueue { - private: - using execution_space = Kokkos::Qthread; - using memory_space = Kokkos::HostSpace using device_type = - Kokkos::Device; - using memory_pool = Kokkos::MemoryPool; - using task_root_type = Kokkos::Impl::TaskBase; - - friend class Kokkos::TaskScheduler; - - struct Destroy { - TaskQueue* m_queue; - void destroy_shared_allocation(); - }; - - //---------------------------------------- - - enum : int { - TASK_STATE_NULL = 0, ///< Does not exist - TASK_STATE_CONSTRUCTING = 1, ///< Is under construction - TASK_STATE_WAITING = 2, ///< Is waiting for execution - TASK_STATE_EXECUTING = 4, ///< Is executing - TASK_STATE_RESPAWN = 8, ///< Requested respawn - TASK_STATE_COMPLETE = 16 ///< Execution is complete - }; - - // Queue is organized as [ priority ][ type ] - - memory_pool m_memory; - unsigned m_team_size; // Number of threads in a team - long m_accum_alloc; // Accumulated number of allocations - int m_count_alloc; // Current number of allocations - int m_max_alloc; // Maximum number of allocations - int m_ready_count; // Number of ready or executing - - //---------------------------------------- - - ~TaskQueue(); - TaskQueue() = delete; - TaskQueue(TaskQueue&&) = delete; - TaskQueue(TaskQueue const&) = delete; - TaskQueue& operator=(TaskQueue&&) = delete; - TaskQueue& operator=(TaskQueue const&) = delete; - - TaskQueue(const memory_space& arg_space, - unsigned const arg_memory_pool_capacity, - unsigned const arg_memory_pool_superblock_capacity_log2); - - // Schedule a task - // Precondition: - // task is not executing - // task->m_next is the dependence or zero - // Postcondition: - // task->m_next is linked list membership - KOKKOS_FUNCTION - void schedule(task_root_type* const); - - // Reschedule a task - // Precondition: - // task is in Executing state - // task->m_next == LockTag - // Postcondition: - // task is in Executing-Respawn state - // task->m_next == 0 (no dependence) - KOKKOS_FUNCTION - void reschedule(task_root_type*); - - // Complete a task - // Precondition: - // task is not executing - // task->m_next == LockTag => task is complete - // task->m_next != LockTag => task is respawn - // Postcondition: - // task->m_wait == LockTag => task is complete - // task->m_wait != LockTag => task is waiting - KOKKOS_FUNCTION - void complete(task_root_type*); - - public: - // If and only if the execution space is a single thread - // then execute ready tasks. - KOKKOS_INLINE_FUNCTION - void iff_single_thread_recursive_execute() { -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - specialization::iff_single_thread_recursive_execute(this); -#endif - } - - void execute() { specialization::execute(this); } - - template - void proc_set_apply(typename task_root_type::function_type* ptr) { - specialization::template proc_set_apply(ptr); - } - - // Assign task pointer with reference counting of assigned tasks - template - KOKKOS_FUNCTION static void assign( - TaskBase** const lhs, - TaskBase* const rhs) { - using task_lhs = TaskBase; -#if 0 - { - printf( "assign( 0x%lx { 0x%lx %d %d }, 0x%lx { 0x%lx %d %d } )\n", - uintptr_t( lhs ? *lhs : 0 ), - uintptr_t( lhs && *lhs ? (*lhs)->m_next : 0 ), - int( lhs && *lhs ? (*lhs)->m_task_type : 0 ), - int( lhs && *lhs ? (*lhs)->m_ref_count : 0 ), - uintptr_t(rhs), - uintptr_t( rhs ? rhs->m_next : 0 ), - int( rhs ? rhs->m_task_type : 0 ), - int( rhs ? rhs->m_ref_count : 0 ) - ); - fflush( stdout ); - } -#endif - - if (*lhs) { - const int count = Kokkos::atomic_fetch_add(&((*lhs)->m_ref_count), -1); - - if ((1 == count) && ((*lhs)->m_state == TASK_STATE_COMPLETE)) { - // Reference count is zero and task is complete, deallocate. - (*lhs)->m_queue->deallocate(*lhs, (*lhs)->m_alloc_size); - } else if (count <= 1) { - Kokkos::abort( - "TaskScheduler task has negative reference count or is incomplete"); - } - - // GEM: Should I check that there are no dependences here? Can the state - // be set to complete while there are still dependences? - } - - if (rhs) { - Kokkos::atomic_fetch_add(&(rhs->m_ref_count), 1); - } - - // Force write of *lhs - - *static_cast(lhs) = rhs; - - Kokkos::memory_fence(); - } - - KOKKOS_FUNCTION - size_t allocate_block_size(size_t n); ///< Actual block size allocated - - KOKKOS_FUNCTION - void* allocate(size_t n); ///< Allocate from the memory pool - - KOKKOS_FUNCTION - void deallocate(void* p, size_t n); ///< Deallocate to the memory pool -}; - -} /* namespace Impl */ -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -namespace Kokkos { -namespace Impl { - -template <> -class TaskBase { - public: - enum : int16_t { - TaskTeam = TaskBase::TaskTeam, - TaskSingle = TaskBase::TaskSingle, - Aggregate = TaskBase::Aggregate - }; - - enum : uintptr_t { - LockTag = TaskBase::LockTag, - EndTag = TaskBase::EndTag - }; - - using execution_space = Kokkos::Qthread; - using queue_type = TaskQueue; - - template - friend class Kokkos::TaskScheduler; - - typedef void (*function_type)(TaskBase*, void*); - - // sizeof(TaskBase) == 48 - - function_type m_apply; ///< Apply function pointer - queue_type* m_queue; ///< Queue in which this task resides - TaskBase* m_dep; ///< Dependence - int32_t m_ref_count; ///< Reference count - int32_t m_alloc_size; ///< Allocation size - int32_t m_dep_count; ///< Aggregate's number of dependences - int16_t m_task_type; ///< Type of task - int16_t m_priority; ///< Priority of runnable task - aligned_t m_qfeb; ///< Qthread full/empty bit - int m_state; ///< State of the task - - TaskBase(TaskBase&&) = delete; - TaskBase(const TaskBase&) = delete; - TaskBase& operator=(TaskBase&&) = delete; - TaskBase& operator=(const TaskBase&) = delete; - - KOKKOS_INLINE_FUNCTION ~TaskBase() = default; - - KOKKOS_INLINE_FUNCTION - constexpr TaskBase() noexcept - : m_apply(0), - m_queue(0), - m_dep(0), - m_ref_count(0), - m_alloc_size(0), - m_dep_count(0), - m_task_type(TaskSingle), - m_priority(1 /* TaskRegularPriority */), - m_qfeb(0), - m_state(queue_type::TASK_STATE_CONSTRUCTING) { - qthread_empty(&m_qfeb); // Set to full when complete - } - - //---------------------------------------- - - static aligned_t qthread_func(void* arg); - - KOKKOS_INLINE_FUNCTION - TaskBase** aggregate_dependences() { - return reinterpret_cast(this + 1); - } - - KOKKOS_INLINE_FUNCTION - void requested_respawn() { return m_state == queue_type::TASK_STATE_RESPAWN; } - - KOKKOS_INLINE_FUNCTION - void add_dependence(TaskBase* dep) { - // Assign dependence to m_dep. It will be processed in the subsequent - // call to schedule. Error if the dependence is reset. - if (0 != Kokkos::atomic_exchange(&m_dep, dep)) { - Kokkos::abort("TaskScheduler ERROR: resetting task dependence"); - } - - if (0 != dep) { - // The future may be destroyed upon returning from this call - // so increment reference count to track this assignment. - Kokkos::atomic_fetch_add(&(dep->m_ref_count), 1); - } - } - - using get_return_type = void; - - KOKKOS_INLINE_FUNCTION - get_return_type get() const {} -}; - -} /* namespace Impl */ -} /* namespace Kokkos */ - -//---------------------------------------------------------------------------- -//---------------------------------------------------------------------------- - -#endif /* #if defined( KOKKOS_ENABLE_TASKPOLICY ) */ -#endif // KOKKOS_QTHREADS_TASKQUEUE_HPP diff --git a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskQueue_impl.hpp b/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskQueue_impl.hpp deleted file mode 100644 index 7a91103ae77a25916282ae8437bb2337f6da3a7b..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/Kokkos_Qthreads_TaskQueue_impl.hpp +++ /dev/null @@ -1,398 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#ifndef KOKKOS_QTHREADS_TASKQUEUE_IMPL_HPP -#define KOKKOS_QTHREADS_TASKQUEUE_IMPL_HPP - -#include -#if defined(KOKKOS_ENABLE_QTHREADS) && defined(KOKKOS_ENABLE_TASKPOLICY) - -namespace Kokkos { -namespace Impl { - -//---------------------------------------------------------------------------- - -template -void TaskQueue::Destroy::destroy_shared_allocation() { - m_queue->~TaskQueue(); -} - -//---------------------------------------------------------------------------- - -template -TaskQueue::TaskQueue( - const TaskQueue::memory_space &arg_space, - unsigned const arg_memory_pool_capacity, - unsigned const arg_memory_pool_superblock_capacity_log2) - : m_memory(arg_space, arg_memory_pool_capacity, - arg_memory_pool_superblock_capacity_log2) - m_team_size(unsigned(qthread_num_workers_local(NO_SHEPHERD))), - m_accum_alloc(0), - m_count_alloc(0), - m_max_alloc(0), - m_ready_count(0) {} - -//---------------------------------------------------------------------------- - -template -TaskQueue::~TaskQueue() { - // Verify that ready count is zero. - if (0 != m_ready_count) { - Kokkos::abort("TaskQueue::~TaskQueue ERROR: has ready or executing tasks"); - } -} - -//---------------------------------------------------------------------------- - -template -KOKKOS_FUNCTION size_t TaskQueue::allocate_block_size(size_t n) { - return m_memory.allocate_block_size(n); -} - -//---------------------------------------------------------------------------- - -template -KOKKOS_FUNCTION void *TaskQueue::allocate(size_t n) { - void *const p = m_memory.allocate(n); - - if (p) { - Kokkos::atomic_increment(&m_accum_alloc); - Kokkos::atomic_increment(&m_count_alloc); - - if (m_max_alloc < m_count_alloc) m_max_alloc = m_count_alloc; - } - - return p; -} - -//---------------------------------------------------------------------------- - -template -KOKKOS_FUNCTION void TaskQueue::deallocate(void *p, size_t n) { - m_memory.deallocate(p, n); - Kokkos::atomic_decrement(&m_count_alloc); -} - -//---------------------------------------------------------------------------- - -template -KOKKOS_FUNCTION void TaskQueue::schedule( - TaskQueue::task_root_type *const task) { -#if 0 - printf( "schedule( 0x%lx { %d %d %d }\n", - uintptr_t(task), - task->m_task_type, - task->m_priority, - task->m_ref_count ); -#endif - - // The task has been constructed and is waiting to be executed. - task->m_state = TASK_STATE_WAITING; - - if (task->m_task_type != task_root_type::Aggregate) { - // Scheduling a single or team task. - - // Increment active task count before spawning. - Kokkos::atomic_increment(m_ready_count); - - if (task->m_dep == 0) { - // Schedule a task with no dependences. - - if (task_root_type::TaskTeam == task->m_task_type && m_team_size > 1) { - // If more than one shepherd spawn on a shepherd other than this - // shepherd - const int num_shepherd = qthread_num_shepherds(); - const int this_shepherd = qthread_shep(); - int spawn_shepherd = (this_shepherd + 1) % num_shepherd; - -#if 0 - fprintf( stdout, - "worker(%d.%d) task 0x%.12lx spawning on shepherd(%d) clone(%d)\n", - qthread_shep(), - qthread_worker_local(NULL), - reinterpret_cast(this), - spawn_shepherd, - m_team_size - 1 - ); - fflush(stdout); -#endif - - qthread_spawn_cloneable( - &task_root_type::qthread_func, task, 0, NULL, - 0, // no depenedences - 0, // dependences array - spawn_shepherd, - unsigned(QTHREAD_SPAWN_SIMPLE | QTHREAD_SPAWN_LOCAL_PRIORITY), - m_team_size - 1); - } else { - qthread_spawn( - &task_root_type::qthread_func, task, 0, NULL, - 0, // no depenedences - 0, // dependences array - NO_SHEPHERD, - QTHREAD_SPAWN_SIMPLE /* allows optimization for non-blocking task */ - ); - } - } else if (task->m_dep->m_task_type != task_root_type::Aggregate) - // Malloc the precondition array to pass to qthread_spawn(). For - // non-aggregate tasks, it is a single pointer since there are no - // dependences. Qthreads will eventually free this allocation so memory - // will not be leaked. Is malloc thread-safe? Should this call be - // guarded? The memory can't be allocated from the pool allocator because - // Qthreads frees it using free(). - aligned_t **qprecon = (aligned_t **)malloc(sizeof(aligned_t *)); - - *qprecon = reinterpret_cast(uintptr_t(m_dep_size)); - - if (task->m_task_type == task_root_type::TaskTeam && m_team_size > 1) { - // If more than one shepherd spawn on a shepherd other than this shepherd - const int num_shepherd = qthread_num_shepherds(); - const int this_shepherd = qthread_shep(); - int spawn_shepherd = (this_shepherd + 1) % num_shepherd; - -#if 0 - fprintf( stdout, - "worker(%d.%d) task 0x%.12lx spawning on shepherd(%d) clone(%d)\n", - qthread_shep(), - qthread_worker_local(NULL), - reinterpret_cast(this), - spawn_shepherd, - m_team_size - 1 - ); - fflush(stdout); -#endif - - qthread_spawn_cloneable( - &Task::qthread_func, this, 0, NULL, m_dep_size, - qprecon, /* dependences */ - spawn_shepherd, - unsigned(QTHREAD_SPAWN_SIMPLE | QTHREAD_SPAWN_LOCAL_PRIORITY), - m_team_size - 1); - } else { - qthread_spawn( - &Task::qthread_func, /* function */ - this, /* function argument */ - 0, NULL, m_dep_size, qprecon, /* dependences */ - NO_SHEPHERD, - QTHREAD_SPAWN_SIMPLE /* allows optimization for non-blocking task */ - ); - } - } else { - // GEM: How do I handle an aggregate (when_all) task? - } -} - -//---------------------------------------------------------------------------- - -template -KOKKOS_FUNCTION void TaskQueue::reschedule(task_root_type *task) { - // Precondition: - // task is in Executing state - // task->m_next == LockTag - // - // Postcondition: - // task is in Executing-Respawn state - // task->m_next == 0 (no dependence) - - task_root_type *const zero = (task_root_type *)0; - task_root_type *const lock = (task_root_type *)task_root_type::LockTag; - - if (lock != Kokkos::atomic_exchange(&task->m_next, zero)) { - Kokkos::abort("TaskScheduler::respawn ERROR: already respawned"); - } -} - -//---------------------------------------------------------------------------- - -template -KOKKOS_FUNCTION void TaskQueue::complete( - TaskQueue::task_root_type *task) { - // Complete a runnable task that has finished executing - // or a when_all task when all of its dependeneces are complete. - - task_root_type *const zero = (task_root_type *)0; - task_root_type *const lock = (task_root_type *)task_root_type::LockTag; - task_root_type *const end = (task_root_type *)task_root_type::EndTag; - -#if 0 - printf( "complete( 0x%lx { 0x%lx 0x%lx %d %d %d }\n", - uintptr_t(task), - uintptr_t(task->m_wait), - uintptr_t(task->m_next), - task->m_task_type, - task->m_priority, - task->m_ref_count - ); - fflush( stdout ); -#endif - - const bool runnable = task_root_type::Aggregate != task->m_task_type; - - //---------------------------------------- - - if (runnable && lock != task->m_next) { - // Is a runnable task has finished executing and requested respawn. - // Schedule the task for subsequent execution. - - schedule(task); - } - //---------------------------------------- - else { - // Is either an aggregate or a runnable task that executed - // and did not respawn. Transition this task to complete. - - // If 'task' is an aggregate then any of the runnable tasks that - // it depends upon may be attempting to complete this 'task'. - // Must only transition a task once to complete status. - // This is controled by atomically locking the wait queue. - - // Stop other tasks from adding themselves to this task's wait queue - // by locking the head of this task's wait queue. - - task_root_type *x = Kokkos::atomic_exchange(&task->m_wait, lock); - - if (x != (task_root_type *)lock) { - // This thread has transitioned this 'task' to complete. - // 'task' is no longer in a queue and is not executing - // so decrement the reference count from 'task's creation. - // If no other references to this 'task' then it will be deleted. - - TaskQueue::assign(&task, zero); - - // This thread has exclusive access to the wait list so - // the concurrency-safe pop_task function is not needed. - // Schedule the tasks that have been waiting on the input 'task', - // which may have been deleted. - - while (x != end) { - // Set x->m_next = zero <= no dependence - - task_root_type *const next = - (task_root_type *)Kokkos::atomic_exchange(&x->m_next, zero); - - schedule(x); - - x = next; - } - } - } - - if (runnable) { - // A runnable task was popped from a ready queue and executed. - // If respawned into a ready queue then the ready count was incremented - // so decrement whether respawned or not. - Kokkos::atomic_decrement(&m_ready_count); - } -} - -//---------------------------------------------------------------------------- - -template <> -aligned_t TaskBase::qthread_func(void *arg) { - using execution_space = Kokkos::Qthreads; - using task_root_type = TaskBase; - using Member = Kokkos::Impl::QthreadsTeamPolicyMember; - - task_root_type *const task = reinterpret_cast(arg); - - // First member of the team change state to executing. - // Use compare-exchange to avoid race condition with a respawn. - Kokkos::atomic_compare_exchange_strong(&task->m_state, - queue_type::TASK_STATE_WAITING, - queue_type::TASK_STATE_EXECUTING); - - if (task_root_type::TaskTeam == task->m_task_type) { - if (1 < task->m_queue->m_team_size) { - // Team task with team size of more than 1. - Member::TaskTeam task_team_tag; - - // Initialize team size and rank with shephered info - Member member(task_team_tag); - - (*task->m_apply)(task, &member); - -#if 0 - fprintf( stdout, - "worker(%d.%d) task 0x%.12lx executed by member(%d:%d)\n", - qthread_shep(), - qthread_worker_local(NULL), - reinterpret_cast(task), - member.team_rank(), - member.team_size() - ); - fflush(stdout); -#endif - - member.team_barrier(); - if (member.team_rank() == 0) task->closeout(); - member.team_barrier(); - } else { - // Team task with team size of 1. - Member member; - (*task->m_apply)(task, &member); - task->closeout(); - } - } else { - (*task->m_apply)(task); - task->closeout(); - } - -#if 0 -fprintf( stdout - , "worker(%d.%d) task 0x%.12lx return\n" - , qthread_shep() - , qthread_worker_local(NULL) - , reinterpret_cast(task) - ); -fflush(stdout); -#endif - - return 0; -} - -} /* namespace Impl */ -} /* namespace Kokkos */ - -#endif /* #if defined( KOKKOS_ENABLE_TASKPOLICY ) */ -#endif // KOKKOS_QTHREADS_TASKQUEUE_IMPL_HPP diff --git a/lib/kokkos/core/src/Qthreads/README b/lib/kokkos/core/src/Qthreads/README deleted file mode 100644 index e35b1f698ec7ca3e3ee020eeee4445de43023c78..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/Qthreads/README +++ /dev/null @@ -1,24 +0,0 @@ - -# This Qthreads back-end uses an experimental branch of the Qthreads repository with special #define options. - -# Cloning repository and branch: - -git clone git@github.com:Qthreads/qthreads.git qthreads - -cd qthreads - -# checkout branch with "cloned tasks" - -git checkout dev-kokkos - -# Configure/autogen - -sh autogen.sh - -# configure with 'hwloc' installation: - -./configure CFLAGS="-DCLONED_TASKS -DQTHREAD_LOCAL_PRIORITY" --with-hwloc=${HWLOCDIR} --prefix=${INSTALLDIR} - -# install - -make install diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp index 4ebcdc6f95892bbbef28853865a66a3678c18b75..8a4d8c07d0b480ff04b45ee548fefd47581439cf 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Parallel.hpp @@ -293,7 +293,6 @@ class TeamPolicyInternal } KOKKOS_INLINE_FUNCTION int team_size() const { return (m_team_size > 0) ? m_team_size : Impl::get_max_tile_thread(); - ; } KOKKOS_INLINE_FUNCTION int league_size() const { return m_league_size; } @@ -837,7 +836,7 @@ class ParallelFor, if (total_size == 0) return; const auto shared_size = FunctorTeamShmemSize::value(f, team_size); - char* scratch = NULL; + char* scratch = nullptr; char* shared = (char*)rocm_device_allocate(shared_size * league_size + scratch_size0 * league_size); if (0 < scratch_size1) @@ -889,7 +888,7 @@ class ParallelReduce, ReducerType, const FunctorType& f, const Policy& policy, const ViewType& result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) { + void*>::type = nullptr) { typedef typename Policy::work_tag Tag; typedef Kokkos::Impl::FunctorValueTraits ValueTraits; typedef Kokkos::Impl::FunctorValueInit ValueInit; @@ -1106,7 +1105,7 @@ class ParallelReduce, ReducerType, ParallelReduce(const FunctorType& arg_functor, const Policy& arg_policy, const HostViewType& arg_result, typename std::enable_if::value, - void*>::type = NULL) + void*>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -1149,7 +1148,7 @@ class ParallelReduce, ReducerType, const FunctorType& f, const Policy& policy, const ViewType& result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void*>::type = NULL) { + void*>::type = nullptr) { const int league_size = policy.league_size(); const int team_size = policy.team_size(f); const int vector_length = policy.vector_length(); @@ -1172,7 +1171,7 @@ class ParallelReduce, ReducerType, FunctorTeamShmemSize::value(f, team_size); char* shared; - char* scratch = NULL; + char* scratch = nullptr; shared = (char*)rocm_device_allocate(league_size * (shared_size + scratch_size0)); @@ -1223,7 +1222,7 @@ class ParallelReduce, ReducerType, const int scratch_size1 = policy.scratch_size(1, team_size); char* shared; - char* scratch = NULL; + char* scratch = nullptr; shared = (char*)rocm_device_allocate((shared_size + scratch_size0) * league_size); if (0 < scratch_size1) diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp index 501567406ddf0ab67748044d1454ebabb7fc7df7..1a79425f493c3b0644293c08124622395866c0b8 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Space.cpp @@ -409,7 +409,7 @@ void* SharedAllocationRecord:: allocate_tracked(const Kokkos::Experimental::ROCmSpace& arg_space, const std::string& arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void*)0; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord* const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -621,7 +621,7 @@ namespace Kokkos { namespace { void* rocm_resize_scratch_space(size_t bytes, bool force_shrink) { - static void* ptr = NULL; + static void* ptr = nullptr; static size_t current_size = 0; if (current_size == 0) { current_size = bytes; diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp index da95064eea8bd3691ccd9c8d1cdc39e080e1fbfc..3d80b4d4409349ae13c29dc2b77de7cd8a5634c3 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Tile.hpp @@ -293,8 +293,9 @@ struct tile_buffer { } template - typename Impl::enable_if<(sizeof(Q) <= 8), void>::type action_at( - std::size_t i, Action a) [[hc]] { + typename std::enable_if<(sizeof(Q) <= 8), void>::type action_at(std::size_t i, + Action a) + [[hc]] { element_type* value = (*this)[i]; #if defined(ROCM15) a(value); @@ -316,7 +317,7 @@ struct tile_buffer { } template - typename Impl::enable_if::type action_at( + typename std::enable_if::type action_at( std::size_t i, Action a) [[hc]] { element_type* value = (*this)[i]; #if defined(ROCM15) diff --git a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp index 157c15695b0a0985c8487033f1536d62934b8ae8..ae52f8da34680ebf115719be9efdbb45f8d5f41b 100644 --- a/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp +++ b/lib/kokkos/core/src/ROCm/Kokkos_ROCm_Vectorization.hpp @@ -163,7 +163,7 @@ float shfl(const float& val, const int& srcLane, const int& width) { template KOKKOS_INLINE_FUNCTION Scalar shfl(const Scalar& val, const int& srcLane, - const typename Impl::enable_if<(sizeof(Scalar) == 4), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) == 4), int>::type& width) { Scalar tmp1 = val; float tmp = *reinterpret_cast(&tmp1); tmp = __shfl(tmp, srcLane, width); @@ -182,7 +182,7 @@ double shfl(const double& val, const int& srcLane, const int& width) { template KOKKOS_INLINE_FUNCTION Scalar shfl(const Scalar& val, const int& srcLane, - const typename Impl::enable_if<(sizeof(Scalar) == 8), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) == 8), int>::type& width) { int lo = __double2loint(*reinterpret_cast(&val)); int hi = __double2hiint(*reinterpret_cast(&val)); lo = __shfl(lo, srcLane, width); @@ -194,7 +194,7 @@ shfl(const Scalar& val, const int& srcLane, template KOKKOS_INLINE_FUNCTION Scalar shfl(const Scalar& val, const int& srcLane, - const typename Impl::enable_if<(sizeof(Scalar) > 8), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) > 8), int>::type& width) { Impl::shfl_union s_val; Impl::shfl_union r_val; s_val = val; @@ -217,7 +217,7 @@ float shfl_down(const float& val, const int& delta, const int& width) { template KOKKOS_INLINE_FUNCTION Scalar shfl_down( const Scalar& val, const int& delta, - const typename Impl::enable_if<(sizeof(Scalar) == 4), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) == 4), int>::type& width) { Scalar tmp1 = val; float tmp = *reinterpret_cast(&tmp1); tmp = __shfl_down(tmp, delta, width); @@ -245,7 +245,7 @@ double shfl_down(const double& val, const int& delta, const int& width) { template KOKKOS_INLINE_FUNCTION Scalar shfl_down( const Scalar& val, const int& delta, - const typename Impl::enable_if<(sizeof(Scalar) == 8), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) == 8), int>::type& width) { int lo = __double2loint(*reinterpret_cast(&val)); int hi = __double2hiint(*reinterpret_cast(&val)); lo = __shfl_down(lo, delta, width); @@ -257,7 +257,7 @@ KOKKOS_INLINE_FUNCTION Scalar shfl_down( template KOKKOS_INLINE_FUNCTION Scalar shfl_down( const Scalar& val, const int& delta, - const typename Impl::enable_if<(sizeof(Scalar) > 8), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) > 8), int>::type& width) { Impl::shfl_union s_val; Impl::shfl_union r_val; s_val = val; @@ -280,7 +280,7 @@ float shfl_up(const float& val, const int& delta, const int& width) { template KOKKOS_INLINE_FUNCTION Scalar shfl_up( const Scalar& val, const int& delta, - const typename Impl::enable_if<(sizeof(Scalar) == 4), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) == 4), int>::type& width) { Scalar tmp1 = val; float tmp = *reinterpret_cast(&tmp1); tmp = __shfl_up(tmp, delta, width); @@ -299,7 +299,7 @@ double shfl_up(const double& val, const int& delta, const int& width) { template KOKKOS_INLINE_FUNCTION Scalar shfl_up( const Scalar& val, const int& delta, - const typename Impl::enable_if<(sizeof(Scalar) == 8), int>::type& width) { + const typename std::enable_if<(sizeof(Scalar) == 8), int>::type& width) { int lo = __double2loint(*reinterpret_cast(&val)); int hi = __double2hiint(*reinterpret_cast(&val)); lo = __shfl_up(lo, delta, width); @@ -309,9 +309,9 @@ KOKKOS_INLINE_FUNCTION Scalar shfl_up( } template -KOKKOS_INLINE_FUNCTION Scalar shfl_up( - const Scalar& val, const int& delta, - const typename Impl::enable_if<(sizeof(Scalar) > 8), int>::type& width) { +KOKKOS_INLINE_FUNCTION Scalar +shfl_up(const Scalar& val, const int& delta, + const typename std::enable_if<(sizeof(Scalar) > 8), int>::type& width) { Impl::shfl_union s_val; Impl::shfl_union r_val; s_val = val; diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp index d106abf6881fb75c7cc3bfe8de5eec081ec1c240..7adfd127de42bc998bfa6826570adbcfe9e33ebb 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec.cpp @@ -65,7 +65,7 @@ namespace Impl { namespace { ThreadsExec s_threads_process; -ThreadsExec *s_threads_exec[ThreadsExec::MAX_THREAD_COUNT] = {0}; +ThreadsExec *s_threads_exec[ThreadsExec::MAX_THREAD_COUNT] = {nullptr}; pthread_t s_threads_pid[ThreadsExec::MAX_THREAD_COUNT] = {0}; std::pair s_threads_coord[ThreadsExec::MAX_THREAD_COUNT]; @@ -75,11 +75,9 @@ unsigned s_current_reduce_size = 0; unsigned s_current_shared_size = 0; void (*volatile s_current_function)(ThreadsExec &, const void *); -const void *volatile s_current_function_arg = 0; +const void *volatile s_current_function_arg = nullptr; struct Sentinel { - Sentinel() {} - ~Sentinel() { if (s_thread_pool_size[0] || s_thread_pool_size[1] || s_thread_pool_size[2] || s_current_reduce_size || @@ -129,8 +127,8 @@ void ThreadsExec::driver(void) { } ThreadsExec::ThreadsExec() - : m_pool_base(0), - m_scratch(0), + : m_pool_base(nullptr), + m_scratch(nullptr), m_scratch_reduce_end(0), m_scratch_thread_end(0), m_numa_rank(0), @@ -142,7 +140,7 @@ ThreadsExec::ThreadsExec() if (&s_threads_process != this) { // A spawned thread - ThreadsExec *const nil = 0; + ThreadsExec *const nil = nullptr; // Which entry in 's_threads_exec', possibly determined from hwloc binding const int entry = @@ -192,12 +190,12 @@ ThreadsExec::~ThreadsExec() { if (m_scratch) { Record *const r = Record::get_record(m_scratch); - m_scratch = 0; + m_scratch = nullptr; Record::decrement(r); } - m_pool_base = 0; + m_pool_base = nullptr; m_scratch_reduce_end = 0; m_scratch_thread_end = 0; m_numa_rank = 0; @@ -209,7 +207,7 @@ ThreadsExec::~ThreadsExec() { m_pool_state = ThreadsExec::Terminating; if (&s_threads_process != this && entry < MAX_THREAD_COUNT) { - ThreadsExec *const nil = 0; + ThreadsExec *const nil = nullptr; atomic_compare_exchange(s_threads_exec + entry, this, nil); @@ -223,13 +221,13 @@ ThreadsExec *ThreadsExec::get_thread(const int init_thread_rank) { ThreadsExec *const th = init_thread_rank < s_thread_pool_size[0] ? s_threads_exec[s_thread_pool_size[0] - (init_thread_rank + 1)] - : 0; + : nullptr; - if (0 == th || th->m_pool_rank != init_thread_rank) { + if (nullptr == th || th->m_pool_rank != init_thread_rank) { std::ostringstream msg; msg << "Kokkos::Impl::ThreadsExec::get_thread ERROR : " << "thread " << init_thread_rank << " of " << s_thread_pool_size[0]; - if (0 == th) { + if (nullptr == th) { msg << " does not exist"; } else { msg << " has wrong thread_rank " << th->m_pool_rank; @@ -299,8 +297,8 @@ void ThreadsExec::fence() { ThreadsExec::Active); } - s_current_function = 0; - s_current_function_arg = 0; + s_current_function = nullptr; + s_current_function_arg = nullptr; // Make sure function and arguments are cleared before // potentially re-activating threads with a subsequent launch. @@ -364,7 +362,7 @@ bool ThreadsExec::wake() { ThreadsExec::global_unlock(); if (s_threads_process.m_pool_base) { - execute_sleep(s_threads_process, 0); + execute_sleep(s_threads_process, nullptr); s_threads_process.m_pool_state = ThreadsExec::Inactive; } @@ -394,12 +392,12 @@ void ThreadsExec::execute_serial(void (*func)(ThreadsExec &, const void *)) { if (s_threads_process.m_pool_base) { s_threads_process.m_pool_state = ThreadsExec::Active; - (*func)(s_threads_process, 0); + (*func)(s_threads_process, nullptr); s_threads_process.m_pool_state = ThreadsExec::Inactive; } - s_current_function_arg = 0; - s_current_function = 0; + s_current_function_arg = nullptr; + s_current_function = nullptr; // Make sure function and arguments are cleared before proceeding. memory_fence(); @@ -417,7 +415,7 @@ void ThreadsExec::execute_resize_scratch(ThreadsExec &exec, const void *) { if (exec.m_scratch) { Record *const r = Record::get_record(exec.m_scratch); - exec.m_scratch = 0; + exec.m_scratch = nullptr; Record::decrement(r); } @@ -508,7 +506,7 @@ void ThreadsExec::print_configuration(std::ostream &s, const bool detail) { s << " threads[" << s_thread_pool_size[0] << "]" << " threads_per_numa[" << s_thread_pool_size[1] << "]" << " threads_per_core[" << s_thread_pool_size[2] << "]"; - if (0 == s_threads_process.m_pool_base) { + if (nullptr == s_threads_process.m_pool_base) { s << " Asynchronous"; } s << " ReduceScratch[" << s_current_reduce_size << "]" @@ -547,19 +545,20 @@ void ThreadsExec::print_configuration(std::ostream &s, const bool detail) { //---------------------------------------------------------------------------- -int ThreadsExec::is_initialized() { return 0 != s_threads_exec[0]; } +int ThreadsExec::is_initialized() { return nullptr != s_threads_exec[0]; } void ThreadsExec::initialize(unsigned thread_count, unsigned use_numa_count, unsigned use_cores_per_numa, bool allow_asynchronous_threadpool) { - static const Sentinel sentinel; + // need to provide an initializer for Intel compilers + static const Sentinel sentinel = {}; const bool is_initialized = 0 != s_thread_pool_size[0]; unsigned thread_spawn_failed = 0; for (int i = 0; i < ThreadsExec::MAX_THREAD_COUNT; i++) - s_threads_exec[i] = NULL; + s_threads_exec[i] = nullptr; if (!is_initialized) { // If thread_count, use_numa_count, or use_cores_per_numa are zero @@ -631,8 +630,8 @@ void ThreadsExec::initialize(unsigned thread_count, unsigned use_numa_count, } } - s_current_function = 0; - s_current_function_arg = 0; + s_current_function = nullptr; + s_current_function_arg = nullptr; s_threads_process.m_pool_state = ThreadsExec::Inactive; memory_fence(); @@ -659,7 +658,7 @@ void ThreadsExec::initialize(unsigned thread_count, unsigned use_numa_count, s_threads_process.m_pool_rank, s_threads_process.m_pool_size); s_threads_pid[s_threads_process.m_pool_rank] = pthread_self(); } else { - s_threads_process.m_pool_base = 0; + s_threads_process.m_pool_base = nullptr; s_threads_process.m_pool_rank = 0; s_threads_process.m_pool_size = 0; s_threads_process.m_pool_fan_size = 0; @@ -740,7 +739,7 @@ void ThreadsExec::finalize() { if (s_threads_process.m_pool_base) { (&s_threads_process)->~ThreadsExec(); - s_threads_exec[0] = 0; + s_threads_exec[0] = nullptr; } if (Kokkos::hwloc::can_bind_threads()) { @@ -754,7 +753,7 @@ void ThreadsExec::finalize() { // Reset master thread to run solo. s_threads_process.m_numa_rank = 0; s_threads_process.m_numa_core_rank = 0; - s_threads_process.m_pool_base = 0; + s_threads_process.m_pool_base = nullptr; s_threads_process.m_pool_rank = 0; s_threads_process.m_pool_size = 1; s_threads_process.m_pool_fan_size = 0; diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec_base.cpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec_base.cpp index ed7b884a870ad2fb78858e6a41b45d202ac62133..40a09ed22ab1d6d73b62084549049521e0eb3150 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec_base.cpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsExec_base.cpp @@ -87,7 +87,7 @@ void* internal_pthread_driver(void*) { std::cerr.flush(); std::abort(); } - return NULL; + return nullptr; } } // namespace @@ -105,7 +105,7 @@ bool ThreadsExec::spawn() { 0 == pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)) { pthread_t pt; - result = 0 == pthread_create(&pt, &attr, internal_pthread_driver, 0); + result = 0 == pthread_create(&pt, &attr, internal_pthread_driver, nullptr); } pthread_attr_destroy(&attr); diff --git a/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp b/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp index 2cd9d73b2a43137f6f6e9b158e8c6619f83eb308..fe1a1e8b08efafd090a6ebdc0f1d7c01753c5e1f 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_ThreadsTeam.hpp @@ -169,7 +169,10 @@ class ThreadsExecTeamMember { KOKKOS_INLINE_FUNCTION void team_broadcast(ValueType& value, const int& thread_id) const { #if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - {} + { + (void)value; + (void)thread_id; + } #else // Make sure there is enough scratch space: typedef typename if_cscratch_memory()); + memory_fence(); + team_barrier(); if (team_rank() == thread_id) *local_value = value; memory_fence(); team_barrier(); @@ -189,7 +194,11 @@ class ThreadsExecTeamMember { KOKKOS_INLINE_FUNCTION void team_broadcast(Closure const& f, ValueType& value, const int& thread_id) const { #if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - {} + { + (void)f; + (void)value; + (void)thread_id; + } #else // Make sure there is enough scratch space: typedef typename if_cscratch_memory()); + memory_fence(); + team_barrier(); if (team_rank() == thread_id) *local_value = value; memory_fence(); team_barrier(); @@ -211,7 +222,7 @@ class ThreadsExecTeamMember { team_reduce(const Type& value) const #if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) { - return Type(); + return value; } #else { @@ -221,13 +232,15 @@ class ThreadsExecTeamMember { if (0 == m_exec) return value; - *((volatile type*)m_exec->scratch_memory()) = value; + if (team_rank() != team_size() - 1) + *((volatile type*)m_exec->scratch_memory()) = value; memory_fence(); type& accum = *((type*)m_team_base[0]->scratch_memory()); if (team_fan_in()) { + accum = value; for (int i = 1; i < m_team_size; ++i) { accum += *((type*)m_team_base[i]->scratch_memory()); } @@ -267,7 +280,7 @@ class ThreadsExecTeamMember { type* const local_value = ((type*)m_exec->scratch_memory()); // Set this thread's contribution - *local_value = contribution; + if (team_rank() != team_size() - 1) *local_value = contribution; // Fence to make sure the base team member has access: memory_fence(); @@ -277,6 +290,7 @@ class ThreadsExecTeamMember { // team_fan_out() type* const team_value = ((type*)m_team_base[0]->scratch_memory()); + *team_value = contribution; // Join to the team value: for (int i = 1; i < m_team_size; ++i) { reducer.join(*team_value, *((type*)m_team_base[i]->scratch_memory())); @@ -313,7 +327,8 @@ class ThreadsExecTeamMember { ArgType* const global_accum) const #if !defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) { - return ArgType(); + (void)global_accum; + return value; } #else { @@ -607,6 +622,11 @@ class TeamPolicyInternal typedef PolicyTraits traits; + const typename traits::execution_space& space() const { + static typename traits::execution_space m_space; + return m_space; + } + TeamPolicyInternal& operator=(const TeamPolicyInternal& p) { m_league_size = p.m_league_size; m_team_size = p.m_team_size; @@ -1167,7 +1187,8 @@ namespace Kokkos { template KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct& single_struct, + const Impl::VectorSingleStruct< + Impl::ThreadsExecTeamMember>& /*single_struct*/, const FunctorType& lambda) { lambda(); } @@ -1181,7 +1202,8 @@ KOKKOS_INLINE_FUNCTION void single( template KOKKOS_INLINE_FUNCTION void single( - const Impl::VectorSingleStruct& single_struct, + const Impl::VectorSingleStruct< + Impl::ThreadsExecTeamMember>& /*single_struct*/, const FunctorType& lambda, ValueType& val) { lambda(val); } diff --git a/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp b/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp index f45830cb24c8e8d65157a35273089a869d8312c5..fbc83e9a5550e0dad15ba42a0b32d757328ea0a8 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_Threads_Parallel.hpp @@ -492,7 +492,7 @@ class ParallelReduce, ReducerType, const HostViewType &arg_result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void *>::type = NULL) + void *>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), @@ -650,7 +650,7 @@ class ParallelReduce, ReducerType, const HostViewType &arg_result_view, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void *>::type = NULL) + void *>::type = nullptr) : m_functor(arg_functor), m_mdr_policy(arg_policy), m_policy(Policy(0, m_mdr_policy.m_num_tiles).set_chunk_size(1)), @@ -774,7 +774,7 @@ class ParallelReduce, const ViewType &arg_result, typename std::enable_if::value && !Kokkos::is_reducer_type::value, - void *>::type = NULL) + void *>::type = nullptr) : m_functor(arg_functor), m_policy(arg_policy), m_reducer(InvalidType()), diff --git a/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp b/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp index ec2b1d983fa6e86510a1590df612c3bb002313cf..7bcd9aaee06cfa3f7a2278d694c5058ff757ae78 100644 --- a/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp +++ b/lib/kokkos/core/src/Threads/Kokkos_Threads_WorkGraphPolicy.hpp @@ -87,9 +87,10 @@ class ParallelFor, } } - static inline void thread_main(ThreadsExec&, const void* arg) noexcept { + static inline void thread_main(ThreadsExec& exec, const void* arg) noexcept { const Self& self = *(static_cast(arg)); self.exec_one_thread(); + exec.fan_in(); } public: diff --git a/lib/kokkos/core/src/impl/CMakeLists.txt b/lib/kokkos/core/src/impl/CMakeLists.txt index 2f6d8e78a3c0e7e283fd7473a0872ea46b5126bf..361a85b7381a2f337e7916e2905a3cc62bedcfb9 100644 --- a/lib/kokkos/core/src/impl/CMakeLists.txt +++ b/lib/kokkos/core/src/impl/CMakeLists.txt @@ -9,7 +9,7 @@ TRIBITS_ADD_LIBRARY( kokkoscore_impl NOINSTALLHEADERS ${HEADERS} SOURCES ${SOURCES} - DEPLIBS + DEPLIBS ) SET(TRILINOS_INCDIR ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR}) diff --git a/lib/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp b/lib/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp index ac8665143347554acb3fa5a4184f3573c55030c4..739e2d4f462d9624d59026a8a3ac5189347c02e7 100644 --- a/lib/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_AnalyzePolicy.hpp @@ -177,11 +177,14 @@ struct AnalyzePolicy is_launch_bounds::value, SetLaunchBounds, typename std::conditional< - Experimental::is_work_item_property< - T>::value, + Kokkos::Experimental:: + is_work_item_property::value, SetWorkItemProperty, - SetWorkTag >::type>::type>:: - type>::type>::type>::type>::type::type, + typename std::conditional< + !std::is_void::value, + SetWorkTag, Base>::type>:: + type>::type>::type>::type>::type>::type>:: + type::type, Traits...> {}; template @@ -201,9 +204,9 @@ struct AnalyzePolicy { using index_type = typename std::conditional::value, IndexType, - typename Base::index_type>::type :: - type // nasty hack to make index_type into an integral_type - ; // instead of the wrapped IndexType for backwards compatibility + typename Base::index_type>::type::type; + // nasty hack to make index_type into an integral_type + // instead of the wrapped IndexType for backwards compatibility using iteration_pattern = typename std::conditional< is_void::value, diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Assembly.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Assembly.hpp index 786ffc902f641bef5961d2d871908db8d6a9dcc7..a31dd1cf49365bd1b05d0f188637e398417a0dd7 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Assembly.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Assembly.hpp @@ -48,6 +48,8 @@ namespace Kokkos { namespace Impl { + +#if !defined(_WIN32) struct cas128_t { uint64_t lower; uint64_t upper; @@ -85,6 +87,7 @@ struct cas128_t { upper = a.upper; } } __attribute__((__aligned__(16))); +#endif #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) inline cas128_t cas128(volatile cas128_t* ptr, cas128_t cmp, cas128_t swap) { diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp index 4fe72ad1426b358c8dd42973f0e928728c6f6843..c25b80a825b22bb635afc63d252164c9cd9621c8 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Strong.hpp @@ -92,8 +92,7 @@ __inline__ __device__ unsigned long long int atomic_compare_exchange( template __inline__ __device__ T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { const int tmp = atomicCAS((int*)dest, *((int*)&compare), *((int*)&val)); return *((T*)&tmp); } @@ -101,9 +100,9 @@ __inline__ __device__ T atomic_compare_exchange( template __inline__ __device__ T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T&>::type val) { + typename std::enable_if::type val) { typedef unsigned long long int type; const type tmp = atomicCAS((type*)dest, *((type*)&compare), *((type*)&val)); return *((T*)&tmp); @@ -112,8 +111,8 @@ __inline__ __device__ T atomic_compare_exchange( template __inline__ __device__ T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), - const T>::type& val) { + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), + const T>::type& val) { T return_val; // This is a way to (hopefully) avoid dead lock in a warp int done = 0; @@ -147,7 +146,7 @@ __inline__ __device__ T atomic_compare_exchange( //---------------------------------------------------------------------------- // GCC native CAS supports int, long, unsigned int, unsigned long. // Intel native CAS support int and long with the same interface as GCC. -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) +#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -188,12 +187,11 @@ inline unsigned long atomic_compare_exchange(volatile unsigned long* const dest, template inline T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -208,13 +206,13 @@ inline T atomic_compare_exchange( template inline T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type val) { union U { long i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -230,14 +228,14 @@ inline T atomic_compare_exchange( template inline T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type val) { union U { Impl::cas128_t i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -253,12 +251,12 @@ inline T atomic_compare_exchange( template inline T atomic_compare_exchange( volatile T* const dest, const T compare, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) - && (sizeof(T) != 16) + && (sizeof(T) != 16) #endif - , - const T>::type& val) { + , + const T>::type& val) { #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp index c2aad61975fd5aa64428937f8981ada117315ac1..e3fd1c53db3e9fdbc91a044104726c3de9dfc0b7 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Compare_Exchange_Weak.hpp @@ -226,7 +226,7 @@ bool atomic_compare_exchange_weak( // GCC native CAS supports int, long, unsigned int, unsigned long. // Intel native CAS support int and long with the same interface as GCC. -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) +#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -267,12 +267,11 @@ inline unsigned long atomic_compare_exchange(volatile unsigned long* const dest, template inline T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -287,13 +286,13 @@ inline T atomic_compare_exchange( template inline T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type val) { union U { long i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -309,14 +308,14 @@ inline T atomic_compare_exchange( template inline T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type val) { union U { Impl::cas128_t i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -332,12 +331,12 @@ inline T atomic_compare_exchange( template inline T atomic_compare_exchange( volatile T* const dest, const T compare, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) - && (sizeof(T) != 16) + && (sizeof(T) != 16) #endif - , - const T>::type& val) { + , + const T>::type& val) { #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Decrement.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Decrement.hpp index 992ae3c0052b72e89ef661d62e6b66ebe6be27f9..47961b5c717fcd88c2b6a66266a42a6df256a00b 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Decrement.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Decrement.hpp @@ -54,7 +54,7 @@ namespace Kokkos { -// Atomic increment +// Atomic decrement template <> KOKKOS_INLINE_FUNCTION void atomic_decrement(volatile char* a) { #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) && \ diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp index 37aebf9a3d38bab019e92136fa392e76b51ba2dd..4a9a786df4dccdb11a4a8db026fbd651ffcbd177 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp @@ -84,8 +84,7 @@ __inline__ __device__ unsigned long long int atomic_exchange( template __inline__ __device__ T atomic_exchange( volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { // int tmp = __ullAtomicExch( (int*) dest , *((int*)&val) ); #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); @@ -98,9 +97,9 @@ __inline__ __device__ T atomic_exchange( template __inline__ __device__ T atomic_exchange( volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T&>::type val) { + typename std::enable_if::type val) { typedef unsigned long long int type; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -113,10 +112,10 @@ __inline__ __device__ T atomic_exchange( } template -__inline__ __device__ T atomic_exchange( - volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), - const T>::type& val) { +__inline__ __device__ T +atomic_exchange(volatile T* const dest, + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), + const T>::type& val) { T return_val; // This is a way to (hopefully) avoid dead lock in a warp #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -152,8 +151,7 @@ __inline__ __device__ T atomic_exchange( template __inline__ __device__ void atomic_assign( volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { // (void) __ullAtomicExch( (int*) dest , *((int*)&val) ); (void)atomicExch(((int*)dest), *((int*)&val)); } @@ -161,9 +159,9 @@ __inline__ __device__ void atomic_assign( template __inline__ __device__ void atomic_assign( volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T&>::type val) { + typename std::enable_if::type val) { typedef unsigned long long int type; // (void) __ullAtomicExch( (type*) dest , *((type*)&val) ); (void)atomicExch(((type*)dest), *((type*)&val)); @@ -172,9 +170,9 @@ __inline__ __device__ void atomic_assign( template __inline__ __device__ void atomic_assign( volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) != sizeof(unsigned long long int), - const T&>::type val) { + typename std::enable_if::type val) { (void)atomic_exchange(dest, val); } @@ -187,11 +185,10 @@ __inline__ __device__ void atomic_assign( #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) template -inline T atomic_exchange( - volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { +inline T atomic_exchange(volatile T* const dest, + typename std::enable_if::type val) { typedef typename Kokkos::Impl::if_c::type type; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -205,7 +202,7 @@ inline T atomic_exchange( union U { T val_T; type val_type; - inline U(){}; + inline U() {} } old; old.val_T = *dest; @@ -223,8 +220,8 @@ inline T atomic_exchange( template inline T atomic_exchange( volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type + val) { #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif @@ -232,7 +229,7 @@ inline T atomic_exchange( union U { Impl::cas128_t i; T t; - inline U(){}; + inline U() {} } assume, oldval, newval; oldval.t = *dest; @@ -252,12 +249,12 @@ inline T atomic_exchange( template inline T atomic_exchange( volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) - && (sizeof(T) != 16) + && (sizeof(T) != 16) #endif - , - const T>::type& val) { + , + const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; T return_val = *dest; @@ -280,11 +277,10 @@ inline T atomic_exchange( } template -inline void atomic_assign( - volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { +inline void atomic_assign(volatile T* const dest, + typename std::enable_if::type val) { typedef typename Kokkos::Impl::if_c::type type; @@ -299,7 +295,7 @@ inline void atomic_assign( union U { T val_T; type val_type; - inline U(){}; + inline U() {} } old; old.val_T = *dest; @@ -315,8 +311,8 @@ inline void atomic_assign( template inline void atomic_assign( volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type + val) { #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif @@ -324,7 +320,7 @@ inline void atomic_assign( union U { Impl::cas128_t i; T t; - inline U(){}; + inline U() {} } assume, oldval, newval; oldval.t = *dest; @@ -339,12 +335,12 @@ inline void atomic_assign( template inline void atomic_assign( volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) - && (sizeof(T) != 16) + && (sizeof(T) != 16) #endif - , - const T>::type& val) { + , + const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; // This is likely an aggregate type with a defined diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp index 58277740da1e2de7803f9dbbc711a9089bae0d60..0a6900f84092defac80166544d44b85642a54837 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Add.hpp @@ -94,14 +94,13 @@ __inline__ __device__ double atomic_fetch_add(volatile double* const dest, template __inline__ __device__ T atomic_fetch_add( volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { // to work around a bug in the clang cuda compiler, the name here needs to be // different from the one internal to the other overloads union U1 { int i; T t; - KOKKOS_INLINE_FUNCTION U1(){}; + KOKKOS_INLINE_FUNCTION U1() {} } assume, oldval, newval; oldval.t = *dest; @@ -118,15 +117,15 @@ __inline__ __device__ T atomic_fetch_add( template __inline__ __device__ T atomic_fetch_add( volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T>::type val) { + typename std::enable_if::type val) { // to work around a bug in the clang cuda compiler, the name here needs to be // different from the one internal to the other overloads union U2 { unsigned long long int i; T t; - KOKKOS_INLINE_FUNCTION U2(){}; + KOKKOS_INLINE_FUNCTION U2() {} } assume, oldval, newval; oldval.t = *dest; @@ -143,10 +142,10 @@ __inline__ __device__ T atomic_fetch_add( //---------------------------------------------------------------------------- template -__inline__ __device__ T atomic_fetch_add( - volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), - const T>::type& val) { +__inline__ __device__ T +atomic_fetch_add(volatile T* const dest, + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), + const T>::type& val) { T return_val; // This is a way to (hopefully) avoid dead lock in a warp int done = 0; @@ -179,7 +178,7 @@ __inline__ __device__ T atomic_fetch_add( #endif #endif //---------------------------------------------------------------------------- -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) +#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -239,12 +238,11 @@ inline unsigned long int atomic_fetch_add( template inline T atomic_fetch_add( volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; - inline U(){}; + inline U() {} } assume, oldval, newval; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -263,15 +261,14 @@ inline T atomic_fetch_add( } template -inline T atomic_fetch_add( - volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { +inline T atomic_fetch_add(volatile T* const dest, + typename std::enable_if::type val) { union U { long i; T t; - inline U(){}; + inline U() {} } assume, oldval, newval; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -293,14 +290,14 @@ inline T atomic_fetch_add( template inline T atomic_fetch_add( volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type val) { union U { Impl::cas128_t i; T t; - inline U(){}; + inline U() {} } assume, oldval, newval; #if defined(KOKKOS_ENABLE_RFO_PREFETCH) @@ -324,12 +321,12 @@ inline T atomic_fetch_add( template inline T atomic_fetch_add( volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) - && (sizeof(T) != 16) + && (sizeof(T) != 16) #endif - , - const T>::type& val) { + , + const T>::type& val) { while (!Impl::lock_address_host_space((void*)dest)) ; T return_val = *dest; @@ -390,11 +387,5 @@ __inline__ __device__ T atomic_fetch_add(volatile T* const, } #endif -// Simpler version of atomic_fetch_add without the fetch -template -KOKKOS_INLINE_FUNCTION void atomic_add(volatile T* const dest, const T src) { - atomic_fetch_add(dest, src); -} - } // namespace Kokkos #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp index 91da9fdcaa40ce5d02e9a1868b3ffdb1bc511be0..c14749f1b73c871613ce2fbd4dc3eda9f0b3abed 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Fetch_Sub.hpp @@ -93,8 +93,7 @@ __inline__ __device__ unsigned int atomic_fetch_sub(volatile double* const dest, template __inline__ __device__ T atomic_fetch_sub( volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; @@ -115,9 +114,9 @@ __inline__ __device__ T atomic_fetch_sub( template __inline__ __device__ T atomic_fetch_sub( volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T>::type val) { + typename std::enable_if::type val) { union U { unsigned long long int i; T t; @@ -138,10 +137,10 @@ __inline__ __device__ T atomic_fetch_sub( //---------------------------------------------------------------------------- template -__inline__ __device__ T atomic_fetch_sub( - volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), - const T>::type& val) { +__inline__ __device__ T +atomic_fetch_sub(volatile T* const dest, + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), + const T>::type& val) { T return_val; // This is a way to (hopefully) avoid dead lock in a warp int done = 0; @@ -172,7 +171,7 @@ __inline__ __device__ T atomic_fetch_sub( #endif #endif //---------------------------------------------------------------------------- -#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) +#if !defined(KOKKOS_ENABLE_ROCM_ATOMICS) || !defined(KOKKOS_ENABLE_HIP_ATOMICS) #if !defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) #if defined(KOKKOS_ENABLE_GNU_ATOMICS) || defined(KOKKOS_ENABLE_INTEL_ATOMICS) @@ -214,8 +213,7 @@ inline unsigned long int atomic_fetch_sub( template inline T atomic_fetch_sub( volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; @@ -238,11 +236,10 @@ inline T atomic_fetch_sub( } template -inline T atomic_fetch_sub( - volatile T* const dest, - typename Kokkos::Impl::enable_if::type val) { +inline T atomic_fetch_sub(volatile T* const dest, + typename std::enable_if::type val) { #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif @@ -269,8 +266,8 @@ inline T atomic_fetch_sub( template inline T atomic_fetch_sub( volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), - const T>::type& val) { + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), + const T>::type& val) { #if defined(KOKKOS_ENABLE_RFO_PREFETCH) _mm_prefetch((const char*)dest, _MM_HINT_ET0); #endif @@ -321,12 +318,6 @@ __inline__ __device__ T atomic_fetch_sub(volatile T* const, } #endif -// Simpler version of atomic_fetch_sub without the fetch -template -KOKKOS_INLINE_FUNCTION void atomic_sub(volatile T* const dest, const T src) { - atomic_fetch_sub(dest, src); -} - } // namespace Kokkos #include diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp index 160a4e79218a50345fe413bdace7c856ee30d30f..49ee86b2c45b44e7a6dcfdcc567b94704caa716a 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic.hpp @@ -155,9 +155,9 @@ struct RShiftOper { template KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( const Oper& op, volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T>::type val) { + typename std::enable_if::type val) { union U { unsigned long long int i; T t; @@ -179,9 +179,9 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( template KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( const Oper& op, volatile T* const dest, - typename Kokkos::Impl::enable_if< - sizeof(T) != sizeof(int) && sizeof(T) == sizeof(unsigned long long int), - const T>::type val) { + typename std::enable_if::type val) { union U { unsigned long long int i; T t; @@ -192,7 +192,7 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( do { assume.i = oldval.i; - newval.t = Oper::apply(assume.t, val); + newval.t = op.apply(assume.t, val); oldval.i = Kokkos::atomic_compare_exchange((unsigned long long int*)dest, assume.i, newval.i); } while (assume.i != oldval.i); @@ -203,8 +203,7 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( template KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( const Oper& op, volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; @@ -225,8 +224,7 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( template KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( const Oper& op, volatile T* const dest, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { int i; T t; @@ -237,7 +235,7 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( do { assume.i = oldval.i; - newval.t = Oper::apply(assume.t, val); + newval.t = op.apply(assume.t, val); oldval.i = Kokkos::atomic_compare_exchange((int*)dest, assume.i, newval.i); } while (assume.i != oldval.i); @@ -247,13 +245,13 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( template KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( const Oper& op, volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), - const T>::type val) { + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8), const T>::type + val) { #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST while (!Impl::lock_address_host_space((void*)dest)) ; T return_val = *dest; - *dest = Oper::apply(return_val, val); + *dest = op.apply(return_val, val); Impl::unlock_address_host_space((void*)dest); return return_val; #elif defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA) @@ -271,8 +269,7 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { return_val = *dest; - *dest = Oper::apply(return_val, val); - ; + *dest = op.apply(return_val, val); Impl::unlock_address_cuda_space((void*)dest); done = 1; } @@ -284,24 +281,44 @@ KOKKOS_INLINE_FUNCTION T atomic_fetch_oper( #endif } return return_val; +#elif defined(__HIP_DEVICE_COMPILE__) + // FIXME_HIP + Kokkos::abort("atomic_fetch_oper not implemented for large types."); + T return_val = *dest; + int done = 0; + unsigned int active = __ballot(1); + unsigned int done_active = 0; + while (active != done_active) { + if (!done) { + // if (Impl::lock_address_hip_space((void*)dest)) + { + return_val = *dest; + *dest = op.apply(return_val, val); + // Impl::unlock_address_hip_space((void*)dest); + done = 1; + } + } + done_active = __ballot(done); + } + return return_val; #endif } template -KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( - const Oper& op, volatile T* const dest, - typename Kokkos::Impl::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) +KOKKOS_INLINE_FUNCTION T +atomic_oper_fetch(const Oper& op, volatile T* const dest, + typename std::enable_if<(sizeof(T) != 4) && (sizeof(T) != 8) #if defined(KOKKOS_ENABLE_ASM) && \ defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) - && (sizeof(T) != 16) + && (sizeof(T) != 16) #endif - , - const T>::type& val) { + , + const T>::type& val) { #ifdef KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST while (!Impl::lock_address_host_space((void*)dest)) ; - T return_val = Oper::apply(*dest, val); + T return_val = op.apply(*dest, val); *dest = return_val; Impl::unlock_address_host_space((void*)dest); return return_val; @@ -319,7 +336,7 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( while (active != done_active) { if (!done) { if (Impl::lock_address_cuda_space((void*)dest)) { - return_val = Oper::apply(*dest, val); + return_val = op.apply(*dest, val); *dest = return_val; Impl::unlock_address_cuda_space((void*)dest); done = 1; @@ -332,6 +349,26 @@ KOKKOS_INLINE_FUNCTION T atomic_oper_fetch( #endif } return return_val; +#elif defined(__HIP_DEVICE_COMPILE__) + // FIXME_HIP + Kokkos::abort("atomic_oper_fetch not implemented for large types."); + T return_val; + int done = 0; + unsigned int active = __ballot(1); + unsigned int done_active = 0; + while (active != done_active) { + if (!done) { + // if (Impl::lock_address_hip_space((void*)dest)) + { + return_val = op.apply(*dest, val); + *dest = return_val; + // Impl::unlock_address_hip_space((void*)dest); + done = 1; + } + } + done_active = __ballot(done); + } + return return_val; #endif } @@ -454,5 +491,27 @@ KOKKOS_INLINE_FUNCTION T atomic_rshift_fetch(volatile T* const dest, dest, val); } +#ifdef _WIN32 +template +KOKKOS_INLINE_FUNCTION T atomic_add_fetch(volatile T* const dest, const T val) { + return Impl::atomic_oper_fetch(Impl::AddOper(), dest, val); +} + +template +KOKKOS_INLINE_FUNCTION T atomic_sub_fetch(volatile T* const dest, const T val) { + return Impl::atomic_oper_fetch(Impl::SubOper(), dest, val); +} + +template +KOKKOS_INLINE_FUNCTION T atomic_fetch_add(volatile T* const dest, const T val) { + return Impl::atomic_fetch_oper(Impl::AddOper(), dest, val); +} + +template +KOKKOS_INLINE_FUNCTION T atomic_fetch_sub(volatile T* const dest, const T val) { + return Impl::atomic_fetch_oper(Impl::SubOper(), dest, val); +} +#endif + } // namespace Kokkos #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp new file mode 100644 index 0000000000000000000000000000000000000000..9d0172b653798f468fa6d7092a221789ba786234 --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Generic_Secondary.hpp @@ -0,0 +1,76 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#if defined(KOKKOS_ATOMIC_HPP) && !defined(KOKKOS_ATOMIC_GENERIC_SECONDARY_HPP) +#define KOKKOS_ATOMIC_GENERIC_SECONDARY_HPP +#include + +namespace Kokkos { + +#ifndef KOKKOS_ENABLE_SERIAL_ATOMICS +template +KOKKOS_INLINE_FUNCTION T atomic_exchange(volatile T* const dest, const T val) { + T oldval = *dest; + T assume; + do { + assume = oldval; + oldval = atomic_compare_exchange(dest, assume, val); + } while (assume != oldval); + + return oldval; +} +#endif + +template +KOKKOS_INLINE_FUNCTION void atomic_add(volatile T* const dest, const T val) { + (void)atomic_fetch_add(dest, val); +} + +template +KOKKOS_INLINE_FUNCTION void atomic_sub(volatile T* const dest, const T val) { + (void)atomic_fetch_sub(dest, val); +} + +} // namespace Kokkos +#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Increment.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Increment.hpp index f0ffebef9a22683c586136ccafc458961c87bd01..65630aa84cdf9845afca761d56e68c6ffe3ef269 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Increment.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Increment.hpp @@ -91,6 +91,7 @@ KOKKOS_INLINE_FUNCTION void atomic_increment(volatile short* a) { #endif } +#ifndef _WIN32 template <> KOKKOS_INLINE_FUNCTION void atomic_increment(volatile int* a) { #if defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) && \ @@ -109,6 +110,7 @@ KOKKOS_INLINE_FUNCTION void atomic_increment(volatile int* a) { Kokkos::atomic_fetch_add(a, int(1)); #endif } +#endif template <> KOKKOS_INLINE_FUNCTION void atomic_increment( diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Load.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Load.hpp index 6b4c82b6203ccf1ba2ad5f7aa3a96b283279917c..f3b77a297629867a11ef25225b1302f1d68aa937 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Load.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Load.hpp @@ -125,8 +125,7 @@ __device__ __inline__ T _relaxed_atomic_load_impl( void const**>::type = nullptr) { T rv{}; // TODO remove a copy operation here? - Kokkos::Impl::atomic_oper_fetch(NoOpOper{}, &rv, rv); - return rv; + return Kokkos::Impl::atomic_oper_fetch(NoOpOper{}, ptr, rv); } template @@ -168,6 +167,14 @@ inline T _atomic_load(T* ptr, MemoryOrder) { return *ptr; } +#elif defined(KOKKOS_ENABLE_WINDOWS_ATOMICS) + +template +inline T _atomic_load(T* ptr, MemoryOrder) { + atomic_compare_exchange(ptr, 0, 0); + return *ptr; +} + #endif // end of all atomic implementations template @@ -189,7 +196,7 @@ KOKKOS_FORCEINLINE_FUNCTION T atomic_load(T* ptr, } template -KOKKOS_FORCEINLINE_FUNCTION T atomic_load(T* ptr, +KOKKOS_FORCEINLINE_FUNCTION T atomic_load(T* /*ptr*/, Impl::memory_order_release_t) { static_assert( sizeof(T) == 0, // just something that will always be false, but only on @@ -198,7 +205,7 @@ KOKKOS_FORCEINLINE_FUNCTION T atomic_load(T* ptr, } template -KOKKOS_FORCEINLINE_FUNCTION T atomic_load(T* ptr, +KOKKOS_FORCEINLINE_FUNCTION T atomic_load(T* /*ptr*/, Impl::memory_order_acq_rel_t) { static_assert( sizeof(T) == 0, // just something that will always be false, but only on diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_MinMax.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_MinMax.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8a886d0a7757ae085a223511162a0ed956dd6d6a --- /dev/null +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_MinMax.hpp @@ -0,0 +1,223 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#if defined(KOKKOS_ATOMIC_HPP) && !defined(KOKKOS_ATOMIC_MINMAX_HPP) +#define KOKKOS_ATOMIC_MINMAX_HPP + +namespace Kokkos { + +//---------------------------------------------------------------------------- + +#if defined(KOKKOS_ENABLE_CUDA) +#if defined(__CUDA_ARCH__) || defined(KOKKOS_IMPL_CUDA_CLANG_WORKAROUND) + +// Support for int, unsigned int, unsigned long long int, and float + +// Atomic_fetch_{min,max} + +#ifdef KOKKOS_IMPL_CUDA_CLANG_WORKAROUND + +// Host implementations for CLANG compiler + +inline __host__ int atomic_fetch_min(volatile int* const dest, const int val) { + return Impl::atomic_fetch_oper(Impl::MinOper(), dest, + val); +} + +inline __host__ unsigned int atomic_fetch_min(volatile unsigned int* const dest, + const unsigned int val) { + return Impl::atomic_fetch_oper( + Impl::MinOper(), dest, val); +} + +inline __host__ unsigned long long int atomic_fetch_min( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + return Impl::atomic_fetch_oper(Impl::MinOper(), + dest, val); +} + +inline __host__ int atomic_fetch_max(volatile int* const dest, const int val) { + return Impl::atomic_fetch_oper(Impl::MaxOper(), dest, + val); +} + +inline __host__ unsigned int atomic_fetch_max(volatile unsigned int* const dest, + const unsigned int val) { + return Impl::atomic_fetch_oper( + Impl::MaxOper(), dest, val); +} + +inline __host__ unsigned long long int atomic_fetch_max( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + return Impl::atomic_fetch_oper(Impl::MaxOper(), + dest, val); +} + +#endif + +inline __device__ int atomic_fetch_min(volatile int* const dest, + const int val) { + return atomicMin((int*)dest, val); +} + +inline __device__ unsigned int atomic_fetch_min( + volatile unsigned int* const dest, const unsigned int val) { + return atomicMin((unsigned int*)dest, val); +} + +inline __device__ unsigned long long int atomic_fetch_min( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + return atomicMin((unsigned long long int*)dest, val); +} + +inline __device__ int atomic_fetch_max(volatile int* const dest, + const int val) { + return atomicMax((int*)dest, val); +} + +inline __device__ unsigned int atomic_fetch_max( + volatile unsigned int* const dest, const unsigned int val) { + return atomicMax((unsigned int*)dest, val); +} + +inline __device__ unsigned long long int atomic_fetch_max( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + return atomicMax((unsigned long long int*)dest, val); +} + +// Atomic_{min,max}_fetch + +#ifdef KOKKOS_IMPL_CUDA_CLANG_WORKAROUND + +// Host implementations for CLANG compiler + +inline __host__ int atomic_min_fetch(volatile int* const dest, const int val) { + return Impl::atomic_oper_fetch(Impl::MinOper(), dest, + val); +} + +inline __host__ unsigned int atomic_min_fetch(volatile unsigned int* const dest, + const unsigned int val) { + return Impl::atomic_oper_fetch( + Impl::MinOper(), dest, val); +} + +inline __host__ unsigned long long int atomic_min_fetch( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + return Impl::atomic_oper_fetch(Impl::MinOper(), + dest, val); +} + +inline __host__ int atomic_max_fetch(volatile int* const dest, const int val) { + return Impl::atomic_oper_fetch(Impl::MaxOper(), dest, + val); +} + +inline __host__ unsigned int atomic_max_fetch(volatile unsigned int* const dest, + const unsigned int val) { + return Impl::atomic_oper_fetch( + Impl::MaxOper(), dest, val); +} + +inline __host__ unsigned long long int atomic_max_fetch( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + return Impl::atomic_oper_fetch(Impl::MaxOper(), + dest, val); +} +#endif + +inline __device__ int atomic_min_fetch(volatile int* const dest, + const int val) { + const int old = atomicMin((int*)dest, val); + return old < val ? old : val; +} + +inline __device__ unsigned int atomic_min_fetch( + volatile unsigned int* const dest, const unsigned int val) { + const unsigned int old = atomicMin((unsigned int*)dest, val); + return old < val ? old : val; +} + +inline __device__ unsigned long long int atomic_min_fetch( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + const unsigned long long old = atomicMin((unsigned long long*)dest, val); + return old < val ? old : val; +} + +inline __device__ int atomic_max_fetch(volatile int* const dest, + const int val) { + const int old = atomicMax((int*)dest, val); + return old >= val ? old : val; +} + +inline __device__ unsigned int atomic_max_fetch( + volatile unsigned int* const dest, const unsigned int val) { + const unsigned int old = atomicMax((unsigned int*)dest, val); + return old >= val ? old : val; +} + +inline __device__ unsigned long long int atomic_max_fetch( + volatile unsigned long long int* const dest, + const unsigned long long int val) { + const unsigned long long old = atomicMax((unsigned long long*)dest, val); + return old >= val ? old : val; +} + +#endif +#endif +} // namespace Kokkos + +#endif diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Store.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Store.hpp index 6cd246e3ae9476f44532f8c4558edd2a7494398a..264d6beaf5d8a9f3741deafca4c67820c0649b90 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Store.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Store.hpp @@ -164,6 +164,13 @@ inline void _atomic_store(T* ptr, T val, MemoryOrder) { *ptr = val; } +#elif defined(KOKKOS_ENABLE_WINDOWS_ATOMICS) + +template +inline void _atomic_store(T* ptr, T val, MemoryOrder) { + atomic_exchange(ptr, val); +} + #endif // end of all atomic implementations template @@ -185,7 +192,7 @@ KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* ptr, T val, } template -KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* ptr, T val, +KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* /*ptr*/, T /*val*/, Impl::memory_order_acquire_t) { static_assert( sizeof(T) == 0, // just something that will always be false, but only on @@ -194,7 +201,7 @@ KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* ptr, T val, } template -KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* ptr, T val, +KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* /*ptr*/, T /*val*/, Impl::memory_order_acq_rel_t) { static_assert( sizeof(T) == 0, // just something that will always be false, but only on @@ -205,7 +212,7 @@ KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* ptr, T val, template KOKKOS_FORCEINLINE_FUNCTION void atomic_store(T* ptr, T val) { // relaxed by default! - _atomic_store(ptr, Impl::memory_order_relaxed); + _atomic_store(ptr, val, Impl::memory_order_relaxed); } } // end namespace Impl diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp index bfe9bcd0b33fd21d10569ac9e5135c2ae35d2b81..c3719bed229ccfd95b0b34cff3e6bb967900a7d9 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_View.hpp @@ -347,7 +347,7 @@ class AtomicViewDataHandle { typename ViewTraits::value_type* ptr; KOKKOS_INLINE_FUNCTION - AtomicViewDataHandle() : ptr(NULL) {} + AtomicViewDataHandle() : ptr(nullptr) {} KOKKOS_INLINE_FUNCTION AtomicViewDataHandle(typename ViewTraits::value_type* ptr_) : ptr(ptr_) {} diff --git a/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp b/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp index 25230982ec79aea5e7cdf6d146562d0d8ca5c29a..c5d3466c6c1b59a56019a24e5f94256d75f012bd 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Atomic_Windows.hpp @@ -52,6 +52,8 @@ #include #include +#undef VOID + namespace Kokkos { namespace Impl { #ifdef _MSC_VER @@ -74,14 +76,43 @@ __attribute__((aligned(16))) template KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type - val) { + typename std::enable_if::type val) { union U { - LONG i; + CHAR i; + T t; + KOKKOS_INLINE_FUNCTION U(){}; + } tmp; + + tmp.i = _InterlockedCompareExchange8((CHAR*)dest, *((CHAR*)&val), + *((CHAR*)&compare)); + return tmp.t; +} + +template +KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( + volatile T* const dest, const T& compare, + typename std::enable_if::type val) { + union U { + SHORT i; T t; KOKKOS_INLINE_FUNCTION U(){}; } tmp; + tmp.i = _InterlockedCompareExchange16((SHORT*)dest, *((SHORT*)&val), + *((SHORT*)&compare)); + return tmp.t; +} + +template +KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( + volatile T* const dest, const T& compare, + typename std::enable_if::type val) { + union U { + LONG i; + T t; + KOKKOS_INLINE_FUNCTION U() {} + } tmp; + tmp.i = _InterlockedCompareExchange((LONG*)dest, *((LONG*)&val), *((LONG*)&compare)); return tmp.t; @@ -90,12 +121,12 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( template KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type + val) { union U { LONGLONG i; T t; - KOKKOS_INLINE_FUNCTION U(){}; + KOKKOS_INLINE_FUNCTION U() {} } tmp; tmp.i = _InterlockedCompareExchange64((LONGLONG*)dest, *((LONGLONG*)&val), @@ -106,18 +137,19 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( template KOKKOS_INLINE_FUNCTION T atomic_compare_exchange( volatile T* const dest, const T& compare, - typename Kokkos::Impl::enable_if::type val) { + typename std::enable_if::type + val) { + T compare_and_result(compare); union U { Impl::cas128_t i; T t; KOKKOS_INLINE_FUNCTION U(){}; - } tmp, newval; + } newval; newval.t = val; _InterlockedCompareExchange128((LONGLONG*)dest, newval.i.upper, - newval.i.lower, ((LONGLONG*)&compare)); - tmp.t = dest; - return tmp.t; + newval.i.lower, + ((LONGLONG*)&compare_and_result)); + return compare_and_result; } template @@ -127,117 +159,6 @@ KOKKOS_INLINE_FUNCTION T atomic_compare_exchange_strong(volatile T* const dest, return atomic_compare_exchange(dest, compare, val); } -template -T atomic_fetch_or(volatile T* const dest, const T val) { - T oldval = *dest; - T assume; - do { - assume = oldval; - T newval = val | oldval; - oldval = atomic_compare_exchange(dest, assume, newval); - } while (assume != oldval); - - return oldval; -} - -template -T atomic_fetch_and(volatile T* const dest, const T val) { - T oldval = *dest; - T assume; - do { - assume = oldval; - T newval = val & oldval; - oldval = atomic_compare_exchange(dest, assume, newval); - } while (assume != oldval); - - return oldval; -} - -template -T atomic_fetch_add(volatile T* const dest, const T val) { - T oldval = *dest; - T assume; - do { - assume = oldval; - T newval = val + oldval; - oldval = atomic_compare_exchange(dest, assume, newval); - } while (assume != oldval); - - return oldval; -} - -template -T atomic_fetch_sub(volatile T* const dest, const T val) { - T oldval = *dest; - T assume; - do { - assume = oldval; - T newval = val - oldval; - oldval = atomic_compare_exchange(dest, assume, newval); - } while (assume != oldval); - - return oldval; -} - -template -T atomic_exchange(volatile T* const dest, const T val) { - T oldval = *dest; - T assume; - do { - assume = oldval; - oldval = atomic_compare_exchange(dest, assume, val); - } while (assume != oldval); - - return oldval; -} - -template -void atomic_or(volatile T* const dest, const T val) { - atomic_fetch_or(dest, val); -} - -template -void atomic_and(volatile T* const dest, const T val) { - atomic_fetch_and(dest, val); -} - -template -void atomic_add(volatile T* const dest, const T val) { - atomic_fetch_add(dest, val); -} - -template -void atomic_sub(volatile T* const dest, const T val) { - atomic_fetch_sub(dest, val); -} - -template -void atomic_assign(volatile T* const dest, const T val) { - atomic_fetch_exchange(dest, val); -} - -template -T atomic_increment(volatile T* const dest) { - T oldval = *dest; - T assume; - do { - assume = oldval; - T newval = assume++; - oldval = atomic_compare_exchange(dest, assume, newval); - } while (assume != oldval); -} - -template -T atomic_decrement(volatile T* const dest) { - T oldval = *dest; - T assume; - do { - assume = oldval; - T newval = assume--; - oldval = atomic_compare_exchange(dest, assume, newval); - } while (assume != oldval); -} - } // namespace Kokkos #endif #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_ChaseLev.hpp b/lib/kokkos/core/src/impl/Kokkos_ChaseLev.hpp index bff0ed8315aab5f6ac5c19743d3bb71eb08c9c3e..e2283f11fd20d08e5fb554581547622d7140a039 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ChaseLev.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ChaseLev.hpp @@ -48,8 +48,7 @@ #define KOKKOS_IMPL_LOCKFREEDEQUE_HPP #include -#ifdef KOKKOS_ENABLE_TASKDAG // Note: implies CUDA_VERSION >= 8000 if using - // CUDA +#ifdef KOKKOS_ENABLE_TASKDAG #include @@ -191,11 +190,21 @@ struct ChaseLevDeque { return_value = *static_cast(a[b]); // relaxed load if (t == b) { /* single last element in the queue. */ - if (not Impl::atomic_compare_exchange_strong( +#ifdef _WIN32 + Kokkos::memory_fence(); + bool const success = + Kokkos::atomic_compare_exchange_strong(&m_top, t, t + 1); + Kokkos::memory_fence(); + if (!success) { + return_value = nullptr; + } +#else + if (!Impl::atomic_compare_exchange_strong( &m_top, t, t + 1, memory_order_seq_cst, memory_order_relaxed)) { /* failed race, someone else stole it */ return_value = nullptr; } +#endif m_bottom = b + 1; // memory order relaxed } } else { @@ -241,10 +250,20 @@ struct ChaseLevDeque { Kokkos::load_fence(); // TODO @tasking @memory_order DSH memory order // instead of fence return_value = *static_cast(a[t]); // relaxed - if (not Impl::atomic_compare_exchange_strong( +#ifdef _WIN32 + Kokkos::memory_fence(); + bool const success = + Kokkos::atomic_compare_exchange_strong(&m_top, t, t + 1); + Kokkos::memory_fence(); + if (!success) { + return_value = nullptr; + } +#else + if (!Impl::atomic_compare_exchange_strong( &m_top, t, t + 1, memory_order_seq_cst, memory_order_relaxed)) { return_value = nullptr; } +#endif } return return_value; } diff --git a/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp b/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp index ad13fb7548df932b11066f73092dd76419a48a78..386b5918d03c4d88b2a87341f4da23e3120f863f 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ClockTic.hpp @@ -75,7 +75,10 @@ uint64_t clock_tic(void) noexcept { #elif defined(__HCC_ACCELERATOR__) // Get clock register return hc::__clock_u64(); - +#elif defined(KOKKOS_ENABLE_OPENMPTARGET) + return (uint64_t)std::chrono::high_resolution_clock::now() + .time_since_epoch() + .count(); #elif defined(__i386__) || defined(__x86_64) // Return value of 64-bit hi-res clock register. diff --git a/lib/kokkos/core/src/impl/Kokkos_Core.cpp b/lib/kokkos/core/src/impl/Kokkos_Core.cpp index 53f3fd9ce20279a796d42617eed44c1ec6bb2642..9640e0fccb7595c884ace5a9097cbb09026400ce 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Core.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Core.cpp @@ -50,19 +50,122 @@ #include #include #include +#include +#include #include +#ifndef _WIN32 #include +#endif //---------------------------------------------------------------------------- - namespace { bool g_is_initialized = false; bool g_show_warnings = true; -std::stack > finalize_hooks; +// When compiling with clang/LLVM and using the GNU (GCC) C++ Standard Library +// (any recent version between GCC 7.3 and GCC 9.2), std::deque SEGV's during +// the unwinding of the atexit(3C) handlers at program termination. However, +// this bug is not observable when building with GCC. +// As an added bonus, std::list provides constant insertion and +// deletion time complexity, which translates to better run-time performance. As +// opposed to std::deque which does not provide the same constant time +// complexity for inserts/removals, since std::deque is implemented as a +// segmented array. +using hook_function_type = std::function; +std::stack> finalize_hooks; } // namespace namespace Kokkos { namespace Impl { + +int get_ctest_gpu(const char* local_rank_str) { + auto const* ctest_kokkos_device_type = + std::getenv("CTEST_KOKKOS_DEVICE_TYPE"); + if (!ctest_kokkos_device_type) { + return 0; + } + + auto const* ctest_resource_group_count_str = + std::getenv("CTEST_RESOURCE_GROUP_COUNT"); + if (!ctest_resource_group_count_str) { + return 0; + } + + // Make sure rank is within bounds of resource groups specified by CTest + auto resource_group_count = std::atoi(ctest_resource_group_count_str); + auto local_rank = std::atoi(local_rank_str); + if (local_rank >= resource_group_count) { + std::ostringstream ss; + ss << "Error: local rank " << local_rank + << " is outside the bounds of resource groups provided by CTest. Raised" + << " by Kokkos::Impl::get_ctest_gpu()."; + throw_runtime_exception(ss.str()); + } + + // Get the resource types allocated to this resource group + std::ostringstream ctest_resource_group; + ctest_resource_group << "CTEST_RESOURCE_GROUP_" << local_rank; + std::string ctest_resource_group_name = ctest_resource_group.str(); + auto const* ctest_resource_group_str = + std::getenv(ctest_resource_group_name.c_str()); + if (!ctest_resource_group_str) { + std::ostringstream ss; + ss << "Error: " << ctest_resource_group_name << " is not specified. Raised" + << " by Kokkos::Impl::get_ctest_gpu()."; + throw_runtime_exception(ss.str()); + } + + // Look for the device type specified in CTEST_KOKKOS_DEVICE_TYPE + bool found_device = false; + std::string ctest_resource_group_cxx_str = ctest_resource_group_str; + std::istringstream instream(ctest_resource_group_cxx_str); + while (true) { + std::string devName; + std::getline(instream, devName, ','); + if (devName == ctest_kokkos_device_type) { + found_device = true; + break; + } + if (instream.eof() || devName.length() == 0) { + break; + } + } + + if (!found_device) { + std::ostringstream ss; + ss << "Error: device type '" << ctest_kokkos_device_type + << "' not included in " << ctest_resource_group_name + << ". Raised by Kokkos::Impl::get_ctest_gpu()."; + throw_runtime_exception(ss.str()); + } + + // Get the device ID + std::string ctest_device_type_upper = ctest_kokkos_device_type; + for (auto& c : ctest_device_type_upper) { + c = std::toupper(c); + } + ctest_resource_group << "_" << ctest_device_type_upper; + + std::string ctest_resource_group_id_name = ctest_resource_group.str(); + auto resource_str = std::getenv(ctest_resource_group_id_name.c_str()); + if (!resource_str) { + std::ostringstream ss; + ss << "Error: " << ctest_resource_group_id_name + << " is not specified. Raised by Kokkos::Impl::get_ctest_gpu()."; + throw_runtime_exception(ss.str()); + } + + auto const* comma = std::strchr(resource_str, ','); + if (!comma || strncmp(resource_str, "id:", 3)) { + std::ostringstream ss; + ss << "Error: invalid value of " << ctest_resource_group_id_name << ": '" + << resource_str << "'. Raised by Kokkos::Impl::get_ctest_gpu()."; + throw_runtime_exception(ss.str()); + } + + std::string id(resource_str + 3, comma - resource_str - 3); + return std::atoi(id.c_str()); +} + namespace { bool is_unsigned_int(const char* str) { @@ -74,7 +177,8 @@ bool is_unsigned_int(const char* str) { } return true; } -void initialize_internal(const InitArguments& args) { + +void initialize_backends(const InitArguments& args) { // This is an experimental setting // For KNL in Flat mode this variable should be set, so that // memkind allocates high bandwidth memory correctly. @@ -82,10 +186,6 @@ void initialize_internal(const InitArguments& args) { setenv("MEMKIND_HBW_NODES", "1", 0); #endif - if (args.disable_warnings) { - g_show_warnings = false; - } - // Protect declarations, to prevent "unused variable" warnings. #if defined(KOKKOS_ENABLE_OPENMP) || defined(KOKKOS_ENABLE_THREADS) || \ defined(KOKKOS_ENABLE_OPENMPTARGET) || defined(KOKKOS_ENABLE_HPX) @@ -94,25 +194,39 @@ void initialize_internal(const InitArguments& args) { #if defined(KOKKOS_ENABLE_THREADS) || defined(KOKKOS_ENABLE_OPENMPTARGET) const int use_numa = args.num_numa; #endif -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) +#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) || \ + defined(KOKKOS_ENABLE_HIP) int use_gpu = args.device_id; const int ndevices = args.ndevices; const int skip_device = args.skip_device; // if the exact device is not set, but ndevices was given, assign round-robin // using on-node MPI rank - if (use_gpu < 0 && ndevices >= 0) { - auto local_rank_str = std::getenv("OMPI_COMM_WORLD_LOCAL_RANK"); // OpenMPI + if (use_gpu < 0) { + auto const* local_rank_str = + std::getenv("OMPI_COMM_WORLD_LOCAL_RANK"); // OpenMPI if (!local_rank_str) local_rank_str = std::getenv("MV2_COMM_WORLD_LOCAL_RANK"); // MVAPICH2 if (!local_rank_str) local_rank_str = std::getenv("SLURM_LOCALID"); // SLURM - if (local_rank_str) { - auto local_rank = std::atoi(local_rank_str); - use_gpu = local_rank % ndevices; - } else { - // user only gave us ndevices, but the MPI environment variable wasn't - // set. start with GPU 0 at this point - use_gpu = 0; + + auto const* ctest_kokkos_device_type = + std::getenv("CTEST_KOKKOS_DEVICE_TYPE"); // CTest + auto const* ctest_resource_group_count_str = + std::getenv("CTEST_RESOURCE_GROUP_COUNT"); // CTest + if (ctest_kokkos_device_type && ctest_resource_group_count_str && + local_rank_str) { + // Use the device assigned by CTest + use_gpu = get_ctest_gpu(local_rank_str); + } else if (ndevices >= 0) { + // Use the device assigned by the rank + if (local_rank_str) { + auto local_rank = std::atoi(local_rank_str); + use_gpu = local_rank % ndevices; + } else { + // user only gave use ndevices, but the MPI environment variable wasn't + // set. start with GPU 0 at this point + use_gpu = 0; + } } // shift assignments over by one so no one is assigned to "skip_device" if (use_gpu >= skip_device) ++use_gpu; @@ -199,17 +313,9 @@ void initialize_internal(const InitArguments& args) { #endif #if defined(KOKKOS_ENABLE_OPENMPTARGET) - if (Impl::is_same::value) { - if (num_threads > 0) { - if (use_numa > 0) { - Kokkos::Experimental::OpenMPTarget::initialize(num_threads, use_numa); - } else { - Kokkos::Experimental::OpenMPTarget::initialize(num_threads); - } - } else { - Kokkos::Experimental::OpenMPTarget::initialize(); - } + if (std::is_same::value) { + Kokkos::Experimental::OpenMPTarget().impl_initialize(); // std::cout << "Kokkos::initialize() fyi: OpenMP enabled and initialized" // << std::endl ; } else { @@ -254,6 +360,23 @@ void initialize_internal(const InitArguments& args) { } #endif +#if defined(KOKKOS_ENABLE_HIP) + if (std::is_same::value || + 0 < use_gpu) { + if (use_gpu > -1) { + Kokkos::Experimental::HIP::impl_initialize( + Kokkos::Experimental::HIP::SelectDevice(use_gpu)); + } else { + Kokkos::Experimental::HIP::impl_initialize(); + } + std::cout << "Kokkos::initialize() fyi: HIP enabled and initialized" + << std::endl; + } +#endif +} + +void initialize_profiling(const InitArguments&) { #if defined(KOKKOS_ENABLE_PROFILING) Kokkos::Profiling::initialize(); #else @@ -263,9 +386,23 @@ void initialize_internal(const InitArguments& args) { << std::endl; } #endif +} + +void pre_initialize_internal(const InitArguments& args) { + if (args.disable_warnings) g_show_warnings = false; +} + +void post_initialize_internal(const InitArguments& args) { + initialize_profiling(args); g_is_initialized = true; } +void initialize_internal(const InitArguments& args) { + pre_initialize_internal(args); + initialize_backends(args); + post_initialize_internal(args); +} + void finalize_internal(const bool all_spaces = false) { typename decltype(finalize_hooks)::size_type numSuccessfulCalls = 0; while (!finalize_hooks.empty()) { @@ -320,12 +457,20 @@ void finalize_internal(const bool all_spaces = false) { } #endif +#if defined(KOKKOS_ENABLE_HIP) + if (std::is_same::value || + all_spaces) { + if (Kokkos::Experimental::HIP::impl_is_initialized()) + Kokkos::Experimental::HIP::impl_finalize(); + } +#endif #if defined(KOKKOS_ENABLE_OPENMPTARGET) if (std::is_same::value || all_spaces) { - if (Kokkos::Experimental::OpenMPTarget::is_initialized()) - Kokkos::Experimental::OpenMPTarget::finalize(); + if (Kokkos::Experimental::OpenMPTarget().impl_is_initialized()) + Kokkos::Experimental::OpenMPTarget().impl_finalize(); } #endif @@ -380,23 +525,19 @@ void finalize_internal(const bool all_spaces = false) { void fence_internal() { #if defined(KOKKOS_ENABLE_CUDA) - if (std::is_same::value) { - Kokkos::Cuda::impl_static_fence(); - } + Kokkos::Cuda::impl_static_fence(); #endif #if defined(KOKKOS_ENABLE_ROCM) - if (std::is_same::value) { - Kokkos::Experimental::ROCm().fence(); - } + Kokkos::Experimental::ROCm().fence(); +#endif + +#if defined(KOKKOS_ENABLE_HIP) + Kokkos::Experimental::HIP().fence(); #endif #if defined(KOKKOS_ENABLE_OPENMP) - if (std::is_same::value || - std::is_same::value) { - Kokkos::OpenMP::impl_static_fence(); - } + Kokkos::OpenMP::impl_static_fence(); #endif #if defined(KOKKOS_ENABLE_HPX) @@ -404,18 +545,11 @@ void fence_internal() { #endif #if defined(KOKKOS_ENABLE_THREADS) - if (std::is_same::value || - std::is_same::value) { - Kokkos::Threads::impl_static_fence(); - } + Kokkos::Threads::impl_static_fence(); #endif #if defined(KOKKOS_ENABLE_SERIAL) - if (std::is_same::value || - std::is_same::value) { - Kokkos::Serial::impl_static_fence(); - } + Kokkos::Serial::impl_static_fence(); #endif } @@ -454,22 +588,31 @@ bool check_int_arg(char const* arg, char const* expected, int* value) { return true; } -} // namespace - -} // namespace Impl -} // namespace Kokkos - -//---------------------------------------------------------------------------- +void warn_deprecated_command_line_argument(std::string deprecated, + std::string valid) { + std::cerr + << "Warning: command line argument '" << deprecated + << "' is deprecated. Use '" << valid + << "' instead. Raised by Kokkos::initialize(int narg, char* argc[])." + << std::endl; +} -namespace Kokkos { +unsigned get_process_id() { +#ifdef _WIN32 + return unsigned(GetCurrentProcessId()); +#else + return unsigned(getpid()); +#endif +} -void initialize(int& narg, char* arg[]) { - int num_threads = -1; - int numa = -1; - int device = -1; - int ndevices = -1; - int skip_device = 9999; - bool disable_warnings = false; +void parse_command_line_arguments(int& narg, char* arg[], + InitArguments& arguments) { + auto& num_threads = arguments.num_threads; + auto& numa = arguments.num_numa; + auto& device = arguments.device_id; + auto& ndevices = arguments.ndevices; + auto& skip_device = arguments.skip_device; + auto& disable_warnings = arguments.disable_warnings; int kokkos_threads_found = 0; int kokkos_numa_found = 0; @@ -479,76 +622,97 @@ void initialize(int& narg, char* arg[]) { int iarg = 0; while (iarg < narg) { - if (Impl::check_int_arg(arg[iarg], "--kokkos-threads", &num_threads)) { + if (check_int_arg(arg[iarg], "--kokkos-threads", &num_threads)) { for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } kokkos_threads_found = 1; narg--; } else if (!kokkos_threads_found && - Impl::check_int_arg(arg[iarg], "--threads", &num_threads)) { + check_int_arg(arg[iarg], "--threads", &num_threads)) { iarg++; - } else if (Impl::check_int_arg(arg[iarg], "--kokkos-numa", &numa)) { + } else if (check_int_arg(arg[iarg], "--kokkos-numa", &numa)) { for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } kokkos_numa_found = 1; narg--; } else if (!kokkos_numa_found && - Impl::check_int_arg(arg[iarg], "--numa", &numa)) { + check_int_arg(arg[iarg], "--numa", &numa)) { iarg++; - } else if (Impl::check_int_arg(arg[iarg], "--kokkos-device", &device)) { + } else if (check_int_arg(arg[iarg], "--kokkos-device-id", &device) || + check_int_arg(arg[iarg], "--kokkos-device", &device)) { + if (check_arg(arg[iarg], "--kokkos-device")) { + warn_deprecated_command_line_argument("--kokkos-device", + "--kokkos-device-id"); + } for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } kokkos_device_found = 1; narg--; } else if (!kokkos_device_found && - Impl::check_int_arg(arg[iarg], "--device", &device)) { + (check_int_arg(arg[iarg], "--device-id", &device) || + check_int_arg(arg[iarg], "--device", &device))) { + if (check_arg(arg[iarg], "--device")) { + warn_deprecated_command_line_argument("--device", "--device-id"); + } iarg++; - } else if (Impl::check_arg(arg[iarg], "--kokkos-ndevices") || - Impl::check_arg(arg[iarg], "--ndevices")) { + } else if (check_arg(arg[iarg], "--kokkos-num-devices") || + check_arg(arg[iarg], "--num-devices") || + check_arg(arg[iarg], "--kokkos-ndevices") || + check_arg(arg[iarg], "--ndevices")) { + if (check_arg(arg[iarg], "--ndevices")) { + warn_deprecated_command_line_argument("--ndevices", "--num-devices"); + } + if (check_arg(arg[iarg], "--kokkos-ndevices")) { + warn_deprecated_command_line_argument("--kokkos-ndevices", + "--kokkos-num-devices"); + } // Find the number of device (expecting --device=XX) - if (!((strncmp(arg[iarg], "--kokkos-ndevices=", 18) == 0) || + if (!((strncmp(arg[iarg], "--kokkos-num-devices=", 21) == 0) || + (strncmp(arg[iarg], "--num-ndevices=", 14) == 0) || + (strncmp(arg[iarg], "--kokkos-ndevices=", 18) == 0) || (strncmp(arg[iarg], "--ndevices=", 11) == 0))) - Impl::throw_runtime_exception( + throw_runtime_exception( "Error: expecting an '=INT[,INT]' after command line argument " - "'--ndevices/--kokkos-ndevices'. Raised by Kokkos::initialize(int " - "narg, char* argc[])."); + "'--num-devices/--kokkos-num-devices'. Raised by " + "Kokkos::initialize(int narg, char* argc[])."); char* num1 = strchr(arg[iarg], '=') + 1; char* num2 = strpbrk(num1, ","); - int num1_len = num2 == NULL ? strlen(num1) : num2 - num1; + int num1_len = num2 == nullptr ? strlen(num1) : num2 - num1; char* num1_only = new char[num1_len + 1]; strncpy(num1_only, num1, num1_len); num1_only[num1_len] = 0; - if (!Impl::is_unsigned_int(num1_only) || (strlen(num1_only) == 0)) { - Impl::throw_runtime_exception( + if (!is_unsigned_int(num1_only) || (strlen(num1_only) == 0)) { + throw_runtime_exception( "Error: expecting an integer number after command line argument " - "'--kokkos-ndevices'. Raised by Kokkos::initialize(int narg, char* " - "argc[])."); + "'--kokkos-numdevices'. Raised by " + "Kokkos::initialize(int narg, char* argc[])."); } - if ((strncmp(arg[iarg], "--kokkos-ndevices", 17) == 0) || - !kokkos_ndevices_found) + if (check_arg(arg[iarg], "--kokkos-num-devices") || + check_arg(arg[iarg], "--kokkos-ndevices") || !kokkos_ndevices_found) ndevices = atoi(num1_only); delete[] num1_only; - if (num2 != NULL) { - if ((!Impl::is_unsigned_int(num2 + 1)) || (strlen(num2) == 1)) - Impl::throw_runtime_exception( + if (num2 != nullptr) { + if ((!is_unsigned_int(num2 + 1)) || (strlen(num2) == 1)) + throw_runtime_exception( "Error: expecting an integer number after command line argument " - "'--kokkos-ndevices=XX,'. Raised by Kokkos::initialize(int narg, " - "char* argc[])."); + "'--kokkos-num-devices=XX,'. Raised by " + "Kokkos::initialize(int narg, char* argc[])."); - if ((strncmp(arg[iarg], "--kokkos-ndevices", 17) == 0) || - !kokkos_ndevices_found) + if (check_arg(arg[iarg], "--kokkos-num-devices") || + check_arg(arg[iarg], "--kokkos-ndevices") || !kokkos_ndevices_found) skip_device = atoi(num2 + 1); } - // Remove the --kokkos-ndevices argument from the list but leave - // --ndevices - if (strncmp(arg[iarg], "--kokkos-ndevices", 17) == 0) { + // Remove the --kokkos-num-devices argument from the list but leave + // --num-devices + if (check_arg(arg[iarg], "--kokkos-num-devices") || + check_arg(arg[iarg], "--kokkos-ndevices")) { for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } @@ -557,88 +721,45 @@ void initialize(int& narg, char* arg[]) { } else { iarg++; } - } else if (strcmp(arg[iarg], "--kokkos-disable-warnings") == 0) { + } else if (check_arg(arg[iarg], "--kokkos-disable-warnings")) { disable_warnings = true; for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } narg--; - } else if ((strcmp(arg[iarg], "--kokkos-help") == 0) || - (strcmp(arg[iarg], "--help") == 0)) { - std::cout << std::endl; - std::cout << "-----------------------------------------------------------" - "---------------------" - << std::endl; - std::cout << "-------------Kokkos command line " - "arguments--------------------------------------" - << std::endl; - std::cout << "-----------------------------------------------------------" - "---------------------" - << std::endl; - std::cout << "The following arguments exist also without prefix 'kokkos' " - "(e.g. --help)." - << std::endl; - std::cout << "The prefixed arguments will be removed from the list by " - "Kokkos::initialize()," - << std::endl; - std::cout << "the non-prefixed ones are not removed. Prefixed versions " - "take precedence over " - << std::endl; - std::cout << "non prefixed ones, and the last occurrence of an argument " - "overwrites prior" - << std::endl; - std::cout << "settings." << std::endl; - std::cout << std::endl; - std::cout << "--kokkos-help : print this message" - << std::endl; - std::cout - << "--kokkos-disable-warnings : disable kokkos warning messages" - << std::endl; - std::cout - << "--kokkos-threads=INT : specify total number of threads or" - << std::endl; - std::cout << " number of threads per NUMA " - "region if " - << std::endl; - std::cout << " used in conjunction with " - "'--numa' option. " - << std::endl; - std::cout << "--kokkos-numa=INT : specify number of NUMA " - "regions used by process." - << std::endl; - std::cout << "--kokkos-device=INT : specify device id to be used " - "by Kokkos. " - << std::endl; - std::cout << "--kokkos-ndevices=INT[,INT] : used when running MPI jobs. " - "Specify number of" - << std::endl; - std::cout << " devices per node to be used. " - "Process to device" - << std::endl; - std::cout << " mapping happens by obtaining " - "the local MPI rank" - << std::endl; - std::cout << " and assigning devices " - "round-robin. The optional" - << std::endl; - std::cout << " second argument allows for " - "an existing device" - << std::endl; - std::cout << " to be ignored. This is most " - "useful on workstations" - << std::endl; - std::cout << " with multiple GPUs of which " - "one is used to drive" - << std::endl; - std::cout << " screen output." << std::endl; - std::cout << std::endl; - std::cout << "-----------------------------------------------------------" - "---------------------" - << std::endl; - std::cout << std::endl; - - // Remove the --kokkos-help argument from the list but leave --ndevices - if (strcmp(arg[iarg], "--kokkos-help") == 0) { + } else if (check_arg(arg[iarg], "--kokkos-help") || + check_arg(arg[iarg], "--help")) { + auto const help_message = R"( + -------------------------------------------------------------------------------- + -------------Kokkos command line arguments-------------------------------------- + -------------------------------------------------------------------------------- + The following arguments exist also without prefix 'kokkos' (e.g. --help). + The prefixed arguments will be removed from the list by Kokkos::initialize(), + the non-prefixed ones are not removed. Prefixed versions take precedence over + non prefixed ones, and the last occurrence of an argument overwrites prior + settings. + + --kokkos-help : print this message + --kokkos-disable-warnings : disable kokkos warning messages + --kokkos-threads=INT : specify total number of threads or + number of threads per NUMA region if + used in conjunction with '--numa' option. + --kokkos-numa=INT : specify number of NUMA regions used by process. + --kokkos-device-id=INT : specify device id to be used by Kokkos. + --kokkos-num-devices=INT[,INT] : used when running MPI jobs. Specify number of + devices per node to be used. Process to device + mapping happens by obtaining the local MPI rank + and assigning devices round-robin. The optional + second argument allows for an existing device + to be ignored. This is most useful on workstations + with multiple GPUs of which one is used to drive + screen output. + -------------------------------------------------------------------------------- +)"; + std::cout << help_message << std::endl; + + // Remove the --kokkos-help argument from the list but leave --help + if (check_arg(arg[iarg], "--kokkos-help")) { for (int k = iarg; k < narg - 1; k++) { arg[k] = arg[k + 1]; } @@ -649,8 +770,16 @@ void initialize(int& narg, char* arg[]) { } else iarg++; } +} + +void parse_environment_variables(InitArguments& arguments) { + auto& num_threads = arguments.num_threads; + auto& numa = arguments.num_numa; + auto& device = arguments.device_id; + auto& ndevices = arguments.ndevices; + auto& skip_device = arguments.skip_device; + auto& disable_warnings = arguments.disable_warnings; - // Read environment variables char* endptr; auto env_num_threads_str = std::getenv("KOKKOS_NUM_THREADS"); if (env_num_threads_str != nullptr) { @@ -783,7 +912,7 @@ void initialize(int& narg, char* arg[]) { "Error: cannot KOKKOS_SKIP_DEVICE the only KOKKOS_RAND_DEVICE. " "Raised by Kokkos::initialize(int narg, char* argc[])."); - std::srand(getpid()); + std::srand(get_process_id()); while (device < 0) { int test_device = std::rand() % rdevices; if (test_device != skip_device) device = test_device; @@ -804,21 +933,40 @@ void initialize(int& narg, char* arg[]) { "KOKKOS_DISABLE_WARNINGS if both are set. Raised by " "Kokkos::initialize(int narg, char* argc[])."); } +} +} // namespace + +} // namespace Impl +} // namespace Kokkos + +//---------------------------------------------------------------------------- + +namespace Kokkos { + +void initialize(int& narg, char* arg[]) { InitArguments arguments; - arguments.num_threads = num_threads; - arguments.num_numa = numa; - arguments.device_id = device; - arguments.ndevices = ndevices; - arguments.skip_device = skip_device; - arguments.disable_warnings = disable_warnings; + Impl::parse_command_line_arguments(narg, arg, arguments); + Impl::parse_environment_variables(arguments); Impl::initialize_internal(arguments); } -void initialize(const InitArguments& arguments) { +void initialize(InitArguments arguments) { + Impl::parse_environment_variables(arguments); Impl::initialize_internal(arguments); } +namespace Impl { + +void pre_initialize(const InitArguments& args) { + pre_initialize_internal(args); +} + +void post_initialize(const InitArguments& args) { + post_initialize_internal(args); +} +} // namespace Impl + void push_finalize_hook(std::function f) { finalize_hooks.push(f); } void finalize() { Impl::finalize_internal(); } @@ -833,6 +981,10 @@ void fence() { Impl::fence_internal(); } void print_configuration(std::ostream& out, const bool detail) { std::ostringstream msg; + msg << "Kokkos Version:" << std::endl; + msg << " " << KOKKOS_VERSION / 10000 << "." << (KOKKOS_VERSION % 10000) / 100 + << "." << KOKKOS_VERSION % 100 << std::endl; + msg << "Compiler:" << std::endl; #ifdef KOKKOS_COMPILER_APPLECC msg << " KOKKOS_COMPILER_APPLECC: " << KOKKOS_COMPILER_APPLECC << std::endl; @@ -882,6 +1034,12 @@ void print_configuration(std::ostream& out, const bool detail) { msg << "yes" << std::endl; #else msg << "no" << std::endl; +#endif + msg << " KOKKOS_ENABLE_HIP: "; +#ifdef KOKKOS_ENABLE_HIP + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; #endif msg << " KOKKOS_ENABLE_OPENMP: "; #ifdef KOKKOS_ENABLE_OPENMP @@ -900,12 +1058,6 @@ void print_configuration(std::ostream& out, const bool detail) { msg << "yes" << std::endl; #else msg << "no" << std::endl; -#endif - msg << " KOKKOS_ENABLE_QTHREADS: "; -#ifdef KOKKOS_ENABLE_QTHREADS - msg << "yes" << std::endl; -#else - msg << "no" << std::endl; #endif msg << " KOKKOS_ENABLE_SERIAL: "; #ifdef KOKKOS_ENABLE_SERIAL @@ -921,20 +1073,20 @@ void print_configuration(std::ostream& out, const bool detail) { #else msg << "no" << std::endl; #endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP + msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP: "; +#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_HIP msg << "yes" << std::endl; #else msg << "no" << std::endl; #endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS + msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP: "; +#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_OPENMP msg << "yes" << std::endl; #else msg << "no" << std::endl; #endif - msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS: "; -#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS + msg << " KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS: "; +#ifdef KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_THREADS msg << "yes" << std::endl; #else msg << "no" << std::endl; @@ -1131,12 +1283,25 @@ void print_configuration(std::ostream& out, const bool detail) { msg << "no" << std::endl; #endif +#endif + +#ifdef KOKKOS_ENABLE_HIP + msg << "HIP Options:" << std::endl; + msg << " KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE: "; +#ifdef KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE + msg << "yes" << std::endl; +#else + msg << "no" << std::endl; +#endif #endif msg << "\nRuntime Configuration:" << std::endl; #ifdef KOKKOS_ENABLE_CUDA Cuda::print_configuration(msg, detail); #endif +#ifdef KOKKOS_ENABLE_HIP + Experimental::HIP::print_configuration(msg, detail); +#endif #ifdef KOKKOS_ENABLE_OPENMP OpenMP::print_configuration(msg, detail); #endif @@ -1146,9 +1311,6 @@ void print_configuration(std::ostream& out, const bool detail) { #if defined(KOKKOS_ENABLE_THREADS) Threads::print_configuration(msg, detail); #endif -#ifdef KOKKOS_ENABLE_QTHREADS - Qthreads::print_configuration(msg, detail); -#endif #ifdef KOKKOS_ENABLE_SERIAL Serial::print_configuration(msg, detail); #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_EBO.hpp b/lib/kokkos/core/src/impl/Kokkos_EBO.hpp index 5adf4bd5f16c9665eaf684854358ee8afd0c9c92..39e855a55eb7ec230c8edcfcfa1933c3706f3f94 100644 --- a/lib/kokkos/core/src/impl/Kokkos_EBO.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_EBO.hpp @@ -117,21 +117,21 @@ struct EBOBaseImpl { : EBOBaseImpl(_constexpr_14_workaround_no_device_tag{}, T(std::forward(args)...)) {} - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION constexpr EBOBaseImpl(EBOBaseImpl const&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION constexpr EBOBaseImpl(EBOBaseImpl&&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 EBOBaseImpl& operator=(EBOBaseImpl const&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 EBOBaseImpl& operator=(EBOBaseImpl&&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~EBOBaseImpl() = default; KOKKOS_INLINE_FUNCTION @@ -184,21 +184,21 @@ struct EBOBaseImpl { // TODO @tasking @minor DSH noexcept in the right places? - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION constexpr EBOBaseImpl(EBOBaseImpl const&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION constexpr EBOBaseImpl(EBOBaseImpl&&) noexcept = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 EBOBaseImpl& operator=(EBOBaseImpl const&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION KOKKOS_CONSTEXPR_14 EBOBaseImpl& operator=(EBOBaseImpl&&) = default; - KOKKOS_FORCEINLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~EBOBaseImpl() = default; KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/impl/Kokkos_Error.cpp b/lib/kokkos/core/src/impl/Kokkos_Error.cpp index 817c9a0581c26595d4ad41e899b128680c8917db..a42b916f8053ba94cd599657e0ddd799deb6e260 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Error.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Error.cpp @@ -129,6 +129,8 @@ void Experimental::RawMemoryAllocationFailure::print_error_message( o << "cudaMallocManaged()."; break; case AllocationMechanism::CudaHostAlloc: o << "cudaHostAlloc()."; break; + case AllocationMechanism::HIPMalloc: o << "hipMalloc()."; break; + case AllocationMechanism::HIPHostMalloc: o << "hipHostMalloc()."; break; } append_additional_error_information(o); o << ")" << std::endl; diff --git a/lib/kokkos/core/src/impl/Kokkos_Error.hpp b/lib/kokkos/core/src/impl/Kokkos_Error.hpp index 44f77710426ab100aa3492a10da7583981828494..41be6737e7b61bbccbd412360af04625387335b9 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Error.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Error.hpp @@ -51,6 +51,9 @@ #ifdef KOKKOS_ENABLE_CUDA #include #endif +#ifdef KOKKOS_ENABLE_HIP +#include +#endif #ifndef KOKKOS_ABORT_MESSAGE_BUFFER_SIZE #define KOKKOS_ABORT_MESSAGE_BUFFER_SIZE 2048 @@ -87,7 +90,9 @@ class RawMemoryAllocationFailure : public std::bad_alloc { IntelMMAlloc, CudaMalloc, CudaMallocManaged, - CudaHostAlloc + CudaHostAlloc, + HIPMalloc, + HIPHostMalloc }; private: @@ -124,7 +129,7 @@ class RawMemoryAllocationFailure : public std::bad_alloc { const char *what() const noexcept override { if (m_failure_mode == FailureMode::OutOfMemoryError) { return "Memory allocation error: out of memory"; - } else if (m_failure_mode == FailureMode::OutOfMemoryError) { + } else if (m_failure_mode == FailureMode::AllocationNotAligned) { return "Memory allocation error: allocation result was under-aligned"; } @@ -164,11 +169,11 @@ KOKKOS_INLINE_FUNCTION void abort(const char *const message) { #if defined(KOKKOS_ENABLE_CUDA) && defined(__CUDA_ARCH__) Kokkos::Impl::cuda_abort(message); -#else -#if !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(__HCC_ACCELERATOR__) +#elif defined(KOKKOS_ENABLE_HIP) && defined(__HIP_DEVICE_COMPILE__) + Kokkos::Impl::hip_abort(message); +#elif !defined(KOKKOS_ENABLE_OPENMPTARGET) && !defined(__HCC_ACCELERATOR__) Kokkos::Impl::host_abort(message); #endif -#endif } } // namespace Kokkos diff --git a/lib/kokkos/core/src/impl/Kokkos_FixedBufferMemoryPool.hpp b/lib/kokkos/core/src/impl/Kokkos_FixedBufferMemoryPool.hpp index a304e8eff26ac8d62373d007ffe2c3c31d41310b..2651229a706038fe3b8cfe8033bd4d521675003e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_FixedBufferMemoryPool.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_FixedBufferMemoryPool.hpp @@ -126,18 +126,19 @@ class FixedBlockSizeMemoryPool actual_size) { /* forwarding ctor, must be empty */ } - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool() = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool(FixedBlockSizeMemoryPool&&) = - default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool( - FixedBlockSizeMemoryPool const&) = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool& operator=( + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool() = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool( FixedBlockSizeMemoryPool&&) = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool& operator=( + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool( + FixedBlockSizeMemoryPool const&) = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool& operator=( + FixedBlockSizeMemoryPool&&) = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool& operator=( FixedBlockSizeMemoryPool const&) = default; KOKKOS_INLINE_FUNCTION void* allocate(size_type alloc_size) const noexcept { + (void)alloc_size; KOKKOS_EXPECTS(alloc_size <= Size); auto free_idx_counter = Kokkos::atomic_fetch_add( (volatile size_type*)&m_first_free_idx, size_type(1)); @@ -161,7 +162,7 @@ class FixedBlockSizeMemoryPool } KOKKOS_INLINE_FUNCTION - void deallocate(void* ptr, size_type alloc_size) const noexcept { + void deallocate(void* ptr, size_type /*alloc_size*/) const noexcept { // figure out which block we are auto offset = intptr_t(ptr) - intptr_t(m_first_block); @@ -250,11 +251,11 @@ public: ) : FixedBlockSizeMemoryPool(mem_space, mempool_capacity / actual_size) { /* forwarding ctor, must be empty */ } - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool() = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool(FixedBlockSizeMemoryPool&&) = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool(FixedBlockSizeMemoryPool const&) = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool& operator=(FixedBlockSizeMemoryPool&&) = default; - KOKKOS_INLINE_FUNCTION FixedBlockSizeMemoryPool& operator=(FixedBlockSizeMemoryPool const&) = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool() = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool(FixedBlockSizeMemoryPool&&) = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool(FixedBlockSizeMemoryPool const&) = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool& operator=(FixedBlockSizeMemoryPool&&) = default; + KOKKOS_DEFAULTED_FUNCTION FixedBlockSizeMemoryPool& operator=(FixedBlockSizeMemoryPool const&) = default; KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp b/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp index e981e903664a02d04bdff8a40da27f3108ab6abd..b777dac02178b0229e5db5f600c96aff617eb8a6 100644 --- a/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_FunctorAdapter.hpp @@ -64,7 +64,7 @@ struct ReduceFunctorHasInit { template struct ReduceFunctorHasInit< FunctorType, - typename Impl::enable_if<0 < sizeof(&FunctorType::init)>::type> { + typename std::enable_if<0 < sizeof(&FunctorType::init)>::type> { enum { value = true }; }; @@ -76,7 +76,7 @@ struct ReduceFunctorHasJoin { template struct ReduceFunctorHasJoin< FunctorType, - typename Impl::enable_if<0 < sizeof(&FunctorType::join)>::type> { + typename std::enable_if<0 < sizeof(&FunctorType::join)>::type> { enum { value = true }; }; @@ -88,7 +88,7 @@ struct ReduceFunctorHasFinal { template struct ReduceFunctorHasFinal< FunctorType, - typename Impl::enable_if<0 < sizeof(&FunctorType::final)>::type> { + typename std::enable_if<0 < sizeof(&FunctorType::final)>::type> { enum { value = true }; }; @@ -100,18 +100,18 @@ struct ReduceFunctorHasShmemSize { template struct ReduceFunctorHasShmemSize< FunctorType, - typename Impl::enable_if<0 < sizeof(&FunctorType::team_shmem_size)>::type> { + typename std::enable_if<0 < sizeof(&FunctorType::team_shmem_size)>::type> { enum { value = true }; }; template -struct FunctorDeclaresValueType : public Impl::false_type {}; +struct FunctorDeclaresValueType : public std::false_type {}; template struct FunctorDeclaresValueType< FunctorType, ArgTag, typename Impl::enable_if_type::type> - : public Impl::true_type {}; + : public std::true_type {}; template ::value) || @@ -174,18 +174,19 @@ struct FunctorValueTraits { template struct FunctorValueTraits { - typedef typename Impl::remove_extent::type + typedef typename std::remove_extent::type value_type; typedef FunctorType functor_type; - static_assert(0 == (sizeof(value_type) % sizeof(int)), + static_assert((sizeof(value_type) < sizeof(int)) || + 0 == (sizeof(value_type) % sizeof(int)), "Reduction functor's declared value_type requires: 0 == " "sizeof(value_type) % sizeof(int)"); /* this cast to bool is needed for correctness by NVCC */ enum : bool { IsArray = static_cast( - Impl::is_array::value) + std::is_array::value) }; // If not an array then what is the sizeof(value_type) @@ -202,8 +203,8 @@ struct FunctorValueTraits KOKKOS_FORCEINLINE_FUNCTION static - typename Impl::enable_if::value && !IsArray, - unsigned>::type + typename std::enable_if::value && !IsArray, + unsigned>::type value_count(const F&) { return 1; } @@ -213,8 +214,8 @@ struct FunctorValueTraits KOKKOS_FORCEINLINE_FUNCTION static - typename Impl::enable_if::value && IsArray, - unsigned>::type + typename std::enable_if::value && IsArray, + unsigned>::type value_count(const F& f) { return f.value_count; } @@ -1412,8 +1413,10 @@ struct FunctorValueInit< // First substitution failure when FunctorType::init does not exist. // Second substitution failure when FunctorType::init is not compatible. , - decltype(FunctorValueInitFunction::enable_if( - &FunctorType::init))> { + typename std::enable_if< + !std::is_same::value, + decltype(FunctorValueInitFunction::enable_if( + &FunctorType::init))>::type> { KOKKOS_FORCEINLINE_FUNCTION static T& init(const FunctorType& f, void* p) { f.init(ArgTag(), *((T*)p)); return *((T*)p); @@ -1428,8 +1431,10 @@ struct FunctorValueInit< // First substitution failure when FunctorType::init does not exist. // Second substitution failure when FunctorType::init is not compatible , - decltype(FunctorValueInitFunction::enable_if( - &FunctorType::init))> { + typename std::enable_if< + !std::is_same::value, + decltype(FunctorValueInitFunction::enable_if( + &FunctorType::init))>::type> { KOKKOS_FORCEINLINE_FUNCTION static T* init(const FunctorType& f, void* p) { f.init(ArgTag(), (T*)p); return (T*)p; @@ -1525,7 +1530,7 @@ struct FunctorValueJoin { KOKKOS_FORCEINLINE_FUNCTION FunctorValueJoin(const FunctorType&) {} - KOKKOS_FORCEINLINE_FUNCTION static void join(const FunctorType& f, + KOKKOS_FORCEINLINE_FUNCTION static void join(const FunctorType& /*f*/, volatile void* const lhs, const volatile void* const rhs) { *((volatile T*)lhs) += *((const volatile T*)rhs); @@ -1760,8 +1765,8 @@ template struct JoinAdd { typedef ValueType value_type; - KOKKOS_INLINE_FUNCTION - JoinAdd() {} + KOKKOS_DEFAULTED_FUNCTION + JoinAdd() = default; KOKKOS_INLINE_FUNCTION void join(volatile value_type& dst, const volatile value_type& src) const { diff --git a/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp b/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp index a8f3b5042ac3b3328b2b4b2d78b7e8b168cc6e4b..827a9f346d36c41b433914773e7d4202563b0b0b 100644 --- a/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_FunctorAnalysis.hpp @@ -797,7 +797,7 @@ struct FunctorAnalysis { using rebind = Reducer; KOKKOS_INLINE_FUNCTION explicit constexpr Reducer( - Functor const* arg_functor = 0, ValueType* arg_value = 0) noexcept + Functor const* arg_functor = 0, ValueType* arg_value = nullptr) noexcept : m_functor(arg_functor), m_result(arg_value) {} }; }; diff --git a/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp b/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp index 8a83aef4c9fb04ca5c7546d232c79f2a9c810f2c..9b5bee227912b9bb0ad3ed22cf86d9234677b77a 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HBWSpace.cpp @@ -136,8 +136,8 @@ void *HBWSpace::allocate(const size_t arg_alloc_size) const { case STD_MALLOC: msg << "STD_MALLOC"; break; } msg << " ]( " << arg_alloc_size << " ) FAILED"; - if (ptr == NULL) { - msg << " NULL"; + if (ptr == nullptr) { + msg << " nullptr"; } else { msg << " NOT ALIGNED " << ptr; } @@ -181,7 +181,12 @@ void SharedAllocationRecord::deallocate( } SharedAllocationRecord::~SharedAllocationRecord() { + void>::~SharedAllocationRecord() +#if defined( \ + KOKKOS_IMPL_INTEL_WORKAROUND_NOEXCEPT_SPECIFICATION_VIRTUAL_FUNCTION) + noexcept +#endif +{ #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::deallocateData( diff --git a/lib/kokkos/core/src/impl/Kokkos_HostBarrier.cpp b/lib/kokkos/core/src/impl/Kokkos_HostBarrier.cpp index 0b96add432f859d50a93a7aaae133379266756b4..55d70985dcd1f921d4082b507cf84d1044ad8fbb 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostBarrier.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostBarrier.cpp @@ -92,7 +92,7 @@ void HostBarrier::impl_backoff_wait_until_equal( #endif } #else // _WIN32 - while (!try_wait()) { + while (!test_equal(ptr, v)) { #if defined(KOKKOS_ENABLE_ASM) for (int j = 0; j < num_nops; ++j) { __asm__ __volatile__("nop\n"); diff --git a/lib/kokkos/core/src/impl/Kokkos_HostBarrier.hpp b/lib/kokkos/core/src/impl/Kokkos_HostBarrier.hpp index ce7a1408a3dc742f3e32982aae9fd7e80fda7d29..4b9235ab70260e3b4a80d4bec735e033f71bf443 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostBarrier.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostBarrier.hpp @@ -235,6 +235,7 @@ class HostBarrier { impl_backoff_wait_until_equal(ptr, v, active_wait); } #else + (void)active_wait; while (!test_equal(ptr, v)) { } #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp b/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp index 94490b83001b54c0f52eb3f5397aa026e9260fb5..59d14e539220d27615402150efd9d77e0903ee05 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostSpace.cpp @@ -221,18 +221,19 @@ void *HostSpace::allocate(const size_t arg_alloc_size) const { // read write access to private memory - ptr = mmap(NULL /* address hint, if NULL OS kernel chooses address */ - , - arg_alloc_size /* size in bytes */ - , - prot /* memory protection */ - , - flags /* visibility of updates */ - , - -1 /* file descriptor */ - , - 0 /* offset */ - ); + ptr = + mmap(nullptr /* address hint, if nullptr OS kernel chooses address */ + , + arg_alloc_size /* size in bytes */ + , + prot /* memory protection */ + , + flags /* visibility of updates */ + , + -1 /* file descriptor */ + , + 0 /* offset */ + ); /* Associated reallocation: ptr = mremap( old_ptr , old_size , new_size , MREMAP_MAYMOVE ); @@ -325,7 +326,12 @@ void SharedAllocationRecord::deallocate( delete static_cast(arg_rec); } -SharedAllocationRecord::~SharedAllocationRecord() { +SharedAllocationRecord::~SharedAllocationRecord() +#if defined( \ + KOKKOS_IMPL_INTEL_WORKAROUND_NOEXCEPT_SPECIFICATION_VIRTUAL_FUNCTION) + noexcept +#endif +{ #if defined(KOKKOS_ENABLE_PROFILING) if (Kokkos::Profiling::profileLibraryLoaded()) { Kokkos::Profiling::deallocateData( @@ -397,7 +403,7 @@ SharedAllocationRecord::SharedAllocationRecord( void *SharedAllocationRecord::allocate_tracked( const Kokkos::HostSpace &arg_space, const std::string &arg_alloc_label, const size_t arg_alloc_size) { - if (!arg_alloc_size) return (void *)nullptr; + if (!arg_alloc_size) return nullptr; SharedAllocationRecord *const r = allocate(arg_space, arg_alloc_label, arg_alloc_size); @@ -409,7 +415,7 @@ void *SharedAllocationRecord::allocate_tracked( void SharedAllocationRecord::deallocate_tracked( void *const arg_alloc_ptr) { - if (arg_alloc_ptr != 0) { + if (arg_alloc_ptr != nullptr) { SharedAllocationRecord *const r = get_record(arg_alloc_ptr); RecordBase::decrement(r); @@ -437,9 +443,9 @@ SharedAllocationRecord::get_record(void *alloc_ptr) { typedef SharedAllocationRecord RecordHost; SharedAllocationHeader const *const head = - alloc_ptr ? Header::get_header(alloc_ptr) : (SharedAllocationHeader *)0; + alloc_ptr ? Header::get_header(alloc_ptr) : nullptr; RecordHost *const record = - head ? static_cast(head->m_record) : (RecordHost *)0; + head ? static_cast(head->m_record) : nullptr; if (!alloc_ptr || record->m_alloc_ptr != head) { Kokkos::Impl::throw_runtime_exception( diff --git a/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.cpp b/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.cpp index 92e9aa24b0f02ded1a3115faaec91e3bc0de8a38..2e5587e4a342c8c2b167f307f8c8b3a3215f304a 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.cpp @@ -62,7 +62,8 @@ void HostThreadTeamData::organize_pool(HostThreadTeamData *members[], // Verify not already a member of a pool: for (int rank = 0; rank < size && ok; ++rank) { - ok = (nullptr != members[rank]) && (0 == members[rank]->m_pool_scratch); + ok = (nullptr != members[rank]) && + (nullptr == members[rank]->m_pool_scratch); } if (ok) { @@ -106,8 +107,8 @@ void HostThreadTeamData::organize_pool(HostThreadTeamData *members[], void HostThreadTeamData::disband_pool() { m_work_range.first = -1; m_work_range.second = -1; - m_pool_scratch = 0; - m_team_scratch = 0; + m_pool_scratch = nullptr; + m_team_scratch = nullptr; m_pool_rank = 0; m_pool_size = 1; m_team_base = 0; @@ -121,7 +122,7 @@ void HostThreadTeamData::disband_pool() { int HostThreadTeamData::organize_team(const int team_size) { // Pool is initialized - const bool ok_pool = 0 != m_pool_scratch; + const bool ok_pool = nullptr != m_pool_scratch; // Team is not set const bool ok_team = diff --git a/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp b/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp index fce665f6b156b0449ec574c3aec2cc90b961d6a8..9e4dda941b8e007bf2f50c482020323ea539dad5 100644 --- a/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_HostThreadTeam.hpp @@ -53,7 +53,8 @@ #include #include -#include // std::numeric_limits +#include // std::numeric_limits +#include // std::max //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- @@ -188,9 +189,9 @@ class HostThreadTeamData { constexpr HostThreadTeamData() noexcept : m_work_range(-1, -1), m_work_end(0), - m_scratch(0), - m_pool_scratch(0), - m_team_scratch(0), + m_scratch(nullptr), + m_pool_scratch(nullptr), + m_team_scratch(nullptr), m_pool_rank(0), m_pool_size(1), m_team_reduce(0), @@ -538,6 +539,8 @@ class HostThreadTeamMember { } #else { + (void)value; + (void)source_team_rank; Kokkos::abort("HostThreadTeamMember team_broadcast\n"); } #endif @@ -574,6 +577,9 @@ class HostThreadTeamMember { } #else { + (void)f; + (void)value; + (void)source_team_rank; Kokkos::abort("HostThreadTeamMember team_broadcast\n"); } #endif @@ -640,6 +646,8 @@ class HostThreadTeamMember { } #else { + (void)reducer; + (void)contribution; Kokkos::abort("HostThreadTeamMember team_reduce\n"); } #endif @@ -693,8 +701,8 @@ class HostThreadTeamMember { #endif*/ template - KOKKOS_INLINE_FUNCTION T team_scan(T const& value, T* const global = 0) const - noexcept + KOKKOS_INLINE_FUNCTION T team_scan(T const& value, + T* const global = nullptr) const noexcept #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) { if (0 != m_data.m_team_rank) { @@ -751,6 +759,8 @@ class HostThreadTeamMember { } #else { + (void)value; + (void)global; Kokkos::abort("HostThreadTeamMember team_scan\n"); return T(); } diff --git a/lib/kokkos/core/src/impl/Kokkos_LIFO.hpp b/lib/kokkos/core/src/impl/Kokkos_LIFO.hpp index 67e9af5c402b963bd2db7dd9ca69e3f4d0c3630e..683c5c9b18ba5b8c802eebf5cdcc62cac42bf616 100644 --- a/lib/kokkos/core/src/impl/Kokkos_LIFO.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_LIFO.hpp @@ -48,8 +48,7 @@ #define KOKKOS_IMPL_LIFO_HPP #include -#ifdef KOKKOS_ENABLE_TASKDAG // Note: implies CUDA_VERSION >= 8000 if using - // CUDA +#ifdef KOKKOS_ENABLE_TASKDAG #include @@ -305,7 +304,7 @@ class SingleConsumeOperationLIFO : private LockBasedLIFOCommon { public: using value_type = typename base_t::value_type; // = T - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION SingleConsumeOperationLIFO() noexcept = default; SingleConsumeOperationLIFO(SingleConsumeOperationLIFO const&) = delete; @@ -314,7 +313,7 @@ class SingleConsumeOperationLIFO : private LockBasedLIFOCommon { delete; SingleConsumeOperationLIFO& operator=(SingleConsumeOperationLIFO&&) = delete; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~SingleConsumeOperationLIFO() = default; KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/impl/Kokkos_LinkedListNode.hpp b/lib/kokkos/core/src/impl/Kokkos_LinkedListNode.hpp index 1b7918ed78895d718e13a1cab73079dadb21d616..79aeca5da0691264c4cb215f62e17bdb8dbe95e1 100644 --- a/lib/kokkos/core/src/impl/Kokkos_LinkedListNode.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_LinkedListNode.hpp @@ -48,8 +48,7 @@ #define KOKKOS_IMPL_LINKEDLISTNODE_HPP #include -#ifdef KOKKOS_ENABLE_TASKDAG // Note: implies CUDA_VERSION >= 8000 if using - // CUDA +#ifdef KOKKOS_ENABLE_TASKDAG #include diff --git a/lib/kokkos/core/src/impl/Kokkos_MemoryPoolAllocator.hpp b/lib/kokkos/core/src/impl/Kokkos_MemoryPoolAllocator.hpp index 54f91eb68d09a308b3a19b5b9835ea0ba1ae04ae..2218405766cacb1215604ff7e7cb749b509be56e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_MemoryPoolAllocator.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_MemoryPoolAllocator.hpp @@ -65,17 +65,17 @@ class MemoryPoolAllocator { memory_pool m_pool; public: - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION MemoryPoolAllocator() = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION MemoryPoolAllocator(MemoryPoolAllocator const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION MemoryPoolAllocator(MemoryPoolAllocator&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION MemoryPoolAllocator& operator=(MemoryPoolAllocator const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION MemoryPoolAllocator& operator=(MemoryPoolAllocator&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~MemoryPoolAllocator() = default; KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp b/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp index f8bef72b77f405997b9d9416f375e0028d9a2fb0..eae14a92d581876f96dad75d7f9c727dfccdf074 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Memory_Fence.hpp @@ -55,6 +55,8 @@ void memory_fence() { __threadfence(); #elif defined(KOKKOS_ENABLE_ROCM_ATOMICS) amp_barrier(CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE); +#elif defined(KOKKOS_ENABLE_HIP_ATOMICS) + __threadfence(); #elif defined(KOKKOS_ENABLE_ASM) && defined(KOKKOS_ENABLE_ISA_X86_64) asm volatile("mfence" ::: "memory"); #elif defined(KOKKOS_ENABLE_GNU_ATOMICS) || \ diff --git a/lib/kokkos/core/src/impl/Kokkos_MultipleTaskQueue.hpp b/lib/kokkos/core/src/impl/Kokkos_MultipleTaskQueue.hpp index 675547ba5e86dd58beb28f6179b25be69f5f1bec..fe78cfbacc632d353844a5cb17f89a5d5ba067ff 100644 --- a/lib/kokkos/core/src/impl/Kokkos_MultipleTaskQueue.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_MultipleTaskQueue.hpp @@ -125,7 +125,7 @@ struct MultipleTaskQueueTeamEntry { KOKKOS_INLINE_FUNCTION OptionalRef _pop_failed_insertion( int priority, TaskType type, typename std::enable_if< - task_queue_traits::ready_queue_insertion_may_fail and + task_queue_traits::ready_queue_insertion_may_fail && std::is_void<_always_void>::value, void*>::type = nullptr) { auto* rv_ptr = m_failed_heads[priority][(int)type]; @@ -142,9 +142,9 @@ struct MultipleTaskQueueTeamEntry { template KOKKOS_INLINE_FUNCTION OptionalRef _pop_failed_insertion( - int priority, TaskType type, + int /*priority*/, TaskType /*type*/, typename std::enable_if< - not task_queue_traits::ready_queue_insertion_may_fail and + !task_queue_traits::ready_queue_insertion_may_fail && std::is_void<_always_void>::value, void*>::type = nullptr) { return OptionalRef{nullptr}; @@ -181,13 +181,13 @@ struct MultipleTaskQueueTeamEntry { auto return_value = OptionalRef{}; for (int i_priority = 0; i_priority < NumPriorities; ++i_priority) { return_value = _pop_failed_insertion(i_priority, TaskTeam); - if (not return_value) + if (!return_value) return_value = m_ready_queues[i_priority][TaskTeam].pop(); if (return_value) return return_value; // Check for a single task with this priority return_value = _pop_failed_insertion(i_priority, TaskSingle); - if (not return_value) + if (!return_value) return_value = m_ready_queues[i_priority][TaskSingle].pop(); if (return_value) return return_value; } @@ -203,7 +203,7 @@ struct MultipleTaskQueueTeamEntry { KOKKOS_INLINE_FUNCTION void do_handle_failed_insertion( runnable_task_base_type&& task, typename std::enable_if< - task_queue_traits::ready_queue_insertion_may_fail and + task_queue_traits::ready_queue_insertion_may_fail && std::is_void<_always_void>::value, void*>::type = nullptr) { // failed insertions, if they happen, must be from the only thread that @@ -217,9 +217,9 @@ struct MultipleTaskQueueTeamEntry { template KOKKOS_INLINE_FUNCTION void do_handle_failed_insertion( - runnable_task_base_type&& task, + runnable_task_base_type&& /*task*/, typename std::enable_if< - not task_queue_traits::ready_queue_insertion_may_fail and + !task_queue_traits::ready_queue_insertion_may_fail && std::is_void<_always_void>::value, void*>::type = nullptr) { Kokkos::abort("should be unreachable!"); @@ -229,7 +229,7 @@ struct MultipleTaskQueueTeamEntry { KOKKOS_INLINE_FUNCTION void flush_failed_insertions( int priority, int task_type, typename std::enable_if< - task_queue_traits::ready_queue_insertion_may_fail and + task_queue_traits::ready_queue_insertion_may_fail && std::is_void<_always_void>::value, // just to make this dependent // on template parameter int>::type = 0) { @@ -258,7 +258,7 @@ struct MultipleTaskQueueTeamEntry { KOKKOS_INLINE_FUNCTION void flush_failed_insertions( int, int, typename std::enable_if< - not task_queue_traits::ready_queue_insertion_may_fail and + !task_queue_traits::ready_queue_insertion_may_fail && std::is_void<_always_void>::value, // just to make this dependent // on template parameter int>::type = 0) {} @@ -335,22 +335,22 @@ class MultipleTaskQueue final constexpr explicit SchedulerInfo(team_queue_id_t association) noexcept : team_association(association) {} - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION SchedulerInfo() = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION SchedulerInfo(SchedulerInfo const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION SchedulerInfo(SchedulerInfo&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION SchedulerInfo& operator=(SchedulerInfo const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION SchedulerInfo& operator=(SchedulerInfo&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~SchedulerInfo() = default; }; @@ -438,7 +438,7 @@ class MultipleTaskQueue final return_value = team_queue_info.pop_ready_task(); - if (not return_value) { + if (!return_value) { // loop through the rest of the teams and try to steal for (auto isteal = (team_association + 1) % this->n_queues(); isteal != team_association; @@ -484,32 +484,32 @@ class MultipleTaskQueue final // Provide a sensible default that can be overridden KOKKOS_INLINE_FUNCTION void update_scheduling_info_from_completed_predecessor( - runnable_task_base_type& ready_task, - runnable_task_base_type const& predecessor) const { + runnable_task_base_type& /*ready_task*/, + runnable_task_base_type const& /*predecessor*/) const { // Do nothing; we're using the extra storage for the failure linked list } // Provide a sensible default that can be overridden KOKKOS_INLINE_FUNCTION void update_scheduling_info_from_completed_predecessor( - aggregate_task_type& aggregate, - runnable_task_base_type const& predecessor) const { + aggregate_task_type& /*aggregate*/, + runnable_task_base_type const& /*predecessor*/) const { // Do nothing; we're using the extra storage for the failure linked list } // Provide a sensible default that can be overridden KOKKOS_INLINE_FUNCTION void update_scheduling_info_from_completed_predecessor( - aggregate_task_type& aggregate, - aggregate_task_type const& predecessor) const { + aggregate_task_type& /*aggregate*/, + aggregate_task_type const& /*predecessor*/) const { // Do nothing; we're using the extra storage for the failure linked list } // Provide a sensible default that can be overridden KOKKOS_INLINE_FUNCTION void update_scheduling_info_from_completed_predecessor( - runnable_task_base_type& ready_task, - aggregate_task_type const& predecessor) const { + runnable_task_base_type& /*ready_task*/, + aggregate_task_type const& /*predecessor*/) const { // Do nothing; we're using the extra storage for the failure linked list } diff --git a/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp b/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp index 6b1e8b63cceff7fd1ba7b29aa18c10375591ce6d..fbb921d7f260aa291591459e1a165b307b7ce96f 100644 --- a/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_OldMacros.hpp @@ -245,12 +245,6 @@ #endif #endif -#ifdef KOKKOS_HAVE_QTHREADS -#ifndef KOKKOS_ENABLE_QTHREADS -#define KOKKOS_ENABLE_QTHREADS KOKKOS_HAVE_QTHREADS -#endif -#endif - #ifdef KOKKOS_HAVE_SERIAL #ifndef KOKKOS_ENABLE_SERIAL #define KOKKOS_ENABLE_SERIAL KOKKOS_HAVE_SERIAL @@ -474,10 +468,6 @@ #define KOKKOS_HAVE_PTHREAD 1 #endif -#if (!defined(KOKKOS_HAVE_QTHREADS)) && defined(KOKKOS_ENABLE_QTHREADS) -#define KOKKOS_HAVE_QTHREADS 1 -#endif - #if (!defined(KOKKOS_HAVE_SERIAL)) && defined(KOKKOS_ENABLE_SERIAL) #define KOKKOS_HAVE_SERIAL 1 #endif diff --git a/lib/kokkos/core/src/impl/Kokkos_OptionalRef.hpp b/lib/kokkos/core/src/impl/Kokkos_OptionalRef.hpp index 668e7c09161409298b84e840bdad3f77259af68c..12f6c9f5fdb42e8383f3c9b174ea17c28ff04fe7 100644 --- a/lib/kokkos/core/src/impl/Kokkos_OptionalRef.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_OptionalRef.hpp @@ -69,17 +69,22 @@ struct OptionalRef { public: using value_type = T; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION OptionalRef() = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION OptionalRef(OptionalRef const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION OptionalRef(OptionalRef&&) = default; KOKKOS_INLINE_FUNCTION - OptionalRef& operator=(OptionalRef const&) = default; + // MSVC requires that this copy constructor is not defaulted + // if there exists a (non-defaulted) volatile one. + OptionalRef& operator=(OptionalRef const& other) noexcept { + m_value = other.m_value; + return *this; + } KOKKOS_INLINE_FUNCTION // Can't return a reference to volatile OptionalRef, since GCC issues a @@ -88,10 +93,10 @@ struct OptionalRef { m_value = other.m_value; } - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION OptionalRef& operator=(OptionalRef&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~OptionalRef() = default; KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp index e35ff84e9787be40ad36a1a74e68afe1e651cdd9..51d1446ef5cde325eac33af8fb923288218676dc 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_DeviceInfo.hpp @@ -1,45 +1,45 @@ /* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 + //@HEADER + // ************************************************************************ + // + // Kokkos v. 3.0 // Copyright (2020) National Technology & Engineering // Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER + // + // Under the terms of Contract DE-NA0003525 with NTESS, + // the U.S. Government retains certain rights in this software. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are + // met: + // + // 1. Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // + // 2. Redistributions in binary form must reproduce the above copyright + // notice, this list of conditions and the following disclaimer in the + // documentation and/or other materials provided with the distribution. + // + // 3. Neither the name of the Corporation nor the names of the + // contributors may be used to endorse or promote products derived from + // this software without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY + // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE + // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // + // Questions? Contact Christian R. Trott (crtrott@sandia.gov) + // + // ************************************************************************ + //@HEADER */ #ifndef KOKKOSP_DEVICE_INFO_HPP diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp index a069a695fc4e7fec79c02c489716e69d623a9c4d..cf52caea90582f6f4aea85a2e8f1e991c94bde4e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.cpp @@ -1,46 +1,46 @@ /* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 + //@HEADER + // ************************************************************************ + // + // Kokkos v. 3.0 // Copyright (2020) National Technology & Engineering // Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ + // + // Under the terms of Contract DE-NA0003525 with NTESS, + // the U.S. Government retains certain rights in this software. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are + // met: + // + // 1. Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // + // 2. Redistributions in binary form must reproduce the above copyright + // notice, this list of conditions and the following disclaimer in the + // documentation and/or other materials provided with the distribution. + // + // 3. Neither the name of the Corporation nor the names of the + // contributors may be used to endorse or promote products derived from + // this software without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY + // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE + // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // + // Questions? Contact Christian R. Trott (crtrott@sandia.gov) + // + // ************************************************************************ + //@HEADER + */ #include diff --git a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp index ac37401e1080fcedbbac1d01ac52860699f82ea5..df17501ff40af1801962a1dfb1f4d1cd177e2e8c 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Profiling_Interface.hpp @@ -1,46 +1,46 @@ /* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 + //@HEADER + // ************************************************************************ + // + // Kokkos v. 3.0 // Copyright (2020) National Technology & Engineering // Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ + // + // Under the terms of Contract DE-NA0003525 with NTESS, + // the U.S. Government retains certain rights in this software. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are + // met: + // + // 1. Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // + // 2. Redistributions in binary form must reproduce the above copyright + // notice, this list of conditions and the following disclaimer in the + // documentation and/or other materials provided with the distribution. + // + // 3. Neither the name of the Corporation nor the names of the + // contributors may be used to endorse or promote products derived from + // this software without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY + // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE + // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + // + // Questions? Contact Christian R. Trott (crtrott@sandia.gov) + // + // ************************************************************************ + //@HEADER + */ #ifndef KOKKOSP_INTERFACE_HPP #define KOKKOSP_INTERFACE_HPP @@ -54,7 +54,37 @@ #include #include +// NOTE: in this Kokkos::Profiling block, do not define anything that shouldn't +// exist should Profiling be disabled + +namespace Kokkos { +namespace Profiling { +namespace Experimental { +enum struct DeviceType { + Serial, + OpenMP, + Cuda, + HIP, + OpenMPTarget, + HPX, + Threads +}; +template +struct DeviceTypeTraits; + +constexpr const size_t device_type_bits = 8; +constexpr const size_t instance_bits = 24; +template +inline uint32_t device_id(ExecutionSpace const& space) noexcept { + auto device_id = static_cast(DeviceTypeTraits::id); + return (device_id << instance_bits) + space.impl_instance_id(); +} +} // namespace Experimental +} // namespace Profiling +} // end namespace Kokkos + #if defined(KOKKOS_ENABLE_PROFILING) +// We check at configure time that libdl is available. #include #include diff --git a/lib/kokkos/core/src/impl/Kokkos_Serial.cpp b/lib/kokkos/core/src/impl/Kokkos_Serial.cpp index 40aeaa1b7a9a6d5259bbd05e9f25e64b17d262f4..b39f9dfeea9dca5e94062e635d6cd6ce6d3036a8 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Serial.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Serial.cpp @@ -192,7 +192,7 @@ void Serial::impl_finalize() space.deallocate(Impl::g_serial_thread_team_data.scratch_buffer(), Impl::g_serial_thread_team_data.scratch_bytes()); - Impl::g_serial_thread_team_data.scratch_assign((void*)0, 0, 0, 0, 0, 0); + Impl::g_serial_thread_team_data.scratch_assign(nullptr, 0, 0, 0, 0, 0); } #if defined(KOKKOS_ENABLE_PROFILING) diff --git a/lib/kokkos/core/src/impl/Kokkos_Serial_Task.hpp b/lib/kokkos/core/src/impl/Kokkos_Serial_Task.hpp index 6871e4f14a4d80290a8a4e33bd0880f73f384fb5..3ac3899acaf9f3695025472fc5f02cb0708f64fb 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Serial_Task.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Serial_Task.hpp @@ -92,7 +92,7 @@ class TaskQueueSpecialization > { auto current_task = OptionalRef(nullptr); - while (not queue.is_done()) { + while (!queue.is_done()) { // Each team lead attempts to acquire either a thread team task // or a single thread task for the team. diff --git a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp index 3688f069e56e0d8ec457ca30b9e8e31faf41c626..6a054f73a19f265a6abcdcb094638f126020ba63 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.cpp @@ -47,7 +47,8 @@ namespace Kokkos { namespace Impl { -__thread int SharedAllocationRecord::t_tracking_enabled = 1; +KOKKOS_THREAD_LOCAL int SharedAllocationRecord::t_tracking_enabled = + 1; #ifdef KOKKOS_DEBUG bool SharedAllocationRecord::is_sane( @@ -100,7 +101,7 @@ bool SharedAllocationRecord::is_sane( reinterpret_cast(rec->m_next), reinterpret_cast(rec->m_prev), reinterpret_cast( - rec->m_next != NULL ? rec->m_next->m_prev : NULL), + rec->m_next != nullptr ? rec->m_next->m_prev : nullptr), reinterpret_cast(rec->m_prev != rec->m_root ? rec->m_prev->m_next : root_next)); @@ -186,7 +187,7 @@ SharedAllocationRecord::SharedAllocationRecord( #endif , m_count(0) { - if (0 != arg_alloc_ptr) { + if (nullptr != arg_alloc_ptr) { #ifdef KOKKOS_DEBUG // Insert into the root double-linked list for tracking // @@ -197,7 +198,7 @@ SharedAllocationRecord::SharedAllocationRecord( m_prev = m_root; static constexpr SharedAllocationRecord* zero = nullptr; - // Read root->m_next and lock by setting to NULL + // Read root->m_next and lock by setting to nullptr while ((m_next = Kokkos::atomic_exchange(&m_root->m_next, zero)) == nullptr) ; @@ -214,7 +215,7 @@ SharedAllocationRecord::SharedAllocationRecord( } else { Kokkos::Impl::throw_runtime_exception( - "Kokkos::Impl::SharedAllocationRecord given NULL allocation"); + "Kokkos::Impl::SharedAllocationRecord given nullptr allocation"); } } @@ -288,7 +289,7 @@ SharedAllocationRecord* SharedAllocationRecord< function_type d = arg_record->m_dealloc; (*d)(arg_record); - arg_record = 0; + arg_record = nullptr; } else if (old_count < 1) { // Error fprintf(stderr, "Kokkos::Impl::SharedAllocationRecord '%s' failed decrement count " diff --git a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp index b68c0834c913f2ea653ae7d2a1b82722821332d9..6e954e8f2710f4390efa23f1ab962dae607c308f 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_SharedAlloc.hpp @@ -115,7 +115,7 @@ class SharedAllocationRecord { SharedAllocationHeader* arg_alloc_ptr, size_t arg_alloc_size, function_type arg_dealloc); private: - static __thread int t_tracking_enabled; + static KOKKOS_THREAD_LOCAL int t_tracking_enabled; public: virtual std::string get_label() const { return std::string("Unmanaged"); } @@ -132,7 +132,7 @@ class SharedAllocationRecord { */ static void tracking_enable() { t_tracking_enabled = 1; } - virtual ~SharedAllocationRecord() {} + virtual ~SharedAllocationRecord() = default; SharedAllocationRecord() : m_alloc_ptr(nullptr), @@ -245,6 +245,9 @@ class SharedAllocationRecord #if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) return new SharedAllocationRecord(arg_space, arg_label, arg_alloc); #else + (void)arg_space; + (void)arg_label; + (void)arg_alloc; return (SharedAllocationRecord*)0; #endif } diff --git a/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp b/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp index f01bdce17b5f5feee9056ec8410d30cfa2689bb3..a01b22e4e9bd0c99138b65236abf8d378bdb06f5 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_SimpleTaskScheduler.hpp @@ -226,13 +226,13 @@ class SimpleTaskScheduler } template - KOKKOS_FUNCTION - future_type_for_functor::type> - _spawn_impl( - DepTaskType arg_predecessor_task, TaskPriority arg_priority, - typename runnable_task_base_type::function_type apply_function_ptr, - typename runnable_task_base_type::destroy_type destroy_function_ptr, - FunctorType&& functor) { + KOKKOS_FUNCTION future_type_for_functor< + typename std::decay::type> + _spawn_impl( + DepTaskType arg_predecessor_task, TaskPriority arg_priority, + typename runnable_task_base_type::function_type apply_function_ptr, + typename runnable_task_base_type::destroy_type /*destroy_function_ptr*/, + FunctorType&& functor) { KOKKOS_EXPECTS(m_queue != nullptr); using functor_future_type = @@ -445,7 +445,7 @@ class SimpleTaskScheduler KOKKOS_EXPECTS(!task.get_respawn_flag()); task.set_priority(priority); - KOKKOS_ASSERT(not task.has_predecessor()); + KOKKOS_ASSERT(!task.has_predecessor()); task.set_respawn_flag(true); } diff --git a/lib/kokkos/core/src/impl/Kokkos_SingleTaskQueue.hpp b/lib/kokkos/core/src/impl/Kokkos_SingleTaskQueue.hpp index 8c149e978f7985fce3b59800c32aa4bbe6645993..a0eccffb627f39f1810978aa0d3ab25c9458e4e8 100644 --- a/lib/kokkos/core/src/impl/Kokkos_SingleTaskQueue.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_SingleTaskQueue.hpp @@ -154,7 +154,7 @@ class SingleTaskQueue KOKKOS_FUNCTION OptionalRef pop_ready_task( - team_scheduler_info_type const& info) { + team_scheduler_info_type const& /*info*/) { OptionalRef return_value; // always loop in order of priority first, then prefer team tasks over // single tasks diff --git a/lib/kokkos/core/src/impl/Kokkos_Stacktrace.cpp b/lib/kokkos/core/src/impl/Kokkos_Stacktrace.cpp index 582f6979363cd0d63689bd323affb4bb3e184575..c0c1fdf6be7e2024aa92692b21b4d0996e370bca 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Stacktrace.cpp +++ b/lib/kokkos/core/src/impl/Kokkos_Stacktrace.cpp @@ -18,7 +18,7 @@ namespace Kokkos { namespace Impl { #ifndef KOKKOS_IMPL_ENABLE_STACKTRACE int backtrace(void**, int) { return 0; } -char** backtrace_symbols(void* const*, int) { return NULL; } +char** backtrace_symbols(void* const*, int) { return nullptr; } #endif std::string demangle(const std::string& name) { diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp index e3de5d0eb9a13a32ca9317d83f17b9dabf41428c..8078c68dbd1bc2a36eb6ffc990faea75f20780a6 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskBase.hpp @@ -167,11 +167,7 @@ class TaskBase { TaskBase& operator=(TaskBase&&) = delete; TaskBase& operator=(const TaskBase&) = delete; -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION ~TaskBase(){}; -#else - KOKKOS_INLINE_FUNCTION ~TaskBase() = default; -#endif + KOKKOS_DEFAULTED_FUNCTION ~TaskBase() = default; KOKKOS_INLINE_FUNCTION constexpr TaskBase() : m_apply(nullptr), @@ -211,7 +207,7 @@ class TaskBase { Kokkos::abort("TaskScheduler ERROR: resetting task dependence"); } - if (0 != dep) { + if (nullptr != dep) { // The future may be destroyed upon returning from this call // so increment reference count to track this assignment. Kokkos::atomic_increment(&(dep->m_ref_count)); @@ -226,7 +222,44 @@ class TaskBase { } }; -static_assert(sizeof(TaskBase) == 48, "Verifying expected sizeof(TaskBase)"); +//------------------------------------------------------------------------------ +// {{{2 + +// Workaround: some compilers implement int16_t as 4 bytes, so the size might +// not actually be 48 bytes. +// There's not a lot of reason to keep checking this here; the program will +// work fine if this isn't true. I think this check was originally here to +// emphasize the fact that adding to the size of TaskBase could have a +// significant performance penalty, since doing so could substantially decrease +// the number of full task types that fit into a cache line. We'll leave it +// here for now, though, since we're probably going to be ripping all of the +// old TaskBase stuff out eventually anyway. +constexpr size_t unpadded_task_base_size = 44 + 2 * sizeof(int16_t); +// don't forget padding: +constexpr size_t task_base_misalignment = + unpadded_task_base_size % alignof(void*); +constexpr size_t task_base_padding_size = + (alignof(void*) - task_base_misalignment) % alignof(void*); +constexpr size_t expected_task_base_size = + unpadded_task_base_size + task_base_padding_size; + +// Produce a more readable compiler error message than the plain static assert +template +struct verify_task_base_size_is_48_note_actual_size_is_ {}; +template <> +struct verify_task_base_size_is_48_note_actual_size_is_< + expected_task_base_size> { + using type = int; +}; +static constexpr + typename verify_task_base_size_is_48_note_actual_size_is_::type verify = {}; + +static_assert(sizeof(TaskBase) == expected_task_base_size, + "Verifying expected sizeof(TaskBase)"); + +// end Verify the size of TaskBase is as expected }}}2 +//------------------------------------------------------------------------------ } /* namespace Impl */ } /* namespace Kokkos */ diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskNode.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskNode.hpp index 1ea7fc2049a722c8f965616c44517ce0c91b08c3..42afa93cdcc4db4f4c0223d7b85f5edb8256ee31 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskNode.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskNode.hpp @@ -308,7 +308,7 @@ class TaskNode template KOKKOS_INLINE_FUNCTION void consume_wait_queue(Function&& f) { - KOKKOS_EXPECTS(not m_wait_queue.is_consumed()); + KOKKOS_EXPECTS(!m_wait_queue.is_consumed()); m_wait_queue.consume(std::forward(f)); } @@ -620,7 +620,7 @@ class alignas(16) RunnableTask ~RunnableTask() = delete; KOKKOS_INLINE_FUNCTION - void update_scheduling_info(member_type& member) { + void update_scheduling_info(member_type& /*member*/) { // TODO @tasking @generalization DSH call a queue-specific hook here; for // now, this info is already updated elsewhere this->scheduling_info() = // member.scheduler().scheduling_info(); @@ -639,7 +639,7 @@ class alignas(16) RunnableTask this->functor_type::operator()(*member, *val); } - KOKKOS_FUNCTION static void destroy(task_base_type* root) { + KOKKOS_FUNCTION static void destroy(task_base_type* /*root*/) { // TaskResult::destroy(root); } diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskPolicyData.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskPolicyData.hpp index c5b8c2fc686f4365f506149ef2293408ac734de1..09113628a76f8c9282ae8d30e0f29e7c407ed962 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskPolicyData.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskPolicyData.hpp @@ -75,20 +75,20 @@ struct TaskPolicyWithPredecessor { TaskPolicyWithPredecessor() = delete; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithPredecessor(TaskPolicyWithPredecessor const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithPredecessor(TaskPolicyWithPredecessor&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithPredecessor& operator=(TaskPolicyWithPredecessor const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithPredecessor& operator=(TaskPolicyWithPredecessor&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~TaskPolicyWithPredecessor() = default; KOKKOS_INLINE_FUNCTION @@ -129,19 +129,19 @@ struct TaskPolicyWithScheduler { TaskPolicyWithScheduler() = delete; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithScheduler(TaskPolicyWithScheduler const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithScheduler(TaskPolicyWithScheduler&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithScheduler& operator=(TaskPolicyWithScheduler const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskPolicyWithScheduler& operator=(TaskPolicyWithScheduler&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION ~TaskPolicyWithScheduler() = default; KOKKOS_INLINE_FUNCTION @@ -155,7 +155,7 @@ struct TaskPolicyWithScheduler { KOKKOS_INLINE_FUNCTION static constexpr bool has_predecessor() noexcept { - return not std::is_same::value; + return !std::is_same::value; } KOKKOS_INLINE_FUNCTION diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskQueue.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskQueue.hpp index f7787dae0cf07dd4764c524172199b29f2ecd80d..c0d2eca9c106305e1bfdeb8efd634f657df90c8b 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskQueue.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskQueue.hpp @@ -168,13 +168,13 @@ class TaskQueue : public TaskQueueBase { int allocation_count() const noexcept { return m_count_alloc; } KOKKOS_INLINE_FUNCTION - void initialize_team_queues(int pool_size) const noexcept {} + void initialize_team_queues(int /*pool_size*/) const noexcept {} KOKKOS_INLINE_FUNCTION task_root_type* attempt_to_steal_task() const noexcept { return nullptr; } KOKKOS_INLINE_FUNCTION - team_queue_type& get_team_queue(int team_rank) { return *this; } + team_queue_type& get_team_queue(int /*team_rank*/) { return *this; } // void execute() { specialization::execute( this ); } diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp index b3444420d613280da831083dbcd3e8a628270b02..cd53a81b1b821773f7cde30a1268529e44071e47 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskQueueCommon.hpp @@ -259,9 +259,9 @@ class TaskQueueCommonMixin { // we've lost exclusive access and should nt touch task again // If the predecessor is not done, then task is not ready - task_is_ready = not predecessor_not_ready; + task_is_ready = !predecessor_not_ready; - if (task_is_ready and predecessor.is_runnable()) { + if (task_is_ready && predecessor.is_runnable()) { // this is our last chance to update the scheduling info before // predecessor is potentially deleted _self().update_scheduling_info_from_completed_predecessor( @@ -299,7 +299,7 @@ class TaskQueueCommonMixin { // and enqueue the task // (can't move because the task isn't expired unless the push succeeds bool push_success = ready_queue.push(task); - if (not push_success) { + if (!push_success) { _self().handle_failed_ready_queue_insertion(std::move(task), ready_queue, info); } @@ -312,8 +312,8 @@ class TaskQueueCommonMixin { template KOKKOS_INLINE_FUNCTION void handle_failed_ready_queue_insertion( - RunnableTaskBase&& task, ReadyQueueType& ready_queue, - TeamSchedulerInfo const& info) { + RunnableTaskBase&& /*task*/, + ReadyQueueType& /*ready_queue*/, TeamSchedulerInfo const& /*info*/) { Kokkos::abort("Unhandled failure of ready task queue insertion!\n"); } @@ -325,7 +325,7 @@ class TaskQueueCommonMixin { AggregateTask&& aggregate, TeamSchedulerInfo const& info) { // Because the aggregate is being scheduled, should not be in any queue - KOKKOS_EXPECTS(not aggregate.is_enqueued()); + KOKKOS_EXPECTS(!aggregate.is_enqueued()); using task_scheduling_info_type = typename Derived::task_scheduling_info_type; @@ -369,7 +369,7 @@ class TaskQueueCommonMixin { // ready yet incomplete_dependence_found = pred_not_ready; - if (not pred_not_ready) { + if (!pred_not_ready) { // A predecessor was done, and we didn't enqueue the aggregate // Update the aggregate's scheduling info (we still have exclusive // access to it here) @@ -403,7 +403,7 @@ class TaskQueueCommonMixin { // dependence was found, because some other thread could have already popped // it off of another waiting queue - if (not incomplete_dependence_found) { + if (!incomplete_dependence_found) { // all of the predecessors were completed, so we can complete `task` _self().complete(std::move(aggregate), info); } @@ -462,15 +462,16 @@ class TaskQueueCommonMixin { template KOKKOS_INLINE_FUNCTION void initialize_scheduling_info_from_predecessor( - TaskNode& task, - TaskNode& predecessor) const { + TaskNode& /*task*/, + TaskNode& /*predecessor*/) const { /* do nothing by default */ } template KOKKOS_INLINE_FUNCTION void initialize_scheduling_info_from_team_scheduler_info( - TaskNode& task, TeamSchedulerInfo const& info) const { + TaskNode& /*task*/, + TeamSchedulerInfo const& /*info*/) const { /* do nothing by default */ } diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp index c64c497966b596968e0815216f45ef6b36c9f875..fe3cac7bda6fa02a27140ad14124df4667b6e87a 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskQueue_impl.hpp @@ -181,7 +181,7 @@ KOKKOS_FUNCTION bool TaskQueue::push_task( task->m_priority, task->m_ref_count); #endif - task_root_type *const zero = (task_root_type *)0; + task_root_type *const zero = nullptr; task_root_type *const lock = (task_root_type *)task_root_type::LockTag; task_root_type *volatile &next = task->m_next; @@ -254,7 +254,7 @@ TaskQueue::pop_ready_task( // // If queue is locked then just read by guaranteeing the CAS will fail. - if (lock == task) task = 0; + if (lock == task) task = nullptr; task_root_type *const x = task; @@ -334,7 +334,7 @@ KOKKOS_FUNCTION void TaskQueue::schedule_runnable( task->m_priority, task->m_ref_count); #endif - task_root_type *const zero = (task_root_type *)0; + task_root_type *const zero = nullptr; task_root_type *const lock = (task_root_type *)task_root_type::LockTag; task_root_type *const end = (task_root_type *)task_root_type::EndTag; @@ -382,16 +382,16 @@ KOKKOS_FUNCTION void TaskQueue::schedule_runnable( // If we don't have a dependency, or if pushing onto the wait queue of that // dependency failed (since the only time that queue should be locked is when // the task is transitioning to complete??!?) - const bool is_ready = (0 == dep) || (!push_task(&dep->m_wait, task)); + const bool is_ready = (nullptr == dep) || (!push_task(&dep->m_wait, task)); - if ((0 != dep) && respawn) { + if ((nullptr != dep) && respawn) { // Reference count for dep was incremented when // respawn assigned dependency to task->m_next // so that if dep completed prior to the // above push_task dep would not be destroyed. // dep reference count can now be decremented, // which may deallocate the task. - TaskQueue::assign(&dep, (task_root_type *)0); + TaskQueue::assign(&dep, nullptr); } if (is_ready) { @@ -452,7 +452,7 @@ KOKKOS_FUNCTION void TaskQueue::schedule_aggregate( task->m_ref_count); #endif - task_root_type *const zero = (task_root_type *)0; + task_root_type *const zero = nullptr; task_root_type *const lock = (task_root_type *)task_root_type::LockTag; task_root_type *const end = (task_root_type *)task_root_type::EndTag; @@ -551,7 +551,7 @@ KOKKOS_FUNCTION void TaskQueue::reschedule( // task is in Executing-Respawn state // task->m_next == 0 (no dependence) - task_root_type *const zero = (task_root_type *)0; + task_root_type *const zero = nullptr; task_root_type *const lock = (task_root_type *)task_root_type::LockTag; if (lock != Kokkos::atomic_exchange(&task->m_next, zero)) { @@ -567,7 +567,7 @@ KOKKOS_FUNCTION void TaskQueue::complete( // Complete a runnable task that has finished executing // or a when_all task when all of its dependeneces are complete. - task_root_type *const zero = (task_root_type *)0; + task_root_type *const zero = nullptr; task_root_type *const lock = (task_root_type *)task_root_type::LockTag; task_root_type *const end = (task_root_type *)task_root_type::EndTag; @@ -624,7 +624,7 @@ KOKKOS_FUNCTION void TaskQueue::complete( task_root_type volatile &vx = *x; task_root_type *const next = vx.m_next; - vx.m_next = 0; + vx.m_next = nullptr; Kokkos::memory_fence(); diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskResult.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskResult.hpp index f846ff4ea6237742a5df18ec1cabfb36ce122ed4..40a9c3bf57cfbe36e5a2646b963b71338c410cf7 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskResult.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskResult.hpp @@ -113,20 +113,20 @@ struct TaskResult { using reference_type = void; template - KOKKOS_INLINE_FUNCTION static void* ptr(TaskNode* task) { + KOKKOS_INLINE_FUNCTION static void* ptr(TaskNode* /*task*/) { return nullptr; } - KOKKOS_INLINE_FUNCTION static void* ptr(TaskBase*) { return (void*)nullptr; } + KOKKOS_INLINE_FUNCTION static void* ptr(TaskBase*) { return nullptr; } template KOKKOS_INLINE_FUNCTION static reference_type get( - TaskNode* task) { /* Should never be called */ + TaskNode* /*task*/) { /* Should never be called */ } KOKKOS_INLINE_FUNCTION static reference_type get(TaskBase*) {} - KOKKOS_INLINE_FUNCTION static void destroy(TaskBase* task) {} + KOKKOS_INLINE_FUNCTION static void destroy(TaskBase* /*task*/) {} // template // KOKKOS_INLINE_FUNCTION static diff --git a/lib/kokkos/core/src/impl/Kokkos_TaskTeamMember.hpp b/lib/kokkos/core/src/impl/Kokkos_TaskTeamMember.hpp index 5a9d4c77bf601e230b2c320f780592e1cb577e7f..2faab5794907ecd43ccead5f74e09e414a8f3541 100644 --- a/lib/kokkos/core/src/impl/Kokkos_TaskTeamMember.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_TaskTeamMember.hpp @@ -90,22 +90,22 @@ class TaskTeamMemberAdapter : public TeamMember { // (rule of 6 constructors) - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskTeamMemberAdapter() = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskTeamMemberAdapter(TaskTeamMemberAdapter const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskTeamMemberAdapter(TaskTeamMemberAdapter&&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskTeamMemberAdapter& operator=(TaskTeamMemberAdapter const&) = default; - KOKKOS_INLINE_FUNCTION + KOKKOS_DEFAULTED_FUNCTION TaskTeamMemberAdapter& operator=(TaskTeamMemberAdapter&&) = default; - KOKKOS_INLINE_FUNCTION ~TaskTeamMemberAdapter() = default; + KOKKOS_DEFAULTED_FUNCTION ~TaskTeamMemberAdapter() = default; //---------------------------------------- diff --git a/lib/kokkos/core/src/impl/Kokkos_Traits.hpp b/lib/kokkos/core/src/impl/Kokkos_Traits.hpp index 6f7e164bafbd6728f3a4e0d4277e50339d4ac8ef..32e78b7f5f620fd8d5bcf802703f1d07cb7171a4 100644 --- a/lib/kokkos/core/src/impl/Kokkos_Traits.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_Traits.hpp @@ -137,132 +137,6 @@ struct are_integral { }; //---------------------------------------------------------------------------- -/* C++11 conformal compile-time type traits utilities. - * Prefer to use C++11 when portably available. - */ -//---------------------------------------------------------------------------- -// C++11 Helpers: - -template -struct integral_constant { - // Declaration of 'static const' causes an unresolved linker symbol in debug - // static const T value = v ; - enum { value = T(v) }; - typedef T value_type; - typedef integral_constant type; - KOKKOS_INLINE_FUNCTION operator T() { return v; } -}; - -typedef integral_constant false_type; -typedef integral_constant true_type; - -//---------------------------------------------------------------------------- -// C++11 Type relationships: - -template -struct is_same : public false_type {}; -template -struct is_same : public true_type {}; - -//---------------------------------------------------------------------------- -// C++11 Type properties: - -template -struct is_const : public false_type {}; -template -struct is_const : public true_type {}; -template -struct is_const : public true_type {}; - -template -struct is_array : public false_type {}; -template -struct is_array : public true_type {}; -template -struct is_array : public true_type {}; - -//---------------------------------------------------------------------------- -// C++11 Type transformations: - -template -struct remove_const { - typedef T type; -}; -template -struct remove_const { - typedef T type; -}; -template -struct remove_const { - typedef T& type; -}; - -template -struct add_const { - typedef const T type; -}; -template -struct add_const { - typedef const T& type; -}; -template -struct add_const { - typedef const T type; -}; -template -struct add_const { - typedef const T& type; -}; - -template -struct remove_reference { - typedef T type; -}; -template -struct remove_reference { - typedef T type; -}; -template -struct remove_reference { - typedef const T type; -}; - -template -struct remove_extent { - typedef T type; -}; -template -struct remove_extent { - typedef T type; -}; -template -struct remove_extent { - typedef T type; -}; - -//---------------------------------------------------------------------------- -// C++11 Other type generators: - -template -struct condition { - typedef F type; -}; - -template -struct condition { - typedef T type; -}; - -template -struct enable_if; - -template -struct enable_if { - typedef T type; -}; - -//---------------------------------------------------------------------------- - } // namespace Impl } // namespace Kokkos @@ -280,19 +154,6 @@ struct enable_if_type { typedef T type; }; -//---------------------------------------------------------------------------- - -template -struct bool_ : public integral_constant {}; - -template -struct unsigned_ : public integral_constant {}; - -template -struct int_ : public integral_constant {}; - -typedef bool_ true_; -typedef bool_ false_; //---------------------------------------------------------------------------- // if_ @@ -302,10 +163,10 @@ struct if_c { typedef FalseType type; - typedef typename remove_const::type>::type - value_type; + typedef typename std::remove_const< + typename std::remove_reference::type>::type value_type; - typedef typename add_const::type const_value_type; + typedef typename std::add_const::type const_value_type; static KOKKOS_INLINE_FUNCTION const_value_type& select(const_value_type& v) { return v; @@ -337,10 +198,10 @@ struct if_c { typedef TrueType type; - typedef typename remove_const::type>::type - value_type; + typedef typename std::remove_const< + typename std::remove_reference::type>::type value_type; - typedef typename add_const::type const_value_type; + typedef typename std::add_const::type const_value_type; static KOKKOS_INLINE_FUNCTION const_value_type& select(const_value_type& v) { return v; @@ -387,50 +248,26 @@ struct if_ : public if_c {}; //---------------------------------------------------------------------------- -// Allows aliased types: -template -struct is_integral - : public integral_constant< - bool, - (std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - - std::is_same::value || std::is_same::value || - std::is_same::value || std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value || - std::is_same::value)> {}; -//---------------------------------------------------------------------------- - template -struct is_label : public false_type {}; +struct is_label : public std::false_type {}; template <> -struct is_label : public true_type {}; +struct is_label : public std::true_type {}; template <> -struct is_label : public true_type {}; +struct is_label : public std::true_type {}; template -struct is_label : public true_type {}; +struct is_label : public std::true_type {}; template -struct is_label : public true_type {}; +struct is_label : public std::true_type {}; template <> -struct is_label : public true_type {}; +struct is_label : public std::true_type {}; template <> -struct is_label : public true_type {}; +struct is_label : public std::true_type {}; // These 'constexpr'functions can be used as // both regular functions and meta-function. @@ -515,20 +352,6 @@ struct integral_nonzero_constant { //---------------------------------------------------------------------------- -template -struct is_integral_constant : public false_ { - typedef void integral_type; - enum { integral_value = 0 }; -}; - -template -struct is_integral_constant> : public true_ { - typedef T integral_type; - enum { integral_value = v }; -}; - -//---------------------------------------------------------------------------- - template class TypeList; diff --git a/lib/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp b/lib/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp index 2746932878631039a1f842421fbb9ef8112ee7eb..9b90864199c8ad71b018ced96bcd4fc68f66dea5 100644 --- a/lib/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_VLAEmulation.hpp @@ -185,7 +185,7 @@ struct ObjectWithVLAEmulation { // Note: We can't do this at class scope because it unnecessarily requires // vla_value_type to be a complete type - static_assert(not std::is_abstract::value, + static_assert(!std::is_abstract::value, "Can't use abstract type with VLA emulation"); KOKKOS_EXPECTS(num_entries >= 0); diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp index 6123a608a7ca9329bc6cf8727395e9b9a16c8c11..119ad4eccf88fab63cba3fc984aa2877793e0532 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewArray.hpp @@ -338,7 +338,7 @@ class ViewMapping > { //---------------------------------------- - KOKKOS_INLINE_FUNCTION ~ViewMapping() {} + KOKKOS_DEFAULTED_FUNCTION ~ViewMapping() = default; KOKKOS_INLINE_FUNCTION ViewMapping() : m_impl_handle(), m_impl_offset(), m_stride(0) {} KOKKOS_INLINE_FUNCTION ViewMapping(const ViewMapping &rhs) @@ -349,7 +349,6 @@ class ViewMapping > { m_impl_handle = rhs.m_impl_handle; m_impl_offset = rhs.m_impl_offset; m_stride = rhs.m_stride; - ; return *this; } @@ -469,7 +468,7 @@ class ViewMapping< KOKKOS_INLINE_FUNCTION static void assign(DstType &dst, const SrcType &src, - const TrackType &src_track) { + const TrackType & /*src_track*/) { static_assert(is_assignable, "Can only convert to array_type"); typedef typename DstType::offset_type dst_offset_type; diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp index 33c6e73f0564199c66c20099ddb24d9bfcbc3442..93a267ffa321f7732cd989c10da9a61ca3f1e33e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewCtor.hpp @@ -238,7 +238,10 @@ struct ViewCtorProp : public ViewCtorProp... { /* Copy from a matching property subset */ template ViewCtorProp(ViewCtorProp const &arg) - : ViewCtorProp(((ViewCtorProp const &)arg))... {} + : ViewCtorProp( + static_cast const &>(arg))... { + (void)arg; + } }; } /* namespace Impl */ diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp index 2071f931e39571239111aad65831c4b2fee8197d..27f4375e56650a46d69d7fd462eb55252be33aac 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewLayoutTiled.hpp @@ -601,39 +601,10 @@ struct ViewOffset< //---------------------------------------- -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION ~ViewOffset() {} - KOKKOS_INLINE_FUNCTION ViewOffset() {} - KOKKOS_INLINE_FUNCTION ViewOffset(const ViewOffset& rhs) - : m_dim(rhs.m_dim), - m_tile_N0(rhs.m_tile_N0), - m_tile_N1(rhs.m_tile_N1), - m_tile_N2(rhs.m_tile_N2), - m_tile_N3(rhs.m_tile_N3), - m_tile_N4(rhs.m_tile_N4), - m_tile_N5(rhs.m_tile_N5), - m_tile_N6(rhs.m_tile_N6), - m_tile_N7(rhs.m_tile_N7) {} - - KOKKOS_INLINE_FUNCTION ViewOffset& operator=(const ViewOffset& rhs) { - m_dim = rhs.m_dim; - m_tile_N0 = rhs.m_tile_N0; - m_tile_N1 = rhs.m_tile_N1; - m_tile_N2 = rhs.m_tile_N2; - m_tile_N3 = rhs.m_tile_N3; - m_tile_N4 = rhs.m_tile_N4; - m_tile_N5 = rhs.m_tile_N5; - m_tile_N6 = rhs.m_tile_N6; - m_tile_N7 = rhs.m_tile_N7; - return *this; - } - -#else - KOKKOS_INLINE_FUNCTION ~ViewOffset() = default; - KOKKOS_INLINE_FUNCTION ViewOffset() = default; - KOKKOS_INLINE_FUNCTION ViewOffset(const ViewOffset&) = default; - KOKKOS_INLINE_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; -#endif + KOKKOS_DEFAULTED_FUNCTION ~ViewOffset() = default; + KOKKOS_DEFAULTED_FUNCTION ViewOffset() = default; + KOKKOS_DEFAULTED_FUNCTION ViewOffset(const ViewOffset&) = default; + KOKKOS_DEFAULTED_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; template KOKKOS_INLINE_FUNCTION constexpr ViewOffset( diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp index f6dfacb4d8b4e48baad75977b4d877ffacda8bc9..a8dc1fb84a6fda5934b0bde58a4ac3f4d828fb90 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewMapping.hpp @@ -252,7 +252,7 @@ template struct ViewDimensionJoin; template -struct ViewDimensionJoin, ViewDimension > { +struct ViewDimensionJoin, ViewDimension> { typedef ViewDimension type; }; @@ -263,7 +263,7 @@ struct ViewDimensionAssignable; template struct ViewDimensionAssignable, - ViewDimension > { + ViewDimension> { typedef ViewDimension dst; typedef ViewDimension src; @@ -327,18 +327,18 @@ struct is_integral_extent_type { }; template -struct is_integral_extent_type > { +struct is_integral_extent_type> { enum { value = std::is_integral::value ? 1 : 0 }; }; template -struct is_integral_extent_type > { +struct is_integral_extent_type> { enum { value = std::is_integral::value ? 1 : 0 }; }; // Assuming '2 == initializer_list::size()' template -struct is_integral_extent_type > { +struct is_integral_extent_type> { enum { value = std::is_integral::value ? 1 : 0 }; }; @@ -641,10 +641,10 @@ struct SubviewExtents { error(buf + n, buf_len - n, domain_rank + 1, range_rank + 1, dim, args...); } +#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) template KOKKOS_FORCEINLINE_FUNCTION void error(const ViewDimension& dim, Args... args) const { -#if defined(KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST) enum { LEN = 1024 }; char buffer[LEN]; @@ -652,10 +652,14 @@ struct SubviewExtents { error(buffer + n, LEN - n, 0, 0, dim, args...); Kokkos::Impl::throw_runtime_exception(std::string(buffer)); + } #else + template + KOKKOS_FORCEINLINE_FUNCTION void error(const ViewDimension&, + Args...) const { Kokkos::abort("Kokkos::subview bounds error"); -#endif } +#endif #else @@ -726,18 +730,18 @@ template struct ViewDataType; template -struct ViewDataType > { +struct ViewDataType> { typedef T type; }; template -struct ViewDataType > { - typedef typename ViewDataType >::type type; +struct ViewDataType> { + typedef typename ViewDataType>::type type; }; template -struct ViewDataType > { - typedef typename ViewDataType >::type type[N]; +struct ViewDataType> { + typedef typename ViewDataType>::type type[N]; }; /**\brief Analysis of View data type. @@ -2740,7 +2744,7 @@ struct ViewValueFunctor; template struct ViewValueFunctor { - typedef Kokkos::RangePolicy PolicyType; + typedef Kokkos::RangePolicy> PolicyType; typedef typename ExecSpace::execution_space Exec; Exec space; @@ -2778,6 +2782,12 @@ struct ViewValueFunctor { : "Kokkos::View::initialization"), 0, &kpID); } +#endif +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + Kokkos::Impl::cuda_prefetch_pointer(space, ptr, sizeof(ValueType) * n, + true); + } #endif const Kokkos::Impl::ParallelFor closure( *this, PolicyType(0, n)); @@ -2800,7 +2810,7 @@ struct ViewValueFunctor { template struct ViewValueFunctor { - typedef Kokkos::RangePolicy PolicyType; + typedef Kokkos::RangePolicy> PolicyType; ExecSpace space; ValueType* ptr; @@ -2825,6 +2835,12 @@ struct ViewValueFunctor { Kokkos::Profiling::beginParallelFor("Kokkos::View::initialization", 0, &kpID); } +#endif +#ifdef KOKKOS_ENABLE_CUDA + if (std::is_same::value) { + Kokkos::Impl::cuda_prefetch_pointer(space, ptr, sizeof(ValueType) * n, + true); + } #endif const Kokkos::Impl::ParallelFor closure( *this, PolicyType(0, n)); @@ -3069,7 +3085,7 @@ class ViewMapping< //---------------------------------------- - KOKKOS_INLINE_FUNCTION ~ViewMapping() {} + KOKKOS_DEFAULTED_FUNCTION ~ViewMapping() = default; KOKKOS_INLINE_FUNCTION ViewMapping() : m_impl_handle(), m_impl_offset() {} KOKKOS_INLINE_FUNCTION ViewMapping(const ViewMapping& rhs) : m_impl_handle(rhs.m_impl_handle), m_impl_offset(rhs.m_impl_offset) {} @@ -3493,7 +3509,7 @@ struct SubViewDataTypeImpl; /* base case */ template -struct SubViewDataTypeImpl > { +struct SubViewDataTypeImpl> { using type = ValueType; }; @@ -3503,16 +3519,17 @@ template ::type>::value>::type, - ValueType, Experimental::Extents, Integral, Args...> - : SubViewDataTypeImpl, - Args...> {}; + ValueType, Kokkos::Experimental::Extents, Integral, Args...> + : SubViewDataTypeImpl, Args...> {}; /* for ALL slice, subview has the same dimension */ template -struct SubViewDataTypeImpl, - ALL_t, Args...> +struct SubViewDataTypeImpl, ALL_t, + Args...> : SubViewDataTypeImpl::type, - Experimental::Extents, Args...> {}; + Kokkos::Experimental::Extents, Args...> {}; /* for pair-style slice, subview has dynamic dimension, since pair doesn't give * static sizes */ @@ -3522,10 +3539,10 @@ template struct SubViewDataTypeImpl< typename std::enable_if::value>::type, ValueType, - Experimental::Extents, PairLike, Args...> + Kokkos::Experimental::Extents, PairLike, Args...> : SubViewDataTypeImpl< void, typename make_all_extents_into_pointers::type*, - Experimental::Extents, Args...> {}; + Kokkos::Experimental::Extents, Args...> {}; template struct SubViewDataType : SubViewDataTypeImpl {}; diff --git a/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp b/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp index f1227c2ab61d548c7a02fe6eec48eed7ef1f5603..342927ef7754a9fb52e6b2f6b519dd31bd2df25e 100644 --- a/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp +++ b/lib/kokkos/core/src/impl/Kokkos_ViewTile.hpp @@ -146,22 +146,10 @@ struct ViewOffset< //---------------------------------------- -#ifdef KOKKOS_CUDA_9_DEFAULTED_BUG_WORKAROUND - KOKKOS_INLINE_FUNCTION ~ViewOffset() {} - KOKKOS_INLINE_FUNCTION ViewOffset() {} - KOKKOS_INLINE_FUNCTION ViewOffset(const ViewOffset& rhs) - : m_dim(rhs.m_dim), m_tile_N0(rhs.m_tile_N0) {} - KOKKOS_INLINE_FUNCTION ViewOffset& operator=(const ViewOffset& rhs) { - m_dim = rhs.m_dim; - m_tile_N0 = rhs.m_tile_N0; - return *this; - } -#else - KOKKOS_INLINE_FUNCTION ~ViewOffset() = default; - KOKKOS_INLINE_FUNCTION ViewOffset() = default; - KOKKOS_INLINE_FUNCTION ViewOffset(const ViewOffset&) = default; - KOKKOS_INLINE_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; -#endif + KOKKOS_DEFAULTED_FUNCTION ~ViewOffset() = default; + KOKKOS_DEFAULTED_FUNCTION ViewOffset() = default; + KOKKOS_DEFAULTED_FUNCTION ViewOffset(const ViewOffset&) = default; + KOKKOS_DEFAULTED_FUNCTION ViewOffset& operator=(const ViewOffset&) = default; template KOKKOS_INLINE_FUNCTION constexpr ViewOffset( diff --git a/lib/kokkos/core/src/kokkos.pc.in b/lib/kokkos/core/src/kokkos.pc.in deleted file mode 100644 index 47786faefb9668a62763ed9b79fe71254fe3e500..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/src/kokkos.pc.in +++ /dev/null @@ -1,71 +0,0 @@ -# -# Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -# -# Under the terms of Contract DE-NA0003525 with NTESS, -# the U.S. Government retains certain rights in this software. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the Corporation nor the names of the -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Questions? Contact Christian R. Trott (crtrott@sandia.gov) -# - -# Add the directory where kokkos.pc got installed to your PKG_CONFIG_PATH - -# Use this on commandline with: -# c++ `pkg-config --cflags --libs kokkos` -o myapp myapp.cpp - -# Use this in a Makefile: -# myapp: myapp.cpp -# $(CC) `pkg-config --cflags --libs kokkos` -o $@ $< - -# Use this in autotools: -# configure.ac: -# PKG_CHECK_MODULES([KOKKOS], [kokkos]) -# Makefile.am: -# myapp_CFLAGS = $(KOKKOS_CFLAGS) -# myapp_LDADD = $(KOKKOS_LIBS) - -# Use this in CMake: -# CMakeLists.txt: -# find_package(PkgConfig) -# pkg_check_modules(KOKKOS IMPORTED_TARGET kokkos) -# target_link_libraries( PkgConfig::KOKKOS) - -libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - -Name: kokkos -Description: Kokkos C++ Performance Portability Programming EcoSystem -URL: https://github.com/kokkos -Version: @Kokkos_VERSION@ -Requires: -Libs: -L${libdir} -lkokkos @KOKKOS_EXTRA_LIBS_LIST@ @KOKKOS_LINK_FLAGS@ -Libs.private: -lm -Cflags: -I${includedir} @KOKKOS_CXXFLAGS@ diff --git a/lib/kokkos/core/unit_test/CMakeLists.txt b/lib/kokkos/core/unit_test/CMakeLists.txt index c0957e83a886f4464dcdc01893177a775768dfc4..dec2f5e920759de0c9353f77a932de3a028562e7 100644 --- a/lib/kokkos/core/unit_test/CMakeLists.txt +++ b/lib/kokkos/core/unit_test/CMakeLists.txt @@ -12,8 +12,38 @@ KOKKOS_ADD_TEST_LIBRARY( HEADERS ${GTEST_SOURCE_DIR}/gtest/gtest.h SOURCES ${GTEST_SOURCE_DIR}/gtest/gtest-all.cc ) -KOKKOS_TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") -KOKKOS_TARGET_INCLUDE_DIRECTORIES(kokkos_gtest PUBLIC ${GTEST_SOURCE_DIR}) +#These can be direct, no need for Tribits or Kokkos wrappers + +# WORKAROUND FOR HIPCC +IF(Kokkos_ENABLE_HIP) + TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0 --amdgpu-target=gfx906") +ELSE() + TARGET_COMPILE_DEFINITIONS(kokkos_gtest PUBLIC "-DGTEST_HAS_PTHREAD=0") +ENDIF() + +TARGET_INCLUDE_DIRECTORIES(kokkos_gtest PUBLIC ${GTEST_SOURCE_DIR}) +#Gtest minimally requires C++11 +TARGET_COMPILE_FEATURES(kokkos_gtest PUBLIC cxx_std_11) + +# +# Define Incremental Testing Feature Levels +# Define Device name mappings (i.e. what comes after Kokkos:: for the ExecSpace) +# + +SET(KOKKOS_CUDA_FEATURE_LEVEL 999) +SET(KOKKOS_CUDA_NAME Cuda) +SET(KOKKOS_HIP_FEATURE_LEVEL 12) +SET(KOKKOS_HIP_NAME Experimental::HIP) +SET(KOKKOS_HPX_FEATURE_LEVEL 999) +SET(KOKKOS_HPX_NAME Experimental::HPX) +SET(KOKKOS_OPENMP_FEATURE_LEVEL 999) +SET(KOKKOS_OPENMP_NAME OpenMP) +SET(KOKKOS_OPENMPTARGET_FEATURE_LEVEL 10) +SET(KOKKOS_OPENMPTARGET_NAME Experimental::OpenMPTarget) +SET(KOKKOS_SERIAL_FEATURE_LEVEL 999) +SET(KOKKOS_SERIAL_NAME Serial) +SET(KOKKOS_THREADS_FEATURE_LEVEL 999) +SET(KOKKOS_THREADS_NAME Threads) # @@ -24,7 +54,7 @@ KOKKOS_TARGET_INCLUDE_DIRECTORIES(kokkos_gtest PUBLIC ${GTEST_SOURCE_DIR}) KOKKOS_INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) KOKKOS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR}) -foreach(Tag Threads;Serial;OpenMP;Cuda;HPX) +foreach(Tag Threads;Serial;OpenMP;Cuda;HPX;OpenMPTarget;HIP) # Because there is always an exception to the rule if(Tag STREQUAL "Threads") set(DEVICE "PTHREAD") @@ -46,6 +76,7 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX) ${dir}/Test${Tag}_AtomicOperations_complexfloat.cpp ${dir}/Test${Tag}_AtomicViews.cpp ${dir}/Test${Tag}_Atomics.cpp + ${dir}/Test${Tag}_Concepts.cpp ${dir}/Test${Tag}_Complex.cpp ${dir}/Test${Tag}_Crs.cpp ${dir}/Test${Tag}_DeepCopyAlignment.cpp @@ -59,6 +90,7 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX) ${dir}/Test${Tag}_MDRange_e.cpp ${dir}/Test${Tag}_Other.cpp ${dir}/Test${Tag}_RangePolicy.cpp + ${dir}/Test${Tag}_RangePolicyRequire.cpp ${dir}/Test${Tag}_Reductions.cpp ${dir}/Test${Tag}_Reducers_a.cpp ${dir}/Test${Tag}_Reducers_b.cpp @@ -104,6 +136,30 @@ foreach(Tag Threads;Serial;OpenMP;Cuda;HPX) ) endforeach() +if(Kokkos_ENABLE_OPENMPTARGET) + list(REMOVE_ITEM OpenMPTarget_SOURCES + openmptarget/TestOpenMPTarget_AtomicOperations_complexdouble.cpp + openmptarget/TestOpenMPTarget_MDRange_a.cpp + openmptarget/TestOpenMPTarget_MDRange_b.cpp + openmptarget/TestOpenMPTarget_MDRange_c.cpp + openmptarget/TestOpenMPTarget_MDRange_d.cpp + openmptarget/TestOpenMPTarget_MDRange_e.cpp + openmptarget/TestOpenMPTarget_Other.cpp + openmptarget/TestOpenMPTarget_Scan.cpp + openmptarget/TestOpenMPTarget_Team.cpp + openmptarget/TestOpenMPTarget_TeamScratch.cpp + openmptarget/TestOpenMPTarget_ViewAPI_e.cpp + openmptarget/TestOpenMPTarget_ViewMapping_subview.cpp + openmptarget/TestOpenMPTarget_ViewOfClass.cpp + ) +endif() + +if(Kokkos_ENABLE_HIP) + # FIXME Linktime error: undefined reference to + # Kokkos::Impl::ViewDimensin<0ul, ...>(unsigned int, ...) + list(REMOVE_ITEM Serial_SOURCES serial/TestSerial_ViewLayoutStrideAssignment.cpp) +endif() + if(Kokkos_ENABLE_SERIAL) KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_Serial @@ -150,42 +206,11 @@ if(Kokkos_ENABLE_HPX) ) endif() -if(Kokkos_ENABLE_QTHREADS) +if(Kokkos_ENABLE_OPENMPTARGET) KOKKOS_ADD_EXECUTABLE_AND_TEST( - UnitTest_Qthreads + UnitTest_OpenMPTarget SOURCES - UnitTestMainInit.cpp - qthreads/TestQthreads_Atomics.cpp - qthreads/TestQthreads_Complex.cpp - qthreads/TestQthreads_DeepCopyAlignment.cpp - qthreads/TestQthreads_Other.cpp - qthreads/TestQthreads_Reductions.cpp - qthreads/TestQthreads_Reducers_a.cpp - qthreads/TestQthreads_Reducers_b.cpp - qthreads/TestQthreads_Reducers_c.cpp - qthreads/TestQthreads_Reducers_d.cpp - qthreads/TestQthreads_SubView_a.cpp - qthreads/TestQthreads_SubView_b.cpp - qthreads/TestQthreads_SubView_c01.cpp - qthreads/TestQthreads_SubView_c02.cpp - qthreads/TestQthreads_SubView_c03.cpp - qthreads/TestQthreads_SubView_c04.cpp - qthreads/TestQthreads_SubView_c05.cpp - qthreads/TestQthreads_SubView_c06.cpp - qthreads/TestQthreads_SubView_c07.cpp - qthreads/TestQthreads_SubView_c08.cpp - qthreads/TestQthreads_SubView_c09.cpp - qthreads/TestQthreads_SubView_c10.cpp - qthreads/TestQthreads_SubView_c11.cpp - qthreads/TestQthreads_SubView_c12.cpp - qthreads/TestQthreads_SubView_c13.cpp - qthreads/TestQthreads_Team.cpp - qthreads/TestQthreads_View_64bit.cpp - qthreads/TestQthreads_ViewAPI_a.cpp - qthreads/TestQthreads_ViewAPI_b.cpp - qthreads/TestQthreads_ViewAPI_c.cpp - qthreads/TestQthreads_ViewAPI_d.cpp - qthreads/TestQthreads_ViewAPI_e.cpp + ${OpenMPTarget_SOURCES} ) endif() @@ -233,22 +258,66 @@ if(Kokkos_ENABLE_CUDA) ) endif() +if(Kokkos_ENABLE_HIP) + # FIXME_HIP + LIST(REMOVE_ITEM HIP_SOURCES + hip/TestHIP_AtomicOperations_complexdouble.cpp + hip/TestHIP_Other.cpp + hip/TestHIP_Reductions_DeviceView.cpp + hip/TestHIP_Team.cpp + hip/TestHIP_TeamReductionScan.cpp + hip/TestHIP_TeamScratch.cpp + hip/TestHIP_TeamTeamSize.cpp + hip/TestHIP_TeamVectorRange.cpp + hip/TestHIP_UniqueToken.cpp + hip/TestHIP_ViewAPI_a.cpp + hip/TestHIP_ViewAPI_b.cpp + hip/TestHIP_ViewAPI_e.cpp + hip/TestHIP_ViewLayoutStrideAssignment.cpp + hip/TestHIP_WorkGraph.cpp + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HIP + SOURCES + ${HIP_SOURCES} + hip/TestHIPHostPinned_ViewAPI_a.cpp + hip/TestHIPHostPinned_ViewAPI_b.cpp + hip/TestHIPHostPinned_ViewAPI_c.cpp + hip/TestHIPHostPinned_ViewAPI_d.cpp + hip/TestHIPHostPinned_ViewAPI_e.cpp + hip/TestHIPHostPinned_ViewCopy.cpp + hip/TestHIPHostPinned_ViewMapping_a.cpp + hip/TestHIPHostPinned_ViewMapping_b.cpp + hip/TestHIPHostPinned_ViewMapping_subview.cpp + ) + KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_HIPInterOpInit + SOURCES + UnitTestMain.cpp + hip/TestHIP_InterOp_Init.cpp + ) +endif() + +SET(DEFAULT_DEVICE_SOURCES + UnitTestMainInit.cpp + default/TestDefaultDeviceType.cpp + default/TestDefaultDeviceType_a1.cpp + default/TestDefaultDeviceType_b1.cpp + default/TestDefaultDeviceType_c1.cpp + default/TestDefaultDeviceType_a2.cpp + default/TestDefaultDeviceType_b2.cpp + default/TestDefaultDeviceType_c2.cpp + default/TestDefaultDeviceType_a3.cpp + default/TestDefaultDeviceType_b3.cpp + default/TestDefaultDeviceType_c3.cpp + default/TestDefaultDeviceType_d.cpp + default/TestDefaultDeviceTypeResize.cpp +) + KOKKOS_ADD_EXECUTABLE_AND_TEST( UnitTest_Default - SOURCES - UnitTestMainInit.cpp - default/TestDefaultDeviceType.cpp - default/TestDefaultDeviceType_a1.cpp - default/TestDefaultDeviceType_b1.cpp - default/TestDefaultDeviceType_c1.cpp - default/TestDefaultDeviceType_a2.cpp - default/TestDefaultDeviceType_b2.cpp - default/TestDefaultDeviceType_c2.cpp - default/TestDefaultDeviceType_a3.cpp - default/TestDefaultDeviceType_b3.cpp - default/TestDefaultDeviceType_c3.cpp - default/TestDefaultDeviceType_d.cpp - default/TestDefaultDeviceTypeResize.cpp + SOURCES ${DEFAULT_DEVICE_SOURCES} ) KOKKOS_ADD_EXECUTABLE_AND_TEST( @@ -275,6 +344,7 @@ KOKKOS_ADD_ADVANCED_TEST( UnitTest_PushFinalizeHook_terminate ALWAYS_FAIL_ON_ZERO_RETURN ) +if(NOT KOKKOS_HAS_TRILINOS) KOKKOS_ADD_TEST_EXECUTABLE( StackTraceTestExec SOURCES @@ -287,20 +357,9 @@ KOKKOS_ADD_TEST_EXECUTABLE( ) # We need -rdynamic on GNU platforms for the stacktrace functionality # to work correctly with shared libraries -if(NOT KOKKOS_HAS_TRILINOS) -SET_PROPERTY(TARGET StackTraceTestExec PROPERTY ENABLE_EXPORTS 1) - -KOKKOS_ADD_TEST( NAME UnitTest_StackTraceTest_normal - EXE StackTraceTestExec - FAIL_REGULAR_EXPRESSION "FAILED" - ) - -KOKKOS_ADD_TEST( NAME UnitTest_StackTraceTest_terminate - EXE StackTraceTestExec - FAIL_REGULAR_EXPRESSION "FAILED" - ) +KOKKOS_SET_EXE_PROPERTY(StackTraceTestExec ENABLE_EXPORTS ON) -KOKKOS_ADD_TEST( NAME UnitTest_StackTraceTest_generic_term +KOKKOS_ADD_TEST( NAME UnitTest_StackTraceTest EXE StackTraceTestExec FAIL_REGULAR_EXPRESSION "FAILED" ) @@ -325,5 +384,52 @@ KOKKOS_ADD_EXECUTABLE_AND_TEST( SOURCES UnitTestMain.cpp TestHostBarrier.cpp ) +FUNCTION (KOKKOS_ADD_INCREMENTAL_TEST DEVICE) + KOKKOS_OPTION( ${DEVICE}_EXCLUDE_TESTS "" STRING "Incremental test exclude list" ) + # Add unit test main + SET(${DEVICE}_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/UnitTestMainInit.cpp) + + # Iterate over incremental tests in directory + APPEND_GLOB(INCREMENTAL_FILE_LIST ${CMAKE_CURRENT_SOURCE_DIR}/incremental/*.hpp) + SET(DEVICE_NAME ${KOKKOS_${DEVICE}_NAME}) + FOREACH (CURRENT_FILE_PATH ${INCREMENTAL_FILE_LIST}) + GET_FILENAME_COMPONENT( CURRENT_FILE_NAME ${CURRENT_FILE_PATH} NAME ) + STRING (REPLACE ".hpp" "" CURRENT_TEST_NAME ${CURRENT_FILE_NAME}) + IF (NOT CURRENT_TEST_NAME IN_LIST Kokkos_${DEVICE}_EXCLUDE_TESTS) + SET (CURRENT_TEST_OUTPUT_FILENAME ${CURRENT_TEST_NAME}_${DEVICE}) + FILE( STRINGS ${CURRENT_FILE_PATH} CURRENT_REQUIRED_FEATURE_LINE REGEX "Kokkos_Feature_Level_Required" ) + # From each test get level implementation required + STRING( REGEX REPLACE ".*Kokkos_Feature_Level_Required:" "" CURRENT_REQUIRED_FEATURE_LEVEL ${CURRENT_REQUIRED_FEATURE_LINE} ) + # Cross-reference list of dependencies with selected feature list > matching feature test files are added to test applications + IF (KOKKOS_${DEVICE}_FEATURE_LEVEL GREATER_EQUAL CURRENT_REQUIRED_FEATURE_LEVEL) + CONFIGURE_FILE (IncrementalTest.cpp.in ${CMAKE_BINARY_DIR}/core/unit_test/generated/${CURRENT_TEST_OUTPUT_FILENAME}.cpp ) + SET(${DEVICE}_SOURCES ${${DEVICE}_SOURCES}; ${CMAKE_BINARY_DIR}/core/unit_test/generated/${CURRENT_TEST_OUTPUT_FILENAME}.cpp) + ENDIF() + ENDIF() + ENDFOREACH() + + STRING(TOUPPER ${DEVICE} UC_DEVICE) + + KOKKOS_OPTION ( + ENABLE_${UC_DEVICE} ON BOOL "ENABLE ${UC_DEVICE}" + ) + + KOKKOS_ADD_EXECUTABLE_AND_TEST( + IncrementalTest_${DEVICE} + SOURCES ${${DEVICE}_SOURCES} + ) + + TARGET_INCLUDE_DIRECTORIES( ${PACKAGE_NAME}_IncrementalTest_${DEVICE} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incremental ) + +ENDFUNCTION() + +FOREACH (DEVICE ${KOKKOS_ENABLED_DEVICES}) + KOKKOS_ADD_INCREMENTAL_TEST(${DEVICE}) +ENDFOREACH() + +KOKKOS_ADD_EXECUTABLE_AND_TEST( + UnitTest_CTestDevice + SOURCES UnitTestMain.cpp TestCTestDevice.cpp +) diff --git a/lib/kokkos/core/unit_test/IncrementalTest.cpp.in b/lib/kokkos/core/unit_test/IncrementalTest.cpp.in new file mode 100644 index 0000000000000000000000000000000000000000..e4358efe9dd8683e025b5a2be67a4e9bd83e7552 --- /dev/null +++ b/lib/kokkos/core/unit_test/IncrementalTest.cpp.in @@ -0,0 +1,58 @@ +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER + +#ifndef KOKKOS_TEST_@BACK_END_NAME@_@CURRENT_TEST_NAME@ +#define KOKKOS_TEST_@BACK_END_NAME@_@CURRENT_TEST_NAME@ + +#include +#include + +#define TEST_CATEGORY @DEVICE@ +#define TEST_EXECSPACE Kokkos::@DEVICE_NAME@ + +#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) +#include <@CURRENT_FILE_NAME@> +#endif + +#endif + + diff --git a/lib/kokkos/core/unit_test/Makefile b/lib/kokkos/core/unit_test/Makefile index cf945bd718f5f346cff72c3cdc7c2cae1bfd5f25..1a386adc4aa88a5dc4e5d0518d853b2914ca96e1 100644 --- a/lib/kokkos/core/unit_test/Makefile +++ b/lib/kokkos/core/unit_test/Makefile @@ -8,7 +8,7 @@ vpath %.cpp ${KOKKOS_PATH}/core/unit_test/serial vpath %.cpp ${KOKKOS_PATH}/core/unit_test/threads vpath %.cpp ${KOKKOS_PATH}/core/unit_test/openmp vpath %.cpp ${KOKKOS_PATH}/core/unit_test/openmptarget -vpath %.cpp ${KOKKOS_PATH}/core/unit_test/qthreads +vpath %.cpp ${KOKKOS_PATH}/core/unit_test/hip vpath %.cpp ${KOKKOS_PATH}/core/unit_test/hpx vpath %.cpp ${KOKKOS_PATH}/core/unit_test/cuda vpath %.cpp ${KOKKOS_PATH}/core/unit_test/rocm @@ -67,7 +67,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) OBJ_CUDA = UnitTestMainInit.o gtest-all.o OBJ_CUDA += TestCuda_Init.o OBJ_CUDA += TestCuda_SharedAlloc.o TestCudaUVM_SharedAlloc.o TestCudaHostPinned_SharedAlloc.o - OBJ_CUDA += TestCuda_RangePolicy.o + OBJ_CUDA += TestCuda_RangePolicy.o TestCuda_RangePolicyRequire.o OBJ_CUDA += TestCuda_ViewAPI_a.o TestCuda_ViewAPI_b.o TestCuda_ViewAPI_c.o TestCuda_ViewAPI_d.o TestCuda_ViewAPI_e.o OBJ_CUDA += TestCuda_DeepCopyAlignment.o OBJ_CUDA += TestCuda_ViewMapping_a.o TestCuda_ViewMapping_b.o TestCuda_ViewMapping_subview.o TestCuda_ViewResize.o TestCuda_ViewLayoutStrideAssignment.o @@ -103,7 +103,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1) OBJ_CUDA += TestCuda_LocalDeepCopy.o OBJ_CUDA += TestCuda_DebugSerialExecution.o OBJ_CUDA += TestCuda_DebugPinUVMSpace.o - + TARGETS += KokkosCore_UnitTest_Cuda TARGETS += KokkosCore_UnitTest_CudaInterOpInit TARGETS += KokkosCore_UnitTest_CudaInterOpStreams @@ -166,7 +166,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1) OBJ_THREADS = UnitTestMainInit.o gtest-all.o OBJ_THREADS += TestThreads_Init.o OBJ_THREADS += TestThreads_SharedAlloc.o - OBJ_THREADS += TestThreads_RangePolicy.o + OBJ_THREADS += TestThreads_RangePolicy.o TestThreads_RangePolicyRequire.o OBJ_THREADS += TestThreads_View_64bit.o OBJ_THREADS += TestThreads_ViewAPI_a.o TestThreads_ViewAPI_b.o TestThreads_ViewAPI_c.o TestThreads_ViewAPI_d.o TestThreads_ViewAPI_e.o OBJ_THREADS += TestThreads_DeepCopyAlignment.o @@ -201,7 +201,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1) OBJ_OPENMP = UnitTestMainInit.o gtest-all.o OBJ_OPENMP += TestOpenMP_Init.o OBJ_OPENMP += TestOpenMP_SharedAlloc.o - OBJ_OPENMP += TestOpenMP_RangePolicy.o + OBJ_OPENMP += TestOpenMP_RangePolicy.o TestOpenMP_RangePolicyRequire.o OBJ_OPENMP += TestOpenMP_View_64bit.o OBJ_OPENMP += TestOpenMP_ViewAPI_a.o TestOpenMP_ViewAPI_b.o TestOpenMP_ViewAPI_c.o TestOpenMP_ViewAPI_d.o TestOpenMP_ViewAPI_e.o OBJ_OPENMP += TestOpenMP_DeepCopyAlignment.o @@ -242,11 +242,12 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) OBJ_OPENMPTARGET += TestOpenMPTarget_Init.o #OBJ_OPENMPTARGET += TestOpenMPTarget_SharedAlloc.o OBJ_OPENMPTARGET += TestOpenMPTarget_RangePolicy.o - OBJ_OPENMPTARGET += TestOpenMPTarget_ViewAPI_a.o TestOpenMPTarget_ViewAPI_b.o TestOpenMPTarget_ViewAPI_c.o TestOpenMPTarget_ViewAPI_d.o TestOpenMPTarget_ViewAPI_e.o #Some commented out code + OBJ_OPENMPTARGET += TestOpenMPTarget_ViewAPI_a.o TestOpenMPTarget_ViewAPI_b.o TestOpenMPTarget_ViewAPI_c.o TestOpenMPTarget_ViewAPI_d.o #Some commented out code + #OBJ_OPENMPTARGET += TestOpenMPTarget_ViewAPI_e.o OBJ_OPENMPTARGET += TestOpenMPTarget_DeepCopyAlignment.o OBJ_OPENMPTARGET += TestOpenMPTarget_ViewMapping_a.o OBJ_OPENMPTARGET += TestOpenMPTarget_ViewMapping_b.o - OBJ_OPENMPTARGET += TestOpenMPTarget_ViewMapping_subview.o + #OBJ_OPENMPTARGET += TestOpenMPTarget_ViewMapping_subview.o #OBJ_OPENMPTARGET += TestOpenMPTarget_ViewOfClass.o OBJ_OPENMPTARGET += TestOpenMPTarget_SubView_a.o TestOpenMPTarget_SubView_b.o #The following subview tests need something like UVM: @@ -255,12 +256,13 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) #OBJ_OPENMPTARGET += TestOpenMPTarget_SubView_c07.o TestOpenMPTarget_SubView_c08.o TestOpenMPTarget_SubView_c09.o #OBJ_OPENMPTARGET += TestOpenMPTarget_SubView_c10.o TestOpenMPTarget_SubView_c11.o TestOpenMPTarget_SubView_c12.o #OBJ_OPENMPTARGET += TestOpenMPTarget_Reductions.o # Need custom reductions - #OBJ_OPENMPTARGET += TestOpenMPTarget_Reducers_a.o TestOpenMPTarget_Reducers_b.o TestOpenMPTarget_Reducers_c.o TestOpenMPTarget_Reducers_d.o + OBJ_OPENMPTARGET += TestOpenMPTarget_Reducers_a.o TestOpenMPTarget_Reducers_b.o TestOpenMPTarget_Reducers_c.o TestOpenMPTarget_Reducers_d.o #OBJ_OPENMPTARGET += TestOpenMPTarget_Scan.o OBJ_OPENMPTARGET += TestOpenMPTarget_Complex.o OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicOperations_int.o TestOpenMPTarget_AtomicOperations_unsignedint.o TestOpenMPTarget_AtomicOperations_longint.o OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicOperations_unsignedlongint.o TestOpenMPTarget_AtomicOperations_longlongint.o TestOpenMPTarget_AtomicOperations_double.o TestOpenMPTarget_AtomicOperations_float.o - OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicOperations_complexfloat.o TestOpenMPTarget_AtomicOperations_complexdouble.o + #OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicOperations_complexfloat.o + #OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicOperations_complexdouble.o OBJ_OPENMPTARGET += TestOpenMPTarget_AtomicViews.o OBJ_OPENMPTARGET += TestOpenMPTarget_Atomics.o # Commented Out Arbitrary Type Atomics #OBJ_OPENMPTARGET += TestOpenMPTarget_Team.o # There is still a static function in this @@ -275,28 +277,26 @@ ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1) TEST_TARGETS += test-openmptarget endif -ifeq ($(KOKKOS_INTERNAL_USE_QTHREADS), 1) - OBJ_QTHREADS = TestQthreads_Other.o TestQthreads_Reductions.o TestQthreads_Atomics.o TestQthreads_Team.o - OBJ_QTHREADS += TestQthreads_SubView_a.o TestQthreads_SubView_b.o - OBJ_QTHREADS += TestQthreads_SubView_c01.o TestQthreads_SubView_c02.o TestQthreads_SubView_c03.o - OBJ_QTHREADS += TestQthreads_SubView_c04.o TestQthreads_SubView_c05.o TestQthreads_SubView_c06.o - OBJ_QTHREADS += TestQthreads_SubView_c07.o TestQthreads_SubView_c08.o TestQthreads_SubView_c09.o - OBJ_QTHREADS += TestQthreads_SubView_c10.o TestQthreads_SubView_c11.o TestQthreads_SubView_c12.o - OBJ_QTHREADS += TestQthreads_ViewAPI_a.o TestQthreads_ViewAPI_b.o TestQthreads_ViewAPI_c.o TestQthreads_ViewAPI_d.o TestQthreads_ViewAPI_e.o UnitTestMain.o gtest-all.o - TARGETS += KokkosCore_UnitTest_Qthreads - - OBJ_QTHREADS2 = UnitTestMainInit.o gtest-all.o - OBJ_QTHREADS2 += TestQthreads_Complex.o - TARGETS += KokkosCore_UnitTest_Qthreads2 - - TEST_TARGETS += test-qthreads +ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1) + OBJ_HIP = UnitTestMainInit.o gtest-all.o + OBJ_HIP += TestHIP_Init.o + OBJ_HIP += TestHIP_Reducers_a.o TestHIP_Reducers_b.o TestHIP_Reducers_c.o TestHIP_Reducers_d.o + OBJ_HIP += TestHIP_Reductions.o + OBJ_HIP += TestHIP_MDRange_a.o TestHIP_MDRange_b.o TestHIP_MDRange_c.o TestHIP_MDRange_d.o TestHIP_MDRange_e.o + OBJ_HIP += TestHIP_Spaces.o + OBJ_HIP += TestHIPHostPinned_ViewCopy.o TestHIPHostPinned_ViewAPI_a.o TestHIPHostPinned_ViewAPI_b.o TestHIPHostPinned_ViewAPI_c.o TestHIPHostPinned_ViewAPI_d.o TestHIPHostPinned_ViewAPI_e.o + OBJ_HIP += TestHIPHostPinned_ViewMapping_a.o TestHIPHostPinned_ViewMapping_b.o TestHIPHostPinned_ViewMapping_subview.o + + TARGETS += KokkosCore_UnitTest_HIP + + TEST_TARGETS += test-hip endif ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1) OBJ_HPX = UnitTestMainInit.o gtest-all.o OBJ_HPX += TestHPX_Init.o OBJ_HPX += TestHPX_SharedAlloc.o - OBJ_HPX += TestHPX_RangePolicy.o + OBJ_HPX += TestHPX_RangePolicy.o TestHPX_RangePolicyRequire.o OBJ_HPX += TestHPX_View_64bit.o OBJ_HPX += TestHPX_ViewAPI_a.o TestHPX_ViewAPI_b.o TestHPX_ViewAPI_c.o TestHPX_ViewAPI_d.o TestHPX_ViewAPI_e.o OBJ_HPX += TestHPX_ViewMapping_a.o TestHPX_ViewMapping_b.o TestHPX_ViewMapping_subview.o TestHPX_ViewResize.o @@ -335,7 +335,7 @@ ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1) OBJ_SERIAL = UnitTestMainInit.o gtest-all.o OBJ_SERIAL += TestSerial_Init.o OBJ_SERIAL += TestSerial_SharedAlloc.o - OBJ_SERIAL += TestSerial_RangePolicy.o + OBJ_SERIAL += TestSerial_RangePolicy.o TestSerial_RangePolicyRequire.o OBJ_SERIAL += TestSerial_View_64bit.o OBJ_SERIAL += TestSerial_ViewAPI_a.o TestSerial_ViewAPI_b.o TestSerial_ViewAPI_c.o TestSerial_ViewAPI_d.o TestSerial_ViewAPI_e.o OBJ_SERIAL += TestSerial_DeepCopyAlignment.o @@ -414,7 +414,7 @@ TEST_TARGETS += ${INITTESTS_TEST_TARGETS} KokkosCore_UnitTest_Cuda: $(OBJ_CUDA) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_CUDA) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_Cuda - + KokkosCore_UnitTest_CudaInterOpInit: UnitTestMain.o gtest-all.o TestCuda_InterOp_Init.o $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) UnitTestMain.o gtest-all.o TestCuda_InterOp_Init.o $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_CudaInterOpInit KokkosCore_UnitTest_CudaInterOpStreams: UnitTestMain.o gtest-all.o TestCuda_InterOp_Streams.o $(KOKKOS_LINK_DEPENDS) @@ -438,11 +438,8 @@ KokkosCore_UnitTest_OpenMPTarget: $(OBJ_OPENMPTARGET) $(KOKKOS_LINK_DEPENDS) KokkosCore_UnitTest_Serial: $(OBJ_SERIAL) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_SERIAL) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_Serial -KokkosCore_UnitTest_Qthreads: $(OBJ_QTHREADS) $(KOKKOS_LINK_DEPENDS) - $(LINK) $(EXTRA_PATH) $(OBJ_QTHREADS) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_Qthreads - -KokkosCore_UnitTest_Qthreads2: $(OBJ_QTHREADS2) $(KOKKOS_LINK_DEPENDS) - $(LINK) $(EXTRA_PATH) $(OBJ_QTHREADS2) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_Qthreads2 +KokkosCore_UnitTest_HIP: $(OBJ_HIP) $(KOKKOS_LINK_DEPENDS) + $(LINK) $(EXTRA_PATH) $(OBJ_HIP) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_HIP KokkosCore_UnitTest_HPX: $(OBJ_HPX) $(KOKKOS_LINK_DEPENDS) $(LINK) $(EXTRA_PATH) $(OBJ_HPX) $(KOKKOS_LIBS) $(LIB) $(KOKKOS_LDFLAGS) $(LDFLAGS) -o KokkosCore_UnitTest_HPX @@ -496,9 +493,8 @@ test-openmptarget: KokkosCore_UnitTest_OpenMPTarget test-serial: KokkosCore_UnitTest_Serial ./KokkosCore_UnitTest_Serial -test-qthreads: KokkosCore_UnitTest_Qthreads KokkosCore_UnitTest_Qthreads2 - ./KokkosCore_UnitTest_Qthreads - ./KokkosCore_UnitTest_Qthreads2 +test-hip: KokkosCore_UnitTest_HIP + ./KokkosCore_UnitTest_HIP test-hpx: KokkosCore_UnitTest_HPX ./KokkosCore_UnitTest_HPX diff --git a/lib/kokkos/core/unit_test/TestAtomic.hpp b/lib/kokkos/core/unit_test/TestAtomic.hpp index a72a179e02e62132fdb4b59249565b119a24859e..809f9dc01fd78f5a0994746febcb794ed8181065 100644 --- a/lib/kokkos/core/unit_test/TestAtomic.hpp +++ b/lib/kokkos/core/unit_test/TestAtomic.hpp @@ -527,7 +527,19 @@ TEST(TEST_CATEGORY, atomics) { ASSERT_TRUE((TestAtomic::Loop(100, 3))); #ifndef KOKKOS_ENABLE_OPENMPTARGET -#ifndef KOKKOS_ENABLE_ROCM // ROCM doesn't yet support atomics for >64bit types + ASSERT_TRUE((TestAtomic::Loop, TEST_EXECSPACE>(1, 1))); + ASSERT_TRUE((TestAtomic::Loop, TEST_EXECSPACE>(1, 2))); + ASSERT_TRUE((TestAtomic::Loop, TEST_EXECSPACE>(1, 3))); + + ASSERT_TRUE( + (TestAtomic::Loop, TEST_EXECSPACE>(100, 1))); + ASSERT_TRUE( + (TestAtomic::Loop, TEST_EXECSPACE>(100, 2))); + ASSERT_TRUE( + (TestAtomic::Loop, TEST_EXECSPACE>(100, 3))); + + // FIXME_HIP HIP doesn't yet support atomics for >64bit types properly +#ifndef KOKKOS_ENABLE_HIP ASSERT_TRUE( (TestAtomic::Loop, TEST_EXECSPACE>(1, 1))); ASSERT_TRUE( @@ -542,17 +554,8 @@ TEST(TEST_CATEGORY, atomics) { ASSERT_TRUE( (TestAtomic::Loop, TEST_EXECSPACE>(100, 3))); - ASSERT_TRUE((TestAtomic::Loop, TEST_EXECSPACE>(1, 1))); - ASSERT_TRUE((TestAtomic::Loop, TEST_EXECSPACE>(1, 2))); - ASSERT_TRUE((TestAtomic::Loop, TEST_EXECSPACE>(1, 3))); - - ASSERT_TRUE( - (TestAtomic::Loop, TEST_EXECSPACE>(100, 1))); - ASSERT_TRUE( - (TestAtomic::Loop, TEST_EXECSPACE>(100, 2))); - ASSERT_TRUE( - (TestAtomic::Loop, TEST_EXECSPACE>(100, 3))); - +// WORKAROUND MSVC +#ifndef _WIN32 ASSERT_TRUE( (TestAtomic::Loop, TEST_EXECSPACE>(100, 1))); ASSERT_TRUE( @@ -561,6 +564,7 @@ TEST(TEST_CATEGORY, atomics) { (TestAtomic::Loop, TEST_EXECSPACE>(100, 3))); #endif #endif +#endif } } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestAtomicViews.hpp b/lib/kokkos/core/unit_test/TestAtomicViews.hpp index d7a45dc40fe8cc529db6fa53d8374537a6cdb659..109598e8c609133869ee884bfad2f043e71cec38 100644 --- a/lib/kokkos/core/unit_test/TestAtomicViews.hpp +++ b/lib/kokkos/core/unit_test/TestAtomicViews.hpp @@ -97,8 +97,8 @@ struct TestViewOperator_LeftAndRight { right_view right; stride_view left_stride; stride_view right_stride; - long left_alloc; - long right_alloc; + int64_t left_alloc; + int64_t right_alloc; TestViewOperator_LeftAndRight() : left("left"), @@ -255,11 +255,11 @@ class TestAtomicViewAPI { ASSERT_EQ(ax.use_count(), size_t(4)); ASSERT_EQ(const_ax.use_count(), ax.use_count()); - ASSERT_FALSE(ax.data() == 0); - ASSERT_FALSE(const_ax.data() == 0); // referenceable ptr - ASSERT_FALSE(unmanaged_ax.data() == 0); - ASSERT_FALSE(unmanaged_ax_from_ptr_dx.data() == 0); - ASSERT_FALSE(ay.data() == 0); + ASSERT_FALSE(ax.data() == nullptr); + ASSERT_FALSE(const_ax.data() == nullptr); // referenceable ptr + ASSERT_FALSE(unmanaged_ax.data() == nullptr); + ASSERT_FALSE(unmanaged_ax_from_ptr_dx.data() == nullptr); + ASSERT_FALSE(ay.data() == nullptr); // ASSERT_NE( ax, ay ); // Above test results in following runtime error from gtest: // Expected: (ax) != (ay), actual: 32-byte object <30-01 D0-A0 D8-7F @@ -318,13 +318,13 @@ struct InitFunctor_Seq { typedef Kokkos::View view_type; view_type input; - const long length; + const int64_t length; - InitFunctor_Seq(view_type& input_, const long length_) + InitFunctor_Seq(view_type& input_, const int64_t length_) : input(input_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { input(i) = (T)i; } @@ -336,15 +336,15 @@ struct InitFunctor_ModTimes { typedef Kokkos::View view_type; view_type input; - const long length; - const long remainder; + const int64_t length; + const int64_t remainder; - InitFunctor_ModTimes(view_type& input_, const long length_, - const long remainder_) + InitFunctor_ModTimes(view_type& input_, const int64_t length_, + const int64_t remainder_) : input(input_), length(length_), remainder(remainder_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % (remainder + 1) == remainder) { input(i) = (T)2; @@ -360,15 +360,15 @@ struct InitFunctor_ModShift { typedef Kokkos::View view_type; view_type input; - const long length; - const long remainder; + const int64_t length; + const int64_t remainder; - InitFunctor_ModShift(view_type& input_, const long length_, - const long remainder_) + InitFunctor_ModShift(view_type& input_, const int64_t length_, + const int64_t remainder_) : input(input_), length(length_), remainder(remainder_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % (remainder + 1) == remainder) { input(i) = 1; @@ -390,15 +390,15 @@ struct PlusEqualAtomicViewFunctor { view_type input; atomic_view_type even_odd_result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator PlusEqualAtomicViewFunctor(const view_type& input_, - view_type& even_odd_result_, const long length_) + view_type& even_odd_result_, const int64_t length_) : input(input_), even_odd_result(even_odd_result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 2 == 0) { even_odd_result(0) += input(i); @@ -410,11 +410,11 @@ struct PlusEqualAtomicViewFunctor { }; template -T PlusEqualAtomicView(const long input_length) { +T PlusEqualAtomicView(const int64_t input_length) { typedef Kokkos::View view_type; typedef typename view_type::HostMirror host_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); view_type result_view("result_view", 2); @@ -435,19 +435,19 @@ T PlusEqualAtomicView(const long input_length) { } template -T PlusEqualAtomicViewCheck(const long input_length) { - const long N = input_length; +T PlusEqualAtomicViewCheck(const int64_t input_length) { + const int64_t N = input_length; T result[2]; if (N % 2 == 0) { - const long half_sum_end = (N / 2) - 1; - const long full_sum_end = N - 1; + const int64_t half_sum_end = (N / 2) - 1; + const int64_t full_sum_end = N - 1; result[0] = half_sum_end * (half_sum_end + 1) / 2; // Even sum. result[1] = (full_sum_end * (full_sum_end + 1) / 2) - result[0]; // Odd sum. } else { - const long half_sum_end = (T)(N / 2); - const long full_sum_end = N - 2; + const int64_t half_sum_end = (T)(N / 2); + const int64_t full_sum_end = N - 2; result[0] = half_sum_end * (half_sum_end - 1) / 2; // Even sum. result[1] = (full_sum_end * (full_sum_end - 1) / 2) - result[0]; // Odd sum. @@ -457,7 +457,7 @@ T PlusEqualAtomicViewCheck(const long input_length) { } template -bool PlusEqualAtomicViewTest(long input_length) { +bool PlusEqualAtomicViewTest(int64_t input_length) { T res = PlusEqualAtomicView(input_length); T resSerial = PlusEqualAtomicViewCheck(input_length); @@ -487,15 +487,16 @@ struct MinusEqualAtomicViewFunctor { view_type input; atomic_view_type even_odd_result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator. MinusEqualAtomicViewFunctor(const view_type& input_, - view_type& even_odd_result_, const long length_) + view_type& even_odd_result_, + const int64_t length_) : input(input_), even_odd_result(even_odd_result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 2 == 0) { even_odd_result(0) -= input(i); @@ -507,11 +508,11 @@ struct MinusEqualAtomicViewFunctor { }; template -T MinusEqualAtomicView(const long input_length) { +T MinusEqualAtomicView(const int64_t input_length) { typedef Kokkos::View view_type; typedef typename view_type::HostMirror host_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); view_type result_view("result_view", 2); @@ -532,19 +533,19 @@ T MinusEqualAtomicView(const long input_length) { } template -T MinusEqualAtomicViewCheck(const long input_length) { - const long N = input_length; +T MinusEqualAtomicViewCheck(const int64_t input_length) { + const int64_t N = input_length; T result[2]; if (N % 2 == 0) { - const long half_sum_end = (N / 2) - 1; - const long full_sum_end = N - 1; + const int64_t half_sum_end = (N / 2) - 1; + const int64_t full_sum_end = N - 1; result[0] = -1 * (half_sum_end * (half_sum_end + 1) / 2); // Even sum. result[1] = -1 * ((full_sum_end * (full_sum_end + 1) / 2) + result[0]); // Odd sum. } else { - const long half_sum_end = (long)(N / 2); - const long full_sum_end = N - 2; + const int64_t half_sum_end = (int64_t)(N / 2); + const int64_t full_sum_end = N - 2; result[0] = -1 * (half_sum_end * (half_sum_end - 1) / 2); // Even sum. result[1] = -1 * ((full_sum_end * (full_sum_end - 1) / 2) + result[0]); // Odd sum. @@ -554,7 +555,7 @@ T MinusEqualAtomicViewCheck(const long input_length) { } template -bool MinusEqualAtomicViewTest(long input_length) { +bool MinusEqualAtomicViewTest(int64_t input_length) { T res = MinusEqualAtomicView(input_length); T resSerial = MinusEqualAtomicViewCheck(input_length); @@ -584,15 +585,15 @@ struct TimesEqualAtomicViewFunctor { view_type input; atomic_view_type result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator TimesEqualAtomicViewFunctor(const view_type& input_, view_type& result_, - const long length_) + const int64_t length_) : input(input_), result(result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length && i > 0) { result(0) *= (double)input(i); } @@ -600,11 +601,11 @@ struct TimesEqualAtomicViewFunctor { }; template -T TimesEqualAtomicView(const long input_length, const long remainder) { +T TimesEqualAtomicView(const int64_t input_length, const int64_t remainder) { typedef Kokkos::View view_type; typedef typename view_type::HostMirror host_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); view_type result_view("result_view", 1); @@ -626,12 +627,13 @@ T TimesEqualAtomicView(const long input_length, const long remainder) { } template -T TimesEqualAtomicViewCheck(const long input_length, const long remainder) { +T TimesEqualAtomicViewCheck(const int64_t input_length, + const int64_t remainder) { // Analytical result. - const long N = input_length; - T result = 1.0; + const int64_t N = input_length; + T result = 1.0; - for (long i = 2; i < N; ++i) { + for (int64_t i = 2; i < N; ++i) { if (i % (remainder + 1) == remainder) { result *= 2.0; } else { @@ -643,8 +645,8 @@ T TimesEqualAtomicViewCheck(const long input_length, const long remainder) { } template -bool TimesEqualAtomicViewTest(const long input_length) { - const long remainder = 23; +bool TimesEqualAtomicViewTest(const int64_t input_length) { + const int64_t remainder = 23; T res = TimesEqualAtomicView(input_length, remainder); T resSerial = TimesEqualAtomicViewCheck(input_length, remainder); @@ -675,15 +677,15 @@ struct DivEqualAtomicViewFunctor { view_type input; atomic_view_type result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator. DivEqualAtomicViewFunctor(const view_type& input_, scalar_view_type& result_, - const long length_) + const int64_t length_) : input(input_), result(result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length && i > 0) { result() /= (double)(input(i)); } @@ -691,12 +693,12 @@ struct DivEqualAtomicViewFunctor { }; template -T DivEqualAtomicView(const long input_length, const long remainder) { +T DivEqualAtomicView(const int64_t input_length, const int64_t remainder) { typedef Kokkos::View view_type; typedef Kokkos::View scalar_view_type; typedef typename scalar_view_type::HostMirror host_scalar_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); scalar_view_type result_view("result_view"); @@ -718,10 +720,10 @@ T DivEqualAtomicView(const long input_length, const long remainder) { } template -T DivEqualAtomicViewCheck(const long input_length, const long remainder) { - const long N = input_length; - T result = 12121212121.0; - for (long i = 2; i < N; ++i) { +T DivEqualAtomicViewCheck(const int64_t input_length, const int64_t remainder) { + const int64_t N = input_length; + T result = 12121212121.0; + for (int64_t i = 2; i < N; ++i) { if (i % (remainder + 1) == remainder) { result /= 1.0; } else { @@ -733,8 +735,8 @@ T DivEqualAtomicViewCheck(const long input_length, const long remainder) { } template -bool DivEqualAtomicViewTest(const long input_length) { - const long remainder = 23; +bool DivEqualAtomicViewTest(const int64_t input_length) { + const int64_t remainder = 23; T res = DivEqualAtomicView(input_length, remainder); T resSerial = DivEqualAtomicViewCheck(input_length, remainder); @@ -766,15 +768,15 @@ struct ModEqualAtomicViewFunctor { view_type input; atomic_view_type result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator. ModEqualAtomicViewFunctor(const view_type& input_, scalar_view_type& result_, - const long length_) + const int64_t length_) : input(input_), result(result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length && i > 0) { result() %= (double)(input(i)); } @@ -782,12 +784,12 @@ struct ModEqualAtomicViewFunctor { }; template -T ModEqualAtomicView(const long input_length, const long remainder) { +T ModEqualAtomicView(const int64_t input_length, const int64_t remainder) { typedef Kokkos::View view_type; typedef Kokkos::View scalar_view_type; typedef typename scalar_view_type::HostMirror host_scalar_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); scalar_view_type result_view("result_view"); @@ -809,10 +811,10 @@ T ModEqualAtomicView(const long input_length, const long remainder) { } template -T ModEqualAtomicViewCheck(const long input_length, const long remainder) { - const long N = input_length; - T result = 12121212121; - for (long i = 2; i < N; ++i) { +T ModEqualAtomicViewCheck(const int64_t input_length, const int64_t remainder) { + const int64_t N = input_length; + T result = 12121212121; + for (int64_t i = 2; i < N; ++i) { if (i % (remainder + 1) == remainder) { result %= 1; } else { @@ -824,12 +826,12 @@ T ModEqualAtomicViewCheck(const long input_length, const long remainder) { } template -bool ModEqualAtomicViewTest(const long input_length) { +bool ModEqualAtomicViewTest(const int64_t input_length) { static_assert(std::is_integral::value, "ModEqualAtomicView Error: Type must be integral type for this " "unit test"); - const long remainder = 23; + const int64_t remainder = 23; T res = ModEqualAtomicView(input_length, remainder); T resSerial = ModEqualAtomicViewCheck(input_length, remainder); @@ -861,16 +863,16 @@ struct RSEqualAtomicViewFunctor { const view_type input; atomic_view_type result; - const long length; - const long value; + const int64_t length; + const int64_t value; // Wrap the result view in an atomic view, use this for operator. RSEqualAtomicViewFunctor(const view_type& input_, result_view_type& result_, - const long& length_, const long& value_) + const int64_t& length_, const int64_t& value_) : input(input_), result(result_), length(length_), value(value_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 4 == 0) { result(1, 0, 0, 0) >>= input(i); @@ -886,13 +888,13 @@ struct RSEqualAtomicViewFunctor { }; template -T RSEqualAtomicView(const long input_length, const long value, - const long remainder) { +T RSEqualAtomicView(const int64_t input_length, const int64_t value, + const int64_t remainder) { typedef Kokkos::View view_type; typedef Kokkos::View result_view_type; typedef typename result_view_type::HostMirror host_scalar_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); result_view_type result_view("result_view", 2, 2, 2, 2); @@ -918,8 +920,8 @@ T RSEqualAtomicView(const long input_length, const long value, } template -T RSEqualAtomicViewCheck(const long input_length, const long value, - const long remainder) { +T RSEqualAtomicViewCheck(const int64_t input_length, const int64_t value, + const int64_t remainder) { T result[4]; result[0] = value; result[1] = value; @@ -927,7 +929,7 @@ T RSEqualAtomicViewCheck(const long input_length, const long value, result[3] = value; T* input = new T[input_length]; - for (long i = 0; i < input_length; ++i) { + for (int64_t i = 0; i < input_length; ++i) { if (i % (remainder + 1) == remainder) { input[i] = 1; } else { @@ -935,7 +937,7 @@ T RSEqualAtomicViewCheck(const long input_length, const long value, } } - for (long i = 0; i < input_length; ++i) { + for (int64_t i = 0; i < input_length; ++i) { if (i % 4 == 0) { result[0] >>= input[i]; } else if (i % 4 == 1) { @@ -953,12 +955,12 @@ T RSEqualAtomicViewCheck(const long input_length, const long value, } template -bool RSEqualAtomicViewTest(const long input_length) { +bool RSEqualAtomicViewTest(const int64_t input_length) { static_assert(std::is_integral::value, "RSEqualAtomicViewTest: Must be integral type for test"); - const long remainder = 61042; // prime - 1 - const long value = 1073741825; // 2^30+1 + const int64_t remainder = 61042; // prime - 1 + const int64_t value = 1073741825; // 2^30+1 T res = RSEqualAtomicView(input_length, value, remainder); T resSerial = RSEqualAtomicViewCheck(input_length, value, remainder); @@ -989,16 +991,16 @@ struct LSEqualAtomicViewFunctor { view_type input; atomic_view_type result; - const long length; - const long value; + const int64_t length; + const int64_t value; // Wrap the result view in an atomic view, use this for operator. LSEqualAtomicViewFunctor(const view_type& input_, result_view_type& result_, - const long& length_, const long& value_) + const int64_t& length_, const int64_t& value_) : input(input_), result(result_), length(length_), value(value_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 4 == 0) { result(1, 0, 0, 0) <<= input(i); @@ -1014,13 +1016,13 @@ struct LSEqualAtomicViewFunctor { }; template -T LSEqualAtomicView(const long input_length, const long value, - const long remainder) { +T LSEqualAtomicView(const int64_t input_length, const int64_t value, + const int64_t remainder) { typedef Kokkos::View view_type; typedef Kokkos::View result_view_type; typedef typename result_view_type::HostMirror host_scalar_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); result_view_type result_view("result_view", 2, 2, 2, 2); @@ -1046,8 +1048,8 @@ T LSEqualAtomicView(const long input_length, const long value, } template -T LSEqualAtomicViewCheck(const long input_length, const long value, - const long remainder) { +T LSEqualAtomicViewCheck(const int64_t input_length, const int64_t value, + const int64_t remainder) { T result[4]; result[0] = value; result[1] = value; @@ -1055,7 +1057,7 @@ T LSEqualAtomicViewCheck(const long input_length, const long value, result[3] = value; T* input = new T[input_length]; - for (long i = 0; i < input_length; ++i) { + for (int64_t i = 0; i < input_length; ++i) { if (i % (remainder + 1) == remainder) { input[i] = 1; } else { @@ -1063,7 +1065,7 @@ T LSEqualAtomicViewCheck(const long input_length, const long value, } } - for (long i = 0; i < input_length; ++i) { + for (int64_t i = 0; i < input_length; ++i) { if (i % 4 == 0) { result[0] <<= input[i]; } else if (i % 4 == 1) { @@ -1081,12 +1083,12 @@ T LSEqualAtomicViewCheck(const long input_length, const long value, } template -bool LSEqualAtomicViewTest(const long input_length) { +bool LSEqualAtomicViewTest(const int64_t input_length) { static_assert(std::is_integral::value, "LSEqualAtomicViewTest: Must be integral type for test"); - const long remainder = 61042; // prime - 1 - const long value = 1; // 2^30+1 + const int64_t remainder = 61042; // prime - 1 + const int64_t value = 1; // 2^30+1 T res = LSEqualAtomicView(input_length, value, remainder); T resSerial = LSEqualAtomicViewCheck(input_length, value, remainder); @@ -1116,15 +1118,15 @@ struct AndEqualAtomicViewFunctor { view_type input; atomic_view_type even_odd_result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator. AndEqualAtomicViewFunctor(const view_type& input_, - view_type& even_odd_result_, const long length_) + view_type& even_odd_result_, const int64_t length_) : input(input_), even_odd_result(even_odd_result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 2 == 0) { even_odd_result(0) &= input(i); @@ -1136,11 +1138,11 @@ struct AndEqualAtomicViewFunctor { }; template -T AndEqualAtomicView(const long input_length) { +T AndEqualAtomicView(const int64_t input_length) { typedef Kokkos::View view_type; typedef typename view_type::HostMirror host_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); view_type result_view("result_view", 2); @@ -1162,10 +1164,10 @@ T AndEqualAtomicView(const long input_length) { } template -T AndEqualAtomicViewCheck(const long input_length) { - const long N = input_length; - T result[2] = {1}; - for (long i = 0; i < N; ++i) { +T AndEqualAtomicViewCheck(const int64_t input_length) { + const int64_t N = input_length; + T result[2] = {1}; + for (int64_t i = 0; i < N; ++i) { if (N % 2 == 0) { result[0] &= (T)i; } else { @@ -1177,7 +1179,7 @@ T AndEqualAtomicViewCheck(const long input_length) { } template -bool AndEqualAtomicViewTest(long input_length) { +bool AndEqualAtomicViewTest(int64_t input_length) { static_assert(std::is_integral::value, "AndEqualAtomicViewTest: Must be integral type for test"); @@ -1210,15 +1212,15 @@ struct OrEqualAtomicViewFunctor { view_type input; atomic_view_type even_odd_result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator. OrEqualAtomicViewFunctor(const view_type& input_, view_type& even_odd_result_, - const long length_) + const int64_t length_) : input(input_), even_odd_result(even_odd_result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 2 == 0) { even_odd_result(0) |= input(i); @@ -1230,11 +1232,11 @@ struct OrEqualAtomicViewFunctor { }; template -T OrEqualAtomicView(const long input_length) { +T OrEqualAtomicView(const int64_t input_length) { typedef Kokkos::View view_type; typedef typename view_type::HostMirror host_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); view_type result_view("result_view", 2); @@ -1255,10 +1257,10 @@ T OrEqualAtomicView(const long input_length) { } template -T OrEqualAtomicViewCheck(const long input_length) { - const long N = input_length; - T result[2] = {0}; - for (long i = 0; i < N; ++i) { +T OrEqualAtomicViewCheck(const int64_t input_length) { + const int64_t N = input_length; + T result[2] = {0}; + for (int64_t i = 0; i < N; ++i) { if (i % 2 == 0) { result[0] |= (T)i; } else { @@ -1270,7 +1272,7 @@ T OrEqualAtomicViewCheck(const long input_length) { } template -bool OrEqualAtomicViewTest(long input_length) { +bool OrEqualAtomicViewTest(int64_t input_length) { static_assert(std::is_integral::value, "OrEqualAtomicViewTest: Must be integral type for test"); @@ -1303,15 +1305,15 @@ struct XOrEqualAtomicViewFunctor { view_type input; atomic_view_type even_odd_result; - const long length; + const int64_t length; // Wrap the result view in an atomic view, use this for operator. XOrEqualAtomicViewFunctor(const view_type& input_, - view_type& even_odd_result_, const long length_) + view_type& even_odd_result_, const int64_t length_) : input(input_), even_odd_result(even_odd_result_), length(length_) {} KOKKOS_INLINE_FUNCTION - void operator()(const long i) const { + void operator()(const int64_t i) const { if (i < length) { if (i % 2 == 0) { even_odd_result(0) ^= input(i); @@ -1323,11 +1325,11 @@ struct XOrEqualAtomicViewFunctor { }; template -T XOrEqualAtomicView(const long input_length) { +T XOrEqualAtomicView(const int64_t input_length) { typedef Kokkos::View view_type; typedef typename view_type::HostMirror host_view_type; - const long length = input_length; + const int64_t length = input_length; view_type input("input_view", length); view_type result_view("result_view", 2); @@ -1348,10 +1350,10 @@ T XOrEqualAtomicView(const long input_length) { } template -T XOrEqualAtomicViewCheck(const long input_length) { - const long N = input_length; - T result[2] = {0}; - for (long i = 0; i < N; ++i) { +T XOrEqualAtomicViewCheck(const int64_t input_length) { + const int64_t N = input_length; + T result[2] = {0}; + for (int64_t i = 0; i < N; ++i) { if (i % 2 == 0) { result[0] ^= (T)i; } else { @@ -1363,7 +1365,7 @@ T XOrEqualAtomicViewCheck(const long input_length) { } template -bool XOrEqualAtomicViewTest(long input_length) { +bool XOrEqualAtomicViewTest(int64_t input_length) { static_assert(std::is_integral::value, "XOrEqualAtomicViewTest: Must be integral type for test"); @@ -1426,38 +1428,38 @@ bool AtomicViewsTestNonIntegralType(const int length, int test) { namespace Test { TEST(TEST_CATEGORY, atomic_views_integral) { - const long length = 1000000; + const int64_t length = 1000000; { // Integral Types. ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 1))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 2))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 3))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 4))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 5))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 6))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 7))); ASSERT_TRUE( - (TestAtomicViews::AtomicViewsTestIntegralType( + (TestAtomicViews::AtomicViewsTestIntegralType( length, 8))); } } TEST(TEST_CATEGORY, atomic_views_nonintegral) { - const long length = 1000000; + const int64_t length = 1000000; { // Non-Integral Types. ASSERT_TRUE(( diff --git a/lib/kokkos/core/unit_test/TestCTestDevice.cpp b/lib/kokkos/core/unit_test/TestCTestDevice.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b2ee79b856b0b995bb86b39d8f7fedb4548c5a7d --- /dev/null +++ b/lib/kokkos/core/unit_test/TestCTestDevice.cpp @@ -0,0 +1,138 @@ +#include + +namespace Kokkos { +namespace Impl { + +int get_ctest_gpu(const char *local_rank_str); + +} // namespace Impl +} // namespace Kokkos + +#ifdef _WIN32 +int setenv(const char *name, const char *value, int overwrite) { + int errcode = 0; + if (!overwrite) { + size_t envsize = 0; + errcode = getenv_s(&envsize, NULL, 0, name); + if (errcode || envsize) return errcode; + } + return _putenv_s(name, value); +} + +int unsetenv(const char *name) { return _putenv_s(name, ""); } +#endif + +// Needed because https://github.com/google/googletest/issues/952 has not been +// resolved +#define EXPECT_THROW_WITH_MESSAGE(stmt, etype, whatstring) \ + EXPECT_THROW( \ + try { stmt; } catch (const etype &ex) { \ + EXPECT_EQ(whatstring, std::string(ex.what())); \ + throw; \ + }, \ + etype) + +class ctest_environment : public ::testing::Test { + protected: + void SetUp(); +}; + +void ctest_environment::SetUp() { + setenv("CTEST_KOKKOS_DEVICE_TYPE", "gpus", 1); + setenv("CTEST_RESOURCE_GROUP_COUNT", "10", 1); + unsetenv("CTEST_RESOURCE_GROUP_0"); + setenv("CTEST_RESOURCE_GROUP_1", "threads", 1); + setenv("CTEST_RESOURCE_GROUP_2", "threads,cores", 1); + + setenv("CTEST_RESOURCE_GROUP_3", "gpus", 1); + unsetenv("CTEST_RESOURCE_GROUP_3_GPUS"); + + setenv("CTEST_RESOURCE_GROUP_4", "gpus", 1); + setenv("CTEST_RESOURCE_GROUP_4_GPUS", "id:2", 1); + + setenv("CTEST_RESOURCE_GROUP_5", "gpus", 1); + setenv("CTEST_RESOURCE_GROUP_5_GPUS", "slots:1,id:2", 1); + + setenv("CTEST_RESOURCE_GROUP_6", "gpus", 1); + setenv("CTEST_RESOURCE_GROUP_6_GPUS", "id:2,slots:1", 1); + + setenv("CTEST_RESOURCE_GROUP_7", "threads,gpus", 1); + setenv("CTEST_RESOURCE_GROUP_7_GPUS", "id:3,slots:1", 1); + + setenv("CTEST_RESOURCE_GROUP_8", "gpus,threads", 1); + setenv("CTEST_RESOURCE_GROUP_8_GPUS", "id:1,slots:1", 1); + + setenv("CTEST_RESOURCE_GROUP_9", "cores,gpus,threads", 1); + setenv("CTEST_RESOURCE_GROUP_9_GPUS", "id:4,slots:1", 1); +} + +TEST_F(ctest_environment, no_device_type) { + unsetenv("CTEST_KOKKOS_DEVICE_TYPE"); + EXPECT_EQ(Kokkos::Impl::get_ctest_gpu("0"), 0); +} + +TEST_F(ctest_environment, no_process_count) { + unsetenv("CTEST_RESOURCE_GROUP_COUNT"); + EXPECT_EQ(Kokkos::Impl::get_ctest_gpu("0"), 0); +} + +TEST_F(ctest_environment, invalid_rank) { + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("10"), std::runtime_error, + "Error: local rank 10 is outside the bounds of resource groups provided " + "by" + " CTest. Raised by Kokkos::Impl::get_ctest_gpu().\nTraceback " + "functionality" + " not available\n"); +} + +TEST_F(ctest_environment, no_type_str) { + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("0"), std::runtime_error, + "Error: CTEST_RESOURCE_GROUP_0 is not specified. Raised by " + "Kokkos::Impl::get_ctest_gpu().\nTraceback functionality not " + "available\n"); +} + +TEST_F(ctest_environment, missing_type) { + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("1"), std::runtime_error, + "Error: device type 'gpus' not included in CTEST_RESOURCE_GROUP_1. " + "Raised " + "by Kokkos::Impl::get_ctest_gpu().\nTraceback functionality not available" + "\n"); + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("2"), std::runtime_error, + "Error: device type 'gpus' not included in CTEST_RESOURCE_GROUP_2. " + "Raised " + "by Kokkos::Impl::get_ctest_gpu().\nTraceback functionality not available" + "\n"); +} + +TEST_F(ctest_environment, no_id_str) { + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("3"), std::runtime_error, + "Error: CTEST_RESOURCE_GROUP_3_GPUS is not specified. Raised by " + "Kokkos::Impl::get_ctest_gpu().\nTraceback functionality not " + "available\n"); +} + +TEST_F(ctest_environment, invalid_id_str) { + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("4"), std::runtime_error, + "Error: invalid value of CTEST_RESOURCE_GROUP_4_GPUS: 'id:2'. Raised by " + "Kokkos::Impl::get_ctest_gpu().\nTraceback functionality not " + "available\n"); + EXPECT_THROW_WITH_MESSAGE( + Kokkos::Impl::get_ctest_gpu("5"), std::runtime_error, + "Error: invalid value of CTEST_RESOURCE_GROUP_5_GPUS: 'slots:1,id:2'. " + "Raised by Kokkos::Impl::get_ctest_gpu().\nTraceback functionality not " + "available\n"); +} + +TEST_F(ctest_environment, good) { + EXPECT_EQ(Kokkos::Impl::get_ctest_gpu("6"), 2); + EXPECT_EQ(Kokkos::Impl::get_ctest_gpu("7"), 3); + EXPECT_EQ(Kokkos::Impl::get_ctest_gpu("8"), 1); + EXPECT_EQ(Kokkos::Impl::get_ctest_gpu("9"), 4); +} diff --git a/lib/kokkos/core/unit_test/TestCXX11.hpp b/lib/kokkos/core/unit_test/TestCXX11.hpp index 876a3b5da80193356339d5f39ebf4a13b2877b17..405652b29e6d5ec68f16ab619ea7f31f1063f589 100644 --- a/lib/kokkos/core/unit_test/TestCXX11.hpp +++ b/lib/kokkos/core/unit_test/TestCXX11.hpp @@ -361,6 +361,7 @@ bool Test(int test) { return passed; #else + (void)test; return true; #endif } diff --git a/lib/kokkos/core/unit_test/TestCompilerMacros.hpp b/lib/kokkos/core/unit_test/TestCompilerMacros.hpp index e8daab9db606d0e1dbb606c63461ec2fee912a9b..c644daca0e24b7ea9d004e62a62c5fc68aa12185 100644 --- a/lib/kokkos/core/unit_test/TestCompilerMacros.hpp +++ b/lib/kokkos/core/unit_test/TestCompilerMacros.hpp @@ -44,10 +44,7 @@ #include -#if defined(KOKKOS_ENABLE_CUDA) && \ - (!defined(KOKKOS_ENABLE_CUDA_LAMBDA) || \ - ((defined(KOKKOS_ENABLE_SERIAL) || defined(KOKKOS_ENABLE_OPENMP)) && \ - ((CUDA_VERSION < 8000) && defined(__NVCC__)))) +#if defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_CUDA_LAMBDA) #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) #error "Macro bug: KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA shouldn't be defined" #endif diff --git a/lib/kokkos/core/unit_test/TestComplex.hpp b/lib/kokkos/core/unit_test/TestComplex.hpp index e049dcd17566a7ed9c800a5876e877c96cba28a7..2bb81052fea2158fbfd6a645e1df4b98465be8b8 100644 --- a/lib/kokkos/core/unit_test/TestComplex.hpp +++ b/lib/kokkos/core/unit_test/TestComplex.hpp @@ -84,8 +84,9 @@ struct TestComplexConstruction { ASSERT_FLOAT_EQ(h_results(8).real(), double(8)); ASSERT_FLOAT_EQ(h_results(8).imag(), 0.0); -#ifndef KOKKOS_ENABLE_ROCM // Copy construction conversion between - // Kokkos::complex and std::complex doesn't compile + // Copy construction conversion between + // Kokkos::complex and std::complex doesn't compile +#ifndef KOKKOS_ENABLE_HIP // FIXME_HIP Kokkos::complex a(1.5, 2.5), b(3.25, 5.25), r_kk; std::complex sa(a), sb(3.25, 5.25), r; r = a; @@ -104,7 +105,7 @@ struct TestComplexConstruction { } KOKKOS_INLINE_FUNCTION - void operator()(const int &i) const { + void operator()(const int & /*i*/) const { Kokkos::complex a(1.5, 2.5); d_results(0) = a; Kokkos::complex b(a); @@ -164,8 +165,10 @@ struct TestComplexBasicMath { ASSERT_FLOAT_EQ(h_results(2).real(), r.real()); ASSERT_FLOAT_EQ(h_results(2).imag(), r.imag()); r = a / b; +#ifndef KOKKOS_WORKAROUND_OPENMPTARGET_CLANG ASSERT_FLOAT_EQ(h_results(3).real(), r.real()); ASSERT_FLOAT_EQ(h_results(3).imag(), r.imag()); +#endif r = d + a; ASSERT_FLOAT_EQ(h_results(4).real(), r.real()); ASSERT_FLOAT_EQ(h_results(4).imag(), r.imag()); @@ -212,8 +215,10 @@ struct TestComplexBasicMath { ASSERT_FLOAT_EQ(h_results(18).real(), r.real()); ASSERT_FLOAT_EQ(h_results(18).imag(), r.imag()); r = c / a; +#ifndef KOKKOS_WORKAROUND_OPENMPTARGET_CLANG ASSERT_FLOAT_EQ(h_results(19).real(), r.real()); ASSERT_FLOAT_EQ(h_results(19).imag(), r.imag()); +#endif r = a; /* r = a+e; */ ASSERT_FLOAT_EQ(h_results(20).real(), r.real() + e); @@ -227,7 +232,7 @@ struct TestComplexBasicMath { } KOKKOS_INLINE_FUNCTION - void operator()(const int &i) const { + void operator()(const int & /*i*/) const { Kokkos::complex a(1.5, 2.5); Kokkos::complex b(3.25, 5.75); // Basic math complex / complex @@ -320,7 +325,7 @@ struct TestComplexSpecialFunctions { } KOKKOS_INLINE_FUNCTION - void operator()(const int &i) const { + void operator()(const int & /*i*/) const { Kokkos::complex a(1.5, 2.5); Kokkos::complex b(3.25, 5.75); double c = 9.3; @@ -356,4 +361,41 @@ TEST(TEST_CATEGORY, complex_special_funtions) { TEST(TEST_CATEGORY, complex_io) { testComplexIO(); } +TEST(TEST_CATEGORY, complex_trivially_copyable) { + using RealType = double; + + // Kokkos::complex is trivially copyable when RealType is + // trivially copyable + // Simply disable the check for IBM's XL compiler since we can't reliably + // check for a version that defines relevant functions. +#if !defined(__ibmxl__) + // clang claims compatibility with gcc 4.2.1 but all versions tested know + // about std::is_trivially_copyable. +#if !defined(__clang__) +#define KOKKOS_COMPILER_GNU_VERSION \ + __GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ +#endif +#if KOKKOS_COMPILER_GNU_VERSION == 0 || KOKKOS_COMPILER_GNU_VERSION > 500 + ASSERT_TRUE(std::is_trivially_copyable>::value || + !std::is_trivially_copyable::value); +#elif KOKKOS_COMPILER_GNU_VERSION > 480 + ASSERT_TRUE( + (std::has_trivial_copy_constructor>::value && + std::has_trivial_copy_assign>::value && + std::is_trivially_destructible>::value) || + !(std::has_trivial_copy_constructor::value && + std::has_trivial_copy_assign::value && + std::is_trivially_destructible::value)); +#else + ASSERT_TRUE( + (std::has_trivial_copy_constructor>::value && + std::has_trivial_copy_assign>::value && + std::has_trivial_destructor>::value) || + !(std::has_trivial_copy_constructor::value && + std::has_trivial_copy_assign::value && + std::has_trivial_destructor::value)); +#endif +#endif +} + } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestConcepts.hpp b/lib/kokkos/core/unit_test/TestConcepts.hpp new file mode 100644 index 0000000000000000000000000000000000000000..dcd4d948a65e51eae8957d51e36cd181270edf9e --- /dev/null +++ b/lib/kokkos/core/unit_test/TestConcepts.hpp @@ -0,0 +1,81 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include + +namespace TestConcept { + +using ExecutionSpace = TEST_EXECSPACE; +using MemorySpace = typename ExecutionSpace::memory_space; +using DeviceType = typename ExecutionSpace::device_type; + +static_assert(Kokkos::is_execution_space{}, ""); +static_assert(Kokkos::is_execution_space{}, ""); +static_assert(!Kokkos::is_execution_space{}, ""); +static_assert(!Kokkos::is_execution_space{}, ""); + +static_assert(Kokkos::is_memory_space{}, ""); +static_assert(Kokkos::is_memory_space{}, ""); +static_assert(!Kokkos::is_memory_space{}, ""); +static_assert(!Kokkos::is_memory_space{}, ""); + +static_assert(Kokkos::is_device{}, ""); +static_assert(Kokkos::is_device{}, ""); +static_assert(!Kokkos::is_device{}, ""); +static_assert(!Kokkos::is_device{}, ""); + +static_assert(!Kokkos::is_device{}, ""); +static_assert(!Kokkos::is_device{}, ""); + +static_assert(Kokkos::is_space{}, ""); +static_assert(Kokkos::is_space{}, ""); +static_assert(Kokkos::is_space{}, ""); +static_assert(Kokkos::is_space{}, ""); +static_assert(Kokkos::is_space{}, ""); +static_assert(Kokkos::is_space{}, ""); +static_assert(!Kokkos::is_space{}, ""); +static_assert(!Kokkos::is_space{}, ""); +static_assert(!Kokkos::is_space{}, ""); + +} // namespace TestConcept diff --git a/lib/kokkos/core/unit_test/TestCrs.hpp b/lib/kokkos/core/unit_test/TestCrs.hpp index 580710960191f306d152835c5ddd600fa0a24a31..296235aad01fe689e2252a9bcbfe2fc3fa693abe 100644 --- a/lib/kokkos/core/unit_test/TestCrs.hpp +++ b/lib/kokkos/core/unit_test/TestCrs.hpp @@ -53,7 +53,7 @@ namespace { template struct CountFillFunctor { KOKKOS_INLINE_FUNCTION - std::int32_t operator()(std::int32_t row, std::int32_t *fill) const { + std::int32_t operator()(std::int32_t row, float *fill) const { auto n = (row % 4) + 1; if (fill) { for (std::int32_t j = 0; j < n; ++j) { @@ -153,7 +153,7 @@ struct RunUpdateCrsTest { template void test_count_fill(std::int32_t nrows) { - Kokkos::Crs graph; + Kokkos::Crs graph; Kokkos::count_and_fill_crs(graph, nrows, CountFillFunctor()); ASSERT_EQ(graph.numRows(), nrows); auto row_map = Kokkos::create_mirror_view(graph.row_map); @@ -176,12 +176,12 @@ void test_count_fill(std::int32_t nrows) { template void test_constructor(std::int32_t nrows) { for (int nTest = 1; nTest < 5; nTest++) { - typedef Kokkos::Crs crs_int32; - crs_int32 graph; + typedef Kokkos::Crs crs_type; + crs_type graph; Kokkos::count_and_fill_crs(graph, nrows, CountFillFunctor()); ASSERT_EQ(graph.numRows(), nrows); - RunUpdateCrsTest crstest(graph); + RunUpdateCrsTest crstest(graph); crstest.run_test(nTest); auto row_map = Kokkos::create_mirror_view(graph.row_map); diff --git a/lib/kokkos/core/unit_test/TestDeepCopy.hpp b/lib/kokkos/core/unit_test/TestDeepCopy.hpp index a7e80cef366742e4a78bdb74f5943eebc6dd2da0..56c259ff6a3f3f10825320020eb82dbfa300bccf 100644 --- a/lib/kokkos/core/unit_test/TestDeepCopy.hpp +++ b/lib/kokkos/core/unit_test/TestDeepCopy.hpp @@ -2,6 +2,7 @@ namespace Test { +#ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA namespace Impl { template struct TestDeepCopy { @@ -210,5 +211,149 @@ TEST(TEST_CATEGORY, deep_copy_alignment) { Kokkos::HostSpace>::run_test(100000); } } +#endif +// KOKKOS_IMPL_HIP_CLANG_WORKAROUND +#ifndef KOKKOS_ENABLE_HIP +namespace Impl { +template +struct TestDeepCopyScalarConversion { + struct TagFill {}; + struct TagCompare {}; + + using view_type_s1_1d = Kokkos::View; + using view_type_s2_1d = Kokkos::View; + using view_type_s1_2d = Kokkos::View; + using view_type_s2_2d = Kokkos::View; + + using base_layout1 = typename std::conditional< + std::is_same::value, Kokkos::LayoutLeft, + Layout1>::type; + using base_layout2 = typename std::conditional< + std::is_same::value, Kokkos::LayoutLeft, + Layout2>::type; + + using base_type_s1_1d = Kokkos::View; + using base_type_s2_1d = Kokkos::View; + using base_type_s1_2d = Kokkos::View; + using base_type_s2_2d = Kokkos::View; + + view_type_s1_1d view_s1_1d; + view_type_s2_1d view_s2_1d; + view_type_s1_2d view_s1_2d; + view_type_s2_2d view_s2_2d; + + Kokkos::View error_count; + + void create_views(int64_t N0, int64_t N1) { + base_type_s1_1d b_s1_1d("TestDeepCopyConversion::b_s1_1d", N0); + base_type_s2_1d b_s2_1d("TestDeepCopyConversion::b_s2_1d", N0); + base_type_s1_2d b_s1_2d("TestDeepCopyConversion::b_s1_2d", N0, N1); + base_type_s2_2d b_s2_2d("TestDeepCopyConversion::b_s2_2d", N0, N1); + + view_s1_1d = view_type_s1_1d(b_s1_1d, Kokkos::ALL); + view_s2_1d = view_type_s2_1d(b_s2_1d, Kokkos::ALL); + view_s1_2d = view_type_s1_2d(b_s1_2d, Kokkos::ALL, Kokkos::ALL); + view_s2_2d = view_type_s2_2d(b_s2_2d, Kokkos::ALL, Kokkos::ALL); + + error_count = Kokkos::View( + "TestDeepCopyConversion::error_count"); + } + + KOKKOS_FUNCTION + void operator()(TagFill, const int64_t i) const { + view_s2_1d(i) = static_cast(i + 1); + for (int64_t j = 0; j < static_cast(view_s2_2d.extent(1)); j++) + view_s2_2d(i, j) = static_cast((i + 1) * 1000 + j + 1); + } + + KOKKOS_FUNCTION + void operator()(TagCompare, const int64_t i) const { + int64_t errors = 0; + if (view_s1_1d(i) != static_cast(static_cast(i + 1))) + errors++; + for (int64_t j = 0; j < static_cast(view_s1_2d.extent(1)); j++) { + if (view_s1_2d(i, j) != + static_cast(static_cast((i + 1) * 1000 + j + 1))) + errors++; + } + if (errors > 0) Kokkos::atomic_add(&error_count(), errors); + } + + void run_tests(int64_t N0, int64_t N1) { + create_views(N0, N1); + + Kokkos::parallel_for("TestDeepCopyConversion::Fill", + Kokkos::RangePolicy>(0, N0), + *this); + + Kokkos::deep_copy(view_s1_1d, view_s2_1d); + Kokkos::deep_copy(view_s1_2d, view_s2_2d); + + Kokkos::parallel_for("TestDeepCopyConversion::Compare", + Kokkos::RangePolicy>(0, N0), + *this); + + int64_t errors = 0; + Kokkos::deep_copy(errors, error_count); + ASSERT_TRUE(errors == 0); + + Kokkos::deep_copy(view_s1_1d, static_cast(0)); + Kokkos::deep_copy(view_s1_2d, static_cast(0)); + + Kokkos::parallel_for("TestDeepCopyConversion::Compare", + Kokkos::RangePolicy>(0, N0), + *this); + Kokkos::deep_copy(errors, error_count); + ASSERT_TRUE(errors > 0); + + Kokkos::deep_copy(error_count, 0); + Kokkos::deep_copy(TEST_EXECSPACE(), view_s1_1d, view_s2_1d); + Kokkos::deep_copy(TEST_EXECSPACE(), view_s1_2d, view_s2_2d); + + Kokkos::parallel_for("TestDeepCopyConversion::Compare", + Kokkos::RangePolicy>(0, N0), + *this); + + Kokkos::deep_copy(errors, error_count); + ASSERT_TRUE(errors == 0); + } +}; +} // namespace Impl + +TEST(TEST_CATEGORY, deep_copy_conversion) { + int64_t N0 = 19381; + int64_t N1 = 17; + + using right = Kokkos::LayoutRight; + using left = Kokkos::LayoutLeft; + using stride = Kokkos::LayoutStride; + + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); + Impl::TestDeepCopyScalarConversion().run_tests( + N0, N1); +} +#endif } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp b/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp index 9bca373a407bc0bd2676a65ea0ff59ce3043170d..c776481c706878f674ced031a7eecbe28223383d 100644 --- a/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp +++ b/lib/kokkos/core/unit_test/TestLocalDeepCopy.hpp @@ -934,7 +934,6 @@ void impl_test_local_deepcopy_rangepolicy_rank_7(const int N) { //------------------------------------------------------------------------------------------------------------- #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST(TEST_CATEGORY, local_deepcopy_teampolicy_layoutleft) { typedef TEST_EXECSPACE ExecSpace; typedef Kokkos::View ViewType; @@ -1043,5 +1042,73 @@ TEST(TEST_CATEGORY, local_deepcopy_rangepolicy_layoutright) { } } #endif -#endif + +namespace Impl { +template +using ShMemView = + Kokkos::View; + +struct DeepCopyScratchFunctor { + DeepCopyScratchFunctor( + Kokkos::View check_view_1, + Kokkos::View check_view_2) + : check_view_1_(check_view_1), + check_view_2_(check_view_2), + N_(check_view_1.extent(0)) {} + + KOKKOS_INLINE_FUNCTION void operator()( + Kokkos::TeamPolicy>::member_type team) + const { + using ShmemType = TEST_EXECSPACE::scratch_memory_space; + auto shview = + Impl::ShMemView(team.team_scratch(1), N_, 1); + + Kokkos::parallel_for( + Kokkos::TeamThreadRange(team, N_), KOKKOS_LAMBDA(const size_t& index) { + auto thread_shview = Kokkos::subview(shview, index, Kokkos::ALL()); + Kokkos::Experimental::local_deep_copy(thread_shview, index); + }); + Kokkos::Experimental::local_deep_copy( + team, check_view_1_, Kokkos::subview(shview, Kokkos::ALL(), 0)); + + Kokkos::Experimental::local_deep_copy(team, shview, 6.); + Kokkos::Experimental::local_deep_copy( + team, check_view_2_, Kokkos::subview(shview, Kokkos::ALL(), 0)); + } + + Kokkos::View check_view_1_; + Kokkos::View check_view_2_; + int const N_; +}; +} // namespace Impl + +TEST(TEST_CATEGORY, deep_copy_scratch) { + using TestDeviceTeamPolicy = Kokkos::TeamPolicy; + + const int N = 8; + const int bytes_per_team = + Impl::ShMemView::shmem_size(N, 1); + + TestDeviceTeamPolicy policy(1, Kokkos::AUTO); + auto team_exec = policy.set_scratch_size(1, Kokkos::PerTeam(bytes_per_team)); + + Kokkos::View check_view_1("check_1", + N); + Kokkos::View check_view_2("check_2", + N); + + Kokkos::parallel_for( + team_exec, Impl::DeepCopyScratchFunctor{check_view_1, check_view_2}); + auto host_copy_1 = + Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), check_view_1); + auto host_copy_2 = + Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), check_view_2); + + for (unsigned int i = 0; i < N; ++i) { + ASSERT_EQ(host_copy_1(i), i); + ASSERT_EQ(host_copy_2(i), 6.0); + } +} } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestMDRange.hpp b/lib/kokkos/core/unit_test/TestMDRange.hpp index 1e1bd869ca0857dac84521403b5f426df223534a..c4288f21a111a297dd7f973781853c46d1560bb8 100644 --- a/lib/kokkos/core/unit_test/TestMDRange.hpp +++ b/lib/kokkos/core/unit_test/TestMDRange.hpp @@ -256,7 +256,6 @@ struct TestMDRange_2D { static void test_reduce2(const int N0, const int N1) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -269,13 +268,12 @@ struct TestMDRange_2D { double sum = 0.0; parallel_reduce( range, - KOKKOS_LAMBDA(const int i, const int j, double &lsum) { + KOKKOS_LAMBDA(const int /*i*/, const int /*j*/, double &lsum) { lsum += 1.0; }, sum); ASSERT_EQ(sum, N0 * N1); } -#endif #endif { @@ -361,7 +359,6 @@ struct TestMDRange_2D { } // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -387,7 +384,6 @@ struct TestMDRange_2D { ASSERT_EQ(min, 4.0); } -#endif #endif // Tagged operator test { @@ -532,7 +528,6 @@ struct TestMDRange_2D { static void test_for2(const int N0, const int N1) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -571,7 +566,6 @@ struct TestMDRange_2D { ASSERT_EQ(counter, 0); } -#endif #endif { @@ -909,7 +903,6 @@ struct TestMDRange_3D { static void test_reduce3(const int N0, const int N1, const int N2) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -922,13 +915,11 @@ struct TestMDRange_3D { double sum = 0.0; parallel_reduce( range, - KOKKOS_LAMBDA(const int i, const int j, const int k, double &lsum) { - lsum += 1.0; - }, + KOKKOS_LAMBDA(const int /*i*/, const int /*j*/, const int /*k*/, + double &lsum) { lsum += 1.0; }, sum); ASSERT_EQ(sum, N0 * N1 * N2); } -#endif #endif { @@ -1013,7 +1004,6 @@ struct TestMDRange_3D { } // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -1046,7 +1036,6 @@ struct TestMDRange_3D { ASSERT_EQ(min, min_identity); } } -#endif #endif // Tagged operator test @@ -1193,7 +1182,6 @@ struct TestMDRange_3D { static void test_for3(const int N0, const int N1, const int N2) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -1236,7 +1224,6 @@ struct TestMDRange_3D { ASSERT_EQ(counter, 0); } -#endif #endif { @@ -1549,7 +1536,6 @@ struct TestMDRange_4D { static void test_reduce4(const int N0, const int N1, const int N2, const int N3) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -1562,12 +1548,11 @@ struct TestMDRange_4D { double sum = 0.0; parallel_reduce( range, - KOKKOS_LAMBDA(const int i, const int j, const int k, const int l, - double &lsum) { lsum += 1.0; }, + KOKKOS_LAMBDA(const int /*i*/, const int /*j*/, const int /*k*/, + const int /*l*/, double &lsum) { lsum += 1.0; }, sum); ASSERT_EQ(sum, N0 * N1 * N2 * N3); } -#endif #endif { @@ -1656,7 +1641,6 @@ struct TestMDRange_4D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -1684,7 +1668,6 @@ struct TestMDRange_4D { ASSERT_EQ(min, 16.0); } -#endif #endif // Tagged operator test @@ -1834,7 +1817,6 @@ struct TestMDRange_4D { static void test_for4(const int N0, const int N1, const int N2, const int N3) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -1878,7 +1860,6 @@ struct TestMDRange_4D { ASSERT_EQ(counter, 0); } -#endif #endif { @@ -2206,7 +2187,6 @@ struct TestMDRange_5D { static void test_reduce5(const int N0, const int N1, const int N2, const int N3, const int N4) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -2220,12 +2200,12 @@ struct TestMDRange_5D { double sum = 0.0; parallel_reduce( range, - KOKKOS_LAMBDA(const int i, const int j, const int k, const int l, - const int m, double &lsum) { lsum += 1.0; }, + KOKKOS_LAMBDA(const int /*i*/, const int /*j*/, const int /*k*/, + const int /*l*/, const int /*m*/, + double &lsum) { lsum += 1.0; }, sum); ASSERT_EQ(sum, N0 * N1 * N2 * N3 * N4); } -#endif #endif { @@ -2320,7 +2300,6 @@ struct TestMDRange_5D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -2352,7 +2331,6 @@ struct TestMDRange_5D { ASSERT_EQ(min, 32.0); } -#endif #endif // Tagged operator test @@ -2404,7 +2382,6 @@ struct TestMDRange_5D { static void test_for5(const int N0, const int N1, const int N2, const int N3, const int N4) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -2452,7 +2429,6 @@ struct TestMDRange_5D { ASSERT_EQ(counter, 0); } -#endif #endif { @@ -2798,7 +2774,6 @@ struct TestMDRange_6D { static void test_reduce6(const int N0, const int N1, const int N2, const int N3, const int N4, const int N5) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -2812,13 +2787,12 @@ struct TestMDRange_6D { double sum = 0.0; parallel_reduce( range, - KOKKOS_LAMBDA(const int i, const int j, const int k, const int l, - const int m, const int n, + KOKKOS_LAMBDA(const int /*i*/, const int /*j*/, const int /*k*/, + const int /*l*/, const int /*m*/, const int /*n*/, double &lsum) { lsum += 1.0; }, sum); ASSERT_EQ(sum, N0 * N1 * N2 * N3 * N4 * N5); } -#endif #endif { @@ -2914,7 +2888,6 @@ struct TestMDRange_6D { // Test Min reducer with lambda #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -2948,7 +2921,6 @@ struct TestMDRange_6D { ASSERT_EQ(min, 64.0); } -#endif #endif // Tagged operator test @@ -3001,7 +2973,6 @@ struct TestMDRange_6D { static void test_for6(const int N0, const int N1, const int N2, const int N3, const int N4, const int N5) { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) { typedef typename Kokkos::MDRangePolicy, Kokkos::IndexType > @@ -3051,7 +3022,6 @@ struct TestMDRange_6D { ASSERT_EQ(counter, 0); } -#endif #endif { diff --git a/lib/kokkos/core/unit_test/TestMemoryPool.hpp b/lib/kokkos/core/unit_test/TestMemoryPool.hpp index bc78a2908ed316f1c48a645c75fea8b5abbd1337..cc18a90305171640a8ecb02cabd970939ecc90f5 100644 --- a/lib/kokkos/core/unit_test/TestMemoryPool.hpp +++ b/lib/kokkos/core/unit_test/TestMemoryPool.hpp @@ -162,10 +162,10 @@ void test_host_memory_pool_stats() { // Aborts because exceeds max block size: // void * p2048 = pool.allocate(2048); - ASSERT_NE(p0064, (void*)0); - ASSERT_NE(p0128, (void*)0); - ASSERT_NE(p0256, (void*)0); - ASSERT_NE(p1024, (void*)0); + ASSERT_NE(p0064, nullptr); + ASSERT_NE(p0128, nullptr); + ASSERT_NE(p0256, nullptr); + ASSERT_NE(p1024, nullptr); pool.deallocate(p0064, 64); pool.deallocate(p0128, 128); @@ -475,17 +475,15 @@ void test_memory_pool_corners(const bool print_statistics, template struct TestMemoryPoolHuge { - TestMemoryPoolHuge() {} - enum : size_t { num_superblock = 0 }; using value_type = long; KOKKOS_INLINE_FUNCTION - void operator()(int i, long& err) const noexcept {} + void operator()(int /*i*/, long& /*err*/) const noexcept {} KOKKOS_INLINE_FUNCTION - void operator()(int i) const noexcept {} + void operator()(int /*i*/) const noexcept {} }; template diff --git a/lib/kokkos/core/unit_test/TestRange.hpp b/lib/kokkos/core/unit_test/TestRange.hpp index 1fd6a508f783a6126cea57a998c53b4c509533c1..9bd13ad23958f1ce0a8c8897d10b73af00894f65 100644 --- a/lib/kokkos/core/unit_test/TestRange.hpp +++ b/lib/kokkos/core/unit_test/TestRange.hpp @@ -54,9 +54,10 @@ template struct TestRange { typedef int value_type; ///< typedef required for the parallel_reduce - typedef Kokkos::View view_type; + typedef Kokkos::View view_type; view_type m_flags; + view_type result_view; struct VerifyInitTag {}; struct ResetTag {}; @@ -65,9 +66,19 @@ struct TestRange { struct VerifyOffsetTag {}; int N; +#ifndef KOKKOS_WORKAROUND_OPENMPTARGET_GCC static const int offset = 13; +#else + int offset; +#endif TestRange(const size_t N_) - : m_flags(Kokkos::ViewAllocateWithoutInitializing("flags"), N_), N(N_) {} + : m_flags(Kokkos::ViewAllocateWithoutInitializing("flags"), N_), + result_view(Kokkos::ViewAllocateWithoutInitializing("results"), N_), + N(N_) { +#ifdef KOKKOS_WORKAROUND_OPENMPTARGET_GCC + offset = 13; +#endif + } void test_for() { typename view_type::HostMirror host_flags = @@ -185,7 +196,7 @@ struct TestRange { //---------------------------------------- void test_reduce() { - int total = 0; + value_type total = 0; Kokkos::parallel_for(Kokkos::RangePolicy(0, N), *this); @@ -220,15 +231,31 @@ struct TestRange { Kokkos::parallel_for(Kokkos::RangePolicy(0, N), *this); + auto check_scan_results = [&]() { + auto const host_mirror = + Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), result_view); + for (int i = 0; i < N; ++i) { + if (((i + 1) * i) / 2 != host_mirror(i)) { + std::cout << "Error at " << i << std::endl; + EXPECT_EQ(size_t(((i + 1) * i) / 2), size_t(host_mirror(i))); + } + } + }; + Kokkos::parallel_scan( "TestKernelScan", Kokkos::RangePolicy(0, N), *this); - int total = 0; + check_scan_results(); + + value_type total = 0; Kokkos::parallel_scan( "TestKernelScanWithTotal", Kokkos::RangePolicy(0, N), *this, total); + + check_scan_results(); + ASSERT_EQ(size_t((N - 1) * (N) / 2), size_t(total)); // sum( 0 .. N-1 ) } @@ -239,16 +266,16 @@ struct TestRange { if (final) { if (update != (i * (i + 1)) / 2) { - printf("TestRange::test_scan error %d : %d != %d\n", i, - (i * (i + 1)) / 2, m_flags(i)); + printf("TestRange::test_scan error (%d,%d) : %d != %d\n", i, m_flags(i), + (i * (i + 1)) / 2, update); } + result_view(i) = update; } } void test_dynamic_policy() { - auto const N_no_implicit_capture = N; #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) + auto const N_no_implicit_capture = N; typedef Kokkos::RangePolicy > policy_t; @@ -273,7 +300,7 @@ struct TestRange { int error = 0; Kokkos::parallel_reduce( Kokkos::RangePolicy(0, N), - KOKKOS_LAMBDA(const int &i, int &lsum) { + KOKKOS_LAMBDA(const int &i, value_type &lsum) { lsum += (a(i) != (i < N_no_implicit_capture / 2 ? 1 : 10000)); }, error); @@ -300,10 +327,10 @@ struct TestRange { count("Count", ExecSpace::concurrency()); Kokkos::View a("A", N); - int sum = 0; + value_type sum = 0; Kokkos::parallel_reduce( policy_t(0, N), - KOKKOS_LAMBDA(const int &i, int &lsum) { + KOKKOS_LAMBDA(const int &i, value_type &lsum) { for (int k = 0; k < (i < N_no_implicit_capture / 2 ? 1 : 10000); k++) { a(i)++; @@ -321,7 +348,7 @@ struct TestRange { int error = 0; Kokkos::parallel_reduce( Kokkos::RangePolicy(0, N), - KOKKOS_LAMBDA(const int &i, int &lsum) { + KOKKOS_LAMBDA(const int &i, value_type &lsum) { lsum += (a(i) != (i < N_no_implicit_capture / 2 ? 1 : 10000)); }, error); @@ -342,7 +369,6 @@ struct TestRange { //} } } -#endif #endif } }; @@ -417,7 +443,7 @@ TEST(TEST_CATEGORY, range_scan) { TestRange > f(0); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_ROCM) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) { TestRange > f(0); f.test_dynamic_policy(); @@ -432,7 +458,7 @@ TEST(TEST_CATEGORY, range_scan) { TestRange > f(3); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_ROCM) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) { TestRange > f(3); f.test_dynamic_policy(); @@ -447,7 +473,7 @@ TEST(TEST_CATEGORY, range_scan) { TestRange > f(1001); f.test_scan(); } -#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_ROCM) +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) { TestRange > f(1001); f.test_dynamic_policy(); diff --git a/lib/kokkos/core/unit_test/TestRangeRequire.hpp b/lib/kokkos/core/unit_test/TestRangeRequire.hpp new file mode 100644 index 0000000000000000000000000000000000000000..a75af0b95b812cdafe317350f4a6d3683a27d97b --- /dev/null +++ b/lib/kokkos/core/unit_test/TestRangeRequire.hpp @@ -0,0 +1,518 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include + +#include + +// This file is largely duplicating TestRange.hpp but it applies +// Kokkos::Experimental require at every place where a parallel +// operation is executed. + +namespace Test { + +namespace { + +template +struct TestRangeRequire { + typedef int value_type; ///< typedef required for the parallel_reduce + + typedef Kokkos::View view_type; + + view_type m_flags; + + struct VerifyInitTag {}; + struct ResetTag {}; + struct VerifyResetTag {}; + struct OffsetTag {}; + struct VerifyOffsetTag {}; + + int N; + static const int offset = 13; + TestRangeRequire(const size_t N_) + : m_flags(Kokkos::ViewAllocateWithoutInitializing("flags"), N_), N(N_) {} + + void test_for() { + typename view_type::HostMirror host_flags = + Kokkos::create_mirror_view(m_flags); + + Kokkos::parallel_for( + Kokkos::Experimental::require( + Kokkos::RangePolicy(0, N), Property()), + *this); + +#if defined(KOKKOS_ENABLE_PROFILING) + { + typedef TestRangeRequire ThisType; + std::string label("parallel_for"); + Kokkos::Impl::ParallelConstructName pcn(label); + ASSERT_EQ(pcn.get(), label); + std::string empty_label(""); + Kokkos::Impl::ParallelConstructName empty_pcn( + empty_label); + ASSERT_EQ(empty_pcn.get(), typeid(ThisType).name()); + } +#endif + + Kokkos::parallel_for( + Kokkos::Experimental::require( + Kokkos::RangePolicy(0, N), + Property()), + *this); + +#if defined(KOKKOS_ENABLE_PROFILING) + { + typedef TestRangeRequire ThisType; + std::string label("parallel_for"); + Kokkos::Impl::ParallelConstructName pcn(label); + ASSERT_EQ(pcn.get(), label); + std::string empty_label(""); + Kokkos::Impl::ParallelConstructName empty_pcn( + empty_label); + ASSERT_EQ(empty_pcn.get(), std::string(typeid(ThisType).name()) + "/" + + typeid(VerifyInitTag).name()); + } +#endif + + Kokkos::deep_copy(host_flags, m_flags); + + int error_count = 0; + for (int i = 0; i < N; ++i) { + if (int(i) != host_flags(i)) ++error_count; + } + ASSERT_EQ(error_count, int(0)); + + Kokkos::parallel_for( + Kokkos::Experimental::require( + Kokkos::RangePolicy(0, N), + Property()), + *this); + Kokkos::parallel_for( + std::string("TestKernelFor"), + Kokkos::Experimental::require( + Kokkos::RangePolicy(0, N), + Property()), + *this); + + Kokkos::deep_copy(host_flags, m_flags); + + error_count = 0; + for (int i = 0; i < N; ++i) { + if (int(2 * i) != host_flags(i)) ++error_count; + } + ASSERT_EQ(error_count, int(0)); + + Kokkos::parallel_for( + Kokkos::Experimental::require( + Kokkos::RangePolicy(offset, + N + offset), + Property()), + *this); + Kokkos::parallel_for( + std::string("TestKernelFor"), + Kokkos::Experimental::require( + Kokkos::RangePolicy, + VerifyOffsetTag>(0, N), + Property()), + *this); + + Kokkos::deep_copy(host_flags, m_flags); + + error_count = 0; + for (int i = 0; i < N; ++i) { + if (i + offset != host_flags(i)) ++error_count; + } + ASSERT_EQ(error_count, int(0)); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { m_flags(i) = i; } + + KOKKOS_INLINE_FUNCTION + void operator()(const VerifyInitTag &, const int i) const { + if (i != m_flags(i)) { + printf("TestRangeRequire::test_for error at %d != %d\n", i, m_flags(i)); + } + } + + KOKKOS_INLINE_FUNCTION + void operator()(const ResetTag &, const int i) const { + m_flags(i) = 2 * m_flags(i); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const VerifyResetTag &, const int i) const { + if (2 * i != m_flags(i)) { + printf("TestRangeRequire::test_for error at %d != %d\n", i, m_flags(i)); + } + } + + KOKKOS_INLINE_FUNCTION + void operator()(const OffsetTag &, const int i) const { + m_flags(i - offset) = i; + } + + KOKKOS_INLINE_FUNCTION + void operator()(const VerifyOffsetTag &, const int i) const { + if (i + offset != m_flags(i)) { + printf("TestRangeRequire::test_for error at %d != %d\n", i + offset, + m_flags(i)); + } + } + + //---------------------------------------- + + void test_reduce() { + int total = 0; + + Kokkos::parallel_for( + Kokkos::Experimental::require( + Kokkos::RangePolicy(0, N), Property()), + *this); + + Kokkos::parallel_reduce( + "TestKernelReduce", + Kokkos::Experimental::require( + Kokkos::RangePolicy(0, N), Property()), + *this, total); + // sum( 0 .. N-1 ) + ASSERT_EQ(size_t((N - 1) * (N) / 2), size_t(total)); + + Kokkos::parallel_reduce( + Kokkos::Experimental::require( + Kokkos::RangePolicy(offset, + N + offset), + Property()), + *this, total); + // sum( 1 .. N ) + ASSERT_EQ(size_t((N) * (N + 1) / 2), size_t(total)); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, value_type &update) const { + update += m_flags(i); + } + + KOKKOS_INLINE_FUNCTION + void operator()(const OffsetTag &, const int i, value_type &update) const { + update += 1 + m_flags(i - offset); + } + + //---------------------------------------- + + void test_scan() { + Kokkos::parallel_for(Kokkos::RangePolicy(0, N), + *this); + + Kokkos::parallel_scan( + "TestKernelScan", + Kokkos::RangePolicy(0, N), *this); + + int total = 0; + Kokkos::parallel_scan( + "TestKernelScanWithTotal", + Kokkos::RangePolicy(0, N), *this, + total); + ASSERT_EQ(size_t((N - 1) * (N) / 2), size_t(total)); // sum( 0 .. N-1 ) + } + + KOKKOS_INLINE_FUNCTION + void operator()(const OffsetTag &, const int i, value_type &update, + bool final) const { + update += m_flags(i); + + if (final) { + if (update != (i * (i + 1)) / 2) { + printf("TestRangeRequire::test_scan error %d : %d != %d\n", i, + (i * (i + 1)) / 2, m_flags(i)); + } + } + } + + void test_dynamic_policy() { +#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) + auto const N_no_implicit_capture = N; + typedef Kokkos::RangePolicy > + policy_t; + + { + Kokkos::View > + count("Count", ExecSpace::concurrency()); + Kokkos::View a("A", N); + + Kokkos::parallel_for( + policy_t(0, N), KOKKOS_LAMBDA(const int &i) { + for (int k = 0; k < (i < N_no_implicit_capture / 2 ? 1 : 10000); + k++) { + a(i)++; + } +#ifdef KOKKOS_ENABLE_DEPRECATED_CODE + count(ExecSpace::hardware_thread_id())++; +#else + count( ExecSpace::impl_hardware_thread_id() )++; +#endif + }); + + int error = 0; + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, N), + KOKKOS_LAMBDA(const int &i, int &lsum) { + lsum += (a(i) != (i < N_no_implicit_capture / 2 ? 1 : 10000)); + }, + error); + ASSERT_EQ(error, 0); + + if ((ExecSpace::concurrency() > (int)1) && + (N > static_cast(4 * ExecSpace::concurrency()))) { + size_t min = N; + size_t max = 0; + for (int t = 0; t < ExecSpace::concurrency(); t++) { + if (count(t) < min) min = count(t); + if (count(t) > max) max = count(t); + } + ASSERT_TRUE(min < max); + + // if ( ExecSpace::concurrency() > 2 ) { + // ASSERT_TRUE( 2 * min < max ); + //} + } + } + + { + Kokkos::View > + count("Count", ExecSpace::concurrency()); + Kokkos::View a("A", N); + + int sum = 0; + Kokkos::parallel_reduce( + policy_t(0, N), + KOKKOS_LAMBDA(const int &i, int &lsum) { + for (int k = 0; k < (i < N_no_implicit_capture / 2 ? 1 : 10000); + k++) { + a(i)++; + } +#ifdef KOKKOS_ENABLE_DEPRECATED_CODE + count(ExecSpace::hardware_thread_id())++; +#else + count(ExecSpace::impl_hardware_thread_id())++; +#endif + lsum++; + }, + sum); + ASSERT_EQ(sum, N); + + int error = 0; + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, N), + KOKKOS_LAMBDA(const int &i, int &lsum) { + lsum += (a(i) != (i < N_no_implicit_capture / 2 ? 1 : 10000)); + }, + error); + ASSERT_EQ(error, 0); + + if ((ExecSpace::concurrency() > (int)1) && + (N > static_cast(4 * ExecSpace::concurrency()))) { + size_t min = N; + size_t max = 0; + for (int t = 0; t < ExecSpace::concurrency(); t++) { + if (count(t) < min) min = count(t); + if (count(t) > max) max = count(t); + } + ASSERT_TRUE(min < max); + + // if ( ExecSpace::concurrency() > 2 ) { + // ASSERT_TRUE( 2 * min < max ); + //} + } + } +#endif + } +}; + +} // namespace + +TEST(TEST_CATEGORY, range_for_require) { + using Property = Kokkos::Experimental::WorkItemProperty::HintLightWeight_t; + { + TestRangeRequire, Property> + f(0); + f.test_for(); + } + { + TestRangeRequire, + Property> + f(0); + f.test_for(); + } + + { + TestRangeRequire, Property> + f(2); + f.test_for(); + } + { + TestRangeRequire, + Property> + f(3); + f.test_for(); + } + + { + TestRangeRequire, Property> + f(1000); + f.test_for(); + } + { + TestRangeRequire, + Property> + f(1001); + f.test_for(); + } +} + +TEST(TEST_CATEGORY, range_reduce_require) { + using Property = Kokkos::Experimental::WorkItemProperty::HintLightWeight_t; + { + TestRangeRequire, Property> + f(0); + f.test_reduce(); + } + { + TestRangeRequire, + Property> + f(0); + f.test_reduce(); + } + + { + TestRangeRequire, Property> + f(2); + f.test_reduce(); + } + { + TestRangeRequire, + Property> + f(3); + f.test_reduce(); + } + + { + TestRangeRequire, Property> + f(1000); + f.test_reduce(); + } + { + TestRangeRequire, + Property> + f(1001); + f.test_reduce(); + } +} + +#ifndef KOKKOS_ENABLE_OPENMPTARGET +TEST(TEST_CATEGORY, range_scan_require) { + using Property = Kokkos::Experimental::WorkItemProperty::HintLightWeight_t; + { + TestRangeRequire, Property> + f(0); + f.test_scan(); + } + { + TestRangeRequire, + Property> + f(0); + f.test_scan(); + } +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) + { + TestRangeRequire, + Property> + f(0); + f.test_dynamic_policy(); + } +#endif + + { + TestRangeRequire, Property> + f(2); + f.test_scan(); + } + { + TestRangeRequire, + Property> + f(3); + f.test_scan(); + } +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) + { + TestRangeRequire, + Property> + f(3); + f.test_dynamic_policy(); + } +#endif + + { + TestRangeRequire, Property> + f(1000); + f.test_scan(); + } + { + TestRangeRequire, + Property> + f(1001); + f.test_scan(); + } +#if !defined(KOKKOS_ENABLE_CUDA) && !defined(KOKKOS_ENABLE_HIP) + { + TestRangeRequire, + Property> + f(1001); + f.test_dynamic_policy(); + } +#endif +} +#endif +} // namespace Test diff --git a/lib/kokkos/core/unit_test/TestReduce.hpp b/lib/kokkos/core/unit_test/TestReduce.hpp index 6c518429a05c8bda0df9ad89ddddb14a4446a686..d63d5e8d4a75d5c29d4b2afadaeadb1790f77ba6 100644 --- a/lib/kokkos/core/unit_test/TestReduce.hpp +++ b/lib/kokkos/core/unit_test/TestReduce.hpp @@ -95,12 +95,12 @@ class ReduceFunctor { }; template -class ReduceFunctorFinal : public ReduceFunctor { +class ReduceFunctorFinal : public ReduceFunctor { public: - typedef typename ReduceFunctor::value_type value_type; + typedef typename ReduceFunctor::value_type value_type; KOKKOS_INLINE_FUNCTION - ReduceFunctorFinal(const size_t n) : ReduceFunctor(n) {} + ReduceFunctorFinal(const size_t n) : ReduceFunctor(n) {} KOKKOS_INLINE_FUNCTION void final(value_type& dst) const { @@ -198,11 +198,11 @@ class RuntimeReduceMinMax { template class RuntimeReduceFunctorFinal - : public RuntimeReduceFunctor { + : public RuntimeReduceFunctor { public: - typedef RuntimeReduceFunctor base_type; + typedef RuntimeReduceFunctor base_type; typedef typename base_type::value_type value_type; - typedef long scalar_type; + typedef int64_t scalar_type; RuntimeReduceFunctorFinal(const size_t theNwork, const size_t count) : base_type(theNwork, count) {} @@ -237,9 +237,8 @@ class TestReduce { value_type result[Repeat]; - const unsigned long nw = nwork; - const unsigned long nsum = - nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); + const uint64_t nw = nwork; + const uint64_t nsum = nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); for (unsigned i = 0; i < Repeat; ++i) { Kokkos::parallel_reduce(nwork, functor_type(nwork), result[i]); @@ -247,7 +246,7 @@ class TestReduce { for (unsigned i = 0; i < Repeat; ++i) { for (unsigned j = 0; j < Count; ++j) { - const unsigned long correct = 0 == j % 3 ? nw : nsum; + const uint64_t correct = 0 == j % 3 ? nw : nsum; ASSERT_EQ((ScalarType)correct, result[i].value[j]); } } @@ -262,9 +261,8 @@ class TestReduce { value_type result[Repeat]; - const unsigned long nw = nwork; - const unsigned long nsum = - nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); + const uint64_t nw = nwork; + const uint64_t nsum = nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); for (unsigned i = 0; i < Repeat; ++i) { if (i % 2 == 0) { @@ -277,7 +275,7 @@ class TestReduce { for (unsigned i = 0; i < Repeat; ++i) { for (unsigned j = 0; j < Count; ++j) { - const unsigned long correct = 0 == j % 3 ? nw : nsum; + const uint64_t correct = 0 == j % 3 ? nw : nsum; ASSERT_EQ((ScalarType)correct, -result[i].value[j]); } } @@ -305,9 +303,8 @@ class TestReduceDynamic { ScalarType result[Repeat][Count]; - const unsigned long nw = nwork; - const unsigned long nsum = - nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); + const uint64_t nw = nwork; + const uint64_t nsum = nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); for (unsigned i = 0; i < Repeat; ++i) { if (i % 2 == 0) { @@ -320,7 +317,7 @@ class TestReduceDynamic { for (unsigned i = 0; i < Repeat; ++i) { for (unsigned j = 0; j < Count; ++j) { - const unsigned long correct = 0 == j % 3 ? nw : nsum; + const uint64_t correct = 0 == j % 3 ? nw : nsum; ASSERT_EQ((ScalarType)correct, result[i][j]); } } @@ -351,7 +348,7 @@ class TestReduceDynamic { const ScalarType correct = (j % 2) ? amax : amin; ASSERT_EQ((ScalarType)correct, result[i][j]); } else { - const unsigned long correct = j % 2 ? 1 : nwork; + const uint64_t correct = j % 2 ? 1 : nwork; ASSERT_EQ((ScalarType)correct, result[i][j]); } } @@ -366,9 +363,8 @@ class TestReduceDynamic { typename functor_type::scalar_type result[Repeat][Count]; - const unsigned long nw = nwork; - const unsigned long nsum = - nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); + const uint64_t nw = nwork; + const uint64_t nsum = nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); for (unsigned i = 0; i < Repeat; ++i) { if (i % 2 == 0) { @@ -381,7 +377,7 @@ class TestReduceDynamic { for (unsigned i = 0; i < Repeat; ++i) { for (unsigned j = 0; j < Count; ++j) { - const unsigned long correct = 0 == j % 3 ? nw : nsum; + const uint64_t correct = 0 == j % 3 ? nw : nsum; ASSERT_EQ((ScalarType)correct, -result[i][j]); } } @@ -405,9 +401,8 @@ class TestReduceDynamicView { const unsigned CountLimit = 23; - const unsigned long nw = nwork; - const unsigned long nsum = - nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); + const uint64_t nw = nwork; + const uint64_t nsum = nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); for (unsigned count = 0; count < CountLimit; ++count) { result_type result("result", count); @@ -425,7 +420,7 @@ class TestReduceDynamicView { } for (unsigned j = 0; j < count; ++j) { - const unsigned long correct = 0 == j % 3 ? nw : nsum; + const uint64_t correct = 0 == j % 3 ? nw : nsum; ASSERT_EQ(host_result(j), (ScalarType)correct); host_result(j) = 0; } @@ -435,9 +430,9 @@ class TestReduceDynamicView { } // namespace -TEST(TEST_CATEGORY, long_reduce) { - TestReduce(0); - TestReduce(1000000); +TEST(TEST_CATEGORY, int64_t_reduce) { + TestReduce(0); + TestReduce(1000000); } TEST(TEST_CATEGORY, double_reduce) { @@ -445,9 +440,9 @@ TEST(TEST_CATEGORY, double_reduce) { TestReduce(1000000); } -TEST(TEST_CATEGORY, long_reduce_dynamic) { - TestReduceDynamic(0); - TestReduceDynamic(1000000); +TEST(TEST_CATEGORY, int64_t_reduce_dynamic) { + TestReduceDynamic(0); + TestReduceDynamic(1000000); } TEST(TEST_CATEGORY, double_reduce_dynamic) { @@ -455,9 +450,9 @@ TEST(TEST_CATEGORY, double_reduce_dynamic) { TestReduceDynamic(1000000); } -TEST(TEST_CATEGORY, long_reduce_dynamic_view) { - TestReduceDynamicView(0); - TestReduceDynamicView(1000000); +TEST(TEST_CATEGORY, int64_t_reduce_dynamic_view) { + TestReduceDynamicView(0); + TestReduceDynamicView(1000000); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp b/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp index a03dbd114189106ce16d5cc5a5a0b03e5ee332dd..fe85f360cb3cee8a11248f786af688f5bb8bcc2b 100644 --- a/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp +++ b/lib/kokkos/core/unit_test/TestReduceCombinatorical.hpp @@ -467,10 +467,10 @@ struct TestReduceCombinatoricalInstantiation { } template - static void AddLambdaRange(Kokkos::InvalidType, Args... args) {} + static void AddLambdaRange(Kokkos::InvalidType, Args... /*args*/) {} template - static void AddLambdaTeam(Kokkos::InvalidType, Args... args) {} + static void AddLambdaTeam(Kokkos::InvalidType, Args... /*args*/) {} template static void AddFunctor(Args... args) { diff --git a/lib/kokkos/core/unit_test/TestResize.hpp b/lib/kokkos/core/unit_test/TestResize.hpp index 14d1295538132ad83a31d8214fd75b9464c4f7e7..32a85f03e9ae30347eac6011dcf6dd217f34713b 100644 --- a/lib/kokkos/core/unit_test/TestResize.hpp +++ b/lib/kokkos/core/unit_test/TestResize.hpp @@ -71,7 +71,7 @@ void impl_testResize() { typedef Kokkos::View view_type; view_type view_1d("view_1d", sizes[0]); const int* oldPointer = view_1d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_1d, sizes[0]); const int* newPointer = view_1d.data(); EXPECT_TRUE(oldPointer == newPointer); @@ -80,7 +80,7 @@ void impl_testResize() { typedef Kokkos::View view_type; view_type view_2d("view_2d", sizes[0], sizes[1]); const int* oldPointer = view_2d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_2d, sizes[0], sizes[1]); const int* newPointer = view_2d.data(); EXPECT_TRUE(oldPointer == newPointer); @@ -89,7 +89,7 @@ void impl_testResize() { typedef Kokkos::View view_type; view_type view_3d("view_3d", sizes[0], sizes[1], sizes[2]); const int* oldPointer = view_3d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_3d, sizes[0], sizes[1], sizes[2]); const int* newPointer = view_3d.data(); EXPECT_TRUE(oldPointer == newPointer); @@ -98,7 +98,7 @@ void impl_testResize() { typedef Kokkos::View view_type; view_type view_4d("view_4d", sizes[0], sizes[1], sizes[2], sizes[3]); const int* oldPointer = view_4d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_4d, sizes[0], sizes[1], sizes[2], sizes[3]); const int* newPointer = view_4d.data(); EXPECT_TRUE(oldPointer == newPointer); @@ -108,7 +108,7 @@ void impl_testResize() { view_type view_5d("view_5d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4]); const int* oldPointer = view_5d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_5d, sizes[0], sizes[1], sizes[2], sizes[3], sizes[4]); const int* newPointer = view_5d.data(); @@ -119,7 +119,7 @@ void impl_testResize() { view_type view_6d("view_6d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); const int* oldPointer = view_6d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_6d, sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); const int* newPointer = view_6d.data(); @@ -130,7 +130,7 @@ void impl_testResize() { view_type view_7d("view_7d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6]); const int* oldPointer = view_7d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_7d, sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6]); const int* newPointer = view_7d.data(); @@ -141,7 +141,7 @@ void impl_testResize() { view_type view_8d("view_8d", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6], sizes[7]); const int* oldPointer = view_8d.data(); - EXPECT_TRUE(oldPointer != NULL); + EXPECT_TRUE(oldPointer != nullptr); resize_dispatch(Tag{}, view_8d, sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5], sizes[6], sizes[7]); const int* newPointer = view_8d.data(); diff --git a/lib/kokkos/core/unit_test/TestScan.hpp b/lib/kokkos/core/unit_test/TestScan.hpp index 483f1868802c95601954ca6d06f5681916eda32d..f7ebbb62a30fb9127356dd66619c9b9db7cf9db4 100644 --- a/lib/kokkos/core/unit_test/TestScan.hpp +++ b/lib/kokkos/core/unit_test/TestScan.hpp @@ -50,7 +50,7 @@ namespace Test { template struct TestScan { typedef Device execution_space; - typedef long int value_type; + typedef int64_t value_type; Kokkos::View > errors; @@ -98,10 +98,12 @@ struct TestScan { Kokkos::parallel_scan(N, *this); - long long int total = 0; + int64_t total = 0; Kokkos::parallel_scan(N, *this, total); - run_check(size_t((N + 1) * N / 2), size_t(total)); + // We can't return a value in a constructor so use a lambda as wrapper to + // ignore it. + [&] { ASSERT_EQ(size_t((N + 1) * N / 2), size_t(total)); }(); check_error(); } @@ -129,10 +131,6 @@ struct TestScan { (void)TestScan(i); } } - - void run_check(const size_t& expected, const size_t& actual) { - ASSERT_EQ(expected, actual); - } }; TEST(TEST_CATEGORY, scan) { diff --git a/lib/kokkos/core/unit_test/TestSharedAlloc.hpp b/lib/kokkos/core/unit_test/TestSharedAlloc.hpp index d284b7d61eed0a3b147c29ef26744606c82ceb6a..1b67e29d70922c1605ea14ae72bf65a97707a758 100644 --- a/lib/kokkos/core/unit_test/TestSharedAlloc.hpp +++ b/lib/kokkos/core/unit_test/TestSharedAlloc.hpp @@ -116,7 +116,7 @@ void test_shared_alloc() { #endif Kokkos::parallel_for(range, [=](size_t i) { - while (0 != + while (nullptr != (r[i] = static_cast(RecordBase::decrement(r[i])))) { #ifdef KOKKOS_DEBUG if (r[i]->use_count() == 1) RecordBase::is_sane(r[i]); @@ -157,7 +157,7 @@ void test_shared_alloc() { #endif Kokkos::parallel_for(range, [=](size_t i) { - while (0 != + while (nullptr != (r[i] = static_cast(RecordBase::decrement(r[i])))) { #ifdef KOKKOS_DEBUG if (r[i]->use_count() == 1) RecordBase::is_sane(r[i]); diff --git a/lib/kokkos/core/unit_test/TestTaskScheduler.hpp b/lib/kokkos/core/unit_test/TestTaskScheduler.hpp index 9f593a00fdac800b1ecd4b67efb479d4fbea5c23..ebfdcf1df3fb9b350c21515d88c1bbdf2f25dafc 100644 --- a/lib/kokkos/core/unit_test/TestTaskScheduler.hpp +++ b/lib/kokkos/core/unit_test/TestTaskScheduler.hpp @@ -843,11 +843,14 @@ struct TestMultipleDependence { #undef TEST_SCHEDULER #undef TEST_SCHEDULER_SUFFIX +// KOKKOS WORKAROUND WIN32: Theses tests hang with msvc +#ifndef _WIN32 #define TEST_SCHEDULER_SUFFIX _chase_lev #define TEST_SCHEDULER Kokkos::ChaseLevTaskScheduler #include "TestTaskScheduler_single.hpp" #undef TEST_SCHEDULER #undef TEST_SCHEDULER_SUFFIX +#endif #if 0 #define TEST_SCHEDULER_SUFFIX _fixed_mempool diff --git a/lib/kokkos/core/unit_test/TestTeam.hpp b/lib/kokkos/core/unit_test/TestTeam.hpp index e19c1c160d2625e09dc820a13dcef592b6d9ade1..d1ee0039696e9f1c0e94f8bdd23b7c90948398c8 100644 --- a/lib/kokkos/core/unit_test/TestTeam.hpp +++ b/lib/kokkos/core/unit_test/TestTeam.hpp @@ -100,7 +100,7 @@ struct TestTeamPolicy { struct NoOpTag {}; KOKKOS_INLINE_FUNCTION - void operator()(const NoOpTag &, const team_member &member) const {} + void operator()(const NoOpTag &, const team_member & /*member*/) const {} static void test_small_league_size() { int bs = 8; // batch size (number of elements per batch) @@ -139,7 +139,7 @@ struct TestTeamPolicy { struct ReduceTag {}; - typedef long value_type; + typedef int64_t value_type; KOKKOS_INLINE_FUNCTION void operator()(const team_member &member, value_type &update) const { @@ -164,9 +164,9 @@ struct TestTeamPolicy { policy_type_reduce(league_size, 1) .team_size_max(functor, Kokkos::ParallelReduceTag()); - const long N = team_size * league_size; + const int64_t N = team_size * league_size; - long total = 0; + int64_t total = 0; Kokkos::parallel_reduce(policy_type(league_size, team_size), functor, total); @@ -263,9 +263,8 @@ class TestReduceTeam { value_type result[Repeat]; - const unsigned long nw = nwork; - const unsigned long nsum = - nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); + const uint64_t nw = nwork; + const uint64_t nsum = nw % 2 ? nw * ((nw + 1) / 2) : (nw / 2) * (nw + 1); policy_type team_exec(nw, 1); @@ -284,7 +283,7 @@ class TestReduceTeam { for (unsigned i = 0; i < Repeat; ++i) { for (unsigned j = 0; j < Count; ++j) { - const unsigned long correct = 0 == j % 3 ? nw : nsum; + const uint64_t correct = 0 == j % 3 ? nw : nsum; ASSERT_EQ((ScalarType)correct, result[i].value[j]); } } @@ -302,7 +301,7 @@ class ScanTeamFunctor { public: typedef DeviceType execution_space; typedef Kokkos::TeamPolicy policy_type; - typedef long int value_type; + typedef int64_t value_type; Kokkos::View accum; Kokkos::View total; @@ -319,7 +318,7 @@ class ScanTeamFunctor { } struct JoinMax { - typedef long int value_type; + typedef int64_t value_type; KOKKOS_INLINE_FUNCTION void join(value_type volatile &dst, @@ -332,31 +331,31 @@ class ScanTeamFunctor { void operator()(const typename policy_type::member_type ind, value_type &error) const { if (0 == ind.league_rank() && 0 == ind.team_rank()) { - const long int thread_count = ind.league_size() * ind.team_size(); - total() = (thread_count * (thread_count + 1)) / 2; + const int64_t thread_count = ind.league_size() * ind.team_size(); + total() = (thread_count * (thread_count + 1)) / 2; } // Team max: - int long m = (long int)(ind.league_rank() + ind.team_rank()); - ind.team_reduce(Kokkos::Max(m)); + int64_t m = (int64_t)(ind.league_rank() + ind.team_rank()); + ind.team_reduce(Kokkos::Max(m)); if (m != ind.league_rank() + (ind.team_size() - 1)) { printf( "ScanTeamFunctor[%d.%d of %d.%d] reduce_max_answer(%ld) != " "reduce_max(%ld)\n", ind.league_rank(), ind.team_rank(), ind.league_size(), - ind.team_size(), - (long int)(ind.league_rank() + (ind.team_size() - 1)), m); + ind.team_size(), (int64_t)(ind.league_rank() + (ind.team_size() - 1)), + m); } // Scan: - const long int answer = (ind.league_rank() + 1) * ind.team_rank() + - (ind.team_rank() * (ind.team_rank() + 1)) / 2; + const int64_t answer = (ind.league_rank() + 1) * ind.team_rank() + + (ind.team_rank() * (ind.team_rank() + 1)) / 2; - const long int result = + const int64_t result = ind.team_scan(ind.league_rank() + 1 + ind.team_rank() + 1); - const long int result2 = + const int64_t result2 = ind.team_scan(ind.league_rank() + 1 + ind.team_rank() + 1); if (answer != result || answer != result2) { @@ -369,7 +368,7 @@ class ScanTeamFunctor { error = 1; } - const long int thread_rank = + const int64_t thread_rank = ind.team_rank() + ind.team_size() * ind.league_rank(); ind.team_scan(1 + thread_rank, accum.data()); } @@ -379,14 +378,14 @@ template class TestScanTeam { public: typedef DeviceType execution_space; - typedef long int value_type; + typedef int64_t value_type; typedef Kokkos::TeamPolicy policy_type; typedef Test::ScanTeamFunctor functor_type; TestScanTeam(const size_t nteam) { run_test(nteam); } void run_test(const size_t nteam) { - typedef Kokkos::View + typedef Kokkos::View result_type; const unsigned REPEAT = 100000; @@ -405,9 +404,9 @@ class TestScanTeam { nteam, team_exec.team_size_max(functor, Kokkos::ParallelReduceTag())); for (unsigned i = 0; i < Repeat; ++i) { - long int accum = 0; - long int total = 0; - long int error = 0; + int64_t accum = 0; + int64_t total = 0; + int64_t error = 0; Kokkos::deep_copy(functor.accum, total); Kokkos::parallel_reduce(team_exec, functor, result_type(&error)); @@ -445,7 +444,7 @@ struct SharedTeamFunctor { shared_int_array_type; // Tell how much shared memory will be required by this functor. - inline unsigned team_shmem_size(int team_size) const { + inline unsigned team_shmem_size(int /*team_size*/) const { return shared_int_array_type::shmem_size(SHARED_COUNT) + shared_int_array_type::shmem_size(SHARED_COUNT); } @@ -462,7 +461,7 @@ struct SharedTeamFunctor { "member( %d/%d , %d/%d ) Failed to allocate shared memory of size " "%lu\n", ind.league_rank(), ind.league_size(), ind.team_rank(), - ind.team_size(), static_cast(SHARED_COUNT)); + ind.team_size(), static_cast(SHARED_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -523,7 +522,6 @@ struct TestSharedTeam { namespace Test { #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) template struct TestLambdaSharedTeam { TestLambdaSharedTeam() { run(); } @@ -568,7 +566,7 @@ struct TestLambdaSharedTeam { if ((shared_A.data() == nullptr && SHARED_COUNT > 0) || (shared_B.data() == nullptr && SHARED_COUNT > 0)) { printf("Failed to allocate shared memory of size %lu\n", - static_cast(SHARED_COUNT)); + static_cast(SHARED_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -601,7 +599,6 @@ struct TestLambdaSharedTeam { } }; #endif -#endif } // namespace Test @@ -636,7 +633,7 @@ struct ScratchTeamFunctor { (scratch_A.data() == nullptr && SHARED_TEAM_COUNT > 0) || (scratch_B.data() == nullptr && SHARED_THREAD_COUNT > 0)) { printf("Failed to allocate shared memory of size %lu\n", - static_cast(SHARED_TEAM_COUNT)); + static_cast(SHARED_TEAM_COUNT)); ++update; // Failure to allocate is an error. } else { @@ -739,22 +736,22 @@ KOKKOS_INLINE_FUNCTION int test_team_mulit_level_scratch_loop_body( a_thread2(team.thread_scratch(0), 16); Kokkos::View > - b_team1(team.team_scratch(1), 128000); + b_team1(team.team_scratch(1), 12800); Kokkos::View > - b_thread1(team.thread_scratch(1), 16000); + b_thread1(team.thread_scratch(1), 1600); Kokkos::View > - b_team2(team.team_scratch(1), 128000); + b_team2(team.team_scratch(1), 12800); Kokkos::View > - b_thread2(team.thread_scratch(1), 16000); + b_thread2(team.thread_scratch(1), 1600); Kokkos::View > a_team3(team.team_scratch(0), 128); Kokkos::View > a_thread3(team.thread_scratch(0), 16); Kokkos::View > - b_team3(team.team_scratch(1), 128000); + b_team3(team.team_scratch(1), 12800); Kokkos::View > - b_thread3(team.thread_scratch(1), 16000); + b_thread3(team.thread_scratch(1), 1600); // The explicit types for 0 and 128 are here to test TeamThreadRange accepting // different types for begin and end. @@ -775,7 +772,7 @@ KOKKOS_INLINE_FUNCTION int test_team_mulit_level_scratch_loop_body( team.league_rank() * 100000; }); - Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, 128000), + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, 0, 12800), [&](const int &i) { b_team1(i) = 1000000 + i + team.league_rank() * 100000; b_team2(i) = 2000000 + i + team.league_rank() * 100000; @@ -783,7 +780,7 @@ KOKKOS_INLINE_FUNCTION int test_team_mulit_level_scratch_loop_body( }); team.team_barrier(); - Kokkos::parallel_for(Kokkos::ThreadVectorRange(team, 16000), + Kokkos::parallel_for(Kokkos::ThreadVectorRange(team, 1600), [&](const int &i) { b_thread1(i) = 1000000 + 100000 * team.team_rank() + 16 - i + team.league_rank() * 100000; @@ -817,7 +814,7 @@ KOKKOS_INLINE_FUNCTION int test_team_mulit_level_scratch_loop_body( }); Kokkos::parallel_for( - Kokkos::TeamThreadRange(team, 0, 128000), [&](const int &i) { + Kokkos::TeamThreadRange(team, 0, 12800), [&](const int &i) { if (b_team1(i) != 1000000 + i + team.league_rank() * 100000) error++; if (b_team2(i) != 2000000 + i + team.league_rank() * 100000) error++; if (b_team3(i) != 3000000 + i + team.league_rank() * 100000) error++; @@ -825,7 +822,7 @@ KOKKOS_INLINE_FUNCTION int test_team_mulit_level_scratch_loop_body( team.team_barrier(); Kokkos::parallel_for( - Kokkos::ThreadVectorRange(team, 16000), [&](const int &i) { + Kokkos::ThreadVectorRange(team, 1600), [&](const int &i) { if (b_thread1(i) != 1000000 + 100000 * team.team_rank() + 16 - i + team.league_rank() * 100000) error++; @@ -879,11 +876,11 @@ struct ClassNoShmemSizeFunction { const int per_team1 = 3 * Kokkos::View< double *, ExecSpace, - Kokkos::MemoryTraits >::shmem_size(128000); + Kokkos::MemoryTraits >::shmem_size(12800); const int per_thread1 = 3 * Kokkos::View< double *, ExecSpace, - Kokkos::MemoryTraits >::shmem_size(16000); + Kokkos::MemoryTraits >::shmem_size(1600); int team_size = 8; if (team_size > ExecSpace::concurrency()) @@ -952,11 +949,11 @@ struct ClassWithShmemSizeFunction { const int per_team1 = 3 * Kokkos::View< double *, ExecSpace, - Kokkos::MemoryTraits >::shmem_size(128000); + Kokkos::MemoryTraits >::shmem_size(12800); const int per_thread1 = 3 * Kokkos::View< double *, ExecSpace, - Kokkos::MemoryTraits >::shmem_size(16000); + Kokkos::MemoryTraits >::shmem_size(1600); int team_size = 8; if (team_size > ExecSpace::concurrency()) @@ -1008,7 +1005,6 @@ struct ClassWithShmemSizeFunction { template void test_team_mulit_level_scratch_test_lambda() { #ifdef KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) Kokkos::View > errors; Kokkos::View d_errors("Errors"); errors = d_errors; @@ -1023,13 +1019,13 @@ void test_team_mulit_level_scratch_test_lambda() { Kokkos::MemoryTraits >::shmem_size(16); const int per_team1 = - 3 * Kokkos::View< - double *, ExecSpace, - Kokkos::MemoryTraits >::shmem_size(128000); + 3 * + Kokkos::View >::shmem_size(12800); const int per_thread1 = 3 * Kokkos::View >::shmem_size(16000); + Kokkos::MemoryTraits >::shmem_size(1600); int team_size = 8; if (team_size > ExecSpace::concurrency()) @@ -1070,7 +1066,6 @@ void test_team_mulit_level_scratch_test_lambda() { error); ASSERT_EQ(error, 0); #endif -#endif } } // namespace Test @@ -1102,7 +1097,7 @@ struct TestShmemSize { TestShmemSize() { run(); } void run() { - typedef Kokkos::View view_type; + typedef Kokkos::View view_type; size_t d1 = 5; size_t d2 = 6; @@ -1110,7 +1105,7 @@ struct TestShmemSize { size_t size = view_type::shmem_size(d1, d2, d3); - ASSERT_EQ(size, (d1 * d2 * d3 + 1) * sizeof(long)); + ASSERT_EQ(size, (d1 * d2 * d3 + 1) * sizeof(int64_t)); test_layout_stride(); } @@ -1137,16 +1132,129 @@ namespace Test { namespace { -template -struct TestTeamBroadcast { - typedef typename Kokkos::TeamPolicy::member_type - team_member; +template +struct TestTeamBroadcast; + +template +struct TestTeamBroadcast< + ExecSpace, ScheduleType, T, + typename std::enable_if<(sizeof(T) == sizeof(char)), void>::type> { + using team_member = + typename Kokkos::TeamPolicy::member_type; + using memory_space = typename ExecSpace::memory_space; + using value_type = T; + + const value_type offset; - TestTeamBroadcast(const size_t league_size) {} + TestTeamBroadcast(const size_t /*league_size*/, const value_type os_) + : offset(os_) {} struct BroadcastTag {}; - typedef long value_type; + KOKKOS_INLINE_FUNCTION + void operator()(const team_member &teamMember, value_type &update) const { + int lid = teamMember.league_rank(); + int tid = teamMember.team_rank(); + int ts = teamMember.team_size(); + + value_type parUpdate = 0; + value_type value = (value_type)(tid % 0xFF) + offset; + + // broadcast boolean and value to team from source thread + teamMember.team_broadcast(value, lid % ts); + + Kokkos::parallel_reduce( + Kokkos::TeamThreadRange(teamMember, ts), + [&](const int /*j*/, value_type &teamUpdate) { teamUpdate |= value; }, + Kokkos::BOr(parUpdate)); + + if (teamMember.team_rank() == 0) update |= parUpdate; + } + + KOKKOS_INLINE_FUNCTION + void operator()(const BroadcastTag &, const team_member &teamMember, + value_type &update) const { + int lid = teamMember.league_rank(); + int tid = teamMember.team_rank(); + int ts = teamMember.team_size(); + + value_type parUpdate = 0; + value_type value = (value_type)(tid % 0xFF) + offset; + + teamMember.team_broadcast([&](value_type &var) { var -= offset; }, value, + lid % ts); + + Kokkos::parallel_reduce( + Kokkos::TeamThreadRange(teamMember, ts), + [&](const int /*j*/, value_type &teamUpdate) { teamUpdate |= value; }, + Kokkos::BOr(parUpdate)); + + if (teamMember.team_rank() == 0) update |= parUpdate; + } + + static void test_teambroadcast(const size_t league_size, + const value_type off) { + TestTeamBroadcast functor(league_size, off); + + typedef Kokkos::TeamPolicy policy_type; + typedef Kokkos::TeamPolicy + policy_type_f; + + const int team_size = + policy_type_f(league_size, 1) + .team_size_max( + functor, + Kokkos:: + ParallelReduceTag()); // printf("team_size=%d\n",team_size); + + // team_broadcast with value + value_type total = 0; + + Kokkos::parallel_reduce(policy_type(league_size, team_size), functor, + Kokkos::BOr(total)); + + value_type expected_result = 0; + for (unsigned int i = 0; i < league_size; i++) { + value_type val = (value_type((i % team_size % 0xFF)) + off); + expected_result |= val; + } + ASSERT_EQ(expected_result, total); + // printf("team_broadcast with value --" + //"expected_result=%x," + //"total=%x\n",expected_result, total); + + // team_broadcast with function object + total = 0; + + Kokkos::parallel_reduce(policy_type_f(league_size, team_size), functor, + Kokkos::BOr(total)); + + expected_result = 0; + for (unsigned int i = 0; i < league_size; i++) { + value_type val = ((value_type)((i % team_size % 0xFF))); + expected_result |= val; + } + ASSERT_EQ(expected_result, total); + // printf("team_broadcast with function object --" + // "expected_result=%x," + // "total=%x\n",expected_result, total); + } +}; + +template +struct TestTeamBroadcast< + ExecSpace, ScheduleType, T, + typename std::enable_if<(sizeof(T) > sizeof(char)), void>::type> { + using team_member = + typename Kokkos::TeamPolicy::member_type; + using value_type = T; + + const value_type offset; + + TestTeamBroadcast(const size_t /*league_size*/, const value_type os_) + : offset(os_) {} + + struct BroadcastTag {}; KOKKOS_INLINE_FUNCTION void operator()(const team_member &teamMember, value_type &update) const { @@ -1155,16 +1263,26 @@ struct TestTeamBroadcast { int ts = teamMember.team_size(); value_type parUpdate = 0; - value_type value = tid * 3 + 1; + value_type value = (value_type)(tid * 3) + offset; + + // setValue is used to determine if the update should be + // performed at the bottom. The thread id must match the + // thread id used to broadcast the value. It is the + // thread id that matches the league rank mod team size + // this way each league rank will use a different thread id + // which is likely not 0 + bool setValue = ((lid % ts) == tid); + // broadcast boolean and value to team from source thread teamMember.team_broadcast(value, lid % ts); + teamMember.team_broadcast(setValue, lid % ts); Kokkos::parallel_reduce( Kokkos::TeamThreadRange(teamMember, ts), - [&](const int j, value_type &teamUpdate) { teamUpdate += value; }, + [&](const int /*j*/, value_type &teamUpdate) { teamUpdate += value; }, parUpdate); - if (teamMember.team_rank() == 0) update += parUpdate; + if (teamMember.team_rank() == 0 && setValue) update += parUpdate; } KOKKOS_INLINE_FUNCTION @@ -1175,21 +1293,53 @@ struct TestTeamBroadcast { int ts = teamMember.team_size(); value_type parUpdate = 0; - value_type value = tid * 3 + 1; + value_type value = (value_type)(tid * 3) + offset; + + // setValue is used to determine if the update should be + // performed at the bottom. The thread id must match the + // thread id used to broadcast the value. It is the + // thread id that matches the league rank mod team size + // this way each league rank will use a different thread id + // which is likely not 0. Note the logic is switched from + // above because the functor switches it back. + bool setValue = ((lid % ts) != tid); teamMember.team_broadcast([&](value_type &var) { var *= 2; }, value, lid % ts); + teamMember.team_broadcast([&](bool &bVar) { bVar = !bVar; }, setValue, + lid % ts); Kokkos::parallel_reduce( Kokkos::TeamThreadRange(teamMember, ts), - [&](const int j, value_type &teamUpdate) { teamUpdate += value; }, + [&](const int /*j*/, value_type &teamUpdate) { teamUpdate += value; }, parUpdate); - if (teamMember.team_rank() == 0) update += parUpdate; + if (teamMember.team_rank() == 0 && setValue) update += parUpdate; + } + + template + static inline + typename std::enable_if::value, void>::type + compare_test(ScalarType A, ScalarType B) { + if (std::is_same::value) { + ASSERT_DOUBLE_EQ((double)A, (double)B); + } else if (std::is_same::value) { + ASSERT_FLOAT_EQ((double)A, (double)B); + } else { + ASSERT_EQ(A, B); + } + } + + template + static inline + typename std::enable_if::value, void>::type + compare_test(ScalarType A, ScalarType B) { + ASSERT_EQ(A, B); } - static void test_teambroadcast(const size_t league_size) { - TestTeamBroadcast functor(league_size); + static void test_teambroadcast(const size_t league_size, + const value_type off) { + TestTeamBroadcast functor(league_size, off); typedef Kokkos::TeamPolicy policy_type; typedef Kokkos::TeamPolicy @@ -1203,20 +1353,21 @@ struct TestTeamBroadcast { ParallelReduceTag()); // printf("team_size=%d\n",team_size); // team_broadcast with value - long total = 0; + value_type total = 0; Kokkos::parallel_reduce(policy_type(league_size, team_size), functor, total); value_type expected_result = 0; for (unsigned int i = 0; i < league_size; i++) { - value_type val = ((i % team_size) * 3 + 1) * team_size; + value_type val = + (value_type((i % team_size) * 3) + off) * (value_type)team_size; expected_result += val; } - ASSERT_EQ(size_t(expected_result), - size_t(total)); // printf("team_broadcast with value -- - // expected_result=%d, - // total=%d\n",expected_result, total); + compare_test(expected_result, + total); // printf("team_broadcast with value -- + // expected_result=%d, + // total=%d\n",expected_result, total); // team_broadcast with function object total = 0; @@ -1226,13 +1377,14 @@ struct TestTeamBroadcast { expected_result = 0; for (unsigned int i = 0; i < league_size; i++) { - value_type val = ((i % team_size) * 3 + 1) * 2 * team_size; + value_type val = ((value_type)((i % team_size) * 3) + off) * + (value_type)(2 * team_size); expected_result += val; } - ASSERT_EQ(size_t(expected_result), - size_t(total)); // printf("team_broadcast with function object -- - // expected_result=%d, - // total=%d\n",expected_result, total); + compare_test(expected_result, + total); // printf("team_broadcast with function object -- + // expected_result=%d, + // total=%d\n",expected_result, total); } }; diff --git a/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp b/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp index 4a9b7c41a4adba60f304aeffa79e13c09645c5eb..0703f90cf8a3cd374202e510f163f842bcf12846 100644 --- a/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp +++ b/lib/kokkos/core/unit_test/TestTeamTeamSize.hpp @@ -78,13 +78,13 @@ template struct FunctorFor { double static_array[S]; KOKKOS_INLINE_FUNCTION - void operator()(const typename PolicyType::member_type& team) const {} + void operator()(const typename PolicyType::member_type& /*team*/) const {} }; template struct FunctorReduce { double static_array[S]; KOKKOS_INLINE_FUNCTION - void operator()(const typename PolicyType::member_type& team, + void operator()(const typename PolicyType::member_type& /*team*/, MyArray& lval) const { for (int j = 0; j < N; j++) lval.values[j] += 1 + lval.values[0]; } @@ -191,7 +191,7 @@ struct PrintFunctor2 { }; TEST(TEST_CATEGORY, team_policy_max_scalar_without_plus_equal_k) { - using ExecSpace = Kokkos::DefaultExecutionSpace; + using ExecSpace = TEST_EXECSPACE; using ReducerType = Kokkos::MinMax; using ReducerValueType = typename ReducerType::value_type; using DynamicScheduleType = Kokkos::Schedule; diff --git a/lib/kokkos/core/unit_test/TestTeamVector.hpp b/lib/kokkos/core/unit_test/TestTeamVector.hpp index 4cf0ceaf475561e2afff33e198e0ebc59fa02a45..c313988efc2930d8a98d26f8f9405048b1454c91 100644 --- a/lib/kokkos/core/unit_test/TestTeamVector.hpp +++ b/lib/kokkos/core/unit_test/TestTeamVector.hpp @@ -622,7 +622,7 @@ struct functor_vec_single { Scalar value2 = 0; Kokkos::parallel_reduce( Kokkos::ThreadVectorRange(team, nStart, nEnd), - [&](int i, Scalar &val) { val += value; }, value2); + [&](int /*i*/, Scalar &val) { val += value; }, value2); if (value2 != (value * (nEnd - nStart))) { printf("FAILED vector_single broadcast %i %i %f %f\n", team.league_rank(), @@ -895,8 +895,7 @@ namespace Test { // Computes y^T*A*x // ( modified from kokkos-tutorials/GTC2016/Exercises/ThreeLevelPar ) -#if (!defined(KOKKOS_ENABLE_CUDA)) || \ - (defined(KOKKOS_ENABLE_CUDA_LAMBDA) && (8000 <= CUDA_VERSION)) +#if (!defined(KOKKOS_ENABLE_CUDA)) || defined(KOKKOS_ENABLE_CUDA_LAMBDA) template class TestTripleNestedReduce { public: diff --git a/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp b/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp index 71351c19815ce994110e83aa64abb97aa7cd7b5e..cc83785185971bbd3a01c09478bccd7dac13ba44 100644 --- a/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp +++ b/lib/kokkos/core/unit_test/TestTeamVectorRange.hpp @@ -233,7 +233,7 @@ struct functor_teamvector_for { typedef typename ExecutionSpace::scratch_memory_space shmem_space; typedef Kokkos::View shared_int; - unsigned team_shmem_size(int team_size) const { + unsigned team_shmem_size(int /*team_size*/) const { return shared_int::shmem_size(131); } diff --git a/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp b/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp index 1e25d46dfebed595eb43fa4a0dc0abde7c3952b2..b9c16f506c2f52fd16f4496decd8940f3fa9bf7b 100644 --- a/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp +++ b/lib/kokkos/core/unit_test/TestTemplateMetaFunctions.hpp @@ -58,7 +58,7 @@ struct SumPlain { SumPlain(type view_) : view(view_) {} KOKKOS_INLINE_FUNCTION - void operator()(int i, Scalar& val) { val += Scalar(); } + void operator()(int /*i*/, Scalar& val) { val += Scalar(); } }; template @@ -80,7 +80,7 @@ struct SumInitJoinFinalValueType { } KOKKOS_INLINE_FUNCTION - void operator()(int i, value_type& val) const { val += value_type(); } + void operator()(int /*i*/, value_type& val) const { val += value_type(); } }; template @@ -102,7 +102,7 @@ struct SumInitJoinFinalValueType2 { } KOKKOS_INLINE_FUNCTION - void operator()(int i, value_type& val) const { val += value_type(); } + void operator()(int /*i*/, value_type& val) const { val += value_type(); } }; template @@ -157,7 +157,7 @@ struct SumWrongInitJoinFinalValueType { } KOKKOS_INLINE_FUNCTION - void operator()(int i, value_type& val) const { val += value_type(); } + void operator()(int /*i*/, value_type& val) const { val += value_type(); } }; template diff --git a/lib/kokkos/core/unit_test/TestViewAPI.hpp b/lib/kokkos/core/unit_test/TestViewAPI.hpp index 36d158d643b5c5e2dbc3b24b24bcbe3edd165b8a..b9847773b60ca8fc455f1e5dd33e663d7e80692d 100644 --- a/lib/kokkos/core/unit_test/TestViewAPI.hpp +++ b/lib/kokkos/core/unit_test/TestViewAPI.hpp @@ -841,6 +841,22 @@ struct TestViewMirror { ASSERT_EQ(a_org(5), a_h3(5)); } + template + static typename View::const_type view_const_cast(View const &v) { + return v; + } + + static void test_mirror_copy_const_data_type() { + using ExecutionSpace = typename DeviceType::execution_space; + int const N = 100; + Kokkos::View v("v", N); + Kokkos::deep_copy(v, 255); + auto v_m1 = Kokkos::create_mirror_view_and_copy( + Kokkos::DefaultHostExecutionSpace(), view_const_cast(v)); + auto v_m2 = Kokkos::create_mirror_view_and_copy(ExecutionSpace(), + view_const_cast(v)); + } + template struct CopyUnInit { typedef typename Kokkos::Impl::MirrorViewType< @@ -896,6 +912,7 @@ struct TestViewMirror { test_mirror_view >(); test_mirror_copy >(); test_mirror_copy >(); + test_mirror_copy_const_data_type(); test_mirror_no_initialize >(); test_mirror_no_initialize >(); } @@ -920,8 +937,6 @@ class TestViewAPI { dView4_unmanaged; typedef typename dView0::host_mirror_space host; - TestViewAPI() {} - static void run_test_view_operator_a() { { TestViewOperator f; @@ -1034,12 +1049,12 @@ class TestViewAPI { dView4 dx, dy, dz; hView4 hx, hy, hz; - ASSERT_TRUE(dx.data() == 0); - ASSERT_TRUE(dy.data() == 0); - ASSERT_TRUE(dz.data() == 0); - ASSERT_TRUE(hx.data() == 0); - ASSERT_TRUE(hy.data() == 0); - ASSERT_TRUE(hz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_TRUE(dy.data() == nullptr); + ASSERT_TRUE(dz.data() == nullptr); + ASSERT_TRUE(hx.data() == nullptr); + ASSERT_TRUE(hy.data() == nullptr); + ASSERT_TRUE(hz.data() == nullptr); ASSERT_EQ(dx.extent(0), 0u); ASSERT_EQ(dy.extent(0), 0u); ASSERT_EQ(dz.extent(0), 0u); @@ -1096,11 +1111,11 @@ class TestViewAPI { ASSERT_EQ(dx.use_count(), size_t(2)); - ASSERT_FALSE(dx.data() == 0); - ASSERT_FALSE(const_dx.data() == 0); - ASSERT_FALSE(unmanaged_dx.data() == 0); - ASSERT_FALSE(unmanaged_from_ptr_dx.data() == 0); - ASSERT_FALSE(dy.data() == 0); + ASSERT_FALSE(dx.data() == nullptr); + ASSERT_FALSE(const_dx.data() == nullptr); + ASSERT_FALSE(unmanaged_dx.data() == nullptr); + ASSERT_FALSE(unmanaged_from_ptr_dx.data() == nullptr); + ASSERT_FALSE(dy.data() == nullptr); ASSERT_NE(dx, dy); ASSERT_EQ(dx.extent(0), unsigned(N0)); @@ -1139,6 +1154,7 @@ class TestViewAPI { Kokkos::deep_copy(typename hView4::execution_space(), dx, hx); Kokkos::deep_copy(typename hView4::execution_space(), dy, dx); Kokkos::deep_copy(typename hView4::execution_space(), hy, dy); + typename dView4::execution_space().fence(); for (size_t ip = 0; ip < N0; ++ip) for (size_t i1 = 0; i1 < N1; ++i1) @@ -1149,6 +1165,7 @@ class TestViewAPI { Kokkos::deep_copy(typename hView4::execution_space(), dx, T(0)); Kokkos::deep_copy(typename hView4::execution_space(), hx, dx); + typename dView4::execution_space().fence(); for (size_t ip = 0; ip < N0; ++ip) for (size_t i1 = 0; i1 < N1; ++i1) @@ -1172,6 +1189,7 @@ class TestViewAPI { Kokkos::deep_copy(typename dView4::execution_space(), dx, hx); Kokkos::deep_copy(typename dView4::execution_space(), dy, dx); Kokkos::deep_copy(typename dView4::execution_space(), hy, dy); + typename dView4::execution_space().fence(); for (size_t ip = 0; ip < N0; ++ip) for (size_t i1 = 0; i1 < N1; ++i1) @@ -1182,6 +1200,7 @@ class TestViewAPI { Kokkos::deep_copy(typename dView4::execution_space(), dx, T(0)); Kokkos::deep_copy(typename dView4::execution_space(), hx, dx); + typename dView4::execution_space().fence(); for (size_t ip = 0; ip < N0; ++ip) for (size_t i1 = 0; i1 < N1; ++i1) @@ -1233,19 +1252,19 @@ class TestViewAPI { ASSERT_NE(dx, dz); dx = dView4(); - ASSERT_TRUE(dx.data() == 0); - ASSERT_FALSE(dy.data() == 0); - ASSERT_FALSE(dz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_FALSE(dy.data() == nullptr); + ASSERT_FALSE(dz.data() == nullptr); dy = dView4(); - ASSERT_TRUE(dx.data() == 0); - ASSERT_TRUE(dy.data() == 0); - ASSERT_FALSE(dz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_TRUE(dy.data() == nullptr); + ASSERT_FALSE(dz.data() == nullptr); dz = dView4(); - ASSERT_TRUE(dx.data() == 0); - ASSERT_TRUE(dy.data() == 0); - ASSERT_TRUE(dz.data() == 0); + ASSERT_TRUE(dx.data() == nullptr); + ASSERT_TRUE(dy.data() == nullptr); + ASSERT_TRUE(dz.data() == nullptr); } static void run_test_deep_copy_empty() { @@ -1450,6 +1469,11 @@ class TestViewAPI { } static void run_test_error() { +#ifdef KOKKOS_ENABLE_OPENMPTARGET + if (std::is_same::value) + return; +#endif auto alloc_size = std::numeric_limits::max() - 42; try { auto should_always_fail = dView1("hello_world_failure", alloc_size); diff --git a/lib/kokkos/core/unit_test/TestViewAPI_e.hpp b/lib/kokkos/core/unit_test/TestViewAPI_e.hpp index e433535236d819be39cc21a6980caba54a8d1158..40ae0836307b49da833d3b03e4fb380baf56e691 100644 --- a/lib/kokkos/core/unit_test/TestViewAPI_e.hpp +++ b/lib/kokkos/core/unit_test/TestViewAPI_e.hpp @@ -204,13 +204,13 @@ TEST(TEST_CATEGORY, anonymous_space) { test_anonymous_space(); } template struct TestViewOverloadResolution { // Overload based on value_type and rank - static int foo(Kokkos::View a) { return 1; } - static int foo(Kokkos::View a) { return 2; } - static int foo(Kokkos::View a) { return 3; } + static int foo(Kokkos::View /*a*/) { return 1; } + static int foo(Kokkos::View /*a*/) { return 2; } + static int foo(Kokkos::View /*a*/) { return 3; } // Overload based on compile time dimensions - static int bar(Kokkos::View a) { return 4; } - static int bar(Kokkos::View a) { return 5; } + static int bar(Kokkos::View /*a*/) { return 4; } + static int bar(Kokkos::View /*a*/) { return 5; } static void test_function_overload() { Kokkos::View::test_function_overload(); } } // namespace Test + +#include diff --git a/lib/kokkos/core/unit_test/TestViewCopy.hpp b/lib/kokkos/core/unit_test/TestViewCopy.hpp index 27018e7f7ba70706fc60325ccfda0142322eb9d8..6db2d3a4f6d90f1c0073c3fa21b4afdb60a667f9 100644 --- a/lib/kokkos/core/unit_test/TestViewCopy.hpp +++ b/lib/kokkos/core/unit_test/TestViewCopy.hpp @@ -52,124 +52,446 @@ namespace Test { namespace { -template -struct TestViewCopy { - using InExecSpace = ExecSpace; - - static void test_view_copy(const int dim0, const int dim1, const int dim2) { -#if defined(KOKKOS_ENABLE_CUDA) || defined(KOKKOS_ENABLE_ROCM) - // ExecSpace = CudaUVM, CudaHostPinned - // This test will fail at runtime with an illegal memory access if something - // goes wrong Test 1: deep_copy from host_mirror_space to ExecSpace and - // ExecSpace back to host_mirror_space - { - typedef Kokkos::View Rank4ViewType; - Rank4ViewType view_4; - view_4 = Rank4ViewType("view_4", dim0, dim1, dim2, dim2); - - typedef typename Kokkos::Impl::is_space< - InExecSpace>::host_mirror_space::execution_space host_space_type; - Kokkos::View srcView( - "srcView", dim2, dim2); - - // Strided dst view - auto dstView = - Kokkos::subview(view_4, 0, 0, Kokkos::ALL(), Kokkos::ALL()); - - // host_mirror_space to ExecSpace - Kokkos::deep_copy(dstView, srcView); - Kokkos::fence(); - - // ExecSpace to host_mirror_space - Kokkos::deep_copy(srcView, dstView); - Kokkos::fence(); +template +struct CheckResult { + using value_type = typename ViewType::non_const_value_type; + ViewType v; + value_type value; + CheckResult(ViewType v_, value_type value_) : v(v_), value(value_){}; + KOKKOS_FUNCTION + void operator()(const int i, int& lsum) const { + for (int j = 0; j < static_cast(v.extent(1)); j++) { + if (v.access(i, j) != value) lsum++; } + } +}; - // Test 2: deep_copy from Cuda to ExecSpace and ExecSpace back to Cuda - { - typedef Kokkos::View Rank4ViewType; - Rank4ViewType view_4; - view_4 = Rank4ViewType("view_4", dim0, dim1, dim2, dim2); - -#if defined(KOKKOS_ENABLE_CUDA) - typedef typename std::conditional< - Kokkos::Impl::MemorySpaceAccess< - Kokkos::CudaSpace, - typename InExecSpace::memory_space>::accessible, - Kokkos::CudaSpace, InExecSpace>::type space_type; -#endif -#if defined(KOKKOS_ENABLE_ROCM) - typedef typename std::conditional< - Kokkos::Impl::MemorySpaceAccess< - Kokkos::ROCmSpace, - typename InExecSpace::memory_space>::accessible, - Kokkos::ROCmSpace, InExecSpace>::type space_type; -#endif - Kokkos::View srcView( - "srcView", dim2, dim2); - - // Strided dst view - auto dstView = - Kokkos::subview(view_4, 0, 0, Kokkos::ALL(), Kokkos::ALL()); - - // Cuda to ExecSpace - Kokkos::deep_copy(dstView, srcView); - Kokkos::fence(); - - // ExecSpace to Cuda - Kokkos::deep_copy(srcView, dstView); - Kokkos::fence(); - } +template +bool run_check(ViewType v, typename ViewType::value_type value) { + using exec_space = typename ViewType::memory_space::execution_space; + int errors = 0; + Kokkos::fence(); + Kokkos::parallel_reduce(Kokkos::RangePolicy(0, v.extent(0)), + CheckResult(v, value), errors); + return errors == 0; +} - // Test 3: deep_copy from host_space to ExecSpace and ExecSpace back to - // host_space - { - typedef Kokkos::View Rank4ViewType; - Rank4ViewType view_4; - view_4 = Rank4ViewType("view_4", dim0, dim1, dim2, dim2); +} // namespace - typedef Kokkos::HostSpace host_space_type; - Kokkos::View srcView( - "srcView", dim2, dim2); +TEST(TEST_CATEGORY, view_copy_tests) { + int N = 10000; + int M = 10; - // Strided dst view - auto dstView = - Kokkos::subview(view_4, 0, 0, Kokkos::ALL(), Kokkos::ALL()); + Kokkos::View defaulted; + Kokkos::View a("A", N, M); + Kokkos::View b("B", N, M); + auto h_a = Kokkos::create_mirror(a); + auto h_b = Kokkos::create_mirror(b); + auto m_a = Kokkos::create_mirror_view(a); + auto s_a = Kokkos::subview(a, Kokkos::ALL, 1); + auto s_b = Kokkos::subview(b, Kokkos::ALL, 1); + auto hs_a = Kokkos::subview(h_a, Kokkos::ALL, 1); + auto hs_b = Kokkos::subview(h_b, Kokkos::ALL, 1); + auto dev = typename TEST_EXECSPACE::execution_space(); + auto host = Kokkos::DefaultHostExecutionSpace(); + + constexpr bool DevExecCanAccessHost = + Kokkos::Impl::SpaceAccessibility::accessible; + + constexpr bool HostExecCanAccessDev = Kokkos::Impl::SpaceAccessibility< + typename Kokkos::HostSpace::execution_space, + typename TEST_EXECSPACE::memory_space>::accessible; + + // Contiguous copies + { Kokkos::deep_copy(defaulted, defaulted); } + { + Kokkos::deep_copy(a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } + // Non contiguous copies + { + Kokkos::deep_copy(s_a, 5); + ASSERT_TRUE(run_check(s_a, 5)); + } + { + Kokkos::deep_copy(hs_a, 6); + ASSERT_TRUE(run_check(hs_a, 6)); + } + { + Kokkos::deep_copy(s_b, s_a); + ASSERT_TRUE(run_check(s_b, 5)); + } + { + Kokkos::deep_copy(hs_b, hs_a); + ASSERT_TRUE(run_check(hs_b, 6)); + } + if (DevExecCanAccessHost || HostExecCanAccessDev) { + { + Kokkos::deep_copy(hs_b, s_b); + ASSERT_TRUE(run_check(hs_b, 5)); + } + { + Kokkos::deep_copy(s_a, hs_a); + ASSERT_TRUE(run_check(s_a, 6)); + } + } - // host_space to ExecSpace - Kokkos::deep_copy(dstView, srcView); - Kokkos::fence(); + // Contiguous copies + { Kokkos::deep_copy(dev, defaulted, defaulted); } + { + Kokkos::deep_copy(dev, a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(dev, a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(dev, m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(dev, m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(dev, a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(dev, b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(dev, h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(dev, a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(dev, h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(dev, h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(dev, b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } + // Non contiguous copies + { + Kokkos::deep_copy(dev, s_a, 5); + ASSERT_TRUE(run_check(s_a, 5)); + } + { + Kokkos::deep_copy(dev, hs_a, 6); + ASSERT_TRUE(run_check(hs_a, 6)); + } + { + Kokkos::deep_copy(dev, s_b, s_a); + ASSERT_TRUE(run_check(s_b, 5)); + } + { + Kokkos::deep_copy(dev, hs_b, hs_a); + ASSERT_TRUE(run_check(hs_b, 6)); + } + if (DevExecCanAccessHost || HostExecCanAccessDev) { + { + Kokkos::deep_copy(dev, hs_b, s_b); + ASSERT_TRUE(run_check(hs_b, 5)); + } + { + Kokkos::deep_copy(dev, s_a, hs_a); + ASSERT_TRUE(run_check(s_a, 6)); + } + } - // ExecSpace to host_space - Kokkos::deep_copy(srcView, dstView); - Kokkos::fence(); + // Contiguous copies + { Kokkos::deep_copy(host, defaulted, defaulted); } + { + Kokkos::deep_copy(host, a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(host, a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(host, m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(host, m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(host, a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(host, b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(host, h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(host, a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(host, h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(host, h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(host, b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } + // Non contiguous copies + { + Kokkos::deep_copy(host, s_a, 5); + ASSERT_TRUE(run_check(s_a, 5)); + } + { + Kokkos::deep_copy(host, hs_a, 6); + ASSERT_TRUE(run_check(hs_a, 6)); + } + { + Kokkos::deep_copy(host, s_b, s_a); + ASSERT_TRUE(run_check(s_b, 5)); + } + { + Kokkos::deep_copy(host, hs_b, hs_a); + ASSERT_TRUE(run_check(hs_b, 6)); + } + if (DevExecCanAccessHost || HostExecCanAccessDev) { + { + Kokkos::deep_copy(host, hs_b, s_b); + ASSERT_TRUE(run_check(hs_b, 5)); } -#endif - } // end test_view_copy + { + Kokkos::deep_copy(host, s_a, hs_a); + ASSERT_TRUE(run_check(s_a, 6)); + } + } +} -}; // end struct +TEST(TEST_CATEGORY, view_copy_tests_rank_0) { + Kokkos::View defaulted; + Kokkos::View a("A"); + Kokkos::View b("B"); + auto h_a = Kokkos::create_mirror(a); + auto h_b = Kokkos::create_mirror(b); + auto m_a = Kokkos::create_mirror_view(a); + auto dev = typename TEST_EXECSPACE::execution_space(); + auto host = Kokkos::DefaultHostExecutionSpace(); -} // namespace + // No execution space + { Kokkos::deep_copy(defaulted, defaulted); } + { + Kokkos::deep_copy(a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } -TEST(TEST_CATEGORY, view_copy_tests) { - // Only include this file to be compiled with CudaUVM and CudaHostPinned - TestViewCopy::test_view_copy(4, 2, 3); - TestViewCopy::test_view_copy(4, 2, 0); + // Device + { Kokkos::deep_copy(dev, defaulted, defaulted); } + { + Kokkos::deep_copy(dev, a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(dev, a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(dev, m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(dev, m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(dev, a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(dev, b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(dev, h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(dev, a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(dev, h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(dev, h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(dev, b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } + + // Host + { Kokkos::deep_copy(host, defaulted, defaulted); } + { + Kokkos::deep_copy(host, a, 1); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(host, a, a); + ASSERT_TRUE(run_check(a, 1)); + } + { + Kokkos::deep_copy(host, m_a, a); + ASSERT_TRUE(run_check(m_a, 1)); + } + { + Kokkos::deep_copy(host, m_a, 2); + ASSERT_TRUE(run_check(m_a, 2)); + } + { + Kokkos::deep_copy(host, a, m_a); + ASSERT_TRUE(run_check(a, 2)); + } + { + Kokkos::deep_copy(host, b, 3); + ASSERT_TRUE(run_check(b, 3)); + } + { + Kokkos::deep_copy(host, h_a, 4); + ASSERT_TRUE(run_check(h_a, 4)); + } + { + Kokkos::deep_copy(host, a, b); + ASSERT_TRUE(run_check(a, 3)); + } + { + Kokkos::deep_copy(host, h_b, h_a); + ASSERT_TRUE(run_check(h_b, 4)); + } + { + Kokkos::deep_copy(host, h_a, a); + ASSERT_TRUE(run_check(h_a, 3)); + } + { + Kokkos::deep_copy(host, b, h_b); + ASSERT_TRUE(run_check(b, 4)); + } } TEST(TEST_CATEGORY, view_copy_degenerated) { - // Only include this file to be compiled with CudaUVM and CudaHostPinned - Kokkos::View> v_um_def_1; - Kokkos::View> v_um_1( - reinterpret_cast(-1), 0); - Kokkos::View v_m_def_1; - Kokkos::View v_m_1("v_m_1", 0); - - Kokkos::View> v_um_def_2; - Kokkos::View> v_um_2( - reinterpret_cast(-1), 0); - Kokkos::View v_m_def_2; - Kokkos::View v_m_2("v_m_2", 0); + Kokkos::View> + v_um_def_1; + Kokkos::View> + v_um_1(reinterpret_cast(-1), 0); + Kokkos::View v_m_def_1; + Kokkos::View v_m_1("v_m_1", 0); + + Kokkos::View> + v_um_def_2; + Kokkos::View> + v_um_2(reinterpret_cast(-1), 0); + Kokkos::View v_m_def_2; + Kokkos::View v_m_2("v_m_2", 0); Kokkos::deep_copy(v_um_def_1, v_um_def_2); Kokkos::deep_copy(v_um_def_1, v_um_2); diff --git a/lib/kokkos/core/unit_test/TestViewIsAssignable.hpp b/lib/kokkos/core/unit_test/TestViewIsAssignable.hpp new file mode 100644 index 0000000000000000000000000000000000000000..fcf9f75f37a22019e5e5e0713104e2fb7fed30ee --- /dev/null +++ b/lib/kokkos/core/unit_test/TestViewIsAssignable.hpp @@ -0,0 +1,145 @@ +#include + +namespace Test { +namespace Impl { +template +struct TestAssignability { + using mapping_type = + Kokkos::Impl::ViewMapping; + + template + static void try_assign( + ViewTypeDst& dst, ViewTypeSrc& src, + typename std::enable_if::type* = nullptr) { + dst = src; + } + + template + static void try_assign( + ViewTypeDst&, ViewTypeSrc&, + typename std::enable_if::type* = nullptr) { + Kokkos::Impl::throw_runtime_exception( + "TestAssignability::try_assign: Unexpected call path"); + } + + template + static void test(bool always, bool sometimes, Dimensions... dims) { + ViewTypeDst dst; + ViewTypeSrc src("SRC", dims...); + + bool is_always_assignable = + Kokkos::is_always_assignable::value; + bool is_assignable = Kokkos::is_assignable(dst, src); + + // Print out if there is an error with typeid so you can just filter the + // output with c++filt -t to see which assignment causes the error. + if (is_always_assignable != always || is_assignable != sometimes) + printf( + "is_always_assignable: %i (%i), is_assignable: %i (%i) [ %s ] to [ " + "%s ]\n", + is_always_assignable ? 1 : 0, always ? 1 : 0, is_assignable ? 1 : 0, + sometimes ? 1 : 0, typeid(ViewTypeSrc).name(), + typeid(ViewTypeDst).name()); + if (sometimes) { + ASSERT_NO_THROW(try_assign(dst, src)); + } + ASSERT_EQ(always, is_always_assignable); + ASSERT_EQ(sometimes, is_assignable); + } +}; + +} // namespace Impl + +TEST(TEST_CATEGORY, view_is_assignable) { + using namespace Kokkos; + using h_exec = typename DefaultHostExecutionSpace::memory_space; + using d_exec = typename TEST_EXECSPACE::memory_space; + using left = LayoutLeft; + using right = LayoutRight; + using stride = LayoutStride; + // Static/Dynamic Extents + Impl::TestAssignability, + View>::test(true, true, 10); + Impl::TestAssignability, + View>::test(false, true, 10); + Impl::TestAssignability, + View>::test(false, false, 10); + Impl::TestAssignability, + View>::test(true, true); + Impl::TestAssignability, + View>::test(true, true); + Impl::TestAssignability, + View>::test(false, false); + Impl::TestAssignability, + View>::test(true, true, 10, 10); + Impl::TestAssignability, + View>::test(false, true, 10, 10); + Impl::TestAssignability, + View>::test(false, false, 10, + 10); + Impl::TestAssignability, + View>::test(true, true, 10); + Impl::TestAssignability, + View>::test(true, true, 10); + Impl::TestAssignability, + View>::test(false, false, + 10); + + // Mismatch value_type + Impl::TestAssignability, + View>::test(false, false, 10); + + // Layout assignment + Impl::TestAssignability, + View>::test(true, true, 10); + + // This could be made possible (due to the degenerate nature of the views) but + // we do not allow this yet + // TestAssignability,View>::test(false,true,10,1); + Impl::TestAssignability, + View>::test(false, false, 10, + 2); + Impl::TestAssignability, + View>::test(true, true, 10, 2); + Impl::TestAssignability, + View>::test(true, true, 10, 2); + + // Space Assignment + bool expected = Kokkos::Impl::MemorySpaceAccess::assignable; + Impl::TestAssignability, + View>::test(expected, expected, + 10); + expected = Kokkos::Impl::MemorySpaceAccess::assignable; + Impl::TestAssignability, + View>::test(expected, expected, + 10); + + // reference type and const-qualified types + using SomeViewType = View; +#if defined(KOKKOS_ENABLE_CXX17) + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); + static_assert(is_always_assignable_v); +#else + static_assert(is_always_assignable::value, ""); + static_assert(is_always_assignable::value, ""); + static_assert(is_always_assignable::value, + ""); + static_assert(is_always_assignable::value, + ""); + static_assert(is_always_assignable::value, ""); + static_assert(is_always_assignable::value, ""); + static_assert(is_always_assignable::value, + ""); + static_assert(is_always_assignable::value, + ""); +#endif +} +} // namespace Test diff --git a/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp b/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp index 5e373dbbc913be77decd59214c54e4d3f87b979c..583d135f351a1eeb7306105d00f0b022d7160ee5 100644 --- a/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp +++ b/lib/kokkos/core/unit_test/TestViewLayoutStrideAssignment.hpp @@ -56,7 +56,7 @@ namespace Test { TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { typedef TEST_EXECSPACE exec_space; - auto t = time(0); + auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_left_to_layoutleft_assignment: srand(%lu)\n", size_t(t)); @@ -338,7 +338,7 @@ TEST(TEST_CATEGORY, view_layoutstride_left_to_layoutleft_assignment) { TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { typedef TEST_EXECSPACE exec_space; - auto t = time(0); + auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_right_to_layoutright_assignment: srand(%lu)\n", size_t(t)); @@ -620,7 +620,7 @@ TEST(TEST_CATEGORY, view_layoutstride_right_to_layoutright_assignment) { TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { typedef TEST_EXECSPACE exec_space; - auto t = time(0); + auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_right_to_layoutleft_assignment: srand(%lu)\n", size_t(t)); @@ -771,7 +771,7 @@ TEST(TEST_CATEGORY_DEATH, view_layoutstride_right_to_layoutleft_assignment) { TEST(TEST_CATEGORY_DEATH, view_layoutstride_left_to_layoutright_assignment) { typedef TEST_EXECSPACE exec_space; - auto t = time(0); + auto t = time(nullptr); srand(t); // Use current time as seed for random generator printf("view_layoutstride_left_to_layoutright_assignment: srand(%lu)\n", size_t(t)); diff --git a/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp b/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp index 2526a3e7e3cc627733d062615c7cbc8c04c5d9f2..75eef2d69e9c05c913e1c7efb84229f8f9c06209 100644 --- a/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp +++ b/lib/kokkos/core/unit_test/TestViewLayoutTiled.hpp @@ -112,9 +112,10 @@ struct TestViewLayoutTiled { Kokkos::Iterate::Right, Kokkos::Iterate::Right, T0, T1, T2, T3> LayoutRR_4D_2x4x4x2; +#if !defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) + static void test_view_layout_tiled_2d(const int, const int) { +#else static void test_view_layout_tiled_2d(const int N0, const int N1) { -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) const int FT = T0 * T1; const int NT0 = int(std::ceil(N0 / T0)); @@ -382,15 +383,14 @@ struct TestViewLayoutTiled { ASSERT_EQ(counter_subview, long(0)); ASSERT_EQ(counter_inc, long(0)); } // end scope -#endif #endif } // end test_view_layout_tiled_2d +#if !defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) + static void test_view_layout_tiled_3d(const int, const int, const int) { +#else static void test_view_layout_tiled_3d(const int N0, const int N1, const int N2) { -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) - const int FT = T0 * T1 * T2; const int NT0 = int(std::ceil(N0 / T0)); @@ -680,14 +680,15 @@ struct TestViewLayoutTiled { ASSERT_EQ(counter_subview, long(0)); ASSERT_EQ(counter_inc, long(0)); } // end scope -#endif #endif } // end test_view_layout_tiled_3d +#if !defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) + static void test_view_layout_tiled_4d(const int, const int, const int, + const int){ +#else static void test_view_layout_tiled_4d(const int N0, const int N1, const int N2, const int N3) { -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) const int FT = T0 * T1 * T2 * T3; const int NT0 = int(std::ceil(N0 / T0)); @@ -1027,7 +1028,6 @@ struct TestViewLayoutTiled { ASSERT_EQ(counter_subview, long(0)); ASSERT_EQ(counter_inc, long(0)); } // end scope -#endif #endif } // end test_view_layout_tiled_4d diff --git a/lib/kokkos/core/unit_test/TestViewMapping_a.hpp b/lib/kokkos/core/unit_test/TestViewMapping_a.hpp index 5e27cc5e51fac77c2f69e827f6ff2dc8f27d09c3..7bd6353c2b8f881e80f429a30cab75859246fba0 100644 --- a/lib/kokkos/core/unit_test/TestViewMapping_a.hpp +++ b/lib/kokkos/core/unit_test/TestViewMapping_a.hpp @@ -77,7 +77,9 @@ void test_view_mapping() { typedef Kokkos::Impl::ViewDimension<0, 0, 0, 0, 0, 0, 0, 0> dim_s0_s0_s0_s0_s0_s0_s0_s0; - // Fully static dimensions should not be larger than an int. +// Fully static dimensions should not be larger than an int. +#ifndef _WIN32 // For some reason on Windows the first test here fails with + // size being 7 bytes on windows??? ASSERT_LE(sizeof(dim_0), sizeof(int)); ASSERT_LE(sizeof(dim_s2), sizeof(int)); ASSERT_LE(sizeof(dim_s2_s3), sizeof(int)); @@ -98,7 +100,7 @@ void test_view_mapping() { ASSERT_EQ(sizeof(dim_s0_s0_s0_s0_s0_s0), 6 * sizeof(unsigned)); ASSERT_LE(sizeof(dim_s0_s0_s0_s0_s0_s0_s0), 8 * sizeof(unsigned)); ASSERT_EQ(sizeof(dim_s0_s0_s0_s0_s0_s0_s0_s0), 8 * sizeof(unsigned)); - +#endif static_assert(int(dim_0::rank) == int(0), ""); static_assert(int(dim_0::rank_dynamic) == int(0), ""); static_assert(int(dim_0::ArgN0) == 1, ""); @@ -900,7 +902,7 @@ void test_view_mapping() { ASSERT_TRUE(offset.span_is_contiguous()); Kokkos::Impl::ViewMapping v( - Kokkos::Impl::ViewCtorProp((int*)0), stride); + Kokkos::Impl::ViewCtorProp(nullptr), stride); } { @@ -1076,17 +1078,20 @@ void test_view_mapping() { typedef typename Kokkos::Impl::HostMirror::Space::execution_space host_exec_space; - Kokkos::parallel_for( - Kokkos::RangePolicy(0, 10), KOKKOS_LAMBDA(int) { - // 'a' is captured by copy, and the capture mechanism converts 'a' to + int errors = 0; + Kokkos::parallel_reduce( + Kokkos::RangePolicy(0, 10), + KOKKOS_LAMBDA(int, int& e) { // an unmanaged copy. When the parallel dispatch accepts a move for // the lambda, this count should become 1. - ASSERT_EQ(a.use_count(), 2); + if (a.use_count() != 2) ++e; V x = a; - ASSERT_EQ(a.use_count(), 2); - ASSERT_EQ(x.use_count(), 2); - }); + if (a.use_count() != 2) ++e; + if (x.use_count() != 2) ++e; + }, + errors); + ASSERT_EQ(errors, 0); #endif // #if !defined( KOKKOS_ENABLE_CUDA_LAMBDA ) } } @@ -1106,7 +1111,7 @@ struct TestViewMapOperator { #endif KOKKOS_INLINE_FUNCTION - void test_left(size_t i0, long& error_count) const { + void test_left(size_t i0, int64_t& error_count) const { #ifdef KOKKOS_ENABLE_DEPPRECATED_CODE typename ViewType::value_type* const base_ptr = &v(0, 0, 0, 0, 0, 0, 0, 0); #else @@ -1121,7 +1126,7 @@ struct TestViewMapOperator { const size_t n6 = v.extent(6); const size_t n7 = v.extent(7); - long offset = 0; + int64_t offset = 0; for (size_t i7 = 0; i7 < n7; ++i7) for (size_t i6 = 0; i6 < n6; ++i6) @@ -1131,9 +1136,10 @@ struct TestViewMapOperator { for (size_t i2 = 0; i2 < n2; ++i2) for (size_t i1 = 0; i1 < n1; ++i1) { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const long d = &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; + const int64_t d = + &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; #else - const long d = + const int64_t d = &v.access(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; #endif if (d < offset) ++error_count; @@ -1144,7 +1150,7 @@ struct TestViewMapOperator { } KOKKOS_INLINE_FUNCTION - void test_right(size_t i0, long& error_count) const { + void test_right(size_t i0, int64_t& error_count) const { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE typename ViewType::value_type* const base_ptr = &v(0, 0, 0, 0, 0, 0, 0, 0); #else @@ -1159,7 +1165,7 @@ struct TestViewMapOperator { const size_t n6 = v.extent(6); const size_t n7 = v.extent(7); - long offset = 0; + int64_t offset = 0; for (size_t i1 = 0; i1 < n1; ++i1) for (size_t i2 = 0; i2 < n2; ++i2) @@ -1169,9 +1175,10 @@ struct TestViewMapOperator { for (size_t i6 = 0; i6 < n6; ++i6) for (size_t i7 = 0; i7 < n7; ++i7) { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE - const long d = &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; + const int64_t d = + &v(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; #else - const long d = + const int64_t d = &v.access(i0, i1, i2, i3, i4, i5, i6, i7) - base_ptr; #endif if (d < offset) ++error_count; @@ -1182,7 +1189,7 @@ struct TestViewMapOperator { } KOKKOS_INLINE_FUNCTION - void operator()(size_t i, long& error_count) const { + void operator()(size_t i, int64_t& error_count) const { if (std::is_same::value) { test_left(i, error_count); @@ -1245,7 +1252,7 @@ struct TestViewMapOperator { v.extent(4) * v.extent(5) * v.extent(6) * v.extent(7), v.span()); - long error_count; + int64_t error_count; Kokkos::RangePolicy range(0, v.extent(0)); Kokkos::parallel_reduce(range, *this, error_count); diff --git a/lib/kokkos/core/unit_test/TestView_64bit.hpp b/lib/kokkos/core/unit_test/TestView_64bit.hpp index 0b7b9d425aae0f7b27490000baefda62067f04c6..7dc47ccb0f299133a30f042626c2f45151de19ee 100644 --- a/lib/kokkos/core/unit_test/TestView_64bit.hpp +++ b/lib/kokkos/core/unit_test/TestView_64bit.hpp @@ -55,7 +55,7 @@ void test_64bit() { Kokkos::parallel_reduce( Kokkos::RangePolicy>(0, N), - KOKKOS_LAMBDA(const int64_t& i, int64_t& lsum) { lsum += 1; }, sum); + KOKKOS_LAMBDA(const int64_t& /*i*/, int64_t& lsum) { lsum += 1; }, sum); ASSERT_EQ(N, sum); } { diff --git a/lib/kokkos/core/unit_test/UnitTestConfig.make b/lib/kokkos/core/unit_test/UnitTestConfig.make index 97f4af5a8b7d9eeb7568363eeca17b0cca2f8533..5c93bf69fbda1d0388aa833aa790b8b91e116e01 100644 --- a/lib/kokkos/core/unit_test/UnitTestConfig.make +++ b/lib/kokkos/core/unit_test/UnitTestConfig.make @@ -8,7 +8,7 @@ KOKKOS_ARCH_OPTIONS="None AMDAVX ARMv80 ARMv81 ARMv8-ThunderX \ Maxwell Maxwell50 Maxwell52 Maxwell53 Pascal60 Pascal61" #KOKKOS_ARCH_OPTIONS="AMDAVX" -KOKKOS_DEVICE_OPTIONS="Cuda ROCm OpenMP Pthread Serial Qthreads" +KOKKOS_DEVICE_OPTIONS="Cuda ROCm OpenMP Pthread Serial" #KOKKOS_DEVICE_OPTIONS="Cuda" # Configure paths to enable environment query in Makefile.kokkos to work diff --git a/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt b/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt index 72fef0a3e81fc52f321f25476149e675aede9042..5d5901739447b66c4ac5c73182482d4a055dee31 100644 --- a/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt +++ b/lib/kokkos/core/unit_test/config/cmaketest/CMakeLists.txt @@ -56,20 +56,20 @@ foreach(KOKKOS_HOST_ARCH ${KOKKOS_HOST_ARCH_LIST}) set(NEWCONFH ${PREFIX}${KOKKOS_CONFIG_HEADER}) file(RENAME ${KOKKOS_CMAKEFILE} ${NEWCMAKE}) file(RENAME ${KOKKOS_CONFIG_HEADER} ${NEWCONFH}) - - add_test(NAME ${NEWCMAKE}-test + + add_test(NAME ${NEWCMAKE}-test COMMAND ${KOKKOS_TESTDIR}/testmake.sh ${NEWCMAKE} ${KOKKOS_HOST_ARCH} ${KOKKOS_DEV} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) - set_tests_properties(${NEWCMAKE}-test + set_tests_properties(${NEWCMAKE}-test PROPERTIES PASS_REGULAR_EXPRESSION Passed TIMEOUT 15 ) - add_test(NAME ${NEWCONFH}-test - COMMAND ${KOKKOS_TESTDIR}/diffconfig.sh ${NEWCONFH} + add_test(NAME ${NEWCONFH}-test + COMMAND ${KOKKOS_TESTDIR}/diffconfig.sh ${NEWCONFH} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) - set_tests_properties(${NEWCONFH}-test + set_tests_properties(${NEWCONFH}-test PROPERTIES PASS_REGULAR_EXPRESSION Passed TIMEOUT 15 ) diff --git a/lib/kokkos/core/unit_test/config/results/AMDAVX_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/AMDAVX_Qthreads_KokkosCore_config.h deleted file mode 100644 index fb5d2146300a1c256f054d74f369af05a89c9f5e..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/AMDAVX_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:11 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Qthreads_KokkosCore_config.h deleted file mode 100644 index 3865bc4a9a78f8de925bf1a9f12e64677cb6a4c3..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv8-ThunderX_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:20 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 -#define KOKKOS_ARCH_ARMV8_THUNDERX 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv80_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv80_Qthreads_KokkosCore_config.h deleted file mode 100644 index 7259a9e9641c999ca267fe68c2b1103db3c0f7b3..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv80_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:14 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV80 1 diff --git a/lib/kokkos/core/unit_test/config/results/ARMv81_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/ARMv81_Qthreads_KokkosCore_config.h deleted file mode 100644 index e9fc71ad9b6e3bc87104ed9e01ff77962c6454d7..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/ARMv81_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,17 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:17 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_ARMV81 1 diff --git a/lib/kokkos/core/unit_test/config/results/BDW_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BDW_Qthreads_KokkosCore_config.h deleted file mode 100644 index e879e7e1fe97c136d8a9b9b918ef12ed6fa8a7d9..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/BDW_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:39 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/BGQ_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/BGQ_Qthreads_KokkosCore_config.h deleted file mode 100644 index 60c7ddcdb5ee17892128e8708df6ec3a01f7184c..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/BGQ_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:44 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/HSW_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/HSW_Qthreads_KokkosCore_config.h deleted file mode 100644 index 253dc35bdfd023ea433d70f9851354f012b936a0..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/HSW_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:36 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX2 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNC_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNC_Qthreads_KokkosCore_config.h deleted file mode 100644 index 5f95a83c272fba8de39b91e292307946adf2d062..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/KNC_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:45 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_KNC -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_KNC 1 diff --git a/lib/kokkos/core/unit_test/config/results/KNL_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/KNL_Qthreads_KokkosCore_config.h deleted file mode 100644 index 6d179d82f8eb3601b289caaad130079145c53d89..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/KNL_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:48 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512MIC 1 diff --git a/lib/kokkos/core/unit_test/config/results/Kepler30_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler30_Qthreads_KokkosCore_config.h deleted file mode 100644 index 410ba5ea1599c4d4dda57f0853e58572fb1a35fe..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler30_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:50 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler32_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler32_Qthreads_KokkosCore_config.h deleted file mode 100644 index f42d0cc5f2fb11a336d37ee7588bd010fdbf4d0e..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler32_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:53 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler35_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler35_Qthreads_KokkosCore_config.h deleted file mode 100644 index 429f5e9e28df4de2a5c559bf8e4b20fe623653cf..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler35_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:55 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler37_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler37_Qthreads_KokkosCore_config.h deleted file mode 100644 index 2b8a7f818350f4861cc71e9d65ce9235ef84dc00..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler37_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:59 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Kepler_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Kepler_Qthreads_KokkosCore_config.h deleted file mode 100644 index 021d18c0025b208c04c402e47b93e3251f37382b..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Kepler_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:51 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell50_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell50_Qthreads_KokkosCore_config.h deleted file mode 100644 index be1353365c71f9681ff2b281d94a36016523f39c..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell50_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:02 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell52_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell52_Qthreads_KokkosCore_config.h deleted file mode 100644 index 58a043c6a3ed49a89b8d29a3a9ba857a6174cc81..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell52_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:05 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell53_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell53_Qthreads_KokkosCore_config.h deleted file mode 100644 index 96fdbef3dcbe8960e8d0db572321f88b0d3eccc5..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell53_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:08 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Maxwell_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Maxwell_Qthreads_KokkosCore_config.h deleted file mode 100644 index a7f1fd3803bfffd03caaca89dcd72a0213ccada2..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Maxwell_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:20:01 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/None_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/None_Qthreads_KokkosCore_config.h deleted file mode 100644 index 6bd8addd97479b4ffe9aca8cb0bc5fa904d38164..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/None_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Tue Sep 26 15:19:23 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal60_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal60_Qthreads_KokkosCore_config.h deleted file mode 100644 index c5a2d1d707ff8effffb4b99bfe8066ef7706ad9f..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal60_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:10 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Pascal61_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Pascal61_Qthreads_KokkosCore_config.h deleted file mode 100644 index 958aac11da7b579c2d7642a2eae5d74952c13423..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Pascal61_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,16 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:23:13 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ diff --git a/lib/kokkos/core/unit_test/config/results/Power7_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power7_Qthreads_KokkosCore_config.h deleted file mode 100644 index dffa8a3f58214b5d7637970bca815e0d22419d3e..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Power7_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:22 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCBE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER7 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power8_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power8_Qthreads_KokkosCore_config.h deleted file mode 100644 index 9da90f4f7e823e7c267f790d6c9f588c8d038c5d..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Power8_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:25 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER8 1 diff --git a/lib/kokkos/core/unit_test/config/results/Power9_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/Power9_Qthreads_KokkosCore_config.h deleted file mode 100644 index 5c5be2ed3cbc5328d0c639d58d2f503a0ca8da3a..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/Power9_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:28 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_POWERPCLE -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_POWER9 1 diff --git a/lib/kokkos/core/unit_test/config/results/SKX_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SKX_Qthreads_KokkosCore_config.h deleted file mode 100644 index 2e4b1d61ef92c6580ce2d25e4b2a1855b5e06221..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/SKX_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:42 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_ENABLE_TM -#endif -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX512XEON 1 diff --git a/lib/kokkos/core/unit_test/config/results/SNB_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/SNB_Qthreads_KokkosCore_config.h deleted file mode 100644 index 2f0216f9c4b859024720575e59c5881d3131eb4b..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/SNB_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:34 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_AVX 1 diff --git a/lib/kokkos/core/unit_test/config/results/WSM_Qthreads_KokkosCore_config.h b/lib/kokkos/core/unit_test/config/results/WSM_Qthreads_KokkosCore_config.h deleted file mode 100644 index d4a78790e399737f15b9f2507bcf41d531281a21..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/config/results/WSM_Qthreads_KokkosCore_config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* --------------------------------------------- -Makefile constructed configuration: -Fri Sep 22 17:22:31 MDT 2017 -----------------------------------------------*/ -#if !defined(KOKKOS_MACROS_HPP) || defined(KOKKOS_CORE_CONFIG_H) -#error "Do not include KokkosCore_config.h directly; include Kokkos_Macros.hpp instead." -#else -#define KOKKOS_CORE_CONFIG_H -#endif -/* Execution Spaces */ -#define KOKKOS_HAVE_QTHREADS 1 -#ifndef __CUDA_ARCH__ -#define KOKKOS_USE_ISA_X86_64 -#endif -/* General Settings */ -#define KOKKOS_HAVE_CXX11 1 -#define KOKKOS_ENABLE_PROFILING -/* Optimization Settings */ -/* Cuda Settings */ -#define KOKKOS_ARCH_SSE42 1 diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_BitSet.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_BitSet.cpp rename to lib/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp index 5306ab3883753875bf9b3a2ee3ce6b9058eddfe6..31b36cbd8a453ca4b769635f84e5f376605d6344 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_BitSet.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_Concepts.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -44,4 +43,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp index 16793abe0824f6a7cafb4ecac4fa32dde6be00e8..e8ce7381b4cc5838f05f2a5c8e205606a2a46e66 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_DeepCopyAlignment.cpp @@ -43,6 +43,4 @@ */ #include -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) #include -#endif diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_OffsetView.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_OffsetView.cpp rename to lib/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp index b2e851d0999ad1267bc0906bed123220c58bf5b8..1317705399cf0ce4e302e4238a19971c9338b0ae 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_OffsetView.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_RangePolicyRequire.cpp @@ -44,4 +44,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_Spaces.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_Spaces.cpp index 800d589e94a044a41b92e9daa90285cda6e4e7cf..d68ffb0865507c356247a8b3a5fcad6f9090b019 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_Spaces.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_Spaces.cpp @@ -280,73 +280,6 @@ TEST(cuda, uvm) { } } -/* Removing UVM Allocs Test due to added time to complete overall unit test - * The issue verified with this unit test appears to no longer be an - * problem. Refer to github issue 1880 for more details - * -TEST( cuda, uvm_num_allocs ) -{ - // The max number of UVM allocations allowed is 65536. - #define MAX_NUM_ALLOCS 65536 - - if ( Kokkos::CudaUVMSpace::available() ) { - struct TestMaxUVMAllocs { - - using view_type = Kokkos::View< double*, Kokkos::CudaUVMSpace >; - using view_of_view_type = Kokkos::View< view_type[ MAX_NUM_ALLOCS ] - , Kokkos::CudaUVMSpace >; - - TestMaxUVMAllocs() : view_allocs_test( "view_allocs_test" ) - { - for ( auto i = 0; i < MAX_NUM_ALLOCS; ++i ) { - - // Kokkos will throw a runtime exception if an attempt is made to - // allocate more than the maximum number of uvm allocations. - - // In this test, the max num of allocs occurs when i = MAX_NUM_ALLOCS -- 1 - // since the 'outer' view counts as one UVM allocation, leaving - // 65535 possible UVM allocations, that is 'i in [0, 65535)'. - - // The test will catch the exception thrown in this case and continue. - - if ( i == ( MAX_NUM_ALLOCS - 1 ) ) { - EXPECT_ANY_THROW( { view_allocs_test( i ) = view_type( "inner_view", -1 ); } ); - } - else { - if ( i < MAX_NUM_ALLOCS - 1000 ) { - EXPECT_NO_THROW( { view_allocs_test( i ) = view_type( -"inner_view", 1 ); } ); } else { // This might or might not throw depending on -compilation options. try { view_allocs_test( i ) = view_type( "inner_view", 1 ); - } - catch ( ... ) {} - } - } - - } // End allocation for loop. - - for ( auto i = 0; i < MAX_NUM_ALLOCS - 1; ++i ) { - - view_allocs_test( i ) = view_type(); - - } // End deallocation for loop. - - view_allocs_test = view_of_view_type(); // Deallocate the view of views. - } - - // Member. - view_of_view_type view_allocs_test; - }; - - // Trigger the test via the TestMaxUVMAllocs constructor. - TestMaxUVMAllocs(); - } - - #undef MAX_NUM_ALLOCS -} -*/ - template struct TestViewCudaAccessible { enum { N = 1000 }; diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_Team.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_Team.cpp index 93aae95baccc42fb9a7af94115e5226456770a1a..fe57437989ed15fbfdd2b75802baa257a79c225c 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_Team.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_Team.cpp @@ -79,26 +79,100 @@ TEST(TEST_CATEGORY, team_reduce) { Kokkos::Schedule >::test_reduce(1000); } -TEST(TEST_CATEGORY, team_broadcast) { - TestTeamBroadcast >::test_teambroadcast(0); - TestTeamBroadcast >::test_teambroadcast(0); - - TestTeamBroadcast >::test_teambroadcast(2); - TestTeamBroadcast >::test_teambroadcast(2); - - TestTeamBroadcast >::test_teambroadcast(16); - TestTeamBroadcast >::test_teambroadcast(16); - - TestTeamBroadcast >:: - test_teambroadcast(1000); - TestTeamBroadcast >:: - test_teambroadcast(1000); +TEST(TEST_CATEGORY, team_broadcast_long) { + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + + // TestTeamBroadcast, long + // >:: + // test_teambroadcast(1000, 1); + // TestTeamBroadcast, long + // >:: + // test_teambroadcast(1000, 1); +} + +TEST(TEST_CATEGORY, team_broadcast_char) { + TestTeamBroadcast, + unsigned char>::test_teambroadcast(0, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(0, 1); + + TestTeamBroadcast, + unsigned char>::test_teambroadcast(2, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(2, 1); + + TestTeamBroadcast, + unsigned char>::test_teambroadcast(16, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(16, 1); + + // TestTeamBroadcast, long + // >:: + // test_teambroadcast(1000, 1); + // TestTeamBroadcast, long + // >:: + // test_teambroadcast(1000, 1); +} + +TEST(TEST_CATEGORY, team_broadcast_float) { + TestTeamBroadcast, + float>::test_teambroadcast(0, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(2, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(16, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(16, 1.3); + + // TestTeamBroadcast, float + // >:: + // test_teambroadcast(1000, 1.3); + // TestTeamBroadcast, float + // >:: + // test_teambroadcast(1000, 1.3); +} + +TEST(TEST_CATEGORY, team_broadcast_double) { + TestTeamBroadcast, + double>::test_teambroadcast(0, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(2, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(16, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(16, 1.3); + + // TestTeamBroadcast, double + // >:: + // test_teambroadcast(1000, 1.3); + // TestTeamBroadcast, + // double >:: + // test_teambroadcast(1000, 1.3); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp index 858bf599b5e92eb98968adfe28692b3bee77153b..63291dbbb4980001c54ef99b5f636c0ebb360235 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_TeamScratch.cpp @@ -58,7 +58,6 @@ TEST(TEST_CATEGORY, team_scratch_request) { } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam >(); @@ -68,7 +67,6 @@ TEST(TEST_CATEGORY, team_lambda_shared_request) { TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment(); } #endif -#endif TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } diff --git a/lib/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp b/lib/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp index a15bdbd8d3a756221b55739d76cd3591d212d051..754b90acac452b5bcaf4813dfb715a23b8c35dc8 100644 --- a/lib/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp +++ b/lib/kokkos/core/unit_test/cuda/TestCuda_ViewAPI_e.cpp @@ -44,3 +44,4 @@ #include #include +#include diff --git a/lib/kokkos/core/unit_test/default/TestDefaultDeviceType_d.cpp b/lib/kokkos/core/unit_test/default/TestDefaultDeviceType_d.cpp index 3502e1762f3bbc8aa59cfd2bf55f006e80e9b0d8..ff87b7802cfdababbd3ce6994f8f794d44bb4d24 100644 --- a/lib/kokkos/core/unit_test/default/TestDefaultDeviceType_d.cpp +++ b/lib/kokkos/core/unit_test/default/TestDefaultDeviceType_d.cpp @@ -61,7 +61,7 @@ TEST(defaultdevicetype, malloc) { Kokkos::kokkos_free(data); int* data2 = (int*)Kokkos::kokkos_malloc(0); - ASSERT_TRUE(data2 == NULL); + ASSERT_TRUE(data2 == nullptr); Kokkos::kokkos_free(data2); } diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Category.hpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_Category.hpp similarity index 91% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_Category.hpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_Category.hpp index fc0a08870044a6b6949f4928efca4e24a457ab84..12c69926c7bfc10ec7fef02d9e96c39691c557d6 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Category.hpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_Category.hpp @@ -42,13 +42,12 @@ //@HEADER */ -#ifndef KOKKOS_TEST_QTHREADS_HPP -#define KOKKOS_TEST_QTHREADS_HPP +#ifndef KOKKOS_TEST_HIPHOSTPINNED_HPP +#define KOKKOS_TEST_HIPHOSTPINNED_HPP #include -#define TEST_CATEGORY qthreads -#define TEST_CATEGORY_DEATH qthreads_DeathTest -#define TEST_EXECSPACE Kokkos::Qthreads +#define TEST_CATEGORY hip_hostpinned +#define TEST_EXECSPACE Kokkos::Experimental::HIPHostPinnedSpace #endif diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c10.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp similarity index 91% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c10.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp index e42c464020d9efab7f6b5a8c60d963aaa44604bd..7b2db4f8bcc3025c2ca1cc365291a0c1e5a700fb 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c10.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_SharedAlloc.cpp @@ -42,14 +42,13 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_3d_from_5d_right) { -#if 0 - TestViewSubview::test_3d_subview_5d_right< Kokkos::Qthreads >(); -#endif +TEST(TEST_CATEGORY, impl_shared_alloc) { + test_shared_alloc(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_a.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_a.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_a.cpp index 4339c1b5a020b17aec80ad9cc4dafec5f92e28c4..53f0371b23dfd0cd32044ba70a4b106f2f7b9a45 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_a.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_a.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_b.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_b.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_b.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_b.cpp index bcbef94ab7ee63c11d8fc8dbe35c64ea8e528380..2e3685d6102d75b8516846f80bc4c3fb959a93b7 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_b.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_b.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_c.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_c.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_c.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_c.cpp index 21c9fd890cf8240e5f21c565ef78f8eb3d7463fe..079a244d43ee4e2570dc85cdb6bc6d8957769d55 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_c.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_c.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_d.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_d.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_d.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_d.cpp index ef4bddc57253cfc1f14397f2adfd116e57e97f7b..bc3843b2c1dcc0eff3282c40426af11c1a7e8098 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_d.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_d.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_e.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_e.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_e.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_e.cpp index bba5916a5ab99d29181670aca118b708aae58248..1c80e05fe0f9f5671f6c394f2ab37ba9fece0d48 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_ViewAPI_e.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewAPI_e.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynamicView.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_DynamicView.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy.cpp index 9eccb05a25d55165da409e45100c375ff3a3e0ae..59674ad22f67cabc8dbad834966e93be2c519176 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynamicView.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewCopy.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,5 +42,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_rank12345.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_a.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_rank12345.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_a.cpp index 66d2d17e8b499daf78fd7d114a3c66c4bbb027fe..f9b5608d1b2b7a7a413d24b31e5f2f09e832fc54 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_rank12345.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_a.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,5 +42,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_generic.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_b.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_generic.cpp rename to lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_b.cpp index 609c8b41a535213a1a9dac6053ae74e24fa5aa1b..bff68fc07253e3602412a133abc61ee5f4a4e062 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DynRankViewAPI_generic.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_b.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -43,5 +42,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_subview.cpp b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_subview.cpp new file mode 100644 index 0000000000000000000000000000000000000000..cfa9da549593e817b3eb79cd33fd75ce87953e73 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIPHostPinned_ViewMapping_subview.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_complexdouble.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_complexdouble.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp index 9c6589539a981e6c9eceea5713d7775e490713bb..644a825bfceb7362a8424715ee5e8e5a460873d1 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_complexdouble.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexdouble.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_complexfloat.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_complexfloat.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp index 1163da7285d45cc56b9920fb48b0220920b4a9eb..f8aaed88cba947ef0414e724f91a5a31f34a9982 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_complexfloat.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_complexfloat.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_double.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_double.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp index aee8ccde7fc79335591ebd22860f97ae0553dacf..9adeaa76ba0b9211ae0bdc4a4b3414b85ef8ed77 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_double.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_double.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_float.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_float.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp index 0bfa8d43d6aa9a12d26813781c2d796e70cfc77b..ba7c6d9bc3a215ece362392b3e898b95837d224d 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_float.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_float.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_int.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_int.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp index 8900daf81ea5aaa6482d87a5106d6a0d11b9403e..840f2dbd061c3f423e7e888e200944ee6d445ee7 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_int.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_int.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_longint.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_longint.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp index 9dcff9231284beda7f3ab416628d2a94afd40fa3..be305076636e1fc1c1fe981bfb513101fd645db9 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_longint.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longint.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_longlongint.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_longlongint.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp index 0f5a0b7df744d4658cab72b199159136b6ab4e90..85f54dee1413e15acee8bdae89d3a2decfa54968 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_longlongint.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_longlongint.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_unsignedint.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_unsignedint.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp index eee44e84a322f20c9d1c149d54731ad9a6671f08..d738b608c2938a0513349500b1ad07b42d6ab4c0 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_unsignedint.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedint.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_unsignedlongint.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_unsignedlongint.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp index 9379a6efa87e2b12dc85f57b1296ff529b47df67..ab25f5d142a3c0078ce17c839ae0376d01d07e0d 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_AtomicOperations_unsignedlongint.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicOperations_unsignedlongint.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DualView.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_DualView.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp index 5641966db432f2764eab8b1c0f3b6488306172ca..0dae0cb9ebb858cbed9822b31514852f6d13f0ec 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_DualView.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_AtomicViews.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dda1388237d3379a34cb210817e3c6af445bd9eb --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Atomics.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Category.hpp b/lib/kokkos/core/unit_test/hip/TestHIP_Category.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8cae165c3374330148023ac58d832b317692a752 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Category.hpp @@ -0,0 +1,53 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef KOKKOS_TEST_HIP_HPP +#define KOKKOS_TEST_HIP_HPP + +#include + +#define TEST_CATEGORY hip +#define TEST_EXECSPACE Kokkos::Experimental::HIP + +#endif diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_Vector.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Complex.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_Vector.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_Complex.cpp index 408d0c76fc2860b753a0a82ee5699ea420268ff3..f628fb834f174971d394279e90d81348dafd75a1 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_Vector.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Complex.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bfdfda15dbe307722a5d87fd58d63f1954622245 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Concepts.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Crs.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Crs.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b01b787743a87faab6e5d4e71ace54538cd82164 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Crs.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_DeepCopyAlignment.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_DeepCopyAlignment.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp index edfaa08d29ec24ae5bde5f799f1bc647fb928dff..43f9d4b5c305dd934cba4b72dbb5ae87f641b31f 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_DeepCopyAlignment.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_DeepCopyAlignment.cpp @@ -42,5 +42,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/containers/unit_tests/cuda/TestCuda_ErrorReporter.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/cuda/TestCuda_ErrorReporter.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp index 806a3c6eccb10cf0d02c0ad0a709513572f86a6d..f3ae5f47ca9a9fcd864e09fa1de554da16bac819 100644 --- a/lib/kokkos/containers/unit_tests/cuda/TestCuda_ErrorReporter.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_FunctorAnalysis.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Init.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Init.cpp new file mode 100644 index 0000000000000000000000000000000000000000..16a73293b37a0afdd321e1834cf010e377323285 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Init.cpp @@ -0,0 +1,49 @@ + +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0dc279fc78aa9e36b0306ef7fc7e1f4a8cc7dc5c --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_InterOp_Init.cpp @@ -0,0 +1,85 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +__global__ void offset(int* p) { + int idx = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x; + if (idx < 100) { + p[idx] += idx; + } +} + +// Test whether allocations survive Kokkos initialize/finalize if done via Raw +// HIP. +TEST(hip, raw_hip_interop) { + int* p; + hipMalloc(&p, sizeof(int) * 100); + Kokkos::InitArguments arguments{-1, -1, -1, false}; + Kokkos::initialize(arguments); + + Kokkos::View> v(p, 100); + Kokkos::deep_copy(v, 5); + + Kokkos::finalize(); + + hipLaunchKernelGGL(offset, dim3(100), dim3(100), 0, 0, p); + HIP_SAFE_CALL(hipDeviceSynchronize()); + + int* h_p = new int[100]; + hipMemcpy(h_p, p, sizeof(int) * 100, hipMemcpyDefault); + HIP_SAFE_CALL(hipDeviceSynchronize()); + int64_t sum = 0; + int64_t sum_expect = 0; + for (int i = 0; i < 100; i++) { + sum += h_p[i]; + sum_expect += 5 + i; + } + + ASSERT_EQ(sum, sum_expect); +} +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4fc7ca680b1508ebe867d6c35ce1d53a9c41abff --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_LocalDeepCopy.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_a.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp index 7067d841e3e3458a5d9828846b2b8602098d46cb..6bf23f1b2c219b02211c75513c36054915c44f14 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_a.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_a.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_b.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_b.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp index 1f4ba9c984f6e0ee7fc24293793a80f0b2f74b0e..d820fa02c9f10b68aa23467c68d7f1c4a6f2440d 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_b.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_b.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_c.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_c.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp index 37b4671d0553339a98090f6c3b4c36f77d6b6f74..5c70cf6c6ce49f498a3b50edc85321a537f4678e 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_c.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_c.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_d.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_d.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp index 2bd1fbbfd512b06204ca940c6cd816a10e44ca8a..a18fc24d118542630d59bbb6c53f39ed598c2ae0 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_d.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_d.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_e.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp similarity index 97% rename from lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_e.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp index 659dd23d7fd03e9ad8a86fa22250c90002ed2d99..fe011213d3c3d39456193ced47e69668b019b476 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQqthreads_MDRange_e.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_MDRange_e.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include +#include #include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_Vector.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp similarity index 96% rename from lib/kokkos/containers/unit_tests/hpx/TestHPX_Vector.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp index d42cef4b28809b6c220b78201a22028f59d83771..5c8741820998b6253209d77f2e2c2879f3ba628a 100644 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_Vector.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_RangePolicy.cpp @@ -43,5 +43,5 @@ //@HEADER */ -#include -#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6cf9a36f9fd2b250f3c9f4e848b0a154a2933baf --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_RangePolicyRequire.cpp @@ -0,0 +1,47 @@ + +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ec9331d50cf0a3f993578e1622588b3549d8d092 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_a.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c51c76ae2f2a5e326caf28b88eb23a816f7a9406 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_b.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp new file mode 100644 index 0000000000000000000000000000000000000000..42c21390a2cec861647414465d428ce86a7ec4e0 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_c.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6014405c376274abb50b035bd6e448eb42e25e58 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Reducers_d.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8bf8cc63aa2bb7a03b6f8d93d497fb2fa680eb3e --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Reductions.cpp @@ -0,0 +1,47 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Scan.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Scan.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8dc06c706059f98cd0ac6eb61acddcbf6e59d00a --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Scan.cpp @@ -0,0 +1,47 @@ + +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp similarity index 56% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_a.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp index f3d3396520a171a9aa47828ac3d4527a3bd15fea..ea38596883f77244f36191e3ad20a99140fa5b35 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_a.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ScanUnit.cpp @@ -1,3 +1,4 @@ + /* //@HEADER // ************************************************************************ @@ -42,74 +43,55 @@ //@HEADER */ -#include - -namespace Test { - -TEST_F(qthreads, view_subview_auto_1d_left) { -#if 0 - TestViewSubview::test_auto_1d< Kokkos::LayoutLeft, Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, view_subview_auto_1d_right) { -#if 0 - TestViewSubview::test_auto_1d< Kokkos::LayoutRight, Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, view_subview_auto_1d_stride) { -#if 0 - TestViewSubview::test_auto_1d< Kokkos::LayoutStride, Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, view_subview_assign_strided) { -#if 0 - TestViewSubview::test_1d_strided_assignment< Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, view_subview_left_0) { -#if 0 - TestViewSubview::test_left_0< Kokkos::Qthreads >(); -#endif -} +#include +#include -TEST_F(qthreads, view_subview_left_1) { -#if 0 - TestViewSubview::test_left_1< Kokkos::Qthreads >(); -#endif -} +struct DummyFunctor { + using value_type = int; + void operator()(const int, value_type &, bool) const {} +}; -TEST_F(qthreads, view_subview_left_2) { -#if 0 - TestViewSubview::test_left_2< Kokkos::Qthreads >(); -#endif -} +template +__global__ void start_intra_block_scan() { + __shared__ DummyFunctor::value_type values[N]; + const int i = hipThreadIdx_y; + values[i] = i + 1; + __syncthreads(); -TEST_F(qthreads, view_subview_left_3) { -#if 0 - TestViewSubview::test_left_3< Kokkos::Qthreads >(); -#endif -} + DummyFunctor f; + Kokkos::Impl::hip_intra_block_reduce_scan(f, + values); -TEST_F(qthreads, view_subview_right_0) { -#if 0 - TestViewSubview::test_right_0< Kokkos::Qthreads >(); -#endif + __syncthreads(); + if (values[i] != ((i + 2) * (i + 1)) / 2) { + printf("Value for %d should be %d but is %d\n", i, ((i + 2) * (i + 1)) / 2, + values[i]); + Kokkos::abort("Test for intra_block_reduce_scan failed!"); + } } -TEST_F(qthreads, view_subview_right_1) { -#if 0 - TestViewSubview::test_right_1< Kokkos::Qthreads >(); -#endif +template +void test_intra_block_scan() { + dim3 grid(1, 1, 1); + dim3 block(1, N, 1); + hipLaunchKernelGGL(start_intra_block_scan, grid, block, 0, 0); } -TEST_F(qthreads, view_subview_right_3) { -#if 0 - TestViewSubview::test_right_3< Kokkos::Qthreads >(); -#endif +TEST(TEST_CATEGORY, scan_unit) { + if (std::is_same< + TEST_EXECSPACE, + typename Kokkos::Experimental::HIPSpace::execution_space>::value) { + test_intra_block_scan<1>(); + test_intra_block_scan<2>(); + test_intra_block_scan<4>(); + test_intra_block_scan<8>(); + test_intra_block_scan<16>(); + test_intra_block_scan<32>(); + test_intra_block_scan<64>(); + test_intra_block_scan<128>(); + test_intra_block_scan<256>(); + // FIXME_HIP block sizes larger than 256 give wrong results. + // test_intra_block_scan<512>(); + // test_intra_block_scan<1024>(); + } } - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c03.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp similarity index 90% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c03.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp index 89b68ae42c1eaca3819121013165a23b25d8f7be..c66e01fe0a0ecb4172af41d94b3ca8908426cc4a 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c03.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SharedAlloc.cpp @@ -42,14 +42,14 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_1d_assign_randomaccess) { -#if 0 - TestViewSubview::test_1d_assign< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif +TEST(TEST_CATEGORY, impl_shared_alloc) { + test_shared_alloc(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_Spaces.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_Spaces.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f13400d096db8682083293ad56c08c57f1cbbea0 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_Spaces.cpp @@ -0,0 +1,233 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +__global__ void test_abort() { Kokkos::abort("test_abort"); } + +__global__ void test_hip_spaces_int_value(int *ptr) { + if (*ptr == 42) { + *ptr = 2 * 42; + } +} + +TEST(hip, space_access) { + static_assert(Kokkos::Impl::MemorySpaceAccess::assignable, + ""); + + static_assert(Kokkos::Impl::MemorySpaceAccess< + Kokkos::HostSpace, + Kokkos::Experimental::HIPHostPinnedSpace>::assignable, + ""); + + static_assert( + !Kokkos::Impl::MemorySpaceAccess< + Kokkos::HostSpace, Kokkos::Experimental::HIPSpace>::assignable, + ""); + + static_assert( + !Kokkos::Impl::MemorySpaceAccess< + Kokkos::HostSpace, Kokkos::Experimental::HIPSpace>::accessible, + ""); + + //-------------------------------------- + + static_assert(Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::HIPSpace, + Kokkos::Experimental::HIPSpace>::assignable, + ""); + + static_assert(!Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::HIPSpace, + Kokkos::Experimental::HIPHostPinnedSpace>::assignable, + ""); + + static_assert(Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::HIPSpace, + Kokkos::Experimental::HIPHostPinnedSpace>::accessible, + ""); + + static_assert(!Kokkos::Impl::MemorySpaceAccess::assignable, + ""); + + static_assert(!Kokkos::Impl::MemorySpaceAccess::accessible, + ""); + + //-------------------------------------- + + static_assert(Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::HIPHostPinnedSpace, + Kokkos::Experimental::HIPHostPinnedSpace>::assignable, + ""); + + static_assert( + !Kokkos::Impl::MemorySpaceAccess::assignable, + ""); + + static_assert( + Kokkos::Impl::MemorySpaceAccess::accessible, + ""); + + static_assert(!Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::HIPHostPinnedSpace, + Kokkos::Experimental::HIPSpace>::assignable, + ""); + + static_assert(!Kokkos::Impl::MemorySpaceAccess< + Kokkos::Experimental::HIPHostPinnedSpace, + Kokkos::Experimental::HIPSpace>::accessible, + ""); + + //-------------------------------------- + + static_assert( + !Kokkos::Impl::SpaceAccessibility::accessible, + ""); + + static_assert(Kokkos::Impl::SpaceAccessibility< + Kokkos::Experimental::HIP, + Kokkos::Experimental::HIPSpace>::accessible, + ""); + + static_assert(Kokkos::Impl::SpaceAccessibility< + Kokkos::Experimental::HIP, + Kokkos::Experimental::HIPHostPinnedSpace>::accessible, + ""); + + static_assert( + !Kokkos::Impl::SpaceAccessibility< + Kokkos::HostSpace, Kokkos::Experimental::HIPSpace>::accessible, + ""); + + static_assert(Kokkos::Impl::SpaceAccessibility< + Kokkos::HostSpace, + Kokkos::Experimental::HIPHostPinnedSpace>::accessible, + ""); + + static_assert( + std::is_same< + Kokkos::Impl::HostMirror::Space, + Kokkos::HostSpace>::value, + ""); + + static_assert( + std::is_same::Space, + Kokkos::Experimental::HIPHostPinnedSpace>::value, + ""); + + static_assert(Kokkos::Impl::SpaceAccessibility< + Kokkos::Impl::HostMirror::Space, + Kokkos::HostSpace>::accessible, + ""); + + static_assert( + Kokkos::Impl::SpaceAccessibility< + Kokkos::Impl::HostMirror::Space, + Kokkos::HostSpace>::accessible, + ""); + + static_assert(Kokkos::Impl::SpaceAccessibility< + Kokkos::Impl::HostMirror< + Kokkos::Experimental::HIPHostPinnedSpace>::Space, + Kokkos::HostSpace>::accessible, + ""); +} + +template +struct TestViewHIPAccessible { + enum { N = 1000 }; + + using V = Kokkos::View; + + V m_base; + + struct TagInit {}; + struct TagTest {}; + + KOKKOS_INLINE_FUNCTION + void operator()(const TagInit &, const int i) const { m_base[i] = i + 1; } + + KOKKOS_INLINE_FUNCTION + void operator()(const TagTest &, const int i, long &error_count) const { + if (m_base[i] != i + 1) ++error_count; + } + + TestViewHIPAccessible() : m_base("base", N) {} + + static void run() { + TestViewHIPAccessible self; + Kokkos::parallel_for( + Kokkos::RangePolicy(0, N), + self); + typename MemSpace::execution_space().fence(); + + // Next access is a different execution space, must complete prior kernel. + long error_count = -1; + Kokkos::parallel_reduce(Kokkos::RangePolicy(0, N), self, + error_count); + EXPECT_EQ(error_count, 0); + } +}; + +TEST(hip, impl_view_accessible) { + TestViewHIPAccessible::run(); + + TestViewHIPAccessible::run(); + TestViewHIPAccessible::run(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_a.cpp new file mode 100644 index 0000000000000000000000000000000000000000..df7b474afd8ef433bc743a3d0971c4d680e907ce --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_a.cpp @@ -0,0 +1,102 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_auto_1d_left) { + TestViewSubview::test_auto_1d(); +} + +TEST(TEST_CATEGORY, view_subview_auto_1d_right) { + TestViewSubview::test_auto_1d(); +} + +TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { + TestViewSubview::test_auto_1d(); +} + +TEST(TEST_CATEGORY, view_subview_assign_strided) { + TestViewSubview::test_1d_strided_assignment(); +} + +TEST(TEST_CATEGORY, view_subview_left_0) { + TestViewSubview::test_left_0(); +} + +TEST(TEST_CATEGORY, view_subview_left_1) { + TestViewSubview::test_left_1(); +} + +TEST(TEST_CATEGORY, view_subview_left_2) { + TestViewSubview::test_left_2(); +} + +TEST(TEST_CATEGORY, view_subview_left_3) { + TestViewSubview::test_left_3(); +} + +TEST(TEST_CATEGORY, view_subview_right_0) { + TestViewSubview::test_right_0(); +} + +TEST(TEST_CATEGORY, view_subview_right_1) { + TestViewSubview::test_right_1(); +} + +TEST(TEST_CATEGORY, view_subview_right_3) { + TestViewSubview::test_right_3(); +} + +TEST(TEST_CATEGORY, view_static_tests) { + TestViewSubview::TestSubviewStaticSizes()(); + TestViewSubview::TestSubviewStaticSizes()(); + TestViewSubview::TestExtentsStaticTests(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_b.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_b.cpp similarity index 71% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_b.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_SubView_b.cpp index 6ef5dc4cf124674fe0126301db5f744221eddc15..5fdaefcf21e6772352ee2f3dd509166d54325ebe 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_b.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_b.cpp @@ -42,24 +42,25 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_layoutleft_to_layoutleft) { -#if 0 - TestViewSubview::test_layoutleft_to_layoutleft< Kokkos::Qthreads >(); - TestViewSubview::test_layoutleft_to_layoutleft< Kokkos::Qthreads, Kokkos::MemoryTraits >(); - TestViewSubview::test_layoutleft_to_layoutleft< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif +TEST(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { + TestViewSubview::test_layoutleft_to_layoutleft(); + TestViewSubview::test_layoutleft_to_layoutleft< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); + TestViewSubview::test_layoutleft_to_layoutleft< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); } -TEST_F(qthreads, view_subview_layoutright_to_layoutright) { -#if 0 - TestViewSubview::test_layoutright_to_layoutright< Kokkos::Qthreads >(); - TestViewSubview::test_layoutright_to_layoutright< Kokkos::Qthreads, Kokkos::MemoryTraits >(); - TestViewSubview::test_layoutright_to_layoutright< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif +TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { + TestViewSubview::test_layoutright_to_layoutright(); + TestViewSubview::test_layoutright_to_layoutright< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); + TestViewSubview::test_layoutright_to_layoutright< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c07.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c01.cpp similarity index 91% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c07.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_SubView_c01.cpp index 5857f67d19dbcd4e43cda0372d0f60bb5b591b75..79bb42bc59625ead71af3be536a3eed103900b7a 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c07.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c01.cpp @@ -42,14 +42,13 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_3d_from_5d_left) { -#if 0 - TestViewSubview::test_3d_subview_5d_left< Kokkos::Qthreads >(); -#endif +TEST(TEST_CATEGORY, view_subview_1d_assign) { + TestViewSubview::test_1d_assign(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c02.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c02.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c38dee484e3e55cea79f5c2173970813ee28cd50 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c02.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { + TestViewSubview::test_1d_assign >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c35f786d38f07ab4405edb3a933f14eea17d635a --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c03.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { + TestViewSubview::test_1d_assign< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c04.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c04.cpp similarity index 91% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c04.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_SubView_c04.cpp index 0ee4d6887c9b82d27820f7f560f220e361768693..3a0cafdbe116b1922df431f8e61ff25430bf5cd6 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c04.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c04.cpp @@ -42,14 +42,13 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_2d_from_3d) { -#if 0 - TestViewSubview::test_2d_subview_3d< Kokkos::Qthreads >(); -#endif +TEST(TEST_CATEGORY, view_subview_2d_from_3d) { + TestViewSubview::test_2d_subview_3d(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7b3710f428ee90aa3ba46845b9b7e376e54e6d88 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c05.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_2d_from_3d_atomic) { + TestViewSubview::test_2d_subview_3d >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c06.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c06.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f0ac19f2c45071204778defaf286db06ae4be3b0 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c06.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { + TestViewSubview::test_2d_subview_3d< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c01.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c07.cpp similarity index 91% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c01.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_SubView_c07.cpp index 1f560c24f687133b7fde206ad3bddd341a6fef1f..b9743ab0a43bacfd25ccd98a11d851b14ba97426 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c01.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c07.cpp @@ -42,14 +42,13 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_1d_assign) { -#if 0 - TestViewSubview::test_1d_assign< Kokkos::Qthreads >(); -#endif +TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { + TestViewSubview::test_3d_subview_5d_left(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp new file mode 100644 index 0000000000000000000000000000000000000000..30bef76d7fc3b542fa717ab7df517913cfcb4019 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c08.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { + TestViewSubview::test_3d_subview_5d_left< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c09.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c09.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2e63849f35b57b228ee1ef14227aaa87a3f66e8c --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c09.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { + TestViewSubview::test_3d_subview_5d_left< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dae65a4d3b213cf7f1a3c552a5cad66f4d2c99ac --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c10.cpp @@ -0,0 +1,54 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { + TestViewSubview::test_3d_subview_5d_right(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp new file mode 100644 index 0000000000000000000000000000000000000000..570658bf550c868b46e31989a7d9fc2ec5422959 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c11.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { + TestViewSubview::test_3d_subview_5d_right< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c12.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c12.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4e943c68f0887cfadbc381ace98e608d0e30458c --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c12.cpp @@ -0,0 +1,55 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +namespace Test { + +TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { + TestViewSubview::test_3d_subview_5d_right< + TEST_EXECSPACE, Kokkos::MemoryTraits >(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c02.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp similarity index 90% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c02.cpp rename to lib/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp index e4065d22b271ad988271ee89cbba0e4faa142f50..52a065f2bd59847a74ab7afa965612f9ebc69bb0 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c02.cpp +++ b/lib/kokkos/core/unit_test/hip/TestHIP_SubView_c13.cpp @@ -42,14 +42,13 @@ //@HEADER */ -#include +#include +#include namespace Test { -TEST_F(qthreads, view_subview_1d_assign_atomic) { -#if 0 - TestViewSubview::test_1d_assign< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif +TEST(TEST_CATEGORY, view_test_unmanaged_subview_reset) { + TestViewSubview::test_unmanaged_subview_reset(); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4dc72a07868b9d6e023e6021bb5c82dfbeead35a --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_c.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c96d39feeb724402062ce6b3458967be23964f2e --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewAPI_d.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp new file mode 100644 index 0000000000000000000000000000000000000000..146f06fc6e9cd578ca3afd1d53680ec3be9afbdf --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_a.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp new file mode 100644 index 0000000000000000000000000000000000000000..00f931ce9b57509ea39880bf0d8b4f5d6402b164 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_b.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp new file mode 100644 index 0000000000000000000000000000000000000000..f0e76e0400d1575ad83ad702707dc89279d810e1 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewMapping_subview.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c673ffb354cff8e2ab6146195ac1c8594556b6a4 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewOfClass.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp new file mode 100644 index 0000000000000000000000000000000000000000..35e3125915afb413ce24a2cde4452c606a51c8c2 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_ViewResize.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp b/lib/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fed256043fcaa9faa88be01e44698f8ea20b1037 --- /dev/null +++ b/lib/kokkos/core/unit_test/hip/TestHIP_View_64bit.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_BitSet.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/hpx/TestHPX_BitSet.cpp rename to lib/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp index 179cfcc7b486e09bf7c0d266a5d6fd2d18cc67e0..197a99a1e4923c63d950182d0051eee8a8350709 100644 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_BitSet.cpp +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_Concepts.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -44,4 +43,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DualView.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/hpx/TestHPX_DualView.cpp rename to lib/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp index 368cdde95c68b8ba48f5377e7dfd1fbd4cee18f0..c76750e8fdea29360f934fdce690bb3205315634 100644 --- a/lib/kokkos/containers/unit_tests/hpx/TestHPX_DualView.cpp +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_RangePolicyRequire.cpp @@ -44,4 +44,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp b/lib/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp index 14cbfb8f417a3c1f060e99946d2a5e7257432bef..232bed509bc7194c68b8c857169b03ea879925cc 100644 --- a/lib/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp +++ b/lib/kokkos/core/unit_test/hpx/TestHPX_TeamScratch.cpp @@ -58,7 +58,6 @@ TEST(TEST_CATEGORY, team_scratch_request) { } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam >(); @@ -66,7 +65,6 @@ TEST(TEST_CATEGORY, team_lambda_shared_request) { Kokkos::Schedule >(); } #endif -#endif TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } diff --git a/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp b/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp new file mode 100644 index 0000000000000000000000000000000000000000..9f118bfb49f881d00dd6444dc07ff88eb935cd30 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test01_execspace.hpp @@ -0,0 +1,111 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/// @Kokkos_Feature_Level_Required:1 + +#include +#include +#include +#include +#include + +namespace Test { + +// Unit test for Execution Space +// Test1 - testing for memory_space, execution_space, scratch space and +// array_layout of an execution space +// Test2 - Test if the is_execution_space evaluation is working correctly + +template +struct TestIncrExecSpaceTypedef { + void testit() { + const bool passed = + (!std::is_same::value) && + std::is_same::value && + !std::is_same::value && + !std::is_same::value; + static_assert(passed == true, + "The memory and execution spaces are defined"); + } +}; + +template +struct TestIncrExecSpace { + void testit() { + typedef typename ExecSpace::device_type device_type; + typedef typename device_type::memory_space memory_space; + typedef typename device_type::execution_space execution_space; + + const bool passed = + std::is_same>::value; + + static_assert(passed == true, + "Checking if the is_execution_space is evaluated correctly"); + + ExecSpace().print_configuration(std::cout); + ExecSpace().fence(); + + auto concurrency = ExecSpace().concurrency(); + ASSERT_TRUE(concurrency > 0); + + int in_parallel = ExecSpace::in_parallel(); + ASSERT_FALSE(in_parallel); + + const char* name = ExecSpace::name(); + std::cout << name << std::endl; + } +}; + +TEST(TEST_CATEGORY, IncrTest_01_execspace_typedef) { + TestIncrExecSpaceTypedef test; + test.testit(); +} + +TEST(TEST_CATEGORY, IncrTest_01_execspace) { + ASSERT_TRUE(Kokkos::is_execution_space::value); + ASSERT_FALSE(Kokkos::is_execution_space< + TestIncrExecSpaceTypedef>::value); +} +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp b/lib/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp new file mode 100644 index 0000000000000000000000000000000000000000..4617ede99e65d36cb3f640d43d3178c78c5ceadb --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test02_atomic_host.hpp @@ -0,0 +1,97 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/// @Kokkos_Feature_Level_Required:2 +// Unit test for atomic exchange, atomic add and atomic sub. +// Atomic exchange test : we interchange value1 with value2 and check for +// correctness. Atomic add test : we add value2 to value1 and check for +// correctness. Atomic sub test : we subtract value2 from value1 and check for +// correctmess. + +#include +#include + +using value_type = double; + +namespace Test { + +struct TestIncrAtomic { + value_type value1 = 1.5, value2 = 0.5; + + void testExchange() { + value_type ret_value = Kokkos::atomic_exchange(&value1, value2); + + ASSERT_EQ(value1, 0.5); + ASSERT_EQ(ret_value, 1.5); + } + + void testAdd() { + Kokkos::atomic_add(&value1, value2); + + ASSERT_EQ(value1, 2.0); + } + + void testSub() { + Kokkos::atomic_sub(&value1, value2); + + ASSERT_EQ(value1, 1.0); + } +}; + +TEST(TEST_CATEGORY, IncrTest_01_AtomicExchange) { + TestIncrAtomic test; + test.testExchange(); +} + +TEST(TEST_CATEGORY, IncrTest_02_AtomicAdd) { + TestIncrAtomic test; + test.testAdd(); +} + +TEST(TEST_CATEGORY, IncrTest_02_AtomicSub) { + TestIncrAtomic test; + test.testSub(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test03a_MemorySpace_malloc.hpp b/lib/kokkos/core/unit_test/incremental/Test03a_MemorySpace_malloc.hpp new file mode 100644 index 0000000000000000000000000000000000000000..da808be21918892b423854db0e162706d9b0672b --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test03a_MemorySpace_malloc.hpp @@ -0,0 +1,80 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +/// @Kokkos_Feature_Level_Required:3 +// Unit Test for Kokkos malloc. +// Allocate memory to a pointer and check if the allocation has not returned a +// null pointer. + +namespace Test { + +using value_type = double; +const int num_elements = 10; + +template +struct TestIncrMemorySpace_malloc { + using memory_space = typename ExecSpace::memory_space; + + void test_malloc() { + // Allocate memory + auto *data = static_cast(Kokkos::kokkos_malloc( + "data", num_elements * sizeof(value_type))); + + // Check if the allocated memory has not returned a NULL + ASSERT_NE(data, nullptr); + + // Free the allocated memory + Kokkos::kokkos_free(data); + } +}; + +TEST(TEST_CATEGORY, IncrTest_03a_memspace_malloc) { + TestIncrMemorySpace_malloc test; + test.test_malloc(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test03b_MemorySpace_free.hpp b/lib/kokkos/core/unit_test/incremental/Test03b_MemorySpace_free.hpp new file mode 100644 index 0000000000000000000000000000000000000000..f7ee76ec9de45e23b6d7fbd2849ef51ac21443da --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test03b_MemorySpace_free.hpp @@ -0,0 +1,83 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +/// @Kokkos_Feature_Level_Required:3 +// Unit test for Kokkos free. +// We constantly allocate and free the memory. +// If the kokkos_free does not free the allocated memory, +// we will exceed the available space. + +#include +#include + +namespace Test { + +using value_type = double; + +// Allocate M number of value_type elements N number of times. +const int N = 100000; +const int M = 100000; + +template +struct TestIncrMemorySpace_free { + using memory_space = typename ExecSpace::memory_space; + + void test_free() { + for (int i = 0; i < N; ++i) { + auto *data = static_cast( + Kokkos::kokkos_malloc("data", M * sizeof(value_type))); + + ASSERT_NE(data, nullptr); + + Kokkos::kokkos_free(data); + } + } +}; + +TEST(TEST_CATEGORY, IncrTest_03b_memspace_free) { + TestIncrMemorySpace_free test; + test.test_free(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp b/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp new file mode 100644 index 0000000000000000000000000000000000000000..5e50b51dd1e720e331be8a01d252b646b4b9f56f --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test04_ParallelFor_RangePolicy.hpp @@ -0,0 +1,169 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +/// @Kokkos_Feature_Level_Required:4 +// parallel-for unit test. +// In this test, different elements of an array are updated by different +// threads. + +namespace Test { + +using value_type = double; +int num_elements = 10; +const value_type value = 0.5; + +struct ParallelForFunctor { + value_type *_data; + + ParallelForFunctor(value_type *data) : _data(data) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i) const { _data[i] = (i + 1) * value; } +}; + +template +struct TestParallel_For { + // Memory space type for Device and Host data + using d_memspace_type = typename ExecSpace::memory_space; + using h_memspace_type = Kokkos::HostSpace; + + value_type *deviceData, *hostData; + + // Check if the array values are updated correctly. + void correctness_check(value_type *data) { + for (int i = 0; i < num_elements; ++i) { + ASSERT_EQ((i + 1) * value, data[i]) + << "Values in index " << i << " are incorrect"; + } + } + + // Routine to allocate memory in a specific memory space. + template + value_type *allocate_mem(int N) { + return (static_cast( + Kokkos::kokkos_malloc("deviceData", N * sizeof(value_type)))); + } + + // Routine to free the memory from a specific memory space. + template + void free_mem(value_type *data) { + Kokkos::kokkos_free(data); + } + + void init() { + // Allocate memory on Device space. + deviceData = allocate_mem(num_elements); + ASSERT_NE(deviceData, nullptr); + + // Allocate memory on Host space. + hostData = allocate_mem(num_elements); + ASSERT_NE(hostData, nullptr); + } + + void check_correctness_and_cleanup() { + // Copy the data back to Host memory space + Kokkos::Impl::DeepCopy( + hostData, deviceData, num_elements * sizeof(value_type)); + + // Check if all data has been update correctly + correctness_check(hostData); + + // free the allocated memory + free_mem(deviceData); + free_mem(hostData); + } + + // A simple parallel for test with functors + void simple_test() { + // Allocates memory for num_elements number of value_type elements in the + // host and device memory spaces. + init(); + + // parallel-for functor called for num_elements number of iterations. + Kokkos::parallel_for("parallel_for", num_elements, + ParallelForFunctor(deviceData)); + + Kokkos::fence(); + // Checks if parallel_for gave the correct results. + // Frees the allocated memory in init(). + check_correctness_and_cleanup(); + } + + // A parallel_for test with user defined RangePolicy + void range_policy() { + // Allocates memory for num_elements number of value_type elements in the + // host and device memory spaces. + init(); + + // Creates a range policy that uses dynamic scheduling. + typedef Kokkos::RangePolicy > + range_policy_t; + + // parallel-for functor with range-policy from 0 to num_elements iterations. + Kokkos::parallel_for("RangePolicy_ParallelFor", + range_policy_t(0, num_elements), + ParallelForFunctor(deviceData)); + + // Checks if parallel_for gave the correct results. + // Free the allocated memory in init(). + check_correctness_and_cleanup(); + } +}; + +TEST(TEST_CATEGORY, IncrTest_04_simple_parallelFor) { + if (std::is_same::value) { + TestParallel_For test; + test.simple_test(); + } +} + +TEST(TEST_CATEGORY, IncrTest_04_RangePolicy_parallelFor) { + TestParallel_For test; + test.range_policy(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp b/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp new file mode 100644 index 0000000000000000000000000000000000000000..7c147e47cc3f0cb57ae2e57d749c233f62162cdb --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test05_ParallelReduce_RangePolicy.hpp @@ -0,0 +1,154 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +/// @Kokkos_Feature_Level_Required:5 +// Unit test for reduction of native data type. +// Assigns an index based value to elements of an array. +// Performs an reduction over the addition operation. + +namespace Test { + +using value_type = double; +const double value = 0.5; +const int num_elements = 10; + +struct ReduceFunctor { + value_type *_data; + + ReduceFunctor(value_type *data) : _data(data) {} + + KOKKOS_INLINE_FUNCTION + void operator()(const int i, double &UpdateSum) const { + _data[i] = (i + 1) * value; + UpdateSum += _data[i]; + } +}; + +template +struct TestReduction { + // Memory space type for Device and Host data + using d_memspace_type = typename ExecSpace::memory_space; + using h_memspace_type = Kokkos::HostSpace; + + value_type *deviceData, *hostData; + value_type sum = 0.0; + + // compare and equal + void check_correctness() { + int sum_local = 0; + for (int i = 0; i < num_elements; ++i) sum_local += (i + 1); + + ASSERT_EQ(sum, sum_local * value) + << "The reduced value does not match the expected answer"; + } + + // Routine to allocate memory in a specific memory space. + template + value_type *allocate_mem(int N) { + return (static_cast( + Kokkos::kokkos_malloc("deviceData", N * sizeof(value_type)))); + } + + // Routine to free the memory from a specific memory space. + template + void free_mem(value_type *data) { + Kokkos::kokkos_free(data); + } + + // Free the allocated memory + void free_mem() { + Kokkos::kokkos_free(deviceData); + Kokkos::kokkos_free(hostData); + } + + // Allocate Memory for both device and host memory spaces + void init() { + // Allocate memory on Device space. + deviceData = allocate_mem(num_elements); + ASSERT_NE(deviceData, nullptr); + + // Allocate memory on Host space. + hostData = allocate_mem(num_elements); + ASSERT_NE(hostData, nullptr); + + // Initialize the sum value to zero. + sum = 0.0; + } + + void check_correctness_and_cleanup() { + // Check if reduction has produced correct results + check_correctness(); + + // free the allocated memory + free_mem(deviceData); + free_mem(hostData); + } + + void sum_reduction() { + // Allocates memory for num_elements number of value_type elements in the + // host and device memory spaces. + init(); + + // Creates a range policy that uses dynamic schedule. + typedef Kokkos::RangePolicy > + range_policy; + + // parallel_reduce call with range policy over num_elements number of + // iterations + Kokkos::parallel_reduce("Reduction", range_policy(0, num_elements), + ReduceFunctor(deviceData), sum); + + check_correctness_and_cleanup(); + } +}; + +TEST(TEST_CATEGORY, IncrTest_05_reduction) { + TestReduction test; + test.sum_reduction(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp b/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp new file mode 100644 index 0000000000000000000000000000000000000000..d9e5a37b558eab7e00f0d064382c2fbf761b52e1 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test06_ParallelFor_MDRangePolicy.hpp @@ -0,0 +1,263 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +/// @Kokkos_Feature_Level_Required:6 +// Unit Test for MDRangePolicy without Views uptil 4 ranks. +// For each of the MDRangePolicy test from 2-to-4 ranks, we create an equivalent +// dimensional array implemented in 1D. In each of these arrays we update the +// elements as a product of iterator indexes and a constant. At the end, we +// check for correctness. + +namespace Test04 { + +using value_type = double; +const int N = 10; +const int M = 10; +const value_type delta = 0.5; + +struct MDFunctor { + value_type *_data; + + MDFunctor(value_type *data) : _data(data) {} + + // 2D + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j) const { + _data[i * M + j] = i * j * delta; + } + + // 3D + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j, const int k) const { + _data[i * M * N + j * M + k] = i * j * k * delta; + } + + // 4D + KOKKOS_INLINE_FUNCTION + void operator()(const int i, const int j, const int k, const int l) const { + _data[i * M * N * M + j * M * N + k * M + l] = i * j * k * l * delta; + } +}; + +template +struct TestMDRangePolicy { + // Memory space type for Device and Host data + using d_memspace_type = typename ExecSpace::memory_space; + using h_memspace_type = Kokkos::HostSpace; + + // Index Type for the iterator + using int_index = Kokkos::IndexType; + + // An MDRangePolicy for 2 nested loops + using MDPolicyType_2D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<2>, int_index>; + + // An MDRangePolicy for 3 nested loops + using MDPolicyType_3D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<3>, int_index>; + + // An MDRangePolicy for 4 nested loops + using MDPolicyType_4D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<4>, int_index>; + + // Device and Host Data structure pointer + value_type *deviceData, *hostData; + + // Routine to allocate memory in a specific memory space. + template + value_type *allocate_mem(int N_) { + return (static_cast( + Kokkos::kokkos_malloc("Data", N_ * sizeof(value_type)))); + } + + // Routine to free the memory from a specific memory space. + template + void free_mem(value_type *data) { + Kokkos::kokkos_free(data); + } + + // compare and equal + void compare_equal_2D() { + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) ASSERT_EQ(hostData[i * M + j], i * j * delta); + } + + // compare and equal + void compare_equal_3D() { + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) + for (int k = 0; k < N; ++k) + ASSERT_EQ(hostData[i * M * N + j * M + k], i * j * k * delta); + } + + // compare and equal + void compare_equal_4D() { + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) + for (int k = 0; k < N; ++k) + for (int l = 0; l < M; ++l) + ASSERT_EQ(hostData[i * M * N * M + j * M * N + k * M + l], + i * j * k * l * delta); + } + + // A 2-D MDRangePolicy + void mdRange2D() { + MDPolicyType_2D mdPolicy_2D({0, 0}, {N, M}); + + // Total number of elements + int num_elements = N * M; + + // Allocate Memory for both device and host memory spaces + // Data[M*N] + deviceData = allocate_mem(num_elements); + ASSERT_NE(deviceData, nullptr); + + hostData = allocate_mem(num_elements); + ASSERT_NE(hostData, nullptr); + + // parallel_for call + MDFunctor Functor_2D(deviceData); + Kokkos::parallel_for("MDRange2D", mdPolicy_2D, Functor_2D); + + // Copy the data back to Host memory space + Kokkos::Impl::DeepCopy( + hostData, deviceData, num_elements * sizeof(value_type)); + + // Check if all data has been update correctly + compare_equal_2D(); + + // free the allocated memory + free_mem(deviceData); + free_mem(hostData); + } + + // A 3-D MDRangePolicy + void mdRange3D() { + MDPolicyType_3D mdPolicy_3D({0, 0, 0}, {N, M, N}); + + // Total number of elements + int num_elements = N * M * N; + + // Allocate Memory for both device and host memory spaces + // Data[M*N*N] + deviceData = allocate_mem(num_elements); + ASSERT_NE(deviceData, nullptr); + + hostData = allocate_mem(num_elements); + ASSERT_NE(hostData, nullptr); + + // parallel_for call + MDFunctor Functor_3D(deviceData); + Kokkos::parallel_for("MDRange3D", mdPolicy_3D, Functor_3D); + + // Copy the data back to Host memory space + Kokkos::Impl::DeepCopy( + hostData, deviceData, num_elements * sizeof(value_type)); + + // Check if all data has been update correctly + compare_equal_3D(); + + // free the allocated memory + free_mem(deviceData); + free_mem(hostData); + } + + // A 4-D MDRangePolicy + void mdRange4D() { + MDPolicyType_4D mdPolicy_4D({0, 0, 0, 0}, {N, M, N, M}); + + // Total number of elements + int num_elements = N * M * N * M; + + // Allocate Memory for both device and host memory spaces + // Data[M*N*N*M] + deviceData = allocate_mem(num_elements); + ASSERT_NE(deviceData, nullptr); + + hostData = allocate_mem(num_elements); + ASSERT_NE(hostData, nullptr); + + // parallel_for call + MDFunctor Functor_4D(deviceData); + Kokkos::parallel_for("MDRange4D", mdPolicy_4D, Functor_4D); + + // Copy the data back to Host memory space + Kokkos::Impl::DeepCopy( + hostData, deviceData, num_elements * sizeof(value_type)); + + // Check if all data has been update correctly + compare_equal_4D(); + + // free the allocated memory + free_mem(deviceData); + free_mem(hostData); + } +}; + +} // namespace Test04 + +namespace Test { + +// 2D MDRangePolicy +TEST(TEST_CATEGORY, IncrTest_06_mdrange2D) { + Test04::TestMDRangePolicy test; + test.mdRange2D(); +} + +// 3D MDRangePolicy +TEST(TEST_CATEGORY, IncrTest_06_mdrange3D) { + Test04::TestMDRangePolicy test; + test.mdRange3D(); +} + +// 4D MDRangePolicy +TEST(TEST_CATEGORY, IncrTest_06_mdrange4D) { + Test04::TestMDRangePolicy test; + test.mdRange4D(); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test08_deep_copy.hpp b/lib/kokkos/core/unit_test/incremental/Test08_deep_copy.hpp new file mode 100644 index 0000000000000000000000000000000000000000..5166f5a9f0de05b24166161654c9eaab4ff2ad82 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test08_deep_copy.hpp @@ -0,0 +1,207 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include + +/// @Kokkos_Feature_Level_Required:8 +// Unit Test for MDRangePolicy without Views uptil 4 ranks. +// For each of the MDRangePolicy test from 2-to-4 ranks, we create an equivalent +// dimensional view. In each of these views we update the +// elements as a product of iterator indexes and a constant inside a +// parallel_for lambda. At the end, we check for correctness. + +namespace Test05 { + +using value_type = double; +const int N = 10; +const int M = 10; + +template +struct TestMDRangePolicy { + // 2D View + using View_2D = typename Kokkos::View; + using Host_View_2D = typename View_2D::HostMirror; + Host_View_2D hostDataView_2D; + + // 3D View + using View_3D = typename Kokkos::View; + using Host_View_3D = typename View_3D::HostMirror; + Host_View_3D hostDataView_3D; + + // 4D View + using View_4D = typename Kokkos::View; + using Host_View_4D = typename View_4D::HostMirror; + Host_View_4D hostDataView_4D; + + // Memory space type for Device and Host data + using d_memspace_type = typename ExecSpace::memory_space; + using h_memspace_type = Kokkos::HostSpace; + + // Index Type for the iterator + using int_index = Kokkos::IndexType; + + // An MDRangePolicy for 2 nested loops + using MDPolicyType_2D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<2>, int_index>; + + // An MDRangePolicy for 3 nested loops + using MDPolicyType_3D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<3>, int_index>; + + // An MDRangePolicy for 4 nested loops + using MDPolicyType_4D = typename Kokkos::Experimental::MDRangePolicy< + ExecSpace, Kokkos::Experimental::Rank<4>, int_index>; + + // compare and equal + void compare_equal_2D() { + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) ASSERT_EQ(hostDataView_2D(i, j), i * M + j); + } + + // compare and equal + void compare_equal_3D() { + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) + for (int k = 0; k < N; ++k) + ASSERT_EQ(hostDataView_3D(i, j, k), i * M * N + j * N + k); + } + + // compare and equal + void compare_equal_4D() { + for (int i = 0; i < N; ++i) + for (int j = 0; j < M; ++j) + for (int k = 0; k < N; ++k) + for (int l = 0; l < M; ++l) + ASSERT_EQ(hostDataView_4D(i, j, k, l), + i * M * N * M + j * N * M + k * M + l); + } + + // A 2-D MDRangePolicy + void mdRange2D() { + View_2D deviceDataView_2D("deviceData_2D", N, M); + hostDataView_2D = create_mirror_view(deviceDataView_2D); + + MDPolicyType_2D mdPolicy_2D({0, 0}, {N, M}); + + Kokkos::parallel_for( + mdPolicy_2D, KOKKOS_LAMBDA(const int i, const int j) { + deviceDataView_2D(i, j) = i * M + j; + }); + + // Copy data back to host view. + Kokkos::deep_copy(hostDataView_2D, deviceDataView_2D); + + // Check if all data has been update correctly + compare_equal_2D(); + } + + // A 3-D MDRangePolicy + void mdRange3D() { + View_3D deviceDataView_3D("deviceData_3D", N, M, N); + hostDataView_3D = create_mirror_view(deviceDataView_3D); + + MDPolicyType_3D mdPolicy_3D({0, 0, 0}, {N, M, N}); + + Kokkos::parallel_for( + mdPolicy_3D, KOKKOS_LAMBDA(const int i, const int j, const int k) { + deviceDataView_3D(i, j, k) = i * M * N + j * N + k; + }); + + // Copy data back to host view. + Kokkos::deep_copy(hostDataView_3D, deviceDataView_3D); + + // Check if all data has been update correctly + compare_equal_3D(); + } + + // A 4-D MDRangePolicy + void mdRange4D() { + View_4D deviceDataView_4D("deviceData_4D", N, M, N, M); + hostDataView_4D = create_mirror_view(deviceDataView_4D); + + MDPolicyType_4D mdPolicy_4D({0, 0, 0, 0}, {N, M, N, M}); + + Kokkos::parallel_for( + mdPolicy_4D, + KOKKOS_LAMBDA(const int i, const int j, const int k, const int l) { + deviceDataView_4D(i, j, k, l) = i * M * N * M + j * N * M + k * M + l; + }); + + Kokkos::deep_copy(hostDataView_4D, deviceDataView_4D); + + // Check if all data has been update correctly + compare_equal_4D(); + } +}; + +} // namespace Test05 + +namespace Test { + +// 2D MDRangePolicy +TEST(TEST_CATEGORY, IncrTest_08_deep_copy_2D) { + { + Test05::TestMDRangePolicy test; + test.mdRange2D(); + } +} + +// 3D MDRangePolicy +TEST(TEST_CATEGORY, IncrTest_08_deep_copy_3D) { + { + Test05::TestMDRangePolicy test; + test.mdRange3D(); + } +} + +// 4D MDRangePolicy +TEST(TEST_CATEGORY, IncrTest_08_deep_copy_4D) { + { + Test05::TestMDRangePolicy test; + test.mdRange4D(); + } +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp b/lib/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp new file mode 100644 index 0000000000000000000000000000000000000000..a5e478c30faced583b61378afc45daab742c096d --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test10_HierarchicalBasics.hpp @@ -0,0 +1,101 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:10 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// contributions of paticipating processing units corresponds to expected value + +#include +#include + +namespace Test { + +template +struct HierarchicalBasics { + using policy_t = Kokkos::TeamPolicy; + using team_t = typename policy_t::member_type; + + void run(const int nP, int nT) { + if (nT > ExecSpace::concurrency()) nT = ExecSpace::concurrency(); + + policy_t pol(nP, nT); + + ASSERT_EQ(pol.league_size(), nP); + ASSERT_LE(pol.team_size(), nT); + nT = pol.team_size(); + + Kokkos::View v("Array_A", nP, nT); + Kokkos::parallel_for( + "Teams", pol, KOKKOS_LAMBDA(const team_t &team) { + const int tR = team.team_rank(); + const int tS = team.team_size(); + const int lR = team.league_rank(); + const int lS = team.league_size(); + if (lR < lS) { + v(lR, tR) = lR * tS + tR; + } else { + v(lR, tR) = 100000; + } + }); + Kokkos::fence(); + auto h_v = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + size_t check = 0; + size_t ref = nP * nT; + for (int i = 0; i < nP; ++i) + for (int j = 0; j < nT; ++j) check += h_v(i, j); + + ASSERT_EQ(check, ref * (ref - 1) / 2); + } +}; + +TEST(TEST_CATEGORY, IncrTest_10_Hierarchical_Basics) { + HierarchicalBasics test; + test.run(1, 4); + test.run(8, 16); + test.run(11, 13); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp b/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..e36b8f9d3f9a531e6a9f7a2dcb89e9ccb13d2cf2 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test11a_ParallelFor_TeamThreadRange.hpp @@ -0,0 +1,99 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:11 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// contributions of paticipating processing units corresponds to expected value + +#include +#include + +namespace Test { + +template +struct Hierarchical_ForLoop_A { + void run(const int pN, const int sX, const int sY) { + typedef Kokkos::TeamPolicy team_policy; + typedef typename Kokkos::TeamPolicy::member_type member_type; + + typedef Kokkos::View viewDataType; + viewDataType v("Matrix", sX, sY); + + Kokkos::parallel_for( + "Team", team_policy(pN, Kokkos::AUTO), + KOKKOS_LAMBDA(const member_type &team) { + const int n = team.league_rank(); + const int ls = team.league_size(); + + const int startDim1 = n * (int)(sX / ls); + const int modDim1 = n == ls - 1 ? sX % ls : 0; + + Kokkos::parallel_for( + Kokkos::TeamThreadRange(team, v.extent(1)), [&](const int m) { + for (int i = startDim1; + i < (startDim1 + (int)(sX / ls) + modDim1); ++i) + v(i, m) = i * v.extent(1) + m; + }); + }); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + int check = 0; + const int s = sY * sX; + for (int i = 0; i < sX; ++i) + for (int j = 0; j < sY; ++j) check += v_H(i, j); + ASSERT_EQ(check, s * (s - 1) / 2); + } +}; + +TEST(TEST_CATEGORY, IncrTest_11a_Hierarchical_ForLoop) { + Hierarchical_ForLoop_A test; + test.run(4, 5, 200); + test.run(4, 7, 19); + test.run(14, 277, 321); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..7e4bb2aa3b7499e942aa21c27d4cc36a419744d3 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test11b_ParallelFor_TeamVectorRange.hpp @@ -0,0 +1,99 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:11 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// contributions of paticipating processing units corresponds to expected value + +#include +#include + +namespace Test { + +template +struct Hierarchical_ForLoop_B { + void run(const int pN, const int sX, const int sY) { + typedef Kokkos::TeamPolicy team_policy; + typedef typename Kokkos::TeamPolicy::member_type member_type; + + typedef Kokkos::View viewDataType; + viewDataType v("Matrix", sX, sY); + + Kokkos::parallel_for( + "Team", team_policy(pN, Kokkos::AUTO), + KOKKOS_LAMBDA(const member_type &team) { + const int n = team.league_rank(); + const int ls = team.league_size(); + + const int startDim1 = n * (int)(sX / ls); + const int modDim1 = n == ls - 1 ? sX % ls : 0; + + Kokkos::parallel_for( + Kokkos::TeamVectorRange(team, v.extent(1)), [&](const int m) { + for (int i = startDim1; + i < (startDim1 + (int)(sX / ls) + modDim1); ++i) + v(i, m) = i * v.extent(1) + m; + }); + }); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + int check = 0; + const int s = sY * sX; + for (int i = 0; i < sX; ++i) + for (int j = 0; j < sY; ++j) check += v_H(i, j); + ASSERT_EQ(check, s * (s - 1) / 2); + } +}; + +TEST(TEST_CATEGORY, IncrTest_11b_Hierarchical_ForLoop) { + Hierarchical_ForLoop_B test; + test.run(1, 6, 400); + test.run(6, 7, 19); + test.run(12, 277, 321); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..c6998a5781c4f046306098713e25e17cc1867ee7 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test11c_ParallelFor_ThreadVectorRange.hpp @@ -0,0 +1,105 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:11 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// contributions of paticipating processing units corresponds to expected value + +#include +#include + +namespace Test { + +template +struct Hierarchical_ForLoop_C { + void run(const int pN, const int sX, const int sY, const int sZ) { + typedef Kokkos::TeamPolicy team_policy; + typedef typename Kokkos::TeamPolicy::member_type member_type; + + typedef Kokkos::View viewDataType; + viewDataType v("Matrix", sX, sY, sZ); + + Kokkos::parallel_for( + "Team", team_policy(pN, Kokkos::AUTO), + KOKKOS_LAMBDA(const member_type &team) { + int n = team.league_rank(); + int ls = team.league_size(); + + int startDim1 = n * (int)(sX / ls); + int modDim1 = n == ls - 1 ? sX % ls : 0; + + Kokkos::parallel_for( + Kokkos::TeamThreadRange(team, v.extent(1)), [&](const int m) { + Kokkos::parallel_for( + Kokkos::ThreadVectorRange(team, v.extent(2)), + [&](const int k) { + for (int i = startDim1; + i < (startDim1 + (int)(sX / ls) + modDim1); ++i) + v(i, m, k) = + i * v.extent(1) * v.extent(2) + m * v.extent(2) + k; + }); + }); + }); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + size_t check = 0; + const size_t s = sX * sY * sZ; + for (int i = 0; i < sX; ++i) + for (int j = 0; j < sY; ++j) + for (int k = 0; k < sZ; ++k) check += v_H(i, j, k); + ASSERT_EQ(check, s * (s - 1) / 2); + } +}; + +TEST(TEST_CATEGORY, IncrTest_11c_Hierarchical_ForLoop) { + Hierarchical_ForLoop_C test; + test.run(4, 16, 16, 16); + test.run(8, 12, 333, 16); + test.run(12, 277, 321, 345); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp b/lib/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8eb1c243c5df409350fb499be82b2796ab7223aa --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test12a_ThreadScratch.hpp @@ -0,0 +1,125 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:12 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// contributions of paticipating processing units corresponds to expected value +// Use a scratch pad memory for each team +#include +#include + +namespace Test { + +template +struct ThreadScratch { + using policy_t = Kokkos::TeamPolicy; + using team_t = typename Kokkos::TeamPolicy::member_type; + using data_t = Kokkos::View; + + using scratch_t = Kokkos::View >; + + int sX, sY; + data_t v; + KOKKOS_FUNCTION + void operator()(const team_t &team) const { + // Allocate and use scratch pad memory + scratch_t v_S(team.thread_scratch(1), sY); + int n = team.league_rank(); + + for (int i = 0; i < sY; ++i) v_S(i) = 0; + + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, sX), [&](const int m) { + Kokkos::parallel_for( + Kokkos::ThreadVectorRange(team, sY), + [&](const int k) { v_S(k) += sX * sY * n + sY * m + k; }); + }); + + team.team_barrier(); + + for (int i = 0; i < sY; ++i) { + v(n, team.team_rank()) += v_S(i); + } + } + + void run(const int pN, const int sX_, const int sY_) { + sX = sX_; + sY = sY_; + + int scratchSize = scratch_t::shmem_size(sY); + // So this works with deprecated code enabled: + policy_t policy = policy_t(pN, Kokkos::AUTO) + .set_scratch_size(1, Kokkos::PerThread(scratchSize)); + + int max_team_size = policy.team_size_max(*this, Kokkos::ParallelForTag()); + v = data_t("Matrix", pN, max_team_size); + + Kokkos::parallel_for( + "Test12a_ThreadScratch", + policy_t(pN, max_team_size) + .set_scratch_size(1, Kokkos::PerThread(scratchSize)), + *this); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + size_t check = 0; + const size_t s = pN * sX * sY; + for (int n = 0; n < pN; ++n) + for (int m = 0; m < max_team_size; ++m) { + check += v_H(n, m); + } + ASSERT_EQ(s * (s - 1) / 2, check); + } +}; + +TEST(TEST_CATEGORY, IncrTest_12a_ThreadScratch) { + ThreadScratch test; + test.run(1, 55, 9); + test.run(2, 4, 22); + test.run(14, 277, 321); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp b/lib/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp new file mode 100644 index 0000000000000000000000000000000000000000..169491af3fbcc747b2160998a3a90310f3d8cb0c --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test12b_TeamScratch.hpp @@ -0,0 +1,113 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:12 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// contributions of paticipating processing units corresponds to expected value +// Use a scratch pad memory for each team +#include +#include + +namespace Test { + +template +struct TeamScratch { + void run(const int pN, const int sX, const int sY) { + using policy_t = Kokkos::TeamPolicy; + using team_t = typename Kokkos::TeamPolicy::member_type; + using data_t = Kokkos::View; + data_t v("Matrix", pN, sX); + + using scratch_t = Kokkos::View >; + int scratchSize = scratch_t::shmem_size(sX, sY); + + Kokkos::parallel_for( + "Team", + policy_t(pN, Kokkos::AUTO) + .set_scratch_size(1, Kokkos::PerTeam(scratchSize)), + KOKKOS_LAMBDA(const team_t &team) { + // Allocate and use scratch pad memory + scratch_t v_S(team.team_scratch(1), sX, sY); + int n = team.league_rank(); + + Kokkos::parallel_for( + Kokkos::TeamThreadRange(team, sX), [&](const int m) { + Kokkos::parallel_for( + Kokkos::ThreadVectorRange(team, sY), [&](const int k) { + v_S(m, k) = v_S.extent(0) * v_S.extent(1) * n + + v_S.extent(1) * m + k; + }); + }); + + team.team_barrier(); + + // Sum up contributions and reduce by one dimension + Kokkos::parallel_for(Kokkos::TeamThreadRange(team, sX), + [&](const int m) { + for (int i = 0; i < sY; ++i) + v(n, m) += v_S(m, i); + }); + }); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + size_t check = 0; + const size_t s = pN * sX * sY; + for (int n = 0; n < pN; ++n) + for (int m = 0; m < sX; ++m) check += v_H(n, m); + ASSERT_EQ(check, s * (s - 1) / 2); + } +}; + +TEST(TEST_CATEGORY, IncrTest_12b_TeamScratch) { + TeamScratch test; + test.run(1, 4, 4); + test.run(4, 7, 10); + test.run(14, 277, 321); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp b/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..b5467da9215eb368c1022f19c5e028c01db8e9c7 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test13a_ParallelRed_TeamThreadRange.hpp @@ -0,0 +1,105 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:13 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// sum of created processing units corresponds to expected value + +#include +#include + +// Degrees of concurrency per nesting level + +using SCALAR_TYPE = int; + +namespace Test { + +template +struct Hierarchical_Red_A { + void run(const int pN, const int sX) { + typedef Kokkos::TeamPolicy team_policy; + typedef typename Kokkos::TeamPolicy::member_type member_type; + + typedef Kokkos::View viewDataType; + viewDataType v("Vector", pN); + + Kokkos::parallel_for( + "Team", team_policy(pN, Kokkos::AUTO), + KOKKOS_LAMBDA(const member_type &team) { + const int n = team.league_rank(); + SCALAR_TYPE out = 0; + + Kokkos::parallel_reduce( + Kokkos::TeamThreadRange(team, sX), + [=](const int i, SCALAR_TYPE &tmp) { + tmp += n * v.extent(0) + i; + }, + out); + + Kokkos::single(Kokkos::PerTeam(team), [&]() { v(n) += out; }); + }); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + SCALAR_TYPE check = 0; + SCALAR_TYPE ref = 0; + for (int i = 0; i < pN; ++i) { + check += v_H(i); + ref += + (sX + i * pN) * (sX + i * pN - 1) / 2 - ((i * pN) * (i * pN - 1) / 2); + } + ASSERT_EQ(check, ref); + } +}; + +TEST(TEST_CATEGORY, IncrTest_13a_Hierarchical_Red) { + Hierarchical_Red_A test; + test.run(4, 16); + test.run(2, 39); + test.run(39, 3); +} + +} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads.hpp b/lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp similarity index 57% rename from lib/kokkos/core/unit_test/qthreads/TestQthreads.hpp rename to lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp index c45433d77d4f2b34102f8bc8092745e4e9e6c86d..ada295591e62de99bfa64d1fdab4e8b9d45165df 100644 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads.hpp +++ b/lib/kokkos/core/unit_test/incremental/Test13b_ParallelRed_TeamVectorRange.hpp @@ -42,68 +42,61 @@ //@HEADER */ -#ifndef KOKKOS_TEST_QTHREADS_HPP -#define KOKKOS_TEST_QTHREADS_HPP +// @Kokkos_Feature_Level_Required:13 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// sum of created processing units corresponds to expected value #include +#include -#include +using SCALAR_TYPE = int; -#ifdef KOKKOS_LAMBDA -#undef KOKKOS_LAMBDA -#endif -#define KOKKOS_LAMBDA [=] +namespace Test { -#include +template +struct Hierarchical_Red_B { + void run(const int pN, const int sX) { + typedef Kokkos::TeamPolicy team_policy; + typedef typename Kokkos::TeamPolicy::member_type member_type; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include + typedef Kokkos::View viewDataType; + viewDataType v("Vector", pN); -namespace Test { + Kokkos::parallel_for( + "Team", team_policy(pN, Kokkos::AUTO), + KOKKOS_LAMBDA(const member_type &team) { + const int n = team.league_rank(); + SCALAR_TYPE out = 0; -class qthreads : public ::testing::Test { - protected: - static void SetUpTestCase() { - const unsigned numa_count = Kokkos::hwloc::get_available_numa_count(); - const unsigned cores_per_numa = - Kokkos::hwloc::get_available_cores_per_numa(); - const unsigned threads_per_core = - Kokkos::hwloc::get_available_threads_per_core(); + Kokkos::parallel_reduce( + Kokkos::TeamVectorRange(team, sX), + [=](const int i, SCALAR_TYPE &tmp) { + tmp += n * v.extent(0) + i; + }, + out); - const unsigned threads_count = - std::max(1u, numa_count) * - std::max(2u, (cores_per_numa * threads_per_core) / 2); + Kokkos::single(Kokkos::PerTeam(team), [&]() { v(n) += out; }); + }); - Kokkos::Qthreads::initialize(threads_count); - Kokkos::print_configuration(std::cout, true); + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); - srand(10231); + SCALAR_TYPE check = 0; + SCALAR_TYPE ref = 0; + for (int i = 0; i < pN; ++i) { + check += v_H(i); + ref += ((sX + i * pN) * (sX + i * pN - 1) - (i * pN * (i * pN - 1))) / 2; + } + ASSERT_EQ(check, ref); } - - static void TearDownTestCase() { Kokkos::Qthreads::finalize(); } }; -} // namespace Test +TEST(TEST_CATEGORY, IncrTest_13b_Hierarchical_Red) { + Hierarchical_Red_B test; + test.run(4, 16); + test.run(2, 39); + test.run(39, 3); +} -#endif +} // namespace Test diff --git a/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp b/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp new file mode 100644 index 0000000000000000000000000000000000000000..7df940c58de4a3eacc90a80be621492cca08f7c1 --- /dev/null +++ b/lib/kokkos/core/unit_test/incremental/Test13c_ParallelRed_ThreadVectorRange.hpp @@ -0,0 +1,112 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +// @Kokkos_Feature_Level_Required:13 +// Unit test for hierarchical parallelism +// Create concurrent work hierarchically and verify if +// sum of created processing units corresponds to expected value + +#include +#include + +using SCALAR_TYPE = int; + +namespace Test { + +template +struct Hierarchical_Red_C { + void run(const int pN, const int sX, const int sY) { + typedef Kokkos::TeamPolicy team_policy; + typedef typename Kokkos::TeamPolicy::member_type member_type; + + typedef Kokkos::View viewDataType; + viewDataType v("Vector", pN); + + Kokkos::parallel_for( + "Team", team_policy(pN, Kokkos::AUTO), + KOKKOS_LAMBDA(const member_type &team) { + int n = team.league_rank(); + SCALAR_TYPE out = 0; + + Kokkos::parallel_reduce( + Kokkos::TeamThreadRange(team, sX), + [=](const int i, SCALAR_TYPE &tmp) { + SCALAR_TYPE out_inner = 0; + Kokkos::parallel_reduce( + Kokkos::ThreadVectorRange(team, sY), + [=](const int k, int &tmp_inner) { + tmp_inner += n * sX * v.extent(0) + sX * i + k; + }, + out_inner); + + Kokkos::single(Kokkos::PerThread(team), + [&]() { tmp += out_inner; }); + }, + out); + + Kokkos::single(Kokkos::PerTeam(team), [&]() { v(n) += out; }); + }); + + Kokkos::fence(); + auto v_H = Kokkos::create_mirror_view_and_copy(Kokkos::HostSpace(), v); + + SCALAR_TYPE check = 0; + SCALAR_TYPE ref = 0; + for (int i = 0; i < pN; ++i) { + check += v_H(i); + for (int j = 0; j < sX; ++j) + for (int k = 0; k < sY; ++k) ref += i * sX * pN + sX * j + k; + } + ASSERT_EQ(check, ref); + } +}; + +TEST(TEST_CATEGORY, IncrTest_13c_Hierarchical_Red) { + Hierarchical_Red_C test; + test.run(1, 4, 8); + test.run(2, 39, 12); + test.run(39, 3, 235); +} + +} // namespace Test diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_BitSet.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/openmp/TestOpenMP_BitSet.cpp rename to lib/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp index db110171594657a9ca659827bb065ab9137fea05..5480af5aaf9f2b0f28da0e5b3fd7f6631839fdad 100644 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_BitSet.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Concepts.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -44,4 +43,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp index 6e7463a33fddcfb3ce8aba33fb7cfda6d44c7d03..7043432517b407a9c9d097f0d166664a7b84b9a1 100644 --- a/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Other.cpp @@ -63,7 +63,7 @@ TEST(openmp, partition_master) { Mutex mtx; int errors = 0; - auto master = [&errors, &mtx](int partition_id, int num_partitions) { + auto master = [&errors, &mtx](int /*partition_id*/, int /*num_partitions*/) { #ifdef KOKKOS_ENABLE_DEPRECATED_CODE const int pool_size = Kokkos::OpenMP::thread_pool_size(); diff --git a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DualView.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DualView.cpp rename to lib/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp index ed4eb23a8bd3a6eb0d43af28f3c2b742bdd0d5ed..284a65a21ee707eb229a19441661a8e5f8ebb16b 100644 --- a/lib/kokkos/containers/unit_tests/openmp/TestOpenMP_DualView.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_RangePolicyRequire.cpp @@ -44,4 +44,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp index c389ebac3736e683b5234132e0535254ae377433..2409307387d2cf991f615c995b5eb64e488bcdf9 100644 --- a/lib/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_Team.cpp @@ -80,25 +80,25 @@ TEST(TEST_CATEGORY, team_reduce) { } TEST(TEST_CATEGORY, team_broadcast) { - TestTeamBroadcast >::test_teambroadcast(0); - TestTeamBroadcast >::test_teambroadcast(0); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); - TestTeamBroadcast >::test_teambroadcast(2); - TestTeamBroadcast >::test_teambroadcast(2); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); - TestTeamBroadcast >::test_teambroadcast(16); - TestTeamBroadcast >::test_teambroadcast(16); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); - TestTeamBroadcast >:: - test_teambroadcast(1000); - TestTeamBroadcast >:: - test_teambroadcast(1000); + TestTeamBroadcast, + long>::test_teambroadcast(1000, 1); + TestTeamBroadcast, + long>::test_teambroadcast(1000, 1); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp b/lib/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp index 5c283a622643e2f2cab160cdb91a5a4275e77fef..b42bdf754f61871efe27338c8d34b31b862ea985 100644 --- a/lib/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp +++ b/lib/kokkos/core/unit_test/openmp/TestOpenMP_TeamScratch.cpp @@ -58,7 +58,6 @@ TEST(TEST_CATEGORY, team_scratch_request) { } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam >(); @@ -67,7 +66,6 @@ TEST(TEST_CATEGORY, team_lambda_shared_request) { } TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment(); } #endif -#endif TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8896339f9969f113abbc2c019e4e2263facc5901 --- /dev/null +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Concepts.cpp @@ -0,0 +1,46 @@ +/* +//@HEADER +// ************************************************************************ +// +// Kokkos v. 3.0 +// Copyright (2020) National Technology & Engineering +// Solutions of Sandia, LLC (NTESS). +// +// Under the terms of Contract DE-NA0003525 with NTESS, +// the U.S. Government retains certain rights in this software. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the Corporation nor the names of the +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Christian R. Trott (crtrott@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#include +#include diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Crs.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Crs.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_FunctorAnalysis.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_FunctorAnalysis.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_LocalDeepCopy.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_LocalDeepCopy.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicyRequire.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_RangePolicyRequire.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions_DeviceView.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Reductions_DeviceView.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp index aa0d9cfe27d9260761c6e6c327afc196f2237091..6d5645547bc8c6ccd819ba2ffe2e09ec5eca543e 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SharedAlloc.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, impl_shared_alloc) { +TEST(TEST_CATEGORY, impl_shared_alloc) { test_shared_alloc(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp index 6f6255af87a4c0a8940138404e2f84d10e29cce3..4be6218e23d03ead322108b8a3f52817cb1ebda7 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_a.cpp @@ -47,51 +47,51 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_auto_1d_left) { +TEST(TEST_CATEGORY, view_subview_auto_1d_left) { TestViewSubview::test_auto_1d(); } -TEST_F(TEST_CATEGORY, view_subview_auto_1d_right) { +TEST(TEST_CATEGORY, view_subview_auto_1d_right) { TestViewSubview::test_auto_1d(); } -TEST_F(TEST_CATEGORY, view_subview_auto_1d_stride) { +TEST(TEST_CATEGORY, view_subview_auto_1d_stride) { TestViewSubview::test_auto_1d(); } -TEST_F(TEST_CATEGORY, view_subview_assign_strided) { +TEST(TEST_CATEGORY, view_subview_assign_strided) { TestViewSubview::test_1d_strided_assignment(); } -TEST_F(TEST_CATEGORY, view_subview_left_0) { +TEST(TEST_CATEGORY, view_subview_left_0) { TestViewSubview::test_left_0(); } -TEST_F(TEST_CATEGORY, view_subview_left_1) { +TEST(TEST_CATEGORY, view_subview_left_1) { TestViewSubview::test_left_1(); } -TEST_F(TEST_CATEGORY, view_subview_left_2) { +TEST(TEST_CATEGORY, view_subview_left_2) { TestViewSubview::test_left_2(); } -TEST_F(TEST_CATEGORY, view_subview_left_3) { +TEST(TEST_CATEGORY, view_subview_left_3) { TestViewSubview::test_left_3(); } -TEST_F(TEST_CATEGORY, view_subview_right_0) { +TEST(TEST_CATEGORY, view_subview_right_0) { TestViewSubview::test_right_0(); } -TEST_F(TEST_CATEGORY, view_subview_right_1) { +TEST(TEST_CATEGORY, view_subview_right_1) { TestViewSubview::test_right_1(); } -TEST_F(TEST_CATEGORY, view_subview_right_3) { +TEST(TEST_CATEGORY, view_subview_right_3) { TestViewSubview::test_right_3(); } -TEST_F(TEST_CATEGORY, view_static_tests) { +TEST(TEST_CATEGORY, view_static_tests) { TestViewSubview::TestSubviewStaticSizes()(); TestViewSubview::TestSubviewStaticSizes(); TestViewSubview::test_layoutleft_to_layoutleft< TEST_EXECSPACE, Kokkos::MemoryTraits >(); @@ -55,7 +55,7 @@ TEST_F(TEST_CATEGORY, view_subview_layoutleft_to_layoutleft) { TEST_EXECSPACE, Kokkos::MemoryTraits >(); } -TEST_F(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { +TEST(TEST_CATEGORY, view_subview_layoutright_to_layoutright) { TestViewSubview::test_layoutright_to_layoutright(); TestViewSubview::test_layoutright_to_layoutright< TEST_EXECSPACE, Kokkos::MemoryTraits >(); diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp index 953c383bf98d0936a215065242e61b86fcb3c586..3361efcc16cdc25bb754185c645d53796e15a75c 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c01.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_1d_assign) { +TEST(TEST_CATEGORY, view_subview_1d_assign) { TestViewSubview::test_1d_assign(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp index 3a6245e258173d49ab59bbdc1b88ce2e4d086775..c4887cf3dbce98f8949a5149a51ca27c4462ccbd 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c02.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_1d_assign_atomic) { +TEST(TEST_CATEGORY, view_subview_1d_assign_atomic) { TestViewSubview::test_1d_assign >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp index e9e912dd0e7d8e16ad2e15554596b00a74131260..b172b0c61984860cea5e5036dd3418dcd45aed81 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c03.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { +TEST(TEST_CATEGORY, view_subview_1d_assign_randomaccess) { TestViewSubview::test_1d_assign< TEST_EXECSPACE, Kokkos::MemoryTraits >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp index 0c5b9c8c019f5e28d81a2c9c06e0feac577bda5d..faf0ef7a412e1df2938f953c63b603548ab02281 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c04.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_2d_from_3d) { +TEST(TEST_CATEGORY, view_subview_2d_from_3d) { TestViewSubview::test_2d_subview_3d(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp index 0e11c637e615eb3847d0391488af578ea7d398d4..a3fb95fbefbcad6701771a1c36c7ceb5b072597b 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c05.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(openmptarget, view_subview_2d_from_3d_atomic) { +TEST(openmptarget, view_subview_2d_from_3d_atomic) { TestViewSubview::test_2d_subview_3d >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp index e9a30a1835ac50df52bd3498e1ee4b14682f6ea7..056b392cd5de827394bb4e2345f43007208c5881 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c06.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { +TEST(TEST_CATEGORY, view_subview_2d_from_3d_randomaccess) { TestViewSubview::test_2d_subview_3d< TEST_EXECSPACE, Kokkos::MemoryTraits >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp index 7d230d7e8547eed11866497c51a310622721d77d..033bce86335a205c82cbc42c38601715970c1884 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c07.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_left) { +TEST(TEST_CATEGORY, view_subview_3d_from_5d_left) { TestViewSubview::test_3d_subview_5d_left(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp index e0b1f17a9869f5b872a3e737ce01de57de4eddc4..58ef4236089937de431b7abfd07d1f8624299bae 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c08.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { +TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_atomic) { TestViewSubview::test_3d_subview_5d_left< TEST_EXECSPACE, Kokkos::MemoryTraits >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp index 0b5d94b5274bba68f040429253fb1a484d2884e8..6e6c2af8e9402655753f4ef34bbb2b0f5f1ba155 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c09.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { +TEST(TEST_CATEGORY, view_subview_3d_from_5d_left_randomaccess) { TestViewSubview::test_3d_subview_5d_left< TEST_EXECSPACE, Kokkos::MemoryTraits >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp index da2605da03ad63f495fd856c623549965045bf92..2ad95d38cf72df4d40e90cf9c12f67cfe275b27c 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c10.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_right) { +TEST(TEST_CATEGORY, view_subview_3d_from_5d_right) { TestViewSubview::test_3d_subview_5d_right(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp index 3aa927190c7bb1de77f78f2d62fb334c0397284f..da8684d21ce4a6f28cd9c85a4ee09ea7bfcc5fee 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c11.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { +TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_atomic) { TestViewSubview::test_3d_subview_5d_right< TEST_EXECSPACE, Kokkos::MemoryTraits >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp index dde0db7dd84f22b53dbe8f94d1bd89af316d1810..dde7d5176208a5189c7969c18e6fbd8bd4948d9b 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c12.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { +TEST(TEST_CATEGORY, view_subview_3d_from_5d_right_randomaccess) { TestViewSubview::test_3d_subview_5d_right< TEST_EXECSPACE, Kokkos::MemoryTraits >(); } diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c13.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_SubView_c13.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp index f2d063c25f94479b0c8ecfe6f649e053ea9508dd..74b74d784ca0422a5bccc4287d9c1ada9ace4ad6 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_Team.cpp @@ -47,7 +47,7 @@ namespace Test { -TEST_F(TEST_CATEGORY, team_for) { +TEST(TEST_CATEGORY, team_for) { TestTeamPolicy >::test_for( 0); TestTeamPolicy >::test_for( @@ -64,7 +64,7 @@ TEST_F(TEST_CATEGORY, team_for) { 1000); } -TEST_F(TEST_CATEGORY, team_reduce) { +TEST(TEST_CATEGORY, team_reduce) { TestTeamPolicy >::test_reduce(0); TestTeamPolicy >(0); TestScanTeam >(0); TestScanTeam >(10); @@ -56,7 +56,7 @@ TEST_F(TEST_CATEGORY, team_scan) { TestScanTeam >(10000); } -TEST_F(TEST_CATEGORY, team_long_reduce) { +TEST(TEST_CATEGORY, team_long_reduce) { TestReduceTeam >(0); TestReduceTeam >(0); TestReduceTeam >(3); @@ -67,7 +67,7 @@ TEST_F(TEST_CATEGORY, team_long_reduce) { 100000); } -TEST_F(TEST_CATEGORY, team_double_reduce) { +TEST(TEST_CATEGORY, team_double_reduce) { TestReduceTeam >(0); TestReduceTeam >(0); TestReduceTeam >(3); diff --git a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp index b0a75432d76f5bee0563ac44ae7a3a6de4850628..729e3591878252aefcb91db8f66689eb8c77671d 100644 --- a/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp +++ b/lib/kokkos/core/unit_test/openmptarget/TestOpenMPTarget_TeamScratch.cpp @@ -47,18 +47,17 @@ namespace Test { -TEST_F(TEST_CATEGORY, team_shared_request) { +TEST(TEST_CATEGORY, team_shared_request) { TestSharedTeam >(); TestSharedTeam >(); } -TEST_F(TEST_CATEGORY, team_scratch_request) { +TEST(TEST_CATEGORY, team_scratch_request) { TestScratchTeam >(); TestScratchTeam >(); } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST_F(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam >(); @@ -66,11 +65,10 @@ TEST_F(TEST_CATEGORY, team_lambda_shared_request) { Kokkos::Schedule >(); } #endif -#endif -TEST_F(TEST_CATEGORY, shmem_size) { TestShmemSize(); } +TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } -TEST_F(TEST_CATEGORY, multi_level_scratch) { +TEST(TEST_CATEGORY, multi_level_scratch) { TestMultiLevelScratchTeam >(); TestMultiLevelScratchTeam - -namespace Test { - -TEST_F(qthreads, atomics) { -#if 0 - const int loop_count = 1e4; - - ASSERT_TRUE( ( TestAtomic::Loop< int, Kokkos::Qthreads >( loop_count, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< int, Kokkos::Qthreads >( loop_count, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< int, Kokkos::Qthreads >( loop_count, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< unsigned int, Kokkos::Qthreads >( loop_count, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< unsigned int, Kokkos::Qthreads >( loop_count, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< unsigned int, Kokkos::Qthreads >( loop_count, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< long int, Kokkos::Qthreads >( loop_count, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< long int, Kokkos::Qthreads >( loop_count, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< long int, Kokkos::Qthreads >( loop_count, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< unsigned long int, Kokkos::Qthreads >( loop_count, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< unsigned long int, Kokkos::Qthreads >( loop_count, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< unsigned long int, Kokkos::Qthreads >( loop_count, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< long long int, Kokkos::Qthreads >( loop_count, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< long long int, Kokkos::Qthreads >( loop_count, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< long long int, Kokkos::Qthreads >( loop_count, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< double, Kokkos::Qthreads >( loop_count, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< double, Kokkos::Qthreads >( loop_count, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< double, Kokkos::Qthreads >( loop_count, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< float, Kokkos::Qthreads >( 100, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< float, Kokkos::Qthreads >( 100, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< float, Kokkos::Qthreads >( 100, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< Kokkos::complex, Kokkos::Qthreads >( 100, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< Kokkos::complex, Kokkos::Qthreads >( 100, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< Kokkos::complex, Kokkos::Qthreads >( 100, 3 ) ) ); - - ASSERT_TRUE( ( TestAtomic::Loop< TestAtomic::SuperScalar<4>, Kokkos::Qthreads >( 100, 1 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< TestAtomic::SuperScalar<4>, Kokkos::Qthreads >( 100, 2 ) ) ); - ASSERT_TRUE( ( TestAtomic::Loop< TestAtomic::SuperScalar<4>, Kokkos::Qthreads >( 100, 3 ) ) ); -#endif -} - -TEST_F(qthreads, atomic_operations) { -#if 0 - const int start = 1; // Avoid zero for division. - const int end = 11; - - for ( int i = start; i < end; ++i ) - { - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 5 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 6 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 7 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 8 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 9 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 11 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< int, Kokkos::Qthreads >( start, end - i, 12 ) ) ); - - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 5 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 6 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 7 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 8 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 9 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 11 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned int, Kokkos::Qthreads >( start, end - i, 12 ) ) ); - - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 5 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 6 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 7 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 8 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 9 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 11 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long int, Kokkos::Qthreads >( start, end - i, 12 ) ) ); - - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 5 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 6 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 7 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 8 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 9 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 11 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< unsigned long int, Kokkos::Qthreads >( start, end - i, 12 ) ) ); - - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 5 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 6 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 7 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 8 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 9 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 11 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestIntegralType< long long int, Kokkos::Qthreads >( start, end - i, 12 ) ) ); - - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< double, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< double, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< double, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< double, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< float, Kokkos::Qthreads >( start, end - i, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< float, Kokkos::Qthreads >( start, end - i, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< float, Kokkos::Qthreads >( start, end - i, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicOperations::AtomicOperationsTestNonIntegralType< float, Kokkos::Qthreads >( start, end - i, 4 ) ) ); - } -#endif -} - -TEST_F(qthreads, atomic_views_integral) { -#if 0 - const long length = 1000000; - - { - // Integral Types. - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 4 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 5 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 6 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 7 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestIntegralType< long, Kokkos::Qthreads >( length, 8 ) ) ); - } -#endif -} - -TEST_F(qthreads, atomic_views_nonintegral) { -#if 0 - const long length = 1000000; - - { - // Non-Integral Types. - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestNonIntegralType< double, Kokkos::Qthreads >( length, 1 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestNonIntegralType< double, Kokkos::Qthreads >( length, 2 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestNonIntegralType< double, Kokkos::Qthreads >( length, 3 ) ) ); - ASSERT_TRUE( ( TestAtomicViews::AtomicViewsTestNonIntegralType< double, Kokkos::Qthreads >( length, 4 ) ) ); - } -#endif -} - -TEST_F(qthreads, atomic_view_api) { -#if 0 - TestAtomicViews::TestAtomicViewAPI< int, Kokkos::Qthreads >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Complex.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_Complex.cpp deleted file mode 100644 index 09e1ca3e24c0b18bb6734cc5dd7627370e399c4e..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Complex.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include -#include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Other.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_Other.cpp deleted file mode 100644 index 7d5461661319cd67365650062407f0f35da7f321..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Other.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, init) { ; } - -TEST_F(qthreads, md_range) { -#if 0 - TestMDRange_2D< Kokkos::Qthreads >::test_for2( 100, 100 ); - TestMDRange_3D< Kokkos::Qthreads >::test_for3( 100, 100, 100 ); -#endif -} - -TEST_F(qthreads, policy_construction) { -#if 0 - TestRangePolicyConstruction< Kokkos::Qthreads >(); - TestTeamPolicyConstruction< Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, range_tag) { -#if 0 - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 0 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 0 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_scan( 0 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 0 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 0 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_scan( 0 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_dynamic_policy( 0 ); - - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 2 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 2 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_scan( 2 ); - - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 3 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 3 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_scan( 3 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_dynamic_policy( 3 ); - - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 1000 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 1000 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_scan( 1000 ); - - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 1001 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 1001 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_scan( 1001 ); - TestRange< Kokkos::Qthreads, Kokkos::Schedule >::test_dynamic_policy( 1000 ); -#endif -} - -//---------------------------------------------------------------------------- - -TEST_F(qthreads, compiler_macros) { -#if 0 - ASSERT_TRUE( ( TestCompilerMacros::Test< Kokkos::Qthreads >() ) ); -#endif -} - -//---------------------------------------------------------------------------- - -TEST_F(qthreads, memory_pool) { -#if 0 - -#endif -} - -//---------------------------------------------------------------------------- - -#if defined(KOKKOS_ENABLE_TASKDAG) - -TEST_F(qthreads, task_fib) { -#if 0 - const int N = 24 ; // 25 triggers tbd bug on Cuda/Pascal - for ( int i = 0; i < N; ++i ) { - TestTaskScheduler::TestFib< Kokkos::Qthreads >::run( i, ( i + 1 ) * ( i + 1 ) * 10000 ); - } -#endif -} - -TEST_F(qthreads, task_depend) { -#if 0 - for ( int i = 0; i < 25; ++i ) { - TestTaskScheduler::TestTaskDependence< Kokkos::Qthreads >::run( i ); - } -#endif -} - -TEST_F(qthreads, task_team) { -#if 0 - TestTaskScheduler::TestTaskTeam< Kokkos::Qthreads >::run( 1000 ); - //TestTaskScheduler::TestTaskTeamValue< Kokkos::Qthreads >::run( 1000 ); // Put back after testing. -#endif -} - -#endif // #if defined( KOKKOS_ENABLE_TASKDAG ) - -//---------------------------------------------------------------------------- - -#if defined(KOKKOS_ENABLE_DEFAULT_DEVICE_TYPE_QTHREADS) - -TEST_F(qthreads, cxx11) { -#if 0 - if ( std::is_same< Kokkos::DefaultExecutionSpace, Kokkos::Qthreads >::value ) { - ASSERT_TRUE( ( TestCXX11::Test< Kokkos::Qthreads >( 1 ) ) ); - ASSERT_TRUE( ( TestCXX11::Test< Kokkos::Qthreads >( 2 ) ) ); - ASSERT_TRUE( ( TestCXX11::Test< Kokkos::Qthreads >( 3 ) ) ); - ASSERT_TRUE( ( TestCXX11::Test< Kokkos::Qthreads >( 4 ) ) ); - } -#endif -} - -#endif - -TEST_F(qthreads, tile_layout) { -#if 0 - TestTile::test< Kokkos::Qthreads, 1, 1 >( 1, 1 ); - TestTile::test< Kokkos::Qthreads, 1, 1 >( 2, 3 ); - TestTile::test< Kokkos::Qthreads, 1, 1 >( 9, 10 ); - - TestTile::test< Kokkos::Qthreads, 2, 2 >( 1, 1 ); - TestTile::test< Kokkos::Qthreads, 2, 2 >( 2, 3 ); - TestTile::test< Kokkos::Qthreads, 2, 2 >( 4, 4 ); - TestTile::test< Kokkos::Qthreads, 2, 2 >( 9, 9 ); - - TestTile::test< Kokkos::Qthreads, 2, 4 >( 9, 9 ); - TestTile::test< Kokkos::Qthreads, 4, 2 >( 9, 9 ); - - TestTile::test< Kokkos::Qthreads, 4, 4 >( 1, 1 ); - TestTile::test< Kokkos::Qthreads, 4, 4 >( 4, 4 ); - TestTile::test< Kokkos::Qthreads, 4, 4 >( 9, 9 ); - TestTile::test< Kokkos::Qthreads, 4, 4 >( 9, 11 ); - - TestTile::test< Kokkos::Qthreads, 8, 8 >( 1, 1 ); - TestTile::test< Kokkos::Qthreads, 8, 8 >( 4, 4 ); - TestTile::test< Kokkos::Qthreads, 8, 8 >( 9, 9 ); - TestTile::test< Kokkos::Qthreads, 8, 8 >( 9, 11 ); -#endif -} - -TEST_F(qthreads, dispatch) { -#if 0 - const int repeat = 100; - for ( int i = 0; i < repeat; ++i ) { - for ( int j = 0; j < repeat; ++j ) { - Kokkos::parallel_for( Kokkos::RangePolicy< Kokkos::Qthreads >( 0, j ) - , KOKKOS_LAMBDA( int ) {} ); - } - } -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Reductions.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_Reductions.cpp deleted file mode 100644 index 9e60ad123f638c85e27bbbaa3b721c3383bf4333..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Reductions.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, long_reduce) { -#if 0 - TestReduce< long, Kokkos::Qthreads >( 0 ); - TestReduce< long, Kokkos::Qthreads >( 1000000 ); -#endif -} - -TEST_F(qthreads, double_reduce) { -#if 0 - TestReduce< double, Kokkos::Qthreads >( 0 ); - TestReduce< double, Kokkos::Qthreads >( 1000000 ); -#endif -} - -TEST_F(qthreads, reducers) { -#if 0 - TestReducers< int, Kokkos::Qthreads >::execute_integer(); - TestReducers< size_t, Kokkos::Qthreads >::execute_integer(); - TestReducers< double, Kokkos::Qthreads >::execute_float(); - TestReducers< Kokkos::complex, Kokkos::Qthreads>::execute_basic(); -#endif -} - -TEST_F(qthreads, long_reduce_dynamic) { -#if 0 - TestReduceDynamic< long, Kokkos::Qthreads >( 0 ); - TestReduceDynamic< long, Kokkos::Qthreads >( 1000000 ); -#endif -} - -TEST_F(qthreads, double_reduce_dynamic) { -#if 0 - TestReduceDynamic< double, Kokkos::Qthreads >( 0 ); - TestReduceDynamic< double, Kokkos::Qthreads >( 1000000 ); -#endif -} - -TEST_F(qthreads, long_reduce_dynamic_view) { -#if 0 - TestReduceDynamicView< long, Kokkos::Qthreads >( 0 ); - TestReduceDynamicView< long, Kokkos::Qthreads >( 1000000 ); -#endif -} - -TEST_F(qthreads, scan) { -#if 0 - TestScan< Kokkos::Qthreads >::test_range( 1, 1000 ); - TestScan< Kokkos::Qthreads >( 0 ); - TestScan< Kokkos::Qthreads >( 100000 ); - TestScan< Kokkos::Qthreads >( 10000000 ); - Kokkos::Qthreads().fence(); -#endif -} - -TEST_F(qthreads, scan_small) { -#if 0 - typedef TestScan< Kokkos::Qthreads, Kokkos::Impl::QthreadsExecUseScanSmall > TestScanFunctor; - - for ( int i = 0; i < 1000; ++i ) { - TestScanFunctor( 10 ); - TestScanFunctor( 10000 ); - } - TestScanFunctor( 1000000 ); - TestScanFunctor( 10000000 ); - - Kokkos::Qthreads().fence(); -#endif -} - -TEST_F(qthreads, team_scan) { -#if 0 - TestScanTeam< Kokkos::Qthreads, Kokkos::Schedule >( 0 ); - TestScanTeam< Kokkos::Qthreads, Kokkos::Schedule >( 0 ); - TestScanTeam< Kokkos::Qthreads, Kokkos::Schedule >( 10 ); - TestScanTeam< Kokkos::Qthreads, Kokkos::Schedule >( 10 ); - TestScanTeam< Kokkos::Qthreads, Kokkos::Schedule >( 10000 ); - TestScanTeam< Kokkos::Qthreads, Kokkos::Schedule >( 10000 ); -#endif -} - -TEST_F(qthreads, team_long_reduce) { -#if 0 - TestReduceTeam< long, Kokkos::Qthreads, Kokkos::Schedule >( 0 ); - TestReduceTeam< long, Kokkos::Qthreads, Kokkos::Schedule >( 0 ); - TestReduceTeam< long, Kokkos::Qthreads, Kokkos::Schedule >( 3 ); - TestReduceTeam< long, Kokkos::Qthreads, Kokkos::Schedule >( 3 ); - TestReduceTeam< long, Kokkos::Qthreads, Kokkos::Schedule >( 100000 ); - TestReduceTeam< long, Kokkos::Qthreads, Kokkos::Schedule >( 100000 ); -#endif -} - -TEST_F(qthreads, team_double_reduce) { -#if 0 - TestReduceTeam< double, Kokkos::Qthreads, Kokkos::Schedule >( 0 ); - TestReduceTeam< double, Kokkos::Qthreads, Kokkos::Schedule >( 0 ); - TestReduceTeam< double, Kokkos::Qthreads, Kokkos::Schedule >( 3 ); - TestReduceTeam< double, Kokkos::Qthreads, Kokkos::Schedule >( 3 ); - TestReduceTeam< double, Kokkos::Qthreads, Kokkos::Schedule >( 100000 ); - TestReduceTeam< double, Kokkos::Qthreads, Kokkos::Schedule >( 100000 ); -#endif -} - -TEST_F(qthreads, reduction_deduction) { -#if 0 - TestCXX11::test_reduction_deduction< Kokkos::Qthreads >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c05.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c05.cpp deleted file mode 100644 index 1e6b6736621dc44ec1c08b1619ec92e0f16c0bf8..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c05.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_subview_2d_from_3d_atomic) { -#if 0 - TestViewSubview::test_2d_subview_3d< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c06.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c06.cpp deleted file mode 100644 index b2ef924f875f04d051fe788d12400025db83056b..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c06.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_subview_2d_from_3d_randomaccess) { -#if 0 - TestViewSubview::test_2d_subview_3d< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c08.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c08.cpp deleted file mode 100644 index 0bc591c128f9b67db57a265fbee1315d6a14ccc0..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c08.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_subview_3d_from_5d_left_atomic) { -#if 0 - TestViewSubview::test_3d_subview_5d_left< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c09.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c09.cpp deleted file mode 100644 index 45d878fcea3d4e90acbad7893cdca72c992788c4..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c09.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_subview_3d_from_5d_left_randomaccess) { -#if 0 - TestViewSubview::test_3d_subview_5d_left< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c11.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c11.cpp deleted file mode 100644 index 6bfd19ad65a7284a51557b4f5c3394ac89501c3b..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c11.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_subview_3d_from_5d_right_atomic) { -#if 0 - TestViewSubview::test_3d_subview_5d_right< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c12.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c12.cpp deleted file mode 100644 index 9b6896d3eebbad2db8c434af53716b71767a0ab7..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c12.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_subview_3d_from_5d_right_randomaccess) { -#if 0 - TestViewSubview::test_3d_subview_5d_right< Kokkos::Qthreads, Kokkos::MemoryTraits >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c13.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c13.cpp deleted file mode 100644 index e03190d5146c988729d44aaf5688cf700a856e33..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c13.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, view_test_unmanaged_subview_reset) { -#if 0 - TestViewSubview::test_unmanaged_subview_reset< TEST_EXECSPACE >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c_all.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c_all.cpp deleted file mode 100644 index d8ea958a5d4911d0fa39eb34f6fc231cb1e95e1c..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_SubView_c_all.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Team.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_Team.cpp deleted file mode 100644 index 6a4d9323a7148e38dd26b8c6c2a273973724091a..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_Team.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, team_tag) { -#if 0 - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 0 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 0 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 0 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 0 ); - - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 2 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 2 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 2 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 2 ); - - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 1000 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 1000 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_for( 1000 ); - TestTeamPolicy< Kokkos::Qthreads, Kokkos::Schedule >::test_reduce( 1000 ); -#endif -} - -TEST_F(qthreads, team_shared_request) { -#if 0 - TestSharedTeam< Kokkos::Qthreads, Kokkos::Schedule >(); - TestSharedTeam< Kokkos::Qthreads, Kokkos::Schedule >(); -#endif -} - -TEST_F(qthreads, team_scratch_request) { -#if 0 - TestScratchTeam< Kokkos::Qthreads, Kokkos::Schedule >(); - TestScratchTeam< Kokkos::Qthreads, Kokkos::Schedule >(); -#endif -} - -#if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -TEST_F(qthreads, team_lambda_shared_request) { -#if 0 - TestLambdaSharedTeam< Kokkos::HostSpace, Kokkos::Qthreads, Kokkos::Schedule >(); - TestLambdaSharedTeam< Kokkos::HostSpace, Kokkos::Qthreads, Kokkos::Schedule >(); -#endif -} -#endif - -TEST_F(qthreads, shmem_size) { -#if 0 - TestShmemSize< Kokkos::Qthreads >(); -#endif -} - -TEST_F(qthreads, multi_level_scratch) { -#if 0 - TestMultiLevelScratchTeam< Kokkos::Qthreads, Kokkos::Schedule >(); - TestMultiLevelScratchTeam< Kokkos::Qthreads, Kokkos::Schedule >(); -#endif -} - -TEST_F(qthreads, team_vector) { -#if 0 - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 0 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 1 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 2 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 3 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 4 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 5 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 6 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 7 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 8 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 9 ) ) ); - ASSERT_TRUE( ( TestTeamVector::Test< Kokkos::Qthreads >( 10 ) ) ); -#endif -} - -#ifdef KOKKOS_COMPILER_GNU -#if (KOKKOS_COMPILER_GNU == 472) -#define SKIP_TEST -#endif -#endif - -#ifndef SKIP_TEST -TEST_F(qthreads, triple_nested_parallelism) { -#if 0 - TestTripleNestedReduce< double, Kokkos::Qthreads >( 8192, 2048, 32, 32 ); - TestTripleNestedReduce< double, Kokkos::Qthreads >( 8192, 2048, 32, 16 ); - TestTripleNestedReduce< double, Kokkos::Qthreads >( 8192, 2048, 16, 16 ); -#endif -} -#endif - -} // namespace Test diff --git a/lib/kokkos/core/unit_test/qthreads/TestQthreads_ViewAPI_a.cpp b/lib/kokkos/core/unit_test/qthreads/TestQthreads_ViewAPI_a.cpp deleted file mode 100644 index fad6473d204c2c8837ea553fe3d6c116c2122325..0000000000000000000000000000000000000000 --- a/lib/kokkos/core/unit_test/qthreads/TestQthreads_ViewAPI_a.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* -//@HEADER -// ************************************************************************ -// -// Kokkos v. 3.0 -// Copyright (2020) National Technology & Engineering -// Solutions of Sandia, LLC (NTESS). -// -// Under the terms of Contract DE-NA0003525 with NTESS, -// the U.S. Government retains certain rights in this software. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the Corporation nor the names of the -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NTESS OR THE -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Questions? Contact Christian R. Trott (crtrott@sandia.gov) -// -// ************************************************************************ -//@HEADER -*/ - -#include - -namespace Test { - -TEST_F(qthreads, impl_view_mapping_a) { -#if 0 - test_view_mapping< Kokkos::Qthreads >(); - test_view_mapping_operator< Kokkos::Qthreads >(); -#endif -} - -} // namespace Test diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_BitSet.cpp b/lib/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/serial/TestSerial_BitSet.cpp rename to lib/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp index 322e88a6af9d700854a46be8c18d6984e97c30a1..aa2c1577ce2016f72bdcc4c53a99a62c4ba75451 100644 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_BitSet.cpp +++ b/lib/kokkos/core/unit_test/serial/TestSerial_Concepts.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -44,4 +43,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/containers/unit_tests/serial/TestSerial_DualView.cpp b/lib/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/serial/TestSerial_DualView.cpp rename to lib/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp index c1646ed13ba6c215017aec202acf091cacf02353..dcc77054d6dbb573a1edb879f69992102791df48 100644 --- a/lib/kokkos/containers/unit_tests/serial/TestSerial_DualView.cpp +++ b/lib/kokkos/core/unit_test/serial/TestSerial_RangePolicyRequire.cpp @@ -44,4 +44,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/serial/TestSerial_Team.cpp b/lib/kokkos/core/unit_test/serial/TestSerial_Team.cpp index e85ea86f3f68a2d372d25ad8b777f890d18750cc..1ee69468105e86c3861a80cd1ddca595fe8fef20 100644 --- a/lib/kokkos/core/unit_test/serial/TestSerial_Team.cpp +++ b/lib/kokkos/core/unit_test/serial/TestSerial_Team.cpp @@ -79,26 +79,87 @@ TEST(TEST_CATEGORY, team_reduce) { Kokkos::Schedule >::test_reduce(1000); } -TEST(TEST_CATEGORY, team_broadcast) { - TestTeamBroadcast >::test_teambroadcast(0); - TestTeamBroadcast >::test_teambroadcast(0); - - TestTeamBroadcast >::test_teambroadcast(2); - TestTeamBroadcast >::test_teambroadcast(2); - - TestTeamBroadcast >::test_teambroadcast(16); - TestTeamBroadcast >::test_teambroadcast(16); - - TestTeamBroadcast >:: - test_teambroadcast(1000); - TestTeamBroadcast >:: - test_teambroadcast(1000); +TEST(TEST_CATEGORY, team_broadcast_long) { + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + + TestTeamBroadcast, + long>::test_teambroadcast(1000, 1); + TestTeamBroadcast, + long>::test_teambroadcast(1000, 1); +} + +TEST(TEST_CATEGORY, team_broadcast_char) { + TestTeamBroadcast, + unsigned char>::test_teambroadcast(0, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(0, 1); + + TestTeamBroadcast, + unsigned char>::test_teambroadcast(2, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(2, 1); + + TestTeamBroadcast, + unsigned char>::test_teambroadcast(16, 1); + TestTeamBroadcast, + unsigned char>::test_teambroadcast(16, 1); +} + +TEST(TEST_CATEGORY, team_broadcast_float) { + TestTeamBroadcast, + float>::test_teambroadcast(0, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(2, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(16, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(16, 1.3); + + TestTeamBroadcast, + float>::test_teambroadcast(1000, 1.3); + TestTeamBroadcast, + float>::test_teambroadcast(1000, 1.3); +} + +TEST(TEST_CATEGORY, team_broadcast_double) { + TestTeamBroadcast, + double>::test_teambroadcast(0, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(0, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(2, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(2, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(16, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(16, 1.3); + + TestTeamBroadcast, + double>::test_teambroadcast(1000, 1.3); + TestTeamBroadcast, + double>::test_teambroadcast(1000, 1.3); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp b/lib/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp index e70b3e34d61e6c474bd3a4f0a5c73c1155445a29..5d10c0c5e9a06c0a17b84618e3ab51c8c2cabc02 100644 --- a/lib/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp +++ b/lib/kokkos/core/unit_test/serial/TestSerial_TeamScratch.cpp @@ -58,7 +58,6 @@ TEST(TEST_CATEGORY, team_scratch_request) { } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam >(); @@ -68,7 +67,6 @@ TEST(TEST_CATEGORY, team_lambda_shared_request) { TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment(); } #endif -#endif TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } diff --git a/lib/kokkos/core/unit_test/standalone/Makefile b/lib/kokkos/core/unit_test/standalone/Makefile index c910cc5fd182a4861fa3c73b18ef4f2fc43ef44e..d60422233d69b51761335caf9c53a1860416aa42 100644 --- a/lib/kokkos/core/unit_test/standalone/Makefile +++ b/lib/kokkos/core/unit_test/standalone/Makefile @@ -9,7 +9,6 @@ ifndef KOKKOS_PATH endif SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) -SRC += $(MAKEFILE_PATH)/../TestStackTrace.cpp HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) HEADERS = $(wildcard $(MAKEFILE_PATH)/../*.hpp) @@ -42,7 +41,7 @@ include $(KOKKOS_PATH)/Makefile.kokkos build: $(EXE) $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) gtest-all.o - $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) gtest-all.o -o $(EXE) + $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) gtest-all.o -lpthread -o $(EXE) clean: kokkos-clean rm -f *.o *.cuda *.host diff --git a/lib/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp b/lib/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp index 8f8bac7b23cff25099dc0b2c29f58dc53faecc73..c5d4a36677efd58be2ad3b03873efec225b5be0f 100644 --- a/lib/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp +++ b/lib/kokkos/core/unit_test/standalone/UnitTestMainInit.cpp @@ -62,12 +62,15 @@ #ifdef KOKKOS_ENABLE_HPX #include #endif +#ifdef KOKKOS_ENABLE_OPENMPTARGET +#include +#endif #ifndef TEST_EXECSPACE #ifdef KOKKOS_ENABLE_SERIAL #include #endif #endif -#include +#include int main(int argc, char *argv[]) { Kokkos::initialize(argc, argv); diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_BitSet.cpp b/lib/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/threads/TestThreads_BitSet.cpp rename to lib/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp index ec93bb121cf94bb5256258e42305267f436a904c..ed2d61ed3be680ad8c82d4e67642cbcbead3fb75 100644 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_BitSet.cpp +++ b/lib/kokkos/core/unit_test/threads/TestThreads_Concepts.cpp @@ -1,4 +1,3 @@ - /* //@HEADER // ************************************************************************ @@ -44,4 +43,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/containers/unit_tests/threads/TestThreads_DualView.cpp b/lib/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp similarity index 98% rename from lib/kokkos/containers/unit_tests/threads/TestThreads_DualView.cpp rename to lib/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp index f6967bf0d4e1d2e4f8a12b628ec1f66e15e518e1..7a10b82658544caa091e9568587fa8718f229d7b 100644 --- a/lib/kokkos/containers/unit_tests/threads/TestThreads_DualView.cpp +++ b/lib/kokkos/core/unit_test/threads/TestThreads_RangePolicyRequire.cpp @@ -44,4 +44,4 @@ */ #include -#include +#include diff --git a/lib/kokkos/core/unit_test/threads/TestThreads_Team.cpp b/lib/kokkos/core/unit_test/threads/TestThreads_Team.cpp index b931c5cb61a84984d917dc91d5e0d960c8756b13..5d2e360734247e5dfd65c9ce07aeae68730fd10c 100644 --- a/lib/kokkos/core/unit_test/threads/TestThreads_Team.cpp +++ b/lib/kokkos/core/unit_test/threads/TestThreads_Team.cpp @@ -80,25 +80,25 @@ TEST(TEST_CATEGORY, team_reduce) { } TEST(TEST_CATEGORY, team_broadcast) { - TestTeamBroadcast >::test_teambroadcast(0); - TestTeamBroadcast >::test_teambroadcast(0); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); + TestTeamBroadcast, + long>::test_teambroadcast(0, 1); - TestTeamBroadcast >::test_teambroadcast(2); - TestTeamBroadcast >::test_teambroadcast(2); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); + TestTeamBroadcast, + long>::test_teambroadcast(2, 1); - TestTeamBroadcast >::test_teambroadcast(16); - TestTeamBroadcast >::test_teambroadcast(16); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); + TestTeamBroadcast, + long>::test_teambroadcast(16, 1); - TestTeamBroadcast >:: - test_teambroadcast(1000); - TestTeamBroadcast >:: - test_teambroadcast(1000); + TestTeamBroadcast, + long>::test_teambroadcast(1000, 1); + TestTeamBroadcast, + long>::test_teambroadcast(1000, 1); } } // namespace Test diff --git a/lib/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp b/lib/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp index d793a9050fd0023f42a71b2d9626b7d20de22568..a37369fc049226bdcd619b366436f0e79ff6f198 100644 --- a/lib/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp +++ b/lib/kokkos/core/unit_test/threads/TestThreads_TeamScratch.cpp @@ -58,7 +58,6 @@ TEST(TEST_CATEGORY, team_scratch_request) { } #if defined(KOKKOS_ENABLE_CXX11_DISPATCH_LAMBDA) -#if !defined(KOKKOS_ENABLE_CUDA) || (8000 <= CUDA_VERSION) TEST(TEST_CATEGORY, team_lambda_shared_request) { TestLambdaSharedTeam >(); @@ -68,7 +67,6 @@ TEST(TEST_CATEGORY, team_lambda_shared_request) { TEST(TEST_CATEGORY, scratch_align) { TestScratchAlignment(); } #endif -#endif TEST(TEST_CATEGORY, shmem_size) { TestShmemSize(); } diff --git a/lib/kokkos/example/CMakeLists.txt b/lib/kokkos/example/CMakeLists.txt index c7d60995463701f1df28c36e7cc40f15ea507e5f..34157329d09b349debe094768d85a36b9f932cc5 100644 --- a/lib/kokkos/example/CMakeLists.txt +++ b/lib/kokkos/example/CMakeLists.txt @@ -2,19 +2,11 @@ # Subpackage name must match what appears in kokkos/cmake/Dependencies.cmake # -#KOKKOS_SUBPACKAGE(Example) +KOKKOS_SUBPACKAGE(Example) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(query_device) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(fixture) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(feint) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(fenl) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(multi_fem) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(md_skeleton) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(global_2_local_ids) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(grow_array) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(sort_array) -#if(NOT Kokkos_ENABLE_CUDA) -#KOKKOS_ADD_EXAMPLE_DIRECTORIES(tutorial) -#endif() -#KOKKOS_SUBPACKAGE_POSTPROCESS() +KOKKOS_ADD_EXAMPLE_DIRECTORIES(query_device) +if(NOT Kokkos_ENABLE_CUDA) + KOKKOS_ADD_EXAMPLE_DIRECTORIES(tutorial) +endif() +KOKKOS_SUBPACKAGE_POSTPROCESS() diff --git a/lib/kokkos/example/README b/lib/kokkos/example/README index ec64004842b0f254de2f1d67a9cb5c272bf15607..66860512448a25c0019b862babbbe08d7cf351cf 100644 --- a/lib/kokkos/example/README +++ b/lib/kokkos/example/README @@ -5,12 +5,5 @@ Tpetra. MANIFEST: - - common: Header files used by different examples - - feint: Unstructured finite-element method - - fixture: Some other finite-element method example - - global_2_local_ids: Example of global-to-local index lookup - - grow_array: Parallel dynamic memory allocation - - md_skeleton: Molecular dynamics - query_device: Kokkos' HWLOC wrapper for querying device topology - - sort_array: Parallel sort - tutorial: Kokkos tutorial (START HERE) diff --git a/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp b/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp index c6bbaeca8181a9d02edffd5b68df88677352a7a6..63875d013f8819883725def3068d8b17e108deb4 100644 --- a/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp +++ b/lib/kokkos/example/build_cmake_in_tree/cmake_example.cpp @@ -57,7 +57,7 @@ int main(int argc, char* argv[]) { exit(1); } - const long n = strtol(argv[1], NULL, 10); + const long n = strtol(argv[1], nullptr, 10); printf("Number of even integers from 0 to %ld\n", n - 1); diff --git a/lib/kokkos/example/build_cmake_installed/cmake_example.cpp b/lib/kokkos/example/build_cmake_installed/cmake_example.cpp index c6bbaeca8181a9d02edffd5b68df88677352a7a6..63875d013f8819883725def3068d8b17e108deb4 100644 --- a/lib/kokkos/example/build_cmake_installed/cmake_example.cpp +++ b/lib/kokkos/example/build_cmake_installed/cmake_example.cpp @@ -57,7 +57,7 @@ int main(int argc, char* argv[]) { exit(1); } - const long n = strtol(argv[1], NULL, 10); + const long n = strtol(argv[1], nullptr, 10); printf("Number of even integers from 0 to %ld\n", n - 1); diff --git a/lib/kokkos/example/cmake/Dependencies.cmake b/lib/kokkos/example/cmake/Dependencies.cmake deleted file mode 100644 index 741db6a0c426bb8290c28275794fc19fe9d96ffc..0000000000000000000000000000000000000000 --- a/lib/kokkos/example/cmake/Dependencies.cmake +++ /dev/null @@ -1,3 +0,0 @@ -TRIBITS_PACKAGE_DEFINE_DEPENDENCIES( - TEST_OPTIONAL_TPLS CUSPARSE MKL HPX - ) diff --git a/lib/kokkos/example/query_device/query_device.cpp b/lib/kokkos/example/query_device/query_device.cpp index 0ce7fc9eca9d79b21fa20afd3b458e6fa6aa3085..a563b06b2864d5d0e855a80b836f3ef70f33f3a1 100644 --- a/lib/kokkos/example/query_device/query_device.cpp +++ b/lib/kokkos/example/query_device/query_device.cpp @@ -59,6 +59,8 @@ int main(int argc, char** argv) { std::ostringstream msg; + (void)argc; + (void)argv; #if defined(KOKKOS_ENABLE_MPI) MPI_Init(&argc, &argv); diff --git a/lib/kokkos/example/tutorial/CMakeLists.txt b/lib/kokkos/example/tutorial/CMakeLists.txt index 2d8259506a40e3d25a5d650a08414f39afc78140..fd471fa6bea712ebf64952c1eedfc8c20c597efa 100644 --- a/lib/kokkos/example/tutorial/CMakeLists.txt +++ b/lib/kokkos/example/tutorial/CMakeLists.txt @@ -8,11 +8,9 @@ KOKKOS_ADD_EXAMPLE_DIRECTORIES(06_simple_mdrangepolicy) KOKKOS_ADD_EXAMPLE_DIRECTORIES(Advanced_Views) KOKKOS_ADD_EXAMPLE_DIRECTORIES(Hierarchical_Parallelism) -IF (Kokkos_ENABLE_CXX11) - KOKKOS_ADD_EXAMPLE_DIRECTORIES(01_hello_world_lambda) - KOKKOS_ADD_EXAMPLE_DIRECTORIES(02_simple_reduce_lambda) - KOKKOS_ADD_EXAMPLE_DIRECTORIES(03_simple_view_lambda) -ENDIF () +KOKKOS_ADD_EXAMPLE_DIRECTORIES(01_hello_world_lambda) +KOKKOS_ADD_EXAMPLE_DIRECTORIES(02_simple_reduce_lambda) +KOKKOS_ADD_EXAMPLE_DIRECTORIES(03_simple_view_lambda) diff --git a/lib/kokkos/example/tutorial/README b/lib/kokkos/example/tutorial/README index 4ba0b3a5d9e15e3c58326559d7a7f30e5b51ea4c..c46ace0d1150760832899457e586f738e875c49f 100644 --- a/lib/kokkos/example/tutorial/README +++ b/lib/kokkos/example/tutorial/README @@ -2,16 +2,11 @@ Build the examples by typing in each directory: make -j 16 To specify a target device: -make openmp -j 16 -make pthreads -j 16 -make serial -j 16 -make cuda -j 16 +KOKKOS_DEVICES=OpenMP make -j 16 +KOKKOS_DEVICES=Pthread make -j 16 +KOKKOS_DEVICES=Serial make -j 16 +KOKKOS_DEVICES=Cuda make -j 16 -The lambda variants can not be build with CUDA=yes at the moment, since -CUDA does not support lambdas from the host. Some of the advanced topics try to highlight performance impacts by timing different variants of doing the same thing. -Also some of the advanced topics (in particular hierarchical parallelism) -require C++11 even with out using host side lambdas. CUDA 6.5 can be used -to compile those. diff --git a/lib/kokkos/example/virtual_functions/Makefile b/lib/kokkos/example/virtual_functions/Makefile index 06186786c27b02d9a0cf3739e7756115ce35570b..fbc54510da0f795ed2976ea7ed9e2d6a8a4774d8 100644 --- a/lib/kokkos/example/virtual_functions/Makefile +++ b/lib/kokkos/example/virtual_functions/Makefile @@ -1,5 +1,5 @@ KOKKOS_DEVICES=Cuda -KOKKOS_CUDA_OPTIONS=enable_lambda +KOKKOS_CUDA_OPTIONS=enable_lambda,rdc KOKKOS_ARCH = "SNB,Kepler35" #KOKKOS_DEVICES=OpenMP diff --git a/lib/kokkos/generate_makefile.bash b/lib/kokkos/generate_makefile.bash index 7ef477b9f20565687892702f2f50328cb8efc699..555f0b30a1a63f6c54ced217d0174b8073e011e6 100755 --- a/lib/kokkos/generate_makefile.bash +++ b/lib/kokkos/generate_makefile.bash @@ -1,6 +1,166 @@ #!/bin/bash -KOKKOS_DEVICES="" +update_kokkos_devices() { + SEARCH_TEXT="*$1*" + if [[ $KOKKOS_DEVICES == $SEARCH_TEXT ]]; then + echo kokkos devices already includes $SEARCH_TEXT + else + if [ "$KOKKOS_DEVICES" = "" ]; then + KOKKOS_DEVICES="$1" + echo reseting kokkos devices to $KOKKOS_DEVICES + else + KOKKOS_DEVICES="${KOKKOS_DEVICES},$1" + echo appending to kokkos devices $KOKKOS_DEVICES + fi + fi +} + +get_kokkos_device_list() { + KOKKOS_DEVICE_CMD= + PARSE_DEVICES_LST=$(echo $KOKKOS_DEVICES | tr "," "\n") + PARSE_DEVICES_LST=$(echo $PARSE_DEVICES_LST | tr "_" "\n") + for DEVICE_ in $PARSE_DEVICES_LST + do + UC_DEVICE=$(echo $DEVICE_ | tr "[:lower:]" "[:upper:]") + KOKKOS_DEVICE_CMD="-DKokkos_ENABLE_${UC_DEVICE}=ON ${KOKKOS_DEVICE_CMD}" + done +} + +get_kokkos_arch_list() { + KOKKOS_ARCH_CMD= + PARSE_ARCH_LST=$(echo $KOKKOS_ARCH | tr "," "\n") + for ARCH_ in $PARSE_ARCH_LST + do + UC_ARCH=$(echo $ARCH_ | tr "[:lower:]" "[:upper:]") + KOKKOS_ARCH_CMD="-DKokkos_ARCH_${UC_ARCH}=ON ${KOKKOS_ARCH_CMD}" + done +} + +get_kokkos_cuda_option_list() { + echo parsing KOKKOS_CUDA_OPTIONS=$KOKKOS_CUDA_OPTIONS + KOKKOS_CUDA_OPTION_CMD= + PARSE_CUDA_LST=$(echo $KOKKOS_CUDA_OPTIONS | tr "," "\n") + for CUDA_ in $PARSE_CUDA_LST + do + CUDA_OPT_NAME= + if [ "${CUDA_}" == "enable_lambda" ]; then + CUDA_OPT_NAME=CUDA_LAMBDA + elif [ "${CUDA_}" == "rdc" ]; then + CUDA_OPT_NAME=CUDA_RELOCATABLE_DEVICE_CODE + elif [ "${CUDA_}" == "force_uvm" ]; then + CUDA_OPT_NAME=CUDA_UVM + elif [ "${CUDA_}" == "use_ldg" ]; then + CUDA_OPT_NAME=CUDA_LDG_INTRINSIC + else + echo "${CUDA_} is not a valid cuda options..." + fi + if [ "${CUDA_OPT_NAME}" != "" ]; then + KOKKOS_CUDA_OPTION_CMD="-DKokkos_ENABLE_${CUDA_OPT_NAME}=ON ${KOKKOS_CUDA_OPTION_CMD}" + fi + done +} + +get_kokkos_option_list() { + echo parsing KOKKOS_OPTIONS=$KOKKOS_OPTIONS + KOKKOS_OPTION_CMD= + PARSE_OPTIONS_LST=$(echo $KOKKOS_OPTIONS | tr "," "\n") + for OPT_ in $PARSE_OPTIONS_LST + do + UC_OPT_=$(echo $OPT_ | tr "[:lower:]" "[:upper:]") + if [[ "$UC_OPT_" == *DISABLE* ]]; then + FLIP_OPT_=${UC_OPT_/DISABLE/ENABLE} + KOKKOS_OPTION_CMD="-DKokkos_${FLIP_OPT_}=OFF ${KOKKOS_OPTION_CMD}" + elif [[ "$UC_OPT_" == *ENABLE* ]]; then + KOKKOS_OPTION_CMD="-DKokkos_${UC_OPT_}=ON ${KOKKOS_OPTION_CMD}" + else + KOKKOS_OPTION_CMD="-DKokkos_ENABLE_${UC_OPT_}=ON ${KOKKOS_OPTION_CMD}" + fi + done +} + +display_help_text() { + + echo "Kokkos configure options:" + echo "" + echo "--kokkos-path=/Path/To/Kokkos: Path to the Kokkos root directory." + echo "--prefix=/Install/Path: Path to install the Kokkos library." + echo "" + echo "--with-cuda[=/Path/To/Cuda]: Enable Cuda and set path to Cuda Toolkit." + echo "--with-openmp: Enable OpenMP backend." + echo "--with-pthread: Enable Pthreads backend." + echo "--with-serial: Enable Serial backend." + echo "--with-devices: Explicitly add a set of backends." + echo "" + echo "--arch=[OPT]: Set target architectures. Options are:" + echo " [AMD]" + echo " AMDAVX = AMD CPU" + echo " EPYC = AMD EPYC Zen-Core CPU" + echo " [ARM]" + echo " ARMv80 = ARMv8.0 Compatible CPU" + echo " ARMv81 = ARMv8.1 Compatible CPU" + echo " ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU" + echo " ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU" + echo " [IBM]" + echo " BGQ = IBM Blue Gene Q" + echo " Power7 = IBM POWER7 and POWER7+ CPUs" + echo " Power8 = IBM POWER8 CPUs" + echo " Power9 = IBM POWER9 CPUs" + echo " [Intel]" + echo " WSM = Intel Westmere CPUs" + echo " SNB = Intel Sandy/Ivy Bridge CPUs" + echo " HSW = Intel Haswell CPUs" + echo " BDW = Intel Broadwell Xeon E-class CPUs" + echo " SKX = Intel Sky Lake Xeon E-class HPC CPUs (AVX512)" + echo " [Intel Xeon Phi]" + echo " KNC = Intel Knights Corner Xeon Phi" + echo " KNL = Intel Knights Landing Xeon Phi" + echo " [NVIDIA]" + echo " Kepler30 = NVIDIA Kepler generation CC 3.0" + echo " Kepler32 = NVIDIA Kepler generation CC 3.2" + echo " Kepler35 = NVIDIA Kepler generation CC 3.5" + echo " Kepler37 = NVIDIA Kepler generation CC 3.7" + echo " Maxwell50 = NVIDIA Maxwell generation CC 5.0" + echo " Maxwell52 = NVIDIA Maxwell generation CC 5.2" + echo " Maxwell53 = NVIDIA Maxwell generation CC 5.3" + echo " Pascal60 = NVIDIA Pascal generation CC 6.0" + echo " Pascal61 = NVIDIA Pascal generation CC 6.1" + echo " Volta70 = NVIDIA Volta generation CC 7.0" + echo " Volta72 = NVIDIA Volta generation CC 7.2" + echo "" + echo "--compiler=/Path/To/Compiler Set the compiler." + echo "--debug,-dbg: Enable Debugging." + echo "--disable-tests Disable compilation of unit tests (enabled by default)" + echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" + echo " build. This will still set certain required" + echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," + echo " --std=c++11, etc.)." + echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" + echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" + echo " build. This will still set certain required" + echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," + echo " -lpthread, etc.)." + echo "--with-gtest=/Path/To/Gtest: Set path to gtest. (Used in unit and performance" + echo " tests.)" + echo "--with-hwloc=/Path/To/Hwloc: Set path to hwloc library." + echo "--with-memkind=/Path/To/MemKind: Set path to memkind library." + echo "--with-options=[OPT]: Additional options to Kokkos:" + echo " compiler_warnings" + echo " aggressive_vectorization = add ivdep on loops" + echo " disable_profiling = do not compile with profiling hooks" + echo " " + echo "--with-cuda-options=[OPT]: Additional options to CUDA:" + echo " force_uvm, use_ldg, enable_lambda, rdc" + echo "--with-hpx-options=[OPT]: Additional options to HPX:" + echo " enable_async_dispatch" + echo "--gcc-toolchain=/Path/To/GccRoot: Set the gcc toolchain to use with clang (e.g. /usr)" + echo "--make-j=[NUM]: DEPRECATED: call make with appropriate" + echo " -j flag" + +} + +KOKKOS_DO_TESTS=ON +KOKKOS_DO_EXAMPLES=OFF while [[ $# > 0 ]] do @@ -17,68 +177,84 @@ do PREFIX="${key#*=}" ;; --with-cuda) - KOKKOS_DEVICES="${KOKKOS_DEVICES},Cuda" + update_kokkos_devices Cuda CUDA_PATH_NVCC=$(command -v nvcc) CUDA_PATH=${CUDA_PATH_NVCC%/bin/nvcc} ;; # Catch this before '--with-cuda*' --with-cuda-options*) - KOKKOS_CUDA_OPT="${key#*=}" + KOKKOS_CUDA_OPTIONS="${key#*=}" ;; --with-cuda*) - KOKKOS_DEVICES="${KOKKOS_DEVICES},Cuda" + update_kokkos_devices Cuda CUDA_PATH="${key#*=}" ;; --with-openmp) - KOKKOS_DEVICES="${KOKKOS_DEVICES},OpenMP" + update_kokkos_devices OpenMP ;; --with-pthread) - KOKKOS_DEVICES="${KOKKOS_DEVICES},Pthread" + update_kokkos_devices Pthread ;; --with-serial) - KOKKOS_DEVICES="${KOKKOS_DEVICES},Serial" + update_kokkos_devices Serial ;; --with-hpx-options*) KOKKOS_HPX_OPT="${key#*=}" ;; --with-hpx*) - KOKKOS_DEVICES="${KOKKOS_DEVICES},HPX" + update_kokkos_devices HPX if [ -z "$HPX_PATH" ]; then HPX_PATH="${key#*=}" fi ;; --with-devices*) DEVICES="${key#*=}" - KOKKOS_DEVICES="${KOKKOS_DEVICES},${DEVICES}" + PARSE_DEVICES=$(echo $DEVICES | tr "," "\n") + for DEVICE_ in $PARSE_DEVICES + do + update_kokkos_devices $DEVICE_ + done ;; --with-gtest*) GTEST_PATH="${key#*=}" ;; --with-hwloc*) + KOKKOS_HWLOC=ON HWLOC_PATH="${key#*=}" ;; --with-memkind*) + KOKKOS_MEMKIND=ON MEMKIND_PATH="${key#*=}" ;; --arch*) KOKKOS_ARCH="${key#*=}" ;; --cxxflags*) - CXXFLAGS="${key#*=}" + KOKKOS_CXXFLAGS="${key#*=}" + KOKKOS_CXXFLAGS=${KOKKOS_CXXFLAGS//,/ } ;; --cxxstandard*) KOKKOS_CXX_STANDARD="${key#*=}" ;; --ldflags*) - LDFLAGS="${key#*=}" + KOKKOS_LDFLAGS="${key#*=}" ;; --debug|-dbg) - KOKKOS_DEBUG=yes + KOKKOS_DEBUG=ON ;; --make-j*) echo "Warning: ${key} is deprecated" echo "Call make with appropriate -j flag" ;; + --disable-tests) + KOKKOS_DO_TESTS=OFF + ;; + --no-examples) + KOKKOS_DO_EXAMPLES=OFF + ;; + --enable-examples) + KOKKOS_DO_EXAMPLES=ON + ;; --compiler*) COMPILER="${key#*=}" CNUM=$(command -v ${COMPILER} 2>&1 >/dev/null | grep "no ${COMPILER}" | wc -l) @@ -102,87 +278,13 @@ do COMPILER=${COMPDIR}/${COMPNAME} ;; --with-options*) - KOKKOS_OPT="${key#*=}" + KOKKOS_OPTIONS="${key#*=}" ;; --gcc-toolchain*) KOKKOS_GCC_TOOLCHAIN="${key#*=}" ;; --help) - echo "Kokkos configure options:" - echo "" - echo "--kokkos-path=/Path/To/Kokkos: Path to the Kokkos root directory." - echo "--prefix=/Install/Path: Path to install the Kokkos library." - echo "" - echo "--with-cuda[=/Path/To/Cuda]: Enable Cuda and set path to Cuda Toolkit." - echo "--with-openmp: Enable OpenMP backend." - echo "--with-pthread: Enable Pthreads backend." - echo "--with-serial: Enable Serial backend." - echo "--with-devices: Explicitly add a set of backends." - echo "" - echo "--arch=[OPT]: Set target architectures. Options are:" - echo " [AMD]" - echo " AMDAVX = AMD CPU" - echo " EPYC = AMD EPYC Zen-Core CPU" - echo " [ARM]" - echo " ARMv80 = ARMv8.0 Compatible CPU" - echo " ARMv81 = ARMv8.1 Compatible CPU" - echo " ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU" - echo " ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU" - echo " [IBM]" - echo " BGQ = IBM Blue Gene Q" - echo " Power7 = IBM POWER7 and POWER7+ CPUs" - echo " Power8 = IBM POWER8 CPUs" - echo " Power9 = IBM POWER9 CPUs" - echo " [Intel]" - echo " WSM = Intel Westmere CPUs" - echo " SNB = Intel Sandy/Ivy Bridge CPUs" - echo " HSW = Intel Haswell CPUs" - echo " BDW = Intel Broadwell Xeon E-class CPUs" - echo " SKX = Intel Sky Lake Xeon E-class HPC CPUs (AVX512)" - echo " [Intel Xeon Phi]" - echo " KNC = Intel Knights Corner Xeon Phi" - echo " KNL = Intel Knights Landing Xeon Phi" - echo " [NVIDIA]" - echo " Kepler30 = NVIDIA Kepler generation CC 3.0" - echo " Kepler32 = NVIDIA Kepler generation CC 3.2" - echo " Kepler35 = NVIDIA Kepler generation CC 3.5" - echo " Kepler37 = NVIDIA Kepler generation CC 3.7" - echo " Maxwell50 = NVIDIA Maxwell generation CC 5.0" - echo " Maxwell52 = NVIDIA Maxwell generation CC 5.2" - echo " Maxwell53 = NVIDIA Maxwell generation CC 5.3" - echo " Pascal60 = NVIDIA Pascal generation CC 6.0" - echo " Pascal61 = NVIDIA Pascal generation CC 6.1" - echo " Volta70 = NVIDIA Volta generation CC 7.0" - echo " Volta72 = NVIDIA Volta generation CC 7.2" - echo "" - echo "--compiler=/Path/To/Compiler Set the compiler." - echo "--debug,-dbg: Enable Debugging." - echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" - echo " build. This will still set certain required" - echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," - echo " --std=c++11, etc.)." - echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" - echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" - echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" - echo " build. This will still set certain required" - echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," - echo " -lpthread, etc.)." - echo "--with-gtest=/Path/To/Gtest: Set path to gtest. (Used in unit and performance" - echo " tests.)" - echo "--with-hwloc=/Path/To/Hwloc: Set path to hwloc library." - echo "--with-memkind=/Path/To/MemKind: Set path to memkind library." - echo "--with-options=[OPT]: Additional options to Kokkos:" - echo " compiler_warnings" - echo " aggressive_vectorization = add ivdep on loops" - echo " disable_profiling = do not compile with profiling hooks" - echo " " - echo "--with-cuda-options=[OPT]: Additional options to CUDA:" - echo " force_uvm, use_ldg, enable_lambda, rdc, enable_constexpr" - echo "--with-hpx-options=[OPT]: Additional options to HPX:" - echo " enable_async_dispatch" - echo "--gcc-toolchain=/Path/To/GccRoot: Set the gcc toolchain to use with clang (e.g. /usr)" - echo "--make-j=[NUM]: DEPRECATED: call make with appropriate" - echo " -j flag" + display_help_text exit 0 ;; *) @@ -193,265 +295,79 @@ do shift done -# Remove leading ',' from KOKKOS_DEVICES. -KOKKOS_DEVICES=$(echo $KOKKOS_DEVICES | sed 's/^,//') -# If KOKKOS_PATH undefined, assume parent dir of this script is the KOKKOS_PATH. -if [ -z "$KOKKOS_PATH" ]; then - KOKKOS_PATH=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +if [ "$COMPILER" == "" ]; then + COMPILER_CMD= else - # Ensure KOKKOS_PATH is abs path - KOKKOS_PATH=$( cd $KOKKOS_PATH && pwd ) -fi - -if [ "${KOKKOS_PATH}" = "${PWD}" ] || [ "${KOKKOS_PATH}" = "${PWD}/" ]; then - echo "Running generate_makefile.bash in the Kokkos root directory is not allowed" - exit -fi - -KOKKOS_SRC_PATH=${KOKKOS_PATH} - -KOKKOS_SETTINGS="KOKKOS_SRC_PATH=${KOKKOS_SRC_PATH}" - -# The double [[ ]] in the elif branch is not a typo -if [ ${#COMPILER} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXX=${COMPILER}" -elif - [ ${#COMPILER} -eq 0 ] && [[ ${KOKKOS_DEVICES} =~ .*Cuda.* ]]; then - COMPILER="${KOKKOS_PATH}/bin/nvcc_wrapper" - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXX=${COMPILER}" -fi - -if [ ${#KOKKOS_DEVICES} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_DEVICES=${KOKKOS_DEVICES}" -fi - -if [ ${#KOKKOS_ARCH} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_ARCH=${KOKKOS_ARCH}" -fi - -if [ ${#KOKKOS_DEBUG} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_DEBUG=${KOKKOS_DEBUG}" -fi - -if [ ${#CUDA_PATH} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CUDA_PATH=${CUDA_PATH}" -fi - -if [ ${#CXXFLAGS} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXXFLAGS=\"${CXXFLAGS}\"" -fi - -if [ ${#KOKKOS_CXX_STANDARD} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_CXX_STANDARD=\"${KOKKOS_CXX_STANDARD}\"" -fi - -if [ ${#LDFLAGS} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} LDFLAGS=\"${LDFLAGS}\"" + COMPILER_CMD=-DCMAKE_CXX_COMPILER=$COMPILER fi -if [ ${#GTEST_PATH} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} GTEST_PATH=${GTEST_PATH}" +if [ "$KOKKOS_DEBUG" == "ON" ]; then + KOKKOS_DEBUG_CMD=-DCMAKE_BUILD_TYPE=DEBUG else - GTEST_PATH=${KOKKOS_PATH}/tpls/gtest - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} GTEST_PATH=${GTEST_PATH}" + KOKKOS_DEBUG_CMD=-DCMAKE_BUILD_TYPE=RELEASE fi -if [ ${#HWLOC_PATH} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} HWLOC_PATH=${HWLOC_PATH}" - KOKKOS_USE_TPLS="${KOKKOS_USE_TPLS},hwloc" +if [ "$KOKKOS_HWLOC" == "ON" ]; then + KOKKOS_HWLOC_CMD=-DKokkos_ENABLE_HWLOC=ON + if [ "$HWLOC_PATH" != "" ]; then + KOKKOS_HWLOC_PATH_CMD=-DHWLOC_ROOT=$HWLOC_PATH + fi +else + KOKKOS_HWLOC_CMD= fi -if [ ${#MEMKIND_PATH} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} MEMKIND_PATH=${MEMKIND_PATH}" - KOKKOS_USE_TPLS="${KOKKOS_USE_TPLS},experimental_memkind" +if [ "$KOKKOS_MEMKIND" == "ON" ]; then + KOKKOS_MEMKIND_CMD=-DKokkos_ENABLE_MEMKIND=ON + if [ "$MEMKIND_PATH" != "" ]; then + KOKKOS_MEMKIND_PATH_CMD=-DMEMKIND_ROOT=$MEMKIND_PATH + fi +else + KOKKOS_MEMKIND_CMD= fi -if [ ${#KOKKOS_USE_TPLS} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_USE_TPLS=${KOKKOS_USE_TPLS}" +if [ ! -e ${KOKKOS_PATH}/CMakeLists.txt ]; then + if [ "${KOKKOS_PATH}" == "" ]; then + CM_SCRIPT=$0 + KOKKOS_PATH=`dirname $CM_SCRIPT` + if [ ! -e ${KOKKOS_PATH}/CMakeLists.txt ]; then + echo "${KOKKOS_PATH} repository appears to not be complete. please verify and try again" + exit 0 + fi + else + echo "KOKKOS_PATH does not appear to be set properly. please specify in location of CMakeLists.txt" + display_help_text + exit 0 + fi fi -if [ ${#HPX_PATH} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} HPX_PATH=${HPX_PATH}" +get_kokkos_device_list +get_kokkos_option_list +get_kokkos_arch_list +get_kokkos_cuda_option_list + +## if HPX is enabled, we need to enforce cxx standard = 14 +if [[ ${KOKKOS_DEVICE_CMD} == *Kokkos_ENABLE_HPX* ]]; then + if [ "${KOKKOS_CXX_STANDARD}" == "" ] || [ ${#KOKKOS_CXX_STANDARD} -lt 14 ]; then + echo CXX Standard must be 14 or higher for HPX to work. + KOKKOS_CXX_STANDARD=14 + fi fi -if [ ${#KOKKOS_OPT} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_OPTIONS=${KOKKOS_OPT}" +if [ "$KOKKOS_CXX_STANDARD" == "" ]; then + STANDARD_CMD= +else + STANDARD_CMD=-DKokkos_CXX_STANDARD=${KOKKOS_CXX_STANDARD} fi -if [ ${#KOKKOS_CUDA_OPT} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_CUDA_OPTIONS=${KOKKOS_CUDA_OPT}" -fi +if [[ ${COMPILER} == *clang* ]]; then + gcc_path=$(which g++ | awk --field-separator='/bin/g++' '{printf $1}' ) + KOKKOS_CXXFLAGS="${KOKKOS_CXXFLAGS} --gcc-toolchain=${gcc_path}" -if [ ${#KOKKOS_HPX_OPT} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_HPX_OPTIONS=${KOKKOS_HPX_OPT}" + if [ ! "${CUDA_PATH}" == "" ]; then + KOKKOS_CXXFLAGS="${KOKKOS_CXXFLAGS} --cuda-path=${CUDA_PATH}" + fi fi - -if [ ${#KOKKOS_GCC_TOOLCHAIN} -gt 0 ]; then - KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_INTERNAL_GCC_TOOLCHAIN=${KOKKOS_GCC_TOOLCHAIN}" -fi - -KOKKOS_SETTINGS_NO_KOKKOS_PATH="${KOKKOS_SETTINGS}" - - -gen_makefile=Makefile.kokkos -mkdir -p core -mkdir -p core/unit_test -mkdir -p core/perf_test -mkdir -p containers -mkdir -p containers/unit_tests -mkdir -p containers/performance_tests -mkdir -p algorithms -mkdir -p algorithms/unit_tests -mkdir -p algorithms/performance_tests -mkdir -p example -mkdir -p example/fixture -mkdir -p example/feint -mkdir -p example/fenl -mkdir -p example/make_buildlink -mkdir -p example/tutorial - -KOKKOS_SETTINGS="${KOKKOS_SETTINGS_NO_KOKKOS_PATH} KOKKOS_PATH=${KOKKOS_PATH}" - -# Generate subdirectory makefiles. -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > core/unit_test/Makefile -echo "" >> core/unit_test/Makefile -echo "all:" >> core/unit_test/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/unit_test/Makefile ${KOKKOS_SETTINGS}" >> core/unit_test/Makefile -echo "" >> core/unit_test/Makefile -echo "test: all" >> core/unit_test/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/unit_test/Makefile ${KOKKOS_SETTINGS} test" >> core/unit_test/Makefile -echo "" >> core/unit_test/Makefile -echo "clean:" >> core/unit_test/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/unit_test/Makefile ${KOKKOS_SETTINGS} clean" >> core/unit_test/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > core/perf_test/Makefile -echo "" >> core/perf_test/Makefile -echo "all:" >> core/perf_test/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/perf_test/Makefile ${KOKKOS_SETTINGS}" >> core/perf_test/Makefile -echo "" >> core/perf_test/Makefile -echo "test: all" >> core/perf_test/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/perf_test/Makefile ${KOKKOS_SETTINGS} test" >> core/perf_test/Makefile -echo "" >> core/perf_test/Makefile -echo "clean:" >> core/perf_test/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/perf_test/Makefile ${KOKKOS_SETTINGS} clean" >> core/perf_test/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > containers/unit_tests/Makefile -echo "" >> containers/unit_tests/Makefile -echo "all:" >> containers/unit_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/unit_tests/Makefile ${KOKKOS_SETTINGS}" >> containers/unit_tests/Makefile -echo "" >> containers/unit_tests/Makefile -echo "test: all" >> containers/unit_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/unit_tests/Makefile ${KOKKOS_SETTINGS} test" >> containers/unit_tests/Makefile -echo "" >> containers/unit_tests/Makefile -echo "clean:" >> containers/unit_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/unit_tests/Makefile ${KOKKOS_SETTINGS} clean" >> containers/unit_tests/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > containers/performance_tests/Makefile -echo "" >> containers/performance_tests/Makefile -echo "all:" >> containers/performance_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/performance_tests/Makefile ${KOKKOS_SETTINGS}" >> containers/performance_tests/Makefile -echo "" >> containers/performance_tests/Makefile -echo "test: all" >> containers/performance_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/performance_tests/Makefile ${KOKKOS_SETTINGS} test" >> containers/performance_tests/Makefile -echo "" >> containers/performance_tests/Makefile -echo "clean:" >> containers/performance_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/performance_tests/Makefile ${KOKKOS_SETTINGS} clean" >> containers/performance_tests/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > algorithms/unit_tests/Makefile -echo "" >> algorithms/unit_tests/Makefile -echo "all:" >> algorithms/unit_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS}" >> algorithms/unit_tests/Makefile -echo "" >> algorithms/unit_tests/Makefile -echo "test: all" >> algorithms/unit_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS} test" >> algorithms/unit_tests/Makefile -echo "" >> algorithms/unit_tests/Makefile -echo "clean:" >> algorithms/unit_tests/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS} clean" >> algorithms/unit_tests/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "all:" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS}" >> example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "test: all" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} test" >> example/fixture/Makefile -echo "" >> example/fixture/Makefile -echo "clean:" >> example/fixture/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} clean" >> example/fixture/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/feint/Makefile -echo "" >> example/feint/Makefile -echo "all:" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS}" >> example/feint/Makefile -echo "" >> example/feint/Makefile -echo "test: all" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} test" >> example/feint/Makefile -echo "" >> example/feint/Makefile -echo "clean:" >> example/feint/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} clean" >> example/feint/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "all:" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS}" >> example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "test: all" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} test" >> example/fenl/Makefile -echo "" >> example/fenl/Makefile -echo "clean:" >> example/fenl/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} clean" >> example/fenl/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "build:" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} build" >> example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "test: build" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} test" >> example/make_buildlink/Makefile -echo "" >> example/make_buildlink/Makefile -echo "clean:" >> example/make_buildlink/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} clean" >> example/make_buildlink/Makefile - -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "build:" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} build">> example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "test: build" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} test" >> example/tutorial/Makefile -echo "" >> example/tutorial/Makefile -echo "clean:" >> example/tutorial/Makefile -echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} clean" >> example/tutorial/Makefile - -# Generate top level directory makefile. -echo "Generating Makefiles with options " ${KOKKOS_SETTINGS} -echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > Makefile -echo "" >> Makefile -echo "build-test:" >> Makefile -echo -e "\t\$(MAKE) -C core/unit_test" >> Makefile -echo -e "\t\$(MAKE) -C core/perf_test" >> Makefile -echo -e "\t\$(MAKE) -C containers/unit_tests" >> Makefile -echo -e "\t\$(MAKE) -C containers/performance_tests" >> Makefile -echo -e "\t\$(MAKE) -C algorithms/unit_tests" >> Makefile -echo "" >> Makefile -echo "test: build-test" >> Makefile -echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile -echo -e "\t\$(MAKE) -C core/perf_test test" >> Makefile -echo -e "\t\$(MAKE) -C containers/unit_tests test" >> Makefile -echo -e "\t\$(MAKE) -C containers/performance_tests test" >> Makefile -echo -e "\t\$(MAKE) -C algorithms/unit_tests test" >> Makefile -echo "" >> Makefile -echo "unit-tests-only:" >> Makefile -echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile -echo -e "\t\$(MAKE) -C containers/unit_tests test" >> Makefile -echo -e "\t\$(MAKE) -C algorithms/unit_tests test" >> Makefile -echo "" >> Makefile - -echo "clean:" >> Makefile -echo -e "\t\$(MAKE) -C core/unit_test clean" >> Makefile -echo -e "\t\$(MAKE) -C core/perf_test clean" >> Makefile -echo -e "\t\$(MAKE) -C containers/unit_tests clean" >> Makefile -echo -e "\t\$(MAKE) -C containers/performance_tests clean" >> Makefile -echo -e "\t\$(MAKE) -C algorithms/unit_tests clean" >> Makefile - + +echo cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=${KOKKOS_DO_TESTS} -DKokkos_ENABLE_EXAMPLES=${KOKKOS_DO_EXAMPLES} ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_HWLOC_CMD} ${KOKKOS_HWLOC_PATH_CMD} ${KOKKOS_MEMKIND_CMD} ${KOKKOS_MEMKIND_PATH_CMD} ${KOKKOS_PATH} +cmake $COMPILER_CMD -DCMAKE_CXX_FLAGS="${KOKKOS_CXXFLAGS//\"}" -DCMAKE_EXE_LINKER_FLAGS="${KOKKOS_LDFLAGS//\"}" -DCMAKE_INSTALL_PREFIX=${PREFIX} ${KOKKOS_DEVICE_CMD} ${KOKKOS_ARCH_CMD} -DKokkos_ENABLE_TESTS=${KOKKOS_DO_TESTS} -DKokkos_ENABLE_EXAMPLES=${KOKKOS_DO_EXAMPLES} ${KOKKOS_OPTION_CMD} ${KOKKOS_CUDA_OPTION_CMD} -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_CXX_EXTENSIONS=OFF ${STANDARD_CMD} ${KOKKOS_DEBUG_CMD} ${KOKKOS_HWLOC_CMD} ${KOKKOS_HWLOC_PATH_CMD} ${KOKKOS_MEMKIND_CMD} ${KOKKOS_MEMKIND_PATH_CMD} ${KOKKOS_PATH} diff --git a/lib/kokkos/gnu_generate_makefile.bash b/lib/kokkos/gnu_generate_makefile.bash new file mode 100755 index 0000000000000000000000000000000000000000..42b26bf4a4d1f5b52ecde043d519d81e8715f336 --- /dev/null +++ b/lib/kokkos/gnu_generate_makefile.bash @@ -0,0 +1,484 @@ +#!/bin/bash + +KOKKOS_DEVICES="" + +KOKKOS_DO_EXAMPLES="1" + +while [[ $# > 0 ]] +do + key="$1" + + case $key in + --kokkos-path*) + KOKKOS_PATH="${key#*=}" + ;; + --hpx-path*) + HPX_PATH="${key#*=}" + ;; + --prefix*) + PREFIX="${key#*=}" + ;; + --with-cuda) + KOKKOS_DEVICES="${KOKKOS_DEVICES},Cuda" + CUDA_PATH_NVCC=$(command -v nvcc) + CUDA_PATH=${CUDA_PATH_NVCC%/bin/nvcc} + ;; + # Catch this before '--with-cuda*' + --with-cuda-options*) + KOKKOS_CUDA_OPT="${key#*=}" + ;; + --with-cuda*) + KOKKOS_DEVICES="${KOKKOS_DEVICES},Cuda" + CUDA_PATH="${key#*=}" + ;; + --with-openmp) + KOKKOS_DEVICES="${KOKKOS_DEVICES},OpenMP" + ;; + --with-pthread) + KOKKOS_DEVICES="${KOKKOS_DEVICES},Pthread" + ;; + --with-serial) + KOKKOS_DEVICES="${KOKKOS_DEVICES},Serial" + ;; + --with-hpx-options*) + KOKKOS_HPX_OPT="${key#*=}" + ;; + --with-hpx*) + KOKKOS_DEVICES="${KOKKOS_DEVICES},HPX" + if [ -z "$HPX_PATH" ]; then + HPX_PATH="${key#*=}" + fi + ;; + --with-devices*) + DEVICES="${key#*=}" + KOKKOS_DEVICES="${KOKKOS_DEVICES},${DEVICES}" + ;; + --with-gtest*) + GTEST_PATH="${key#*=}" + ;; + --with-hwloc*) + HWLOC_PATH="${key#*=}" + ;; + --with-memkind*) + MEMKIND_PATH="${key#*=}" + ;; + --arch*) + KOKKOS_ARCH="${key#*=}" + ;; + --cxxflags*) + CXXFLAGS="${key#*=}" + ;; + --cxxstandard*) + KOKKOS_CXX_STANDARD="${key#*=}" + ;; + --ldflags*) + LDFLAGS="${key#*=}" + ;; + --debug|-dbg) + KOKKOS_DEBUG=yes + ;; + --make-j*) + echo "Warning: ${key} is deprecated" + echo "Call make with appropriate -j flag" + ;; + --no-examples) + KOKKOS_DO_EXAMPLES="0" + ;; + --compiler*) + COMPILER="${key#*=}" + CNUM=$(command -v ${COMPILER} 2>&1 >/dev/null | grep "no ${COMPILER}" | wc -l) + if [ ${CNUM} -gt 0 ]; then + echo "Invalid compiler by --compiler command: '${COMPILER}'" + exit + fi + if [[ ! -n ${COMPILER} ]]; then + echo "Empty compiler specified by --compiler command." + exit + fi + CNUM=$(command -v ${COMPILER} | grep ${COMPILER} | wc -l) + if [ ${CNUM} -eq 0 ]; then + echo "Invalid compiler by --compiler command: '${COMPILER}'" + exit + fi + # ... valid compiler, ensure absolute path set + WCOMPATH=$(command -v $COMPILER) + COMPDIR=$(dirname $WCOMPATH) + COMPNAME=$(basename $WCOMPATH) + COMPILER=${COMPDIR}/${COMPNAME} + ;; + --with-options*) + KOKKOS_OPT="${key#*=}" + ;; + --gcc-toolchain*) + KOKKOS_GCC_TOOLCHAIN="${key#*=}" + ;; + --help) + echo "Kokkos configure options:" + echo "" + echo "--kokkos-path=/Path/To/Kokkos: Path to the Kokkos root directory." + echo "--prefix=/Install/Path: Path to install the Kokkos library." + echo "" + echo "--with-cuda[=/Path/To/Cuda]: Enable Cuda and set path to Cuda Toolkit." + echo "--with-openmp: Enable OpenMP backend." + echo "--with-pthread: Enable Pthreads backend." + echo "--with-serial: Enable Serial backend." + echo "--with-devices: Explicitly add a set of backends." + echo "" + echo "--arch=[OPT]: Set target architectures. Options are:" + echo " [AMD]" + echo " AMDAVX = AMD CPU" + echo " EPYC = AMD EPYC Zen-Core CPU" + echo " [ARM]" + echo " ARMv80 = ARMv8.0 Compatible CPU" + echo " ARMv81 = ARMv8.1 Compatible CPU" + echo " ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU" + echo " ARMv8-TX2 = ARMv8 Cavium ThunderX2 CPU" + echo " [IBM]" + echo " BGQ = IBM Blue Gene Q" + echo " Power7 = IBM POWER7 and POWER7+ CPUs" + echo " Power8 = IBM POWER8 CPUs" + echo " Power9 = IBM POWER9 CPUs" + echo " [Intel]" + echo " WSM = Intel Westmere CPUs" + echo " SNB = Intel Sandy/Ivy Bridge CPUs" + echo " HSW = Intel Haswell CPUs" + echo " BDW = Intel Broadwell Xeon E-class CPUs" + echo " SKX = Intel Sky Lake Xeon E-class HPC CPUs (AVX512)" + echo " [Intel Xeon Phi]" + echo " KNC = Intel Knights Corner Xeon Phi" + echo " KNL = Intel Knights Landing Xeon Phi" + echo " [NVIDIA]" + echo " Kepler30 = NVIDIA Kepler generation CC 3.0" + echo " Kepler32 = NVIDIA Kepler generation CC 3.2" + echo " Kepler35 = NVIDIA Kepler generation CC 3.5" + echo " Kepler37 = NVIDIA Kepler generation CC 3.7" + echo " Maxwell50 = NVIDIA Maxwell generation CC 5.0" + echo " Maxwell52 = NVIDIA Maxwell generation CC 5.2" + echo " Maxwell53 = NVIDIA Maxwell generation CC 5.3" + echo " Pascal60 = NVIDIA Pascal generation CC 6.0" + echo " Pascal61 = NVIDIA Pascal generation CC 6.1" + echo " Volta70 = NVIDIA Volta generation CC 7.0" + echo " Volta72 = NVIDIA Volta generation CC 7.2" + echo "" + echo "--compiler=/Path/To/Compiler Set the compiler." + echo "--debug,-dbg: Enable Debugging." + echo "--cxxflags=[FLAGS] Overwrite CXXFLAGS for library build and test" + echo " build. This will still set certain required" + echo " flags via KOKKOS_CXXFLAGS (such as -fopenmp," + echo " --std=c++11, etc.)." + echo "--cxxstandard=[FLAGS] Overwrite KOKKOS_CXX_STANDARD for library build and test" + echo " c++11 (default), c++14, c++17, c++1y, c++1z, c++2a" + echo "--ldflags=[FLAGS] Overwrite LDFLAGS for library build and test" + echo " build. This will still set certain required" + echo " flags via KOKKOS_LDFLAGS (such as -fopenmp," + echo " -lpthread, etc.)." + echo "--with-gtest=/Path/To/Gtest: Set path to gtest. (Used in unit and performance" + echo " tests.)" + echo "--with-hwloc=/Path/To/Hwloc: Set path to hwloc library." + echo "--with-memkind=/Path/To/MemKind: Set path to memkind library." + echo "--with-options=[OPT]: Additional options to Kokkos:" + echo " compiler_warnings" + echo " aggressive_vectorization = add ivdep on loops" + echo " disable_profiling = do not compile with profiling hooks" + echo " " + echo "--with-cuda-options=[OPT]: Additional options to CUDA:" + echo " force_uvm, use_ldg, enable_lambda, rdc, enable_constexpr" + echo "--with-hpx-options=[OPT]: Additional options to HPX:" + echo " enable_async_dispatch" + echo "--gcc-toolchain=/Path/To/GccRoot: Set the gcc toolchain to use with clang (e.g. /usr)" + echo "--make-j=[NUM]: DEPRECATED: call make with appropriate" + echo " -j flag" + exit 0 + ;; + *) + echo "warning: ignoring unknown option $key" + ;; + esac + + shift +done + +# Remove leading ',' from KOKKOS_DEVICES. +KOKKOS_DEVICES=$(echo $KOKKOS_DEVICES | sed 's/^,//') + +# If KOKKOS_PATH undefined, assume parent dir of this script is the KOKKOS_PATH. +if [ -z "$KOKKOS_PATH" ]; then + KOKKOS_PATH=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +else + # Ensure KOKKOS_PATH is abs path + KOKKOS_PATH=$( cd $KOKKOS_PATH && pwd ) +fi + +if [ "${KOKKOS_PATH}" = "${PWD}" ] || [ "${KOKKOS_PATH}" = "${PWD}/" ]; then + echo "Running generate_makefile.bash in the Kokkos root directory is not allowed" + exit +fi + +KOKKOS_SRC_PATH=${KOKKOS_PATH} + +KOKKOS_SETTINGS="KOKKOS_SRC_PATH=${KOKKOS_SRC_PATH}" + +# The double [[ ]] in the elif branch is not a typo +if [ ${#COMPILER} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXX=${COMPILER}" +elif + [ ${#COMPILER} -eq 0 ] && [[ ${KOKKOS_DEVICES} =~ .*Cuda.* ]]; then + COMPILER="${KOKKOS_PATH}/bin/nvcc_wrapper" + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXX=${COMPILER}" +fi + +if [ ${#KOKKOS_DEVICES} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_DEVICES=${KOKKOS_DEVICES}" +fi + +if [ ${#KOKKOS_ARCH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_ARCH=${KOKKOS_ARCH}" +fi + +if [ ${#KOKKOS_DEBUG} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_DEBUG=${KOKKOS_DEBUG}" +fi + +if [ ${#CUDA_PATH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CUDA_PATH=${CUDA_PATH}" +fi + +if [ ${#CXXFLAGS} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} CXXFLAGS=\"${CXXFLAGS}\"" +fi + +if [ ${#KOKKOS_CXX_STANDARD} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_CXX_STANDARD=\"${KOKKOS_CXX_STANDARD}\"" +fi + +if [ ${#LDFLAGS} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} LDFLAGS=\"${LDFLAGS}\"" +fi + +if [ ${#GTEST_PATH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} GTEST_PATH=${GTEST_PATH}" +else + GTEST_PATH=${KOKKOS_PATH}/tpls/gtest + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} GTEST_PATH=${GTEST_PATH}" +fi + +if [ ${#HWLOC_PATH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} HWLOC_PATH=${HWLOC_PATH}" + KOKKOS_USE_TPLS="${KOKKOS_USE_TPLS},hwloc" +fi + +if [ ${#MEMKIND_PATH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} MEMKIND_PATH=${MEMKIND_PATH}" + KOKKOS_USE_TPLS="${KOKKOS_USE_TPLS},experimental_memkind" +fi + +if [ ${#KOKKOS_USE_TPLS} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_USE_TPLS=${KOKKOS_USE_TPLS}" +fi + +if [ ${#HPX_PATH} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} HPX_PATH=${HPX_PATH}" +fi + +if [ ${#KOKKOS_OPT} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_OPTIONS=${KOKKOS_OPT}" +fi + +if [ ${#KOKKOS_CUDA_OPT} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_CUDA_OPTIONS=${KOKKOS_CUDA_OPT}" +fi + +if [ ${#KOKKOS_HPX_OPT} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_HPX_OPTIONS=${KOKKOS_HPX_OPT}" +fi + +if [ ${#KOKKOS_GCC_TOOLCHAIN} -gt 0 ]; then + KOKKOS_SETTINGS="${KOKKOS_SETTINGS} KOKKOS_INTERNAL_GCC_TOOLCHAIN=${KOKKOS_GCC_TOOLCHAIN}" +fi + +KOKKOS_SETTINGS_NO_KOKKOS_PATH="${KOKKOS_SETTINGS}" + + +gen_makefile=Makefile.kokkos +mkdir -p core +mkdir -p core/unit_test +mkdir -p core/perf_test +mkdir -p containers +mkdir -p containers/unit_tests +mkdir -p containers/performance_tests +mkdir -p algorithms +mkdir -p algorithms/unit_tests +mkdir -p algorithms/performance_tests +mkdir -p example +mkdir -p example/fixture +mkdir -p example/feint +mkdir -p example/fenl +mkdir -p example/make_buildlink +mkdir -p example/tutorial + +KOKKOS_SETTINGS="${KOKKOS_SETTINGS_NO_KOKKOS_PATH} KOKKOS_PATH=${KOKKOS_PATH}" + +# Generate subdirectory makefiles. +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > core/unit_test/Makefile +echo "" >> core/unit_test/Makefile +echo "all:" >> core/unit_test/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/unit_test/Makefile ${KOKKOS_SETTINGS}" >> core/unit_test/Makefile +echo "" >> core/unit_test/Makefile +echo "test: all" >> core/unit_test/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/unit_test/Makefile ${KOKKOS_SETTINGS} test" >> core/unit_test/Makefile +echo "" >> core/unit_test/Makefile +echo "clean:" >> core/unit_test/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/unit_test/Makefile ${KOKKOS_SETTINGS} clean" >> core/unit_test/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > core/perf_test/Makefile +echo "" >> core/perf_test/Makefile +echo "all:" >> core/perf_test/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/perf_test/Makefile ${KOKKOS_SETTINGS}" >> core/perf_test/Makefile +echo "" >> core/perf_test/Makefile +echo "test: all" >> core/perf_test/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/perf_test/Makefile ${KOKKOS_SETTINGS} test" >> core/perf_test/Makefile +echo "" >> core/perf_test/Makefile +echo "clean:" >> core/perf_test/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/core/perf_test/Makefile ${KOKKOS_SETTINGS} clean" >> core/perf_test/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > containers/unit_tests/Makefile +echo "" >> containers/unit_tests/Makefile +echo "all:" >> containers/unit_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/unit_tests/Makefile ${KOKKOS_SETTINGS}" >> containers/unit_tests/Makefile +echo "" >> containers/unit_tests/Makefile +echo "test: all" >> containers/unit_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/unit_tests/Makefile ${KOKKOS_SETTINGS} test" >> containers/unit_tests/Makefile +echo "" >> containers/unit_tests/Makefile +echo "clean:" >> containers/unit_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/unit_tests/Makefile ${KOKKOS_SETTINGS} clean" >> containers/unit_tests/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > containers/performance_tests/Makefile +echo "" >> containers/performance_tests/Makefile +echo "all:" >> containers/performance_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/performance_tests/Makefile ${KOKKOS_SETTINGS}" >> containers/performance_tests/Makefile +echo "" >> containers/performance_tests/Makefile +echo "test: all" >> containers/performance_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/performance_tests/Makefile ${KOKKOS_SETTINGS} test" >> containers/performance_tests/Makefile +echo "" >> containers/performance_tests/Makefile +echo "clean:" >> containers/performance_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/containers/performance_tests/Makefile ${KOKKOS_SETTINGS} clean" >> containers/performance_tests/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > algorithms/unit_tests/Makefile +echo "" >> algorithms/unit_tests/Makefile +echo "all:" >> algorithms/unit_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS}" >> algorithms/unit_tests/Makefile +echo "" >> algorithms/unit_tests/Makefile +echo "test: all" >> algorithms/unit_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS} test" >> algorithms/unit_tests/Makefile +echo "" >> algorithms/unit_tests/Makefile +echo "clean:" >> algorithms/unit_tests/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/algorithms/unit_tests/Makefile ${KOKKOS_SETTINGS} clean" >> algorithms/unit_tests/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fixture/Makefile +echo "" >> example/fixture/Makefile +echo "all:" >> example/fixture/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS}" >> example/fixture/Makefile +echo "" >> example/fixture/Makefile +echo "test: all" >> example/fixture/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} test" >> example/fixture/Makefile +echo "" >> example/fixture/Makefile +echo "clean:" >> example/fixture/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fixture/Makefile ${KOKKOS_SETTINGS} clean" >> example/fixture/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/feint/Makefile +echo "" >> example/feint/Makefile +echo "all:" >> example/feint/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS}" >> example/feint/Makefile +echo "" >> example/feint/Makefile +echo "test: all" >> example/feint/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} test" >> example/feint/Makefile +echo "" >> example/feint/Makefile +echo "clean:" >> example/feint/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/feint/Makefile ${KOKKOS_SETTINGS} clean" >> example/feint/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/fenl/Makefile +echo "" >> example/fenl/Makefile +echo "all:" >> example/fenl/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS}" >> example/fenl/Makefile +echo "" >> example/fenl/Makefile +echo "test: all" >> example/fenl/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} test" >> example/fenl/Makefile +echo "" >> example/fenl/Makefile +echo "clean:" >> example/fenl/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/fenl/Makefile ${KOKKOS_SETTINGS} clean" >> example/fenl/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/make_buildlink/Makefile +echo "" >> example/make_buildlink/Makefile +echo "build:" >> example/make_buildlink/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} build" >> example/make_buildlink/Makefile +echo "" >> example/make_buildlink/Makefile +echo "test: build" >> example/make_buildlink/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} test" >> example/make_buildlink/Makefile +echo "" >> example/make_buildlink/Makefile +echo "clean:" >> example/make_buildlink/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/make_buildlink/Makefile ${KOKKOS_SETTINGS} clean" >> example/make_buildlink/Makefile + +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > example/tutorial/Makefile +echo "" >> example/tutorial/Makefile +echo "build:" >> example/tutorial/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} build">> example/tutorial/Makefile +echo "" >> example/tutorial/Makefile +echo "test: build" >> example/tutorial/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} test" >> example/tutorial/Makefile +echo "" >> example/tutorial/Makefile +echo "clean:" >> example/tutorial/Makefile +echo -e "\t\$(MAKE) -f ${KOKKOS_PATH}/example/tutorial/Makefile KOKKOS_SETTINGS='${KOKKOS_SETTINGS}' KOKKOS_PATH=${KOKKOS_PATH} clean" >> example/tutorial/Makefile + +# Generate top level directory makefile. +echo "Generating Makefiles with options " ${KOKKOS_SETTINGS} +echo "KOKKOS_SETTINGS=${KOKKOS_SETTINGS}" > Makefile +echo "" >> Makefile +echo "build-test:" >> Makefile +echo -e "\t\$(MAKE) -C core/unit_test" >> Makefile +echo -e "\t\$(MAKE) -C core/perf_test" >> Makefile +echo -e "\t\$(MAKE) -C containers/unit_tests" >> Makefile +echo -e "\t\$(MAKE) -C containers/performance_tests" >> Makefile +echo -e "\t\$(MAKE) -C algorithms/unit_tests" >> Makefile +if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then +$() +echo -e "\t\$(MAKE) -C example/fixture" >> Makefile +echo -e "\t\$(MAKE) -C example/feint" >> Makefile +echo -e "\t\$(MAKE) -C example/fenl" >> Makefile +echo -e "\t\$(MAKE) -C example/make_buildlink build" >> Makefile +echo -e "\t\$(MAKE) -C example/tutorial build" >> Makefile +fi +echo "" >> Makefile +echo "test: build-test" >> Makefile +echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile +echo -e "\t\$(MAKE) -C core/perf_test test" >> Makefile +echo -e "\t\$(MAKE) -C containers/unit_tests test" >> Makefile +echo -e "\t\$(MAKE) -C containers/performance_tests test" >> Makefile +echo -e "\t\$(MAKE) -C algorithms/unit_tests test" >> Makefile +if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then +echo -e "\t\$(MAKE) -C example/fixture test" >> Makefile +echo -e "\t\$(MAKE) -C example/feint test" >> Makefile +echo -e "\t\$(MAKE) -C example/fenl test" >> Makefile +echo -e "\t\$(MAKE) -C example/make_buildlink test" >> Makefile +echo -e "\t\$(MAKE) -C example/tutorial test" >> Makefile +fi +echo "" >> Makefile +echo "unit-tests-only:" >> Makefile +echo -e "\t\$(MAKE) -C core/unit_test test" >> Makefile +echo -e "\t\$(MAKE) -C containers/unit_tests test" >> Makefile +echo -e "\t\$(MAKE) -C algorithms/unit_tests test" >> Makefile +echo "" >> Makefile + +echo "clean:" >> Makefile +echo -e "\t\$(MAKE) -C core/unit_test clean" >> Makefile +echo -e "\t\$(MAKE) -C core/perf_test clean" >> Makefile +echo -e "\t\$(MAKE) -C containers/unit_tests clean" >> Makefile +echo -e "\t\$(MAKE) -C containers/performance_tests clean" >> Makefile +echo -e "\t\$(MAKE) -C algorithms/unit_tests clean" >> Makefile +if [ ${KOKKOS_DO_EXAMPLES} -gt 0 ]; then +echo -e "\t\$(MAKE) -C example/fixture clean" >> Makefile +echo -e "\t\$(MAKE) -C example/feint clean" >> Makefile +echo -e "\t\$(MAKE) -C example/fenl clean" >> Makefile +echo -e "\t\$(MAKE) -C example/make_buildlink clean" >> Makefile +echo -e "\t\$(MAKE) -C example/tutorial clean" >> Makefile +fi + diff --git a/lib/kokkos/master_history.txt b/lib/kokkos/master_history.txt index ee5238be8c999a20ca371587eb0cf7e2e858a604..f6eb95292c2ebce443d7350155e059f6686d433a 100644 --- a/lib/kokkos/master_history.txt +++ b/lib/kokkos/master_history.txt @@ -18,3 +18,4 @@ tag: 2.7.24 date: 11:04:2018 master: d3a94192 develop: 7a06fc81 tag: 2.8.00 date: 02:05:2019 master: 34931a36 develop: d1659d1d tag: 2.9.00 date: 06:24:2019 master: 5d6e7fb3 develop: 4c6cb80a tag: 3.0.00 date: 01:31:2020 master: 2983b80d release-candidate-3.0: fdc904a6 +tag: 3.1.00 date: 04:14:2020 master: cd1b1d0a develop: fd90af43 diff --git a/lib/message/cslib/src/STUBS_ZMQ/zmq.h b/lib/message/cslib/src/STUBS_ZMQ/zmq.h index 2f02eb4035c75cab753f430c3a31810c961d4702..a335ee5e01f43e0725a15bc03c90d977e0b02666 100644 --- a/lib/message/cslib/src/STUBS_ZMQ/zmq.h +++ b/lib/message/cslib/src/STUBS_ZMQ/zmq.h @@ -17,6 +17,8 @@ #ifndef ZMQ_DUMMY_H #define ZMQ_DUMMY_H +#include + namespace CSLIB_NS { #define ZMQ_REQ 0 diff --git a/lib/plumed/Makefile.lammps.runtime b/lib/plumed/Makefile.lammps.runtime index b8c8636940ca1dc10c4f052c5cf358310db51dc5..55801b9aea9885350f6392a62876e930edcb1fa3 100644 --- a/lib/plumed/Makefile.lammps.runtime +++ b/lib/plumed/Makefile.lammps.runtime @@ -1,5 +1,5 @@ # Settings that the LAMMPS build will import when this package library is used -plumed_SYSINC = -D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=$(PLUMED_LIBDIR)/libplumedKernel.so +plumed_SYSINC = -D__PLUMED_DEFAULT_KERNEL=$(PLUMED_LIBDIR)/libplumedKernel.so plumed_SYSLIB = $(PLUMED_LOAD) -rdynamic plumed_SYSPATH = diff --git a/lib/plumed/Makefile.lammps.runtime.macosx b/lib/plumed/Makefile.lammps.runtime.macosx index d0ae6e82a5f57e7ef3da6dba07e08ac80dbfec77..e25a1dd776070f6c402670cfb6fa63344333ad2c 100644 --- a/lib/plumed/Makefile.lammps.runtime.macosx +++ b/lib/plumed/Makefile.lammps.runtime.macosx @@ -1,5 +1,5 @@ # Settings that the LAMMPS build will import when this package library is used -plumed_SYSINC = -D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=$(PLUMED_LIBDIR)/libplumedKernel.dylib +plumed_SYSINC = -D__PLUMED_DEFAULT_KERNEL=$(PLUMED_LIBDIR)/libplumedKernel.dylib plumed_SYSLIB = $(PLUMED_LOAD) -rdynamic plumed_SYSPATH = diff --git a/lib/plumed/Makefile.lammps.static b/lib/plumed/Makefile.lammps.static index 2ca0858610e495f0626a7b85d621035a792ed98d..e670d28fa55029908c934b862c628bb04ac85cf5 100644 --- a/lib/plumed/Makefile.lammps.static +++ b/lib/plumed/Makefile.lammps.static @@ -2,6 +2,6 @@ # Use statically linked C++ interface to plumed -plumed_SYSINC = -D__PLUMED_WRAPPER_CXX=1 +plumed_SYSINC = plumed_SYSLIB = $(PLUMED_LOAD) plumed_SYSPATH = diff --git a/potentials/FeCH_BOP_I.poly b/potentials/FeCH_BOP_I.poly new file mode 100644 index 0000000000000000000000000000000000000000..87dea13df524342639e9e2cae1f6c97229b5523e --- /dev/null +++ b/potentials/FeCH_BOP_I.poly @@ -0,0 +1,33617 @@ +# DATE 2018-12-18 CONTRIBUTOR: X. W. Zhou, xzhou@sandia.gov CITATION: X. W. Zhou, +# M. E. Foster, J. A. Ronevich, and C. W San Marchi, J. Comp. Chem., 41, 1299 (2020). +# M. Muller, P. Erhart, and K. Albe, J. Phys.: Condens. Matter, 19, 326220 (2007). +# D. W. Brenner, Phys. Rev. B, 42, 9458 (1990). N. Juslin et al, J. Appl. Phys., +# 98, 123520 (2005). P. Kuopanportti et al, Comp. Mater. Sci., 111, 525 (2016). +# K. O. E. Hendriksson, and K. Nordlund, Phys. Rev. B, 79, 144107 (2009). + 3 3 + 26. 5.58500000e+01 Fe + 6. 1.20100000e+01 C + 1. 1.01000000e+00 H + 2000 2000 4000 2.00000000e+02 + 3.35000000e+00 1.00000000e+00 + 2.00000000e+00 1.00000000e+00 + 1.70000000e+00 1.00000000e+00 + 2.70000000e+00 1.00000000e+00 + 2.69660000e+00 1.00000000e+00 + 1.80000000e+00 1.00000000e+00 + 9.05461601e+06 5.36400429e+06 2.63461103e+06 1.72573643e+06 1.27196396e+06 + 1.00021130e+06 8.19451798e+05 6.90674672e+05 5.94375068e+05 5.19717409e+05 + 4.60200739e+05 4.11688423e+05 3.71423001e+05 3.37495720e+05 3.08543417e+05 + 2.83566642e+05 2.61815992e+05 2.42718557e+05 2.25828890e+05 2.10795455e+05 + 1.97337145e+05 1.85226505e+05 1.74277539e+05 1.64336688e+05 1.55276068e+05 + 1.46988336e+05 1.39382733e+05 1.32382007e+05 1.25920006e+05 1.19939754e+05 + 1.14391924e+05 1.09233599e+05 1.04427270e+05 9.99400149e+04 9.57428218e+04 + 9.18100283e+04 8.81188552e+04 8.46490156e+04 8.13823855e+04 7.83027252e+04 + 7.53954428e+04 7.26473922e+04 7.00467000e+04 6.75826165e+04 6.52453872e+04 + 6.30261416e+04 6.09167962e+04 5.89099701e+04 5.69989113e+04 5.51774319e+04 + 5.34398509e+04 5.17809444e+04 5.01959007e+04 4.86802814e+04 4.72299860e+04 + 4.58412213e+04 4.45104728e+04 4.32344809e+04 4.20102176e+04 4.08348673e+04 + 3.97058085e+04 3.86205977e+04 3.75769545e+04 3.65727491e+04 3.56059895e+04 + 3.46748114e+04 3.37774676e+04 3.29123197e+04 3.20778299e+04 3.12725529e+04 + 3.04951300e+04 2.97442821e+04 2.90188046e+04 2.83175618e+04 2.76394824e+04 + 2.69835548e+04 2.63488233e+04 2.57343842e+04 2.51393827e+04 2.45630092e+04 + 2.40044967e+04 2.34631182e+04 2.29381839e+04 2.24290391e+04 2.19350619e+04 + 2.14556614e+04 2.09902755e+04 2.05383695e+04 2.00994344e+04 1.96729855e+04 + 1.92585606e+04 1.88557194e+04 1.84640414e+04 1.80831257e+04 1.77125894e+04 + 1.73520664e+04 1.70012072e+04 1.66596774e+04 1.63271571e+04 1.60033402e+04 + 1.56879336e+04 1.53806565e+04 1.50812401e+04 1.47894263e+04 1.45049679e+04 + 1.42276276e+04 1.39571778e+04 1.36933997e+04 1.34360835e+04 1.31850274e+04 + 1.29400376e+04 1.27009275e+04 1.24675180e+04 1.22396366e+04 1.20171172e+04 + 1.17998000e+04 1.15875312e+04 1.13801624e+04 1.11775509e+04 1.09795589e+04 + 1.07860536e+04 1.05969071e+04 1.04119957e+04 1.02312003e+04 1.00544059e+04 + 9.88150120e+03 9.71237907e+03 9.54693582e+03 9.38507131e+03 9.22668873e+03 + 9.07169452e+03 8.91999818e+03 8.77151221e+03 8.62615193e+03 8.48383542e+03 + 8.34448337e+03 8.20801901e+03 8.07436802e+03 7.94345839e+03 7.81522038e+03 + 7.68958642e+03 7.56649102e+03 7.44587069e+03 7.32766388e+03 7.21181093e+03 + 7.09825393e+03 6.98693673e+03 6.87780486e+03 6.77080544e+03 6.66588714e+03 + 6.56300015e+03 6.46209609e+03 6.36312798e+03 6.26605019e+03 6.17081839e+03 + 6.07738950e+03 5.98572168e+03 5.89577424e+03 5.80750762e+03 5.72088339e+03 + 5.63586415e+03 5.55241353e+03 5.47049616e+03 5.39007764e+03 5.31112448e+03 + 5.23360410e+03 5.15748479e+03 5.08273568e+03 5.00932671e+03 4.93722863e+03 + 4.86641295e+03 4.79685190e+03 4.72851846e+03 4.66138630e+03 4.59542975e+03 + 4.53062382e+03 4.46694413e+03 4.40436693e+03 4.34286908e+03 4.28242800e+03 + 4.22302168e+03 4.16462866e+03 4.10722802e+03 4.05079934e+03 3.99532269e+03 + 3.94077867e+03 3.88714830e+03 3.83441308e+03 3.78255498e+03 3.73155636e+03 + 3.68140002e+03 3.63206918e+03 3.58354745e+03 3.53581881e+03 3.48886764e+03 + 3.44267867e+03 3.39723699e+03 3.35252804e+03 3.30853758e+03 3.26525173e+03 + 3.22265689e+03 3.18073979e+03 3.13948747e+03 3.09888724e+03 3.05892672e+03 + 3.01959379e+03 2.98087661e+03 2.94276360e+03 2.90524344e+03 2.86830507e+03 + 2.83193765e+03 2.79613060e+03 2.76087356e+03 2.72615640e+03 2.69196921e+03 + 2.65830228e+03 2.62514615e+03 2.59249151e+03 2.56032930e+03 2.52865060e+03 + 2.49744673e+03 2.46670917e+03 2.43642957e+03 2.40659978e+03 2.37721180e+03 + 2.34825782e+03 2.31973016e+03 2.29162133e+03 2.26392397e+03 2.23663090e+03 + 2.20973506e+03 2.18322956e+03 2.15710762e+03 2.13136263e+03 2.10598809e+03 + 2.08097764e+03 2.05632506e+03 2.03202423e+03 2.00806917e+03 1.98445402e+03 + 1.96117302e+03 1.93822056e+03 1.91559109e+03 1.89327921e+03 1.87127961e+03 + 1.84958709e+03 1.82819654e+03 1.80710296e+03 1.78630146e+03 1.76578720e+03 + 1.74555549e+03 1.72560169e+03 1.70592126e+03 1.68650975e+03 1.66736279e+03 + 1.64847611e+03 1.62984549e+03 1.61146682e+03 1.59333605e+03 1.57544921e+03 + 1.55780240e+03 1.54039180e+03 1.52321367e+03 1.50626431e+03 1.48954012e+03 + 1.47303755e+03 1.45675312e+03 1.44068341e+03 1.42482506e+03 1.40917478e+03 + 1.39372935e+03 1.37848557e+03 1.36344035e+03 1.34859060e+03 1.33393334e+03 + 1.31946560e+03 1.30518449e+03 1.29108716e+03 1.27717082e+03 1.26343271e+03 + 1.24987014e+03 1.23648046e+03 1.22326106e+03 1.21020939e+03 1.19732293e+03 + 1.18459921e+03 1.17203582e+03 1.15963035e+03 1.14738048e+03 1.13528390e+03 + 1.12333834e+03 1.11154159e+03 1.09989146e+03 1.08838579e+03 1.07702249e+03 + 1.06579947e+03 1.05471469e+03 1.04376616e+03 1.03295189e+03 1.02226995e+03 + 1.01171844e+03 1.00129547e+03 9.90999221e+02 9.80827866e+02 9.70779627e+02 + 9.60852753e+02 9.51045522e+02 9.41356240e+02 9.31783240e+02 9.22324884e+02 + 9.12979560e+02 9.03745682e+02 8.94621693e+02 8.85606056e+02 8.76697264e+02 + 8.67893832e+02 8.59194298e+02 8.50597227e+02 8.42101203e+02 8.33704837e+02 + 8.25406759e+02 8.17205622e+02 8.09100100e+02 8.01088890e+02 7.93170707e+02 + 7.85344289e+02 7.77608391e+02 7.69961790e+02 7.62403281e+02 7.54931679e+02 + 7.47545817e+02 7.40244545e+02 7.33026733e+02 7.25891267e+02 7.18837051e+02 + 7.11863007e+02 7.04968070e+02 6.98151197e+02 6.91411355e+02 6.84747531e+02 + 6.78158727e+02 6.71643958e+02 6.65202257e+02 6.58832668e+02 6.52534254e+02 + 6.46306089e+02 6.40147261e+02 6.34056873e+02 6.28034042e+02 6.22077896e+02 + 6.16187577e+02 6.10362242e+02 6.04601056e+02 5.98903202e+02 5.93267870e+02 + 5.87694264e+02 5.82181602e+02 5.76729110e+02 5.71336026e+02 5.66001601e+02 + 5.60725097e+02 5.55505783e+02 5.50342944e+02 5.45235871e+02 5.40183867e+02 + 5.35186247e+02 5.30242332e+02 5.25351455e+02 5.20512960e+02 5.15726197e+02 + 5.10990527e+02 5.06305322e+02 5.01669960e+02 4.97083829e+02 4.92546326e+02 + 4.88056856e+02 4.83614833e+02 4.79219679e+02 4.74870824e+02 4.70567705e+02 + 4.66309770e+02 4.62096471e+02 4.57927271e+02 4.53801637e+02 4.49719046e+02 + 4.45678982e+02 4.41680935e+02 4.37724403e+02 4.33808890e+02 4.29933908e+02 + 4.26098976e+02 4.22303617e+02 4.18547364e+02 4.14829753e+02 4.11150329e+02 + 4.07508641e+02 4.03904247e+02 4.00336708e+02 3.96805592e+02 3.93310474e+02 + 3.89850933e+02 3.86426555e+02 3.83036929e+02 3.79681654e+02 3.76360330e+02 + 3.73072565e+02 3.69817971e+02 3.66596165e+02 3.63406770e+02 3.60249413e+02 + 3.57123727e+02 3.54029350e+02 3.50965922e+02 3.47933091e+02 3.44930508e+02 + 3.41957830e+02 3.39014715e+02 3.36100830e+02 3.33215844e+02 3.30359429e+02 + 3.27531263e+02 3.24731029e+02 3.21958412e+02 3.19213102e+02 3.16494793e+02 + 3.13803184e+02 3.11137975e+02 3.08498872e+02 3.05885585e+02 3.03297826e+02 + 3.00735313e+02 2.98197764e+02 2.95684905e+02 2.93196463e+02 2.90732167e+02 + 2.88291753e+02 2.85874957e+02 2.83481521e+02 2.81111187e+02 2.78763704e+02 + 2.76438822e+02 2.74136293e+02 2.71855875e+02 2.69597327e+02 2.67360411e+02 + 2.65144894e+02 2.62950542e+02 2.60777127e+02 2.58624423e+02 2.56492207e+02 + 2.54380259e+02 2.52288359e+02 2.50216294e+02 2.48163850e+02 2.46130818e+02 + 2.44116990e+02 2.42122161e+02 2.40146129e+02 2.38188694e+02 2.36249657e+02 + 2.34328824e+02 2.32426002e+02 2.30541001e+02 2.28673631e+02 2.26823707e+02 + 2.24991045e+02 2.23175464e+02 2.21376784e+02 2.19594827e+02 2.17829418e+02 + 2.16080385e+02 2.14347555e+02 2.12630760e+02 2.10929833e+02 2.09244609e+02 + 2.07574923e+02 2.05920616e+02 2.04281526e+02 2.02657498e+02 2.01048375e+02 + 1.99454003e+02 1.97874230e+02 1.96308905e+02 1.94757881e+02 1.93221009e+02 + 1.91698145e+02 1.90189145e+02 1.88693868e+02 1.87212173e+02 1.85743920e+02 + 1.84288974e+02 1.82847199e+02 1.81418460e+02 1.80002626e+02 1.78599565e+02 + 1.77209147e+02 1.75831246e+02 1.74465733e+02 1.73112485e+02 1.71771377e+02 + 1.70442287e+02 1.69125095e+02 1.67819680e+02 1.66525924e+02 1.65243711e+02 + 1.63972925e+02 1.62713451e+02 1.61465177e+02 1.60227990e+02 1.59001781e+02 + 1.57786440e+02 1.56581858e+02 1.55387929e+02 1.54204547e+02 1.53031608e+02 + 1.51869008e+02 1.50716645e+02 1.49574417e+02 1.48442226e+02 1.47319971e+02 + 1.46207555e+02 1.45104882e+02 1.44011854e+02 1.42928379e+02 1.41854362e+02 + 1.40789710e+02 1.39734332e+02 1.38688137e+02 1.37651036e+02 1.36622940e+02 + 1.35603760e+02 1.34593412e+02 1.33591807e+02 1.32598863e+02 1.31614494e+02 + 1.30638617e+02 1.29671151e+02 1.28712014e+02 1.27761125e+02 1.26818405e+02 + 1.25883774e+02 1.24957157e+02 1.24038474e+02 1.23127650e+02 1.22224609e+02 + 1.21329277e+02 1.20441579e+02 1.19561443e+02 1.18688797e+02 1.17823568e+02 + 1.16965686e+02 1.16115081e+02 1.15271684e+02 1.14435425e+02 1.13606238e+02 + 1.12784054e+02 1.11968807e+02 1.11160433e+02 1.10358864e+02 1.09564038e+02 + 1.08775890e+02 1.07994357e+02 1.07219377e+02 1.06450888e+02 1.05688829e+02 + 1.04933139e+02 1.04183758e+02 1.03440628e+02 1.02703689e+02 1.01972884e+02 + 1.01248155e+02 1.00529444e+02 9.98166971e+01 9.91098568e+01 9.84088685e+01 + 9.77136777e+01 9.70242302e+01 9.63404726e+01 9.56623521e+01 9.49898161e+01 + 9.43228130e+01 9.36612913e+01 9.30052002e+01 9.23544895e+01 9.17091095e+01 + 9.10690107e+01 9.04341445e+01 8.98044625e+01 8.91799170e+01 8.85604607e+01 + 8.79460467e+01 8.73366286e+01 8.67321606e+01 8.61325973e+01 8.55378935e+01 + 8.49480049e+01 8.43628874e+01 8.37824972e+01 8.32067912e+01 8.26357266e+01 + 8.20692610e+01 8.15073526e+01 8.09499598e+01 8.03970415e+01 7.98485571e+01 + 7.93044662e+01 7.87647290e+01 7.82293059e+01 7.76981580e+01 7.71712464e+01 + 7.66485329e+01 7.61299794e+01 7.56155485e+01 7.51052029e+01 7.45989058e+01 + 7.40966207e+01 7.35983115e+01 7.31039424e+01 7.26134780e+01 7.21268833e+01 + 7.16441236e+01 7.11651643e+01 7.06899717e+01 7.02185118e+01 6.97507513e+01 + 6.92866573e+01 6.88261968e+01 6.83693376e+01 6.79160476e+01 6.74662949e+01 + 6.70200480e+01 6.65772759e+01 6.61379476e+01 6.57020326e+01 6.52695006e+01 + 6.48403216e+01 6.44144660e+01 6.39919043e+01 6.35726074e+01 6.31565465e+01 + 6.27436931e+01 6.23340188e+01 6.19274956e+01 6.15240959e+01 6.11237920e+01 + 6.07265569e+01 6.03323636e+01 5.99411853e+01 5.95529958e+01 5.91677686e+01 + 5.87854781e+01 5.84060984e+01 5.80296042e+01 5.76559702e+01 5.72851715e+01 + 5.69171834e+01 5.65519814e+01 5.61895413e+01 5.58298391e+01 5.54728509e+01 + 5.51185533e+01 5.47669228e+01 5.44179365e+01 5.40715713e+01 5.37278046e+01 + 5.33866140e+01 5.30479772e+01 5.27118722e+01 5.23782772e+01 5.20471704e+01 + 5.17185306e+01 5.13923365e+01 5.10685671e+01 5.07472016e+01 5.04282193e+01 + 5.01115998e+01 4.97973230e+01 4.94853687e+01 4.91757171e+01 4.88683486e+01 + 4.85632436e+01 4.82603829e+01 4.79597473e+01 4.76613179e+01 4.73650760e+01 + 4.70710029e+01 4.67790803e+01 4.64892899e+01 4.62016137e+01 4.59160336e+01 + 4.56325321e+01 4.53510916e+01 4.50716945e+01 4.47943238e+01 4.45189623e+01 + 4.42455931e+01 4.39741994e+01 4.37047647e+01 4.34372724e+01 4.31717063e+01 + 4.29080503e+01 4.26462882e+01 4.23864043e+01 4.21283829e+01 4.18722084e+01 + 4.16178654e+01 4.13653386e+01 4.11146129e+01 4.08656732e+01 4.06185049e+01 + 4.03730930e+01 4.01294231e+01 3.98874807e+01 3.96472515e+01 3.94087213e+01 + 3.91718761e+01 3.89367019e+01 3.87031849e+01 3.84713115e+01 3.82410682e+01 + 3.80124414e+01 3.77854180e+01 3.75599847e+01 3.73361285e+01 3.71138365e+01 + 3.68930959e+01 3.66738939e+01 3.64562179e+01 3.62400556e+01 3.60253946e+01 + 3.58122225e+01 3.56005273e+01 3.53902971e+01 3.51815197e+01 3.49741836e+01 + 3.47682769e+01 3.45637881e+01 3.43607057e+01 3.41590183e+01 3.39587147e+01 + 3.37597837e+01 3.35622142e+01 3.33659952e+01 3.31711159e+01 3.29775655e+01 + 3.27853334e+01 3.25944089e+01 3.24047816e+01 3.22164410e+01 3.20293769e+01 + 3.18435792e+01 3.16590376e+01 3.14757421e+01 3.12936829e+01 3.11128501e+01 + 3.09332339e+01 3.07548247e+01 3.05776129e+01 3.04015890e+01 3.02267437e+01 + 3.00530675e+01 2.98805512e+01 2.97091858e+01 2.95389621e+01 2.93698711e+01 + 2.92019039e+01 2.90350517e+01 2.88693057e+01 2.87046574e+01 2.85410979e+01 + 2.83786189e+01 2.82172119e+01 2.80568686e+01 2.78975805e+01 2.77393396e+01 + 2.75821376e+01 2.74259665e+01 2.72708183e+01 2.71166850e+01 2.69635588e+01 + 2.68114319e+01 2.66602966e+01 2.65101451e+01 2.63609700e+01 2.62127637e+01 + 2.60655187e+01 2.59192276e+01 2.57738831e+01 2.56294781e+01 2.54860051e+01 + 2.53434572e+01 2.52018273e+01 2.50611083e+01 2.49212933e+01 2.47823754e+01 + 2.46443478e+01 2.45072037e+01 2.43709365e+01 2.42355394e+01 2.41010058e+01 + 2.39673294e+01 2.38345034e+01 2.37025216e+01 2.35713776e+01 2.34410651e+01 + 2.33115778e+01 2.31829095e+01 2.30550541e+01 2.29280055e+01 2.28017576e+01 + 2.26763044e+01 2.25516401e+01 2.24277587e+01 2.23046545e+01 2.21823215e+01 + 2.20607542e+01 2.19399467e+01 2.18198935e+01 2.17005890e+01 2.15820277e+01 + 2.14642040e+01 2.13471125e+01 2.12307479e+01 2.11151047e+01 2.10001777e+01 + 2.08859616e+01 2.07724512e+01 2.06596413e+01 2.05475268e+01 2.04361027e+01 + 2.03253638e+01 2.02153052e+01 2.01059220e+01 1.99972092e+01 1.98891619e+01 + 1.97817754e+01 1.96750448e+01 1.95689655e+01 1.94635326e+01 1.93587416e+01 + 1.92545877e+01 1.91510665e+01 1.90481733e+01 1.89459038e+01 1.88442533e+01 + 1.87432174e+01 1.86427918e+01 1.85429721e+01 1.84437540e+01 1.83451332e+01 + 1.82471054e+01 1.81496665e+01 1.80528122e+01 1.79565384e+01 1.78608409e+01 + 1.77657158e+01 1.76711590e+01 1.75771664e+01 1.74837341e+01 1.73908582e+01 + 1.72985347e+01 1.72067597e+01 1.71155295e+01 1.70248401e+01 1.69346879e+01 + 1.68450691e+01 1.67559799e+01 1.66674167e+01 1.65793758e+01 1.64918535e+01 + 1.64048464e+01 1.63183507e+01 1.62323630e+01 1.61468798e+01 1.60618976e+01 + 1.59774129e+01 1.58934223e+01 1.58099224e+01 1.57269098e+01 1.56443812e+01 + 1.55623334e+01 1.54807629e+01 1.53996665e+01 1.53190411e+01 1.52388833e+01 + 1.51591901e+01 1.50799582e+01 1.50011845e+01 1.49228660e+01 1.48449995e+01 + 1.47675820e+01 1.46906104e+01 1.46140818e+01 1.45379931e+01 1.44623414e+01 + 1.43871239e+01 1.43123374e+01 1.42379793e+01 1.41640465e+01 1.40905364e+01 + 1.40174459e+01 1.39447724e+01 1.38725131e+01 1.38006652e+01 1.37292261e+01 + 1.36581928e+01 1.35875629e+01 1.35173336e+01 1.34475023e+01 1.33780664e+01 + 1.33090232e+01 1.32403701e+01 1.31721047e+01 1.31042244e+01 1.30367265e+01 + 1.29696088e+01 1.29028685e+01 1.28365034e+01 1.27705109e+01 1.27048887e+01 + 1.26396342e+01 1.25747452e+01 1.25102192e+01 1.24460540e+01 1.23822471e+01 + 1.23187962e+01 1.22556992e+01 1.21929536e+01 1.21305572e+01 1.20685078e+01 + 1.20068031e+01 1.19454410e+01 1.18844192e+01 1.18237356e+01 1.17633880e+01 + 1.17033742e+01 1.16436922e+01 1.15843398e+01 1.15253150e+01 1.14666156e+01 + 1.14082396e+01 1.13501849e+01 1.12924496e+01 1.12350315e+01 1.11779288e+01 + 1.11211393e+01 1.10646612e+01 1.10084925e+01 1.09526312e+01 1.08970754e+01 + 1.08418233e+01 1.07868728e+01 1.07322221e+01 1.06778695e+01 1.06238129e+01 + 1.05700505e+01 1.05165806e+01 1.04634013e+01 1.04105108e+01 1.03579073e+01 + 1.03055891e+01 1.02535544e+01 1.02018014e+01 1.01503283e+01 1.00991336e+01 + 1.00482155e+01 9.99757219e+00 9.94720209e+00 9.89710351e+00 9.84727478e+00 + 9.79771426e+00 9.74842031e+00 9.69939130e+00 9.65062562e+00 9.60212167e+00 + 9.55387786e+00 9.50589262e+00 9.45816438e+00 9.41069157e+00 9.36347267e+00 + 9.31650613e+00 9.26979044e+00 9.22332408e+00 9.17710556e+00 9.13113337e+00 + 9.08540606e+00 9.03992214e+00 8.99468017e+00 8.94967869e+00 8.90491626e+00 + 8.86039147e+00 8.81610289e+00 8.77204912e+00 8.72822876e+00 8.68464043e+00 + 8.64128274e+00 8.59815434e+00 8.55525386e+00 8.51257996e+00 8.47013129e+00 + 8.42790653e+00 8.38590436e+00 8.34412347e+00 8.30256256e+00 8.26122033e+00 + 8.22009551e+00 8.17918681e+00 8.13849297e+00 8.09801274e+00 8.05774487e+00 + 8.01768811e+00 7.97784124e+00 7.93820303e+00 7.89877228e+00 7.85954777e+00 + 7.82052831e+00 7.78171270e+00 7.74309977e+00 7.70468835e+00 7.66647727e+00 + 7.62846537e+00 7.59065151e+00 7.55303453e+00 7.51561332e+00 7.47838674e+00 + 7.44135367e+00 7.40451301e+00 7.36786365e+00 7.33140449e+00 7.29513445e+00 + 7.25905245e+00 7.22315741e+00 7.18744826e+00 7.15192396e+00 7.11658343e+00 + 7.08142564e+00 7.04644956e+00 7.01165414e+00 6.97703837e+00 6.94260122e+00 + 6.90834169e+00 6.87425877e+00 6.84035146e+00 6.80661878e+00 6.77305973e+00 + 6.73967334e+00 6.70645864e+00 6.67341467e+00 6.64054045e+00 6.60783505e+00 + 6.57529751e+00 6.54292690e+00 6.51072227e+00 6.47868271e+00 6.44680729e+00 + 6.41509509e+00 6.38354521e+00 6.35215673e+00 6.32092877e+00 6.28986042e+00 + 6.25895081e+00 6.22819905e+00 6.19760426e+00 6.16716558e+00 6.13688214e+00 + 6.10675309e+00 6.07677756e+00 6.04695472e+00 6.01728371e+00 5.98776371e+00 + 5.95839388e+00 5.92917339e+00 5.90010142e+00 5.87117717e+00 5.84239981e+00 + 5.81376854e+00 5.78528256e+00 5.75694108e+00 5.72874330e+00 5.70068845e+00 + 5.67277573e+00 5.64500437e+00 5.61737361e+00 5.58988267e+00 5.56253080e+00 + 5.53531723e+00 5.50824123e+00 5.48130203e+00 5.45449890e+00 5.42783110e+00 + 5.40129789e+00 5.37489855e+00 5.34863236e+00 5.32249859e+00 5.29649653e+00 + 5.27062546e+00 5.24488469e+00 5.21927350e+00 5.19379121e+00 5.16843711e+00 + 5.14321052e+00 5.11811076e+00 5.09313713e+00 5.06828897e+00 5.04356560e+00 + 5.01896636e+00 4.99449057e+00 4.97013759e+00 4.94590674e+00 4.92179739e+00 + 4.89780888e+00 4.87394056e+00 4.85019180e+00 4.82656195e+00 4.80305039e+00 + 4.77965649e+00 4.75637962e+00 4.73321916e+00 4.71017449e+00 4.68724499e+00 + 4.66443006e+00 4.64172909e+00 4.61914148e+00 4.59666662e+00 4.57430392e+00 + 4.55205278e+00 4.52991263e+00 4.50788286e+00 4.48596291e+00 4.46415218e+00 + 4.44245011e+00 4.42085612e+00 4.39936965e+00 4.37799012e+00 4.35671699e+00 + 4.33554968e+00 4.31448764e+00 4.29353033e+00 4.27267718e+00 4.25192766e+00 + 4.23128123e+00 4.21073734e+00 4.19029546e+00 4.16995505e+00 4.14971559e+00 + 4.12957654e+00 4.10953739e+00 4.08959761e+00 4.06975669e+00 4.05001410e+00 + 4.03036935e+00 4.01082191e+00 3.99137129e+00 3.97201698e+00 3.95275847e+00 + 3.93359529e+00 3.91452691e+00 3.89555287e+00 3.87667266e+00 3.85788581e+00 + 3.83919182e+00 3.82059022e+00 3.80208053e+00 3.78366227e+00 3.76533498e+00 + 3.74709818e+00 3.72895141e+00 3.71089420e+00 3.69292608e+00 3.67504661e+00 + 3.65725533e+00 3.63955177e+00 3.62193549e+00 3.60440604e+00 3.58696298e+00 + 3.56960585e+00 3.55233422e+00 3.53514766e+00 3.51804571e+00 3.50102796e+00 + 3.48409396e+00 3.46724329e+00 3.45047553e+00 3.43379024e+00 3.41718700e+00 + 3.40066541e+00 3.38422503e+00 3.36786545e+00 3.35158627e+00 3.33538707e+00 + 3.31926744e+00 3.30322698e+00 3.28726528e+00 3.27138194e+00 3.25557657e+00 + 3.23984876e+00 3.22419813e+00 3.20862427e+00 3.19312680e+00 3.17770533e+00 + 3.16235948e+00 3.14708885e+00 3.13189308e+00 3.11677177e+00 3.10172455e+00 + 3.08675105e+00 3.07185089e+00 3.05702370e+00 3.04226911e+00 3.02758675e+00 + 3.01297626e+00 2.99843728e+00 2.98396943e+00 2.96957237e+00 2.95524574e+00 + 2.94098917e+00 2.92680232e+00 2.91268483e+00 2.89863636e+00 2.88465656e+00 + 2.87074507e+00 2.85690156e+00 2.84312568e+00 2.82941710e+00 2.81577547e+00 + 2.80220045e+00 2.78869172e+00 2.77524894e+00 2.76187177e+00 2.74855989e+00 + 2.73531297e+00 2.72213068e+00 2.70901271e+00 2.69595871e+00 2.68296839e+00 + 2.67004141e+00 2.65717745e+00 2.64437621e+00 2.63163737e+00 2.61896061e+00 + 2.60634563e+00 2.59379211e+00 2.58129976e+00 2.56886825e+00 2.55649729e+00 + 2.54418658e+00 2.53193581e+00 2.51974468e+00 2.50761290e+00 2.49554018e+00 + 2.48352620e+00 2.47157070e+00 2.45967336e+00 2.44783390e+00 2.43605203e+00 + 2.42432747e+00 2.41265993e+00 2.40104912e+00 2.38949477e+00 2.37799659e+00 + 2.36655430e+00 2.35516763e+00 2.34383629e+00 2.33256002e+00 2.32133853e+00 + 2.31017156e+00 2.29905884e+00 2.28800009e+00 2.27699505e+00 2.26604346e+00 + 2.25514503e+00 2.24429952e+00 2.23350666e+00 2.22276619e+00 2.21207785e+00 + 2.20144138e+00 2.19085652e+00 2.18032302e+00 2.16984062e+00 2.15940907e+00 + 2.14902812e+00 2.13869751e+00 2.12841701e+00 2.11818636e+00 2.10800531e+00 + 2.09787362e+00 2.08779104e+00 2.07775734e+00 2.06777226e+00 2.05783558e+00 + 2.04794705e+00 2.03810643e+00 2.02831349e+00 2.01856799e+00 2.00886969e+00 + 1.99921838e+00 1.98961380e+00 1.98005574e+00 1.97054395e+00 1.96107823e+00 + 1.95165833e+00 1.94228403e+00 1.93295511e+00 1.92367134e+00 1.91443251e+00 + 1.90523838e+00 1.89608874e+00 1.88698338e+00 1.87792206e+00 1.86890459e+00 + 1.85993073e+00 1.85100028e+00 1.84211302e+00 1.83326875e+00 1.82446724e+00 + 1.81570829e+00 1.80699169e+00 1.79831723e+00 1.78968471e+00 1.78109391e+00 + 1.77254464e+00 1.76403669e+00 1.75556986e+00 1.74714394e+00 1.73875873e+00 + 1.73041405e+00 1.72210967e+00 1.71384542e+00 1.70562109e+00 1.69743648e+00 + 1.68929141e+00 1.68118567e+00 1.67311908e+00 1.66509145e+00 1.65710257e+00 + 1.64915227e+00 1.64124035e+00 1.63336663e+00 1.62553091e+00 1.61773302e+00 + 1.60997277e+00 1.60224997e+00 1.59456444e+00 1.58691600e+00 1.57930447e+00 + 1.57172966e+00 1.56419140e+00 1.55668951e+00 1.54922381e+00 1.54179412e+00 + 1.53440027e+00 1.52704208e+00 1.51971938e+00 1.51243200e+00 1.50517976e+00 + 1.49796249e+00 1.49078002e+00 1.48363218e+00 1.47651881e+00 1.46943972e+00 + 1.46239477e+00 1.45538377e+00 1.44840657e+00 1.44146299e+00 1.43455288e+00 + 1.42767608e+00 1.42083241e+00 1.41402172e+00 1.40724385e+00 1.40049863e+00 + 1.39378592e+00 1.38710554e+00 1.38045735e+00 1.37384119e+00 1.36725689e+00 + 1.36070431e+00 1.35418329e+00 1.34769367e+00 1.34123531e+00 1.33480805e+00 + 1.32841174e+00 1.32204623e+00 1.31571137e+00 1.30940702e+00 1.30313301e+00 + 1.29688921e+00 1.29067547e+00 1.28449163e+00 1.27833757e+00 1.27221313e+00 + 1.26611816e+00 1.26005253e+00 1.25401609e+00 1.24800870e+00 1.24203022e+00 + 1.23608051e+00 1.23015943e+00 1.22426684e+00 1.21840259e+00 1.21256657e+00 + 1.20675861e+00 1.20097860e+00 1.19522640e+00 1.18950186e+00 1.18380486e+00 + 1.17813526e+00 1.17249293e+00 1.16687773e+00 1.16128954e+00 1.15572823e+00 + 1.15019366e+00 1.14468570e+00 1.13920423e+00 1.13374911e+00 1.12832022e+00 + 1.12291743e+00 1.11754062e+00 1.11218966e+00 1.10686442e+00 1.10156477e+00 + 1.09629061e+00 1.09104179e+00 1.08581821e+00 1.08061973e+00 1.07544623e+00 + 1.07029760e+00 1.06517371e+00 1.06007445e+00 1.05499969e+00 1.04994931e+00 + 1.04492320e+00 1.03992125e+00 1.03494332e+00 1.02998931e+00 1.02505910e+00 + 1.02015258e+00 1.01526963e+00 1.01041014e+00 1.00557399e+00 1.00076107e+00 + 9.95971269e-01 9.91204474e-01 9.86460574e-01 9.81739459e-01 9.77041017e-01 + 9.72365141e-01 9.67711719e-01 9.63080644e-01 9.58471808e-01 9.53885103e-01 + 9.49320422e-01 9.44777659e-01 9.40256708e-01 9.35757463e-01 9.31279819e-01 + 9.26823673e-01 9.22388920e-01 9.17975456e-01 9.13583180e-01 9.09211987e-01 + 9.04861778e-01 9.00532450e-01 8.96223902e-01 8.91936035e-01 8.87668748e-01 + 8.83421941e-01 8.79195517e-01 8.74989376e-01 8.70803420e-01 8.66637553e-01 + 8.62491677e-01 8.58365695e-01 8.54259512e-01 8.50173032e-01 8.46106160e-01 + 8.42058801e-01 8.38030861e-01 8.34022246e-01 8.30032864e-01 8.26062621e-01 + 8.22111425e-01 8.18179184e-01 8.14265806e-01 8.10371202e-01 8.06495279e-01 + 8.02637948e-01 7.98799120e-01 7.94978705e-01 7.91176614e-01 7.87392758e-01 + 7.83627051e-01 7.79879404e-01 7.76149731e-01 7.72437944e-01 7.68743958e-01 + 7.65067686e-01 7.61409044e-01 7.57767945e-01 7.54144307e-01 7.50538044e-01 + 7.46949073e-01 7.43377311e-01 7.39822674e-01 7.36285080e-01 7.32764446e-01 + 7.29260693e-01 7.25773736e-01 7.22303497e-01 7.18849895e-01 7.15412848e-01 + 7.11992278e-01 7.08588105e-01 7.05200250e-01 7.01828635e-01 6.98473181e-01 + 6.95133811e-01 6.91810447e-01 6.88503011e-01 6.85211428e-01 6.81935621e-01 + 6.78675514e-01 6.75431031e-01 6.72202097e-01 6.68988638e-01 6.65790578e-01 + 6.62607844e-01 6.59440362e-01 6.56288059e-01 6.53150861e-01 6.50028696e-01 + 6.46921491e-01 6.43829174e-01 6.40751674e-01 6.37688920e-01 6.34640840e-01 + 6.31607364e-01 6.28588422e-01 6.25583943e-01 6.22593858e-01 6.19618099e-01 + 6.16656595e-01 6.13709278e-01 6.10776081e-01 6.07856935e-01 6.04951772e-01 + 6.02060526e-01 5.99183129e-01 5.96319515e-01 5.93469617e-01 5.90633370e-01 + 5.87810708e-01 5.85001566e-01 5.82205878e-01 5.79423580e-01 5.76654607e-01 + 5.73898896e-01 5.71156383e-01 5.68427004e-01 5.65710696e-01 5.63007396e-01 + 5.60317042e-01 5.57639571e-01 5.54974922e-01 5.52323033e-01 5.49683843e-01 + 5.47057290e-01 5.44443314e-01 5.41841854e-01 5.39252851e-01 5.36676244e-01 + 5.34111973e-01 5.31559981e-01 5.29020206e-01 5.26492592e-01 5.23977079e-01 + 5.21473609e-01 5.18982125e-01 5.16502568e-01 5.14034882e-01 5.11579010e-01 + 5.09134894e-01 5.06702479e-01 5.04281707e-01 5.01872524e-01 4.99474873e-01 + 4.97088699e-01 4.94713948e-01 4.92350563e-01 4.89998491e-01 4.87657677e-01 + 4.85328067e-01 4.83009607e-01 4.80702244e-01 4.78405925e-01 4.76120596e-01 + 4.73846204e-01 4.71582698e-01 4.69330025e-01 4.67088133e-01 4.64856970e-01 + 4.62636484e-01 4.60426625e-01 4.58227341e-01 4.56038581e-01 4.53860296e-01 + 4.51692435e-01 4.49534947e-01 4.47387783e-01 4.45250893e-01 4.43124229e-01 + 4.41007741e-01 4.38901379e-01 4.36805097e-01 4.34718844e-01 4.32642574e-01 + 4.30576237e-01 4.28519788e-01 4.26473177e-01 4.24436358e-01 4.22409284e-01 + 4.20391908e-01 4.18384183e-01 4.16386064e-01 4.14397504e-01 4.12418457e-01 + 4.10448878e-01 4.08488721e-01 4.06537941e-01 4.04596493e-01 4.02664332e-01 + 4.00741414e-01 3.98827694e-01 3.96923129e-01 3.95027674e-01 3.93141285e-01 + 3.91263920e-01 3.89395535e-01 3.87536086e-01 3.85685532e-01 3.83843828e-01 + 3.82010934e-01 3.80186806e-01 3.78371402e-01 3.76564682e-01 3.74766602e-01 + 3.72977122e-01 3.71196200e-01 3.69423796e-01 3.67659868e-01 3.65904377e-01 + 3.64157280e-01 3.62418539e-01 3.60688113e-01 3.58965962e-01 3.57252046e-01 + 3.55546327e-01 3.53848764e-01 3.52159319e-01 3.50477953e-01 3.48804627e-01 + 3.47139302e-01 3.45481941e-01 3.43832504e-01 3.42190955e-01 3.40557254e-01 + 3.38931366e-01 3.37313251e-01 3.35702873e-01 3.34100195e-01 3.32505179e-01 + 3.30917790e-01 3.29337990e-01 3.27765744e-01 3.26201014e-01 3.24643766e-01 + 3.23093962e-01 3.21551569e-01 3.20016548e-01 3.18488867e-01 3.16968489e-01 + 3.15455379e-01 3.13949503e-01 3.12450826e-01 3.10959314e-01 3.09474931e-01 + 3.07997645e-01 3.06527420e-01 3.05064224e-01 3.03608022e-01 3.02158781e-01 + 3.00716467e-01 2.99281048e-01 2.97852490e-01 2.96430761e-01 2.95015827e-01 + 2.93607657e-01 2.92206218e-01 2.90811477e-01 2.89423403e-01 2.88041963e-01 + 2.86667126e-01 2.85298860e-01 2.83937134e-01 2.82581916e-01 2.81233175e-01 + 2.79890881e-01 2.78555001e-01 2.77225507e-01 2.75902366e-01 2.74585549e-01 + 2.73275025e-01 2.71970764e-01 2.70672736e-01 2.69380912e-01 2.68095261e-01 + 2.66815754e-01 2.65542362e-01 2.64275055e-01 2.63013804e-01 2.61758580e-01 + 2.60509355e-01 2.59266099e-01 2.58028784e-01 2.56797382e-01 2.55571864e-01 + 2.54352202e-01 2.53138368e-01 2.51930334e-01 2.50728072e-01 2.49531555e-01 + 2.48340756e-01 2.47155646e-01 2.45976199e-01 2.44802387e-01 2.43634184e-01 + 2.42471562e-01 2.41314495e-01 2.40162957e-01 2.39016920e-01 2.37876359e-01 + 2.36741248e-01 2.35611559e-01 2.34487268e-01 2.33368348e-01 2.32254774e-01 + 2.31146520e-01 2.30043561e-01 2.28945871e-01 2.27853426e-01 2.26766199e-01 + 2.25684166e-01 2.24607302e-01 2.23535583e-01 2.22468984e-01 2.21407480e-01 + 2.20351047e-01 2.19299660e-01 2.18253296e-01 2.17211931e-01 2.16175540e-01 + 2.15144100e-01 2.14113243e-01 2.13069891e-01 2.12013376e-01 2.10943940e-01 + 2.09861825e-01 2.08767274e-01 2.07660532e-01 2.06541843e-01 2.05411450e-01 + 2.04269601e-01 2.03116539e-01 2.01952510e-01 2.00777762e-01 1.99592539e-01 + 1.98397087e-01 1.97191654e-01 1.95976486e-01 1.94751828e-01 1.93517927e-01 + 1.92275030e-01 1.91023382e-01 1.89763228e-01 1.88494815e-01 1.87218387e-01 + 1.85934189e-01 1.84642465e-01 1.83343460e-01 1.82037416e-01 1.80724576e-01 + 1.79405183e-01 1.78079478e-01 1.76747703e-01 1.75410096e-01 1.74066898e-01 + 1.72718347e-01 1.71364681e-01 1.70006137e-01 1.68642951e-01 1.67275357e-01 + 1.65903590e-01 1.64527883e-01 1.63148467e-01 1.61765573e-01 1.60379431e-01 + 1.58990269e-01 1.57598315e-01 1.56203794e-01 1.54806930e-01 1.53407948e-01 + 1.52007068e-01 1.50604512e-01 1.49200499e-01 1.47795247e-01 1.46388970e-01 + 1.44981885e-01 1.43574205e-01 1.42166140e-01 1.40757901e-01 1.39349697e-01 + 1.37941733e-01 1.36534215e-01 1.35127346e-01 1.33721328e-01 1.32316360e-01 + 1.30912641e-01 1.29510367e-01 1.28109732e-01 1.26710929e-01 1.25314148e-01 + 1.23919578e-01 1.22527407e-01 1.21137818e-01 1.19750996e-01 1.18367121e-01 + 1.16986372e-01 1.15608926e-01 1.14234958e-01 1.12864641e-01 1.11498147e-01 + 1.10135644e-01 1.08777298e-01 1.07423275e-01 1.06073737e-01 1.04728844e-01 + 1.03388755e-01 1.02053626e-01 1.00723611e-01 9.93988621e-02 9.80795283e-02 + 9.67657573e-02 9.54576944e-02 9.41554826e-02 9.28592628e-02 9.15691736e-02 + 9.02853512e-02 8.90079298e-02 8.77370413e-02 8.64728153e-02 8.52153791e-02 + 8.39648579e-02 8.27213744e-02 8.14850493e-02 8.02560007e-02 7.90343447e-02 + 7.78201951e-02 7.66136632e-02 7.54148582e-02 7.42238870e-02 7.30408542e-02 + 7.18658621e-02 7.06990106e-02 6.95403977e-02 6.83901186e-02 6.72482667e-02 + 6.61149327e-02 6.49902053e-02 6.38741708e-02 6.27669135e-02 6.16685149e-02 + 6.05790548e-02 5.94986105e-02 5.84272569e-02 5.73650669e-02 5.63121110e-02 + 5.52684577e-02 5.42341729e-02 5.32093207e-02 5.21939626e-02 5.11881582e-02 + 5.01919647e-02 4.92054373e-02 4.82286288e-02 4.72615900e-02 4.63043694e-02 + 4.53570136e-02 4.44195668e-02 4.34920712e-02 4.25745668e-02 4.16670917e-02 + 4.07696815e-02 3.98823701e-02 3.90051893e-02 3.81381685e-02 3.72813355e-02 + 3.64347158e-02 3.55983328e-02 3.47722083e-02 3.39563616e-02 3.31508103e-02 + 3.23555701e-02 3.15706545e-02 3.07960754e-02 3.00318424e-02 2.92779635e-02 + 2.85344447e-02 2.78012900e-02 2.70785019e-02 2.63660805e-02 2.56640247e-02 + 2.49723312e-02 2.42909949e-02 2.36200091e-02 2.29593653e-02 2.23090532e-02 + 2.16690608e-02 2.10393744e-02 2.04199786e-02 1.98108565e-02 1.92119892e-02 + 1.86233564e-02 1.80449363e-02 1.74767052e-02 1.69186380e-02 1.63707081e-02 + 1.58328873e-02 1.53051458e-02 1.47874523e-02 1.42797743e-02 1.37820775e-02 + 1.32943263e-02 1.28164837e-02 1.23485112e-02 1.18903690e-02 1.14420160e-02 + 1.10034096e-02 1.05745061e-02 1.01552602e-02 9.74562554e-03 9.34555446e-03 + 8.95499803e-03 8.57390613e-03 8.20222740e-03 7.83990935e-03 7.48689830e-03 + 7.14313944e-03 6.80857685e-03 6.48315351e-03 6.16681133e-03 5.85949117e-03 + 5.56113283e-03 5.27167514e-03 4.99105590e-03 4.71921196e-03 4.45607922e-03 + 4.20159263e-03 3.95568626e-03 3.71829328e-03 3.48934599e-03 3.26877583e-03 + 3.05651345e-03 2.85248865e-03 2.65663049e-03 2.46886724e-03 2.28912643e-03 + 2.11733486e-03 1.95341864e-03 1.79730319e-03 1.64891328e-03 1.50817302e-03 + 1.37500590e-03 1.24933483e-03 1.13108212e-03 1.02016951e-03 9.16518227e-04 + 8.20048948e-04 7.30681861e-04 6.48336671e-04 5.72932617e-04 5.04388498e-04 + 4.42622685e-04 3.87553146e-04 3.39097464e-04 2.97172855e-04 2.61696185e-04 + 2.32583995e-04 2.09752512e-04 1.93117675e-04 1.82595147e-04 1.78100339e-04 + 5.10303315e+05 5.10046225e+05 2.53097548e+05 1.67464388e+05 1.24659895e+05 + 9.89867038e+04 8.18790278e+04 6.96658180e+04 6.05115520e+04 5.33964966e+04 + 4.77088135e+04 4.30591523e+04 3.91879473e+04 3.59155003e+04 3.31134563e+04 + 3.06876893e+04 2.85676056e+04 2.66992224e+04 2.50405539e+04 2.35584542e+04 + 2.22264069e+04 2.10229471e+04 1.99305132e+04 1.89345980e+04 1.80231129e+04 + 1.71859038e+04 1.64143793e+04 1.57012210e+04 1.50401564e+04 1.44257787e+04 + 1.38534022e+04 1.33189460e+04 1.28188399e+04 1.23499464e+04 1.19094977e+04 + 1.14950424e+04 1.11044018e+04 1.07356328e+04 1.03869972e+04 1.00569354e+04 + 9.74404375e+03 9.44705580e+03 9.16482594e+03 8.89631528e+03 8.64057954e+03 + 8.39675857e+03 8.16406712e+03 7.94178697e+03 7.72925986e+03 7.52588141e+03 + 7.33109575e+03 7.14439069e+03 6.96529360e+03 6.79336763e+03 6.62820838e+03 + 6.46944099e+03 6.31671748e+03 6.16971439e+03 6.02813065e+03 5.89168572e+03 + 5.76011783e+03 5.63318249e+03 5.51065103e+03 5.39230941e+03 5.27795704e+03 + 5.16740574e+03 5.06047881e+03 4.95701018e+03 4.85684361e+03 4.75983198e+03 + 4.66583665e+03 4.57472683e+03 4.48637909e+03 4.40067679e+03 4.31750967e+03 + 4.23677339e+03 4.15836916e+03 4.08220338e+03 4.00818728e+03 3.93623666e+03 + 3.86627154e+03 3.79821596e+03 3.73199770e+03 3.66754806e+03 3.60480166e+03 + 3.54369622e+03 3.48417242e+03 3.42617367e+03 3.36964602e+03 3.31453796e+03 + 3.26080030e+03 3.20838606e+03 3.15725033e+03 3.10735015e+03 3.05864443e+03 + 3.01109383e+03 2.96466068e+03 2.91930891e+03 2.87500390e+03 2.83171251e+03 + 2.78940292e+03 2.74804459e+03 2.70760821e+03 2.66806564e+03 2.62938983e+03 + 2.59155479e+03 2.55453552e+03 2.51830799e+03 2.48284908e+03 2.44813652e+03 + 2.41414887e+03 2.38086551e+03 2.34826654e+03 2.31633280e+03 2.28504581e+03 + 2.25438775e+03 2.22434144e+03 2.19489029e+03 2.16601829e+03 2.13770999e+03 + 2.10995046e+03 2.08272529e+03 2.05602053e+03 2.02982273e+03 2.00411886e+03 + 1.97889633e+03 1.95414296e+03 1.92984697e+03 1.90599695e+03 1.88258187e+03 + 1.85959103e+03 1.83701408e+03 1.81484100e+03 1.79306205e+03 1.77166784e+03 + 1.75064922e+03 1.72999735e+03 1.70970364e+03 1.68975977e+03 1.67015765e+03 + 1.65088945e+03 1.63194756e+03 1.61332459e+03 1.59501336e+03 1.57700693e+03 + 1.55929851e+03 1.54188153e+03 1.52474960e+03 1.50789653e+03 1.49131626e+03 + 1.47500294e+03 1.45895085e+03 1.44315444e+03 1.42760833e+03 1.41230725e+03 + 1.39724609e+03 1.38241988e+03 1.36782377e+03 1.35345305e+03 1.33930313e+03 + 1.32536953e+03 1.31164791e+03 1.29813401e+03 1.28482370e+03 1.27171296e+03 + 1.25879786e+03 1.24607457e+03 1.23353935e+03 1.22118857e+03 1.20901868e+03 + 1.19702622e+03 1.18520781e+03 1.17356016e+03 1.16208005e+03 1.15076434e+03 + 1.13960999e+03 1.12861399e+03 1.11777342e+03 1.10708545e+03 1.09654729e+03 + 1.08615621e+03 1.07590958e+03 1.06580478e+03 1.05583930e+03 1.04601066e+03 + 1.03631643e+03 1.02675426e+03 1.01732183e+03 1.00801689e+03 9.98837223e+02 + 9.89780672e+02 9.80845126e+02 9.72028519e+02 9.63328832e+02 9.54744087e+02 + 9.46272351e+02 9.37911733e+02 9.29660381e+02 9.21516483e+02 9.13478267e+02 + 9.05543995e+02 8.97711969e+02 8.89980525e+02 8.82348035e+02 8.74812902e+02 + 8.67373564e+02 8.60028492e+02 8.52776186e+02 8.45615178e+02 8.38544029e+02 + 8.31561330e+02 8.24665699e+02 8.17855783e+02 8.11130255e+02 8.04487814e+02 + 7.97927187e+02 7.91447123e+02 7.85046396e+02 7.78723806e+02 7.72478175e+02 + 7.66308347e+02 7.60213188e+02 7.54191588e+02 7.48242457e+02 7.42364723e+02 + 7.36557340e+02 7.30819275e+02 7.25149520e+02 7.19547083e+02 7.14010990e+02 + 7.08540286e+02 7.03134035e+02 6.97791316e+02 6.92511225e+02 6.87292875e+02 + 6.82135395e+02 6.77037931e+02 6.71999642e+02 6.67019703e+02 6.62097305e+02 + 6.57231651e+02 6.52421960e+02 6.47667464e+02 6.42967409e+02 6.38321053e+02 + 6.33727668e+02 6.29186538e+02 6.24696960e+02 6.20258243e+02 6.15869708e+02 + 6.11530686e+02 6.07240521e+02 6.02998567e+02 5.98804191e+02 5.94656769e+02 + 5.90555686e+02 5.86500341e+02 5.82490139e+02 5.78524499e+02 5.74602845e+02 + 5.70724613e+02 5.66889250e+02 5.63096208e+02 5.59344950e+02 5.55634949e+02 + 5.51965684e+02 5.48336644e+02 5.44747325e+02 5.41197231e+02 5.37685877e+02 + 5.34212781e+02 5.30777471e+02 5.27379483e+02 5.24018359e+02 5.20693648e+02 + 5.17404908e+02 5.14151701e+02 5.10933598e+02 5.07750176e+02 5.04601017e+02 + 5.01485712e+02 4.98403856e+02 4.95355051e+02 4.92338905e+02 4.89355032e+02 + 4.86403051e+02 4.83482588e+02 4.80593273e+02 4.77734743e+02 4.74906640e+02 + 4.72108610e+02 4.69340305e+02 4.66601383e+02 4.63891506e+02 4.61210340e+02 + 4.58557558e+02 4.55932836e+02 4.53335856e+02 4.50766302e+02 4.48223866e+02 + 4.45708241e+02 4.43219127e+02 4.40756227e+02 4.38319248e+02 4.35907902e+02 + 4.33521903e+02 4.31160971e+02 4.28824829e+02 4.26513205e+02 4.24225829e+02 + 4.21962435e+02 4.19722762e+02 4.17506550e+02 4.15313545e+02 4.13143496e+02 + 4.10996155e+02 4.08871275e+02 4.06768616e+02 4.04687940e+02 4.02629011e+02 + 4.00591597e+02 3.98575469e+02 3.96580400e+02 3.94606168e+02 3.92652552e+02 + 3.90719335e+02 3.88806302e+02 3.86913240e+02 3.85039942e+02 3.83186199e+02 + 3.81351809e+02 3.79536569e+02 3.77740281e+02 3.75962749e+02 3.74203778e+02 + 3.72463176e+02 3.70740756e+02 3.69036329e+02 3.67349711e+02 3.65680719e+02 + 3.64029175e+02 3.62394898e+02 3.60777715e+02 3.59177450e+02 3.57593933e+02 + 3.56026994e+02 3.54476464e+02 3.52942179e+02 3.51423975e+02 3.49921689e+02 + 3.48435163e+02 3.46964237e+02 3.45508756e+02 3.44068565e+02 3.42643511e+02 + 3.41233444e+02 3.39838215e+02 3.38457674e+02 3.37091678e+02 3.35740081e+02 + 3.34402740e+02 3.33079515e+02 3.31770266e+02 3.30474855e+02 3.29193145e+02 + 3.27925002e+02 3.26670291e+02 3.25428880e+02 3.24200640e+02 3.22985439e+02 + 3.21783151e+02 3.20593649e+02 3.19416806e+02 3.18252500e+02 3.17100608e+02 + 3.15961007e+02 3.14833578e+02 3.13718202e+02 3.12614761e+02 3.11523138e+02 + 3.10443218e+02 3.09374887e+02 3.08318030e+02 3.07272538e+02 3.06238297e+02 + 3.05215199e+02 3.04203134e+02 3.03201996e+02 3.02211676e+02 3.01232070e+02 + 3.00263073e+02 2.99304581e+02 2.98356492e+02 2.97418703e+02 2.96491113e+02 + 2.95573624e+02 2.94666135e+02 2.93768550e+02 2.92880770e+02 2.92002699e+02 + 2.91134242e+02 2.90275304e+02 2.89425791e+02 2.88585611e+02 2.87754672e+02 + 2.86932882e+02 2.86120150e+02 2.85316386e+02 2.84521503e+02 2.83735411e+02 + 2.82958023e+02 2.82189252e+02 2.81429013e+02 2.80677219e+02 2.79933787e+02 + 2.79198632e+02 2.78471671e+02 2.77752821e+02 2.77042001e+02 2.76339129e+02 + 2.75644124e+02 2.74956907e+02 2.74277399e+02 2.73605519e+02 2.72941192e+02 + 2.72284337e+02 2.71634880e+02 2.70992743e+02 2.70357851e+02 2.69730128e+02 + 2.69109499e+02 2.68495891e+02 2.67889230e+02 2.67289443e+02 2.66696458e+02 + 2.66110201e+02 2.65530603e+02 2.64957592e+02 2.64391096e+02 2.63831048e+02 + 2.63277376e+02 2.62730013e+02 2.62188888e+02 2.61653935e+02 2.61125086e+02 + 2.60602273e+02 2.60085431e+02 2.59574492e+02 2.59069390e+02 2.58570061e+02 + 2.58076440e+02 2.57588462e+02 2.57106063e+02 2.56629179e+02 2.56157746e+02 + 2.55691703e+02 2.55230987e+02 2.54775535e+02 2.54325287e+02 2.53880179e+02 + 2.53440153e+02 2.53005147e+02 2.52575100e+02 2.52149954e+02 2.51729649e+02 + 2.51314126e+02 2.50903326e+02 2.50497191e+02 2.50095662e+02 2.49698683e+02 + 2.49306196e+02 2.48918144e+02 2.48534470e+02 2.48155118e+02 2.47780033e+02 + 2.47409158e+02 2.47042438e+02 2.46679819e+02 2.46321246e+02 2.45966664e+02 + 2.45616020e+02 2.45269260e+02 2.44926330e+02 2.44587178e+02 2.44251750e+02 + 2.43919995e+02 2.43591860e+02 2.43267294e+02 2.42946244e+02 2.42628660e+02 + 2.42314491e+02 2.42003686e+02 2.41696195e+02 2.41391967e+02 2.41090953e+02 + 2.40793105e+02 2.40498371e+02 2.40206704e+02 2.39918055e+02 2.39632375e+02 + 2.39349617e+02 2.39069733e+02 2.38792675e+02 2.38518396e+02 2.38246849e+02 + 2.37977988e+02 2.37711767e+02 2.37448138e+02 2.37187057e+02 2.36928477e+02 + 2.36672354e+02 2.36418643e+02 2.36167298e+02 2.35918276e+02 2.35671532e+02 + 2.35427023e+02 2.35184704e+02 2.34944533e+02 2.34706466e+02 2.34470460e+02 + 2.34236473e+02 2.34004463e+02 2.33774388e+02 2.33546205e+02 2.33319874e+02 + 2.33095353e+02 2.32872602e+02 2.32651579e+02 2.32432244e+02 2.32214558e+02 + 2.31998480e+02 2.31783971e+02 2.31570991e+02 2.31359501e+02 2.31149464e+02 + 2.30940839e+02 2.30733589e+02 2.30527677e+02 2.30323063e+02 2.30119712e+02 + 2.29917585e+02 2.29716646e+02 2.29516859e+02 2.29318186e+02 2.29120593e+02 + 2.28924042e+02 2.28728500e+02 2.28533929e+02 2.28340297e+02 2.28147567e+02 + 2.27955705e+02 2.27764678e+02 2.27574452e+02 2.27384992e+02 2.27196266e+02 + 2.27008241e+02 2.26820884e+02 2.26634163e+02 2.26448044e+02 2.26262498e+02 + 2.26077491e+02 2.25892993e+02 2.25708972e+02 2.25525399e+02 2.25342242e+02 + 2.25159470e+02 2.24977056e+02 2.24794968e+02 2.24613177e+02 2.24431655e+02 + 2.24250372e+02 2.24069301e+02 2.23888413e+02 2.23707679e+02 2.23527074e+02 + 2.23346568e+02 2.23166136e+02 2.22985751e+02 2.22805385e+02 2.22625013e+02 + 2.22444610e+02 2.22264149e+02 2.22083605e+02 2.21902954e+02 2.21722170e+02 + 2.21541230e+02 2.21360109e+02 2.21178783e+02 2.20997229e+02 2.20815424e+02 + 2.20633345e+02 2.20450968e+02 2.20268273e+02 2.20085237e+02 2.19901837e+02 + 2.19718053e+02 2.19533864e+02 2.19349248e+02 2.19164186e+02 2.18978656e+02 + 2.18792640e+02 2.18606116e+02 2.18419067e+02 2.18231472e+02 2.18043313e+02 + 2.17854572e+02 2.17665230e+02 2.17475270e+02 2.17284673e+02 2.17093423e+02 + 2.16901503e+02 2.16708895e+02 2.16515584e+02 2.16321553e+02 2.16126786e+02 + 2.15931269e+02 2.15734985e+02 2.15537919e+02 2.15340058e+02 2.15141386e+02 + 2.14941889e+02 2.14741555e+02 2.14540368e+02 2.14338316e+02 2.14135386e+02 + 2.13931566e+02 2.13726842e+02 2.13521203e+02 2.13314637e+02 2.13107133e+02 + 2.12898678e+02 2.12689263e+02 2.12478876e+02 2.12267508e+02 2.12055147e+02 + 2.11841784e+02 2.11627410e+02 2.11412015e+02 2.11195590e+02 2.10978127e+02 + 2.10759616e+02 2.10540050e+02 2.10319420e+02 2.10097719e+02 2.09874940e+02 + 2.09651076e+02 2.09426118e+02 2.09200061e+02 2.08972899e+02 2.08744625e+02 + 2.08515233e+02 2.08284718e+02 2.08053074e+02 2.07820297e+02 2.07586381e+02 + 2.07351321e+02 2.07115114e+02 2.06877755e+02 2.06639241e+02 2.06399567e+02 + 2.06158730e+02 2.05916728e+02 2.05673556e+02 2.05429214e+02 2.05183697e+02 + 2.04937004e+02 2.04689132e+02 2.04440081e+02 2.04189848e+02 2.03938432e+02 + 2.03685832e+02 2.03432047e+02 2.03177076e+02 2.02920920e+02 2.02663577e+02 + 2.02405047e+02 2.02145331e+02 2.01884430e+02 2.01622343e+02 2.01359072e+02 + 2.01094617e+02 2.00828980e+02 2.00562162e+02 2.00294164e+02 2.00024989e+02 + 1.99754638e+02 1.99483114e+02 1.99210418e+02 1.98936553e+02 1.98661523e+02 + 1.98385329e+02 1.98107975e+02 1.97829464e+02 1.97549799e+02 1.97268984e+02 + 1.96987023e+02 1.96703919e+02 1.96419677e+02 1.96134301e+02 1.95847795e+02 + 1.95560163e+02 1.95271410e+02 1.94981542e+02 1.94690563e+02 1.94398477e+02 + 1.94105292e+02 1.93811010e+02 1.93515640e+02 1.93219185e+02 1.92921652e+02 + 1.92623046e+02 1.92323374e+02 1.92022643e+02 1.91720857e+02 1.91418024e+02 + 1.91114151e+02 1.90809243e+02 1.90503308e+02 1.90196352e+02 1.89888383e+02 + 1.89579408e+02 1.89269434e+02 1.88958468e+02 1.88646517e+02 1.88333590e+02 + 1.88019694e+02 1.87704836e+02 1.87389025e+02 1.87072268e+02 1.86754573e+02 + 1.86435949e+02 1.86116403e+02 1.85795944e+02 1.85474580e+02 1.85152320e+02 + 1.84829171e+02 1.84505143e+02 1.84180245e+02 1.83854484e+02 1.83527870e+02 + 1.83200411e+02 1.82872117e+02 1.82542996e+02 1.82213057e+02 1.81882310e+02 + 1.81550763e+02 1.81218426e+02 1.80885308e+02 1.80551418e+02 1.80216766e+02 + 1.79881360e+02 1.79545211e+02 1.79208327e+02 1.78870719e+02 1.78532395e+02 + 1.78193366e+02 1.77853641e+02 1.77513229e+02 1.77172140e+02 1.76830384e+02 + 1.76487971e+02 1.76144911e+02 1.75801212e+02 1.75456885e+02 1.75111940e+02 + 1.74766387e+02 1.74420235e+02 1.74073494e+02 1.73726174e+02 1.73378285e+02 + 1.73029837e+02 1.72680840e+02 1.72331304e+02 1.71981238e+02 1.71630653e+02 + 1.71279558e+02 1.70927963e+02 1.70575879e+02 1.70223315e+02 1.69870281e+02 + 1.69516787e+02 1.69162843e+02 1.68808459e+02 1.68453644e+02 1.68098409e+02 + 1.67742764e+02 1.67386718e+02 1.67030281e+02 1.66673463e+02 1.66316274e+02 + 1.65958724e+02 1.65600822e+02 1.65242578e+02 1.64884002e+02 1.64525104e+02 + 1.64165893e+02 1.63806379e+02 1.63446572e+02 1.63086481e+02 1.62726115e+02 + 1.62365486e+02 1.62004601e+02 1.61643471e+02 1.61282104e+02 1.60920511e+02 + 1.60558701e+02 1.60196684e+02 1.59834467e+02 1.59472062e+02 1.59109477e+02 + 1.58746721e+02 1.58383804e+02 1.58020734e+02 1.57657521e+02 1.57294175e+02 + 1.56930703e+02 1.56567116e+02 1.56203421e+02 1.55839629e+02 1.55475747e+02 + 1.55111785e+02 1.54747751e+02 1.54383654e+02 1.54019504e+02 1.53655308e+02 + 1.53291075e+02 1.52926813e+02 1.52562532e+02 1.52198240e+02 1.51833945e+02 + 1.51469655e+02 1.51105379e+02 1.50741125e+02 1.50376902e+02 1.50012717e+02 + 1.49648578e+02 1.49284494e+02 1.48920473e+02 1.48556522e+02 1.48192650e+02 + 1.47828864e+02 1.47465173e+02 1.47101583e+02 1.46738103e+02 1.46374741e+02 + 1.46011503e+02 1.45648398e+02 1.45285432e+02 1.44922614e+02 1.44559950e+02 + 1.44197449e+02 1.43835116e+02 1.43472960e+02 1.43110988e+02 1.42749206e+02 + 1.42387622e+02 1.42026243e+02 1.41665075e+02 1.41304126e+02 1.40943402e+02 + 1.40582910e+02 1.40222657e+02 1.39862648e+02 1.39502892e+02 1.39143395e+02 + 1.38784162e+02 1.38425200e+02 1.38066516e+02 1.37708117e+02 1.37350007e+02 + 1.36992193e+02 1.36634682e+02 1.36277480e+02 1.35920592e+02 1.35564024e+02 + 1.35207783e+02 1.34851874e+02 1.34496303e+02 1.34141076e+02 1.33786198e+02 + 1.33431675e+02 1.33077512e+02 1.32723715e+02 1.32370290e+02 1.32017242e+02 + 1.31664575e+02 1.31312296e+02 1.30960410e+02 1.30608921e+02 1.30257835e+02 + 1.29907157e+02 1.29556892e+02 1.29207045e+02 1.28857620e+02 1.28508623e+02 + 1.28160058e+02 1.27811930e+02 1.27464243e+02 1.27117003e+02 1.26770214e+02 + 1.26423879e+02 1.26078005e+02 1.25732594e+02 1.25387652e+02 1.25043183e+02 + 1.24699190e+02 1.24355679e+02 1.24012652e+02 1.23670115e+02 1.23328071e+02 + 1.22986525e+02 1.22645479e+02 1.22304939e+02 1.21964907e+02 1.21625388e+02 + 1.21286385e+02 1.20947903e+02 1.20609943e+02 1.20272511e+02 1.19935610e+02 + 1.19599242e+02 1.19263412e+02 1.18928123e+02 1.18593378e+02 1.18259180e+02 + 1.17925533e+02 1.17592440e+02 1.17259904e+02 1.16927927e+02 1.16596514e+02 + 1.16265667e+02 1.15935389e+02 1.15605682e+02 1.15276550e+02 1.14947996e+02 + 1.14620022e+02 1.14292630e+02 1.13965825e+02 1.13639607e+02 1.13313981e+02 + 1.12988947e+02 1.12664510e+02 1.12340671e+02 1.12017432e+02 1.11694796e+02 + 1.11372766e+02 1.11051343e+02 1.10730530e+02 1.10410329e+02 1.10090743e+02 + 1.09771772e+02 1.09453420e+02 1.09135688e+02 1.08818579e+02 1.08502094e+02 + 1.08186235e+02 1.07871004e+02 1.07556404e+02 1.07242435e+02 1.06929099e+02 + 1.06616399e+02 1.06304336e+02 1.05992911e+02 1.05682126e+02 1.05371983e+02 + 1.05062483e+02 1.04753628e+02 1.04445420e+02 1.04137859e+02 1.03830947e+02 + 1.03524685e+02 1.03219075e+02 1.02914119e+02 1.02609816e+02 1.02306169e+02 + 1.02003179e+02 1.01700846e+02 1.01399173e+02 1.01098160e+02 1.00797808e+02 + 1.00498118e+02 1.00199091e+02 9.99007283e+01 9.96030307e+01 9.93059992e+01 + 9.90096345e+01 9.87139375e+01 9.84189091e+01 9.81245500e+01 9.78308609e+01 + 9.75378427e+01 9.72454959e+01 9.69538214e+01 9.66628197e+01 9.63724914e+01 + 9.60828371e+01 9.57938574e+01 9.55055529e+01 9.52179239e+01 9.49309711e+01 + 9.46446949e+01 9.43590956e+01 9.40741738e+01 9.37899297e+01 9.35063638e+01 + 9.32234763e+01 9.29412676e+01 9.26597379e+01 9.23788875e+01 9.20987167e+01 + 9.18192256e+01 9.15404144e+01 9.12622833e+01 9.09848325e+01 9.07080619e+01 + 9.04319719e+01 9.01565623e+01 8.98818333e+01 8.96077848e+01 8.93344170e+01 + 8.90617297e+01 8.87897230e+01 8.85183968e+01 8.82477510e+01 8.79777855e+01 + 8.77085002e+01 8.74398950e+01 8.71719697e+01 8.69047241e+01 8.66381581e+01 + 8.63722714e+01 8.61070638e+01 8.58425350e+01 8.55786849e+01 8.53155130e+01 + 8.50530192e+01 8.47912030e+01 8.45300641e+01 8.42696023e+01 8.40098170e+01 + 8.37507080e+01 8.34922748e+01 8.32345170e+01 8.29774342e+01 8.27210259e+01 + 8.24652916e+01 8.22102308e+01 8.19558432e+01 8.17021280e+01 8.14490849e+01 + 8.11967133e+01 8.09450125e+01 8.06939821e+01 8.04436215e+01 8.01939300e+01 + 7.99449070e+01 7.96965520e+01 7.94488642e+01 7.92018430e+01 7.89554878e+01 + 7.87097978e+01 7.84647724e+01 7.82204109e+01 7.79767125e+01 7.77336765e+01 + 7.74913023e+01 7.72495889e+01 7.70085357e+01 7.67681418e+01 7.65284066e+01 + 7.62893292e+01 7.60509087e+01 7.58131444e+01 7.55760354e+01 7.53395809e+01 + 7.51037800e+01 7.48686319e+01 7.46341358e+01 7.44002906e+01 7.41670955e+01 + 7.39345497e+01 7.37026521e+01 7.34714020e+01 7.32407983e+01 7.30108401e+01 + 7.27815265e+01 7.25528565e+01 7.23248291e+01 7.20974435e+01 7.18706985e+01 + 7.16445932e+01 7.14191266e+01 7.11942977e+01 7.09701055e+01 7.07465489e+01 + 7.05236270e+01 7.03013386e+01 7.00796828e+01 6.98586585e+01 6.96382647e+01 + 6.94185002e+01 6.91993640e+01 6.89808550e+01 6.87629722e+01 6.85457144e+01 + 6.83290806e+01 6.81130696e+01 6.78976804e+01 6.76829117e+01 6.74687626e+01 + 6.72552318e+01 6.70423183e+01 6.68300208e+01 6.66183384e+01 6.64072697e+01 + 6.61968136e+01 6.59869691e+01 6.57777348e+01 6.55691097e+01 6.53610926e+01 + 6.51536823e+01 6.49468776e+01 6.47406774e+01 6.45350803e+01 6.43300853e+01 + 6.41256912e+01 6.39218966e+01 6.37187005e+01 6.35161016e+01 6.33140987e+01 + 6.31126905e+01 6.29118759e+01 6.27116536e+01 6.25120224e+01 6.23129810e+01 + 6.21145283e+01 6.19166629e+01 6.17193836e+01 6.15226892e+01 6.13265785e+01 + 6.11310501e+01 6.09361028e+01 6.07417354e+01 6.05479465e+01 6.03547350e+01 + 6.01620996e+01 5.99700389e+01 5.97785518e+01 5.95876369e+01 5.93972930e+01 + 5.92075188e+01 5.90183130e+01 5.88296743e+01 5.86416014e+01 5.84540932e+01 + 5.82671481e+01 5.80807651e+01 5.78949427e+01 5.77096798e+01 5.75249749e+01 + 5.73408269e+01 5.71572343e+01 5.69741960e+01 5.67917105e+01 5.66097767e+01 + 5.64283931e+01 5.62475586e+01 5.60672718e+01 5.58875313e+01 5.57083359e+01 + 5.55296843e+01 5.53515752e+01 5.51740072e+01 5.49969790e+01 5.48204894e+01 + 5.46445370e+01 5.44691206e+01 5.42942387e+01 5.41198901e+01 5.39460735e+01 + 5.37727875e+01 5.36000309e+01 5.34278023e+01 5.32561004e+01 5.30849240e+01 + 5.29142716e+01 5.27441420e+01 5.25745339e+01 5.24054459e+01 5.22368767e+01 + 5.20688251e+01 5.19012896e+01 5.17342691e+01 5.15677621e+01 5.14017674e+01 + 5.12362836e+01 5.10713095e+01 5.09068437e+01 5.07428849e+01 5.05794318e+01 + 5.04164830e+01 5.02540374e+01 5.00920935e+01 4.99306501e+01 4.97697059e+01 + 4.96092595e+01 4.94493096e+01 4.92898550e+01 4.91308942e+01 4.89724261e+01 + 4.88144493e+01 4.86569626e+01 4.84999645e+01 4.83434539e+01 4.81874293e+01 + 4.80318896e+01 4.78768334e+01 4.77222594e+01 4.75681664e+01 4.74145529e+01 + 4.72614178e+01 4.71087598e+01 4.69565775e+01 4.68048696e+01 4.66536350e+01 + 4.65028722e+01 4.63525800e+01 4.62027572e+01 4.60534023e+01 4.59045143e+01 + 4.57560917e+01 4.56081333e+01 4.54606378e+01 4.53136040e+01 4.51670306e+01 + 4.50209162e+01 4.48752597e+01 4.47300597e+01 4.45853150e+01 4.44410244e+01 + 4.42971865e+01 4.41538001e+01 4.40108640e+01 4.38683768e+01 4.37263374e+01 + 4.35847444e+01 4.34435966e+01 4.33028929e+01 4.31626318e+01 4.30228122e+01 + 4.28834328e+01 4.27444924e+01 4.26059897e+01 4.24679235e+01 4.23302926e+01 + 4.21930956e+01 4.20563315e+01 4.19199989e+01 4.17840967e+01 4.16486235e+01 + 4.15135782e+01 4.13789595e+01 4.12447663e+01 4.11109973e+01 4.09776512e+01 + 4.08447269e+01 4.07122232e+01 4.05801387e+01 4.04484725e+01 4.03172231e+01 + 4.01863895e+01 4.00559704e+01 3.99259645e+01 3.97963709e+01 3.96671881e+01 + 3.95384150e+01 3.94100505e+01 3.92820933e+01 3.91545423e+01 3.90273962e+01 + 3.89006540e+01 3.87743143e+01 3.86483760e+01 3.85228381e+01 3.83976991e+01 + 3.82729581e+01 3.81486139e+01 3.80246652e+01 3.79011109e+01 3.77779498e+01 + 3.76551809e+01 3.75328028e+01 3.74108145e+01 3.72892149e+01 3.71680027e+01 + 3.70471769e+01 3.69267362e+01 3.68066795e+01 3.66870058e+01 3.65677138e+01 + 3.64488024e+01 3.63302705e+01 3.62121170e+01 3.60943407e+01 3.59769405e+01 + 3.58599153e+01 3.57432639e+01 3.56269853e+01 3.55110783e+01 3.53955418e+01 + 3.52803747e+01 3.51655759e+01 3.50511443e+01 3.49370788e+01 3.48233782e+01 + 3.47100416e+01 3.45970677e+01 3.44844555e+01 3.43722040e+01 3.42603119e+01 + 3.41487783e+01 3.40376020e+01 3.39267820e+01 3.38163172e+01 3.37062065e+01 + 3.35964488e+01 3.34870432e+01 3.33779884e+01 3.32692834e+01 3.31609272e+01 + 3.30529188e+01 3.29452570e+01 3.28379408e+01 3.27309691e+01 3.26243410e+01 + 3.25180553e+01 3.24121110e+01 3.23065071e+01 3.22012425e+01 3.20963161e+01 + 3.19917271e+01 3.18874742e+01 3.17835566e+01 3.16799731e+01 3.15767228e+01 + 3.14738046e+01 3.13712175e+01 3.12689604e+01 3.11670325e+01 3.10654326e+01 + 3.09641597e+01 3.08632129e+01 3.07625912e+01 3.06622934e+01 3.05623187e+01 + 3.04626661e+01 3.03633345e+01 3.02643230e+01 3.01656305e+01 3.00672562e+01 + 2.99691989e+01 2.98714578e+01 2.97740318e+01 2.96769199e+01 2.95801213e+01 + 2.94836349e+01 2.93874598e+01 2.92915949e+01 2.91960394e+01 2.91007922e+01 + 2.90058525e+01 2.89112192e+01 2.88168915e+01 2.87228682e+01 2.86291486e+01 + 2.85357317e+01 2.84426165e+01 2.83498020e+01 2.82572874e+01 2.81650717e+01 + 2.80731540e+01 2.79815334e+01 2.78902088e+01 2.77991795e+01 2.77084444e+01 + 2.76180027e+01 2.75278535e+01 2.74379957e+01 2.73484286e+01 2.72591511e+01 + 2.71701625e+01 2.70814617e+01 2.69930480e+01 2.69049203e+01 2.68170778e+01 + 2.67295196e+01 2.66422449e+01 2.65552526e+01 2.64685420e+01 2.63821121e+01 + 2.62959621e+01 2.62100910e+01 2.61244981e+01 2.60391824e+01 2.59541430e+01 + 2.58693792e+01 2.57848899e+01 2.57006744e+01 2.56167319e+01 2.55330613e+01 + 2.54496619e+01 2.53665329e+01 2.52836733e+01 2.52010823e+01 2.51187591e+01 + 2.50367028e+01 2.49549127e+01 2.48733877e+01 2.47921272e+01 2.47111302e+01 + 2.46303959e+01 2.45499236e+01 2.44697123e+01 2.43897613e+01 2.43100697e+01 + 2.42306367e+01 2.41514615e+01 2.40725433e+01 2.39938812e+01 2.39154744e+01 + 2.38373222e+01 2.37594237e+01 2.36817781e+01 2.36043846e+01 2.35272425e+01 + 2.34503509e+01 2.33737090e+01 2.32973160e+01 2.32211711e+01 2.31452736e+01 + 2.30696227e+01 2.29942176e+01 2.29190574e+01 2.28441415e+01 2.27694690e+01 + 2.26950391e+01 2.26208512e+01 2.25469044e+01 2.24731979e+01 2.23997310e+01 + 2.23265030e+01 2.22535130e+01 2.21807603e+01 2.21082441e+01 2.20359638e+01 + 2.19639185e+01 2.18921075e+01 2.18205300e+01 2.17491853e+01 2.16780727e+01 + 2.16071914e+01 2.15365407e+01 2.14661198e+01 2.13959280e+01 2.13259646e+01 + 2.12562288e+01 2.11867200e+01 2.11174373e+01 2.10483801e+01 2.09795476e+01 + 2.09109392e+01 2.08425541e+01 2.07743915e+01 2.07064508e+01 2.06387313e+01 + 2.05712323e+01 2.05039530e+01 2.04368928e+01 2.03700509e+01 2.03034266e+01 + 2.02370194e+01 2.01708283e+01 2.01048528e+01 2.00390922e+01 1.99735458e+01 + 1.99082129e+01 1.98430927e+01 1.97781847e+01 1.97134882e+01 1.96490024e+01 + 1.95847267e+01 1.95206604e+01 1.94568028e+01 1.93931533e+01 1.93297112e+01 + 1.92664759e+01 1.92034466e+01 1.91406227e+01 1.90780035e+01 1.90155885e+01 + 1.89533769e+01 1.88913680e+01 1.88295613e+01 1.87679561e+01 1.87065517e+01 + 1.86453474e+01 1.85843427e+01 1.85235369e+01 1.84629294e+01 1.84025194e+01 + 1.83423064e+01 1.82822898e+01 1.82224689e+01 1.81628431e+01 1.81034117e+01 + 1.80441741e+01 1.79851297e+01 1.79262779e+01 1.78676181e+01 1.78091496e+01 + 1.77508718e+01 1.76927841e+01 1.76348859e+01 1.75771766e+01 1.75196556e+01 + 1.74623222e+01 1.74051759e+01 1.73482160e+01 1.72914420e+01 1.72348532e+01 + 1.71784491e+01 1.71222290e+01 1.70661924e+01 1.70103386e+01 1.69546672e+01 + 1.68991774e+01 1.68438687e+01 1.67887405e+01 1.67337923e+01 1.66790234e+01 + 1.66244333e+01 1.65700214e+01 1.65157871e+01 1.64617298e+01 1.64078490e+01 + 1.63541441e+01 1.63006145e+01 1.62472597e+01 1.61940791e+01 1.61410721e+01 + 1.60882382e+01 1.60355768e+01 1.59830874e+01 1.59307693e+01 1.58786221e+01 + 1.58266452e+01 1.57748380e+01 1.57232000e+01 1.56717306e+01 1.56204294e+01 + 1.55692956e+01 1.55183289e+01 1.54675287e+01 1.54168943e+01 1.53664254e+01 + 1.53161213e+01 1.52659815e+01 1.52160055e+01 1.51661927e+01 1.51165427e+01 + 1.50670549e+01 1.50177287e+01 1.49685637e+01 1.49195593e+01 1.48707150e+01 + 1.48220303e+01 1.47735047e+01 1.47251376e+01 1.46769285e+01 1.46288769e+01 + 1.45809824e+01 1.45332444e+01 1.44856623e+01 1.44382358e+01 1.43909642e+01 + 1.43438471e+01 1.42968840e+01 1.42500743e+01 1.42034177e+01 1.41569135e+01 + 1.41105613e+01 1.40643606e+01 1.40183109e+01 1.39724117e+01 1.39266625e+01 + 1.38810629e+01 1.38356123e+01 1.37903103e+01 1.37451563e+01 1.37001500e+01 + 1.36552907e+01 1.36105781e+01 1.35660117e+01 1.35215910e+01 1.34773155e+01 + 1.34331847e+01 1.33891982e+01 1.33453555e+01 1.33016562e+01 1.32580997e+01 + 1.32146856e+01 1.31714135e+01 1.31282829e+01 1.30852932e+01 1.30424442e+01 + 1.29997352e+01 1.29571659e+01 1.29147358e+01 1.28724444e+01 1.28302914e+01 + 1.27882761e+01 1.27463983e+01 1.27046574e+01 1.26630530e+01 1.26215847e+01 + 1.25802519e+01 1.25390544e+01 1.24979916e+01 1.24570630e+01 1.24162684e+01 + 1.23756071e+01 1.23350789e+01 1.22946831e+01 1.22544196e+01 1.22142877e+01 + 1.21742870e+01 1.21344172e+01 1.20946778e+01 1.20550684e+01 1.20155886e+01 + 1.19762379e+01 1.19370159e+01 1.18979222e+01 1.18589564e+01 1.18201180e+01 + 1.17814067e+01 1.17428220e+01 1.17043636e+01 1.16660310e+01 1.16278237e+01 + 1.15897415e+01 1.15517839e+01 1.15139504e+01 1.14762407e+01 1.14386544e+01 + 1.14011910e+01 1.13638502e+01 1.13266316e+01 1.12895347e+01 1.12525593e+01 + 1.12157048e+01 1.11789708e+01 1.11423571e+01 1.11058632e+01 1.10694887e+01 + 1.10332332e+01 1.09970963e+01 1.09610777e+01 1.09251769e+01 1.08893936e+01 + 1.08537274e+01 1.08181779e+01 1.07827447e+01 1.07474275e+01 1.07122258e+01 + 1.06771394e+01 1.06421677e+01 1.06073105e+01 1.05725674e+01 1.05379379e+01 + 1.05034218e+01 1.04690187e+01 1.04347281e+01 1.04005498e+01 1.03664833e+01 + 1.03325283e+01 1.02986844e+01 1.02649513e+01 1.02313286e+01 1.01978159e+01 + 1.01644129e+01 1.01311193e+01 1.00979346e+01 1.00648585e+01 1.00318907e+01 + 9.99903076e+00 9.96627839e+00 9.93363322e+00 9.90109490e+00 9.86866308e+00 + 9.83614239e+00 9.80319678e+00 9.76982516e+00 9.73603257e+00 9.70182408e+00 + 9.66720477e+00 9.63217974e+00 9.59675413e+00 9.56093309e+00 9.52472178e+00 + 9.48812539e+00 9.45114912e+00 9.41379820e+00 9.37607786e+00 9.33799336e+00 + 9.29954996e+00 9.26075296e+00 9.22160764e+00 9.18211931e+00 9.14229331e+00 + 9.10213495e+00 9.06164959e+00 9.02084257e+00 8.97971926e+00 8.93828502e+00 + 8.89654524e+00 8.85450530e+00 8.81217059e+00 8.76954651e+00 8.72663845e+00 + 8.68345183e+00 8.63999205e+00 8.59626452e+00 8.55227466e+00 8.50802788e+00 + 8.46352960e+00 8.41878522e+00 8.37380017e+00 8.32857986e+00 8.28312970e+00 + 8.23745510e+00 8.19156147e+00 8.14545420e+00 8.09913868e+00 8.05262033e+00 + 8.00590451e+00 7.95899661e+00 7.91190200e+00 7.86462604e+00 7.81717409e+00 + 7.76955150e+00 7.72176361e+00 7.67381573e+00 7.62571320e+00 7.57746130e+00 + 7.52906535e+00 7.48053061e+00 7.43186235e+00 7.38306584e+00 7.33414631e+00 + 7.28510898e+00 7.23595907e+00 7.18670176e+00 7.13734225e+00 7.08788568e+00 + 7.03833721e+00 6.98870196e+00 6.93898503e+00 6.88919151e+00 6.83932648e+00 + 6.78939499e+00 6.73940205e+00 6.68935268e+00 6.63925187e+00 6.58910458e+00 + 6.53891575e+00 6.48869031e+00 6.43843314e+00 6.38814912e+00 6.33784310e+00 + 6.28751990e+00 6.23718433e+00 6.18684115e+00 6.13649511e+00 6.08615093e+00 + 6.03581331e+00 5.98548692e+00 5.93517639e+00 5.88488633e+00 5.83462134e+00 + 5.78438596e+00 5.73418472e+00 5.68402212e+00 5.63390262e+00 5.58383066e+00 + 5.53381065e+00 5.48384696e+00 5.43394394e+00 5.38410590e+00 5.33433712e+00 + 5.28464184e+00 5.23502429e+00 5.18548865e+00 5.13603907e+00 5.08667967e+00 + 5.03741453e+00 4.98824769e+00 4.93918318e+00 4.89022498e+00 4.84137703e+00 + 4.79264324e+00 4.74402749e+00 4.69553363e+00 4.64716544e+00 4.59892671e+00 + 4.55082117e+00 4.50285251e+00 4.45502439e+00 4.40734043e+00 4.35980422e+00 + 4.31241932e+00 4.26518921e+00 4.21811739e+00 4.17120729e+00 4.12446230e+00 + 4.07788579e+00 4.03148106e+00 3.98525142e+00 3.93920009e+00 3.89333028e+00 + 3.84764517e+00 3.80214787e+00 3.75684147e+00 3.71172903e+00 3.66681354e+00 + 3.62209799e+00 3.57758528e+00 3.53327833e+00 3.48917997e+00 3.44529302e+00 + 3.40162024e+00 3.35816437e+00 3.31492809e+00 3.27191405e+00 3.22912486e+00 + 3.18656308e+00 3.14423125e+00 3.10213185e+00 3.06026733e+00 3.01864009e+00 + 2.97725249e+00 2.93610687e+00 2.89520550e+00 2.85455062e+00 2.81414444e+00 + 2.77398912e+00 2.73408678e+00 2.69443950e+00 2.65504931e+00 2.61591822e+00 + 2.57704818e+00 2.53844110e+00 2.50009887e+00 2.46202332e+00 2.42421623e+00 + 2.38667938e+00 2.34941446e+00 2.31242315e+00 2.27570709e+00 2.23926786e+00 + 2.20310702e+00 2.16722608e+00 2.13162650e+00 2.09630973e+00 2.06127714e+00 + 2.02653009e+00 1.99206990e+00 1.95789783e+00 1.92401511e+00 1.89042294e+00 + 1.85712247e+00 1.82411481e+00 1.79140103e+00 1.75898217e+00 1.72685923e+00 + 1.69503316e+00 1.66350488e+00 1.63227527e+00 1.60134517e+00 1.57071538e+00 + 1.54038667e+00 1.51035976e+00 1.48063534e+00 1.45121406e+00 1.42209654e+00 + 1.39328335e+00 1.36477502e+00 1.33657207e+00 1.30867494e+00 1.28108408e+00 + 1.25379988e+00 1.22682267e+00 1.20015280e+00 1.17379052e+00 1.14773611e+00 + 1.12198975e+00 1.09655164e+00 1.07142191e+00 1.04660066e+00 1.02208796e+00 + 9.97883860e-01 9.73988350e-01 9.50401399e-01 9.27122941e-01 9.04152875e-01 + 8.81491067e-01 8.59137350e-01 8.37091523e-01 8.15353353e-01 7.93922575e-01 + 7.72798890e-01 7.51981967e-01 7.31471445e-01 7.11266929e-01 6.91367995e-01 + 6.71774185e-01 6.52485014e-01 6.33499962e-01 6.14818482e-01 5.96439995e-01 + 5.78363892e-01 5.60589536e-01 5.43116259e-01 5.25943365e-01 5.09070129e-01 + 4.92495797e-01 4.76219586e-01 4.60240687e-01 4.44558262e-01 4.29171445e-01 + 4.14079344e-01 3.99281039e-01 3.84775584e-01 3.70562007e-01 3.56639309e-01 + 3.43006466e-01 3.29662427e-01 3.16606118e-01 3.03836438e-01 2.91352263e-01 + 2.79152444e-01 2.67235806e-01 2.55601154e-01 2.44247267e-01 2.33172900e-01 + 2.22376787e-01 2.11857640e-01 2.01614145e-01 1.91644970e-01 1.81948759e-01 + 1.72524135e-01 1.63369700e-01 1.54484036e-01 1.45865702e-01 1.37513239e-01 + 1.29425168e-01 1.21599989e-01 1.14036184e-01 1.06732215e-01 9.96865252e-02 + 9.28975401e-02 8.63636667e-02 8.00832940e-02 7.40547937e-02 6.82765202e-02 + 6.27468109e-02 5.74639865e-02 5.24263517e-02 4.76321948e-02 4.30797886e-02 + 3.87673904e-02 3.46932424e-02 3.08555720e-02 2.72525920e-02 2.38825011e-02 + 2.07434841e-02 1.78337121e-02 1.51513430e-02 1.26945216e-02 1.04613800e-02 + 8.45003801e-03 6.65860321e-03 5.08517143e-03 3.72782701e-03 2.58464306e-03 + 1.65368178e-03 9.32994753e-04 4.20623265e-04 1.14598566e-04 1.29421836e-05 + 1.42532190e+04 1.42532190e+04 8.35034822e+03 5.54302535e+03 4.13949198e+03 + 3.29747342e+03 2.73621144e+03 2.33538110e+03 2.03481994e+03 1.80110437e+03 + 1.61418025e+03 1.46128584e+03 1.33391334e+03 1.22617273e+03 1.13385685e+03 + 1.05388046e+03 9.83929637e+02 9.22234903e+02 8.67420006e+02 8.18398433e+02 + 7.74300975e+02 7.34423991e+02 6.98191774e+02 6.65128743e+02 6.34838584e+02 + 6.06988393e+02 5.81296485e+02 5.57522906e+02 5.35461985e+02 5.14936419e+02 + 4.95792548e+02 4.77896540e+02 4.61131293e+02 4.45393901e+02 4.30593565e+02 + 4.16649865e+02 4.03491318e+02 3.91054168e+02 3.79281373e+02 3.68121742e+02 + 3.57529204e+02 3.47462184e+02 3.37883066e+02 3.28757736e+02 3.20055180e+02 + 3.11747144e+02 3.03807830e+02 2.96213636e+02 2.88942929e+02 2.81975842e+02 + 2.75294097e+02 2.68880852e+02 2.62720560e+02 2.56798848e+02 2.51102410e+02 + 2.45618906e+02 2.40336878e+02 2.35245675e+02 2.30335379e+02 2.25596746e+02 + 2.21021147e+02 2.16600522e+02 2.12327330e+02 2.08194509e+02 2.04195440e+02 + 2.00323909e+02 1.96574084e+02 1.92940476e+02 1.89417923e+02 1.86001562e+02 + 1.82686808e+02 1.79469334e+02 1.76345054e+02 1.73310107e+02 1.70360841e+02 + 1.67493798e+02 1.64705704e+02 1.61993454e+02 1.59354103e+02 1.56784856e+02 + 1.54283057e+02 1.51846183e+02 1.49471832e+02 1.47157720e+02 1.44901673e+02 + 1.42701615e+02 1.40555573e+02 1.38461660e+02 1.36418077e+02 1.34423107e+02 + 1.32475108e+02 1.30572512e+02 1.28713816e+02 1.26897587e+02 1.25122449e+02 + 1.23387086e+02 1.21690237e+02 1.20030692e+02 1.18407293e+02 1.16818927e+02 + 1.15264525e+02 1.13743063e+02 1.12253557e+02 1.10795059e+02 1.09366659e+02 + 1.07967484e+02 1.06596690e+02 1.05253468e+02 1.03937038e+02 1.02646649e+02 + 1.01381577e+02 1.00141124e+02 9.89246189e+01 9.77314125e+01 9.65608793e+01 + 9.54124160e+01 9.42854397e+01 9.31793879e+01 9.20937174e+01 9.10279032e+01 + 8.99814378e+01 8.89538311e+01 8.79446087e+01 8.69533121e+01 8.59794975e+01 + 8.50227355e+01 8.40826106e+01 8.31587203e+01 8.22506749e+01 8.13580969e+01 + 8.04806206e+01 7.96178913e+01 7.87695656e+01 7.79353102e+01 7.71148019e+01 + 7.63077273e+01 7.55137824e+01 7.47326719e+01 7.39641093e+01 7.32078166e+01 + 7.24635236e+01 7.17309679e+01 7.10098949e+01 7.03000567e+01 6.96012128e+01 + 6.89131293e+01 6.82355787e+01 6.75683399e+01 6.69111977e+01 6.62639431e+01 + 6.56263723e+01 6.49982874e+01 6.43794956e+01 6.37698091e+01 6.31690453e+01 + 6.25770263e+01 6.19935787e+01 6.14185338e+01 6.08517272e+01 6.02929986e+01 + 5.97421918e+01 5.91991547e+01 5.86637390e+01 5.81357998e+01 5.76151962e+01 + 5.71017906e+01 5.65954489e+01 5.60960400e+01 5.56034362e+01 5.51175129e+01 + 5.46381485e+01 5.41652242e+01 5.36986241e+01 5.32382349e+01 5.27839462e+01 + 5.23356501e+01 5.18932410e+01 5.14566160e+01 5.10256745e+01 5.06003182e+01 + 5.01804510e+01 4.97659789e+01 4.93568102e+01 4.89528552e+01 4.85540261e+01 + 4.81602371e+01 4.77714044e+01 4.73874459e+01 4.70082813e+01 4.66338322e+01 + 4.62640217e+01 4.58987746e+01 4.55380174e+01 4.51816782e+01 4.48296865e+01 + 4.44819732e+01 4.41384709e+01 4.37991135e+01 4.34638362e+01 4.31325757e+01 + 4.28052699e+01 4.24818579e+01 4.21622802e+01 4.18464784e+01 4.15343953e+01 + 4.12259749e+01 4.09211624e+01 4.06199038e+01 4.03221464e+01 4.00278386e+01 + 3.97369296e+01 3.94493698e+01 3.91651104e+01 3.88841037e+01 3.86063027e+01 + 3.83316615e+01 3.80601351e+01 3.77916792e+01 3.75262504e+01 3.72638062e+01 + 3.70043048e+01 3.67477053e+01 3.64939673e+01 3.62430514e+01 3.59949189e+01 + 3.57495317e+01 3.55068525e+01 3.52668446e+01 3.50294720e+01 3.47946994e+01 + 3.45624920e+01 3.43328158e+01 3.41056372e+01 3.38809233e+01 3.36586419e+01 + 3.34387612e+01 3.32212499e+01 3.30060774e+01 3.27932136e+01 3.25826288e+01 + 3.23742940e+01 3.21681806e+01 3.19642604e+01 3.17625057e+01 3.15628894e+01 + 3.13653847e+01 3.11699654e+01 3.09766056e+01 3.07852799e+01 3.05959632e+01 + 3.04086309e+01 3.02232588e+01 3.00398232e+01 2.98583005e+01 2.96786677e+01 + 2.95009021e+01 2.93249814e+01 2.91508835e+01 2.89785868e+01 2.88080701e+01 + 2.86393122e+01 2.84722926e+01 2.83069909e+01 2.81433870e+01 2.79814613e+01 + 2.78211942e+01 2.76625666e+01 2.75055597e+01 2.73501548e+01 2.71963336e+01 + 2.70440781e+01 2.68933704e+01 2.67441931e+01 2.65965287e+01 2.64503604e+01 + 2.63056711e+01 2.61624445e+01 2.60206641e+01 2.58803138e+01 2.57413777e+01 + 2.56038401e+01 2.54676856e+01 2.53328988e+01 2.51994647e+01 2.50673684e+01 + 2.49365953e+01 2.48071308e+01 2.46789607e+01 2.45520708e+01 2.44264471e+01 + 2.43020760e+01 2.41789438e+01 2.40570371e+01 2.39363426e+01 2.38168472e+01 + 2.36985380e+01 2.35814021e+01 2.34654270e+01 2.33506000e+01 2.32369090e+01 + 2.31243415e+01 2.30128857e+01 2.29025295e+01 2.27932611e+01 2.26850689e+01 + 2.25779413e+01 2.24718668e+01 2.23668342e+01 2.22628324e+01 2.21598501e+01 + 2.20578765e+01 2.19569007e+01 2.18569121e+01 2.17578999e+01 2.16598537e+01 + 2.15627630e+01 2.14666176e+01 2.13714072e+01 2.12771217e+01 2.11837511e+01 + 2.10912855e+01 2.09997150e+01 2.09090298e+01 2.08192204e+01 2.07302772e+01 + 2.06421906e+01 2.05549512e+01 2.04685498e+01 2.03829771e+01 2.02982239e+01 + 2.02142812e+01 2.01311398e+01 2.00487910e+01 1.99672258e+01 1.98864354e+01 + 1.98064111e+01 1.97271442e+01 1.96486262e+01 1.95708485e+01 1.94938027e+01 + 1.94174804e+01 1.93418732e+01 1.92669729e+01 1.91927713e+01 1.91192603e+01 + 1.90464316e+01 1.89742774e+01 1.89027897e+01 1.88319605e+01 1.87617819e+01 + 1.86922463e+01 1.86233458e+01 1.85550727e+01 1.84874195e+01 1.84203785e+01 + 1.83539421e+01 1.82881030e+01 1.82228537e+01 1.81581868e+01 1.80940949e+01 + 1.80305708e+01 1.79676074e+01 1.79051973e+01 1.78433334e+01 1.77820088e+01 + 1.77212163e+01 1.76609489e+01 1.76011998e+01 1.75419620e+01 1.74832287e+01 + 1.74249931e+01 1.73672484e+01 1.73099880e+01 1.72532052e+01 1.71968933e+01 + 1.71410459e+01 1.70856564e+01 1.70307183e+01 1.69762252e+01 1.69221707e+01 + 1.68685486e+01 1.68153525e+01 1.67625761e+01 1.67102134e+01 1.66582581e+01 + 1.66067041e+01 1.65555455e+01 1.65047762e+01 1.64543902e+01 1.64043816e+01 + 1.63547447e+01 1.63054735e+01 1.62565623e+01 1.62080053e+01 1.61597970e+01 + 1.61119317e+01 1.60644038e+01 1.60172077e+01 1.59703381e+01 1.59237895e+01 + 1.58775564e+01 1.58316337e+01 1.57860159e+01 1.57406980e+01 1.56956746e+01 + 1.56509407e+01 1.56064912e+01 1.55623210e+01 1.55184252e+01 1.54747989e+01 + 1.54314371e+01 1.53883351e+01 1.53454881e+01 1.53028914e+01 1.52605403e+01 + 1.52184302e+01 1.51765565e+01 1.51349148e+01 1.50935005e+01 1.50523092e+01 + 1.50113367e+01 1.49705786e+01 1.49300307e+01 1.48896888e+01 1.48495487e+01 + 1.48096064e+01 1.47698579e+01 1.47302991e+01 1.46909262e+01 1.46517353e+01 + 1.46127226e+01 1.45738843e+01 1.45352167e+01 1.44967163e+01 1.44583793e+01 + 1.44202022e+01 1.43821817e+01 1.43443142e+01 1.43065963e+01 1.42690248e+01 + 1.42315964e+01 1.41943079e+01 1.41571561e+01 1.41201380e+01 1.40832504e+01 + 1.40464903e+01 1.40098550e+01 1.39733414e+01 1.39369467e+01 1.39006681e+01 + 1.38645030e+01 1.38284486e+01 1.37925024e+01 1.37566617e+01 1.37209240e+01 + 1.36852870e+01 1.36497481e+01 1.36143050e+01 1.35789554e+01 1.35436970e+01 + 1.35085277e+01 1.34734452e+01 1.34384476e+01 1.34035326e+01 1.33686983e+01 + 1.33339428e+01 1.32992641e+01 1.32646604e+01 1.32301299e+01 1.31956707e+01 + 1.31612811e+01 1.31269596e+01 1.30927044e+01 1.30585140e+01 1.30243869e+01 + 1.29903215e+01 1.29563163e+01 1.29223701e+01 1.28884813e+01 1.28546488e+01 + 1.28208712e+01 1.27871473e+01 1.27534759e+01 1.27198558e+01 1.26862859e+01 + 1.26527651e+01 1.26192925e+01 1.25858669e+01 1.25524875e+01 1.25191534e+01 + 1.24858635e+01 1.24526171e+01 1.24194134e+01 1.23862516e+01 1.23531309e+01 + 1.23200507e+01 1.22870102e+01 1.22540087e+01 1.22210458e+01 1.21881208e+01 + 1.21552331e+01 1.21223823e+01 1.20895678e+01 1.20567892e+01 1.20240460e+01 + 1.19913379e+01 1.19586644e+01 1.19260252e+01 1.18934200e+01 1.18608486e+01 + 1.18283105e+01 1.17958056e+01 1.17633336e+01 1.17308944e+01 1.16984877e+01 + 1.16661134e+01 1.16337715e+01 1.16014616e+01 1.15691839e+01 1.15369381e+01 + 1.15047243e+01 1.14725424e+01 1.14403924e+01 1.14082743e+01 1.13761882e+01 + 1.13441340e+01 1.13121118e+01 1.12801217e+01 1.12481638e+01 1.12162382e+01 + 1.11843451e+01 1.11524844e+01 1.11206564e+01 1.10888613e+01 1.10570992e+01 + 1.10253702e+01 1.09936747e+01 1.09620128e+01 1.09303847e+01 1.08987906e+01 + 1.08672309e+01 1.08357056e+01 1.08042152e+01 1.07727598e+01 1.07413398e+01 + 1.07099554e+01 1.06786069e+01 1.06472947e+01 1.06160189e+01 1.05847800e+01 + 1.05535783e+01 1.05224140e+01 1.04912875e+01 1.04601992e+01 1.04291494e+01 + 1.03981385e+01 1.03671667e+01 1.03362344e+01 1.03053421e+01 1.02744901e+01 + 1.02436786e+01 1.02129082e+01 1.01821791e+01 1.01514918e+01 1.01208466e+01 + 1.00902439e+01 1.00596841e+01 1.00291676e+01 9.99869465e+00 9.96826576e+00 + 9.93788127e+00 9.90754156e+00 9.87724703e+00 9.84699806e+00 9.81679503e+00 + 9.78663832e+00 9.75652833e+00 9.72646541e+00 9.69644998e+00 9.66648239e+00 + 9.63656303e+00 9.60669228e+00 9.57687051e+00 9.54709811e+00 9.51737543e+00 + 9.48770285e+00 9.45808075e+00 9.42850948e+00 9.39898941e+00 9.36952091e+00 + 9.34010432e+00 9.31074002e+00 9.28142834e+00 9.25216964e+00 9.22296427e+00 + 9.19381257e+00 9.16471488e+00 9.13567154e+00 9.10668288e+00 9.07774924e+00 + 9.04887094e+00 9.02004831e+00 8.99128166e+00 8.96257131e+00 8.93391757e+00 + 8.90532075e+00 8.87678116e+00 8.84829910e+00 8.81987485e+00 8.79150872e+00 + 8.76320099e+00 8.73495195e+00 8.70676187e+00 8.67863103e+00 8.65055970e+00 + 8.62254815e+00 8.59459664e+00 8.56670543e+00 8.53887477e+00 8.51110492e+00 + 8.48339611e+00 8.45574859e+00 8.42816259e+00 8.40063835e+00 8.37317608e+00 + 8.34577603e+00 8.31843839e+00 8.29116339e+00 8.26395124e+00 8.23680214e+00 + 8.20971629e+00 8.18269388e+00 8.15573511e+00 8.12884017e+00 8.10200923e+00 + 8.07524248e+00 8.04854008e+00 8.02190221e+00 7.99532904e+00 7.96882072e+00 + 7.94237740e+00 7.91599925e+00 7.88968640e+00 7.86343901e+00 7.83725720e+00 + 7.81114112e+00 7.78509089e+00 7.75910664e+00 7.73318849e+00 7.70733656e+00 + 7.68155097e+00 7.65583181e+00 7.63017921e+00 7.60459325e+00 7.57907404e+00 + 7.55362167e+00 7.52823623e+00 7.50291780e+00 7.47766647e+00 7.45248231e+00 + 7.42736540e+00 7.40231580e+00 7.37733359e+00 7.35241882e+00 7.32757156e+00 + 7.30279186e+00 7.27807976e+00 7.25343533e+00 7.22885860e+00 7.20434961e+00 + 7.17990840e+00 7.15553501e+00 7.13122946e+00 7.10699178e+00 7.08282200e+00 + 7.05872014e+00 7.03468621e+00 7.01072022e+00 6.98682220e+00 6.96299214e+00 + 6.93923004e+00 6.91553592e+00 6.89190977e+00 6.86835159e+00 6.84486136e+00 + 6.82143907e+00 6.79808472e+00 6.77479828e+00 6.75157975e+00 6.72842908e+00 + 6.70534627e+00 6.68233128e+00 6.65938408e+00 6.63650464e+00 6.61369293e+00 + 6.59094890e+00 6.56827252e+00 6.54566374e+00 6.52312252e+00 6.50064881e+00 + 6.47824255e+00 6.45590371e+00 6.43363221e+00 6.41142801e+00 6.38929105e+00 + 6.36722125e+00 6.34521857e+00 6.32328293e+00 6.30141427e+00 6.27961251e+00 + 6.25787758e+00 6.23620941e+00 6.21460793e+00 6.19307305e+00 6.17160469e+00 + 6.15020277e+00 6.12886721e+00 6.10759793e+00 6.08639483e+00 6.06525782e+00 + 6.04418682e+00 6.02318173e+00 6.00224246e+00 5.98136891e+00 5.96056098e+00 + 5.93981858e+00 5.91914161e+00 5.89852995e+00 5.87798352e+00 5.85750219e+00 + 5.83708588e+00 5.81673446e+00 5.79644783e+00 5.77622588e+00 5.75606849e+00 + 5.73597556e+00 5.71594697e+00 5.69598259e+00 5.67608233e+00 5.65624605e+00 + 5.63647363e+00 5.61676497e+00 5.59711992e+00 5.57753838e+00 5.55802022e+00 + 5.53856531e+00 5.51917352e+00 5.49984474e+00 5.48057882e+00 5.46137565e+00 + 5.44223509e+00 5.42315701e+00 5.40414129e+00 5.38518777e+00 5.36629635e+00 + 5.34746687e+00 5.32869920e+00 5.30999322e+00 5.29134877e+00 5.27276573e+00 + 5.25424395e+00 5.23578330e+00 5.21738364e+00 5.19904482e+00 5.18076671e+00 + 5.16254917e+00 5.14439204e+00 5.12629520e+00 5.10825849e+00 5.09028177e+00 + 5.07236490e+00 5.05450773e+00 5.03671012e+00 5.01897192e+00 5.00129298e+00 + 4.98367316e+00 4.96611231e+00 4.94861028e+00 4.93116692e+00 4.91378209e+00 + 4.89645563e+00 4.87918740e+00 4.86197724e+00 4.84482501e+00 4.82773055e+00 + 4.81069372e+00 4.79371436e+00 4.77679233e+00 4.75992746e+00 4.74311961e+00 + 4.72636862e+00 4.70967435e+00 4.69303663e+00 4.67645533e+00 4.65993027e+00 + 4.64346132e+00 4.62704831e+00 4.61069110e+00 4.59438952e+00 4.57814343e+00 + 4.56195267e+00 4.54581708e+00 4.52973652e+00 4.51371082e+00 4.49773984e+00 + 4.48182341e+00 4.46596139e+00 4.45015361e+00 4.43439993e+00 4.41870018e+00 + 4.40305422e+00 4.38746188e+00 4.37192301e+00 4.35643746e+00 4.34100508e+00 + 4.32562570e+00 4.31029917e+00 4.29502534e+00 4.27980405e+00 4.26463514e+00 + 4.24951847e+00 4.23445387e+00 4.21944120e+00 4.20448029e+00 4.18957099e+00 + 4.17471315e+00 4.15990661e+00 4.14515122e+00 4.13044682e+00 4.11579326e+00 + 4.10119038e+00 4.08663804e+00 4.07213607e+00 4.05768433e+00 4.04328265e+00 + 4.02893089e+00 4.01462889e+00 4.00037650e+00 3.98617357e+00 3.97201993e+00 + 3.95791545e+00 3.94385997e+00 3.92985333e+00 3.91589538e+00 3.90198597e+00 + 3.88812495e+00 3.87431217e+00 3.86054747e+00 3.84683071e+00 3.83316173e+00 + 3.81954038e+00 3.80596652e+00 3.79243998e+00 3.77896063e+00 3.76552831e+00 + 3.75214287e+00 3.73880416e+00 3.72551204e+00 3.71226635e+00 3.69906694e+00 + 3.68591367e+00 3.67280639e+00 3.65974495e+00 3.64672921e+00 3.63375901e+00 + 3.62083421e+00 3.60795466e+00 3.59512021e+00 3.58233073e+00 3.56958605e+00 + 3.55688605e+00 3.54423056e+00 3.53161946e+00 3.51905258e+00 3.50652979e+00 + 3.49405095e+00 3.48161590e+00 3.46922451e+00 3.45687663e+00 3.44457213e+00 + 3.43231084e+00 3.42009264e+00 3.40791739e+00 3.39578493e+00 3.38369513e+00 + 3.37164785e+00 3.35964295e+00 3.34768028e+00 3.33575971e+00 3.32388109e+00 + 3.31204429e+00 3.30024917e+00 3.28849559e+00 3.27678341e+00 3.26511249e+00 + 3.25348269e+00 3.24189388e+00 3.23034592e+00 3.21883867e+00 3.20737200e+00 + 3.19594577e+00 3.18455984e+00 3.17321408e+00 3.16190835e+00 3.15064252e+00 + 3.13941646e+00 3.12823003e+00 3.11708309e+00 3.10597552e+00 3.09490717e+00 + 3.08387793e+00 3.07288764e+00 3.06193620e+00 3.05102345e+00 3.04014927e+00 + 3.02931353e+00 3.01851611e+00 3.00775685e+00 2.99703565e+00 2.98635237e+00 + 2.97570688e+00 2.96509904e+00 2.95452874e+00 2.94399585e+00 2.93350023e+00 + 2.92304176e+00 2.91262032e+00 2.90223577e+00 2.89188799e+00 2.88157685e+00 + 2.87130223e+00 2.86106401e+00 2.85086205e+00 2.84069624e+00 2.83056645e+00 + 2.82047255e+00 2.81041442e+00 2.80039195e+00 2.79040500e+00 2.78045345e+00 + 2.77053719e+00 2.76065609e+00 2.75081003e+00 2.74099889e+00 2.73122254e+00 + 2.72148088e+00 2.71177377e+00 2.70210110e+00 2.69246275e+00 2.68285861e+00 + 2.67328854e+00 2.66375244e+00 2.65425019e+00 2.64478167e+00 2.63534676e+00 + 2.62594535e+00 2.61657732e+00 2.60724255e+00 2.59794093e+00 2.58867235e+00 + 2.57943668e+00 2.57023382e+00 2.56106365e+00 2.55192606e+00 2.54282093e+00 + 2.53374816e+00 2.52470762e+00 2.51569920e+00 2.50672280e+00 2.49777830e+00 + 2.48886559e+00 2.47998457e+00 2.47113511e+00 2.46231711e+00 2.45353046e+00 + 2.44477506e+00 2.43605078e+00 2.42735752e+00 2.41869518e+00 2.41006365e+00 + 2.40146281e+00 2.39289257e+00 2.38435280e+00 2.37584342e+00 2.36736430e+00 + 2.35891535e+00 2.35049646e+00 2.34210752e+00 2.33374843e+00 2.32541909e+00 + 2.31711938e+00 2.30884921e+00 2.30060847e+00 2.29239706e+00 2.28421488e+00 + 2.27606182e+00 2.26793778e+00 2.25984266e+00 2.25177636e+00 2.24373877e+00 + 2.23572980e+00 2.22774934e+00 2.21979730e+00 2.21187357e+00 2.20397806e+00 + 2.19611066e+00 2.18827128e+00 2.18045982e+00 2.17267618e+00 2.16492026e+00 + 2.15719196e+00 2.14949119e+00 2.14181785e+00 2.13417184e+00 2.12655307e+00 + 2.11896144e+00 2.11139686e+00 2.10385922e+00 2.09634844e+00 2.08886442e+00 + 2.08140707e+00 2.07397629e+00 2.06657198e+00 2.05919406e+00 2.05184243e+00 + 2.04451700e+00 2.03721767e+00 2.02994436e+00 2.02269697e+00 2.01547541e+00 + 2.00827959e+00 2.00110941e+00 1.99396479e+00 1.98684564e+00 1.97975187e+00 + 1.97268338e+00 1.96564009e+00 1.95862191e+00 1.95162875e+00 1.94466051e+00 + 1.93771713e+00 1.93079849e+00 1.92390453e+00 1.91703514e+00 1.91019025e+00 + 1.90336976e+00 1.89657359e+00 1.88980166e+00 1.88305387e+00 1.87633015e+00 + 1.86963040e+00 1.86295454e+00 1.85630249e+00 1.84967417e+00 1.84306948e+00 + 1.83648835e+00 1.82993069e+00 1.82339642e+00 1.81688545e+00 1.81039771e+00 + 1.80393311e+00 1.79749156e+00 1.79107300e+00 1.78467732e+00 1.77830446e+00 + 1.77195434e+00 1.76562686e+00 1.75932196e+00 1.75303955e+00 1.74677955e+00 + 1.74054188e+00 1.73432647e+00 1.72813323e+00 1.72196208e+00 1.71581295e+00 + 1.70968576e+00 1.70358043e+00 1.69749689e+00 1.69143505e+00 1.68539483e+00 + 1.67937617e+00 1.67337899e+00 1.66740320e+00 1.66144874e+00 1.65551552e+00 + 1.64960347e+00 1.64371252e+00 1.63784260e+00 1.63199361e+00 1.62616550e+00 + 1.62035819e+00 1.61457160e+00 1.60880567e+00 1.60306030e+00 1.59733545e+00 + 1.59163102e+00 1.58594695e+00 1.58028317e+00 1.57463960e+00 1.56901617e+00 + 1.56341281e+00 1.55782945e+00 1.55226601e+00 1.54672244e+00 1.54119865e+00 + 1.53569457e+00 1.53021014e+00 1.52474528e+00 1.51929993e+00 1.51387402e+00 + 1.50846747e+00 1.50308023e+00 1.49771221e+00 1.49236335e+00 1.48703358e+00 + 1.48172284e+00 1.47643106e+00 1.47115816e+00 1.46590409e+00 1.46066878e+00 + 1.45545215e+00 1.45025414e+00 1.44507469e+00 1.43991373e+00 1.43477119e+00 + 1.42964701e+00 1.42454112e+00 1.41945346e+00 1.41438397e+00 1.40933257e+00 + 1.40429920e+00 1.39928380e+00 1.39428631e+00 1.38930666e+00 1.38434479e+00 + 1.37940063e+00 1.37447412e+00 1.36956521e+00 1.36467381e+00 1.35979988e+00 + 1.35494335e+00 1.35010416e+00 1.34528225e+00 1.34047755e+00 1.33569001e+00 + 1.33091956e+00 1.32616615e+00 1.32142970e+00 1.31671017e+00 1.31200748e+00 + 1.30732159e+00 1.30265243e+00 1.29799993e+00 1.29336405e+00 1.28874473e+00 + 1.28414189e+00 1.27955549e+00 1.27498547e+00 1.27043177e+00 1.26589432e+00 + 1.26137308e+00 1.25686798e+00 1.25237896e+00 1.24790598e+00 1.24344896e+00 + 1.23900786e+00 1.23458262e+00 1.23017318e+00 1.22577949e+00 1.22140148e+00 + 1.21703911e+00 1.21269231e+00 1.20836104e+00 1.20404523e+00 1.19974484e+00 + 1.19545980e+00 1.19119006e+00 1.18693557e+00 1.18269627e+00 1.17847210e+00 + 1.17426303e+00 1.17006898e+00 1.16588991e+00 1.16172576e+00 1.15757649e+00 + 1.15344203e+00 1.14932233e+00 1.14521735e+00 1.14112702e+00 1.13705130e+00 + 1.13299014e+00 1.12894348e+00 1.12491127e+00 1.12089346e+00 1.11689000e+00 + 1.11290083e+00 1.10892591e+00 1.10496519e+00 1.10101861e+00 1.09708612e+00 + 1.09316768e+00 1.08926323e+00 1.08537272e+00 1.08149611e+00 1.07763334e+00 + 1.07378437e+00 1.06994914e+00 1.06612761e+00 1.06231972e+00 1.05852544e+00 + 1.05474470e+00 1.05097747e+00 1.04722369e+00 1.04348332e+00 1.03975630e+00 + 1.03604260e+00 1.03234216e+00 1.02865493e+00 1.02498087e+00 1.02131993e+00 + 1.01767207e+00 1.01403724e+00 1.01041538e+00 1.00680646e+00 1.00321043e+00 + 9.99627246e-01 9.96056856e-01 9.92499216e-01 9.88954283e-01 9.85422010e-01 + 9.81902352e-01 9.78395264e-01 9.74900702e-01 9.71418620e-01 9.67948974e-01 + 9.64491719e-01 9.61046812e-01 9.57614208e-01 9.54193864e-01 9.50785735e-01 + 9.47389779e-01 9.44005950e-01 9.40634207e-01 9.37274506e-01 9.33926805e-01 + 9.30591059e-01 9.27267227e-01 9.23955266e-01 9.20655134e-01 9.17366788e-01 + 9.14090187e-01 9.10825288e-01 9.07572050e-01 9.04330430e-01 9.01100389e-01 + 8.97881883e-01 8.94674872e-01 8.91479316e-01 8.88295172e-01 8.85122401e-01 + 8.81960962e-01 8.78810814e-01 8.75671916e-01 8.72544230e-01 8.69427714e-01 + 8.66322329e-01 8.63228035e-01 8.60144793e-01 8.57072563e-01 8.54011306e-01 + 8.50960982e-01 8.47921552e-01 8.44892979e-01 8.41875222e-01 8.38868243e-01 + 8.35872004e-01 8.32886467e-01 8.29911592e-01 8.26947343e-01 8.23993681e-01 + 8.21050568e-01 8.18117967e-01 8.15195841e-01 8.12284151e-01 8.09382860e-01 + 8.06491932e-01 8.03611329e-01 8.00741015e-01 7.97880952e-01 7.95031104e-01 + 7.92191436e-01 7.89361909e-01 7.86542489e-01 7.83733138e-01 7.80932737e-01 + 7.78135481e-01 7.75340559e-01 7.72548015e-01 7.69757898e-01 7.66970253e-01 + 7.64185126e-01 7.61402562e-01 7.58622607e-01 7.55845306e-01 7.53070703e-01 + 7.50298843e-01 7.47529769e-01 7.44763525e-01 7.42000155e-01 7.39239702e-01 + 7.36482208e-01 7.33727716e-01 7.30976267e-01 7.28227905e-01 7.25482670e-01 + 7.22740604e-01 7.20001747e-01 7.17266140e-01 7.14533823e-01 7.11804837e-01 + 7.09079221e-01 7.06357014e-01 7.03638256e-01 7.00922986e-01 6.98211241e-01 + 6.95503060e-01 6.92798481e-01 6.90097542e-01 6.87400280e-01 6.84706731e-01 + 6.82016933e-01 6.79330922e-01 6.76648734e-01 6.73970405e-01 6.71295970e-01 + 6.68625464e-01 6.65958924e-01 6.63296382e-01 6.60637874e-01 6.57983434e-01 + 6.55333095e-01 6.52686890e-01 6.50044854e-01 6.47407019e-01 6.44773417e-01 + 6.42144081e-01 6.39519042e-01 6.36898334e-01 6.34281986e-01 6.31670031e-01 + 6.29062499e-01 6.26459420e-01 6.23860826e-01 6.21266746e-01 6.18677209e-01 + 6.16092246e-01 6.13511886e-01 6.10936157e-01 6.08365088e-01 6.05798708e-01 + 6.03237045e-01 6.00680126e-01 5.98127979e-01 5.95580631e-01 5.93038110e-01 + 5.90500441e-01 5.87967652e-01 5.85439769e-01 5.82916817e-01 5.80398823e-01 + 5.77885811e-01 5.75377807e-01 5.72874835e-01 5.70376921e-01 5.67884088e-01 + 5.65396360e-01 5.62913762e-01 5.60436316e-01 5.57964047e-01 5.55496977e-01 + 5.53035128e-01 5.50578524e-01 5.48127187e-01 5.45681138e-01 5.43240399e-01 + 5.40804991e-01 5.38374937e-01 5.35950256e-01 5.33530970e-01 5.31117099e-01 + 5.28708663e-01 5.26305682e-01 5.23908176e-01 5.21516164e-01 5.19129666e-01 + 5.16748699e-01 5.14373284e-01 5.12003438e-01 5.09639180e-01 5.07280528e-01 + 5.04927499e-01 5.02580111e-01 5.00238381e-01 4.97902326e-01 4.95571964e-01 + 4.93247309e-01 4.90928379e-01 4.88615190e-01 4.86307758e-01 4.84006098e-01 + 4.81710225e-01 4.79420155e-01 4.77135903e-01 4.74857483e-01 4.72584909e-01 + 4.70318196e-01 4.68057358e-01 4.65802409e-01 4.63553362e-01 4.61310230e-01 + 4.59073026e-01 4.56841764e-01 4.54616456e-01 4.52397114e-01 4.50183750e-01 + 4.47976377e-01 4.45775007e-01 4.43579650e-01 4.41390318e-01 4.39207022e-01 + 4.37029774e-01 4.34858583e-01 4.32693460e-01 4.30534416e-01 4.28381460e-01 + 4.26234603e-01 4.24093854e-01 4.21959222e-01 4.19830716e-01 4.17708346e-01 + 4.15592121e-01 4.13482048e-01 4.11378137e-01 4.09280395e-01 4.07188831e-01 + 4.05103452e-01 4.03024267e-01 4.00951281e-01 3.98884503e-01 3.96823939e-01 + 3.94769597e-01 3.92721483e-01 3.90679603e-01 3.88643963e-01 3.86614570e-01 + 3.84591429e-01 3.82574547e-01 3.80563928e-01 3.78559578e-01 3.76561502e-01 + 3.74569704e-01 3.72584190e-01 3.70604965e-01 3.68632031e-01 3.66665395e-01 + 3.64705058e-01 3.62751027e-01 3.60803303e-01 3.58861891e-01 3.56926793e-01 + 3.54998014e-01 3.53075555e-01 3.51159420e-01 3.49249611e-01 3.47346130e-01 + 3.45448981e-01 3.43558164e-01 3.41673682e-01 3.39795537e-01 3.37923729e-01 + 3.36058261e-01 3.34199134e-01 3.32346349e-01 3.30499906e-01 3.28659807e-01 + 3.26826052e-01 3.24998641e-01 3.23177575e-01 3.21362854e-01 3.19554477e-01 + 3.17752446e-01 3.15956758e-01 3.14167414e-01 3.12384413e-01 3.10607754e-01 + 3.08837437e-01 3.07073459e-01 3.05315821e-01 3.03564519e-01 3.01819554e-01 + 3.00080922e-01 2.98348623e-01 2.96622654e-01 2.94903013e-01 2.93189698e-01 + 2.91482706e-01 2.89782035e-01 2.88087682e-01 2.86399644e-01 2.84717918e-01 + 2.83042501e-01 2.81373389e-01 2.79710580e-01 2.78054070e-01 2.76403855e-01 + 2.74759931e-01 2.73122294e-01 2.71490940e-01 2.69865865e-01 2.68247065e-01 + 2.66634536e-01 2.65028271e-01 2.63428268e-01 2.61834520e-01 2.60247024e-01 + 2.58665773e-01 2.57090764e-01 2.55521989e-01 2.53959444e-01 2.52403124e-01 + 2.50853022e-01 2.49309133e-01 2.47771451e-01 2.46239969e-01 2.44714682e-01 + 2.43195584e-01 2.41682667e-01 2.40175925e-01 2.38675352e-01 2.37180941e-01 + 2.35692686e-01 2.34210578e-01 2.32734611e-01 2.31264778e-01 2.29801072e-01 + 2.28343485e-01 2.26892010e-01 2.25446638e-01 2.24007363e-01 2.22574177e-01 + 2.21147071e-01 2.19726037e-01 2.18311068e-01 2.16902156e-01 2.15499291e-01 + 2.14102466e-01 2.12711671e-01 2.11326899e-01 2.09948141e-01 2.08575387e-01 + 2.07208630e-01 2.05847859e-01 2.04493066e-01 2.03144242e-01 2.01801377e-01 + 2.00464463e-01 1.99133489e-01 1.97808446e-01 1.96489324e-01 1.95176114e-01 + 1.93868806e-01 1.92567391e-01 1.91271857e-01 1.89982196e-01 1.88698396e-01 + 1.87420448e-01 1.86148342e-01 1.84882066e-01 1.83621611e-01 1.82366967e-01 + 1.81118121e-01 1.79875065e-01 1.78637786e-01 1.77406275e-01 1.76180520e-01 + 1.74960510e-01 1.73746235e-01 1.72537682e-01 1.71334841e-01 1.70137701e-01 + 1.68946250e-01 1.67760477e-01 1.66580371e-01 1.65405919e-01 1.64237110e-01 + 1.63073933e-01 1.61916375e-01 1.60764425e-01 1.59618071e-01 1.58477302e-01 + 1.57342104e-01 1.56212466e-01 1.55088376e-01 1.53969822e-01 1.52856791e-01 + 1.51749271e-01 1.50647250e-01 1.49550715e-01 1.48459654e-01 1.47374054e-01 + 1.46293903e-01 1.45219188e-01 1.44149895e-01 1.43086014e-01 1.42027530e-01 + 1.40974430e-01 1.39926703e-01 1.38884334e-01 1.37847312e-01 1.36815622e-01 + 1.35789251e-01 1.34768187e-01 1.33752417e-01 1.32741926e-01 1.31736702e-01 + 1.30736731e-01 1.29742001e-01 1.28752496e-01 1.27768205e-01 1.26789113e-01 + 1.25815206e-01 1.24846472e-01 1.23882897e-01 1.22924466e-01 1.21971167e-01 + 1.21022984e-01 1.20079906e-01 1.19141916e-01 1.18209003e-01 1.17281151e-01 + 1.16358347e-01 1.15440577e-01 1.14527827e-01 1.13620082e-01 1.12717329e-01 + 1.11819553e-01 1.10926741e-01 1.10038877e-01 1.09155949e-01 1.08277940e-01 + 1.07404838e-01 1.06536628e-01 1.05673296e-01 1.04814826e-01 1.03961206e-01 + 1.03112419e-01 1.02268453e-01 1.01429291e-01 1.00594921e-01 9.97653261e-02 + 9.89404933e-02 9.81204076e-02 9.73050542e-02 9.64944186e-02 9.56884861e-02 + 9.48872421e-02 9.40906717e-02 9.32987602e-02 9.25114930e-02 9.17288552e-02 + 9.09508321e-02 9.01774088e-02 8.94085704e-02 8.86443023e-02 8.78845894e-02 + 8.71294169e-02 8.63787700e-02 8.56326336e-02 8.48909929e-02 8.41538330e-02 + 8.34211388e-02 8.26928954e-02 8.19690879e-02 8.12497011e-02 8.05347202e-02 + 7.98241301e-02 7.91179157e-02 7.84160621e-02 7.77185541e-02 7.70253768e-02 + 7.63365150e-02 7.56519536e-02 7.49716776e-02 7.42956719e-02 7.36239214e-02 + 7.29564109e-02 7.22931253e-02 7.16340496e-02 7.09791686e-02 7.03284671e-02 + 6.96819300e-02 6.90395422e-02 6.84012886e-02 6.77671539e-02 6.71371231e-02 + 6.65111809e-02 6.58893122e-02 6.52715019e-02 6.46577348e-02 6.40479958e-02 + 6.34422696e-02 6.28405411e-02 6.22427951e-02 6.16490165e-02 6.10591902e-02 + 6.04733010e-02 5.98913336e-02 5.93132730e-02 5.87391041e-02 5.81688116e-02 + 5.76023804e-02 5.70397954e-02 5.64810414e-02 5.59261034e-02 5.53749662e-02 + 5.48276146e-02 5.42840336e-02 5.37442081e-02 5.32081229e-02 5.26757629e-02 + 5.21471132e-02 5.16221585e-02 5.11008839e-02 5.05832742e-02 5.00693144e-02 + 4.95589895e-02 4.90522845e-02 4.85491842e-02 4.80496738e-02 4.75537381e-02 + 4.70613623e-02 4.65725312e-02 4.60872300e-02 4.56054437e-02 4.51271574e-02 + 4.46523560e-02 4.41810248e-02 4.37131487e-02 4.32487129e-02 4.27877026e-02 + 4.23301028e-02 4.18758987e-02 4.14250754e-02 4.09776182e-02 4.05335123e-02 + 4.00927428e-02 3.96552949e-02 3.92211540e-02 3.87903053e-02 3.83627340e-02 + 3.79384255e-02 3.75173650e-02 3.70995379e-02 3.66849296e-02 3.62735253e-02 + 3.58653105e-02 3.54602706e-02 3.50583911e-02 3.46596572e-02 3.42640546e-02 + 3.38715687e-02 3.34821850e-02 3.30958890e-02 3.27126662e-02 3.23325023e-02 + 3.19553828e-02 3.15812932e-02 3.12102194e-02 3.08421468e-02 3.04770612e-02 + 3.01149482e-02 2.97557936e-02 2.93995832e-02 2.90463026e-02 2.86959377e-02 + 2.83484743e-02 2.80038982e-02 2.76621952e-02 2.73233514e-02 2.69873525e-02 + 2.66541845e-02 2.63238333e-02 2.59962850e-02 2.56715256e-02 2.53495410e-02 + 2.50303174e-02 2.47138408e-02 2.44000974e-02 2.40890733e-02 2.37807546e-02 + 2.34751275e-02 2.31721784e-02 2.28718933e-02 2.25742587e-02 2.22792607e-02 + 2.19868858e-02 2.16971202e-02 2.14099505e-02 2.11253629e-02 2.08433439e-02 + 2.05638801e-02 2.02869579e-02 2.00125638e-02 1.97406844e-02 1.94713063e-02 + 1.92044162e-02 1.89400006e-02 1.86780462e-02 1.84185398e-02 1.81614681e-02 + 1.79068179e-02 1.76545759e-02 1.74047290e-02 1.71572641e-02 1.69121681e-02 + 1.66694279e-02 1.64290304e-02 1.61909626e-02 1.59552116e-02 1.57217644e-02 + 1.54906081e-02 1.52617298e-02 1.50351167e-02 1.48107559e-02 1.45886347e-02 + 1.43687403e-02 1.41510600e-02 1.39355811e-02 1.37222909e-02 1.35111769e-02 + 1.33022264e-02 1.30954269e-02 1.28907658e-02 1.26882308e-02 1.24878092e-02 + 1.22894888e-02 1.20932571e-02 1.18991017e-02 1.17070104e-02 1.15169709e-02 + 1.13289709e-02 1.11429983e-02 1.09590407e-02 1.07770862e-02 1.05971226e-02 + 1.04191377e-02 1.02431196e-02 1.00690563e-02 9.89693584e-03 9.72674620e-03 + 9.55847554e-03 9.39211199e-03 9.22764373e-03 9.06505895e-03 8.90434592e-03 + 8.74549290e-03 8.58848822e-03 8.43332023e-03 8.27997732e-03 8.12844792e-03 + 7.97872048e-03 7.83078350e-03 7.68462553e-03 7.54023512e-03 7.39760089e-03 + 7.25671149e-03 7.11755558e-03 6.98012189e-03 6.84439918e-03 6.71037622e-03 + 6.57804186e-03 6.44738496e-03 6.31839441e-03 6.19105916e-03 6.06536818e-03 + 5.94131048e-03 5.81887512e-03 5.69805119e-03 5.57882780e-03 5.46119412e-03 + 5.34513934e-03 5.23065272e-03 5.11772351e-03 5.00634104e-03 4.89649464e-03 + 4.78817372e-03 4.68136769e-03 4.57606601e-03 4.47225819e-03 4.36993376e-03 + 4.26908230e-03 4.16969342e-03 4.07175677e-03 3.97526205e-03 3.88019897e-03 + 3.78655730e-03 3.69432685e-03 3.60349746e-03 3.51405899e-03 3.42600138e-03 + 3.33931457e-03 3.25398856e-03 3.17001338e-03 3.08737909e-03 3.00607580e-03 + 2.92609366e-03 2.84742285e-03 2.77005359e-03 2.69397614e-03 2.61918079e-03 + 2.54565788e-03 2.47339778e-03 2.40239090e-03 2.33262770e-03 2.26409866e-03 + 2.19679431e-03 2.13070520e-03 2.06582195e-03 2.00213518e-03 1.93963558e-03 + 1.87831387e-03 1.81816080e-03 1.75916715e-03 1.70132377e-03 1.64462151e-03 + 1.58905129e-03 1.53460405e-03 1.48127077e-03 1.42904247e-03 1.37791021e-03 + 1.32786509e-03 1.27889824e-03 1.23100083e-03 1.18416408e-03 1.13837922e-03 + 1.09363756e-03 1.04993040e-03 1.00724912e-03 9.65585108e-04 9.24929807e-04 + 8.85274690e-04 8.46611271e-04 8.08931100e-04 7.72225766e-04 7.36486893e-04 + 7.01706146e-04 6.67875227e-04 6.34985873e-04 6.03029860e-04 5.71999004e-04 + 5.41885154e-04 5.12680200e-04 4.84376068e-04 4.56964721e-04 4.30438160e-04 + 4.04788423e-04 3.80007585e-04 3.56087759e-04 3.33021095e-04 3.10799778e-04 + 2.89416035e-04 2.68862124e-04 2.49130345e-04 2.30213031e-04 2.12102556e-04 + 1.94791327e-04 1.78271789e-04 1.62536427e-04 1.47577757e-04 1.33388336e-04 + 1.19960756e-04 1.07287646e-04 9.53616714e-05 8.41755336e-05 7.37219709e-05 + 6.39937580e-05 5.49837057e-05 4.66846611e-05 3.90895074e-05 3.21911642e-05 + 2.59825869e-05 2.04567671e-05 1.56067322e-05 1.14255457e-05 7.90630673e-06 + 5.04215042e-06 2.82624746e-06 1.25180428e-06 3.12062870e-07 0.00000000e+00 + 2.22608223e+06 1.64289070e+06 8.11494877e+05 5.34498159e+05 3.96098406e+05 + 3.13135260e+05 2.57888659e+05 2.18478622e+05 1.88965201e+05 1.66048456e+05 + 1.47748454e+05 1.32805265e+05 1.20378956e+05 1.09888059e+05 1.00917256e+05 + 9.31619976e+04 8.63938880e+04 8.04382849e+04 7.51593680e+04 7.04499226e+04 + 6.62241876e+04 6.24127473e+04 5.89588161e+04 5.58154926e+04 5.29437001e+04 + 5.03106215e+04 4.78884953e+04 4.56536791e+04 4.35859138e+04 4.16677404e+04 + 3.98840326e+04 3.82216210e+04 3.66689867e+04 3.52160114e+04 3.38537712e+04 + 3.25743658e+04 3.13707761e+04 3.02367454e+04 2.91666785e+04 2.81555574e+04 + 2.71988682e+04 2.62925404e+04 2.54328935e+04 2.46165919e+04 2.38406052e+04 + 2.31021746e+04 2.23987834e+04 2.17281308e+04 2.10881094e+04 2.04767859e+04 + 1.98923829e+04 1.93332643e+04 1.87979211e+04 1.82849596e+04 1.77930907e+04 + 1.73211202e+04 1.68679407e+04 1.64325234e+04 1.60139115e+04 1.56112142e+04 + 1.52236011e+04 1.48502971e+04 1.44905781e+04 1.41437667e+04 1.38092289e+04 + 1.34863701e+04 1.31746328e+04 1.28734934e+04 1.25824598e+04 1.23010689e+04 + 1.20288850e+04 1.17654971e+04 1.15105181e+04 1.12635822e+04 1.10243442e+04 + 1.07924777e+04 1.05676738e+04 1.03496404e+04 1.01381006e+04 9.93279185e+03 + 9.73346539e+03 9.53988496e+03 9.35182621e+03 9.16907594e+03 8.99143148e+03 + 8.81869996e+03 8.65069784e+03 8.48725028e+03 8.32819068e+03 8.17336021e+03 + 8.02260733e+03 7.87578745e+03 7.73276246e+03 7.59340047e+03 7.45757538e+03 + 7.32516664e+03 7.19605891e+03 7.07014181e+03 6.94730967e+03 6.82746123e+03 + 6.71049949e+03 6.59633145e+03 6.48486791e+03 6.37602330e+03 6.26971548e+03 + 6.16586559e+03 6.06439787e+03 5.96523956e+03 5.86832068e+03 5.77357397e+03 + 5.68093472e+03 5.59034067e+03 5.50173190e+03 5.41505072e+03 5.33024154e+03 + 5.24725084e+03 5.16602702e+03 5.08652033e+03 5.00868281e+03 4.93246818e+03 + 4.85783182e+03 4.78473061e+03 4.71312298e+03 4.64296874e+03 4.57422909e+03 + 4.50686653e+03 4.44084484e+03 4.37612898e+03 4.31268507e+03 4.25048036e+03 + 4.18948314e+03 4.12966275e+03 4.07098949e+03 4.01343463e+03 3.95697033e+03 + 3.90156963e+03 3.84720641e+03 3.79385536e+03 3.74149196e+03 3.69009241e+03 + 3.63963365e+03 3.59009333e+03 3.54144974e+03 3.49368184e+03 3.44676919e+03 + 3.40069196e+03 3.35543090e+03 3.31096732e+03 3.26728306e+03 3.22436048e+03 + 3.18218244e+03 3.14073230e+03 3.09999386e+03 3.05995140e+03 3.02058961e+03 + 2.98189362e+03 2.94384896e+03 2.90644155e+03 2.86965769e+03 2.83348407e+03 + 2.79790771e+03 2.76291598e+03 2.72849659e+03 2.69463757e+03 2.66132727e+03 + 2.62855432e+03 2.59630767e+03 2.56457654e+03 2.53335042e+03 2.50261908e+03 + 2.47237254e+03 2.44260108e+03 2.41329520e+03 2.38444567e+03 2.35604345e+03 + 2.32807975e+03 2.30054598e+03 2.27343378e+03 2.24673495e+03 2.22044154e+03 + 2.19454575e+03 2.16903998e+03 2.14391680e+03 2.11916899e+03 2.09478944e+03 + 2.07077127e+03 2.04710771e+03 2.02379217e+03 2.00081820e+03 1.97817951e+03 + 1.95586995e+03 1.93388350e+03 1.91221428e+03 1.89085655e+03 1.86980469e+03 + 1.84905320e+03 1.82859671e+03 1.80842996e+03 1.78854783e+03 1.76894527e+03 + 1.74961738e+03 1.73055933e+03 1.71176643e+03 1.69323406e+03 1.67495772e+03 + 1.65693298e+03 1.63915554e+03 1.62162115e+03 1.60432568e+03 1.58726507e+03 + 1.57043536e+03 1.55383265e+03 1.53745313e+03 1.52129308e+03 1.50534883e+03 + 1.48961681e+03 1.47409351e+03 1.45877550e+03 1.44365939e+03 1.42874190e+03 + 1.41401979e+03 1.39948989e+03 1.38514908e+03 1.37099432e+03 1.35702262e+03 + 1.34323106e+03 1.32961675e+03 1.31617689e+03 1.30290871e+03 1.28980950e+03 + 1.27687660e+03 1.26410741e+03 1.25149936e+03 1.23904996e+03 1.22675672e+03 + 1.21461725e+03 1.20262917e+03 1.19079016e+03 1.17909792e+03 1.16755022e+03 + 1.15614487e+03 1.14487969e+03 1.13375258e+03 1.12276144e+03 1.11190424e+03 + 1.10117898e+03 1.09058367e+03 1.08011639e+03 1.06977524e+03 1.05955834e+03 + 1.04946387e+03 1.03949003e+03 1.02963505e+03 1.01989720e+03 1.01027475e+03 + 1.00076605e+03 9.91369431e+02 9.82083287e+02 9.72906024e+02 9.63836078e+02 + 9.54871914e+02 9.46012020e+02 9.37254912e+02 9.28599132e+02 9.20043246e+02 + 9.11585843e+02 9.03225538e+02 8.94960967e+02 8.86790792e+02 8.78713694e+02 + 8.70728379e+02 8.62833573e+02 8.55028022e+02 8.47310495e+02 8.39679780e+02 + 8.32134686e+02 8.24674039e+02 8.17296688e+02 8.10001498e+02 8.02787353e+02 + 7.95653155e+02 7.88597823e+02 7.81620297e+02 7.74719529e+02 7.67894491e+02 + 7.61144170e+02 7.54467571e+02 7.47863712e+02 7.41331629e+02 7.34870371e+02 + 7.28479005e+02 7.22156610e+02 7.15902279e+02 7.09715123e+02 7.03594262e+02 + 6.97538833e+02 6.91547986e+02 6.85620882e+02 6.79756696e+02 6.73954618e+02 + 6.68213847e+02 6.62533596e+02 6.56913090e+02 6.51351565e+02 6.45848269e+02 + 6.40402462e+02 6.35013413e+02 6.29680406e+02 6.24402731e+02 6.19179693e+02 + 6.14010603e+02 6.08894787e+02 6.03831577e+02 5.98820316e+02 5.93860359e+02 + 5.88951067e+02 5.84091813e+02 5.79281978e+02 5.74520952e+02 5.69808135e+02 + 5.65142935e+02 5.60524768e+02 5.55953059e+02 5.51427242e+02 5.46946757e+02 + 5.42511056e+02 5.38119594e+02 5.33771838e+02 5.29467260e+02 5.25205341e+02 + 5.20985568e+02 5.16807437e+02 5.12670449e+02 5.08574114e+02 5.04517948e+02 + 5.00501473e+02 4.96524221e+02 4.92585726e+02 4.88685531e+02 4.84823185e+02 + 4.80998245e+02 4.77210270e+02 4.73458829e+02 4.69743496e+02 4.66063849e+02 + 4.62419474e+02 4.58809961e+02 4.55234907e+02 4.51693915e+02 4.48186591e+02 + 4.44712548e+02 4.41271404e+02 4.37862782e+02 4.34486311e+02 4.31141623e+02 + 4.27828357e+02 4.24546157e+02 4.21294668e+02 4.18073546e+02 4.14882445e+02 + 4.11721028e+02 4.08588962e+02 4.05485917e+02 4.02411567e+02 3.99365593e+02 + 3.96347677e+02 3.93357508e+02 3.90394776e+02 3.87459179e+02 3.84550414e+02 + 3.81668187e+02 3.78812205e+02 3.75982179e+02 3.73177824e+02 3.70398858e+02 + 3.67645005e+02 3.64915990e+02 3.62211543e+02 3.59531396e+02 3.56875286e+02 + 3.54242953e+02 3.51634140e+02 3.49048592e+02 3.46486060e+02 3.43946296e+02 + 3.41429057e+02 3.38934100e+02 3.36461189e+02 3.34010087e+02 3.31580563e+02 + 3.29172388e+02 3.26785335e+02 3.24419181e+02 3.22073706e+02 3.19748690e+02 + 3.17443919e+02 3.15159181e+02 3.12894265e+02 3.10648965e+02 3.08423074e+02 + 3.06216392e+02 3.04028718e+02 3.01859854e+02 2.99709606e+02 2.97577782e+02 + 2.95464191e+02 2.93368645e+02 2.91290959e+02 2.89230948e+02 2.87188433e+02 + 2.85163234e+02 2.83155175e+02 2.81164080e+02 2.79189777e+02 2.77232096e+02 + 2.75290867e+02 2.73365926e+02 2.71457107e+02 2.69564247e+02 2.67687187e+02 + 2.65825767e+02 2.63979831e+02 2.62149223e+02 2.60333792e+02 2.58533385e+02 + 2.56747852e+02 2.54977047e+02 2.53220823e+02 2.51479036e+02 2.49751543e+02 + 2.48038204e+02 2.46338878e+02 2.44653429e+02 2.42981719e+02 2.41323616e+02 + 2.39678985e+02 2.38047696e+02 2.36429618e+02 2.34824622e+02 2.33232583e+02 + 2.31653375e+02 2.30086873e+02 2.28532956e+02 2.26991501e+02 2.25462388e+02 + 2.23945501e+02 2.22440721e+02 2.20947932e+02 2.19467021e+02 2.17997874e+02 + 2.16540378e+02 2.15094425e+02 2.13659903e+02 2.12236705e+02 2.10824725e+02 + 2.09423855e+02 2.08033993e+02 2.06655034e+02 2.05286876e+02 2.03929418e+02 + 2.02582561e+02 2.01246205e+02 1.99920252e+02 1.98604607e+02 1.97299172e+02 + 1.96003855e+02 1.94718561e+02 1.93443198e+02 1.92177675e+02 1.90921901e+02 + 1.89675786e+02 1.88439243e+02 1.87212183e+02 1.85994521e+02 1.84786170e+02 + 1.83587047e+02 1.82397066e+02 1.81216147e+02 1.80044206e+02 1.78881162e+02 + 1.77726936e+02 1.76581449e+02 1.75444621e+02 1.74316376e+02 1.73196636e+02 + 1.72085325e+02 1.70982370e+02 1.69887694e+02 1.68801226e+02 1.67722892e+02 + 1.66652620e+02 1.65590339e+02 1.64535979e+02 1.63489470e+02 1.62450743e+02 + 1.61419731e+02 1.60396365e+02 1.59380580e+02 1.58372308e+02 1.57371485e+02 + 1.56378046e+02 1.55391928e+02 1.54413066e+02 1.53441399e+02 1.52476865e+02 + 1.51519401e+02 1.50568949e+02 1.49625447e+02 1.48688836e+02 1.47759058e+02 + 1.46836054e+02 1.45919768e+02 1.45010141e+02 1.44107118e+02 1.43210644e+02 + 1.42320662e+02 1.41437119e+02 1.40559960e+02 1.39689133e+02 1.38824583e+02 + 1.37966259e+02 1.37114109e+02 1.36268082e+02 1.35428128e+02 1.34594195e+02 + 1.33766234e+02 1.32944196e+02 1.32128033e+02 1.31317696e+02 1.30513138e+02 + 1.29714311e+02 1.28921170e+02 1.28133666e+02 1.27351756e+02 1.26575394e+02 + 1.25804534e+02 1.25039133e+02 1.24279147e+02 1.23524532e+02 1.22775245e+02 + 1.22031244e+02 1.21292487e+02 1.20558932e+02 1.19830538e+02 1.19107263e+02 + 1.18389069e+02 1.17675913e+02 1.16967758e+02 1.16264563e+02 1.15566291e+02 + 1.14872901e+02 1.14184358e+02 1.13500622e+02 1.12821657e+02 1.12147426e+02 + 1.11477892e+02 1.10813019e+02 1.10152771e+02 1.09497114e+02 1.08846011e+02 + 1.08199428e+02 1.07557332e+02 1.06919687e+02 1.06286460e+02 1.05657618e+02 + 1.05033128e+02 1.04412957e+02 1.03797073e+02 1.03185444e+02 1.02578037e+02 + 1.01974823e+02 1.01375769e+02 1.00780844e+02 1.00190020e+02 9.96032638e+01 + 9.90205474e+01 9.84418407e+01 9.78671145e+01 9.72963397e+01 9.67294876e+01 + 9.61665298e+01 9.56074381e+01 9.50521847e+01 9.45007420e+01 9.39530826e+01 + 9.34091794e+01 9.28690056e+01 9.23325346e+01 9.17997403e+01 9.12705964e+01 + 9.07450773e+01 9.02231574e+01 8.97048113e+01 8.91900140e+01 8.86787407e+01 + 8.81709668e+01 8.76666679e+01 8.71658199e+01 8.66683989e+01 8.61743813e+01 + 8.56837435e+01 8.51964623e+01 8.47125147e+01 8.42318780e+01 8.37545294e+01 + 8.32804467e+01 8.28096075e+01 8.23419900e+01 8.18775724e+01 8.14163330e+01 + 8.09582505e+01 8.05033036e+01 8.00514714e+01 7.96027330e+01 7.91570678e+01 + 7.87144554e+01 7.82748753e+01 7.78383076e+01 7.74047323e+01 7.69741296e+01 + 7.65464800e+01 7.61217640e+01 7.56999623e+01 7.52810559e+01 7.48650257e+01 + 7.44518531e+01 7.40415194e+01 7.36340061e+01 7.32292949e+01 7.28273676e+01 + 7.24282061e+01 7.20317926e+01 7.16381093e+01 7.12471386e+01 7.08588630e+01 + 7.04732652e+01 7.00903279e+01 6.97100340e+01 6.93323666e+01 6.89573089e+01 + 6.85848441e+01 6.82149556e+01 6.78476270e+01 6.74828419e+01 6.71205840e+01 + 6.67608372e+01 6.64035855e+01 6.60488130e+01 6.56965038e+01 6.53466422e+01 + 6.49992126e+01 6.46541996e+01 6.43115876e+01 6.39713614e+01 6.36335058e+01 + 6.32980055e+01 6.29648457e+01 6.26340112e+01 6.23054873e+01 6.19792591e+01 + 6.16553119e+01 6.13336312e+01 6.10142023e+01 6.06970108e+01 6.03820424e+01 + 6.00692826e+01 5.97587172e+01 5.94503321e+01 5.91441132e+01 5.88400463e+01 + 5.85381176e+01 5.82383130e+01 5.79406188e+01 5.76450212e+01 5.73515064e+01 + 5.70600608e+01 5.67706707e+01 5.64833226e+01 5.61980030e+01 5.59146984e+01 + 5.56333954e+01 5.53540807e+01 5.50767409e+01 5.48013629e+01 5.45279333e+01 + 5.42564391e+01 5.39868671e+01 5.37192042e+01 5.34534375e+01 5.31895539e+01 + 5.29275404e+01 5.26673842e+01 5.24090725e+01 5.21525923e+01 5.18979308e+01 + 5.16450754e+01 5.13940133e+01 5.11447318e+01 5.08972183e+01 5.06514602e+01 + 5.04074448e+01 5.01651597e+01 4.99245922e+01 4.96857301e+01 4.94485607e+01 + 4.92130716e+01 4.89792506e+01 4.87470852e+01 4.85165632e+01 4.82876721e+01 + 4.80603998e+01 4.78347341e+01 4.76106627e+01 4.73881735e+01 4.71672543e+01 + 4.69478930e+01 4.67300776e+01 4.65137959e+01 4.62990361e+01 4.60857861e+01 + 4.58740340e+01 4.56637677e+01 4.54549756e+01 4.52476456e+01 4.50417660e+01 + 4.48373250e+01 4.46343108e+01 4.44327117e+01 4.42325160e+01 4.40337120e+01 + 4.38362882e+01 4.36402330e+01 4.34455347e+01 4.32521820e+01 4.30601632e+01 + 4.28694671e+01 4.26800821e+01 4.24919969e+01 4.23052003e+01 4.21196809e+01 + 4.19354275e+01 4.17524288e+01 4.15706739e+01 4.13901514e+01 4.12108505e+01 + 4.10327600e+01 4.08558689e+01 4.06801665e+01 4.05056417e+01 4.03322838e+01 + 4.01600819e+01 3.99890254e+01 3.98191035e+01 3.96503057e+01 3.94826213e+01 + 3.93160399e+01 3.91505509e+01 3.89861440e+01 3.88228087e+01 3.86605349e+01 + 3.84993122e+01 3.83391305e+01 3.81799796e+01 3.80218496e+01 3.78647303e+01 + 3.77086118e+01 3.75534843e+01 3.73993379e+01 3.72461629e+01 3.70939496e+01 + 3.69426884e+01 3.67923697e+01 3.66429841e+01 3.64945220e+01 3.63469743e+01 + 3.62003315e+01 3.60545845e+01 3.59097241e+01 3.57657412e+01 3.56226269e+01 + 3.54803723e+01 3.53389684e+01 3.51984065e+01 3.50586779e+01 3.49197739e+01 + 3.47816860e+01 3.46444058e+01 3.45079247e+01 3.43722345e+01 3.42373269e+01 + 3.41031937e+01 3.39698269e+01 3.38372184e+01 3.37053603e+01 3.35742446e+01 + 3.34438637e+01 3.33142098e+01 3.31852752e+01 3.30570525e+01 3.29295341e+01 + 3.28027126e+01 3.26765808e+01 3.25511314e+01 3.24263572e+01 3.23022512e+01 + 3.21788064e+01 3.20560158e+01 3.19338726e+01 3.18123700e+01 3.16915015e+01 + 3.15712603e+01 3.14516399e+01 3.13326340e+01 3.12142360e+01 3.10964399e+01 + 3.09792392e+01 3.08626280e+01 3.07466002e+01 3.06311497e+01 3.05162707e+01 + 3.04019574e+01 3.02882039e+01 3.01750048e+01 3.00623542e+01 2.99502468e+01 + 2.98386771e+01 2.97276397e+01 2.96171293e+01 2.95071407e+01 2.93976688e+01 + 2.92887084e+01 2.91802546e+01 2.90723024e+01 2.89648469e+01 2.88578835e+01 + 2.87514072e+01 2.86454136e+01 2.85398980e+01 2.84348558e+01 2.83302827e+01 + 2.82261742e+01 2.81225260e+01 2.80193340e+01 2.79165938e+01 2.78143013e+01 + 2.77124526e+01 2.76110435e+01 2.75100702e+01 2.74095288e+01 2.73094155e+01 + 2.72097265e+01 2.71104581e+01 2.70116067e+01 2.69131687e+01 2.68151406e+01 + 2.67175188e+01 2.66203001e+01 2.65234811e+01 2.64270584e+01 2.63310288e+01 + 2.62353891e+01 2.61401362e+01 2.60452669e+01 2.59507783e+01 2.58566673e+01 + 2.57629310e+01 2.56695666e+01 2.55765711e+01 2.54839417e+01 2.53916758e+01 + 2.52997706e+01 2.52082234e+01 2.51170317e+01 2.50261928e+01 2.49357043e+01 + 2.48455636e+01 2.47557682e+01 2.46663159e+01 2.45772042e+01 2.44884307e+01 + 2.43999933e+01 2.43118896e+01 2.42241175e+01 2.41366747e+01 2.40495592e+01 + 2.39627688e+01 2.38763014e+01 2.37901550e+01 2.37043277e+01 2.36188173e+01 + 2.35336221e+01 2.34487401e+01 2.33641694e+01 2.32799082e+01 2.31959547e+01 + 2.31123071e+01 2.30289635e+01 2.29459224e+01 2.28631820e+01 2.27807406e+01 + 2.26985966e+01 2.26167483e+01 2.25351942e+01 2.24539327e+01 2.23729623e+01 + 2.22922814e+01 2.22118885e+01 2.21317821e+01 2.20519609e+01 2.19724233e+01 + 2.18931680e+01 2.18141936e+01 2.17354987e+01 2.16570819e+01 2.15789419e+01 + 2.15010775e+01 2.14234873e+01 2.13461701e+01 2.12691245e+01 2.11923495e+01 + 2.11158437e+01 2.10396059e+01 2.09636350e+01 2.08879297e+01 2.08124891e+01 + 2.07373118e+01 2.06623968e+01 2.05877429e+01 2.05133491e+01 2.04392143e+01 + 2.03653374e+01 2.02917174e+01 2.02183532e+01 2.01452439e+01 2.00723882e+01 + 1.99997854e+01 1.99274343e+01 1.98553341e+01 1.97834837e+01 1.97118821e+01 + 1.96405285e+01 1.95694218e+01 1.94985612e+01 1.94279457e+01 1.93575745e+01 + 1.92874466e+01 1.92175611e+01 1.91479172e+01 1.90785139e+01 1.90093505e+01 + 1.89404260e+01 1.88717397e+01 1.88032906e+01 1.87350779e+01 1.86671009e+01 + 1.85993587e+01 1.85318504e+01 1.84645753e+01 1.83975326e+01 1.83307215e+01 + 1.82641413e+01 1.81977910e+01 1.81316700e+01 1.80657774e+01 1.80001126e+01 + 1.79346748e+01 1.78694632e+01 1.78044771e+01 1.77397157e+01 1.76751783e+01 + 1.76108641e+01 1.75467726e+01 1.74829028e+01 1.74192542e+01 1.73558259e+01 + 1.72926173e+01 1.72296278e+01 1.71668565e+01 1.71043028e+01 1.70419660e+01 + 1.69798455e+01 1.69179404e+01 1.68562502e+01 1.67947742e+01 1.67335117e+01 + 1.66724620e+01 1.66116245e+01 1.65509984e+01 1.64905832e+01 1.64303782e+01 + 1.63703827e+01 1.63105961e+01 1.62510177e+01 1.61916469e+01 1.61324830e+01 + 1.60735255e+01 1.60147735e+01 1.59562266e+01 1.58978841e+01 1.58397453e+01 + 1.57818096e+01 1.57240765e+01 1.56665452e+01 1.56092151e+01 1.55520857e+01 + 1.54951563e+01 1.54384263e+01 1.53818950e+01 1.53255619e+01 1.52694264e+01 + 1.52134878e+01 1.51577456e+01 1.51021991e+01 1.50468477e+01 1.49916909e+01 + 1.49367279e+01 1.48819583e+01 1.48273815e+01 1.47729968e+01 1.47188036e+01 + 1.46648014e+01 1.46109895e+01 1.45573674e+01 1.45039345e+01 1.44506902e+01 + 1.43976339e+01 1.43447651e+01 1.42920830e+01 1.42395873e+01 1.41872773e+01 + 1.41351523e+01 1.40832119e+01 1.40314555e+01 1.39798825e+01 1.39284922e+01 + 1.38772842e+01 1.38262579e+01 1.37754127e+01 1.37247481e+01 1.36742634e+01 + 1.36239581e+01 1.35738317e+01 1.35238836e+01 1.34741131e+01 1.34245199e+01 + 1.33751032e+01 1.33258626e+01 1.32767975e+01 1.32279073e+01 1.31791915e+01 + 1.31306495e+01 1.30822808e+01 1.30340848e+01 1.29860610e+01 1.29382089e+01 + 1.28905278e+01 1.28430172e+01 1.27956766e+01 1.27485055e+01 1.27015033e+01 + 1.26546695e+01 1.26080034e+01 1.25615047e+01 1.25151727e+01 1.24690068e+01 + 1.24230067e+01 1.23771717e+01 1.23315013e+01 1.22859950e+01 1.22406522e+01 + 1.21954724e+01 1.21504551e+01 1.21055998e+01 1.20609059e+01 1.20163728e+01 + 1.19720002e+01 1.19277874e+01 1.18837339e+01 1.18398392e+01 1.17961028e+01 + 1.17525242e+01 1.17091028e+01 1.16658381e+01 1.16227297e+01 1.15797770e+01 + 1.15369794e+01 1.14943365e+01 1.14518478e+01 1.14095128e+01 1.13673308e+01 + 1.13253015e+01 1.12834244e+01 1.12416989e+01 1.12001244e+01 1.11587006e+01 + 1.11174269e+01 1.10763029e+01 1.10353279e+01 1.09945015e+01 1.09538233e+01 + 1.09132927e+01 1.08729092e+01 1.08326723e+01 1.07925816e+01 1.07526365e+01 + 1.07128365e+01 1.06731813e+01 1.06336702e+01 1.05943028e+01 1.05550786e+01 + 1.05159971e+01 1.04770578e+01 1.04382603e+01 1.03996041e+01 1.03610886e+01 + 1.03227135e+01 1.02844782e+01 1.02463823e+01 1.02084252e+01 1.01706066e+01 + 1.01329259e+01 1.00953826e+01 1.00579763e+01 1.00207066e+01 9.98357293e+00 + 9.94657483e+00 9.90971186e+00 9.87298355e+00 9.83638943e+00 9.79992905e+00 + 9.76360194e+00 9.72740763e+00 9.69134569e+00 9.65541563e+00 9.61961702e+00 + 9.58394940e+00 9.54841230e+00 9.51300529e+00 9.47772790e+00 9.44257969e+00 + 9.40756021e+00 9.37266901e+00 9.33790565e+00 9.30326968e+00 9.26876066e+00 + 9.23437814e+00 9.20012168e+00 9.16599085e+00 9.13198520e+00 9.09810430e+00 + 9.06434770e+00 9.03071498e+00 8.99720571e+00 8.96381944e+00 8.93055574e+00 + 8.89741419e+00 8.86439436e+00 8.83149582e+00 8.79871814e+00 8.76606089e+00 + 8.73352366e+00 8.70110602e+00 8.66880755e+00 8.63662783e+00 8.60456643e+00 + 8.57262294e+00 8.54079695e+00 8.50908804e+00 8.47749579e+00 8.44601979e+00 + 8.41465963e+00 8.38341490e+00 8.35228519e+00 8.32127008e+00 8.29036919e+00 + 8.25958209e+00 8.22890838e+00 8.19834766e+00 8.16789954e+00 8.13756360e+00 + 8.10733945e+00 8.07722668e+00 8.04722491e+00 8.01733374e+00 7.98755277e+00 + 7.95788160e+00 7.92831986e+00 7.89886713e+00 7.86952305e+00 7.84028721e+00 + 7.81115922e+00 7.78213871e+00 7.75322529e+00 7.72441857e+00 7.69571818e+00 + 7.66712372e+00 7.63863482e+00 7.61025111e+00 7.58197219e+00 7.55379770e+00 + 7.52572727e+00 7.49776051e+00 7.46989705e+00 7.44213653e+00 7.41447857e+00 + 7.38692280e+00 7.35946885e+00 7.33211636e+00 7.30486496e+00 7.27771429e+00 + 7.25066397e+00 7.22371366e+00 7.19686299e+00 7.17011160e+00 7.14345913e+00 + 7.11690522e+00 7.09044951e+00 7.06409166e+00 7.03783130e+00 7.01166809e+00 + 6.98560167e+00 6.95963169e+00 6.93375780e+00 6.90797966e+00 6.88229691e+00 + 6.85670921e+00 6.83121622e+00 6.80581759e+00 6.78051298e+00 6.75530204e+00 + 6.73018445e+00 6.70515985e+00 6.68022791e+00 6.65538829e+00 6.63064066e+00 + 6.60598469e+00 6.58142003e+00 6.55694636e+00 6.53256335e+00 6.50827066e+00 + 6.48406796e+00 6.45995494e+00 6.43593125e+00 6.41199658e+00 6.38815061e+00 + 6.36439300e+00 6.34072343e+00 6.31714159e+00 6.29364715e+00 6.27023980e+00 + 6.24691921e+00 6.22368507e+00 6.20053707e+00 6.17747488e+00 6.15449820e+00 + 6.13160671e+00 6.10880010e+00 6.08607807e+00 6.06344029e+00 6.04088646e+00 + 6.01841629e+00 5.99602945e+00 5.97372564e+00 5.95150456e+00 5.92936591e+00 + 5.90730939e+00 5.88533469e+00 5.86344151e+00 5.84162956e+00 5.81989853e+00 + 5.79824813e+00 5.77667807e+00 5.75518805e+00 5.73377778e+00 5.71244695e+00 + 5.69119529e+00 5.67002250e+00 5.64892830e+00 5.62791238e+00 5.60697447e+00 + 5.58611428e+00 5.56533152e+00 5.54462591e+00 5.52399717e+00 5.50344500e+00 + 5.48296914e+00 5.46256930e+00 5.44224520e+00 5.42199656e+00 5.40182311e+00 + 5.38172456e+00 5.36170064e+00 5.34175109e+00 5.32187561e+00 5.30207395e+00 + 5.28234582e+00 5.26269097e+00 5.24310911e+00 5.22359998e+00 5.20416331e+00 + 5.18479884e+00 5.16550630e+00 5.14628542e+00 5.12713593e+00 5.10805759e+00 + 5.08905011e+00 5.07011325e+00 5.05124675e+00 5.03245033e+00 5.01372375e+00 + 4.99506674e+00 4.97647905e+00 4.95796043e+00 4.93951062e+00 4.92112936e+00 + 4.90281640e+00 4.88457149e+00 4.86639438e+00 4.84828482e+00 4.83024256e+00 + 4.81226735e+00 4.79435893e+00 4.77651708e+00 4.75874153e+00 4.74103205e+00 + 4.72338839e+00 4.70581031e+00 4.68829756e+00 4.67084991e+00 4.65346711e+00 + 4.63614892e+00 4.61889511e+00 4.60170543e+00 4.58457965e+00 4.56751754e+00 + 4.55051885e+00 4.53358335e+00 4.51671082e+00 4.49990101e+00 4.48315369e+00 + 4.46646864e+00 4.44984562e+00 4.43328440e+00 4.41678476e+00 4.40034646e+00 + 4.38396928e+00 4.36765299e+00 4.35139738e+00 4.33520220e+00 4.31906725e+00 + 4.30299229e+00 4.28697710e+00 4.27102147e+00 4.25512517e+00 4.23928798e+00 + 4.22350969e+00 4.20779007e+00 4.19212891e+00 4.17652599e+00 4.16098109e+00 + 4.14549401e+00 4.13006452e+00 4.11469242e+00 4.09937748e+00 4.08411951e+00 + 4.06891828e+00 4.05377359e+00 4.03868523e+00 4.02365298e+00 4.00867665e+00 + 3.99375601e+00 3.97889088e+00 3.96408104e+00 3.94932628e+00 3.93462641e+00 + 3.91998121e+00 3.90539049e+00 3.89085404e+00 3.87637166e+00 3.86194316e+00 + 3.84756833e+00 3.83324697e+00 3.81897888e+00 3.80476387e+00 3.79060175e+00 + 3.77649230e+00 3.76243534e+00 3.74843068e+00 3.73447812e+00 3.72057746e+00 + 3.70672851e+00 3.69293109e+00 3.67918500e+00 3.66549005e+00 3.65184604e+00 + 3.63825280e+00 3.62471013e+00 3.61121785e+00 3.59777576e+00 3.58438369e+00 + 3.57104144e+00 3.55774883e+00 3.54450568e+00 3.53131180e+00 3.51816701e+00 + 3.50507113e+00 3.49202398e+00 3.47902537e+00 3.46607512e+00 3.45317306e+00 + 3.44031901e+00 3.42751278e+00 3.41475421e+00 3.40204310e+00 3.38937930e+00 + 3.37676262e+00 3.36419288e+00 3.35166992e+00 3.33919355e+00 3.32676361e+00 + 3.31437992e+00 3.30204231e+00 3.28975062e+00 3.27750466e+00 3.26530427e+00 + 3.25314928e+00 3.24103952e+00 3.22897483e+00 3.21695503e+00 3.20497996e+00 + 3.19304945e+00 3.18116334e+00 3.16932147e+00 3.15752366e+00 3.14576975e+00 + 3.13405959e+00 3.12239300e+00 3.11076983e+00 3.09918992e+00 3.08765310e+00 + 3.07615921e+00 3.06470810e+00 3.05329960e+00 3.04193357e+00 3.03060983e+00 + 3.01932823e+00 3.00808862e+00 2.99689084e+00 2.98573473e+00 2.97462014e+00 + 2.96354691e+00 2.95251490e+00 2.94152395e+00 2.93057389e+00 2.91966460e+00 + 2.90879590e+00 2.89796766e+00 2.88717971e+00 2.87643191e+00 2.86572412e+00 + 2.85505618e+00 2.84442794e+00 2.83383926e+00 2.82328999e+00 2.81277998e+00 + 2.80230909e+00 2.79187717e+00 2.78148407e+00 2.77112966e+00 2.76081379e+00 + 2.75053631e+00 2.74029708e+00 2.73009597e+00 2.71993282e+00 2.70980750e+00 + 2.69971986e+00 2.68966978e+00 2.67965709e+00 2.66968168e+00 2.65974339e+00 + 2.64984210e+00 2.63997766e+00 2.63014993e+00 2.62035879e+00 2.61060408e+00 + 2.60088569e+00 2.59120347e+00 2.58155729e+00 2.57194701e+00 2.56237250e+00 + 2.55283363e+00 2.54333026e+00 2.53386227e+00 2.52442952e+00 2.51503188e+00 + 2.50566922e+00 2.49634141e+00 2.48704832e+00 2.47778982e+00 2.46856578e+00 + 2.45937608e+00 2.45022058e+00 2.44109916e+00 2.43201169e+00 2.42295805e+00 + 2.41393811e+00 2.40495175e+00 2.39599883e+00 2.38707924e+00 2.37819285e+00 + 2.36933954e+00 2.36051919e+00 2.35173166e+00 2.34297685e+00 2.33425462e+00 + 2.32556487e+00 2.31690745e+00 2.30828227e+00 2.29968919e+00 2.29112809e+00 + 2.28259887e+00 2.27410139e+00 2.26563554e+00 2.25720121e+00 2.24879827e+00 + 2.24042661e+00 2.23208612e+00 2.22377667e+00 2.21549815e+00 2.20725045e+00 + 2.19903345e+00 2.19084704e+00 2.18269110e+00 2.17456552e+00 2.16647019e+00 + 2.15840499e+00 2.15036982e+00 2.14236455e+00 2.13438909e+00 2.12644331e+00 + 2.11852711e+00 2.11064038e+00 2.10278301e+00 2.09495489e+00 2.08715590e+00 + 2.07938595e+00 2.07164492e+00 2.06393271e+00 2.05624921e+00 2.04859431e+00 + 2.04096790e+00 2.03336989e+00 2.02580015e+00 2.01825860e+00 2.01074512e+00 + 2.00325961e+00 1.99580197e+00 1.98837208e+00 1.98096986e+00 1.97359518e+00 + 1.96624797e+00 1.95892810e+00 1.95163548e+00 1.94437001e+00 1.93713158e+00 + 1.92992010e+00 1.92273547e+00 1.91557758e+00 1.90844634e+00 1.90134164e+00 + 1.89426339e+00 1.88721149e+00 1.88018585e+00 1.87318635e+00 1.86621291e+00 + 1.85926544e+00 1.85234382e+00 1.84544797e+00 1.83857779e+00 1.83173319e+00 + 1.82491407e+00 1.81812033e+00 1.81135188e+00 1.80460863e+00 1.79789048e+00 + 1.79119734e+00 1.78452912e+00 1.77788572e+00 1.77126705e+00 1.76467302e+00 + 1.75810353e+00 1.75155851e+00 1.74503784e+00 1.73854146e+00 1.73206925e+00 + 1.72562114e+00 1.71919704e+00 1.71279684e+00 1.70642048e+00 1.70006785e+00 + 1.69373887e+00 1.68743345e+00 1.68115150e+00 1.67489294e+00 1.66865768e+00 + 1.66244563e+00 1.65625671e+00 1.65009082e+00 1.64394789e+00 1.63782783e+00 + 1.63173055e+00 1.62565596e+00 1.61960400e+00 1.61357456e+00 1.60756756e+00 + 1.60158293e+00 1.59562058e+00 1.58968043e+00 1.58376238e+00 1.57786637e+00 + 1.57199231e+00 1.56614012e+00 1.56030971e+00 1.55450100e+00 1.54871392e+00 + 1.54294839e+00 1.53720432e+00 1.53148163e+00 1.52578024e+00 1.52010008e+00 + 1.51444107e+00 1.50880312e+00 1.50318616e+00 1.49759011e+00 1.49201489e+00 + 1.48646043e+00 1.48092665e+00 1.47541347e+00 1.46992081e+00 1.46444860e+00 + 1.45899676e+00 1.45356521e+00 1.44815389e+00 1.44276271e+00 1.43739160e+00 + 1.43204049e+00 1.42670929e+00 1.42139795e+00 1.41610638e+00 1.41083450e+00 + 1.40558225e+00 1.40034956e+00 1.39513634e+00 1.38994253e+00 1.38476806e+00 + 1.37961285e+00 1.37447683e+00 1.36935993e+00 1.36426208e+00 1.35918321e+00 + 1.35412325e+00 1.34908212e+00 1.34405976e+00 1.33905610e+00 1.33407106e+00 + 1.32910459e+00 1.32415660e+00 1.31922703e+00 1.31431581e+00 1.30942288e+00 + 1.30454816e+00 1.29969159e+00 1.29485310e+00 1.29003262e+00 1.28523009e+00 + 1.28044543e+00 1.27567859e+00 1.27092949e+00 1.26619808e+00 1.26148427e+00 + 1.25678802e+00 1.25210925e+00 1.24744790e+00 1.24280390e+00 1.23817718e+00 + 1.23356770e+00 1.22897537e+00 1.22440014e+00 1.21984194e+00 1.21530071e+00 + 1.21077639e+00 1.20626891e+00 1.20177820e+00 1.19730422e+00 1.19284690e+00 + 1.18840616e+00 1.18398196e+00 1.17957423e+00 1.17518291e+00 1.17080793e+00 + 1.16644925e+00 1.16210679e+00 1.15778049e+00 1.15346959e+00 1.14913354e+00 + 1.14474938e+00 1.14031777e+00 1.13583938e+00 1.13131490e+00 1.12674498e+00 + 1.12213033e+00 1.11747160e+00 1.11276948e+00 1.10802466e+00 1.10323781e+00 + 1.09840961e+00 1.09354076e+00 1.08863193e+00 1.08368382e+00 1.07869711e+00 + 1.07367249e+00 1.06861064e+00 1.06351225e+00 1.05837802e+00 1.05320863e+00 + 1.04800477e+00 1.04276713e+00 1.03749640e+00 1.03219327e+00 1.02685842e+00 + 1.02149255e+00 1.01609634e+00 1.01067048e+00 1.00521566e+00 9.99732561e-01 + 9.94221873e-01 9.88684280e-01 9.83120465e-01 9.77531112e-01 9.71916902e-01 + 9.66278515e-01 9.60616632e-01 9.54931930e-01 9.49225086e-01 9.43496777e-01 + 9.37747674e-01 9.31978451e-01 9.26189778e-01 9.20382324e-01 9.14556755e-01 + 9.08713737e-01 9.02853933e-01 8.96978003e-01 8.91086606e-01 8.85180399e-01 + 8.79260037e-01 8.73326170e-01 8.67379449e-01 8.61420522e-01 8.55450031e-01 + 8.49468620e-01 8.43476928e-01 8.37475591e-01 8.31465244e-01 8.25446516e-01 + 8.19420036e-01 8.13386430e-01 8.07346319e-01 8.01300321e-01 7.95249054e-01 + 7.89193129e-01 7.83133156e-01 7.77069741e-01 7.71003485e-01 7.64934990e-01 + 7.58864849e-01 7.52793656e-01 7.46721999e-01 7.40650464e-01 7.34579630e-01 + 7.28510076e-01 7.22442376e-01 7.16377099e-01 7.10314812e-01 7.04256077e-01 + 6.98201452e-01 6.92151492e-01 6.86106746e-01 6.80067760e-01 6.74035077e-01 + 6.68009235e-01 6.61990766e-01 6.55980201e-01 6.49978064e-01 6.43984876e-01 + 6.38001154e-01 6.32027409e-01 6.26064149e-01 6.20111878e-01 6.14171093e-01 + 6.08242290e-01 6.02325957e-01 5.96422579e-01 5.90532637e-01 5.84656607e-01 + 5.78794960e-01 5.72948161e-01 5.67116674e-01 5.61300953e-01 5.55501453e-01 + 5.49718619e-01 5.43952895e-01 5.38204718e-01 5.32474521e-01 5.26762732e-01 + 5.21069774e-01 5.15396065e-01 5.09742018e-01 5.04108042e-01 4.98494539e-01 + 4.92901908e-01 4.87330542e-01 4.81780829e-01 4.76253153e-01 4.70747891e-01 + 4.65265417e-01 4.59806099e-01 4.54370299e-01 4.48958375e-01 4.43570681e-01 + 4.38207564e-01 4.32869366e-01 4.27556424e-01 4.22269072e-01 4.17007635e-01 + 4.11772436e-01 4.06563793e-01 4.01382015e-01 3.96227411e-01 3.91100281e-01 + 3.86000921e-01 3.80929624e-01 3.75886673e-01 3.70872351e-01 3.65886933e-01 + 3.60930689e-01 3.56003885e-01 3.51106780e-01 3.46239629e-01 3.41402684e-01 + 3.36596187e-01 3.31820379e-01 3.27075494e-01 3.22361761e-01 3.17679405e-01 + 3.13028645e-01 3.08409694e-01 3.03822762e-01 2.99268052e-01 2.94745764e-01 + 2.90256091e-01 2.85799221e-01 2.81375338e-01 2.76984621e-01 2.72627243e-01 + 2.68303374e-01 2.64013176e-01 2.59756808e-01 2.55534425e-01 2.51346174e-01 + 2.47192200e-01 2.43072641e-01 2.38987632e-01 2.34937302e-01 2.30921775e-01 + 2.26941171e-01 2.22995604e-01 2.19085184e-01 2.15210017e-01 2.11370202e-01 + 2.07565837e-01 2.03797010e-01 2.00063809e-01 1.96366316e-01 1.92704606e-01 + 1.89078754e-01 1.85488825e-01 1.81934884e-01 1.78416989e-01 1.74935194e-01 + 1.71489549e-01 1.68080098e-01 1.64706883e-01 1.61369940e-01 1.58069300e-01 + 1.54804992e-01 1.51577037e-01 1.48385456e-01 1.45230262e-01 1.42111467e-01 + 1.39029075e-01 1.35983089e-01 1.32973506e-01 1.30000321e-01 1.27063522e-01 + 1.24163095e-01 1.21299021e-01 1.18471278e-01 1.15679839e-01 1.12924673e-01 + 1.10205745e-01 1.07523018e-01 1.04876449e-01 1.02265992e-01 9.96915962e-02 + 9.71532089e-02 9.46507723e-02 9.21842253e-02 8.97535033e-02 8.73585377e-02 + 8.49992567e-02 8.26755846e-02 8.03874424e-02 7.81347475e-02 7.59174139e-02 + 7.37353522e-02 7.15884695e-02 6.94766698e-02 6.73998535e-02 6.53579178e-02 + 6.33507567e-02 6.13782611e-02 5.94403186e-02 5.75368137e-02 5.56676277e-02 + 5.38326390e-02 5.20317229e-02 5.02647517e-02 4.85315948e-02 4.68321187e-02 + 4.51661870e-02 4.35336603e-02 4.19343967e-02 4.03682513e-02 3.88350765e-02 + 3.73347222e-02 3.58670354e-02 3.44318607e-02 3.30290400e-02 3.16584126e-02 + 3.03198154e-02 2.90130829e-02 2.77380470e-02 2.64945373e-02 2.52823812e-02 + 2.41014035e-02 2.29514269e-02 2.18322718e-02 2.07437565e-02 1.96856971e-02 + 1.86579075e-02 1.76601995e-02 1.66923831e-02 1.57542659e-02 1.48456539e-02 + 1.39663510e-02 1.31161591e-02 1.22948785e-02 1.15023074e-02 1.07382425e-02 + 1.00024785e-02 9.29480855e-03 8.61502407e-03 7.96291488e-03 7.33826918e-03 + 6.74087363e-03 6.17051335e-03 5.62697200e-03 5.11003178e-03 4.61947348e-03 + 4.15507654e-03 3.71661904e-03 3.30387776e-03 2.91662825e-03 2.55464479e-03 + 2.21770052e-03 1.90556738e-03 1.61801622e-03 1.35481681e-03 1.11573786e-03 + 9.00547090e-04 7.09011235e-04 5.40896093e-04 3.95966561e-04 2.73986669e-04 + 1.74719613e-04 9.79277918e-05 4.33728431e-05 1.08156751e-05 1.65021653e-08 + 3.71505131e+05 2.74649258e+05 1.35893225e+05 8.96579686e+04 6.65526070e+04 + 5.26989696e+04 4.34710050e+04 3.68861241e+04 3.19530360e+04 2.81210268e+04 + 2.50596707e+04 2.25586996e+04 2.04779367e+04 1.87203386e+04 1.72165903e+04 + 1.59158625e+04 1.47800346e+04 1.37799571e+04 1.28929591e+04 1.21011439e+04 + 1.13901951e+04 1.07485244e+04 1.01666510e+04 9.63674408e+03 9.15227864e+03 + 8.70777443e+03 8.29859499e+03 7.92079138e+03 7.57097941e+03 7.24624224e+03 + 6.94405245e+03 6.66220928e+03 6.39878750e+03 6.15209569e+03 5.92064187e+03 + 5.70310492e+03 5.49831093e+03 5.30521323e+03 5.12287567e+03 4.95045842e+03 + 4.78720594e+03 4.63243671e+03 4.48553435e+03 4.34594011e+03 4.21314626e+03 + 4.08669044e+03 3.96615071e+03 3.85114128e+03 3.74130867e+03 3.63632847e+03 + 3.53590240e+03 3.43975576e+03 3.34763513e+03 3.25930639e+03 3.17455290e+03 + 3.09317393e+03 3.01498322e+03 2.93980772e+03 2.86748644e+03 2.79786941e+03 + 2.73081680e+03 2.66619804e+03 2.60389110e+03 2.54378179e+03 2.48576316e+03 + 2.42973494e+03 2.37560302e+03 2.32327899e+03 2.27267973e+03 2.22372701e+03 + 2.17634716e+03 2.13047071e+03 2.08603215e+03 2.04296960e+03 2.00122459e+03 + 1.96074185e+03 1.92146906e+03 1.88335668e+03 1.84635776e+03 1.81042780e+03 + 1.77552455e+03 1.74160791e+03 1.70863977e+03 1.67658393e+03 1.64540592e+03 + 1.61507295e+03 1.58555380e+03 1.55681872e+03 1.52883936e+03 1.50158865e+03 + 1.47504079e+03 1.44917112e+03 1.42395612e+03 1.39937327e+03 1.37540106e+03 + 1.35201892e+03 1.32920716e+03 1.30694691e+03 1.28522013e+03 1.26400950e+03 + 1.24329844e+03 1.22307103e+03 1.20331203e+03 1.18400677e+03 1.16514119e+03 + 1.14670178e+03 1.12867557e+03 1.11105008e+03 1.09381330e+03 1.07695372e+03 + 1.06046021e+03 1.04432210e+03 1.02852909e+03 1.01307129e+03 9.97939129e+02 + 9.83123423e+02 9.68615298e+02 9.54406200e+02 9.40487878e+02 9.26852371e+02 + 9.13491996e+02 9.00399335e+02 8.87567225e+02 8.74988744e+02 8.62657207e+02 + 8.50566152e+02 8.38709332e+02 8.27080706e+02 8.15674431e+02 8.04484854e+02 + 7.93506505e+02 7.82734090e+02 7.72162481e+02 7.61786715e+02 7.51601983e+02 + 7.41603627e+02 7.31787132e+02 7.22148123e+02 7.12682357e+02 7.03385720e+02 + 6.94254225e+02 6.85283999e+02 6.76471287e+02 6.67812446e+02 6.59303936e+02 + 6.50942324e+02 6.42724275e+02 6.34646548e+02 6.26705997e+02 6.18899565e+02 + 6.11224280e+02 6.03677253e+02 5.96255678e+02 5.88956824e+02 5.81778037e+02 + 5.74716734e+02 5.67770403e+02 5.60936600e+02 5.54212947e+02 5.47597127e+02 + 5.41086888e+02 5.34680034e+02 5.28374430e+02 5.22167994e+02 5.16058699e+02 + 5.10044569e+02 5.04123681e+02 4.98294159e+02 4.92554175e+02 4.86901947e+02 + 4.81335739e+02 4.75853855e+02 4.70454645e+02 4.65136496e+02 4.59897836e+02 + 4.54737133e+02 4.49652890e+02 4.44643646e+02 4.39707976e+02 4.34844488e+02 + 4.30051824e+02 4.25328659e+02 4.20673696e+02 4.16085670e+02 4.11563347e+02 + 4.07105518e+02 4.02711005e+02 3.98378656e+02 3.94107344e+02 3.89895969e+02 + 3.85743454e+02 3.81648749e+02 3.77610825e+02 3.73628677e+02 3.69701321e+02 + 3.65827796e+02 3.62007162e+02 3.58238498e+02 3.54520905e+02 3.50853501e+02 + 3.47235425e+02 3.43665834e+02 3.40143902e+02 3.36668821e+02 3.33239801e+02 + 3.29856066e+02 3.26516860e+02 3.23221438e+02 3.19969076e+02 3.16759059e+02 + 3.13590692e+02 3.10463290e+02 3.07376184e+02 3.04328720e+02 3.01320253e+02 + 2.98350154e+02 2.95417807e+02 2.92522606e+02 2.89663958e+02 2.86841283e+02 + 2.84054011e+02 2.81301582e+02 2.78583450e+02 2.75899078e+02 2.73247937e+02 + 2.70629513e+02 2.68043298e+02 2.65488794e+02 2.62965516e+02 2.60472984e+02 + 2.58010728e+02 2.55578289e+02 2.53175214e+02 2.50801060e+02 2.48455392e+02 + 2.46137782e+02 2.43847811e+02 2.41585068e+02 2.39349147e+02 2.37139654e+02 + 2.34956196e+02 2.32798393e+02 2.30665869e+02 2.28558254e+02 2.26475186e+02 + 2.24416310e+02 2.22381275e+02 2.20369739e+02 2.18381363e+02 2.16415817e+02 + 2.14472775e+02 2.12551916e+02 2.10652927e+02 2.08775497e+02 2.06919325e+02 + 2.05084110e+02 2.03269560e+02 2.01475387e+02 1.99701306e+02 1.97947040e+02 + 1.96212314e+02 1.94496858e+02 1.92800409e+02 1.91122705e+02 1.89463490e+02 + 1.87822514e+02 1.86199527e+02 1.84594287e+02 1.83006553e+02 1.81436090e+02 + 1.79882667e+02 1.78346055e+02 1.76826030e+02 1.75322370e+02 1.73834860e+02 + 1.72363285e+02 1.70907435e+02 1.69467104e+02 1.68042086e+02 1.66632183e+02 + 1.65237197e+02 1.63856933e+02 1.62491201e+02 1.61139813e+02 1.59802583e+02 + 1.58479330e+02 1.57169873e+02 1.55874037e+02 1.54591647e+02 1.53322532e+02 + 1.52066524e+02 1.50823456e+02 1.49593165e+02 1.48375490e+02 1.47170273e+02 + 1.45977356e+02 1.44796588e+02 1.43627815e+02 1.42470889e+02 1.41325662e+02 + 1.40191991e+02 1.39069732e+02 1.37958744e+02 1.36858890e+02 1.35770033e+02 + 1.34692038e+02 1.33624774e+02 1.32568109e+02 1.31521915e+02 1.30486065e+02 + 1.29460434e+02 1.28444900e+02 1.27439341e+02 1.26443637e+02 1.25457671e+02 + 1.24481326e+02 1.23514488e+02 1.22557044e+02 1.21608883e+02 1.20669895e+02 + 1.19739973e+02 1.18819008e+02 1.17906897e+02 1.17003536e+02 1.16108822e+02 + 1.15222655e+02 1.14344935e+02 1.13475565e+02 1.12614448e+02 1.11761488e+02 + 1.10916591e+02 1.10079666e+02 1.09250620e+02 1.08429363e+02 1.07615807e+02 + 1.06809864e+02 1.06011446e+02 1.05220470e+02 1.04436850e+02 1.03660504e+02 + 1.02891350e+02 1.02129306e+02 1.01374294e+02 1.00626234e+02 9.98850490e+01 + 9.91506621e+01 9.84229978e+01 9.77019815e+01 9.69875397e+01 9.62795998e+01 + 9.55780899e+01 9.48829395e+01 9.41940788e+01 9.35114387e+01 9.28349515e+01 + 9.21645498e+01 9.15001676e+01 9.08417394e+01 9.01892007e+01 8.95424878e+01 + 8.89015379e+01 8.82662888e+01 8.76366793e+01 8.70126489e+01 8.63941379e+01 + 8.57810873e+01 8.51734390e+01 8.45711354e+01 8.39741198e+01 8.33823362e+01 + 8.27957293e+01 8.22142444e+01 8.16378276e+01 8.10664257e+01 8.04999861e+01 + 7.99384568e+01 7.93817865e+01 7.88299247e+01 7.82828212e+01 7.77404266e+01 + 7.72026922e+01 7.66695698e+01 7.61410118e+01 7.56169711e+01 7.50974014e+01 + 7.45822568e+01 7.40714918e+01 7.35650619e+01 7.30629228e+01 7.25650308e+01 + 7.20713427e+01 7.15818160e+01 7.10964085e+01 7.06150787e+01 7.01377854e+01 + 6.96644881e+01 6.91951466e+01 6.87297212e+01 6.82681729e+01 6.78104629e+01 + 6.73565530e+01 6.69064053e+01 6.64599827e+01 6.60172481e+01 6.55781651e+01 + 6.51426977e+01 6.47108103e+01 6.42824677e+01 6.38576352e+01 6.34362783e+01 + 6.30183631e+01 6.26038561e+01 6.21927241e+01 6.17849342e+01 6.13804542e+01 + 6.09792519e+01 6.05812957e+01 6.01865543e+01 5.97949967e+01 5.94065925e+01 + 5.90213113e+01 5.86391234e+01 5.82599991e+01 5.78839092e+01 5.75108250e+01 + 5.71407179e+01 5.67735596e+01 5.64093223e+01 5.60479784e+01 5.56895007e+01 + 5.53338621e+01 5.49810362e+01 5.46309964e+01 5.42837169e+01 5.39391717e+01 + 5.35973355e+01 5.32581831e+01 5.29216896e+01 5.25878303e+01 5.22565810e+01 + 5.19279175e+01 5.16018161e+01 5.12782532e+01 5.09572056e+01 5.06386501e+01 + 5.03225641e+01 5.00089251e+01 4.96977108e+01 4.93888991e+01 4.90824683e+01 + 4.87783969e+01 4.84766635e+01 4.81772471e+01 4.78801269e+01 4.75852822e+01 + 4.72926927e+01 4.70023383e+01 4.67141989e+01 4.64282548e+01 4.61444866e+01 + 4.58628749e+01 4.55834007e+01 4.53060451e+01 4.50307894e+01 4.47576150e+01 + 4.44865039e+01 4.42174378e+01 4.39503989e+01 4.36853695e+01 4.34223320e+01 + 4.31612692e+01 4.29021640e+01 4.26449994e+01 4.23897586e+01 4.21364250e+01 + 4.18849823e+01 4.16354141e+01 4.13877045e+01 4.11418375e+01 4.08977974e+01 + 4.06555686e+01 4.04151358e+01 4.01764837e+01 3.99395973e+01 3.97044616e+01 + 3.94710618e+01 3.92393834e+01 3.90094120e+01 3.87811332e+01 3.85545328e+01 + 3.83295969e+01 3.81063117e+01 3.78846634e+01 3.76646384e+01 3.74462233e+01 + 3.72294049e+01 3.70141699e+01 3.68005054e+01 3.65883986e+01 3.63778365e+01 + 3.61688067e+01 3.59612967e+01 3.57552940e+01 3.55507865e+01 3.53477621e+01 + 3.51462088e+01 3.49461146e+01 3.47474680e+01 3.45502573e+01 3.43544709e+01 + 3.41600975e+01 3.39671259e+01 3.37755448e+01 3.35853433e+01 3.33965104e+01 + 3.32090353e+01 3.30229073e+01 3.28381158e+01 3.26546502e+01 3.24725003e+01 + 3.22916557e+01 3.21121062e+01 3.19338418e+01 3.17568524e+01 3.15811282e+01 + 3.14066595e+01 3.12334364e+01 3.10614495e+01 3.08906892e+01 3.07211461e+01 + 3.05528109e+01 3.03856744e+01 3.02197274e+01 3.00549609e+01 2.98913659e+01 + 2.97289337e+01 2.95676552e+01 2.94075220e+01 2.92485253e+01 2.90906567e+01 + 2.89339075e+01 2.87782696e+01 2.86237345e+01 2.84702941e+01 2.83179402e+01 + 2.81666647e+01 2.80164597e+01 2.78673172e+01 2.77192294e+01 2.75721884e+01 + 2.74261867e+01 2.72812164e+01 2.71372702e+01 2.69943404e+01 2.68524196e+01 + 2.67115005e+01 2.65715758e+01 2.64326381e+01 2.62946804e+01 2.61576954e+01 + 2.60216762e+01 2.58866157e+01 2.57525070e+01 2.56193432e+01 2.54871175e+01 + 2.53558231e+01 2.52254532e+01 2.50960012e+01 2.49674605e+01 2.48398246e+01 + 2.47130868e+01 2.45872407e+01 2.44622800e+01 2.43381982e+01 2.42149890e+01 + 2.40926461e+01 2.39711634e+01 2.38505345e+01 2.37307534e+01 2.36118139e+01 + 2.34937099e+01 2.33764355e+01 2.32599847e+01 2.31443514e+01 2.30295297e+01 + 2.29155138e+01 2.28022979e+01 2.26898760e+01 2.25782423e+01 2.24673913e+01 + 2.23573170e+01 2.22480138e+01 2.21394760e+01 2.20316979e+01 2.19246741e+01 + 2.18183987e+01 2.17128663e+01 2.16080713e+01 2.15040081e+01 2.14006713e+01 + 2.12980553e+01 2.11961547e+01 2.10949639e+01 2.09944776e+01 2.08946903e+01 + 2.07955965e+01 2.06971909e+01 2.05994680e+01 2.05024225e+01 2.04060489e+01 + 2.03103419e+01 2.02152961e+01 2.01209062e+01 2.00271667e+01 1.99340723e+01 + 1.98416176e+01 1.97497974e+01 1.96586061e+01 1.95680384e+01 1.94780891e+01 + 1.93887526e+01 1.93000236e+01 1.92118968e+01 1.91243667e+01 1.90374279e+01 + 1.89510751e+01 1.88653027e+01 1.87801054e+01 1.86954777e+01 1.86114142e+01 + 1.85279093e+01 1.84449576e+01 1.83625536e+01 1.82806917e+01 1.81993664e+01 + 1.81185722e+01 1.80383034e+01 1.79585544e+01 1.78793197e+01 1.78005935e+01 + 1.77223703e+01 1.76446442e+01 1.75674096e+01 1.74906608e+01 1.74143919e+01 + 1.73385972e+01 1.72632708e+01 1.71884069e+01 1.71139997e+01 1.70400432e+01 + 1.69665314e+01 1.68934585e+01 1.68208185e+01 1.67486053e+01 1.66768129e+01 + 1.66054352e+01 1.65344662e+01 1.64638996e+01 1.63937295e+01 1.63239495e+01 + 1.62545536e+01 1.61855354e+01 1.61168888e+01 1.60486074e+01 1.59806849e+01 + 1.59131152e+01 1.58458917e+01 1.57790082e+01 1.57124583e+01 1.56462356e+01 + 1.55803337e+01 1.55147462e+01 1.54494667e+01 1.53844886e+01 1.53198057e+01 + 1.52554114e+01 1.51912992e+01 1.51274628e+01 1.50638956e+01 1.50005912e+01 + 1.49375432e+01 1.48747451e+01 1.48121904e+01 1.47498729e+01 1.46877860e+01 + 1.46259234e+01 1.45642788e+01 1.45028458e+01 1.44416180e+01 1.43805894e+01 + 1.43197535e+01 1.42591043e+01 1.41986356e+01 1.41383412e+01 1.40782152e+01 + 1.40182515e+01 1.39584442e+01 1.38987874e+01 1.38392754e+01 1.37799023e+01 + 1.37206626e+01 1.36615506e+01 1.36025608e+01 1.35436879e+01 1.34849265e+01 + 1.34262714e+01 1.33677175e+01 1.33092596e+01 1.32508930e+01 1.31926128e+01 + 1.31344143e+01 1.30762930e+01 1.30182443e+01 1.29602640e+01 1.29023479e+01 + 1.28444919e+01 1.27866920e+01 1.27289446e+01 1.26712459e+01 1.26135925e+01 + 1.25559810e+01 1.24984082e+01 1.24408710e+01 1.23833667e+01 1.23258924e+01 + 1.22684456e+01 1.22110239e+01 1.21536251e+01 1.20962470e+01 1.20388879e+01 + 1.19815458e+01 1.19242194e+01 1.18669071e+01 1.18096078e+01 1.17523204e+01 + 1.16950440e+01 1.16377779e+01 1.15805216e+01 1.15232746e+01 1.14660369e+01 + 1.14088083e+01 1.13515889e+01 1.12943791e+01 1.12371794e+01 1.11799903e+01 + 1.11228126e+01 1.10656472e+01 1.10084953e+01 1.09513580e+01 1.08942368e+01 + 1.08371332e+01 1.07800489e+01 1.07229856e+01 1.06659454e+01 1.06089302e+01 + 1.05519423e+01 1.04949840e+01 1.04380578e+01 1.03811662e+01 1.03243118e+01 + 1.02674975e+01 1.02107262e+01 1.01540007e+01 1.00973241e+01 1.00406996e+01 + 9.98413044e+00 9.92761985e+00 9.87117124e+00 9.81478802e+00 9.75847371e+00 + 9.70223184e+00 9.64606603e+00 9.58997992e+00 9.53397719e+00 9.47806158e+00 + 9.42223684e+00 9.36650675e+00 9.31087511e+00 9.25534574e+00 9.19992248e+00 + 9.14460916e+00 9.08940962e+00 9.03432771e+00 8.97936725e+00 8.92453207e+00 + 8.86982599e+00 8.81525279e+00 8.76081624e+00 8.70652009e+00 8.65236805e+00 + 8.59836381e+00 8.54451101e+00 8.49081326e+00 8.43727413e+00 8.38389714e+00 + 8.33068575e+00 8.27764339e+00 8.22477343e+00 8.17207918e+00 8.11956390e+00 + 8.06723078e+00 8.01508296e+00 7.96312350e+00 7.91135542e+00 7.85978164e+00 + 7.80840505e+00 7.75722843e+00 7.70625452e+00 7.65548598e+00 7.60492538e+00 + 7.55457525e+00 7.50443802e+00 7.45451604e+00 7.40481162e+00 7.35532695e+00 + 7.30606417e+00 7.25702534e+00 7.20821245e+00 7.15962739e+00 7.11127200e+00 + 7.06314804e+00 7.01525718e+00 6.96760102e+00 6.92018109e+00 6.87299885e+00 + 6.82605568e+00 6.77935288e+00 6.73289168e+00 6.68667325e+00 6.64069867e+00 + 6.59496898e+00 6.54948512e+00 6.50424797e+00 6.45925834e+00 6.41451700e+00 + 6.37002461e+00 6.32578181e+00 6.28178913e+00 6.23804709e+00 6.19455611e+00 + 6.15131656e+00 6.10832876e+00 6.06559296e+00 6.02310937e+00 5.98087813e+00 + 5.93889933e+00 5.89717300e+00 5.85569914e+00 5.81447769e+00 5.77350853e+00 + 5.73279150e+00 5.69232639e+00 5.65211296e+00 5.61215092e+00 5.57243991e+00 + 5.53297956e+00 5.49376946e+00 5.45480915e+00 5.41609812e+00 5.37763584e+00 + 5.33942175e+00 5.30145525e+00 5.26373568e+00 5.22626240e+00 5.18903469e+00 + 5.15205182e+00 5.11531304e+00 5.07881756e+00 5.04256457e+00 5.00655322e+00 + 4.97078266e+00 4.93525199e+00 4.89996030e+00 4.86490667e+00 4.83009013e+00 + 4.79550971e+00 4.76116442e+00 4.72705324e+00 4.69317516e+00 4.65952911e+00 + 4.62611405e+00 4.59292889e+00 4.55997254e+00 4.52724390e+00 4.49474186e+00 + 4.46246527e+00 4.43041301e+00 4.39858391e+00 4.36697683e+00 4.33559058e+00 + 4.30442399e+00 4.27347587e+00 4.24274502e+00 4.21223025e+00 4.18193034e+00 + 4.15184408e+00 4.12197025e+00 4.09230762e+00 4.06285497e+00 4.03361105e+00 + 4.00457465e+00 3.97574451e+00 3.94711939e+00 3.91869805e+00 3.89047924e+00 + 3.86246171e+00 3.83464422e+00 3.80702552e+00 3.77960436e+00 3.75237948e+00 + 3.72534965e+00 3.69851361e+00 3.67187011e+00 3.64541790e+00 3.61915576e+00 + 3.59308242e+00 3.56719665e+00 3.54149722e+00 3.51598288e+00 3.49065241e+00 + 3.46550458e+00 3.44053815e+00 3.41575191e+00 3.39114464e+00 3.36671512e+00 + 3.34246213e+00 3.31838448e+00 3.29448096e+00 3.27075038e+00 3.24719152e+00 + 3.22380322e+00 3.20058428e+00 3.17753353e+00 3.15464979e+00 3.13193188e+00 + 3.10937866e+00 3.08698896e+00 3.06476163e+00 3.04269551e+00 3.02078948e+00 + 2.99904239e+00 2.97745312e+00 2.95602054e+00 2.93474353e+00 2.91362099e+00 + 2.89265181e+00 2.87183488e+00 2.85116912e+00 2.83065343e+00 2.81028675e+00 + 2.79006799e+00 2.76999609e+00 2.75006998e+00 2.73028861e+00 2.71065093e+00 + 2.69115591e+00 2.67180250e+00 2.65258967e+00 2.63351641e+00 2.61458169e+00 + 2.59578452e+00 2.57712388e+00 2.55859877e+00 2.54020822e+00 2.52195123e+00 + 2.50382683e+00 2.48583406e+00 2.46797193e+00 2.45023951e+00 2.43263583e+00 + 2.41515996e+00 2.39781095e+00 2.38058788e+00 2.36348981e+00 2.34651584e+00 + 2.32966505e+00 2.31293654e+00 2.29632940e+00 2.27984274e+00 2.26347568e+00 + 2.24722733e+00 2.23109683e+00 2.21508330e+00 2.19918589e+00 2.18340374e+00 + 2.16773599e+00 2.15218181e+00 2.13674036e+00 2.12141081e+00 2.10619234e+00 + 2.09108412e+00 2.07608534e+00 2.06119520e+00 2.04641290e+00 2.03173764e+00 + 2.01716864e+00 2.00270510e+00 1.98834625e+00 1.97409133e+00 1.95993956e+00 + 1.94589018e+00 1.93194245e+00 1.91809560e+00 1.90434891e+00 1.89070162e+00 + 1.87715301e+00 1.86370236e+00 1.85034893e+00 1.83709202e+00 1.82393091e+00 + 1.81086490e+00 1.79789329e+00 1.78501538e+00 1.77223049e+00 1.75953793e+00 + 1.74693701e+00 1.73442708e+00 1.72200745e+00 1.70967747e+00 1.69743647e+00 + 1.68528380e+00 1.67321882e+00 1.66124088e+00 1.64934933e+00 1.63754355e+00 + 1.62582290e+00 1.61418677e+00 1.60263452e+00 1.59116555e+00 1.57977925e+00 + 1.56847500e+00 1.55725221e+00 1.54611027e+00 1.53504861e+00 1.52406662e+00 + 1.51316373e+00 1.50233935e+00 1.49159292e+00 1.48092386e+00 1.47033160e+00 + 1.45981558e+00 1.44937525e+00 1.43901005e+00 1.42871943e+00 1.41850285e+00 + 1.40835976e+00 1.39828964e+00 1.38829194e+00 1.37836613e+00 1.36851170e+00 + 1.35872813e+00 1.34901488e+00 1.33937146e+00 1.32979735e+00 1.32029205e+00 + 1.31085505e+00 1.30148586e+00 1.29218399e+00 1.28294893e+00 1.27378022e+00 + 1.26467735e+00 1.25563986e+00 1.24666727e+00 1.23775911e+00 1.22891490e+00 + 1.22013419e+00 1.21141650e+00 1.20276139e+00 1.19416839e+00 1.18563706e+00 + 1.17716695e+00 1.16875761e+00 1.16040861e+00 1.15211950e+00 1.14388985e+00 + 1.13571922e+00 1.12760720e+00 1.11955335e+00 1.11155725e+00 1.10361848e+00 + 1.09573664e+00 1.08791130e+00 1.08014205e+00 1.07242850e+00 1.06477023e+00 + 1.05716685e+00 1.04961796e+00 1.04212316e+00 1.03468206e+00 1.02729427e+00 + 1.01995942e+00 1.01267711e+00 1.00544696e+00 9.98268607e-01 9.91141664e-01 + 9.84065763e-01 9.77040534e-01 9.70065612e-01 9.63140634e-01 9.56265238e-01 + 9.49439067e-01 9.42661765e-01 9.35932979e-01 9.29252359e-01 9.22619557e-01 + 9.16034229e-01 9.09496031e-01 9.03004625e-01 8.96559671e-01 8.90160836e-01 + 8.83807786e-01 8.77500192e-01 8.71237727e-01 8.65020063e-01 8.58846880e-01 + 8.52717856e-01 8.46632673e-01 8.40591016e-01 8.34592571e-01 8.28637027e-01 + 8.22724074e-01 8.16853407e-01 8.11024721e-01 8.05237713e-01 7.99492085e-01 + 7.93787537e-01 7.88123775e-01 7.82500506e-01 7.76917437e-01 7.71374280e-01 + 7.65870748e-01 7.60406556e-01 7.54981421e-01 7.49595063e-01 7.44247202e-01 + 7.38937563e-01 7.33665869e-01 7.28431850e-01 7.23235234e-01 7.18075752e-01 + 7.12953138e-01 7.07867127e-01 7.02817456e-01 6.97803864e-01 6.92826092e-01 + 6.87883884e-01 6.82976983e-01 6.78105137e-01 6.73268093e-01 6.68465603e-01 + 6.63697417e-01 6.58963291e-01 6.54262979e-01 6.49596240e-01 6.44962832e-01 + 6.40362516e-01 6.35795055e-01 6.31260213e-01 6.26757758e-01 6.22287455e-01 + 6.17849075e-01 6.13442390e-01 6.09067171e-01 6.04723193e-01 6.00410233e-01 + 5.96128068e-01 5.91876478e-01 5.87655243e-01 5.83464146e-01 5.79302972e-01 + 5.75171505e-01 5.71069533e-01 5.66996845e-01 5.62953230e-01 5.58938482e-01 + 5.54952393e-01 5.50994758e-01 5.47065373e-01 5.43164035e-01 5.39290546e-01 + 5.35444703e-01 5.31626311e-01 5.27835173e-01 5.24071092e-01 5.20333877e-01 + 5.16623334e-01 5.12939273e-01 5.09281504e-01 5.05649839e-01 5.02044091e-01 + 4.98464075e-01 4.94909607e-01 4.91380505e-01 4.87876585e-01 4.84397670e-01 + 4.80943579e-01 4.77514135e-01 4.74109162e-01 4.70728485e-01 4.67371930e-01 + 4.64039325e-01 4.60730498e-01 4.57445280e-01 4.54183502e-01 4.50944995e-01 + 4.47729594e-01 4.44537134e-01 4.41367451e-01 4.38220381e-01 4.35095763e-01 + 4.31993437e-01 4.28913243e-01 4.25855024e-01 4.22818621e-01 4.19803880e-01 + 4.16810646e-01 4.13838764e-01 4.10888082e-01 4.07958449e-01 4.05049714e-01 + 4.02161729e-01 3.99294344e-01 3.96447413e-01 3.93620789e-01 3.90814328e-01 + 3.88027885e-01 3.85261318e-01 3.82514484e-01 3.79787243e-01 3.77079454e-01 + 3.74390979e-01 3.71721680e-01 3.69071419e-01 3.66440061e-01 3.63827471e-01 + 3.61233515e-01 3.58658059e-01 3.56100972e-01 3.53562123e-01 3.51041381e-01 + 3.48538617e-01 3.46053702e-01 3.43586510e-01 3.41136913e-01 3.38704786e-01 + 3.36290004e-01 3.33892444e-01 3.31511982e-01 3.29148497e-01 3.26801867e-01 + 3.24471972e-01 3.22158693e-01 3.19861910e-01 3.17581506e-01 3.15317365e-01 + 3.13069370e-01 3.10837405e-01 3.08621358e-01 3.06421113e-01 3.04236558e-01 + 3.02067581e-01 2.99914071e-01 2.97775918e-01 2.95653012e-01 2.93545243e-01 + 2.91452505e-01 2.89374690e-01 2.87311691e-01 2.85263403e-01 2.83229721e-01 + 2.81210540e-01 2.79205757e-01 2.77215269e-01 2.75238974e-01 2.73276772e-01 + 2.71328561e-01 2.69394241e-01 2.67473714e-01 2.65566881e-01 2.63673644e-01 + 2.61793907e-01 2.59927573e-01 2.58074546e-01 2.56234732e-01 2.54408036e-01 + 2.52594364e-01 2.50793624e-01 2.49005724e-01 2.47230572e-01 2.45468077e-01 + 2.43718148e-01 2.41980696e-01 2.40255632e-01 2.38542868e-01 2.36842316e-01 + 2.35153889e-01 2.33477499e-01 2.31813063e-01 2.30160493e-01 2.28519706e-01 + 2.26890618e-01 2.25273144e-01 2.23667203e-01 2.22072711e-01 2.20489588e-01 + 2.18917752e-01 2.17357123e-01 2.15807620e-01 2.14269165e-01 2.12741679e-01 + 2.11225083e-01 2.09719299e-01 2.08224251e-01 2.06739862e-01 2.05266056e-01 + 2.03802758e-01 2.02349892e-01 2.00907384e-01 1.99475161e-01 1.98053148e-01 + 1.96641274e-01 1.95239466e-01 1.93847651e-01 1.92465759e-01 1.91093720e-01 + 1.89731462e-01 1.88378916e-01 1.87036013e-01 1.85702683e-01 1.84378860e-01 + 1.83064474e-01 1.81759459e-01 1.80463748e-01 1.79177274e-01 1.77899972e-01 + 1.76631776e-01 1.75372621e-01 1.74122443e-01 1.72881178e-01 1.71648762e-01 + 1.70425132e-01 1.69210225e-01 1.68003980e-01 1.66806334e-01 1.65617226e-01 + 1.64436595e-01 1.63264382e-01 1.62100525e-01 1.60944965e-01 1.59797644e-01 + 1.58658502e-01 1.57527480e-01 1.56404522e-01 1.55289570e-01 1.54182566e-01 + 1.53083453e-01 1.51992177e-01 1.50908680e-01 1.49832907e-01 1.48764803e-01 + 1.47704314e-01 1.46651386e-01 1.45605963e-01 1.44567993e-01 1.43537423e-01 + 1.42514199e-01 1.41498271e-01 1.40489584e-01 1.39488089e-01 1.38493732e-01 + 1.37506465e-01 1.36526236e-01 1.35552995e-01 1.34586691e-01 1.33627277e-01 + 1.32674702e-01 1.31728917e-01 1.30789875e-01 1.29857528e-01 1.28931827e-01 + 1.28012725e-01 1.27100175e-01 1.26194131e-01 1.25294545e-01 1.24401373e-01 + 1.23514568e-01 1.22634084e-01 1.21759878e-01 1.20891903e-01 1.20030116e-01 + 1.19174473e-01 1.18324929e-01 1.17481442e-01 1.16643967e-01 1.15812463e-01 + 1.14986886e-01 1.14167195e-01 1.13353347e-01 1.12545300e-01 1.11743014e-01 + 1.10946447e-01 1.10155559e-01 1.09370309e-01 1.08590657e-01 1.07816562e-01 + 1.07047986e-01 1.06284889e-01 1.05527232e-01 1.04774975e-01 1.04028082e-01 + 1.03286513e-01 1.02550230e-01 1.01819196e-01 1.01093373e-01 1.00372724e-01 + 9.96572130e-02 9.89468023e-02 9.82414559e-02 9.75411377e-02 9.68458118e-02 + 9.61554427e-02 9.54699950e-02 9.47894335e-02 9.41137236e-02 9.34428306e-02 + 9.27767201e-02 9.21153581e-02 9.14587107e-02 9.08067443e-02 9.01594255e-02 + 8.95167213e-02 8.88785986e-02 8.82450249e-02 8.76159677e-02 8.69913948e-02 + 8.63712742e-02 8.57555743e-02 8.51442634e-02 8.45373104e-02 8.39346840e-02 + 8.33363536e-02 8.27422884e-02 8.21524581e-02 8.15668325e-02 8.09853815e-02 + 8.04080755e-02 7.98348848e-02 7.92657803e-02 7.87007326e-02 7.81397129e-02 + 7.75826925e-02 7.70296429e-02 7.64805357e-02 7.59353429e-02 7.53940365e-02 + 7.48565889e-02 7.43229725e-02 7.37931601e-02 7.32671244e-02 7.27448387e-02 + 7.22262761e-02 7.17114101e-02 7.12002144e-02 7.06926628e-02 7.01887293e-02 + 6.96883881e-02 6.91916136e-02 6.86983804e-02 6.82086633e-02 6.77224371e-02 + 6.72396770e-02 6.67603584e-02 6.62844565e-02 6.58119472e-02 6.53428062e-02 + 6.48770095e-02 6.44145332e-02 6.39553537e-02 6.34994475e-02 6.30467913e-02 + 6.25973618e-02 6.21511361e-02 6.17080914e-02 6.12682049e-02 6.08314542e-02 + 6.03978168e-02 5.99672707e-02 5.95397938e-02 5.91153641e-02 5.86939600e-02 + 5.82755599e-02 5.78601423e-02 5.74476861e-02 5.70381701e-02 5.66315734e-02 + 5.62278751e-02 5.58270545e-02 5.54290913e-02 5.50339649e-02 5.46416552e-02 + 5.42521421e-02 5.38654056e-02 5.34814260e-02 5.31001837e-02 5.27216590e-02 + 5.23458326e-02 5.19726854e-02 5.16021981e-02 5.12343518e-02 5.08691278e-02 + 5.05065072e-02 5.01464716e-02 4.97890026e-02 4.94340817e-02 4.90816910e-02 + 4.87318122e-02 4.83844276e-02 4.80395193e-02 4.76970697e-02 4.73570612e-02 + 4.70194765e-02 4.66842983e-02 4.63515094e-02 4.60210928e-02 4.56930316e-02 + 4.53673090e-02 4.50439082e-02 4.47228129e-02 4.44040065e-02 4.40874727e-02 + 4.37731953e-02 4.34611583e-02 4.31513456e-02 4.28437414e-02 4.25383300e-02 + 4.22350957e-02 4.19340230e-02 4.16350965e-02 4.13383009e-02 4.10436211e-02 + 4.07510418e-02 4.04605482e-02 4.01721254e-02 3.98857586e-02 3.96014332e-02 + 3.93191346e-02 3.90388484e-02 3.87605602e-02 3.84842558e-02 3.82099210e-02 + 3.79375418e-02 3.76671043e-02 3.73985946e-02 3.71319989e-02 3.68673037e-02 + 3.66044954e-02 3.63435605e-02 3.60844856e-02 3.58272576e-02 3.55718633e-02 + 3.53182895e-02 3.50665233e-02 3.48165518e-02 3.45683623e-02 3.43219420e-02 + 3.40772783e-02 3.38343586e-02 3.35931707e-02 3.33537020e-02 3.31159404e-02 + 3.28798737e-02 3.26454897e-02 3.24127766e-02 3.21817224e-02 3.19523153e-02 + 3.17245434e-02 3.14983953e-02 3.12738592e-02 3.10509238e-02 3.08295775e-02 + 3.06098091e-02 3.03916074e-02 3.01749610e-02 2.99598591e-02 2.97462905e-02 + 2.95342443e-02 2.93237097e-02 2.91146759e-02 2.89071322e-02 2.87010679e-02 + 2.84964726e-02 2.82933358e-02 2.80916470e-02 2.78913959e-02 2.76925724e-02 + 2.74951661e-02 2.72991671e-02 2.71045652e-02 2.69113506e-02 2.67195132e-02 + 2.65290434e-02 2.63399314e-02 2.61521674e-02 2.59657420e-02 2.57806454e-02 + 2.55968683e-02 2.54144013e-02 2.52332350e-02 2.50533601e-02 2.48747675e-02 + 2.46974479e-02 2.45213924e-02 2.43465919e-02 2.41730374e-02 2.40007202e-02 + 2.38296313e-02 2.36597620e-02 2.34911036e-02 2.33236475e-02 2.31573851e-02 + 2.29923079e-02 2.28284075e-02 2.26656754e-02 2.25041034e-02 2.23436831e-02 + 2.21844064e-02 2.20262651e-02 2.18692510e-02 2.17133563e-02 2.15585729e-02 + 2.14048928e-02 2.12523082e-02 2.11008114e-02 2.09503945e-02 2.08010498e-02 + 2.06527697e-02 2.05055467e-02 2.03593731e-02 2.02142415e-02 2.00701445e-02 + 1.99270747e-02 1.97850247e-02 1.96439874e-02 1.95039554e-02 1.93649217e-02 + 1.92268790e-02 1.90898204e-02 1.89537388e-02 1.88186273e-02 1.86844789e-02 + 1.85512868e-02 1.84190442e-02 1.82877442e-02 1.81573802e-02 1.80279455e-02 + 1.78994335e-02 1.77718376e-02 1.76451512e-02 1.75193680e-02 1.73944813e-02 + 1.72704850e-02 1.71473725e-02 1.70251376e-02 1.69037741e-02 1.67832757e-02 + 1.66636363e-02 1.65448498e-02 1.64269100e-02 1.63098110e-02 1.61935467e-02 + 1.60781111e-02 1.59634985e-02 1.58497029e-02 1.57367184e-02 1.56245394e-02 + 1.55131600e-02 1.54025746e-02 1.52927776e-02 1.51837632e-02 1.50755259e-02 + 1.49680602e-02 1.48613605e-02 1.47554215e-02 1.46502376e-02 1.45458035e-02 + 1.44421139e-02 1.43391635e-02 1.42369469e-02 1.41354590e-02 1.40346945e-02 + 1.39346484e-02 1.38353154e-02 1.37366905e-02 1.36387686e-02 1.35415448e-02 + 1.34450141e-02 1.33491714e-02 1.32540120e-02 1.31595309e-02 1.30657234e-02 + 1.29725845e-02 1.28801096e-02 1.27882939e-02 1.26971327e-02 1.26063151e-02 + 1.25154436e-02 1.24245269e-02 1.23335755e-02 1.22425997e-02 1.21516097e-02 + 1.20606156e-02 1.19696276e-02 1.18786553e-02 1.17877088e-02 1.16967975e-02 + 1.16059312e-02 1.15151193e-02 1.14243711e-02 1.13336959e-02 1.12431028e-02 + 1.11526008e-02 1.10621990e-02 1.09719059e-02 1.08817305e-02 1.07916812e-02 + 1.07017665e-02 1.06119947e-02 1.05223742e-02 1.04329131e-02 1.03436193e-02 + 1.02545008e-02 1.01655655e-02 1.00768209e-02 9.98827475e-03 9.89993445e-03 + 9.81180737e-03 9.72390078e-03 9.63622180e-03 9.54877749e-03 9.46157475e-03 + 9.37462041e-03 9.28792117e-03 9.20148363e-03 9.11531428e-03 9.02941949e-03 + 8.94380554e-03 8.85847859e-03 8.77344469e-03 8.68870981e-03 8.60427978e-03 + 8.52016033e-03 8.43635711e-03 8.35287563e-03 8.26972131e-03 8.18689948e-03 + 8.10441534e-03 8.02227400e-03 7.94048046e-03 7.85903964e-03 7.77795632e-03 + 7.69723520e-03 7.61688088e-03 7.53689786e-03 7.45729054e-03 7.37806320e-03 + 7.29922004e-03 7.22076516e-03 7.14270257e-03 7.06503616e-03 6.98776974e-03 + 6.91090701e-03 6.83445160e-03 6.75840702e-03 6.68277668e-03 6.60756394e-03 + 6.53277201e-03 6.45840404e-03 6.38446310e-03 6.31095212e-03 6.23787400e-03 + 6.16523150e-03 6.09302732e-03 6.02126407e-03 5.94994425e-03 5.87907029e-03 + 5.80864453e-03 5.73866924e-03 5.66914657e-03 5.60007862e-03 5.53146739e-03 + 5.46331479e-03 5.39562266e-03 5.32839276e-03 5.26162676e-03 5.19532625e-03 + 5.12949276e-03 5.06412771e-03 4.99923247e-03 4.93480832e-03 4.87085646e-03 + 4.80737803e-03 4.74437407e-03 4.68184557e-03 4.61979344e-03 4.55821851e-03 + 4.49712154e-03 4.43650324e-03 4.37636421e-03 4.31670502e-03 4.25752614e-03 + 4.19882800e-03 4.14061094e-03 4.08287524e-03 4.02562113e-03 3.96884876e-03 + 3.91255821e-03 3.85674951e-03 3.80142263e-03 3.74657745e-03 3.69221384e-03 + 3.63833156e-03 3.58493033e-03 3.53200982e-03 3.47956964e-03 3.42760932e-03 + 3.37612837e-03 3.32512621e-03 3.27460223e-03 3.22455576e-03 3.17498607e-03 + 3.12589238e-03 3.07727386e-03 3.02912963e-03 2.98145877e-03 2.93426028e-03 + 2.88753314e-03 2.84127627e-03 2.79548856e-03 2.75016882e-03 2.70531585e-03 + 2.66092838e-03 2.61700511e-03 2.57354469e-03 2.53054574e-03 2.48800680e-03 + 2.44592643e-03 2.40430309e-03 2.36313524e-03 2.32242128e-03 2.28215958e-03 + 2.24234848e-03 2.20298627e-03 2.16407120e-03 2.12560150e-03 2.08757536e-03 + 2.04999094e-03 2.01284635e-03 1.97613968e-03 1.93986899e-03 1.90403230e-03 + 1.86862762e-03 1.83365289e-03 1.79910607e-03 1.76498506e-03 1.73128773e-03 + 1.69801194e-03 1.66515551e-03 1.63271624e-03 1.60069191e-03 1.56908027e-03 + 1.53787904e-03 1.50708593e-03 1.47669860e-03 1.44671473e-03 1.41713194e-03 + 1.38794786e-03 1.35916007e-03 1.33076615e-03 1.30276366e-03 1.27515013e-03 + 1.24792309e-03 1.22108002e-03 1.19461843e-03 1.16853578e-03 1.14282952e-03 + 1.11749709e-03 1.09253592e-03 1.06794342e-03 1.04371697e-03 1.01985397e-03 + 9.96351789e-04 9.73207785e-04 9.50419307e-04 9.27983692e-04 9.05898268e-04 + 8.84160354e-04 8.62767259e-04 8.41716282e-04 8.21004715e-04 8.00629843e-04 + 7.80588942e-04 7.60879284e-04 7.41498133e-04 7.22442746e-04 7.03710377e-04 + 6.85298275e-04 6.67203682e-04 6.49423839e-04 6.31955983e-04 6.14797347e-04 + 5.97945161e-04 5.81396654e-04 5.65149053e-04 5.49199583e-04 5.33545470e-04 + 5.18183936e-04 5.03112205e-04 4.88327503e-04 4.73827052e-04 4.59608080e-04 + 4.45667814e-04 4.32003482e-04 4.18612315e-04 4.05491548e-04 3.92638416e-04 + 3.80050161e-04 3.67724024e-04 3.55657254e-04 3.43847102e-04 3.32290824e-04 + 3.20985682e-04 3.09928942e-04 2.99117876e-04 2.88549763e-04 2.78221885e-04 + 2.68131534e-04 2.58276007e-04 2.48652609e-04 2.39258651e-04 2.30091454e-04 + 2.21148345e-04 2.12426659e-04 2.03923742e-04 1.95636945e-04 1.87563631e-04 + 1.79701172e-04 1.72046947e-04 1.64598349e-04 1.57352776e-04 1.50307641e-04 + 1.43460364e-04 1.36808378e-04 1.30349125e-04 1.24080059e-04 1.17998647e-04 + 1.12102364e-04 1.06388699e-04 1.00855154e-04 9.54992401e-05 9.03184837e-05 + 8.53104220e-05 8.04726054e-05 7.58025972e-05 7.12979737e-05 6.69563244e-05 + 6.27752523e-05 5.87523737e-05 5.48853189e-05 5.11717319e-05 4.76092706e-05 + 4.41956073e-05 4.09284284e-05 3.78054347e-05 3.48243416e-05 3.19828792e-05 + 2.92787923e-05 2.67098408e-05 2.42737994e-05 2.19684581e-05 1.97916221e-05 + 1.77411120e-05 1.58147637e-05 1.40104289e-05 1.23259747e-05 1.07592841e-05 + 9.30825580e-06 7.97080453e-06 6.74486090e-06 5.62837161e-06 4.61929948e-06 + 3.71562352e-06 2.91533901e-06 2.21645756e-06 1.61700713e-06 1.11503215e-06 + 7.08593517e-07 3.95768671e-07 1.74651632e-07 4.33530448e-08 0.00000000e+00 + 8.54089214e+04 8.54089214e+04 4.71851341e+04 3.12780768e+04 2.33258140e+04 + 1.85554559e+04 1.53760394e+04 1.31057232e+04 1.14035870e+04 1.00802305e+04 + 9.02201376e+03 8.15662046e+03 7.43583982e+03 6.82629521e+03 6.30414625e+03 + 5.85191002e+03 5.45647442e+03 5.10781256e+03 4.79812582e+03 4.52125743e+03 + 4.27228201e+03 4.04721238e+03 3.84278633e+03 3.65630905e+03 3.48553486e+03 + 3.32857745e+03 3.18384071e+03 3.04996505e+03 2.92578509e+03 2.81029625e+03 + 2.70262791e+03 2.60202179e+03 2.50781443e+03 2.41942281e+03 2.33633252e+03 + 2.25808794e+03 2.18428413e+03 2.11455989e+03 2.04859210e+03 1.98609078e+03 + 1.92679496e+03 1.87046914e+03 1.81690028e+03 1.76589516e+03 1.71727813e+03 + 1.67088917e+03 1.62658219e+03 1.58422355e+03 1.54369075e+03 1.50487129e+03 + 1.46766169e+03 1.43196661e+03 1.39769802e+03 1.36477457e+03 1.33312095e+03 + 1.30266729e+03 1.27334878e+03 1.24510512e+03 1.21788020e+03 1.19162171e+03 + 1.16628084e+03 1.14181198e+03 1.11817248e+03 1.09532240e+03 1.07322430e+03 + 1.05184306e+03 1.03114567e+03 1.01110113e+03 9.91680241e+02 9.72855519e+02 + 9.54601047e+02 9.36892379e+02 9.19706428e+02 9.03021378e+02 8.86816598e+02 + 8.71072562e+02 8.55770773e+02 8.40893704e+02 8.26424727e+02 8.12348062e+02 + 7.98648722e+02 7.85312464e+02 7.72325742e+02 7.59675669e+02 7.47349973e+02 + 7.35336964e+02 7.23625501e+02 7.12204954e+02 7.01065184e+02 6.90196508e+02 + 6.79589678e+02 6.69235854e+02 6.59126586e+02 6.49253787e+02 6.39609720e+02 + 6.30186973e+02 6.20978448e+02 6.11977343e+02 6.03177134e+02 5.94571564e+02 + 5.86154629e+02 5.77920564e+02 5.69863834e+02 5.61979120e+02 5.54261311e+02 + 5.46705492e+02 5.39306934e+02 5.32061090e+02 5.24963582e+02 5.18010194e+02 + 5.11196866e+02 5.04519685e+02 4.97974882e+02 4.91558820e+02 4.85267995e+02 + 4.79099023e+02 4.73048641e+02 4.67113699e+02 4.61291153e+02 4.55578065e+02 + 4.49971597e+02 4.44469004e+02 4.39067634e+02 4.33764924e+02 4.28558392e+02 + 4.23445639e+02 4.18424343e+02 4.13492256e+02 4.08647203e+02 4.03887075e+02 + 3.99209833e+02 3.94613497e+02 3.90096152e+02 3.85655939e+02 3.81291059e+02 + 3.76999763e+02 3.72780358e+02 3.68631201e+02 3.64550696e+02 3.60537296e+02 + 3.56589497e+02 3.52705842e+02 3.48884912e+02 3.45125332e+02 3.41425764e+02 + 3.37784909e+02 3.34201504e+02 3.30674322e+02 3.27202169e+02 3.23783884e+02 + 3.20418339e+02 3.17104435e+02 3.13841105e+02 3.10627308e+02 3.07462032e+02 + 3.04344294e+02 3.01273133e+02 2.98247616e+02 2.95266833e+02 2.92329900e+02 + 2.89435952e+02 2.86584149e+02 2.83773672e+02 2.81003722e+02 2.78273520e+02 + 2.75582308e+02 2.72929346e+02 2.70313911e+02 2.67735301e+02 2.65192828e+02 + 2.62685823e+02 2.60213632e+02 2.57775617e+02 2.55371156e+02 2.52999641e+02 + 2.50660479e+02 2.48353090e+02 2.46076909e+02 2.43831384e+02 2.41615975e+02 + 2.39430155e+02 2.37273410e+02 2.35145235e+02 2.33045140e+02 2.30972644e+02 + 2.28927278e+02 2.26908581e+02 2.24916107e+02 2.22949415e+02 2.21008077e+02 + 2.19091672e+02 2.17199792e+02 2.15332033e+02 2.13488004e+02 2.11667319e+02 + 2.09869604e+02 2.08094489e+02 2.06341616e+02 2.04610631e+02 2.02901189e+02 + 2.01212953e+02 1.99545592e+02 1.97898782e+02 1.96272206e+02 1.94665554e+02 + 1.93078520e+02 1.91510808e+02 1.89962126e+02 1.88432186e+02 1.86920710e+02 + 1.85427423e+02 1.83952055e+02 1.82494343e+02 1.81054029e+02 1.79630858e+02 + 1.78224583e+02 1.76834961e+02 1.75461751e+02 1.74104720e+02 1.72763638e+02 + 1.71438281e+02 1.70128427e+02 1.68833859e+02 1.67554365e+02 1.66289736e+02 + 1.65039768e+02 1.63804259e+02 1.62583012e+02 1.61375835e+02 1.60182536e+02 + 1.59002930e+02 1.57836834e+02 1.56684068e+02 1.55544455e+02 1.54417822e+02 + 1.53304000e+02 1.52202820e+02 1.51114119e+02 1.50037736e+02 1.48973511e+02 + 1.47921291e+02 1.46880920e+02 1.45852251e+02 1.44835133e+02 1.43829423e+02 + 1.42834978e+02 1.41851657e+02 1.40879323e+02 1.39917840e+02 1.38967075e+02 + 1.38026896e+02 1.37097174e+02 1.36177784e+02 1.35268599e+02 1.34369498e+02 + 1.33480360e+02 1.32601065e+02 1.31731497e+02 1.30871541e+02 1.30021083e+02 + 1.29180012e+02 1.28348219e+02 1.27525595e+02 1.26712033e+02 1.25907430e+02 + 1.25111682e+02 1.24324686e+02 1.23546344e+02 1.22776556e+02 1.22015225e+02 + 1.21262256e+02 1.20517553e+02 1.19781025e+02 1.19052579e+02 1.18332124e+02 + 1.17619573e+02 1.16914836e+02 1.16217827e+02 1.15528460e+02 1.14846652e+02 + 1.14172318e+02 1.13505378e+02 1.12845749e+02 1.12193352e+02 1.11548107e+02 + 1.10909938e+02 1.10278766e+02 1.09654517e+02 1.09037114e+02 1.08426484e+02 + 1.07822554e+02 1.07225250e+02 1.06634503e+02 1.06050240e+02 1.05472393e+02 + 1.04900892e+02 1.04335670e+02 1.03776657e+02 1.03223789e+02 1.02676999e+02 + 1.02136221e+02 1.01601391e+02 1.01072445e+02 1.00549321e+02 1.00031955e+02 + 9.95202850e+01 9.90142506e+01 9.85137906e+01 9.80188451e+01 9.75293545e+01 + 9.70452599e+01 9.65665028e+01 9.60930254e+01 9.56247704e+01 9.51616810e+01 + 9.47037009e+01 9.42507742e+01 9.38028458e+01 9.33598606e+01 9.29217644e+01 + 9.24885033e+01 9.20600236e+01 9.16362725e+01 9.12171972e+01 9.08027455e+01 + 9.03928657e+01 8.99875063e+01 8.95866163e+01 8.91901451e+01 8.87980424e+01 + 8.84102583e+01 8.80267434e+01 8.76474484e+01 8.72723244e+01 8.69013231e+01 + 8.65343963e+01 8.61714961e+01 8.58125750e+01 8.54575859e+01 8.51064819e+01 + 8.47592164e+01 8.44157432e+01 8.40760164e+01 8.37399902e+01 8.34076193e+01 + 8.30788587e+01 8.27536636e+01 8.24319894e+01 8.21137919e+01 8.17990272e+01 + 8.14876516e+01 8.11796217e+01 8.08748944e+01 8.05734267e+01 8.02751761e+01 + 7.99801003e+01 7.96881571e+01 7.93993048e+01 7.91135019e+01 7.88307069e+01 + 7.85508789e+01 7.82739771e+01 7.79999609e+01 7.77287902e+01 7.74604249e+01 + 7.71948253e+01 7.69319518e+01 7.66717652e+01 7.64142266e+01 7.61592973e+01 + 7.59069387e+01 7.56571128e+01 7.54097815e+01 7.51649071e+01 7.49224524e+01 + 7.46823800e+01 7.44446532e+01 7.42092353e+01 7.39760900e+01 7.37451811e+01 + 7.35164730e+01 7.32899300e+01 7.30655169e+01 7.28431986e+01 7.26229406e+01 + 7.24047084e+01 7.21884677e+01 7.19741848e+01 7.17618261e+01 7.15513583e+01 + 7.13427483e+01 7.11359635e+01 7.09309715e+01 7.07277401e+01 7.05262375e+01 + 7.03264321e+01 7.01282928e+01 6.99317885e+01 6.97368888e+01 6.95435632e+01 + 6.93517818e+01 6.91615148e+01 6.89727329e+01 6.87854070e+01 6.85995083e+01 + 6.84150084e+01 6.82318792e+01 6.80500928e+01 6.78696219e+01 6.76904391e+01 + 6.75125177e+01 6.73358312e+01 6.71603534e+01 6.69860584e+01 6.68129207e+01 + 6.66409151e+01 6.64700167e+01 6.63002010e+01 6.61314439e+01 6.59637213e+01 + 6.57970099e+01 6.56312863e+01 6.54665278e+01 6.53027117e+01 6.51398160e+01 + 6.49778186e+01 6.48166982e+01 6.46564335e+01 6.44970036e+01 6.43383881e+01 + 6.41805668e+01 6.40235197e+01 6.38672274e+01 6.37116708e+01 6.35568308e+01 + 6.34026891e+01 6.32492275e+01 6.30964280e+01 6.29442732e+01 6.27927459e+01 + 6.26418291e+01 6.24915063e+01 6.23417613e+01 6.21925783e+01 6.20439415e+01 + 6.18958357e+01 6.17482461e+01 6.16011579e+01 6.14545569e+01 6.13084290e+01 + 6.11627605e+01 6.10175380e+01 6.08727484e+01 6.07283791e+01 6.05844173e+01 + 6.04408511e+01 6.02976684e+01 6.01548577e+01 6.00124076e+01 5.98703072e+01 + 5.97285456e+01 5.95871125e+01 5.94459976e+01 5.93051910e+01 5.91646830e+01 + 5.90244644e+01 5.88845260e+01 5.87448589e+01 5.86054545e+01 5.84663047e+01 + 5.83274012e+01 5.81887362e+01 5.80503022e+01 5.79120918e+01 5.77740979e+01 + 5.76363137e+01 5.74987325e+01 5.73613480e+01 5.72241539e+01 5.70871444e+01 + 5.69503136e+01 5.68136560e+01 5.66771664e+01 5.65408396e+01 5.64046708e+01 + 5.62686552e+01 5.61327884e+01 5.59970660e+01 5.58614839e+01 5.57260382e+01 + 5.55907252e+01 5.54555412e+01 5.53204830e+01 5.51855472e+01 5.50507308e+01 + 5.49160309e+01 5.47814449e+01 5.46469700e+01 5.45126041e+01 5.43783446e+01 + 5.42441897e+01 5.41101372e+01 5.39761853e+01 5.38423325e+01 5.37085770e+01 + 5.35749175e+01 5.34413527e+01 5.33078815e+01 5.31745027e+01 5.30412154e+01 + 5.29080189e+01 5.27749124e+01 5.26418952e+01 5.25089671e+01 5.23761274e+01 + 5.22433760e+01 5.21107127e+01 5.19781374e+01 5.18456500e+01 5.17132507e+01 + 5.15809395e+01 5.14487169e+01 5.13165831e+01 5.11845384e+01 5.10525835e+01 + 5.09207189e+01 5.07889451e+01 5.06572630e+01 5.05256731e+01 5.03941765e+01 + 5.02627739e+01 5.01314663e+01 5.00002547e+01 4.98691402e+01 4.97381238e+01 + 4.96072067e+01 4.94763901e+01 4.93456753e+01 4.92150635e+01 4.90845560e+01 + 4.89541543e+01 4.88238597e+01 4.86936737e+01 4.85635977e+01 4.84336333e+01 + 4.83037819e+01 4.81740452e+01 4.80444247e+01 4.79149220e+01 4.77855388e+01 + 4.76562768e+01 4.75271375e+01 4.73981228e+01 4.72692343e+01 4.71404737e+01 + 4.70118428e+01 4.68833434e+01 4.67549771e+01 4.66267459e+01 4.64986515e+01 + 4.63706956e+01 4.62428801e+01 4.61152068e+01 4.59876775e+01 4.58602941e+01 + 4.57330582e+01 4.56059719e+01 4.54790368e+01 4.53522548e+01 4.52256277e+01 + 4.50991574e+01 4.49728457e+01 4.48466943e+01 4.47207051e+01 4.45948799e+01 + 4.44692205e+01 4.43437286e+01 4.42184061e+01 4.40932546e+01 4.39682761e+01 + 4.38434722e+01 4.37188447e+01 4.35943953e+01 4.34701257e+01 4.33460377e+01 + 4.32221329e+01 4.30984131e+01 4.29748798e+01 4.28515348e+01 4.27283798e+01 + 4.26054162e+01 4.24826459e+01 4.23600702e+01 4.22376909e+01 4.21155096e+01 + 4.19935276e+01 4.18717467e+01 4.17501683e+01 4.16287939e+01 4.15076250e+01 + 4.13866631e+01 4.12659096e+01 4.11453659e+01 4.10250336e+01 4.09049138e+01 + 4.07850081e+01 4.06653178e+01 4.05458443e+01 4.04265888e+01 4.03075526e+01 + 4.01887371e+01 4.00701435e+01 3.99517730e+01 3.98336269e+01 3.97157064e+01 + 3.95980126e+01 3.94805467e+01 3.93633099e+01 3.92463033e+01 3.91295280e+01 + 3.90129851e+01 3.88966757e+01 3.87806007e+01 3.86647613e+01 3.85491584e+01 + 3.84337931e+01 3.83186662e+01 3.82037788e+01 3.80891318e+01 3.79747260e+01 + 3.78605625e+01 3.77466420e+01 3.76329654e+01 3.75195335e+01 3.74063472e+01 + 3.72934073e+01 3.71807145e+01 3.70682695e+01 3.69560733e+01 3.68441263e+01 + 3.67324294e+01 3.66209833e+01 3.65097885e+01 3.63988459e+01 3.62881559e+01 + 3.61777192e+01 3.60675364e+01 3.59576080e+01 3.58479347e+01 3.57385170e+01 + 3.56293554e+01 3.55204504e+01 3.54118025e+01 3.53034122e+01 3.51952799e+01 + 3.50874060e+01 3.49797911e+01 3.48724355e+01 3.47653396e+01 3.46585038e+01 + 3.45519285e+01 3.44456139e+01 3.43395604e+01 3.42337684e+01 3.41282382e+01 + 3.40229699e+01 3.39179640e+01 3.38132206e+01 3.37087400e+01 3.36045224e+01 + 3.35005681e+01 3.33968772e+01 3.32934500e+01 3.31902865e+01 3.30873870e+01 + 3.29847516e+01 3.28823804e+01 3.27802736e+01 3.26784313e+01 3.25768535e+01 + 3.24755403e+01 3.23744918e+01 3.22737081e+01 3.21731893e+01 3.20729352e+01 + 3.19729460e+01 3.18732217e+01 3.17737623e+01 3.16745677e+01 3.15756379e+01 + 3.14769730e+01 3.13785728e+01 3.12804372e+01 3.11825664e+01 3.10849600e+01 + 3.09876181e+01 3.08905406e+01 3.07937274e+01 3.06971783e+01 3.06008932e+01 + 3.05048719e+01 3.04091144e+01 3.03136205e+01 3.02183900e+01 3.01234227e+01 + 3.00287185e+01 2.99342772e+01 2.98400985e+01 2.97461823e+01 2.96525283e+01 + 2.95591363e+01 2.94660061e+01 2.93731375e+01 2.92805302e+01 2.91881839e+01 + 2.90960984e+01 2.90042734e+01 2.89127086e+01 2.88214038e+01 2.87303587e+01 + 2.86395729e+01 2.85490462e+01 2.84587782e+01 2.83687687e+01 2.82790172e+01 + 2.81895236e+01 2.81002873e+01 2.80113082e+01 2.79225858e+01 2.78341198e+01 + 2.77459099e+01 2.76579556e+01 2.75702566e+01 2.74828125e+01 2.73956229e+01 + 2.73086875e+01 2.72220059e+01 2.71355776e+01 2.70494022e+01 2.69634795e+01 + 2.68778088e+01 2.67923899e+01 2.67072223e+01 2.66223055e+01 2.65376392e+01 + 2.64532230e+01 2.63690562e+01 2.62851387e+01 2.62014698e+01 2.61180491e+01 + 2.60348762e+01 2.59519507e+01 2.58692720e+01 2.57868397e+01 2.57046534e+01 + 2.56227125e+01 2.55410166e+01 2.54595652e+01 2.53783578e+01 2.52973940e+01 + 2.52166733e+01 2.51361951e+01 2.50559589e+01 2.49759644e+01 2.48962109e+01 + 2.48166980e+01 2.47374252e+01 2.46583919e+01 2.45795977e+01 2.45010421e+01 + 2.44227245e+01 2.43446444e+01 2.42668013e+01 2.41891946e+01 2.41118240e+01 + 2.40346888e+01 2.39577884e+01 2.38811225e+01 2.38046904e+01 2.37284917e+01 + 2.36525257e+01 2.35767919e+01 2.35012899e+01 2.34260191e+01 2.33509789e+01 + 2.32761688e+01 2.32015882e+01 2.31272367e+01 2.30531136e+01 2.29792185e+01 + 2.29055507e+01 2.28321097e+01 2.27588950e+01 2.26859061e+01 2.26131423e+01 + 2.25406031e+01 2.24682880e+01 2.23961964e+01 2.23243277e+01 2.22526815e+01 + 2.21812571e+01 2.21100539e+01 2.20390715e+01 2.19683093e+01 2.18977666e+01 + 2.18274430e+01 2.17573379e+01 2.16874508e+01 2.16177809e+01 2.15483279e+01 + 2.14790911e+01 2.14100700e+01 2.13412640e+01 2.12726726e+01 2.12042951e+01 + 2.11361311e+01 2.10681799e+01 2.10004410e+01 2.09329138e+01 2.08655978e+01 + 2.07984924e+01 2.07315971e+01 2.06649112e+01 2.05984342e+01 2.05321655e+01 + 2.04661046e+01 2.04002510e+01 2.03346039e+01 2.02691630e+01 2.02039276e+01 + 2.01388971e+01 2.00740711e+01 2.00094488e+01 1.99450298e+01 1.98808136e+01 + 1.98167994e+01 1.97529869e+01 1.96893754e+01 1.96259643e+01 1.95627531e+01 + 1.94997413e+01 1.94369282e+01 1.93743134e+01 1.93118962e+01 1.92496761e+01 + 1.91876525e+01 1.91258250e+01 1.90641928e+01 1.90027555e+01 1.89415126e+01 + 1.88804634e+01 1.88196074e+01 1.87589440e+01 1.86984728e+01 1.86381931e+01 + 1.85781044e+01 1.85182061e+01 1.84584977e+01 1.83989787e+01 1.83396484e+01 + 1.82805064e+01 1.82215521e+01 1.81627849e+01 1.81042044e+01 1.80458099e+01 + 1.79876009e+01 1.79295769e+01 1.78717373e+01 1.78140817e+01 1.77566093e+01 + 1.76993198e+01 1.76422125e+01 1.75852870e+01 1.75285426e+01 1.74719789e+01 + 1.74155954e+01 1.73593914e+01 1.73033665e+01 1.72475200e+01 1.71918516e+01 + 1.71363607e+01 1.70810466e+01 1.70259090e+01 1.69709472e+01 1.69161608e+01 + 1.68615492e+01 1.68071119e+01 1.67528484e+01 1.66987581e+01 1.66448405e+01 + 1.65910952e+01 1.65375215e+01 1.64841190e+01 1.64308872e+01 1.63778255e+01 + 1.63249334e+01 1.62722105e+01 1.62196561e+01 1.61672698e+01 1.61150511e+01 + 1.60629994e+01 1.60111143e+01 1.59593953e+01 1.59078418e+01 1.58564533e+01 + 1.58052293e+01 1.57541694e+01 1.57032730e+01 1.56525397e+01 1.56019688e+01 + 1.55515600e+01 1.55013128e+01 1.54512266e+01 1.54013009e+01 1.53515352e+01 + 1.53019291e+01 1.52524821e+01 1.52031937e+01 1.51540633e+01 1.51050906e+01 + 1.50562750e+01 1.50076159e+01 1.49591131e+01 1.49107659e+01 1.48625738e+01 + 1.48145365e+01 1.47666534e+01 1.47189241e+01 1.46713480e+01 1.46239246e+01 + 1.45766536e+01 1.45295345e+01 1.44825667e+01 1.44357498e+01 1.43890834e+01 + 1.43425669e+01 1.42961999e+01 1.42499819e+01 1.42039125e+01 1.41579912e+01 + 1.41122175e+01 1.40665910e+01 1.40211112e+01 1.39757777e+01 1.39305900e+01 + 1.38855476e+01 1.38406501e+01 1.37958971e+01 1.37512880e+01 1.37068225e+01 + 1.36625000e+01 1.36183202e+01 1.35742825e+01 1.35303866e+01 1.34866320e+01 + 1.34430183e+01 1.33995449e+01 1.33562115e+01 1.33130177e+01 1.32699629e+01 + 1.32270467e+01 1.31842688e+01 1.31416287e+01 1.30991259e+01 1.30567600e+01 + 1.30145306e+01 1.29724372e+01 1.29304794e+01 1.28886568e+01 1.28469690e+01 + 1.28054156e+01 1.27639960e+01 1.27227099e+01 1.26815569e+01 1.26405365e+01 + 1.25996484e+01 1.25588920e+01 1.25182671e+01 1.24777731e+01 1.24374097e+01 + 1.23971764e+01 1.23570729e+01 1.23170986e+01 1.22772533e+01 1.22375365e+01 + 1.21979477e+01 1.21584867e+01 1.21191529e+01 1.20799461e+01 1.20408656e+01 + 1.20019113e+01 1.19630826e+01 1.19243792e+01 1.18858007e+01 1.18473466e+01 + 1.18090166e+01 1.17708103e+01 1.17327273e+01 1.16947672e+01 1.16569296e+01 + 1.16192141e+01 1.15816204e+01 1.15441480e+01 1.15067965e+01 1.14695656e+01 + 1.14324549e+01 1.13954640e+01 1.13585925e+01 1.13218400e+01 1.12852062e+01 + 1.12486906e+01 1.12122930e+01 1.11760129e+01 1.11398499e+01 1.11038037e+01 + 1.10678739e+01 1.10320602e+01 1.09963621e+01 1.09607793e+01 1.09253114e+01 + 1.08899580e+01 1.08547189e+01 1.08195935e+01 1.07845816e+01 1.07496829e+01 + 1.07148968e+01 1.06802231e+01 1.06456614e+01 1.06112114e+01 1.05768727e+01 + 1.05426449e+01 1.05085277e+01 1.04745207e+01 1.04406236e+01 1.04068360e+01 + 1.03731576e+01 1.03395880e+01 1.03061269e+01 1.02727739e+01 1.02395287e+01 + 1.02063909e+01 1.01733603e+01 1.01404363e+01 1.01076188e+01 1.00749073e+01 + 1.00423016e+01 1.00098012e+01 9.97740586e+00 9.94511523e+00 9.91292898e+00 + 9.88084676e+00 9.84886825e+00 9.81699310e+00 9.78522099e+00 9.75355158e+00 + 9.72198455e+00 9.69051957e+00 9.65915630e+00 9.62789442e+00 9.59673361e+00 + 9.56567354e+00 9.53471389e+00 9.50385433e+00 9.47309455e+00 9.44243421e+00 + 9.41187301e+00 9.38141062e+00 9.35104672e+00 9.32078101e+00 9.29061315e+00 + 9.26054285e+00 9.23056977e+00 9.20069362e+00 9.17091408e+00 9.14123084e+00 + 9.11164358e+00 9.08215200e+00 9.05275580e+00 9.02345465e+00 8.99424827e+00 + 8.96513634e+00 8.93611856e+00 8.90719462e+00 8.87836423e+00 8.84962708e+00 + 8.82098287e+00 8.79243131e+00 8.76397209e+00 8.73560491e+00 8.70732949e+00 + 8.67914552e+00 8.65105271e+00 8.62305076e+00 8.59513939e+00 8.56731831e+00 + 8.53958721e+00 8.51194581e+00 8.48439382e+00 8.45693096e+00 8.42955693e+00 + 8.40227145e+00 8.37507424e+00 8.34796500e+00 8.32094347e+00 8.29400934e+00 + 8.26716234e+00 8.24040220e+00 8.21372862e+00 8.18714134e+00 8.16064006e+00 + 8.13422453e+00 8.10789445e+00 8.08164955e+00 8.05548956e+00 8.02941421e+00 + 8.00342321e+00 7.97751631e+00 7.95169322e+00 7.92595368e+00 7.90029741e+00 + 7.87472416e+00 7.84923364e+00 7.82382560e+00 7.79849977e+00 7.77325588e+00 + 7.74809366e+00 7.72301286e+00 7.69801321e+00 7.67309445e+00 7.64825632e+00 + 7.62349856e+00 7.59882090e+00 7.57422310e+00 7.54970489e+00 7.52526601e+00 + 7.50090621e+00 7.47662523e+00 7.45242282e+00 7.42829873e+00 7.40425270e+00 + 7.38028448e+00 7.35639382e+00 7.33258046e+00 7.30884417e+00 7.28518468e+00 + 7.26160176e+00 7.23809515e+00 7.21466461e+00 7.19130989e+00 7.16803075e+00 + 7.14482694e+00 7.12169822e+00 7.09864435e+00 7.07566508e+00 7.05276018e+00 + 7.02992940e+00 7.00717250e+00 6.98448925e+00 6.96187941e+00 6.93934274e+00 + 6.91687900e+00 6.89448796e+00 6.87216939e+00 6.84992304e+00 6.82774869e+00 + 6.80564610e+00 6.78361505e+00 6.76165529e+00 6.73976661e+00 6.71794876e+00 + 6.69620152e+00 6.67452467e+00 6.65291797e+00 6.63138120e+00 6.60991414e+00 + 6.58851655e+00 6.56718821e+00 6.54592890e+00 6.52473840e+00 6.50361648e+00 + 6.48256292e+00 6.46157750e+00 6.44066000e+00 6.41981020e+00 6.39902789e+00 + 6.37831283e+00 6.35766483e+00 6.33708365e+00 6.31656908e+00 6.29612092e+00 + 6.27573893e+00 6.25542292e+00 6.23517266e+00 6.21498794e+00 6.19486855e+00 + 6.17481429e+00 6.15482493e+00 6.13490027e+00 6.11504011e+00 6.09524422e+00 + 6.07551241e+00 6.05584446e+00 6.03624018e+00 6.01669935e+00 5.99722177e+00 + 5.97780723e+00 5.95845553e+00 5.93916647e+00 5.91993984e+00 5.90077545e+00 + 5.88167309e+00 5.86263256e+00 5.84365365e+00 5.82473619e+00 5.80587995e+00 + 5.78708475e+00 5.76835038e+00 5.74967666e+00 5.73106338e+00 5.71251035e+00 + 5.69401737e+00 5.67558425e+00 5.65721080e+00 5.63889682e+00 5.62064212e+00 + 5.60244651e+00 5.58430980e+00 5.56623179e+00 5.54821231e+00 5.53025115e+00 + 5.51234812e+00 5.49450305e+00 5.47671575e+00 5.45898602e+00 5.44131368e+00 + 5.42369855e+00 5.40614043e+00 5.38863915e+00 5.37119452e+00 5.35380636e+00 + 5.33647449e+00 5.31919872e+00 5.30197887e+00 5.28481476e+00 5.26770621e+00 + 5.25065305e+00 5.23365508e+00 5.21671214e+00 5.19982404e+00 5.18299061e+00 + 5.16621167e+00 5.14948704e+00 5.13281656e+00 5.11620003e+00 5.09963730e+00 + 5.08312818e+00 5.06667250e+00 5.05027009e+00 5.03392077e+00 5.01762438e+00 + 5.00138074e+00 4.98518969e+00 4.96905104e+00 4.95296464e+00 4.93693031e+00 + 4.92094789e+00 4.90501720e+00 4.88913808e+00 4.87331037e+00 4.85753389e+00 + 4.84180848e+00 4.82613398e+00 4.81051021e+00 4.79493703e+00 4.77941425e+00 + 4.76394173e+00 4.74851929e+00 4.73314678e+00 4.71782403e+00 4.70255088e+00 + 4.68732717e+00 4.67215275e+00 4.65702744e+00 4.64195110e+00 4.62692357e+00 + 4.61194468e+00 4.59701428e+00 4.58213221e+00 4.56729832e+00 4.55251245e+00 + 4.53777444e+00 4.52308415e+00 4.50844141e+00 4.49384606e+00 4.47929797e+00 + 4.46479697e+00 4.45034292e+00 4.43593566e+00 4.42157503e+00 4.40726089e+00 + 4.39299310e+00 4.37877148e+00 4.36459591e+00 4.35046623e+00 4.33638229e+00 + 4.32234394e+00 4.30835103e+00 4.29440343e+00 4.28050097e+00 4.26664352e+00 + 4.25283093e+00 4.23906306e+00 4.22533975e+00 4.21166087e+00 4.19802627e+00 + 4.18443581e+00 4.17088935e+00 4.15738674e+00 4.14392784e+00 4.13051251e+00 + 4.11714061e+00 4.10381200e+00 4.09052653e+00 4.07728407e+00 4.06408449e+00 + 4.05092763e+00 4.03781337e+00 4.02474156e+00 4.01171206e+00 3.99872475e+00 + 3.98577948e+00 3.97287611e+00 3.96001452e+00 3.94719457e+00 3.93441611e+00 + 3.92167903e+00 3.90898318e+00 3.89632842e+00 3.88371464e+00 3.87114168e+00 + 3.85860944e+00 3.84611776e+00 3.83366652e+00 3.82125558e+00 3.80888483e+00 + 3.79655412e+00 3.78426333e+00 3.77201234e+00 3.75980100e+00 3.74762919e+00 + 3.73549678e+00 3.72340365e+00 3.71134967e+00 3.69933472e+00 3.68735866e+00 + 3.67542137e+00 3.66352272e+00 3.65166259e+00 3.63984086e+00 3.62805740e+00 + 3.61631208e+00 3.60460479e+00 3.59293540e+00 3.58130378e+00 3.56970982e+00 + 3.55815340e+00 3.54663438e+00 3.53515266e+00 3.52370810e+00 3.51230060e+00 + 3.50093002e+00 3.48959626e+00 3.47829918e+00 3.46703868e+00 3.45581463e+00 + 3.44462692e+00 3.43347542e+00 3.42236003e+00 3.41128062e+00 3.40023708e+00 + 3.38922929e+00 3.37825713e+00 3.36732050e+00 3.35641927e+00 3.34555333e+00 + 3.33472257e+00 3.32392687e+00 3.31316612e+00 3.30244021e+00 3.29174901e+00 + 3.28109243e+00 3.27047035e+00 3.25988266e+00 3.24932924e+00 3.23880999e+00 + 3.22832479e+00 3.21787353e+00 3.20745611e+00 3.19707242e+00 3.18672234e+00 + 3.17640576e+00 3.16612258e+00 3.15587270e+00 3.14565599e+00 3.13547237e+00 + 3.12532170e+00 3.11520390e+00 3.10511886e+00 3.09506646e+00 3.08504661e+00 + 3.07505919e+00 3.06510411e+00 3.05518125e+00 3.04529052e+00 3.03543181e+00 + 3.02560501e+00 3.01581003e+00 3.00604676e+00 2.99631509e+00 2.98661493e+00 + 2.97694617e+00 2.96730871e+00 2.95770245e+00 2.94812729e+00 2.93858313e+00 + 2.92906986e+00 2.91958740e+00 2.91013563e+00 2.90071446e+00 2.89132379e+00 + 2.88196352e+00 2.87263355e+00 2.86333379e+00 2.85406413e+00 2.84482448e+00 + 2.83561475e+00 2.82643483e+00 2.81728463e+00 2.80816405e+00 2.79907299e+00 + 2.79001137e+00 2.78097909e+00 2.77197604e+00 2.76300214e+00 2.75405559e+00 + 2.74510554e+00 2.73614077e+00 2.72716164e+00 2.71816846e+00 2.70916157e+00 + 2.70014130e+00 2.69110798e+00 2.68206194e+00 2.67300350e+00 2.66393299e+00 + 2.65485073e+00 2.64575705e+00 2.63665226e+00 2.62753670e+00 2.61841067e+00 + 2.60927450e+00 2.60012851e+00 2.59097300e+00 2.58180831e+00 2.57263473e+00 + 2.56345258e+00 2.55426218e+00 2.54506383e+00 2.53585784e+00 2.52664452e+00 + 2.51742418e+00 2.50819712e+00 2.49896364e+00 2.48972406e+00 2.48047866e+00 + 2.47122774e+00 2.46197162e+00 2.45271058e+00 2.44344492e+00 2.43417494e+00 + 2.42490093e+00 2.41562317e+00 2.40634197e+00 2.39705762e+00 2.38777039e+00 + 2.37848057e+00 2.36918847e+00 2.35989434e+00 2.35059849e+00 2.34130118e+00 + 2.33200271e+00 2.32270335e+00 2.31340337e+00 2.30410306e+00 2.29480269e+00 + 2.28550252e+00 2.27620284e+00 2.26690392e+00 2.25760601e+00 2.24830940e+00 + 2.23901434e+00 2.22972110e+00 2.22042995e+00 2.21114115e+00 2.20185495e+00 + 2.19257162e+00 2.18329142e+00 2.17401459e+00 2.16474141e+00 2.15547211e+00 + 2.14620696e+00 2.13694620e+00 2.12769008e+00 2.11843885e+00 2.10919276e+00 + 2.09995205e+00 2.09071696e+00 2.08148774e+00 2.07226463e+00 2.06304787e+00 + 2.05383769e+00 2.04463433e+00 2.03543803e+00 2.02624901e+00 2.01706752e+00 + 2.00789378e+00 1.99872802e+00 1.98957047e+00 1.98042135e+00 1.97128090e+00 + 1.96214932e+00 1.95302685e+00 1.94391370e+00 1.93481009e+00 1.92571625e+00 + 1.91663238e+00 1.90755870e+00 1.89849542e+00 1.88944276e+00 1.88040092e+00 + 1.87137011e+00 1.86235054e+00 1.85334242e+00 1.84434594e+00 1.83536132e+00 + 1.82638875e+00 1.81742843e+00 1.80848057e+00 1.79954534e+00 1.79062296e+00 + 1.78171362e+00 1.77281750e+00 1.76393481e+00 1.75506572e+00 1.74621042e+00 + 1.73736911e+00 1.72854196e+00 1.71972916e+00 1.71093090e+00 1.70214734e+00 + 1.69337868e+00 1.68462508e+00 1.67588673e+00 1.66716380e+00 1.65845646e+00 + 1.64976489e+00 1.64108925e+00 1.63242971e+00 1.62378644e+00 1.61515960e+00 + 1.60654936e+00 1.59795589e+00 1.58937934e+00 1.58081988e+00 1.57227765e+00 + 1.56375283e+00 1.55524556e+00 1.54675599e+00 1.53828429e+00 1.52983061e+00 + 1.52139508e+00 1.51297787e+00 1.50457911e+00 1.49619895e+00 1.48783755e+00 + 1.47949503e+00 1.47117154e+00 1.46286723e+00 1.45458222e+00 1.44631666e+00 + 1.43807068e+00 1.42984441e+00 1.42163800e+00 1.41345156e+00 1.40528523e+00 + 1.39713914e+00 1.38901341e+00 1.38090818e+00 1.37282356e+00 1.36475967e+00 + 1.35671664e+00 1.34869460e+00 1.34069364e+00 1.33271391e+00 1.32475550e+00 + 1.31681854e+00 1.30890314e+00 1.30100940e+00 1.29313745e+00 1.28528739e+00 + 1.27745932e+00 1.26965336e+00 1.26186960e+00 1.25410815e+00 1.24636912e+00 + 1.23865261e+00 1.23095871e+00 1.22328752e+00 1.21563914e+00 1.20801367e+00 + 1.20041119e+00 1.19283181e+00 1.18527561e+00 1.17774269e+00 1.17023313e+00 + 1.16274702e+00 1.15528445e+00 1.14784550e+00 1.14043025e+00 1.13303880e+00 + 1.12567121e+00 1.11832758e+00 1.11100797e+00 1.10371247e+00 1.09644115e+00 + 1.08919409e+00 1.08197135e+00 1.07477302e+00 1.06759917e+00 1.06044985e+00 + 1.05332515e+00 1.04622513e+00 1.03914985e+00 1.03209938e+00 1.02507379e+00 + 1.01807313e+00 1.01109747e+00 1.00414687e+00 9.97221386e-01 9.90321073e-01 + 9.83445990e-01 9.76596193e-01 9.69771734e-01 9.62972667e-01 9.56199044e-01 + 9.49450914e-01 9.42728328e-01 9.36031332e-01 9.29359975e-01 9.22714301e-01 + 9.16094356e-01 9.09500183e-01 9.02931824e-01 8.96389320e-01 8.89872712e-01 + 8.83382038e-01 8.76917335e-01 8.70478642e-01 8.64065993e-01 8.57679422e-01 + 8.51318963e-01 8.44984649e-01 8.38676510e-01 8.32394576e-01 8.26138877e-01 + 8.19909440e-01 8.13706292e-01 8.07529459e-01 8.01378965e-01 7.95254834e-01 + 7.89157089e-01 7.83085752e-01 7.77040841e-01 7.71022378e-01 7.65030381e-01 + 7.59064866e-01 7.53125850e-01 7.47213349e-01 7.41327376e-01 7.35467946e-01 + 7.29635070e-01 7.23828760e-01 7.18049026e-01 7.12295878e-01 7.06569323e-01 + 7.00869370e-01 6.95196024e-01 6.89549291e-01 6.83929175e-01 6.78335681e-01 + 6.72768810e-01 6.67228564e-01 6.61714945e-01 6.56227951e-01 6.50767581e-01 + 6.45333835e-01 6.39926707e-01 6.34546195e-01 6.29192295e-01 6.23864999e-01 + 6.18564301e-01 6.13290195e-01 6.08042671e-01 6.02821721e-01 5.97627334e-01 + 5.92459499e-01 5.87318204e-01 5.82203438e-01 5.77115185e-01 5.72053432e-01 + 5.67018163e-01 5.62009363e-01 5.57027014e-01 5.52071099e-01 5.47141599e-01 + 5.42238495e-01 5.37361766e-01 5.32511392e-01 5.27687351e-01 5.22889620e-01 + 5.18118177e-01 5.13372996e-01 5.08654052e-01 5.03961322e-01 4.99294776e-01 + 4.94654390e-01 4.90040134e-01 4.85451980e-01 4.80889899e-01 4.76353860e-01 + 4.71843832e-01 4.67359785e-01 4.62901684e-01 4.58469498e-01 4.54063193e-01 + 4.49682734e-01 4.45328086e-01 4.40999213e-01 4.36696079e-01 4.32418646e-01 + 4.28166876e-01 4.23940731e-01 4.19740172e-01 4.15565159e-01 4.11415650e-01 + 4.07291606e-01 4.03192983e-01 3.99119741e-01 3.95071834e-01 3.91049220e-01 + 3.87051855e-01 3.83079693e-01 3.79132688e-01 3.75210796e-01 3.71313967e-01 + 3.67442156e-01 3.63595315e-01 3.59773394e-01 3.55976344e-01 3.52204117e-01 + 3.48456661e-01 3.44733925e-01 3.41035859e-01 3.37362410e-01 3.33713525e-01 + 3.30089152e-01 3.26489237e-01 3.22913726e-01 3.19362564e-01 3.15835697e-01 + 3.12333067e-01 3.08854620e-01 3.05400297e-01 3.01970043e-01 2.98563800e-01 + 2.95181508e-01 2.91823110e-01 2.88488547e-01 2.85177758e-01 2.81890683e-01 + 2.78627263e-01 2.75387435e-01 2.72171139e-01 2.68978312e-01 2.65808892e-01 + 2.62662816e-01 2.59540022e-01 2.56440444e-01 2.53364020e-01 2.50310684e-01 + 2.47280372e-01 2.44273018e-01 2.41288556e-01 2.38326921e-01 2.35388045e-01 + 2.32471862e-01 2.29578304e-01 2.26707304e-01 2.23858794e-01 2.21032705e-01 + 2.18228967e-01 2.15447513e-01 2.12688273e-01 2.09951176e-01 2.07236152e-01 + 2.04543131e-01 2.01872042e-01 1.99222813e-01 1.96595373e-01 1.93989650e-01 + 1.91405572e-01 1.88843066e-01 1.86302060e-01 1.83782479e-01 1.81284252e-01 + 1.78807303e-01 1.76351559e-01 1.73916946e-01 1.71503389e-01 1.69110813e-01 + 1.66739143e-01 1.64388303e-01 1.62058219e-01 1.59748813e-01 1.57460009e-01 + 1.55191732e-01 1.52943905e-01 1.50716450e-01 1.48509290e-01 1.46322348e-01 + 1.44155547e-01 1.42008808e-01 1.39882053e-01 1.37775205e-01 1.35688184e-01 + 1.33620912e-01 1.31573309e-01 1.29545298e-01 1.27536798e-01 1.25547730e-01 + 1.23578015e-01 1.21627572e-01 1.19696321e-01 1.17784183e-01 1.15891077e-01 + 1.14016921e-01 1.12161637e-01 1.10325142e-01 1.08507356e-01 1.06708197e-01 + 1.04927585e-01 1.03165437e-01 1.01421673e-01 9.96962103e-02 9.79889672e-02 + 9.62998618e-02 9.46288120e-02 9.29757356e-02 9.13405503e-02 8.97231736e-02 + 8.81235231e-02 8.65415161e-02 8.49770698e-02 8.34301014e-02 8.19005281e-02 + 8.03882668e-02 7.88932345e-02 7.74153479e-02 7.59545239e-02 7.45106790e-02 + 7.30837300e-02 7.16735935e-02 7.02801858e-02 6.89034235e-02 6.75432228e-02 + 6.61995003e-02 6.48721721e-02 6.35611545e-02 6.22663637e-02 6.09877158e-02 + 5.97251271e-02 5.84785135e-02 5.72477913e-02 5.60328764e-02 5.48336849e-02 + 5.36501328e-02 5.24821361e-02 5.13296109e-02 5.01924730e-02 4.90706386e-02 + 4.79640236e-02 4.68725440e-02 4.57961157e-02 4.47346549e-02 4.36880775e-02 + 4.26562996e-02 4.16392373e-02 4.06368065e-02 3.96489235e-02 3.86755044e-02 + 3.77164653e-02 3.67717225e-02 3.58411921e-02 3.49247905e-02 3.40224340e-02 + 3.31340390e-02 3.22595219e-02 3.13987991e-02 3.05517872e-02 2.97184028e-02 + 2.88985626e-02 2.80921832e-02 2.72991814e-02 2.65194740e-02 2.57529781e-02 + 2.49996105e-02 2.42592885e-02 2.35319290e-02 2.28174494e-02 2.21157669e-02 + 2.14267990e-02 2.07504632e-02 2.00866771e-02 1.94353583e-02 1.87964247e-02 + 1.81697941e-02 1.75553845e-02 1.69531141e-02 1.63629010e-02 1.57846636e-02 + 1.52183202e-02 1.46637895e-02 1.41209901e-02 1.35898408e-02 1.30702605e-02 + 1.25621682e-02 1.20654832e-02 1.15801246e-02 1.11060119e-02 1.06430648e-02 + 1.01912028e-02 9.75034577e-03 9.32041377e-03 8.90132688e-03 8.49300538e-03 + 8.09536966e-03 7.70834030e-03 7.33183802e-03 6.96578368e-03 6.61009831e-03 + 6.26470310e-03 5.92951939e-03 5.60446868e-03 5.28947266e-03 4.98445316e-03 + 4.68933218e-03 4.40403190e-03 4.12847467e-03 3.86258301e-03 3.60627963e-03 + 3.35948739e-03 3.12212936e-03 2.89412876e-03 2.67540903e-03 2.46589377e-03 + 2.26550676e-03 2.07417199e-03 1.89181364e-03 1.71835606e-03 1.55372381e-03 + 1.39784164e-03 1.25063451e-03 1.11202756e-03 9.81946133e-04 8.60315789e-04 + 7.47062278e-04 6.42111559e-04 5.45389798e-04 4.56823367e-04 3.76338850e-04 + 3.03863043e-04 2.39322951e-04 1.82645796e-04 1.33759016e-04 9.25902631e-05 + 5.90674105e-05 3.31185502e-05 1.46719954e-05 3.65628182e-06 0.00000000e+00 + 4.06412796e+00 4.06783653e+00 4.07704324e+00 4.08626532e+00 4.09550275e+00 + 4.10475551e+00 4.11402360e+00 4.12330700e+00 4.13260568e+00 4.14191965e+00 + 4.15124888e+00 4.16059336e+00 4.16995307e+00 4.17932799e+00 4.18871811e+00 + 4.19812340e+00 4.20754387e+00 4.21697947e+00 4.22643020e+00 4.23589604e+00 + 4.24537696e+00 4.25487296e+00 4.26438400e+00 4.27391007e+00 4.28345115e+00 + 4.29300721e+00 4.30257824e+00 4.31216421e+00 4.32176511e+00 4.33138090e+00 + 4.34101157e+00 4.35065709e+00 4.36031744e+00 4.36999260e+00 4.37968253e+00 + 4.38938722e+00 4.39910664e+00 4.40884076e+00 4.41858956e+00 4.42835301e+00 + 4.43813109e+00 4.44792376e+00 4.45773100e+00 4.46755278e+00 4.47738908e+00 + 4.48723985e+00 4.49710508e+00 4.50698473e+00 4.51687878e+00 4.52678718e+00 + 4.53670992e+00 4.54664696e+00 4.55659826e+00 4.56656380e+00 4.57654353e+00 + 4.58653744e+00 4.59654548e+00 4.60656761e+00 4.61660382e+00 4.62665405e+00 + 4.63671827e+00 4.64679645e+00 4.65688855e+00 4.66699453e+00 4.67711435e+00 + 4.68724799e+00 4.69739539e+00 4.70755652e+00 4.71773133e+00 4.72791980e+00 + 4.73812188e+00 4.74833752e+00 4.75856669e+00 4.76880934e+00 4.77906544e+00 + 4.78933493e+00 4.79961778e+00 4.80991393e+00 4.82022336e+00 4.83054600e+00 + 4.84088182e+00 4.85123077e+00 4.86159280e+00 4.87196787e+00 4.88235592e+00 + 4.89275691e+00 4.90317080e+00 4.91359752e+00 4.92403704e+00 4.93448930e+00 + 4.94495425e+00 4.95543184e+00 4.96592201e+00 4.97642472e+00 4.98693991e+00 + 4.99746754e+00 5.00800753e+00 5.01855985e+00 5.02912442e+00 5.03970121e+00 + 5.05029015e+00 5.06089119e+00 5.07150426e+00 5.08212932e+00 5.09276629e+00 + 5.10341513e+00 5.11407577e+00 5.12474815e+00 5.13543222e+00 5.14612790e+00 + 5.15683515e+00 5.16755389e+00 5.17828406e+00 5.18902560e+00 5.19977844e+00 + 5.21054252e+00 5.22131778e+00 5.23210415e+00 5.24290155e+00 5.25370993e+00 + 5.26452922e+00 5.27535934e+00 5.28620023e+00 5.29705182e+00 5.30791404e+00 + 5.31878681e+00 5.32967007e+00 5.34056375e+00 5.35146776e+00 5.36238204e+00 + 5.37330652e+00 5.38424111e+00 5.39518574e+00 5.40614035e+00 5.41710484e+00 + 5.42807915e+00 5.43906319e+00 5.45005689e+00 5.46106017e+00 5.47207294e+00 + 5.48309514e+00 5.49412667e+00 5.50516746e+00 5.51621742e+00 5.52727647e+00 + 5.53834452e+00 5.54942150e+00 5.56050732e+00 5.57160189e+00 5.58270512e+00 + 5.59381693e+00 5.60493724e+00 5.61606594e+00 5.62720297e+00 5.63834821e+00 + 5.64950159e+00 5.66066301e+00 5.67183239e+00 5.68300962e+00 5.69419463e+00 + 5.70538730e+00 5.71658756e+00 5.72779530e+00 5.73901042e+00 5.75023284e+00 + 5.76146246e+00 5.77269917e+00 5.78394289e+00 5.79519350e+00 5.80645092e+00 + 5.81771503e+00 5.82898575e+00 5.84026296e+00 5.85154657e+00 5.86283647e+00 + 5.87413256e+00 5.88543473e+00 5.89674289e+00 5.90805691e+00 5.91937670e+00 + 5.93070215e+00 5.94203316e+00 5.95336960e+00 5.96471138e+00 5.97605838e+00 + 5.98741049e+00 5.99876760e+00 6.01012960e+00 6.02149638e+00 6.03286782e+00 + 6.04424380e+00 6.05562422e+00 6.06700896e+00 6.07839789e+00 6.08979091e+00 + 6.10118790e+00 6.11258873e+00 6.12399329e+00 6.13540145e+00 6.14681311e+00 + 6.15822813e+00 6.16964639e+00 6.18106777e+00 6.19249215e+00 6.20391941e+00 + 6.21534941e+00 6.22678203e+00 6.23821715e+00 6.24965464e+00 6.26109436e+00 + 6.27253621e+00 6.28398003e+00 6.29542571e+00 6.30687311e+00 6.31832210e+00 + 6.32977255e+00 6.34122433e+00 6.35267730e+00 6.36413133e+00 6.37558628e+00 + 6.38704202e+00 6.39849842e+00 6.40995532e+00 6.42141261e+00 6.43287013e+00 + 6.44432776e+00 6.45578534e+00 6.46724275e+00 6.47869983e+00 6.49015644e+00 + 6.50161246e+00 6.51306772e+00 6.52452208e+00 6.53597541e+00 6.54742756e+00 + 6.55887837e+00 6.57032771e+00 6.58177542e+00 6.59322136e+00 6.60466538e+00 + 6.61610733e+00 6.62754705e+00 6.63898441e+00 6.65041923e+00 6.66185139e+00 + 6.67328071e+00 6.68470705e+00 6.69613025e+00 6.70755016e+00 6.71896662e+00 + 6.73037948e+00 6.74178857e+00 6.75319375e+00 6.76459484e+00 6.77599170e+00 + 6.78738417e+00 6.79877207e+00 6.81015526e+00 6.82153357e+00 6.83290684e+00 + 6.84427490e+00 6.85563759e+00 6.86699475e+00 6.87834621e+00 6.88969181e+00 + 6.90103138e+00 6.91236475e+00 6.92369176e+00 6.93501224e+00 6.94632601e+00 + 6.95763292e+00 6.96893279e+00 6.98022544e+00 6.99151072e+00 7.00278844e+00 + 7.01405843e+00 7.02532053e+00 7.03657455e+00 7.04782033e+00 7.05905769e+00 + 7.07028644e+00 7.08150643e+00 7.09271747e+00 7.10391938e+00 7.11511199e+00 + 7.12629511e+00 7.13746858e+00 7.14863220e+00 7.15978581e+00 7.17092921e+00 + 7.18206223e+00 7.19318469e+00 7.20429640e+00 7.21539719e+00 7.22648686e+00 + 7.23756524e+00 7.24863215e+00 7.25968738e+00 7.27073077e+00 7.28176213e+00 + 7.29278126e+00 7.30378798e+00 7.31478212e+00 7.32576346e+00 7.33673184e+00 + 7.34768706e+00 7.35862893e+00 7.36955726e+00 7.38047187e+00 7.39137255e+00 + 7.40225913e+00 7.41313140e+00 7.42398918e+00 7.43483228e+00 7.44566050e+00 + 7.45647365e+00 7.46727153e+00 7.47805396e+00 7.48882073e+00 7.49957166e+00 + 7.51030654e+00 7.52102519e+00 7.53172740e+00 7.54241298e+00 7.55308173e+00 + 7.56373346e+00 7.57436797e+00 7.58498506e+00 7.59558453e+00 7.60616619e+00 + 7.61672984e+00 7.62727527e+00 7.63780229e+00 7.64831069e+00 7.65880029e+00 + 7.66927087e+00 7.67972224e+00 7.69015420e+00 7.70056655e+00 7.71095908e+00 + 7.72133159e+00 7.73168388e+00 7.74201575e+00 7.75232700e+00 7.76261742e+00 + 7.77288682e+00 7.78313498e+00 7.79336172e+00 7.80356681e+00 7.81375006e+00 + 7.82391127e+00 7.83405023e+00 7.84416673e+00 7.85426058e+00 7.86433157e+00 + 7.87437949e+00 7.88440415e+00 7.89440533e+00 7.90438283e+00 7.91433644e+00 + 7.92426597e+00 7.93417120e+00 7.94405193e+00 7.95390796e+00 7.96373908e+00 + 7.97354509e+00 7.98332577e+00 7.99308093e+00 8.00281035e+00 8.01251384e+00 + 8.02219119e+00 8.03184219e+00 8.04146664e+00 8.05106433e+00 8.06063505e+00 + 8.07017861e+00 8.07969479e+00 8.08918339e+00 8.09864421e+00 8.10807704e+00 + 8.11748167e+00 8.12685791e+00 8.13620553e+00 8.14552435e+00 8.15481416e+00 + 8.16407475e+00 8.17330592e+00 8.18250746e+00 8.19167916e+00 8.20082084e+00 + 8.20993228e+00 8.21901327e+00 8.22806362e+00 8.23708313e+00 8.24607158e+00 + 8.25502879e+00 8.26395453e+00 8.27284862e+00 8.28171085e+00 8.29054102e+00 + 8.29933893e+00 8.30810438e+00 8.31683717e+00 8.32553709e+00 8.33420394e+00 + 8.34283754e+00 8.35143767e+00 8.36000414e+00 8.36853676e+00 8.37703531e+00 + 8.38549961e+00 8.39392946e+00 8.40232465e+00 8.41068500e+00 8.41901031e+00 + 8.42730037e+00 8.43555501e+00 8.44377401e+00 8.45195719e+00 8.46010436e+00 + 8.46821531e+00 8.47628987e+00 8.48432782e+00 8.49232899e+00 8.50029318e+00 + 8.50822020e+00 8.51610986e+00 8.52396198e+00 8.53177635e+00 8.53955280e+00 + 8.54729113e+00 8.55499116e+00 8.56265270e+00 8.57027557e+00 8.57785958e+00 + 8.58540454e+00 8.59291028e+00 8.60037660e+00 8.60780333e+00 8.61519028e+00 + 8.62253727e+00 8.62984412e+00 8.63711066e+00 8.64433670e+00 8.65152206e+00 + 8.65866656e+00 8.66577004e+00 8.67283231e+00 8.67985319e+00 8.68683252e+00 + 8.69377012e+00 8.70066582e+00 8.70751944e+00 8.71433081e+00 8.72109977e+00 + 8.72782614e+00 8.73450975e+00 8.74115044e+00 8.74774804e+00 8.75430239e+00 + 8.76081331e+00 8.76728065e+00 8.77370424e+00 8.78008391e+00 8.78641952e+00 + 8.79271089e+00 8.79895787e+00 8.80516030e+00 8.81131803e+00 8.81743088e+00 + 8.82349872e+00 8.82952138e+00 8.83549872e+00 8.84143057e+00 8.84731680e+00 + 8.85315724e+00 8.85895175e+00 8.86470018e+00 8.87040239e+00 8.87605822e+00 + 8.88166754e+00 8.88723019e+00 8.89274604e+00 8.89821495e+00 8.90363677e+00 + 8.90901137e+00 8.91433860e+00 8.91961834e+00 8.92485044e+00 8.93003477e+00 + 8.93517119e+00 8.94025959e+00 8.94529981e+00 8.95029174e+00 8.95523525e+00 + 8.96013020e+00 8.96497648e+00 8.96977395e+00 8.97452250e+00 8.97922200e+00 + 8.98387233e+00 8.98847338e+00 8.99302501e+00 8.99752712e+00 9.00197960e+00 + 9.00638231e+00 9.01073516e+00 9.01503803e+00 9.01929081e+00 9.02349339e+00 + 9.02764567e+00 9.03174753e+00 9.03579887e+00 9.03979959e+00 9.04374958e+00 + 9.04764875e+00 9.05149699e+00 9.05529422e+00 9.05904032e+00 9.06273520e+00 + 9.06637878e+00 9.06997095e+00 9.07351163e+00 9.07700073e+00 9.08043816e+00 + 9.08382383e+00 9.08715765e+00 9.09043955e+00 9.09366944e+00 9.09684724e+00 + 9.09997287e+00 9.10304626e+00 9.10606732e+00 9.10903597e+00 9.11195216e+00 + 9.11481580e+00 9.11762683e+00 9.12038517e+00 9.12309076e+00 9.12574353e+00 + 9.12834342e+00 9.13089036e+00 9.13338430e+00 9.13582517e+00 9.13821291e+00 + 9.14054747e+00 9.14282880e+00 9.14505683e+00 9.14723152e+00 9.14935282e+00 + 9.15142067e+00 9.15343503e+00 9.15539586e+00 9.15730311e+00 9.15915673e+00 + 9.16095669e+00 9.16270294e+00 9.16439545e+00 9.16603418e+00 9.16761910e+00 + 9.16915017e+00 9.17062736e+00 9.17205064e+00 9.17341998e+00 9.17473536e+00 + 9.17599674e+00 9.17720412e+00 9.17835745e+00 9.17945673e+00 9.18050193e+00 + 9.18149304e+00 9.18243003e+00 9.18331291e+00 9.18414165e+00 9.18491623e+00 + 9.18563667e+00 9.18630293e+00 9.18691503e+00 9.18747295e+00 9.18797669e+00 + 9.18842625e+00 9.18882163e+00 9.18916283e+00 9.18944985e+00 9.18968271e+00 + 9.18986140e+00 9.18998593e+00 9.19005632e+00 9.19007257e+00 9.19003470e+00 + 9.18994273e+00 9.18979666e+00 9.18959652e+00 9.18934232e+00 9.18903409e+00 + 9.18867185e+00 9.18825562e+00 9.18778542e+00 9.18726130e+00 9.18668327e+00 + 9.18605136e+00 9.18536561e+00 9.18462604e+00 9.18383270e+00 9.18298563e+00 + 9.18208485e+00 9.18113041e+00 9.18012235e+00 9.17906071e+00 9.17794554e+00 + 9.17677688e+00 9.17555479e+00 9.17427930e+00 9.17295047e+00 9.17156835e+00 + 9.17013299e+00 9.16864446e+00 9.16710280e+00 9.16550808e+00 9.16386035e+00 + 9.16215967e+00 9.16040612e+00 9.15859974e+00 9.15674061e+00 9.15482879e+00 + 9.15286435e+00 9.15084737e+00 9.14877791e+00 9.14665604e+00 9.14448185e+00 + 9.14225540e+00 9.13997677e+00 9.13764605e+00 9.13526330e+00 9.13282862e+00 + 9.13034209e+00 9.12780378e+00 9.12521379e+00 9.12257220e+00 9.11987911e+00 + 9.11713459e+00 9.11433875e+00 9.11149167e+00 9.10859345e+00 9.10564418e+00 + 9.10264397e+00 9.09959290e+00 9.09649108e+00 9.09333860e+00 9.09013558e+00 + 9.08688211e+00 9.08357830e+00 9.08022426e+00 9.07682008e+00 9.07336589e+00 + 9.06986178e+00 9.06630788e+00 9.06270429e+00 9.05905112e+00 9.05534850e+00 + 9.05159653e+00 9.04779534e+00 9.04394504e+00 9.04004575e+00 9.03609759e+00 + 9.03210069e+00 9.02805517e+00 9.02396116e+00 9.01981877e+00 9.01562814e+00 + 9.01138939e+00 9.00710265e+00 9.00276806e+00 8.99838574e+00 8.99395583e+00 + 8.98947846e+00 8.98495376e+00 8.98038187e+00 8.97576293e+00 8.97109708e+00 + 8.96638445e+00 8.96162519e+00 8.95681943e+00 8.95196732e+00 8.94706900e+00 + 8.94212462e+00 8.93713431e+00 8.93209824e+00 8.92701653e+00 8.92188935e+00 + 8.91671684e+00 8.91149915e+00 8.90623643e+00 8.90092884e+00 8.89557652e+00 + 8.89017964e+00 8.88473834e+00 8.87925278e+00 8.87372312e+00 8.86814952e+00 + 8.86253212e+00 8.85687110e+00 8.85116662e+00 8.84541882e+00 8.83962789e+00 + 8.83379397e+00 8.82791723e+00 8.82199783e+00 8.81603595e+00 8.81003174e+00 + 8.80398538e+00 8.79789702e+00 8.79176684e+00 8.78559501e+00 8.77938169e+00 + 8.77312706e+00 8.76683129e+00 8.76049454e+00 8.75411700e+00 8.74769883e+00 + 8.74124020e+00 8.73474130e+00 8.72820229e+00 8.72162336e+00 8.71500467e+00 + 8.70834641e+00 8.70164876e+00 8.69491188e+00 8.68813596e+00 8.68132118e+00 + 8.67446772e+00 8.66757576e+00 8.66064548e+00 8.65367706e+00 8.64667068e+00 + 8.63962653e+00 8.63254478e+00 8.62542563e+00 8.61826925e+00 8.61107584e+00 + 8.60384557e+00 8.59657863e+00 8.58927521e+00 8.58193549e+00 8.57455966e+00 + 8.56714790e+00 8.55970041e+00 8.55221737e+00 8.54469898e+00 8.53714541e+00 + 8.52955686e+00 8.52193351e+00 8.51427557e+00 8.50658321e+00 8.49885663e+00 + 8.49109602e+00 8.48330156e+00 8.47547346e+00 8.46761190e+00 8.45971708e+00 + 8.45178918e+00 8.44382840e+00 8.43583493e+00 8.42780897e+00 8.41975070e+00 + 8.41166033e+00 8.40353804e+00 8.39538403e+00 8.38719849e+00 8.37898162e+00 + 8.37073361e+00 8.36245465e+00 8.35414495e+00 8.34580469e+00 8.33743407e+00 + 8.32903329e+00 8.32060254e+00 8.31214201e+00 8.30365190e+00 8.29513241e+00 + 8.28658374e+00 8.27800607e+00 8.26939960e+00 8.26076454e+00 8.25210107e+00 + 8.24340939e+00 8.23468970e+00 8.22594219e+00 8.21716706e+00 8.20836451e+00 + 8.19953473e+00 8.19067791e+00 8.18179426e+00 8.17288396e+00 8.16394722e+00 + 8.15498424e+00 8.14599519e+00 8.13698029e+00 8.12793973e+00 8.11887370e+00 + 8.10978240e+00 8.10066603e+00 8.09152477e+00 8.08235883e+00 8.07316840e+00 + 8.06395367e+00 8.05471485e+00 8.04545211e+00 8.03616567e+00 8.02685571e+00 + 8.01752243e+00 8.00816601e+00 7.99878667e+00 7.98938458e+00 7.97995994e+00 + 7.97051296e+00 7.96104381e+00 7.95155269e+00 7.94203979e+00 7.93250532e+00 + 7.92294945e+00 7.91337238e+00 7.90377431e+00 7.89415542e+00 7.88451590e+00 + 7.87485596e+00 7.86517577e+00 7.85547552e+00 7.84575542e+00 7.83601564e+00 + 7.82625638e+00 7.81647783e+00 7.80668017e+00 7.79686359e+00 7.78702829e+00 + 7.77717445e+00 7.76730225e+00 7.75741189e+00 7.74750355e+00 7.73757742e+00 + 7.72763369e+00 7.71767253e+00 7.70769414e+00 7.69769870e+00 7.68768640e+00 + 7.67765742e+00 7.66761194e+00 7.65755015e+00 7.64747223e+00 7.63737837e+00 + 7.62726874e+00 7.61714352e+00 7.60700291e+00 7.59684708e+00 7.58667621e+00 + 7.57649048e+00 7.56629007e+00 7.55607516e+00 7.54584593e+00 7.53560256e+00 + 7.52534522e+00 7.51507410e+00 7.50478936e+00 7.49449120e+00 7.48417977e+00 + 7.47385527e+00 7.46351786e+00 7.45316771e+00 7.44280501e+00 7.43242993e+00 + 7.42204263e+00 7.41164329e+00 7.40123209e+00 7.39080920e+00 7.38037478e+00 + 7.36992901e+00 7.35947205e+00 7.34900408e+00 7.33852527e+00 7.32803578e+00 + 7.31753578e+00 7.30702545e+00 7.29650493e+00 7.28597442e+00 7.27543405e+00 + 7.26488402e+00 7.25432447e+00 7.24375557e+00 7.23317749e+00 7.22259039e+00 + 7.21199442e+00 7.20138976e+00 7.19077657e+00 7.18015500e+00 7.16952521e+00 + 7.15888737e+00 7.14824163e+00 7.13758815e+00 7.12692709e+00 7.11625861e+00 + 7.10558286e+00 7.09490000e+00 7.08421018e+00 7.07351356e+00 7.06281029e+00 + 7.05210053e+00 7.04138443e+00 7.03066215e+00 7.01993382e+00 7.00919961e+00 + 6.99845967e+00 6.98771414e+00 6.97696317e+00 6.96620692e+00 6.95544553e+00 + 6.94467914e+00 6.93390791e+00 6.92313198e+00 6.91235150e+00 6.90156661e+00 + 6.89077746e+00 6.87998418e+00 6.86918693e+00 6.85838585e+00 6.84758107e+00 + 6.83677273e+00 6.82596099e+00 6.81514597e+00 6.80432782e+00 6.79350668e+00 + 6.78268268e+00 6.77185596e+00 6.76102665e+00 6.75019490e+00 6.73936084e+00 + 6.72852461e+00 6.71768633e+00 6.70684614e+00 6.69600417e+00 6.68516056e+00 + 6.67431544e+00 6.66346894e+00 6.65262118e+00 6.64177230e+00 6.63092243e+00 + 6.62007169e+00 6.60922022e+00 6.59836813e+00 6.58751556e+00 6.57666263e+00 + 6.56580946e+00 6.55495619e+00 6.54410293e+00 6.53324981e+00 6.52239695e+00 + 6.51154446e+00 6.50069248e+00 6.48984112e+00 6.47899051e+00 6.46814075e+00 + 6.45729198e+00 6.44644430e+00 6.43559784e+00 6.42475271e+00 6.41390903e+00 + 6.40306690e+00 6.39222646e+00 6.38138781e+00 6.37055106e+00 6.35971632e+00 + 6.34888372e+00 6.33805335e+00 6.32722534e+00 6.31639979e+00 6.30557680e+00 + 6.29475650e+00 6.28393898e+00 6.27312436e+00 6.26231274e+00 6.25150422e+00 + 6.24069892e+00 6.22989694e+00 6.21909838e+00 6.20830334e+00 6.19751193e+00 + 6.18672426e+00 6.17594041e+00 6.16516051e+00 6.15438463e+00 6.14361289e+00 + 6.13284538e+00 6.12208221e+00 6.11132347e+00 6.10056925e+00 6.08981965e+00 + 6.07907478e+00 6.06833472e+00 6.05759958e+00 6.04686943e+00 6.03614439e+00 + 6.02542453e+00 6.01470996e+00 6.00400077e+00 5.99329704e+00 5.98259887e+00 + 5.97190634e+00 5.96121955e+00 5.95053859e+00 5.93986353e+00 5.92919448e+00 + 5.91853152e+00 5.90787472e+00 5.89722419e+00 5.88658000e+00 5.87594224e+00 + 5.86531099e+00 5.85468634e+00 5.84406836e+00 5.83345715e+00 5.82285277e+00 + 5.81225532e+00 5.80166487e+00 5.79108151e+00 5.78050530e+00 5.76993634e+00 + 5.75937469e+00 5.74882044e+00 5.73827366e+00 5.72773443e+00 5.71720283e+00 + 5.70667892e+00 5.69616279e+00 5.68565450e+00 5.67515414e+00 5.66466177e+00 + 5.65417746e+00 5.64370130e+00 5.63323334e+00 5.62277366e+00 5.61232233e+00 + 5.60187942e+00 5.59144500e+00 5.58101913e+00 5.57060189e+00 5.56019334e+00 + 5.54979355e+00 5.53940258e+00 5.52902050e+00 5.51864737e+00 5.50828327e+00 + 5.49792824e+00 5.48758237e+00 5.47724570e+00 5.46691830e+00 5.45660024e+00 + 5.44629158e+00 5.43599237e+00 5.42570267e+00 5.41542255e+00 5.40515207e+00 + 5.39489128e+00 5.38464024e+00 5.37439902e+00 5.36416766e+00 5.35394622e+00 + 5.34373477e+00 5.33353335e+00 5.32334202e+00 5.31316083e+00 5.30298985e+00 + 5.29282912e+00 5.28267869e+00 5.27253863e+00 5.26240898e+00 5.25228979e+00 + 5.24218111e+00 5.23208300e+00 5.22199550e+00 5.21191867e+00 5.20185256e+00 + 5.19179721e+00 5.18175267e+00 5.17171899e+00 5.16169621e+00 5.15168439e+00 + 5.14168357e+00 5.13169380e+00 5.12171512e+00 5.11174758e+00 5.10179121e+00 + 5.09184608e+00 5.08191221e+00 5.07198966e+00 5.06207846e+00 5.05217866e+00 + 5.04229030e+00 5.03241343e+00 5.02254807e+00 5.01269428e+00 5.00285209e+00 + 4.99302155e+00 4.98320269e+00 4.97339555e+00 4.96360017e+00 4.95381659e+00 + 4.94404484e+00 4.93428497e+00 4.92453700e+00 4.91480098e+00 4.90507695e+00 + 4.89536493e+00 4.88566496e+00 4.87597708e+00 4.86630132e+00 4.85663772e+00 + 4.84698631e+00 4.83734712e+00 4.82772018e+00 4.81810553e+00 4.80850320e+00 + 4.79891322e+00 4.78933562e+00 4.77977044e+00 4.77021769e+00 4.76067742e+00 + 4.75114965e+00 4.74163441e+00 4.73213174e+00 4.72264165e+00 4.71316418e+00 + 4.70369935e+00 4.69424719e+00 4.68480774e+00 4.67538100e+00 4.66596702e+00 + 4.65656582e+00 4.64717742e+00 4.63780185e+00 4.62843913e+00 4.61908929e+00 + 4.60975235e+00 4.60042833e+00 4.59111726e+00 4.58181917e+00 4.57253407e+00 + 4.56326198e+00 4.55400294e+00 4.54475695e+00 4.53552405e+00 4.52630425e+00 + 4.51709757e+00 4.50790404e+00 4.49872367e+00 4.48955648e+00 4.48040250e+00 + 4.47126174e+00 4.46213422e+00 4.45301995e+00 4.44391897e+00 4.43483128e+00 + 4.42575690e+00 4.41669585e+00 4.40764815e+00 4.39861381e+00 4.38959285e+00 + 4.38058529e+00 4.37159113e+00 4.36261041e+00 4.35364312e+00 4.34468929e+00 + 4.33574893e+00 4.32682205e+00 4.31790867e+00 4.30900881e+00 4.30012247e+00 + 4.29124966e+00 4.28239041e+00 4.27354472e+00 4.26471261e+00 4.25589408e+00 + 4.24708916e+00 4.23829784e+00 4.22952014e+00 4.22075608e+00 4.21200566e+00 + 4.20326889e+00 4.19454579e+00 4.18583635e+00 4.17714060e+00 4.16845854e+00 + 4.15979019e+00 4.15113553e+00 4.14249460e+00 4.13386739e+00 4.12525392e+00 + 4.11665419e+00 4.10806820e+00 4.09949597e+00 4.09093751e+00 4.08239281e+00 + 4.07386189e+00 4.06534475e+00 4.05684139e+00 4.04835184e+00 4.03987608e+00 + 4.03141412e+00 4.02296598e+00 4.01453165e+00 4.00611113e+00 3.99770444e+00 + 3.98931158e+00 3.98093255e+00 3.97256735e+00 3.96421600e+00 3.95587848e+00 + 3.94755481e+00 3.93924499e+00 3.93094901e+00 3.92266689e+00 3.91439862e+00 + 3.90614421e+00 3.89790366e+00 3.88967697e+00 3.88146413e+00 3.87326516e+00 + 3.86508006e+00 3.85690881e+00 3.84875144e+00 3.84060792e+00 3.83247827e+00 + 3.82436249e+00 3.81626057e+00 3.80817252e+00 3.80009833e+00 3.79203800e+00 + 3.78399153e+00 3.77595892e+00 3.76794018e+00 3.75993529e+00 3.75194425e+00 + 3.74396707e+00 3.73600375e+00 3.72805427e+00 3.72011864e+00 3.71219685e+00 + 3.70428890e+00 3.69639480e+00 3.68851453e+00 3.68064809e+00 3.67279548e+00 + 3.66495669e+00 3.65713173e+00 3.64932058e+00 3.64152325e+00 3.63373972e+00 + 3.62597000e+00 3.61821408e+00 3.61047196e+00 3.60274362e+00 3.59502907e+00 + 3.58732830e+00 3.57964131e+00 3.57196808e+00 3.56430861e+00 3.55666291e+00 + 3.54903095e+00 3.54141274e+00 3.53380827e+00 3.52621753e+00 3.51864051e+00 + 3.51107722e+00 3.50352763e+00 3.49599176e+00 3.48846958e+00 3.48096109e+00 + 3.47346628e+00 3.46598515e+00 3.45851769e+00 3.45106389e+00 3.44362374e+00 + 3.43619724e+00 3.42878437e+00 3.42138513e+00 3.41399951e+00 3.40662750e+00 + 3.39926909e+00 3.39192428e+00 3.38459305e+00 3.37727539e+00 3.36997131e+00 + 3.36268077e+00 3.35540379e+00 3.34814034e+00 3.34089043e+00 3.33365403e+00 + 3.32643114e+00 3.31922175e+00 3.31202584e+00 3.30484342e+00 3.29767446e+00 + 3.29051896e+00 3.28337691e+00 3.27624829e+00 3.26913310e+00 3.26203132e+00 + 3.25494295e+00 3.24786797e+00 3.24080638e+00 3.23375815e+00 3.22672328e+00 + 3.21970176e+00 3.21269357e+00 3.20569871e+00 3.19871717e+00 3.19174892e+00 + 3.18479396e+00 3.17785228e+00 3.17092386e+00 3.16400870e+00 3.15710677e+00 + 3.15021808e+00 3.14334260e+00 3.13648032e+00 3.12963123e+00 3.12279532e+00 + 3.11597257e+00 3.10916298e+00 3.10236652e+00 3.09558319e+00 3.08881297e+00 + 3.08205585e+00 3.07531182e+00 3.06858086e+00 3.06186296e+00 3.05515810e+00 + 3.04846628e+00 3.04178747e+00 3.03512167e+00 3.02846886e+00 3.02182902e+00 + 3.01520215e+00 3.00858823e+00 3.00198724e+00 2.99539917e+00 2.98882400e+00 + 2.98226173e+00 2.97571234e+00 2.96917581e+00 2.96265212e+00 2.95614127e+00 + 2.94964324e+00 2.94315802e+00 2.93668558e+00 2.93022592e+00 2.92377902e+00 + 2.91734486e+00 2.91092343e+00 2.90451471e+00 2.89811870e+00 2.89173537e+00 + 2.88536471e+00 2.87900670e+00 2.87266133e+00 2.86632858e+00 2.86000844e+00 + 2.85370090e+00 2.84740593e+00 2.84112351e+00 2.83485365e+00 2.82859631e+00 + 2.82235149e+00 2.81611916e+00 2.80989931e+00 2.80369193e+00 2.79749700e+00 + 2.79131451e+00 2.78514443e+00 2.77898675e+00 2.77284146e+00 2.76670853e+00 + 2.76058796e+00 2.75447972e+00 2.74838381e+00 2.74230020e+00 2.73622887e+00 + 2.73016982e+00 2.72412302e+00 2.71808845e+00 2.71206611e+00 2.70605597e+00 + 2.70005802e+00 2.69407224e+00 2.68809862e+00 2.68213713e+00 2.67618776e+00 + 2.67025050e+00 2.66432532e+00 2.65841221e+00 2.65251116e+00 2.64662214e+00 + 2.64074514e+00 2.63488014e+00 2.62902713e+00 2.62318608e+00 2.61735698e+00 + 2.61153982e+00 2.60573457e+00 2.59994122e+00 2.59415976e+00 2.58839016e+00 + 2.58263240e+00 2.57688647e+00 2.57115236e+00 2.56543004e+00 2.55971950e+00 + 2.55402071e+00 2.54833367e+00 2.54265836e+00 2.53699475e+00 2.53134283e+00 + 2.52570258e+00 2.52007399e+00 2.51445704e+00 2.50885170e+00 2.50325797e+00 + 2.49767582e+00 2.49210523e+00 2.48654620e+00 2.48099869e+00 2.47546270e+00 + 2.46993821e+00 2.46442519e+00 2.45892363e+00 2.45343351e+00 2.44795481e+00 + 2.44248753e+00 2.43703163e+00 2.43158710e+00 2.42615392e+00 2.42073208e+00 + 2.41532155e+00 2.40992232e+00 2.40453438e+00 2.39915769e+00 2.39379225e+00 + 2.38843804e+00 2.38309504e+00 2.37776322e+00 2.37244258e+00 2.36713309e+00 + 2.36183474e+00 2.35654751e+00 2.35127138e+00 2.34600633e+00 2.34075234e+00 + 2.33550940e+00 2.33027749e+00 2.32505659e+00 2.31984668e+00 2.31464774e+00 + 2.30945976e+00 2.30428272e+00 2.29911659e+00 2.29396137e+00 2.28881702e+00 + 2.28368355e+00 2.27856091e+00 2.27344911e+00 2.26834812e+00 2.26325792e+00 + 2.25817849e+00 2.25310982e+00 2.24805188e+00 2.24300466e+00 2.23796815e+00 + 2.23294231e+00 2.22792715e+00 2.22292262e+00 2.21792873e+00 2.21294544e+00 + 2.20797275e+00 2.20301063e+00 2.19805906e+00 2.19311803e+00 2.18818752e+00 + 2.18326751e+00 2.17835798e+00 2.17345892e+00 2.16857030e+00 2.16369211e+00 + 2.15882433e+00 2.15396694e+00 2.14911992e+00 2.14428325e+00 2.13945693e+00 + 2.13464092e+00 2.12983521e+00 2.12503978e+00 2.12025462e+00 2.11547970e+00 + 2.11071501e+00 2.10596053e+00 2.10121624e+00 2.09648213e+00 2.09175816e+00 + 2.08704434e+00 2.08234063e+00 2.07764702e+00 2.07296350e+00 2.06829004e+00 + 2.06362662e+00 2.05897323e+00 2.05432985e+00 2.04969647e+00 2.04507305e+00 + 2.04045960e+00 2.03585608e+00 2.03126247e+00 2.02667877e+00 2.02210496e+00 + 2.01754101e+00 2.01298690e+00 2.00844262e+00 2.00390816e+00 1.99938349e+00 + 1.99486859e+00 1.99036345e+00 1.98586805e+00 1.98138237e+00 1.97690639e+00 + 1.97244010e+00 1.96798348e+00 1.96353650e+00 1.95909916e+00 1.95467143e+00 + 1.95025330e+00 1.94584474e+00 1.94144574e+00 1.93705629e+00 1.93267636e+00 + 1.92830594e+00 1.92394500e+00 1.91959354e+00 1.91525153e+00 1.91091895e+00 + 1.90659579e+00 1.90228203e+00 1.89797766e+00 1.89368264e+00 1.88939698e+00 + 1.88512064e+00 1.88085361e+00 1.87659588e+00 1.87234743e+00 1.86810823e+00 + 1.86387827e+00 1.85965754e+00 1.85544601e+00 1.85124367e+00 1.84705050e+00 + 1.84286648e+00 1.83869160e+00 1.83452583e+00 1.83036917e+00 1.82622159e+00 + 1.82208307e+00 1.81795360e+00 1.81383316e+00 1.80972174e+00 1.80561931e+00 + 1.80152586e+00 1.79744137e+00 1.79336582e+00 1.78929920e+00 1.78524149e+00 + 1.78119267e+00 1.77715272e+00 1.77312163e+00 1.76909939e+00 1.76508596e+00 + 1.76108134e+00 1.75708551e+00 1.75309844e+00 1.74912014e+00 1.74515057e+00 + 1.74118972e+00 1.73723757e+00 1.73329410e+00 1.72935931e+00 1.72543317e+00 + 1.72151566e+00 1.71760676e+00 1.71370647e+00 1.70981477e+00 1.70593162e+00 + 1.70205703e+00 1.69819097e+00 1.69433343e+00 1.69048438e+00 1.68664382e+00 + 1.68281172e+00 1.67898807e+00 1.67517286e+00 1.67136605e+00 1.66756765e+00 + 1.66377762e+00 1.65999597e+00 1.65622265e+00 1.65245767e+00 1.64870101e+00 + 1.64495264e+00 1.64121256e+00 1.63748074e+00 1.63375716e+00 1.63004182e+00 + 1.62633470e+00 1.62263577e+00 1.61894502e+00 1.61526245e+00 1.61158802e+00 + 1.60792172e+00 1.60426354e+00 1.60061346e+00 1.59697146e+00 1.59333753e+00 + 1.58971165e+00 1.58609381e+00 1.58248399e+00 1.57888216e+00 1.57528833e+00 + 1.57170246e+00 1.56812455e+00 1.56455458e+00 1.56099252e+00 1.55743837e+00 + 1.55389211e+00 1.55035373e+00 1.54682320e+00 1.54330051e+00 1.53978565e+00 + 1.53627860e+00 1.53277934e+00 1.52928786e+00 1.52580413e+00 1.52232816e+00 + 1.51885991e+00 1.51539938e+00 1.51194655e+00 1.50850139e+00 1.50506391e+00 + 1.50163407e+00 1.49821187e+00 1.49479729e+00 1.49139031e+00 1.48799092e+00 + 1.48459910e+00 1.48121484e+00 1.47783812e+00 1.47446893e+00 1.47110724e+00 + 1.46775305e+00 1.46440634e+00 1.46106709e+00 1.45773529e+00 1.45441092e+00 + 1.45109397e+00 1.44778442e+00 1.44448226e+00 1.44118747e+00 1.43790003e+00 + 1.43461994e+00 1.43134717e+00 1.42808171e+00 1.42482354e+00 1.42157265e+00 + 1.41832903e+00 1.41509266e+00 1.41186352e+00 1.40864160e+00 1.40542689e+00 + 1.40221936e+00 1.39901901e+00 1.39582581e+00 1.39263976e+00 1.38946084e+00 + 1.38628904e+00 1.38312433e+00 1.37996670e+00 1.37681615e+00 1.37367265e+00 + 1.37053619e+00 1.36740676e+00 1.36428433e+00 1.36116890e+00 1.35806045e+00 + 1.35495897e+00 1.35186444e+00 1.34877684e+00 1.34569617e+00 1.34262240e+00 + 1.33955553e+00 1.33649554e+00 1.33344241e+00 1.33039613e+00 1.32735668e+00 + 1.32432406e+00 1.32129824e+00 1.31827921e+00 1.31526696e+00 1.31226147e+00 + 1.30926273e+00 1.30627073e+00 1.30328544e+00 1.30030687e+00 1.29733498e+00 + 1.29436977e+00 1.29141122e+00 1.28845932e+00 1.28551406e+00 1.28257542e+00 + 1.27964338e+00 1.27671794e+00 1.27379907e+00 1.27088677e+00 1.26798102e+00 + 1.26508181e+00 1.26218912e+00 1.25930293e+00 1.25642325e+00 1.25355004e+00 + 1.25068330e+00 1.24782302e+00 1.24496917e+00 1.24212175e+00 1.23928074e+00 + 1.23644613e+00 1.23361790e+00 1.23079605e+00 1.22798055e+00 1.22517139e+00 + 1.22236857e+00 1.21957206e+00 1.21678186e+00 1.21399794e+00 1.21122030e+00 + 1.20844892e+00 1.20568379e+00 1.20292490e+00 1.20017223e+00 1.19742577e+00 + 1.19468550e+00 1.19195141e+00 1.18922350e+00 1.18650174e+00 1.18378612e+00 + 1.18107663e+00 1.17837325e+00 1.17567598e+00 1.17298479e+00 1.17029969e+00 + 1.16762064e+00 1.16492387e+00 1.16213751e+00 1.15925731e+00 1.15628397e+00 + 1.15321822e+00 1.15006080e+00 1.14681247e+00 1.14347399e+00 1.14004614e+00 + 1.13652972e+00 1.13292553e+00 1.12923439e+00 1.12545713e+00 1.12159460e+00 + 1.11764764e+00 1.11361712e+00 1.10950393e+00 1.10530894e+00 1.10103307e+00 + 1.09667722e+00 1.09224230e+00 1.08772926e+00 1.08313904e+00 1.07847259e+00 + 1.07373086e+00 1.06891483e+00 1.06402548e+00 1.05906380e+00 1.05403079e+00 + 1.04892746e+00 1.04375481e+00 1.03851388e+00 1.03320569e+00 1.02783129e+00 + 1.02239172e+00 1.01688803e+00 1.01132129e+00 1.00569257e+00 1.00000294e+00 + 9.94253473e-01 9.88445268e-01 9.82579415e-01 9.76657013e-01 9.70679167e-01 + 9.64646985e-01 9.58561585e-01 9.52424084e-01 9.46235609e-01 9.39997288e-01 + 9.33710253e-01 9.27375643e-01 9.20994598e-01 9.14568262e-01 9.08097783e-01 + 9.01584312e-01 8.95029002e-01 8.88433010e-01 8.81797494e-01 8.75123616e-01 + 8.68412537e-01 8.61665423e-01 8.54883440e-01 8.48067755e-01 8.41219538e-01 + 8.34339956e-01 8.27430181e-01 8.20491384e-01 8.13524734e-01 8.06531404e-01 + 7.99512564e-01 7.92469384e-01 7.85403035e-01 7.78314685e-01 7.71205503e-01 + 7.64076656e-01 7.56929308e-01 7.49764624e-01 7.42583767e-01 7.35387895e-01 + 7.28178168e-01 7.20955740e-01 7.13721765e-01 7.06477392e-01 6.99223769e-01 + 6.91962040e-01 6.84693345e-01 6.77418822e-01 6.70139603e-01 6.62856818e-01 + 6.55571593e-01 6.48285047e-01 6.40998299e-01 6.33712459e-01 6.26428635e-01 + 6.19147929e-01 6.11871437e-01 6.04600250e-01 5.97335456e-01 5.90078134e-01 + 5.82829357e-01 5.75590196e-01 5.68361711e-01 5.61144959e-01 5.53940989e-01 + 5.46750843e-01 5.39575557e-01 5.32416160e-01 5.25273674e-01 5.18149112e-01 + 5.11043482e-01 5.03957784e-01 4.96893007e-01 4.89850137e-01 4.82830149e-01 + 4.75834011e-01 4.68862681e-01 4.61917111e-01 4.54998243e-01 4.48107011e-01 + 4.41244339e-01 4.34411143e-01 4.27608330e-01 4.20836798e-01 4.14097435e-01 + 4.07391119e-01 4.00718721e-01 3.94081100e-01 3.87479106e-01 3.80913579e-01 + 3.74385350e-01 3.67895238e-01 3.61444053e-01 3.55032596e-01 3.48661655e-01 + 3.42332009e-01 3.36044427e-01 3.29799666e-01 3.23598473e-01 3.17441585e-01 + 3.11329726e-01 3.05263611e-01 2.99243943e-01 2.93271414e-01 2.87346706e-01 + 2.81470487e-01 2.75643416e-01 2.69866139e-01 2.64139293e-01 2.58463501e-01 + 2.52839376e-01 2.47267517e-01 2.41748515e-01 2.36282946e-01 2.30871375e-01 + 2.25514356e-01 2.20212432e-01 2.14966130e-01 2.09775970e-01 2.04642457e-01 + 1.99566084e-01 1.94547333e-01 1.89586674e-01 1.84684564e-01 1.79841448e-01 + 1.75057759e-01 1.70333918e-01 1.65670332e-01 1.61067399e-01 1.56525503e-01 + 1.52045014e-01 1.47626293e-01 1.43269686e-01 1.38975529e-01 1.34744143e-01 + 1.30575839e-01 1.26470915e-01 1.22429656e-01 1.18452335e-01 1.14539213e-01 + 1.10690539e-01 1.06906550e-01 1.03187468e-01 9.95335069e-02 9.59448653e-02 + 9.24217306e-02 8.89642782e-02 8.55726710e-02 8.22470599e-02 7.89875836e-02 + 7.57943689e-02 7.26675303e-02 6.96071705e-02 6.66133801e-02 6.36862378e-02 + 6.08258104e-02 5.80321528e-02 5.53053081e-02 5.26453077e-02 5.00521712e-02 + 4.75259065e-02 4.50665099e-02 4.26739664e-02 4.03482489e-02 3.80893195e-02 + 3.58971284e-02 3.37716148e-02 3.17127063e-02 2.97203197e-02 2.77943602e-02 + 2.59347223e-02 2.41412894e-02 2.24139337e-02 2.07525169e-02 1.91568897e-02 + 1.76268922e-02 1.61623537e-02 1.47630931e-02 1.34289187e-02 1.21596286e-02 + 1.09550102e-02 9.81484109e-03 8.73888848e-03 7.72690959e-03 6.77865166e-03 + 5.89385204e-03 5.07223831e-03 4.31352836e-03 3.61743045e-03 2.98364337e-03 + 2.41185648e-03 1.90174984e-03 1.45299430e-03 1.06525159e-03 7.38174448e-04 + 4.71406686e-04 2.64583325e-04 1.17330685e-04 2.92664954e-05 0.00000000e+00 + 1.14636847e+01 1.14637147e+01 1.15240318e+01 1.15846601e+01 1.16456011e+01 + 1.17068565e+01 1.17684277e+01 1.18303164e+01 1.18925239e+01 1.19550520e+01 + 1.20179021e+01 1.20810759e+01 1.21445749e+01 1.22084007e+01 1.22725549e+01 + 1.23370391e+01 1.24018548e+01 1.24670037e+01 1.25324875e+01 1.25983076e+01 + 1.26644659e+01 1.27309638e+01 1.27978031e+01 1.28649853e+01 1.29325122e+01 + 1.30003854e+01 1.30686065e+01 1.31371773e+01 1.32060994e+01 1.32753745e+01 + 1.33450043e+01 1.34149905e+01 1.34853349e+01 1.35560390e+01 1.36271047e+01 + 1.36985337e+01 1.37703277e+01 1.38424884e+01 1.39150176e+01 1.39879171e+01 + 1.40611886e+01 1.41348338e+01 1.42088546e+01 1.42832528e+01 1.43580300e+01 + 1.44331882e+01 1.45087290e+01 1.45846544e+01 1.46609661e+01 1.47376660e+01 + 1.48147558e+01 1.48922374e+01 1.49701127e+01 1.50483835e+01 1.51270516e+01 + 1.52061190e+01 1.52855874e+01 1.53654587e+01 1.54457349e+01 1.55264178e+01 + 1.56075093e+01 1.56890113e+01 1.57709257e+01 1.58532545e+01 1.59359994e+01 + 1.60191626e+01 1.61027458e+01 1.61867511e+01 1.62711803e+01 1.63560355e+01 + 1.64413185e+01 1.65270315e+01 1.66131762e+01 1.66997547e+01 1.67867690e+01 + 1.68742211e+01 1.69621130e+01 1.70504466e+01 1.71392240e+01 1.72284472e+01 + 1.73181182e+01 1.74082391e+01 1.74988118e+01 1.75898384e+01 1.76813210e+01 + 1.77732616e+01 1.78656623e+01 1.79585251e+01 1.80518522e+01 1.81456455e+01 + 1.82399071e+01 1.83346392e+01 1.84298439e+01 1.85255232e+01 1.86216793e+01 + 1.87183142e+01 1.88154301e+01 1.89130291e+01 1.90111134e+01 1.91096850e+01 + 1.92087462e+01 1.93082990e+01 1.94083456e+01 1.95088881e+01 1.96099288e+01 + 1.97114699e+01 1.98135133e+01 1.99160615e+01 2.00191164e+01 2.01226804e+01 + 2.02267556e+01 2.03313443e+01 2.04364485e+01 2.05420707e+01 2.06482128e+01 + 2.07548773e+01 2.08620662e+01 2.09697819e+01 2.10780265e+01 2.11868023e+01 + 2.12961116e+01 2.14059566e+01 2.15163395e+01 2.16272627e+01 2.17387283e+01 + 2.18507387e+01 2.19632961e+01 2.20764027e+01 2.21900610e+01 2.23042731e+01 + 2.24190413e+01 2.25343679e+01 2.26502553e+01 2.27667057e+01 2.28837215e+01 + 2.30013049e+01 2.31194582e+01 2.32381838e+01 2.33574839e+01 2.34773610e+01 + 2.35978172e+01 2.37188550e+01 2.38404767e+01 2.39626846e+01 2.40854811e+01 + 2.42088684e+01 2.43328489e+01 2.44574250e+01 2.45825991e+01 2.47083733e+01 + 2.48347502e+01 2.49617321e+01 2.50893212e+01 2.52175201e+01 2.53463309e+01 + 2.54757562e+01 2.56057981e+01 2.57364592e+01 2.58677418e+01 2.59996482e+01 + 2.61321808e+01 2.62653420e+01 2.63991341e+01 2.65335596e+01 2.66686207e+01 + 2.68043198e+01 2.69406594e+01 2.70776417e+01 2.72152692e+01 2.73535442e+01 + 2.74924691e+01 2.76320462e+01 2.77722780e+01 2.79131668e+01 2.80547149e+01 + 2.81969248e+01 2.83397987e+01 2.84833391e+01 2.86275483e+01 2.87724286e+01 + 2.89179825e+01 2.90642123e+01 2.92111203e+01 2.93587088e+01 2.95069803e+01 + 2.96559371e+01 2.98055815e+01 2.99559159e+01 3.01069425e+01 3.02586638e+01 + 3.04110820e+01 3.05641996e+01 3.07180187e+01 3.08725417e+01 3.10277709e+01 + 3.11837087e+01 3.13403573e+01 3.14977190e+01 3.16557962e+01 3.18145911e+01 + 3.19741059e+01 3.21343430e+01 3.22953047e+01 3.24569931e+01 3.26194106e+01 + 3.27825594e+01 3.29464417e+01 3.31110597e+01 3.32764158e+01 3.34425121e+01 + 3.36093508e+01 3.37769341e+01 3.39452642e+01 3.41143433e+01 3.42841736e+01 + 3.44547572e+01 3.46260964e+01 3.47981931e+01 3.49710496e+01 3.51446681e+01 + 3.53190505e+01 3.54941990e+01 3.56701158e+01 3.58468028e+01 3.60242622e+01 + 3.62024960e+01 3.63815062e+01 3.65612949e+01 3.67418641e+01 3.69232158e+01 + 3.71053520e+01 3.72882746e+01 3.74719857e+01 3.76564872e+01 3.78417809e+01 + 3.80278689e+01 3.82147530e+01 3.84024351e+01 3.85909171e+01 3.87802007e+01 + 3.89702880e+01 3.91611806e+01 3.93528804e+01 3.95453892e+01 3.97387086e+01 + 3.99328406e+01 4.01277867e+01 4.03235487e+01 4.05201283e+01 4.07175271e+01 + 4.09157468e+01 4.11147890e+01 4.13146553e+01 4.15153472e+01 4.17168665e+01 + 4.19192145e+01 4.21223928e+01 4.23264028e+01 4.25312461e+01 4.27369241e+01 + 4.29434382e+01 4.31507898e+01 4.33589802e+01 4.35680108e+01 4.37778828e+01 + 4.39885977e+01 4.42001566e+01 4.44125608e+01 4.46258114e+01 4.48399097e+01 + 4.50548568e+01 4.52706538e+01 4.54873017e+01 4.57048017e+01 4.59231548e+01 + 4.61423619e+01 4.63624241e+01 4.65833421e+01 4.68051170e+01 4.70277497e+01 + 4.72512408e+01 4.74755912e+01 4.77008018e+01 4.79268731e+01 4.81538059e+01 + 4.83816009e+01 4.86102586e+01 4.88397796e+01 4.90701646e+01 4.93014139e+01 + 4.95335280e+01 4.97665074e+01 5.00003524e+01 5.02350634e+01 5.04706407e+01 + 5.07070845e+01 5.09443951e+01 5.11825727e+01 5.14216173e+01 5.16615291e+01 + 5.19023081e+01 5.21439543e+01 5.23864676e+01 5.26298480e+01 5.28740954e+01 + 5.31192095e+01 5.33651902e+01 5.36120371e+01 5.38597499e+01 5.41083282e+01 + 5.43577717e+01 5.46080798e+01 5.48592520e+01 5.51112877e+01 5.53641863e+01 + 5.56179471e+01 5.58725694e+01 5.61280524e+01 5.63843952e+01 5.66415969e+01 + 5.68996567e+01 5.71585734e+01 5.74183459e+01 5.76789733e+01 5.79404543e+01 + 5.82027876e+01 5.84659719e+01 5.87300059e+01 5.89948882e+01 5.92606173e+01 + 5.95271916e+01 5.97946095e+01 6.00628694e+01 6.03319696e+01 6.06019081e+01 + 6.08726832e+01 6.11442930e+01 6.14167355e+01 6.16900085e+01 6.19641100e+01 + 6.22390378e+01 6.25147896e+01 6.27913631e+01 6.30687559e+01 6.33469656e+01 + 6.36259895e+01 6.39058251e+01 6.41864697e+01 6.44679206e+01 6.47501749e+01 + 6.50332297e+01 6.53170821e+01 6.56017290e+01 6.58871673e+01 6.61733938e+01 + 6.64604052e+01 6.67481982e+01 6.70367693e+01 6.73261150e+01 6.76162318e+01 + 6.79071160e+01 6.81987638e+01 6.84911715e+01 6.87843350e+01 6.90782505e+01 + 6.93729139e+01 6.96683210e+01 6.99644676e+01 7.02613493e+01 7.05589619e+01 + 7.08573007e+01 7.11563612e+01 7.14561389e+01 7.17566288e+01 7.20578263e+01 + 7.23597263e+01 7.26623240e+01 7.29656142e+01 7.32695917e+01 7.35742513e+01 + 7.38795876e+01 7.41855952e+01 7.44922686e+01 7.47996021e+01 7.51075900e+01 + 7.54162265e+01 7.57255057e+01 7.60354217e+01 7.63459683e+01 7.66571394e+01 + 7.69689287e+01 7.72813299e+01 7.75943364e+01 7.79079418e+01 7.82221395e+01 + 7.85369226e+01 7.88522843e+01 7.91682178e+01 7.94847160e+01 7.98017717e+01 + 8.01193779e+01 8.04375271e+01 8.07562119e+01 8.10754249e+01 8.13951584e+01 + 8.17154048e+01 8.20361563e+01 8.23574049e+01 8.26791427e+01 8.30013615e+01 + 8.33240533e+01 8.36472097e+01 8.39708223e+01 8.42948827e+01 8.46193822e+01 + 8.49443123e+01 8.52696640e+01 8.55954286e+01 8.59215971e+01 8.62481604e+01 + 8.65751093e+01 8.69024346e+01 8.72301269e+01 8.75581767e+01 8.78865745e+01 + 8.82153106e+01 8.85443752e+01 8.88737586e+01 8.92034507e+01 8.95334414e+01 + 8.98637208e+01 9.01942784e+01 9.05251039e+01 9.08561870e+01 9.11875170e+01 + 9.15190834e+01 9.18508754e+01 9.21828822e+01 9.25150929e+01 9.28474964e+01 + 9.31800817e+01 9.35128376e+01 9.38457526e+01 9.41788156e+01 9.45120150e+01 + 9.48453391e+01 9.51787764e+01 9.55123152e+01 9.58459434e+01 9.61796493e+01 + 9.65134208e+01 9.68472458e+01 9.71811120e+01 9.75150072e+01 9.78489190e+01 + 9.81828350e+01 9.85167426e+01 9.88506292e+01 9.91844820e+01 9.95182882e+01 + 9.98520351e+01 1.00185710e+02 1.00519299e+02 1.00852789e+02 1.01186168e+02 + 1.01519421e+02 1.01852537e+02 1.02185500e+02 1.02518298e+02 1.02850918e+02 + 1.03183344e+02 1.03515565e+02 1.03847565e+02 1.04179331e+02 1.04510850e+02 + 1.04842106e+02 1.05173087e+02 1.05503777e+02 1.05834164e+02 1.06164231e+02 + 1.06493966e+02 1.06823354e+02 1.07152380e+02 1.07481029e+02 1.07809288e+02 + 1.08137142e+02 1.08464575e+02 1.08791574e+02 1.09118124e+02 1.09444209e+02 + 1.09769815e+02 1.10094926e+02 1.10419529e+02 1.10743608e+02 1.11067148e+02 + 1.11390133e+02 1.11712550e+02 1.12034382e+02 1.12355614e+02 1.12676232e+02 + 1.12996219e+02 1.13315562e+02 1.13634243e+02 1.13952249e+02 1.14269563e+02 + 1.14586171e+02 1.14902056e+02 1.15217204e+02 1.15531599e+02 1.15845226e+02 + 1.16158068e+02 1.16470111e+02 1.16781340e+02 1.17091737e+02 1.17401289e+02 + 1.17709980e+02 1.18017793e+02 1.18324714e+02 1.18630727e+02 1.18935817e+02 + 1.19239967e+02 1.19543163e+02 1.19845389e+02 1.20146630e+02 1.20446869e+02 + 1.20746092e+02 1.21044283e+02 1.21341427e+02 1.21637508e+02 1.21932512e+02 + 1.22226421e+02 1.22519222e+02 1.22810899e+02 1.23101437e+02 1.23390820e+02 + 1.23679033e+02 1.23966062e+02 1.24251891e+02 1.24536504e+02 1.24819888e+02 + 1.25102026e+02 1.25382904e+02 1.25662508e+02 1.25940822e+02 1.26217831e+02 + 1.26493521e+02 1.26767877e+02 1.27040885e+02 1.27312529e+02 1.27582796e+02 + 1.27851672e+02 1.28119141e+02 1.28385189e+02 1.28649803e+02 1.28912968e+02 + 1.29174670e+02 1.29434895e+02 1.29693630e+02 1.29950860e+02 1.30206572e+02 + 1.30460752e+02 1.30713387e+02 1.30964463e+02 1.31213966e+02 1.31461885e+02 + 1.31708205e+02 1.31952913e+02 1.32195997e+02 1.32437443e+02 1.32677239e+02 + 1.32915372e+02 1.33151830e+02 1.33386601e+02 1.33619671e+02 1.33851029e+02 + 1.34080662e+02 1.34308560e+02 1.34534709e+02 1.34759099e+02 1.34981717e+02 + 1.35202552e+02 1.35421593e+02 1.35638829e+02 1.35854248e+02 1.36067840e+02 + 1.36279593e+02 1.36489498e+02 1.36697543e+02 1.36903718e+02 1.37108013e+02 + 1.37310417e+02 1.37510922e+02 1.37709516e+02 1.37906191e+02 1.38100936e+02 + 1.38293742e+02 1.38484600e+02 1.38673502e+02 1.38860437e+02 1.39045397e+02 + 1.39228374e+02 1.39409359e+02 1.39588343e+02 1.39765319e+02 1.39940278e+02 + 1.40113213e+02 1.40284116e+02 1.40452979e+02 1.40619796e+02 1.40784558e+02 + 1.40947259e+02 1.41107891e+02 1.41266449e+02 1.41422926e+02 1.41577314e+02 + 1.41729609e+02 1.41879804e+02 1.42027892e+02 1.42173869e+02 1.42317729e+02 + 1.42459467e+02 1.42599077e+02 1.42736554e+02 1.42871893e+02 1.43005090e+02 + 1.43136140e+02 1.43265040e+02 1.43391784e+02 1.43516369e+02 1.43638790e+02 + 1.43759046e+02 1.43877131e+02 1.43993042e+02 1.44106777e+02 1.44218333e+02 + 1.44327706e+02 1.44434895e+02 1.44539897e+02 1.44642709e+02 1.44743329e+02 + 1.44841757e+02 1.44937989e+02 1.45032025e+02 1.45123862e+02 1.45213501e+02 + 1.45300939e+02 1.45386177e+02 1.45469212e+02 1.45550046e+02 1.45628677e+02 + 1.45705106e+02 1.45779332e+02 1.45851355e+02 1.45921177e+02 1.45988797e+02 + 1.46054216e+02 1.46117435e+02 1.46178455e+02 1.46237278e+02 1.46293904e+02 + 1.46348336e+02 1.46400574e+02 1.46450622e+02 1.46498480e+02 1.46544151e+02 + 1.46587637e+02 1.46628941e+02 1.46668066e+02 1.46705014e+02 1.46739788e+02 + 1.46772392e+02 1.46802828e+02 1.46831101e+02 1.46857213e+02 1.46881169e+02 + 1.46902973e+02 1.46922628e+02 1.46940138e+02 1.46955509e+02 1.46968744e+02 + 1.46979849e+02 1.46988827e+02 1.46995684e+02 1.47000426e+02 1.47003056e+02 + 1.47003581e+02 1.47002006e+02 1.46998336e+02 1.46992578e+02 1.46984737e+02 + 1.46974819e+02 1.46962831e+02 1.46948778e+02 1.46932668e+02 1.46914506e+02 + 1.46894299e+02 1.46872054e+02 1.46847778e+02 1.46821478e+02 1.46793161e+02 + 1.46762834e+02 1.46730505e+02 1.46696181e+02 1.46659869e+02 1.46621578e+02 + 1.46581315e+02 1.46539088e+02 1.46494906e+02 1.46448775e+02 1.46400705e+02 + 1.46350703e+02 1.46298779e+02 1.46244940e+02 1.46189196e+02 1.46131554e+02 + 1.46072025e+02 1.46010616e+02 1.45947336e+02 1.45882196e+02 1.45815203e+02 + 1.45746367e+02 1.45675697e+02 1.45603203e+02 1.45528895e+02 1.45452781e+02 + 1.45374871e+02 1.45295176e+02 1.45213704e+02 1.45130467e+02 1.45045472e+02 + 1.44958732e+02 1.44870254e+02 1.44780051e+02 1.44688131e+02 1.44594506e+02 + 1.44499185e+02 1.44402178e+02 1.44303497e+02 1.44203151e+02 1.44101151e+02 + 1.43997508e+02 1.43892232e+02 1.43785334e+02 1.43676825e+02 1.43566715e+02 + 1.43455014e+02 1.43341735e+02 1.43226888e+02 1.43110483e+02 1.42992531e+02 + 1.42873045e+02 1.42752034e+02 1.42629509e+02 1.42505482e+02 1.42379964e+02 + 1.42252966e+02 1.42124499e+02 1.41994574e+02 1.41863202e+02 1.41730395e+02 + 1.41596164e+02 1.41460520e+02 1.41323475e+02 1.41185039e+02 1.41045224e+02 + 1.40904041e+02 1.40761503e+02 1.40617619e+02 1.40472401e+02 1.40325861e+02 + 1.40178011e+02 1.40028860e+02 1.39878422e+02 1.39726706e+02 1.39573726e+02 + 1.39419491e+02 1.39264013e+02 1.39107304e+02 1.38949376e+02 1.38790238e+02 + 1.38629904e+02 1.38468384e+02 1.38305689e+02 1.38141831e+02 1.37976821e+02 + 1.37810671e+02 1.37643391e+02 1.37474994e+02 1.37305490e+02 1.37134890e+02 + 1.36963207e+02 1.36790450e+02 1.36616632e+02 1.36441764e+02 1.36265856e+02 + 1.36088919e+02 1.35910966e+02 1.35732007e+02 1.35552053e+02 1.35371115e+02 + 1.35189204e+02 1.35006331e+02 1.34822508e+02 1.34637745e+02 1.34452052e+02 + 1.34265442e+02 1.34077924e+02 1.33889510e+02 1.33700211e+02 1.33510036e+02 + 1.33318997e+02 1.33127105e+02 1.32934370e+02 1.32740803e+02 1.32546414e+02 + 1.32351214e+02 1.32155213e+02 1.31958423e+02 1.31760852e+02 1.31562512e+02 + 1.31363414e+02 1.31163566e+02 1.30962981e+02 1.30761667e+02 1.30559635e+02 + 1.30356895e+02 1.30153458e+02 1.29949332e+02 1.29744529e+02 1.29539058e+02 + 1.29332930e+02 1.29126153e+02 1.28918738e+02 1.28710695e+02 1.28502033e+02 + 1.28292762e+02 1.28082892e+02 1.27872431e+02 1.27661391e+02 1.27449780e+02 + 1.27237607e+02 1.27024882e+02 1.26811615e+02 1.26597815e+02 1.26383490e+02 + 1.26168650e+02 1.25953305e+02 1.25737462e+02 1.25521132e+02 1.25304323e+02 + 1.25087045e+02 1.24869305e+02 1.24651113e+02 1.24432478e+02 1.24213408e+02 + 1.23993912e+02 1.23773999e+02 1.23553677e+02 1.23332954e+02 1.23111839e+02 + 1.22890341e+02 1.22668468e+02 1.22446227e+02 1.22223628e+02 1.22000678e+02 + 1.21777386e+02 1.21553760e+02 1.21329807e+02 1.21105535e+02 1.20880953e+02 + 1.20656068e+02 1.20430889e+02 1.20205422e+02 1.19979676e+02 1.19753657e+02 + 1.19527375e+02 1.19300835e+02 1.19074046e+02 1.18847015e+02 1.18619750e+02 + 1.18392257e+02 1.18164544e+02 1.17936618e+02 1.17708486e+02 1.17480156e+02 + 1.17251634e+02 1.17022927e+02 1.16794042e+02 1.16564986e+02 1.16335766e+02 + 1.16106388e+02 1.15876860e+02 1.15647187e+02 1.15417377e+02 1.15187436e+02 + 1.14957370e+02 1.14727186e+02 1.14496890e+02 1.14266489e+02 1.14035988e+02 + 1.13805395e+02 1.13574714e+02 1.13343953e+02 1.13113117e+02 1.12882212e+02 + 1.12651245e+02 1.12420220e+02 1.12189145e+02 1.11958024e+02 1.11726863e+02 + 1.11495669e+02 1.11264446e+02 1.11033201e+02 1.10801938e+02 1.10570664e+02 + 1.10339384e+02 1.10108102e+02 1.09876825e+02 1.09645558e+02 1.09414306e+02 + 1.09183074e+02 1.08951867e+02 1.08720690e+02 1.08489549e+02 1.08258447e+02 + 1.08027392e+02 1.07796386e+02 1.07565435e+02 1.07334544e+02 1.07103717e+02 + 1.06872960e+02 1.06642276e+02 1.06411671e+02 1.06181148e+02 1.05950713e+02 + 1.05720370e+02 1.05490123e+02 1.05259977e+02 1.05029936e+02 1.04800004e+02 + 1.04570186e+02 1.04340485e+02 1.04110906e+02 1.03881453e+02 1.03652130e+02 + 1.03422940e+02 1.03193889e+02 1.02964980e+02 1.02736216e+02 1.02507602e+02 + 1.02279141e+02 1.02050837e+02 1.01822694e+02 1.01594715e+02 1.01366905e+02 + 1.01139266e+02 1.00911802e+02 1.00684517e+02 1.00457414e+02 1.00230497e+02 + 1.00003768e+02 9.97772321e+01 9.95508915e+01 9.93247499e+01 9.90988103e+01 + 9.88730759e+01 9.86475500e+01 9.84222355e+01 9.81971356e+01 9.79722534e+01 + 9.77475917e+01 9.75231536e+01 9.72989420e+01 9.70749597e+01 9.68512097e+01 + 9.66276947e+01 9.64044174e+01 9.61813808e+01 9.59585873e+01 9.57360398e+01 + 9.55137409e+01 9.52916930e+01 9.50698990e+01 9.48483611e+01 9.46270821e+01 + 9.44060642e+01 9.41853100e+01 9.39648219e+01 9.37446022e+01 9.35246532e+01 + 9.33049773e+01 9.30855768e+01 9.28664538e+01 9.26476106e+01 9.24290493e+01 + 9.22107722e+01 9.19927813e+01 9.17750786e+01 9.15576664e+01 9.13405465e+01 + 9.11237210e+01 9.09071919e+01 9.06909610e+01 9.04750303e+01 9.02594017e+01 + 9.00440770e+01 8.98290581e+01 8.96143467e+01 8.93999446e+01 8.91858535e+01 + 8.89720752e+01 8.87586114e+01 8.85454636e+01 8.83326336e+01 8.81201229e+01 + 8.79079332e+01 8.76960659e+01 8.74845226e+01 8.72733048e+01 8.70624140e+01 + 8.68518516e+01 8.66416191e+01 8.64317178e+01 8.62221492e+01 8.60129146e+01 + 8.58040153e+01 8.55954526e+01 8.53872279e+01 8.51793423e+01 8.49717971e+01 + 8.47645936e+01 8.45577329e+01 8.43512162e+01 8.41450446e+01 8.39392193e+01 + 8.37337413e+01 8.35286118e+01 8.33238319e+01 8.31194024e+01 8.29153246e+01 + 8.27115993e+01 8.25082275e+01 8.23052103e+01 8.21025484e+01 8.19002430e+01 + 8.16982948e+01 8.14967047e+01 8.12954737e+01 8.10946024e+01 8.08940918e+01 + 8.06939427e+01 8.04941558e+01 8.02947318e+01 8.00956717e+01 7.98969760e+01 + 7.96986455e+01 7.95006808e+01 7.93030827e+01 7.91058518e+01 7.89089888e+01 + 7.87124942e+01 7.85163688e+01 7.83206129e+01 7.81252274e+01 7.79302126e+01 + 7.77355691e+01 7.75412975e+01 7.73473983e+01 7.71538720e+01 7.69607190e+01 + 7.67679398e+01 7.65755348e+01 7.63835046e+01 7.61918494e+01 7.60005698e+01 + 7.58096660e+01 7.56191385e+01 7.54289877e+01 7.52392138e+01 7.50498172e+01 + 7.48607982e+01 7.46721572e+01 7.44838943e+01 7.42960100e+01 7.41085045e+01 + 7.39213779e+01 7.37346306e+01 7.35482627e+01 7.33622746e+01 7.31766663e+01 + 7.29914382e+01 7.28065902e+01 7.26221227e+01 7.24380357e+01 7.22543295e+01 + 7.20710041e+01 7.18880596e+01 7.17054962e+01 7.15233140e+01 7.13415130e+01 + 7.11600933e+01 7.09790550e+01 7.07983980e+01 7.06181226e+01 7.04382286e+01 + 7.02587162e+01 7.00795852e+01 6.99008358e+01 6.97224679e+01 6.95444815e+01 + 6.93668765e+01 6.91896529e+01 6.90128107e+01 6.88363498e+01 6.86602702e+01 + 6.84845716e+01 6.83092542e+01 6.81343177e+01 6.79597621e+01 6.77855872e+01 + 6.76117930e+01 6.74383792e+01 6.72653459e+01 6.70926927e+01 6.69204196e+01 + 6.67485263e+01 6.65770128e+01 6.64058788e+01 6.62351242e+01 6.60647487e+01 + 6.58947522e+01 6.57251344e+01 6.55558951e+01 6.53870341e+01 6.52185512e+01 + 6.50504461e+01 6.48827185e+01 6.47153683e+01 6.45483951e+01 6.43817987e+01 + 6.42155788e+01 6.40497352e+01 6.38842675e+01 6.37191754e+01 6.35544587e+01 + 6.33901170e+01 6.32261501e+01 6.30625575e+01 6.28993390e+01 6.27364943e+01 + 6.25740230e+01 6.24119248e+01 6.22501992e+01 6.20888461e+01 6.19278649e+01 + 6.17672554e+01 6.16070172e+01 6.14471498e+01 6.12876529e+01 6.11285262e+01 + 6.09697692e+01 6.08113816e+01 6.06533628e+01 6.04957126e+01 6.03384305e+01 + 6.01815161e+01 6.00249690e+01 5.98687888e+01 5.97129749e+01 5.95575271e+01 + 5.94024448e+01 5.92477276e+01 5.90933750e+01 5.89393867e+01 5.87857621e+01 + 5.86325008e+01 5.84796024e+01 5.83270662e+01 5.81748920e+01 5.80230792e+01 + 5.78716273e+01 5.77205359e+01 5.75698044e+01 5.74194325e+01 5.72694194e+01 + 5.71197649e+01 5.69704684e+01 5.68215293e+01 5.66729472e+01 5.65247215e+01 + 5.63768518e+01 5.62293375e+01 5.60821782e+01 5.59353732e+01 5.57889220e+01 + 5.56428242e+01 5.54970792e+01 5.53516865e+01 5.52066455e+01 5.50619556e+01 + 5.49176164e+01 5.47736273e+01 5.46299878e+01 5.44866972e+01 5.43437551e+01 + 5.42011609e+01 5.40589140e+01 5.39170138e+01 5.37754599e+01 5.36342516e+01 + 5.34933884e+01 5.33528697e+01 5.32126949e+01 5.30728635e+01 5.29333749e+01 + 5.27942284e+01 5.26554236e+01 5.25169599e+01 5.23788366e+01 5.22410531e+01 + 5.21036090e+01 5.19665035e+01 5.18297362e+01 5.16933064e+01 5.15572135e+01 + 5.14214569e+01 5.12860360e+01 5.11509503e+01 5.10161991e+01 5.08817818e+01 + 5.07476979e+01 5.06139466e+01 5.04805275e+01 5.03474399e+01 5.02146831e+01 + 5.00822567e+01 4.99501599e+01 4.98183922e+01 4.96869529e+01 4.95558415e+01 + 4.94250573e+01 4.92945997e+01 4.91644680e+01 4.90346617e+01 4.89051802e+01 + 4.87760228e+01 4.86471889e+01 4.85186778e+01 4.83904890e+01 4.82626219e+01 + 4.81350757e+01 4.80078499e+01 4.78809439e+01 4.77543570e+01 4.76280885e+01 + 4.75021379e+01 4.73765046e+01 4.72511879e+01 4.71261871e+01 4.70015017e+01 + 4.68771310e+01 4.67530743e+01 4.66293311e+01 4.65059007e+01 4.63827825e+01 + 4.62599758e+01 4.61374800e+01 4.60152945e+01 4.58934186e+01 4.57718517e+01 + 4.56505932e+01 4.55296424e+01 4.54089987e+01 4.52886614e+01 4.51686299e+01 + 4.50489036e+01 4.49294819e+01 4.48103640e+01 4.46915494e+01 4.45730374e+01 + 4.44548274e+01 4.43369187e+01 4.42193108e+01 4.41020029e+01 4.39849944e+01 + 4.38682847e+01 4.37518731e+01 4.36357591e+01 4.35199419e+01 4.34044210e+01 + 4.32891956e+01 4.31742652e+01 4.30596292e+01 4.29452868e+01 4.28312374e+01 + 4.27174804e+01 4.26040152e+01 4.24908411e+01 4.23779575e+01 4.22653637e+01 + 4.21530592e+01 4.20410432e+01 4.19293152e+01 4.18178744e+01 4.17067204e+01 + 4.15958523e+01 4.14852696e+01 4.13749717e+01 4.12649579e+01 4.11552276e+01 + 4.10457802e+01 4.09366150e+01 4.08277313e+01 4.07191286e+01 4.06108062e+01 + 4.05027635e+01 4.03949999e+01 4.02875147e+01 4.01803072e+01 4.00733770e+01 + 3.99667232e+01 3.98603454e+01 3.97542428e+01 3.96484149e+01 3.95428610e+01 + 3.94375804e+01 3.93325727e+01 3.92278370e+01 3.91233729e+01 3.90191797e+01 + 3.89152567e+01 3.88116033e+01 3.87082190e+01 3.86051031e+01 3.85022549e+01 + 3.83996738e+01 3.82973593e+01 3.81953107e+01 3.80935274e+01 3.79920087e+01 + 3.78907541e+01 3.77897629e+01 3.76890345e+01 3.75885683e+01 3.74883637e+01 + 3.73884200e+01 3.72887367e+01 3.71893131e+01 3.70901487e+01 3.69912428e+01 + 3.68925948e+01 3.67942040e+01 3.66960700e+01 3.65981920e+01 3.65005695e+01 + 3.64032018e+01 3.63060884e+01 3.62092287e+01 3.61126219e+01 3.60162677e+01 + 3.59201652e+01 3.58243140e+01 3.57287134e+01 3.56333628e+01 3.55382617e+01 + 3.54434094e+01 3.53488054e+01 3.52544489e+01 3.51603395e+01 3.50664766e+01 + 3.49728595e+01 3.48794877e+01 3.47863605e+01 3.46934774e+01 3.46008377e+01 + 3.45084410e+01 3.44162866e+01 3.43243738e+01 3.42327022e+01 3.41412712e+01 + 3.40500801e+01 3.39591283e+01 3.38684154e+01 3.37779406e+01 3.36877035e+01 + 3.35977034e+01 3.35079398e+01 3.34184120e+01 3.33291196e+01 3.32400618e+01 + 3.31512383e+01 3.30626483e+01 3.29742913e+01 3.28861667e+01 3.27982740e+01 + 3.27106125e+01 3.26231818e+01 3.25359813e+01 3.24490103e+01 3.23622683e+01 + 3.22757548e+01 3.21894691e+01 3.21034108e+01 3.20175792e+01 3.19319738e+01 + 3.18465940e+01 3.17614393e+01 3.16765091e+01 3.15918029e+01 3.15073200e+01 + 3.14230600e+01 3.13390223e+01 3.12552063e+01 3.11716115e+01 3.10882373e+01 + 3.10050832e+01 3.09221486e+01 3.08394330e+01 3.07569358e+01 3.06746565e+01 + 3.05925945e+01 3.05107493e+01 3.04291204e+01 3.03477071e+01 3.02665091e+01 + 3.01855256e+01 3.01047563e+01 3.00242005e+01 2.99438576e+01 2.98637273e+01 + 2.97838089e+01 2.97041019e+01 2.96246058e+01 2.95453200e+01 2.94662440e+01 + 2.93873773e+01 2.93087194e+01 2.92302697e+01 2.91520276e+01 2.90739928e+01 + 2.89961646e+01 2.89185425e+01 2.88411260e+01 2.87639145e+01 2.86869077e+01 + 2.86101048e+01 2.85335055e+01 2.84571092e+01 2.83809154e+01 2.83049236e+01 + 2.82291332e+01 2.81535438e+01 2.80781548e+01 2.80029657e+01 2.79279760e+01 + 2.78531853e+01 2.77785929e+01 2.77041985e+01 2.76300014e+01 2.75560012e+01 + 2.74821974e+01 2.74085895e+01 2.73351769e+01 2.72619592e+01 2.71889360e+01 + 2.71161065e+01 2.70434705e+01 2.69710274e+01 2.68987766e+01 2.68267178e+01 + 2.67548504e+01 2.66831739e+01 2.66116878e+01 2.65403917e+01 2.64692850e+01 + 2.63983673e+01 2.63276380e+01 2.62570968e+01 2.61867431e+01 2.61165764e+01 + 2.60465962e+01 2.59768021e+01 2.59071936e+01 2.58377702e+01 2.57685315e+01 + 2.56994769e+01 2.56306059e+01 2.55619182e+01 2.54934132e+01 2.54250905e+01 + 2.53569496e+01 2.52889900e+01 2.52212112e+01 2.51536129e+01 2.50861944e+01 + 2.50189554e+01 2.49518954e+01 2.48850139e+01 2.48183105e+01 2.47517847e+01 + 2.46854360e+01 2.46192641e+01 2.45532683e+01 2.44874483e+01 2.44218036e+01 + 2.43563338e+01 2.42910384e+01 2.42259169e+01 2.41609689e+01 2.40961940e+01 + 2.40315917e+01 2.39671615e+01 2.39029030e+01 2.38388158e+01 2.37748994e+01 + 2.37111533e+01 2.36475772e+01 2.35841706e+01 2.35209330e+01 2.34578640e+01 + 2.33949631e+01 2.33322300e+01 2.32696641e+01 2.32072651e+01 2.31450326e+01 + 2.30829659e+01 2.30210649e+01 2.29593289e+01 2.28977577e+01 2.28363507e+01 + 2.27751075e+01 2.27140277e+01 2.26531109e+01 2.25923566e+01 2.25317644e+01 + 2.24713339e+01 2.24110647e+01 2.23509564e+01 2.22910085e+01 2.22312206e+01 + 2.21715922e+01 2.21121231e+01 2.20528127e+01 2.19936606e+01 2.19346665e+01 + 2.18758299e+01 2.18171503e+01 2.17586275e+01 2.17002609e+01 2.16420503e+01 + 2.15839950e+01 2.15260948e+01 2.14683493e+01 2.14107580e+01 2.13533205e+01 + 2.12960364e+01 2.12389054e+01 2.11819270e+01 2.11251008e+01 2.10684265e+01 + 2.10119035e+01 2.09555316e+01 2.08993103e+01 2.08432393e+01 2.07873181e+01 + 2.07315463e+01 2.06759236e+01 2.06204495e+01 2.05651237e+01 2.05099458e+01 + 2.04549154e+01 2.04000321e+01 2.03452954e+01 2.02907052e+01 2.02362608e+01 + 2.01819620e+01 2.01278084e+01 2.00737995e+01 2.00199351e+01 1.99662147e+01 + 1.99126380e+01 1.98592045e+01 1.98059139e+01 1.97527658e+01 1.96997599e+01 + 1.96468957e+01 1.95941729e+01 1.95415912e+01 1.94891500e+01 1.94368492e+01 + 1.93846882e+01 1.93326668e+01 1.92807846e+01 1.92290411e+01 1.91774361e+01 + 1.91259691e+01 1.90746398e+01 1.90234479e+01 1.89723930e+01 1.89214746e+01 + 1.88706925e+01 1.88200463e+01 1.87695356e+01 1.87191601e+01 1.86689194e+01 + 1.86188132e+01 1.85688411e+01 1.85190027e+01 1.84692977e+01 1.84197257e+01 + 1.83702865e+01 1.83209796e+01 1.82718046e+01 1.82227613e+01 1.81738493e+01 + 1.81250682e+01 1.80764177e+01 1.80278975e+01 1.79795071e+01 1.79312463e+01 + 1.78831148e+01 1.78351121e+01 1.77872379e+01 1.77394919e+01 1.76918738e+01 + 1.76443832e+01 1.75970197e+01 1.75497831e+01 1.75026730e+01 1.74556891e+01 + 1.74088310e+01 1.73620983e+01 1.73154909e+01 1.72690082e+01 1.72226501e+01 + 1.71764161e+01 1.71303060e+01 1.70843194e+01 1.70384560e+01 1.69927154e+01 + 1.69470973e+01 1.69016015e+01 1.68562275e+01 1.68109751e+01 1.67658439e+01 + 1.67208336e+01 1.66759439e+01 1.66311745e+01 1.65865250e+01 1.65419952e+01 + 1.64975846e+01 1.64532931e+01 1.64091202e+01 1.63650657e+01 1.63211293e+01 + 1.62773106e+01 1.62336093e+01 1.61900251e+01 1.61465577e+01 1.61032068e+01 + 1.60599721e+01 1.60168532e+01 1.59738499e+01 1.59309619e+01 1.58881887e+01 + 1.58455303e+01 1.58029861e+01 1.57605560e+01 1.57182397e+01 1.56760367e+01 + 1.56339469e+01 1.55919699e+01 1.55501054e+01 1.55083531e+01 1.54667128e+01 + 1.54251840e+01 1.53837666e+01 1.53424603e+01 1.53012646e+01 1.52601794e+01 + 1.52192044e+01 1.51783392e+01 1.51375835e+01 1.50969371e+01 1.50563997e+01 + 1.50159710e+01 1.49756507e+01 1.49354385e+01 1.48953341e+01 1.48553372e+01 + 1.48154476e+01 1.47756649e+01 1.47359889e+01 1.46964193e+01 1.46569558e+01 + 1.46175982e+01 1.45783460e+01 1.45391992e+01 1.45001573e+01 1.44612201e+01 + 1.44221013e+01 1.43823077e+01 1.43418365e+01 1.43006939e+01 1.42588863e+01 + 1.42164199e+01 1.41733013e+01 1.41295367e+01 1.40851327e+01 1.40400959e+01 + 1.39944327e+01 1.39481499e+01 1.39012541e+01 1.38537520e+01 1.38056503e+01 + 1.37569558e+01 1.37076754e+01 1.36578159e+01 1.36073842e+01 1.35563871e+01 + 1.35048318e+01 1.34527252e+01 1.34000743e+01 1.33468861e+01 1.32931679e+01 + 1.32389266e+01 1.31841694e+01 1.31289036e+01 1.30731363e+01 1.30168747e+01 + 1.29601261e+01 1.29028978e+01 1.28451971e+01 1.27870312e+01 1.27284076e+01 + 1.26693335e+01 1.26098164e+01 1.25498637e+01 1.24894827e+01 1.24286808e+01 + 1.23674656e+01 1.23058445e+01 1.22438250e+01 1.21814144e+01 1.21186203e+01 + 1.20554503e+01 1.19919118e+01 1.19280122e+01 1.18637593e+01 1.17991604e+01 + 1.17342231e+01 1.16689549e+01 1.16033634e+01 1.15374562e+01 1.14712406e+01 + 1.14047244e+01 1.13379151e+01 1.12708201e+01 1.12034471e+01 1.11358035e+01 + 1.10678969e+01 1.09997348e+01 1.09313248e+01 1.08626743e+01 1.07937909e+01 + 1.07246820e+01 1.06553552e+01 1.05858180e+01 1.05160777e+01 1.04461419e+01 + 1.03760180e+01 1.03057134e+01 1.02352356e+01 1.01645919e+01 1.00937898e+01 + 1.00228366e+01 9.95173971e+00 9.88050638e+00 9.80914398e+00 9.73765979e+00 + 9.66606109e+00 9.59435515e+00 9.52254919e+00 9.45065043e+00 9.37866605e+00 + 9.30660322e+00 9.23446907e+00 9.16227073e+00 9.09001528e+00 9.01770977e+00 + 8.94536125e+00 8.87297672e+00 8.80056316e+00 8.72812750e+00 8.65567668e+00 + 8.58321756e+00 8.51075702e+00 8.43830186e+00 8.36585889e+00 8.29343485e+00 + 8.22103646e+00 8.14867042e+00 8.07634337e+00 8.00406193e+00 7.93183268e+00 + 7.85966216e+00 7.78755688e+00 7.71552329e+00 7.64356784e+00 7.57169690e+00 + 7.49991683e+00 7.42823393e+00 7.35665448e+00 7.28518468e+00 7.21383074e+00 + 7.14259879e+00 7.07149492e+00 7.00052520e+00 6.92969562e+00 6.85901217e+00 + 6.78848076e+00 6.71810726e+00 6.64789751e+00 6.57785729e+00 6.50799234e+00 + 6.43830834e+00 6.36881094e+00 6.29950573e+00 6.23039827e+00 6.16149404e+00 + 6.09279849e+00 6.02431702e+00 5.95605499e+00 5.88801768e+00 5.82021035e+00 + 5.75263820e+00 5.68530636e+00 5.61821994e+00 5.55138397e+00 5.48480344e+00 + 5.41848329e+00 5.35242840e+00 5.28664361e+00 5.22113368e+00 5.15590335e+00 + 5.09095728e+00 5.02630009e+00 4.96193633e+00 4.89787051e+00 4.83410709e+00 + 4.77065045e+00 4.70750493e+00 4.64467483e+00 4.58216436e+00 4.51997769e+00 + 4.45811895e+00 4.39659218e+00 4.33540140e+00 4.27455054e+00 4.21404350e+00 + 4.15388409e+00 4.09407611e+00 4.03462325e+00 3.97552918e+00 3.91679750e+00 + 3.85843175e+00 3.80043541e+00 3.74281191e+00 3.68556461e+00 3.62869683e+00 + 3.57221182e+00 3.51611277e+00 3.46040280e+00 3.40508500e+00 3.35016239e+00 + 3.29563791e+00 3.24151448e+00 3.18779492e+00 3.13448202e+00 3.08157850e+00 + 3.02908703e+00 2.97701021e+00 2.92535059e+00 2.87411065e+00 2.82329282e+00 + 2.77289947e+00 2.72293291e+00 2.67339540e+00 2.62428912e+00 2.57561621e+00 + 2.52737875e+00 2.47957875e+00 2.43221817e+00 2.38529892e+00 2.33882283e+00 + 2.29279169e+00 2.24720723e+00 2.20207111e+00 2.15738494e+00 2.11315028e+00 + 2.06936862e+00 2.02604139e+00 1.98316998e+00 1.94075571e+00 1.89879985e+00 + 1.85730359e+00 1.81626811e+00 1.77569447e+00 1.73558374e+00 1.69593688e+00 + 1.65675483e+00 1.61803846e+00 1.57978857e+00 1.54200593e+00 1.50469123e+00 + 1.46784514e+00 1.43146824e+00 1.39556106e+00 1.36012410e+00 1.32515778e+00 + 1.29066248e+00 1.25663851e+00 1.22308616e+00 1.19000563e+00 1.15739708e+00 + 1.12526062e+00 1.09359631e+00 1.06240415e+00 1.03168410e+00 1.00143606e+00 + 9.71659862e-01 9.42355321e-01 9.13522177e-01 8.85160127e-01 8.57268818e-01 + 8.29847844e-01 8.02896752e-01 7.76415039e-01 7.50402153e-01 7.24857492e-01 + 6.99780408e-01 6.75170202e-01 6.51026130e-01 6.27347399e-01 6.04133170e-01 + 5.81382555e-01 5.59094623e-01 5.37268394e-01 5.15902844e-01 4.94996902e-01 + 4.74549455e-01 4.54559343e-01 4.35025362e-01 4.15946264e-01 3.97320759e-01 + 3.79147513e-01 3.61425148e-01 3.44152245e-01 3.27327344e-01 3.10948942e-01 + 2.95015494e-01 2.79525416e-01 2.64477082e-01 2.49868829e-01 2.35698950e-01 + 2.21965702e-01 2.08667302e-01 1.95801929e-01 1.83367724e-01 1.71362791e-01 + 1.59785195e-01 1.48632967e-01 1.37904098e-01 1.27596548e-01 1.17708236e-01 + 1.08237051e-01 9.91808451e-02 9.05374353e-02 8.23046065e-02 7.44801094e-02 + 6.70616623e-02 6.00469508e-02 5.34336286e-02 4.72193177e-02 4.14016091e-02 + 3.59780630e-02 3.09462095e-02 2.63035487e-02 2.20475516e-02 1.81756600e-02 + 1.46852874e-02 1.15738194e-02 8.83861364e-03 6.47700104e-03 4.48628566e-03 + 2.86374536e-03 1.60663225e-03 7.12173109e-04 1.77569856e-04 0.00000000e+00 + 1.65968286e-01 1.65968286e-01 1.67501954e-01 1.69381845e-01 1.71282685e-01 + 1.73204702e-01 1.75148130e-01 1.77113201e-01 1.79100155e-01 1.81109230e-01 + 1.83140669e-01 1.85194716e-01 1.87271619e-01 1.89371627e-01 1.91494994e-01 + 1.93641974e-01 1.95812825e-01 1.98007809e-01 2.00227187e-01 2.02471227e-01 + 2.04740197e-01 2.07034369e-01 2.09354018e-01 2.11699420e-01 2.14070856e-01 + 2.16468609e-01 2.18892965e-01 2.21344213e-01 2.23822646e-01 2.26328558e-01 + 2.28862247e-01 2.31424015e-01 2.34014167e-01 2.36633008e-01 2.39280850e-01 + 2.41958008e-01 2.44664796e-01 2.47401537e-01 2.50168554e-01 2.52966173e-01 + 2.55794724e-01 2.58654541e-01 2.61545961e-01 2.64469325e-01 2.67424975e-01 + 2.70413260e-01 2.73434529e-01 2.76489138e-01 2.79577445e-01 2.82699810e-01 + 2.85856598e-01 2.89048180e-01 2.92274926e-01 2.95537214e-01 2.98835423e-01 + 3.02169937e-01 3.05541143e-01 3.08949433e-01 3.12395202e-01 3.15878849e-01 + 3.19400778e-01 3.22961395e-01 3.26561111e-01 3.30200343e-01 3.33879508e-01 + 3.37599030e-01 3.41359337e-01 3.45160859e-01 3.49004034e-01 3.52889300e-01 + 3.56817102e-01 3.60787889e-01 3.64802114e-01 3.68860232e-01 3.72962707e-01 + 3.77110004e-01 3.81302594e-01 3.85540951e-01 3.89825554e-01 3.94156889e-01 + 3.98535442e-01 4.02961708e-01 4.07436184e-01 4.11959373e-01 4.16531781e-01 + 4.21153920e-01 4.25826307e-01 4.30549463e-01 4.35323915e-01 4.40150193e-01 + 4.45028834e-01 4.49960377e-01 4.54945369e-01 4.59984360e-01 4.65077907e-01 + 4.70226569e-01 4.75430912e-01 4.80691507e-01 4.86008931e-01 4.91383763e-01 + 4.96816591e-01 5.02308005e-01 5.07858602e-01 5.13468983e-01 5.19139757e-01 + 5.24871535e-01 5.30664934e-01 5.36520578e-01 5.42439096e-01 5.48421119e-01 + 5.54467289e-01 5.60578249e-01 5.66754649e-01 5.72997145e-01 5.79306397e-01 + 5.85683073e-01 5.92127843e-01 5.98641385e-01 6.05224382e-01 6.11877524e-01 + 6.18601503e-01 6.25397020e-01 6.32264781e-01 6.39205495e-01 6.46219881e-01 + 6.53308659e-01 6.60472559e-01 6.67712313e-01 6.75028662e-01 6.82422349e-01 + 6.89894127e-01 6.97444750e-01 7.05074982e-01 7.12785590e-01 7.20577348e-01 + 7.28451035e-01 7.36407436e-01 7.44447341e-01 7.52571547e-01 7.60780856e-01 + 7.69076076e-01 7.77458020e-01 7.85927507e-01 7.94485362e-01 8.03132416e-01 + 8.11869504e-01 8.20697469e-01 8.29617157e-01 8.38629421e-01 8.47735121e-01 + 8.56935119e-01 8.66230285e-01 8.75621495e-01 8.85109628e-01 8.94695572e-01 + 9.04380216e-01 9.14164458e-01 9.24049199e-01 9.34035347e-01 9.44123815e-01 + 9.54315519e-01 9.64611384e-01 9.75012336e-01 9.85519310e-01 9.96133242e-01 + 1.00685508e+00 1.01768576e+00 1.02862625e+00 1.03967749e+00 1.05084046e+00 + 1.06211612e+00 1.07350544e+00 1.08500939e+00 1.09662896e+00 1.10836513e+00 + 1.12021890e+00 1.13219124e+00 1.14428316e+00 1.15649566e+00 1.16882975e+00 + 1.18128643e+00 1.19386672e+00 1.20657163e+00 1.21940218e+00 1.23235939e+00 + 1.24544429e+00 1.25865790e+00 1.27200127e+00 1.28547542e+00 1.29908139e+00 + 1.31282021e+00 1.32669294e+00 1.34070062e+00 1.35484429e+00 1.36912500e+00 + 1.38354380e+00 1.39810174e+00 1.41279987e+00 1.42763926e+00 1.44262095e+00 + 1.45774600e+00 1.47301546e+00 1.48843041e+00 1.50399188e+00 1.51970095e+00 + 1.53555866e+00 1.55156608e+00 1.56772426e+00 1.58403426e+00 1.60049713e+00 + 1.61711393e+00 1.63388570e+00 1.65081351e+00 1.66789840e+00 1.68514141e+00 + 1.70254358e+00 1.72010597e+00 1.73782961e+00 1.75571552e+00 1.77376475e+00 + 1.79197832e+00 1.81035726e+00 1.82890257e+00 1.84761528e+00 1.86649640e+00 + 1.88554692e+00 1.90476784e+00 1.92416016e+00 1.94372486e+00 1.96346292e+00 + 1.98337531e+00 2.00346299e+00 2.02372692e+00 2.04416804e+00 2.06478730e+00 + 2.08558562e+00 2.10656392e+00 2.12772312e+00 2.14906411e+00 2.17058779e+00 + 2.19229503e+00 2.21418670e+00 2.23626366e+00 2.25852674e+00 2.28097679e+00 + 2.30361461e+00 2.32644102e+00 2.34945680e+00 2.37266272e+00 2.39605955e+00 + 2.41964804e+00 2.44342891e+00 2.46740287e+00 2.49157062e+00 2.51593285e+00 + 2.54049020e+00 2.56524333e+00 2.59019286e+00 2.61533938e+00 2.64068350e+00 + 2.66622577e+00 2.69196673e+00 2.71790690e+00 2.74404680e+00 2.77038689e+00 + 2.79692763e+00 2.82366945e+00 2.85061275e+00 2.87775793e+00 2.90510534e+00 + 2.93265530e+00 2.96040813e+00 2.98836411e+00 3.01652347e+00 3.04488646e+00 + 3.07345326e+00 3.10222404e+00 3.13119894e+00 3.16037805e+00 3.18976147e+00 + 3.21934922e+00 3.24914133e+00 3.27913778e+00 3.30933850e+00 3.33974343e+00 + 3.37035242e+00 3.40116534e+00 3.43218198e+00 3.46340213e+00 3.49482552e+00 + 3.52645185e+00 3.55828079e+00 3.59031197e+00 3.62254496e+00 3.65497933e+00 + 3.68761457e+00 3.72045016e+00 3.75348554e+00 3.78672008e+00 3.82015313e+00 + 3.85378401e+00 3.88761196e+00 3.92163622e+00 3.95585596e+00 3.99027032e+00 + 4.02487837e+00 4.05967918e+00 4.09467173e+00 4.12985498e+00 4.16522784e+00 + 4.20078917e+00 4.23653779e+00 4.27247247e+00 4.30859194e+00 4.34489485e+00 + 4.38137985e+00 4.41804551e+00 4.45489037e+00 4.49191289e+00 4.52911153e+00 + 4.56648465e+00 4.60403061e+00 4.64174767e+00 4.67963408e+00 4.71768803e+00 + 4.75590765e+00 4.79429103e+00 4.83283620e+00 4.87154114e+00 4.91040381e+00 + 4.94942207e+00 4.98859378e+00 5.02791670e+00 5.06738858e+00 5.10700710e+00 + 5.14676990e+00 5.18667457e+00 5.22671863e+00 5.26689957e+00 5.30721483e+00 + 5.34766180e+00 5.38823781e+00 5.42894016e+00 5.46976609e+00 5.51071278e+00 + 5.55177738e+00 5.59295700e+00 5.63424868e+00 5.67564943e+00 5.71715620e+00 + 5.75876591e+00 5.80047542e+00 5.84228156e+00 5.88418111e+00 5.92617080e+00 + 5.96824732e+00 6.01040733e+00 6.05264743e+00 6.09496419e+00 6.13735413e+00 + 6.17981376e+00 6.22233950e+00 6.26492779e+00 6.30757498e+00 6.35027743e+00 + 6.39303142e+00 6.43583324e+00 6.47867912e+00 6.52156525e+00 6.56448781e+00 + 6.60744295e+00 6.65042676e+00 6.69343534e+00 6.73646474e+00 6.77951098e+00 + 6.82257007e+00 6.86563800e+00 6.90871071e+00 6.95178414e+00 6.99485420e+00 + 7.03791679e+00 7.08096779e+00 7.12400304e+00 7.16701841e+00 7.21000970e+00 + 7.25297275e+00 7.29590336e+00 7.33879731e+00 7.38165039e+00 7.42445838e+00 + 7.46721705e+00 7.50992216e+00 7.55256947e+00 7.59515474e+00 7.63767373e+00 + 7.68012218e+00 7.72249588e+00 7.76479056e+00 7.80700201e+00 7.84912598e+00 + 7.89115827e+00 7.93309466e+00 7.97493094e+00 8.01666293e+00 8.05828645e+00 + 8.09979734e+00 8.14119143e+00 8.18246462e+00 8.22361278e+00 8.26463181e+00 + 8.30551766e+00 8.34626626e+00 8.38687359e+00 8.42733566e+00 8.46764848e+00 + 8.50780811e+00 8.54781063e+00 8.58765216e+00 8.62732884e+00 8.66683685e+00 + 8.70617239e+00 8.74533171e+00 8.78431109e+00 8.82310687e+00 8.86171538e+00 + 8.90013304e+00 8.93835627e+00 8.97638157e+00 9.01420545e+00 9.05182449e+00 + 9.08923530e+00 9.12643453e+00 9.16341889e+00 9.20018514e+00 9.23673009e+00 + 9.27305057e+00 9.30914350e+00 9.34500584e+00 9.38063458e+00 9.41602679e+00 + 9.45117958e+00 9.48609012e+00 9.52075564e+00 9.55517340e+00 9.58934075e+00 + 9.62325508e+00 9.65691384e+00 9.69031453e+00 9.72345472e+00 9.75633204e+00 + 9.78894416e+00 9.82128884e+00 9.85336387e+00 9.88516712e+00 9.91669651e+00 + 9.94795003e+00 9.97892573e+00 1.00096217e+01 1.00400361e+01 1.00701673e+01 + 1.01000134e+01 1.01295728e+01 1.01588440e+01 1.01878254e+01 1.02165155e+01 + 1.02449131e+01 1.02730167e+01 1.03008250e+01 1.03283369e+01 1.03555512e+01 + 1.03824668e+01 1.04090827e+01 1.04353979e+01 1.04614115e+01 1.04871227e+01 + 1.05125307e+01 1.05376347e+01 1.05624341e+01 1.05869282e+01 1.06111166e+01 + 1.06349988e+01 1.06585742e+01 1.06818426e+01 1.07048035e+01 1.07274568e+01 + 1.07498023e+01 1.07718397e+01 1.07935690e+01 1.08149902e+01 1.08361032e+01 + 1.08569082e+01 1.08774051e+01 1.08975943e+01 1.09174759e+01 1.09370501e+01 + 1.09563174e+01 1.09752780e+01 1.09939325e+01 1.10122811e+01 1.10303246e+01 + 1.10480633e+01 1.10654980e+01 1.10826292e+01 1.10994577e+01 1.11159841e+01 + 1.11322093e+01 1.11481341e+01 1.11637593e+01 1.11790858e+01 1.11941146e+01 + 1.12088466e+01 1.12232829e+01 1.12374245e+01 1.12512725e+01 1.12648279e+01 + 1.12780921e+01 1.12910660e+01 1.13037511e+01 1.13161484e+01 1.13282594e+01 + 1.13400853e+01 1.13516274e+01 1.13628872e+01 1.13738660e+01 1.13845653e+01 + 1.13949865e+01 1.14051310e+01 1.14150005e+01 1.14245965e+01 1.14339203e+01 + 1.14429738e+01 1.14517584e+01 1.14602758e+01 1.14685276e+01 1.14765154e+01 + 1.14842410e+01 1.14917060e+01 1.14989121e+01 1.15058611e+01 1.15125547e+01 + 1.15189947e+01 1.15251829e+01 1.15311209e+01 1.15368107e+01 1.15422540e+01 + 1.15474527e+01 1.15524086e+01 1.15571235e+01 1.15615993e+01 1.15658378e+01 + 1.15698410e+01 1.15736107e+01 1.15771488e+01 1.15804572e+01 1.15835378e+01 + 1.15863925e+01 1.15890232e+01 1.15914318e+01 1.15936202e+01 1.15955905e+01 + 1.15973444e+01 1.15988840e+01 1.16002111e+01 1.16013277e+01 1.16022357e+01 + 1.16029371e+01 1.16034338e+01 1.16037276e+01 1.16038207e+01 1.16037148e+01 + 1.16034120e+01 1.16029141e+01 1.16022230e+01 1.16013408e+01 1.16002692e+01 + 1.15990103e+01 1.15975659e+01 1.15959380e+01 1.15941284e+01 1.15921390e+01 + 1.15899718e+01 1.15876286e+01 1.15851113e+01 1.15824217e+01 1.15795618e+01 + 1.15765334e+01 1.15733384e+01 1.15699786e+01 1.15664558e+01 1.15627718e+01 + 1.15589286e+01 1.15549279e+01 1.15507715e+01 1.15464612e+01 1.15419987e+01 + 1.15373860e+01 1.15326247e+01 1.15277166e+01 1.15226635e+01 1.15174671e+01 + 1.15121291e+01 1.15066512e+01 1.15010352e+01 1.14952827e+01 1.14893955e+01 + 1.14833752e+01 1.14772235e+01 1.14709421e+01 1.14645325e+01 1.14579965e+01 + 1.14513356e+01 1.14445514e+01 1.14376456e+01 1.14306198e+01 1.14234754e+01 + 1.14162142e+01 1.14088375e+01 1.14013471e+01 1.13937443e+01 1.13860308e+01 + 1.13782080e+01 1.13702775e+01 1.13622406e+01 1.13540989e+01 1.13458538e+01 + 1.13375068e+01 1.13290592e+01 1.13205127e+01 1.13118684e+01 1.13031278e+01 + 1.12942924e+01 1.12853635e+01 1.12763423e+01 1.12672304e+01 1.12580290e+01 + 1.12487394e+01 1.12393630e+01 1.12299010e+01 1.12203547e+01 1.12107255e+01 + 1.12010145e+01 1.11912231e+01 1.11813524e+01 1.11714036e+01 1.11613781e+01 + 1.11512770e+01 1.11411014e+01 1.11308526e+01 1.11205317e+01 1.11101399e+01 + 1.10996784e+01 1.10891481e+01 1.10785504e+01 1.10678862e+01 1.10571567e+01 + 1.10463630e+01 1.10355060e+01 1.10245870e+01 1.10136069e+01 1.10025668e+01 + 1.09914677e+01 1.09803106e+01 1.09690966e+01 1.09578266e+01 1.09465015e+01 + 1.09351225e+01 1.09236904e+01 1.09122062e+01 1.09006708e+01 1.08890852e+01 + 1.08774503e+01 1.08657669e+01 1.08540361e+01 1.08422586e+01 1.08304354e+01 + 1.08185673e+01 1.08066552e+01 1.07947000e+01 1.07827024e+01 1.07706633e+01 + 1.07585835e+01 1.07464638e+01 1.07343051e+01 1.07221081e+01 1.07098735e+01 + 1.06976023e+01 1.06852951e+01 1.06729526e+01 1.06605757e+01 1.06481651e+01 + 1.06357214e+01 1.06232455e+01 1.06107379e+01 1.05981995e+01 1.05856309e+01 + 1.05730327e+01 1.05604057e+01 1.05477506e+01 1.05350679e+01 1.05223583e+01 + 1.05096226e+01 1.04968612e+01 1.04840748e+01 1.04712641e+01 1.04584297e+01 + 1.04455721e+01 1.04326919e+01 1.04197898e+01 1.04068663e+01 1.03939220e+01 + 1.03809575e+01 1.03679732e+01 1.03549698e+01 1.03419478e+01 1.03289077e+01 + 1.03158501e+01 1.03027754e+01 1.02896843e+01 1.02765771e+01 1.02634544e+01 + 1.02503168e+01 1.02371646e+01 1.02239984e+01 1.02108186e+01 1.01976257e+01 + 1.01844202e+01 1.01712025e+01 1.01579730e+01 1.01447323e+01 1.01314808e+01 + 1.01182188e+01 1.01049468e+01 1.00916652e+01 1.00783745e+01 1.00650751e+01 + 1.00517673e+01 1.00384515e+01 1.00251282e+01 1.00117977e+01 9.99846039e+00 + 9.98511668e+00 9.97176692e+00 9.95841148e+00 9.94505072e+00 9.93168499e+00 + 9.91831464e+00 9.90494002e+00 9.89156146e+00 9.87817931e+00 9.86479389e+00 + 9.85140552e+00 9.83801454e+00 9.82462125e+00 9.81122596e+00 9.79782899e+00 + 9.78443064e+00 9.77103121e+00 9.75763099e+00 9.74423026e+00 9.73082933e+00 + 9.71742846e+00 9.70402794e+00 9.69062803e+00 9.67722902e+00 9.66383116e+00 + 9.65043471e+00 9.63703994e+00 9.62364710e+00 9.61025643e+00 9.59686819e+00 + 9.58348261e+00 9.57009994e+00 9.55672041e+00 9.54334426e+00 9.52997170e+00 + 9.51660298e+00 9.50323830e+00 9.48987788e+00 9.47652195e+00 9.46317071e+00 + 9.44982438e+00 9.43648315e+00 9.42314723e+00 9.40981681e+00 9.39649211e+00 + 9.38317329e+00 9.36986057e+00 9.35655411e+00 9.34325412e+00 9.32996076e+00 + 9.31667422e+00 9.30339467e+00 9.29012228e+00 9.27685723e+00 9.26359969e+00 + 9.25034980e+00 9.23710775e+00 9.22387369e+00 9.21064777e+00 9.19743015e+00 + 9.18422098e+00 9.17102040e+00 9.15782858e+00 9.14464565e+00 9.13147175e+00 + 9.11830703e+00 9.10515161e+00 9.09200565e+00 9.07886926e+00 9.06574258e+00 + 9.05262574e+00 9.03951887e+00 9.02642209e+00 9.01333552e+00 9.00025928e+00 + 8.98719349e+00 8.97413827e+00 8.96109373e+00 8.94805998e+00 8.93503713e+00 + 8.92202530e+00 8.90902459e+00 8.89603510e+00 8.88305693e+00 8.87009019e+00 + 8.85713498e+00 8.84419139e+00 8.83125952e+00 8.81833946e+00 8.80543131e+00 + 8.79253516e+00 8.77965109e+00 8.76677920e+00 8.75391957e+00 8.74107228e+00 + 8.72823741e+00 8.71541505e+00 8.70260529e+00 8.68980818e+00 8.67702382e+00 + 8.66425228e+00 8.65149363e+00 8.63874794e+00 8.62601529e+00 8.61329575e+00 + 8.60058938e+00 8.58789625e+00 8.57521642e+00 8.56254997e+00 8.54989695e+00 + 8.53725743e+00 8.52463147e+00 8.51201913e+00 8.49942046e+00 8.48683552e+00 + 8.47426437e+00 8.46170706e+00 8.44916365e+00 8.43663420e+00 8.42411874e+00 + 8.41161733e+00 8.39913003e+00 8.38665687e+00 8.37419791e+00 8.36175319e+00 + 8.34932276e+00 8.33690667e+00 8.32450494e+00 8.31211764e+00 8.29974479e+00 + 8.28738645e+00 8.27504264e+00 8.26271341e+00 8.25039879e+00 8.23809882e+00 + 8.22581354e+00 8.21354298e+00 8.20128718e+00 8.18904617e+00 8.17681998e+00 + 8.16460864e+00 8.15241219e+00 8.14023065e+00 8.12806405e+00 8.11591243e+00 + 8.10377580e+00 8.09165420e+00 8.07954766e+00 8.06745619e+00 8.05537982e+00 + 8.04331859e+00 8.03127250e+00 8.01924158e+00 8.00722586e+00 7.99522536e+00 + 7.98324009e+00 7.97127008e+00 7.95931535e+00 7.94737591e+00 7.93545178e+00 + 7.92354299e+00 7.91164954e+00 7.89977146e+00 7.88790876e+00 7.87606145e+00 + 7.86422956e+00 7.85241308e+00 7.84061205e+00 7.82882646e+00 7.81705634e+00 + 7.80530170e+00 7.79356254e+00 7.78183887e+00 7.77013072e+00 7.75843808e+00 + 7.74676097e+00 7.73509939e+00 7.72345336e+00 7.71182288e+00 7.70020796e+00 + 7.68860861e+00 7.67702484e+00 7.66545664e+00 7.65390403e+00 7.64236701e+00 + 7.63084558e+00 7.61933976e+00 7.60784954e+00 7.59637493e+00 7.58491593e+00 + 7.57347255e+00 7.56204478e+00 7.55063263e+00 7.53923611e+00 7.52785521e+00 + 7.51648993e+00 7.50514027e+00 7.49380625e+00 7.48248784e+00 7.47118506e+00 + 7.45989791e+00 7.44862638e+00 7.43737047e+00 7.42613019e+00 7.41490552e+00 + 7.40369647e+00 7.39250303e+00 7.38132520e+00 7.37016298e+00 7.35901637e+00 + 7.34788536e+00 7.33676995e+00 7.32567012e+00 7.31458589e+00 7.30351724e+00 + 7.29246417e+00 7.28142668e+00 7.27040475e+00 7.25939839e+00 7.24840758e+00 + 7.23743232e+00 7.22647260e+00 7.21552843e+00 7.20459978e+00 7.19368666e+00 + 7.18278905e+00 7.17190695e+00 7.16104035e+00 7.15018924e+00 7.13935361e+00 + 7.12853346e+00 7.11772878e+00 7.10693956e+00 7.09616578e+00 7.08540745e+00 + 7.07466454e+00 7.06393706e+00 7.05322498e+00 7.04252831e+00 7.03184703e+00 + 7.02118113e+00 7.01053060e+00 6.99989543e+00 6.98927560e+00 6.97867112e+00 + 6.96808196e+00 6.95750811e+00 6.94694957e+00 6.93640632e+00 6.92587836e+00 + 6.91536566e+00 6.90486821e+00 6.89438602e+00 6.88391905e+00 6.87346730e+00 + 6.86303076e+00 6.85260942e+00 6.84220325e+00 6.83181225e+00 6.82143641e+00 + 6.81107571e+00 6.80073014e+00 6.79039969e+00 6.78008434e+00 6.76978407e+00 + 6.75949888e+00 6.74922875e+00 6.73897367e+00 6.72873362e+00 6.71850858e+00 + 6.70829855e+00 6.69810351e+00 6.68792344e+00 6.67775834e+00 6.66760818e+00 + 6.65747295e+00 6.64735264e+00 6.63724722e+00 6.62715669e+00 6.61708104e+00 + 6.60702024e+00 6.59697427e+00 6.58694314e+00 6.57692681e+00 6.56692528e+00 + 6.55693852e+00 6.54696653e+00 6.53700928e+00 6.52706676e+00 6.51713896e+00 + 6.50722585e+00 6.49732743e+00 6.48744368e+00 6.47757458e+00 6.46772011e+00 + 6.45788025e+00 6.44805500e+00 6.43824434e+00 6.42844824e+00 6.41866669e+00 + 6.40889968e+00 6.39914719e+00 6.38940920e+00 6.37968570e+00 6.36997666e+00 + 6.36028208e+00 6.35060193e+00 6.34093620e+00 6.33128487e+00 6.32164792e+00 + 6.31202534e+00 6.30241711e+00 6.29282321e+00 6.28324363e+00 6.27367834e+00 + 6.26412734e+00 6.25459059e+00 6.24506810e+00 6.23555983e+00 6.22606577e+00 + 6.21658591e+00 6.20712022e+00 6.19766869e+00 6.18823131e+00 6.17880804e+00 + 6.16939888e+00 6.16000381e+00 6.15062281e+00 6.14125587e+00 6.13190295e+00 + 6.12256406e+00 6.11323916e+00 6.10392825e+00 6.09463130e+00 6.08534829e+00 + 6.07607921e+00 6.06682405e+00 6.05758277e+00 6.04835537e+00 6.03914183e+00 + 6.02994212e+00 6.02075624e+00 6.01158416e+00 6.00242586e+00 5.99328133e+00 + 5.98415054e+00 5.97503349e+00 5.96593015e+00 5.95684050e+00 5.94776453e+00 + 5.93870221e+00 5.92965354e+00 5.92061849e+00 5.91159704e+00 5.90258917e+00 + 5.89359488e+00 5.88461413e+00 5.87564691e+00 5.86669320e+00 5.85775299e+00 + 5.84882626e+00 5.83991298e+00 5.83101314e+00 5.82212673e+00 5.81325371e+00 + 5.80439408e+00 5.79554782e+00 5.78671491e+00 5.77789533e+00 5.76908906e+00 + 5.76029608e+00 5.75151638e+00 5.74274993e+00 5.73399672e+00 5.72525674e+00 + 5.71652996e+00 5.70781636e+00 5.69911593e+00 5.69042864e+00 5.68175449e+00 + 5.67309344e+00 5.66444549e+00 5.65581061e+00 5.64718879e+00 5.63858001e+00 + 5.62998425e+00 5.62140149e+00 5.61283171e+00 5.60427490e+00 5.59573104e+00 + 5.58720011e+00 5.57868208e+00 5.57017695e+00 5.56168469e+00 5.55320529e+00 + 5.54473873e+00 5.53628499e+00 5.52784405e+00 5.51941589e+00 5.51100050e+00 + 5.50259785e+00 5.49420794e+00 5.48583073e+00 5.47746622e+00 5.46911438e+00 + 5.46077521e+00 5.45244866e+00 5.44413474e+00 5.43583343e+00 5.42754469e+00 + 5.41926853e+00 5.41100491e+00 5.40275382e+00 5.39451524e+00 5.38628916e+00 + 5.37807556e+00 5.36987441e+00 5.36168571e+00 5.35350943e+00 5.34534555e+00 + 5.33719406e+00 5.32905493e+00 5.32092816e+00 5.31281372e+00 5.30471160e+00 + 5.29662178e+00 5.28854423e+00 5.28047895e+00 5.27242591e+00 5.26438509e+00 + 5.25635649e+00 5.24834007e+00 5.24033583e+00 5.23234374e+00 5.22436379e+00 + 5.21639596e+00 5.20844023e+00 5.20049659e+00 5.19256501e+00 5.18464548e+00 + 5.17673799e+00 5.16884250e+00 5.16095902e+00 5.15308751e+00 5.14522796e+00 + 5.13738036e+00 5.12954468e+00 5.12172091e+00 5.11390904e+00 5.10610903e+00 + 5.09832088e+00 5.09054457e+00 5.08278008e+00 5.07502740e+00 5.06728650e+00 + 5.05955737e+00 5.05184000e+00 5.04413435e+00 5.03644043e+00 5.02875820e+00 + 5.02108766e+00 5.01342878e+00 5.00578155e+00 4.99814595e+00 4.99052196e+00 + 4.98290957e+00 4.97530876e+00 4.96771951e+00 4.96014181e+00 4.95257563e+00 + 4.94502096e+00 4.93747779e+00 4.92994610e+00 4.92242586e+00 4.91491707e+00 + 4.90741970e+00 4.89993374e+00 4.89245917e+00 4.88499598e+00 4.87754414e+00 + 4.87010365e+00 4.86267447e+00 4.85525661e+00 4.84785004e+00 4.84045474e+00 + 4.83307069e+00 4.82569789e+00 4.81833631e+00 4.81098593e+00 4.80364675e+00 + 4.79631873e+00 4.78900188e+00 4.78169616e+00 4.77440157e+00 4.76711808e+00 + 4.75984568e+00 4.75258436e+00 4.74533409e+00 4.73809486e+00 4.73086666e+00 + 4.72364946e+00 4.71644325e+00 4.70924802e+00 4.70206374e+00 4.69489041e+00 + 4.68772800e+00 4.68057649e+00 4.67343589e+00 4.66630615e+00 4.65918728e+00 + 4.65207925e+00 4.64498204e+00 4.63789565e+00 4.63082005e+00 4.62375523e+00 + 4.61670117e+00 4.60965786e+00 4.60262527e+00 4.59560340e+00 4.58859223e+00 + 4.58159174e+00 4.57460191e+00 4.56762274e+00 4.56065419e+00 4.55369627e+00 + 4.54674894e+00 4.53981220e+00 4.53288603e+00 4.52597042e+00 4.51906534e+00 + 4.51217078e+00 4.50528673e+00 4.49841317e+00 4.49155008e+00 4.48469745e+00 + 4.47785527e+00 4.47102351e+00 4.46420216e+00 4.45739121e+00 4.45059063e+00 + 4.44380043e+00 4.43702057e+00 4.43025104e+00 4.42349183e+00 4.41674292e+00 + 4.41000430e+00 4.40327595e+00 4.39655786e+00 4.38985000e+00 4.38315237e+00 + 4.37646495e+00 4.36978772e+00 4.36312067e+00 4.35646378e+00 4.34981100e+00 + 4.34313007e+00 4.33641641e+00 4.32967019e+00 4.32289160e+00 4.31608082e+00 + 4.30923804e+00 4.30236343e+00 4.29545719e+00 4.28851949e+00 4.28155052e+00 + 4.27455047e+00 4.26751952e+00 4.26045786e+00 4.25336567e+00 4.24624314e+00 + 4.23909045e+00 4.23190779e+00 4.22469535e+00 4.21745331e+00 4.21018186e+00 + 4.20288119e+00 4.19555148e+00 4.18819292e+00 4.18080570e+00 4.17339000e+00 + 4.16594602e+00 4.15847393e+00 4.15097394e+00 4.14344622e+00 4.13589097e+00 + 4.12830837e+00 4.12069861e+00 4.11306189e+00 4.10539838e+00 4.09770828e+00 + 4.08999178e+00 4.08224906e+00 4.07448032e+00 4.06668575e+00 4.05886552e+00 + 4.05101984e+00 4.04314890e+00 4.03525287e+00 4.02733196e+00 4.01938635e+00 + 4.01141623e+00 4.00342179e+00 3.99540322e+00 3.98736072e+00 3.97929446e+00 + 3.97120464e+00 3.96309146e+00 3.95495510e+00 3.94679575e+00 3.93861359e+00 + 3.93040883e+00 3.92218166e+00 3.91393225e+00 3.90566080e+00 3.89736751e+00 + 3.88905256e+00 3.88071614e+00 3.87235844e+00 3.86397966e+00 3.85557998e+00 + 3.84715959e+00 3.83871868e+00 3.83025744e+00 3.82177607e+00 3.81327475e+00 + 3.80475367e+00 3.79621303e+00 3.78765300e+00 3.77907379e+00 3.77047558e+00 + 3.76185855e+00 3.75322291e+00 3.74456884e+00 3.73589653e+00 3.72720616e+00 + 3.71849793e+00 3.70977203e+00 3.70102864e+00 3.69226796e+00 3.68349016e+00 + 3.67469545e+00 3.66588401e+00 3.65705603e+00 3.64821169e+00 3.63935119e+00 + 3.63047471e+00 3.62158245e+00 3.61267458e+00 3.60375129e+00 3.59481278e+00 + 3.58585923e+00 3.57689083e+00 3.56790776e+00 3.55891022e+00 3.54989838e+00 + 3.54087244e+00 3.53183258e+00 3.52277899e+00 3.51371185e+00 3.50463135e+00 + 3.49553767e+00 3.48643101e+00 3.47731154e+00 3.46817945e+00 3.45903493e+00 + 3.44987815e+00 3.44070932e+00 3.43152860e+00 3.42233618e+00 3.41313225e+00 + 3.40391699e+00 3.39469059e+00 3.38545322e+00 3.37620507e+00 3.36694632e+00 + 3.35767716e+00 3.34839776e+00 3.33910832e+00 3.32980900e+00 3.32050000e+00 + 3.31118149e+00 3.30185365e+00 3.29251667e+00 3.28317072e+00 3.27381599e+00 + 3.26445265e+00 3.25508089e+00 3.24570088e+00 3.23631281e+00 3.22691684e+00 + 3.21751317e+00 3.20810196e+00 3.19868340e+00 3.18925766e+00 3.17982493e+00 + 3.17038537e+00 3.16093916e+00 3.15148649e+00 3.14202752e+00 3.13256244e+00 + 3.12309141e+00 3.11361462e+00 3.10413223e+00 3.09464443e+00 3.08515138e+00 + 3.07565326e+00 3.06615024e+00 3.05664250e+00 3.04713021e+00 3.03761354e+00 + 3.02809266e+00 3.01856774e+00 3.00903897e+00 2.99950650e+00 2.98997050e+00 + 2.98043116e+00 2.97088863e+00 2.96134309e+00 2.95179470e+00 2.94224364e+00 + 2.93269008e+00 2.92313417e+00 2.91357609e+00 2.90401601e+00 2.89445409e+00 + 2.88489050e+00 2.87532541e+00 2.86575898e+00 2.85619137e+00 2.84662275e+00 + 2.83705329e+00 2.82748315e+00 2.81791249e+00 2.80834148e+00 2.79877027e+00 + 2.78919904e+00 2.77962794e+00 2.77005714e+00 2.76048679e+00 2.75091706e+00 + 2.74134810e+00 2.73178009e+00 2.72221316e+00 2.71264750e+00 2.70308325e+00 + 2.69352056e+00 2.68395961e+00 2.67440055e+00 2.66484352e+00 2.65528870e+00 + 2.64573623e+00 2.63618628e+00 2.62663899e+00 2.61709452e+00 2.60755302e+00 + 2.59801465e+00 2.58847956e+00 2.57894791e+00 2.56941984e+00 2.55989551e+00 + 2.55037507e+00 2.54085867e+00 2.53134646e+00 2.52183858e+00 2.51233520e+00 + 2.50283645e+00 2.49334249e+00 2.48385347e+00 2.47436952e+00 2.46489080e+00 + 2.45541746e+00 2.44594964e+00 2.43648748e+00 2.42703114e+00 2.41758075e+00 + 2.40813646e+00 2.39869841e+00 2.38926675e+00 2.37984161e+00 2.37042314e+00 + 2.36101149e+00 2.35160679e+00 2.34220918e+00 2.33281880e+00 2.32343580e+00 + 2.31406030e+00 2.30469245e+00 2.29533239e+00 2.28598026e+00 2.27663618e+00 + 2.26730030e+00 2.25797276e+00 2.24865368e+00 2.23934320e+00 2.23004146e+00 + 2.22074859e+00 2.21146472e+00 2.20218999e+00 2.19292452e+00 2.18366846e+00 + 2.17442192e+00 2.16518504e+00 2.15595795e+00 2.14674078e+00 2.13753366e+00 + 2.12833672e+00 2.11915008e+00 2.10997386e+00 2.10080821e+00 2.09165324e+00 + 2.08250907e+00 2.07337585e+00 2.06425367e+00 2.05514268e+00 2.04604299e+00 + 2.03695473e+00 2.02787802e+00 2.01881298e+00 2.00975974e+00 2.00071840e+00 + 1.99168910e+00 1.98267194e+00 1.97366706e+00 1.96467456e+00 1.95569457e+00 + 1.94672720e+00 1.93777257e+00 1.92883080e+00 1.91990200e+00 1.91098628e+00 + 1.90208375e+00 1.89319455e+00 1.88431876e+00 1.87545652e+00 1.86660792e+00 + 1.85777308e+00 1.84895212e+00 1.84014514e+00 1.83135225e+00 1.82257356e+00 + 1.81380917e+00 1.80505921e+00 1.79632376e+00 1.78760295e+00 1.77889687e+00 + 1.77020564e+00 1.76152935e+00 1.75286811e+00 1.74422202e+00 1.73559119e+00 + 1.72697573e+00 1.71837572e+00 1.70979128e+00 1.70122250e+00 1.69266948e+00 + 1.68413233e+00 1.67561114e+00 1.66710601e+00 1.65861704e+00 1.65014433e+00 + 1.64168796e+00 1.63324805e+00 1.62482468e+00 1.61641795e+00 1.60802795e+00 + 1.59965478e+00 1.59129852e+00 1.58295928e+00 1.57463714e+00 1.56633220e+00 + 1.55804454e+00 1.54977426e+00 1.54152144e+00 1.53328618e+00 1.52506856e+00 + 1.51686867e+00 1.50868660e+00 1.50052243e+00 1.49237625e+00 1.48424814e+00 + 1.47613819e+00 1.46804649e+00 1.45997311e+00 1.45191814e+00 1.44388167e+00 + 1.43586376e+00 1.42786452e+00 1.41988400e+00 1.41192230e+00 1.40397950e+00 + 1.39605567e+00 1.38815089e+00 1.38026524e+00 1.37239879e+00 1.36455162e+00 + 1.35672382e+00 1.34891544e+00 1.34112657e+00 1.33335728e+00 1.32560765e+00 + 1.31787774e+00 1.31016763e+00 1.30247739e+00 1.29480709e+00 1.28715681e+00 + 1.27952660e+00 1.27191655e+00 1.26432671e+00 1.25675716e+00 1.24920796e+00 + 1.24167918e+00 1.23417089e+00 1.22668316e+00 1.21921604e+00 1.21176960e+00 + 1.20434390e+00 1.19693902e+00 1.18955500e+00 1.18219192e+00 1.17484983e+00 + 1.16752879e+00 1.16022887e+00 1.15295013e+00 1.14569262e+00 1.13845640e+00 + 1.13124153e+00 1.12404806e+00 1.11687606e+00 1.10972558e+00 1.10259667e+00 + 1.09548940e+00 1.08840380e+00 1.08133995e+00 1.07429788e+00 1.06727766e+00 + 1.06027933e+00 1.05330295e+00 1.04634857e+00 1.03941623e+00 1.03250599e+00 + 1.02561789e+00 1.01875199e+00 1.01190833e+00 1.00508696e+00 9.98287921e-01 + 9.91511267e-01 9.84757040e-01 9.78025284e-01 9.71316045e-01 9.64629366e-01 + 9.57965290e-01 9.51323860e-01 9.44705117e-01 9.38109103e-01 9.31535860e-01 + 9.24985426e-01 9.18457843e-01 9.11953148e-01 9.05471382e-01 8.99012580e-01 + 8.92576782e-01 8.86164024e-01 8.79774342e-01 8.73407772e-01 8.67064349e-01 + 8.60744107e-01 8.54447081e-01 8.48173305e-01 8.41922810e-01 8.35695630e-01 + 8.29491795e-01 8.23311338e-01 8.17154289e-01 8.11020678e-01 8.04910535e-01 + 7.98823888e-01 7.92760766e-01 7.86721197e-01 7.80705208e-01 7.74712826e-01 + 7.68744078e-01 7.62798988e-01 7.56877582e-01 7.50979884e-01 7.45105919e-01 + 7.39255710e-01 7.33429280e-01 7.27626651e-01 7.21847845e-01 7.16092884e-01 + 7.10361787e-01 7.04654576e-01 6.98971271e-01 6.93311889e-01 6.87676450e-01 + 6.82064972e-01 6.76477473e-01 6.70913968e-01 6.65374476e-01 6.59859012e-01 + 6.54367590e-01 6.48900227e-01 6.43456936e-01 6.38037732e-01 6.32642627e-01 + 6.27271635e-01 6.21924767e-01 6.16602035e-01 6.11303451e-01 6.06029026e-01 + 6.00778769e-01 5.95552690e-01 5.90350798e-01 5.85173102e-01 5.80019611e-01 + 5.74890331e-01 5.69785270e-01 5.64704434e-01 5.59647830e-01 5.54615462e-01 + 5.49607337e-01 5.44623459e-01 5.39663832e-01 5.34728459e-01 5.29817343e-01 + 5.24930488e-01 5.20067895e-01 5.15229565e-01 5.10415501e-01 5.05625702e-01 + 5.00860168e-01 4.96118900e-01 4.91401897e-01 4.86709156e-01 4.82040676e-01 + 4.77396456e-01 4.72776492e-01 4.68180780e-01 4.63609318e-01 4.59062100e-01 + 4.54539123e-01 4.50040381e-01 4.45565868e-01 4.41115579e-01 4.36689506e-01 + 4.32287643e-01 4.27909982e-01 4.23556515e-01 4.19227234e-01 4.14922129e-01 + 4.10641192e-01 4.06384413e-01 4.02151780e-01 3.97943285e-01 3.93758914e-01 + 3.89598658e-01 3.85462502e-01 3.81350436e-01 3.77262446e-01 3.73198519e-01 + 3.69158640e-01 3.65142795e-01 3.61150970e-01 3.57183150e-01 3.53239318e-01 + 3.49319459e-01 3.45423556e-01 3.41551592e-01 3.37703549e-01 3.33879411e-01 + 3.30079158e-01 3.26302772e-01 3.22550234e-01 3.18821524e-01 3.15116623e-01 + 3.11435510e-01 3.07778164e-01 3.04144564e-01 3.00534688e-01 2.96948515e-01 + 2.93386021e-01 2.89847185e-01 2.86331983e-01 2.82840390e-01 2.79372384e-01 + 2.75927939e-01 2.72507030e-01 2.69109633e-01 2.65735722e-01 2.62385270e-01 + 2.59058252e-01 2.55754640e-01 2.52474406e-01 2.49217524e-01 2.45983966e-01 + 2.42773702e-01 2.39586704e-01 2.36422943e-01 2.33282390e-01 2.30165013e-01 + 2.27070784e-01 2.23999671e-01 2.20951643e-01 2.17926669e-01 2.14924717e-01 + 2.11945755e-01 2.08989749e-01 2.06056668e-01 2.03146478e-01 2.00259146e-01 + 1.97394636e-01 1.94552916e-01 1.91733949e-01 1.88937702e-01 1.86164139e-01 + 1.83413223e-01 1.80684919e-01 1.77979190e-01 1.75296000e-01 1.72635311e-01 + 1.69997086e-01 1.67381287e-01 1.64787875e-01 1.62216813e-01 1.59668060e-01 + 1.57141579e-01 1.54637330e-01 1.52155272e-01 1.49695366e-01 1.47257571e-01 + 1.44841846e-01 1.42448150e-01 1.40076442e-01 1.37726679e-01 1.35398821e-01 + 1.33092823e-01 1.30808644e-01 1.28546240e-01 1.26305568e-01 1.24086585e-01 + 1.21889246e-01 1.19713507e-01 1.17559324e-01 1.15426652e-01 1.13315445e-01 + 1.11225658e-01 1.09157245e-01 1.07110161e-01 1.05084359e-01 1.03079791e-01 + 1.01096412e-01 9.91341744e-02 9.71930301e-02 9.52729316e-02 9.33738308e-02 + 9.14956795e-02 8.96384290e-02 8.78020304e-02 8.59864346e-02 8.41915922e-02 + 8.24174533e-02 8.06639682e-02 7.89310865e-02 7.72187578e-02 7.55269312e-02 + 7.38555559e-02 7.22045805e-02 7.05739536e-02 6.89636232e-02 6.73735375e-02 + 6.58036440e-02 6.42538904e-02 6.27242238e-02 6.12145912e-02 5.97249393e-02 + 5.82552147e-02 5.68053636e-02 5.53753320e-02 5.39650657e-02 5.25745103e-02 + 5.12036111e-02 4.98523131e-02 4.85205613e-02 4.72083003e-02 4.59154745e-02 + 4.46420281e-02 4.33879051e-02 4.21530492e-02 4.09374040e-02 3.97409128e-02 + 3.85635187e-02 3.74051646e-02 3.62657932e-02 3.51453469e-02 3.40437682e-02 + 3.29609990e-02 3.18969812e-02 3.08516564e-02 2.98249663e-02 2.88168520e-02 + 2.78272546e-02 2.68561150e-02 2.59033739e-02 2.49689719e-02 2.40528492e-02 + 2.31549461e-02 2.22752024e-02 2.14135579e-02 2.05699522e-02 1.97443248e-02 + 1.89366149e-02 1.81467615e-02 1.73747036e-02 1.66203799e-02 1.58837289e-02 + 1.51646890e-02 1.44631985e-02 1.37791954e-02 1.31126175e-02 1.24634028e-02 + 1.18314886e-02 1.12168125e-02 1.06193117e-02 1.00389234e-02 9.47558447e-03 + 8.92923178e-03 8.39980199e-03 7.88723163e-03 7.39145708e-03 6.91241458e-03 + 6.45004024e-03 6.00427002e-03 5.57503974e-03 5.16228511e-03 4.76594168e-03 + 4.38594487e-03 4.02222999e-03 3.67473222e-03 3.34338659e-03 3.02812803e-03 + 2.72889134e-03 2.44561121e-03 2.17822219e-03 1.92665872e-03 1.69085514e-03 + 1.47074567e-03 1.26626440e-03 1.07734534e-03 9.03922361e-04 7.45929254e-04 + 6.03299692e-04 4.75967247e-04 3.63865391e-04 2.66927494e-04 1.85086832e-04 + 1.18276582e-04 6.64298274e-05 2.94795605e-05 7.35868100e-06 0.00000000e+00 + 1.26736931e-02 1.27096112e-02 1.28489084e-02 1.29897322e-02 1.31320992e-02 + 1.32760265e-02 1.34215312e-02 1.35686304e-02 1.37173417e-02 1.38676827e-02 + 1.40196713e-02 1.41733256e-02 1.43286638e-02 1.44857043e-02 1.46444659e-02 + 1.48049672e-02 1.49672275e-02 1.51312660e-02 1.52971022e-02 1.54647558e-02 + 1.56342466e-02 1.58055949e-02 1.59788209e-02 1.61539453e-02 1.63309888e-02 + 1.65099724e-02 1.66909175e-02 1.68738455e-02 1.70587782e-02 1.72457374e-02 + 1.74347455e-02 1.76258248e-02 1.78189981e-02 1.80142882e-02 1.82117184e-02 + 1.84113122e-02 1.86130931e-02 1.88170853e-02 1.90233128e-02 1.92318003e-02 + 1.94425724e-02 1.96556543e-02 1.98710711e-02 2.00888485e-02 2.03090123e-02 + 2.05315887e-02 2.07566041e-02 2.09840853e-02 2.12140592e-02 2.14465531e-02 + 2.16815947e-02 2.19192118e-02 2.21594327e-02 2.24022859e-02 2.26478003e-02 + 2.28960049e-02 2.31469293e-02 2.34006032e-02 2.36570568e-02 2.39163205e-02 + 2.41784251e-02 2.44434017e-02 2.47112818e-02 2.49820971e-02 2.52558799e-02 + 2.55326626e-02 2.58124781e-02 2.60953596e-02 2.63813406e-02 2.66704552e-02 + 2.69627377e-02 2.72582227e-02 2.75569454e-02 2.78589411e-02 2.81642458e-02 + 2.84728956e-02 2.87849273e-02 2.91003778e-02 2.94192846e-02 2.97416856e-02 + 3.00676189e-02 3.03971234e-02 3.07302381e-02 3.10670025e-02 3.14074566e-02 + 3.17516409e-02 3.20995961e-02 3.24513636e-02 3.28069851e-02 3.31665028e-02 + 3.35299594e-02 3.38973980e-02 3.42688622e-02 3.46443961e-02 3.50240442e-02 + 3.54078516e-02 3.57958639e-02 3.61881271e-02 3.65846877e-02 3.69855928e-02 + 3.73908900e-02 3.78006273e-02 3.82148533e-02 3.86336172e-02 3.90569687e-02 + 3.94849580e-02 3.99176359e-02 4.03550537e-02 4.07972632e-02 4.12443171e-02 + 4.16962682e-02 4.21531702e-02 4.26150773e-02 4.30820442e-02 4.35541265e-02 + 4.40313800e-02 4.45138613e-02 4.50016278e-02 4.54947372e-02 4.59932480e-02 + 4.64972193e-02 4.70067109e-02 4.75217833e-02 4.80424974e-02 4.85689151e-02 + 4.91010988e-02 4.96391115e-02 5.01830171e-02 5.07328801e-02 5.12887655e-02 + 5.18507395e-02 5.24188684e-02 5.29932198e-02 5.35738618e-02 5.41608630e-02 + 5.47542932e-02 5.53542226e-02 5.59607224e-02 5.65738645e-02 5.71937215e-02 + 5.78203669e-02 5.84538749e-02 5.90943207e-02 5.97417802e-02 6.03963299e-02 + 6.10580476e-02 6.17270117e-02 6.24033013e-02 6.30869966e-02 6.37781787e-02 + 6.44769294e-02 6.51833314e-02 6.58974685e-02 6.66194253e-02 6.73492873e-02 + 6.80871409e-02 6.88330735e-02 6.95871735e-02 7.03495302e-02 7.11202339e-02 + 7.18993757e-02 7.26870481e-02 7.34833442e-02 7.42883584e-02 7.51021860e-02 + 7.59249232e-02 7.67566676e-02 7.75975175e-02 7.84475725e-02 7.93069333e-02 + 8.01757015e-02 8.10539799e-02 8.19418726e-02 8.28394845e-02 8.37469219e-02 + 8.46642922e-02 8.55917039e-02 8.65292668e-02 8.74770917e-02 8.84352909e-02 + 8.94039775e-02 9.03832663e-02 9.13732730e-02 9.23741148e-02 9.33859100e-02 + 9.44087782e-02 9.54428404e-02 9.64882189e-02 9.75450373e-02 9.86134204e-02 + 9.96934947e-02 1.00785388e-01 1.01889229e-01 1.03005148e-01 1.04133277e-01 + 1.05273750e-01 1.06426701e-01 1.07592267e-01 1.08770585e-01 1.09961794e-01 + 1.11166035e-01 1.12383451e-01 1.13614184e-01 1.14858382e-01 1.16116189e-01 + 1.17387756e-01 1.18673231e-01 1.19972768e-01 1.21286518e-01 1.22614638e-01 + 1.23957284e-01 1.25314614e-01 1.26686789e-01 1.28073971e-01 1.29476322e-01 + 1.30894010e-01 1.32327200e-01 1.33776062e-01 1.35240767e-01 1.36721487e-01 + 1.38218397e-01 1.39731674e-01 1.41261496e-01 1.42808043e-01 1.44371497e-01 + 1.45952044e-01 1.47549868e-01 1.49165159e-01 1.50798106e-01 1.52448902e-01 + 1.54117741e-01 1.55804820e-01 1.57510337e-01 1.59234494e-01 1.60977493e-01 + 1.62739539e-01 1.64520840e-01 1.66321605e-01 1.68142046e-01 1.69982378e-01 + 1.71842816e-01 1.73723581e-01 1.75624891e-01 1.77546972e-01 1.79490050e-01 + 1.81454352e-01 1.83440109e-01 1.85447555e-01 1.87476926e-01 1.89528460e-01 + 1.91602397e-01 1.93698982e-01 1.95818461e-01 1.97961082e-01 2.00127097e-01 + 2.02316760e-01 2.04530329e-01 2.06768061e-01 2.09030221e-01 2.11317074e-01 + 2.13628887e-01 2.15965931e-01 2.18328481e-01 2.20716813e-01 2.23131207e-01 + 2.25571946e-01 2.28039316e-01 2.30533605e-01 2.33055107e-01 2.35604114e-01 + 2.38180927e-01 2.40785847e-01 2.43419177e-01 2.46081227e-01 2.48772307e-01 + 2.51492732e-01 2.54242820e-01 2.57022892e-01 2.59833273e-01 2.62674291e-01 + 2.65546278e-01 2.68449569e-01 2.71384502e-01 2.74351421e-01 2.77350672e-01 + 2.80382603e-01 2.83447570e-01 2.86545927e-01 2.89678038e-01 2.92844266e-01 + 2.96044981e-01 2.99280555e-01 3.02551364e-01 3.05857790e-01 3.09200216e-01 + 3.12579032e-01 3.15994631e-01 3.19447408e-01 3.22937766e-01 3.26466110e-01 + 3.30032849e-01 3.33638399e-01 3.37283176e-01 3.40967603e-01 3.44692109e-01 + 3.48457125e-01 3.52263087e-01 3.56110435e-01 3.59999617e-01 3.63931081e-01 + 3.67905283e-01 3.71922683e-01 3.75983744e-01 3.80088937e-01 3.84238736e-01 + 3.88433620e-01 3.92674074e-01 3.96960587e-01 4.01293653e-01 4.05673773e-01 + 4.10101451e-01 4.14577197e-01 4.19101527e-01 4.23674962e-01 4.28298028e-01 + 4.32971257e-01 4.37695186e-01 4.42470358e-01 4.47297322e-01 4.52176632e-01 + 4.57108848e-01 4.62094535e-01 4.67134266e-01 4.72228618e-01 4.77378174e-01 + 4.82583524e-01 4.87845264e-01 4.93163995e-01 4.98540325e-01 5.03974869e-01 + 5.09468247e-01 5.15021086e-01 5.20634020e-01 5.26307687e-01 5.32042736e-01 + 5.37839818e-01 5.43699593e-01 5.49622728e-01 5.55609896e-01 5.61661777e-01 + 5.67779058e-01 5.73962433e-01 5.80212603e-01 5.86530276e-01 5.92916168e-01 + 5.99371001e-01 6.05895505e-01 6.12490417e-01 6.19156483e-01 6.25894453e-01 + 6.32705088e-01 6.39589156e-01 6.46547431e-01 6.53580697e-01 6.60689744e-01 + 6.67875370e-01 6.75138383e-01 6.82479597e-01 6.89899834e-01 6.97399927e-01 + 7.04980713e-01 7.12643041e-01 7.20387766e-01 7.28215753e-01 7.36127875e-01 + 7.44125013e-01 7.52208057e-01 7.60377907e-01 7.68635471e-01 7.76981664e-01 + 7.85417412e-01 7.93943651e-01 8.02561324e-01 8.11271384e-01 8.20074793e-01 + 8.28972523e-01 8.37965554e-01 8.47054878e-01 8.56241493e-01 8.65526411e-01 + 8.74910649e-01 8.84395238e-01 8.93981215e-01 9.03669630e-01 9.13461542e-01 + 9.23358019e-01 9.33360141e-01 9.43468996e-01 9.53685684e-01 9.64011316e-01 + 9.74447011e-01 9.84993900e-01 9.95653124e-01 1.00642584e+00 1.01731320e+00 + 1.02831638e+00 1.03943658e+00 1.05067498e+00 1.06203279e+00 1.07351122e+00 + 1.08511151e+00 1.09683490e+00 1.10868263e+00 1.12065598e+00 1.13275620e+00 + 1.14498460e+00 1.15734246e+00 1.16983110e+00 1.18245183e+00 1.19520599e+00 + 1.20809492e+00 1.22111997e+00 1.23428252e+00 1.24758395e+00 1.26102564e+00 + 1.27460900e+00 1.28833545e+00 1.30220641e+00 1.31622334e+00 1.33038767e+00 + 1.34470087e+00 1.35916443e+00 1.37377984e+00 1.38854860e+00 1.40347221e+00 + 1.41855223e+00 1.43379018e+00 1.44918761e+00 1.46474611e+00 1.48046724e+00 + 1.49635260e+00 1.51240380e+00 1.52862246e+00 1.54501021e+00 1.56156868e+00 + 1.57829956e+00 1.59520449e+00 1.61228518e+00 1.62954331e+00 1.64698060e+00 + 1.66459878e+00 1.68239958e+00 1.70038475e+00 1.71855606e+00 1.73691529e+00 + 1.75546422e+00 1.77420467e+00 1.79313845e+00 1.81226739e+00 1.83159334e+00 + 1.85111815e+00 1.87084370e+00 1.89077188e+00 1.91090458e+00 1.93124371e+00 + 1.95179120e+00 1.97254898e+00 1.99351902e+00 2.01470327e+00 2.03610371e+00 + 2.05772233e+00 2.07956114e+00 2.10162216e+00 2.12390741e+00 2.14641894e+00 + 2.16915881e+00 2.19212908e+00 2.21533184e+00 2.23876918e+00 2.26244321e+00 + 2.28635605e+00 2.31050983e+00 2.33490669e+00 2.35954879e+00 2.38443831e+00 + 2.40957741e+00 2.43496830e+00 2.46061318e+00 2.48651426e+00 2.51267378e+00 + 2.53909396e+00 2.56577707e+00 2.59272536e+00 2.61994110e+00 2.64742658e+00 + 2.67518408e+00 2.70321592e+00 2.73152441e+00 2.76011186e+00 2.78898061e+00 + 2.81813301e+00 2.84757141e+00 2.87729816e+00 2.90731563e+00 2.93762621e+00 + 2.96823228e+00 2.99913624e+00 3.03034047e+00 3.06184740e+00 3.09365944e+00 + 3.12577901e+00 3.15820855e+00 3.19095048e+00 3.22400724e+00 3.25738129e+00 + 3.29107508e+00 3.32509106e+00 3.35943168e+00 3.39409942e+00 3.42909675e+00 + 3.46442612e+00 3.50009002e+00 3.53609093e+00 3.57243131e+00 3.60911364e+00 + 3.64614041e+00 3.68351409e+00 3.72123716e+00 3.75931210e+00 3.79774139e+00 + 3.83652749e+00 3.87567289e+00 3.91518005e+00 3.95505143e+00 3.99528949e+00 + 4.03589670e+00 4.07687550e+00 4.11822834e+00 4.15995765e+00 4.20206587e+00 + 4.24455541e+00 4.28742868e+00 4.33068810e+00 4.37433605e+00 4.41837492e+00 + 4.46280707e+00 4.50763486e+00 4.55286063e+00 4.59848672e+00 4.64451543e+00 + 4.69094906e+00 4.73778990e+00 4.78504020e+00 4.83270221e+00 4.88077816e+00 + 4.92927024e+00 4.97818064e+00 5.02751152e+00 5.07726502e+00 5.12744323e+00 + 5.17804826e+00 5.22908216e+00 5.28054696e+00 5.33244466e+00 5.38477724e+00 + 5.43754663e+00 5.49075475e+00 5.54440348e+00 5.59849464e+00 5.65303006e+00 + 5.70801150e+00 5.76344069e+00 5.81931932e+00 5.87564905e+00 5.93243148e+00 + 5.98966818e+00 6.04736067e+00 6.10551044e+00 6.16411890e+00 6.22318745e+00 + 6.28271741e+00 6.34271006e+00 6.40316664e+00 6.46408831e+00 6.52547620e+00 + 6.58733136e+00 6.64965481e+00 6.71244749e+00 6.77571028e+00 6.83944401e+00 + 6.90364942e+00 6.96832722e+00 7.03347803e+00 7.09910240e+00 7.16520083e+00 + 7.23177372e+00 7.29882142e+00 7.36634421e+00 7.43434226e+00 7.50281569e+00 + 7.57176455e+00 7.64118877e+00 7.71108824e+00 7.78146274e+00 7.85231198e+00 + 7.92363556e+00 7.99543302e+00 8.06770379e+00 8.14044722e+00 8.21366256e+00 + 8.28734896e+00 8.36150548e+00 8.43613109e+00 8.51122466e+00 8.58678493e+00 + 8.66281057e+00 8.73930014e+00 8.81625208e+00 8.89366474e+00 8.97153635e+00 + 9.04986503e+00 9.12864881e+00 9.20788557e+00 9.28757310e+00 9.36770908e+00 + 9.44829106e+00 9.52931647e+00 9.61078263e+00 9.69268674e+00 9.77502586e+00 + 9.85779695e+00 9.94099683e+00 1.00246222e+01 1.01086696e+01 1.01931356e+01 + 1.02780164e+01 1.03633081e+01 1.04490070e+01 1.05351088e+01 1.06216095e+01 + 1.07085045e+01 1.07957896e+01 1.08834600e+01 1.09715110e+01 1.10599377e+01 + 1.11487352e+01 1.12378982e+01 1.13274214e+01 1.14172995e+01 1.15075268e+01 + 1.15980977e+01 1.16890062e+01 1.17802465e+01 1.18718123e+01 1.19636975e+01 + 1.20558955e+01 1.21483999e+01 1.22412040e+01 1.23343009e+01 1.24276837e+01 + 1.25213452e+01 1.26152784e+01 1.27094756e+01 1.28039296e+01 1.28986325e+01 + 1.29935767e+01 1.30887541e+01 1.31841569e+01 1.32797766e+01 1.33756052e+01 + 1.34716341e+01 1.35678547e+01 1.36642583e+01 1.37608362e+01 1.38575793e+01 + 1.39544786e+01 1.40515249e+01 1.41487089e+01 1.42460212e+01 1.43434522e+01 + 1.44409922e+01 1.45386315e+01 1.46363602e+01 1.47341683e+01 1.48320457e+01 + 1.49299822e+01 1.50279676e+01 1.51259915e+01 1.52240433e+01 1.53221125e+01 + 1.54201884e+01 1.55182603e+01 1.56163173e+01 1.57143486e+01 1.58123432e+01 + 1.59102900e+01 1.60081778e+01 1.61059955e+01 1.62037318e+01 1.63013755e+01 + 1.63989150e+01 1.64963391e+01 1.65936363e+01 1.66907950e+01 1.67878036e+01 + 1.68846507e+01 1.69813245e+01 1.70778134e+01 1.71741058e+01 1.72701899e+01 + 1.73660541e+01 1.74616865e+01 1.75570755e+01 1.76522094e+01 1.77470763e+01 + 1.78416647e+01 1.79359627e+01 1.80299586e+01 1.81236408e+01 1.82169975e+01 + 1.83100173e+01 1.84026883e+01 1.84949991e+01 1.85869382e+01 1.86784940e+01 + 1.87696551e+01 1.88604101e+01 1.89507477e+01 1.90406567e+01 1.91301257e+01 + 1.92191438e+01 1.93076997e+01 1.93957826e+01 1.94833816e+01 1.95704859e+01 + 1.96570846e+01 1.97431673e+01 1.98287234e+01 1.99137425e+01 1.99982142e+01 + 2.00821284e+01 2.01654751e+01 2.02482441e+01 2.03304257e+01 2.04120102e+01 + 2.04929881e+01 2.05733497e+01 2.06530859e+01 2.07321874e+01 2.08106453e+01 + 2.08884506e+01 2.09655946e+01 2.10420688e+01 2.11178646e+01 2.11929739e+01 + 2.12673885e+01 2.13411005e+01 2.14141021e+01 2.14863858e+01 2.15579440e+01 + 2.16287695e+01 2.16988552e+01 2.17681942e+01 2.18367798e+01 2.19046054e+01 + 2.19716647e+01 2.20379515e+01 2.21034598e+01 2.21681837e+01 2.22321176e+01 + 2.22952562e+01 2.23575942e+01 2.24191264e+01 2.24798482e+01 2.25397547e+01 + 2.25988416e+01 2.26571045e+01 2.27145393e+01 2.27711423e+01 2.28269096e+01 + 2.28818379e+01 2.29359237e+01 2.29891640e+01 2.30415558e+01 2.30930965e+01 + 2.31437835e+01 2.31936145e+01 2.32425873e+01 2.32907001e+01 2.33379509e+01 + 2.33843384e+01 2.34298610e+01 2.34745176e+01 2.35183072e+01 2.35612290e+01 + 2.36032823e+01 2.36444667e+01 2.36847819e+01 2.37242279e+01 2.37628046e+01 + 2.38005124e+01 2.38373518e+01 2.38733232e+01 2.39084275e+01 2.39426657e+01 + 2.39760388e+01 2.40085482e+01 2.40401952e+01 2.40709815e+01 2.41009088e+01 + 2.41299790e+01 2.41581942e+01 2.41855567e+01 2.42120687e+01 2.42377327e+01 + 2.42625515e+01 2.42865278e+01 2.43096645e+01 2.43319648e+01 2.43534317e+01 + 2.43740686e+01 2.43938790e+01 2.44128664e+01 2.44310345e+01 2.44483872e+01 + 2.44649283e+01 2.44806620e+01 2.44955922e+01 2.45097234e+01 2.45230599e+01 + 2.45356061e+01 2.45473666e+01 2.45583460e+01 2.45685492e+01 2.45779809e+01 + 2.45866460e+01 2.45945496e+01 2.46016969e+01 2.46080928e+01 2.46137428e+01 + 2.46186520e+01 2.46228260e+01 2.46262702e+01 2.46289900e+01 2.46309912e+01 + 2.46322792e+01 2.46328599e+01 2.46327391e+01 2.46319224e+01 2.46304158e+01 + 2.46282252e+01 2.46253566e+01 2.46218158e+01 2.46176091e+01 2.46127424e+01 + 2.46072218e+01 2.46010535e+01 2.45942437e+01 2.45867986e+01 2.45787243e+01 + 2.45700272e+01 2.45607134e+01 2.45507894e+01 2.45402613e+01 2.45291355e+01 + 2.45174183e+01 2.45051162e+01 2.44922353e+01 2.44787821e+01 2.44647630e+01 + 2.44501842e+01 2.44350523e+01 2.44193735e+01 2.44031542e+01 2.43864007e+01 + 2.43691195e+01 2.43513168e+01 2.43329990e+01 2.43141725e+01 2.42948435e+01 + 2.42750184e+01 2.42547034e+01 2.42339048e+01 2.42126289e+01 2.41908819e+01 + 2.41686701e+01 2.41459995e+01 2.41228764e+01 2.40993070e+01 2.40752974e+01 + 2.40508536e+01 2.40259817e+01 2.40006879e+01 2.39749780e+01 2.39488581e+01 + 2.39223341e+01 2.38954121e+01 2.38680977e+01 2.38403970e+01 2.38123157e+01 + 2.37838597e+01 2.37550346e+01 2.37258462e+01 2.36963002e+01 2.36664022e+01 + 2.36361578e+01 2.36055726e+01 2.35746521e+01 2.35434018e+01 2.35118272e+01 + 2.34799336e+01 2.34477264e+01 2.34152110e+01 2.33823926e+01 2.33492764e+01 + 2.33158677e+01 2.32821716e+01 2.32481932e+01 2.32139376e+01 2.31794098e+01 + 2.31446147e+01 2.31095574e+01 2.30742426e+01 2.30386753e+01 2.30028602e+01 + 2.29668022e+01 2.29305058e+01 2.28939757e+01 2.28572167e+01 2.28202332e+01 + 2.27830298e+01 2.27456109e+01 2.27079810e+01 2.26701445e+01 2.26321057e+01 + 2.25938690e+01 2.25554385e+01 2.25168186e+01 2.24780132e+01 2.24390267e+01 + 2.23998630e+01 2.23605262e+01 2.23210202e+01 2.22813490e+01 2.22415165e+01 + 2.22015265e+01 2.21613829e+01 2.21210894e+01 2.20806497e+01 2.20400675e+01 + 2.19993464e+01 2.19584900e+01 2.19175019e+01 2.18763855e+01 2.18351444e+01 + 2.17937818e+01 2.17523013e+01 2.17107061e+01 2.16689995e+01 2.16271848e+01 + 2.15852651e+01 2.15432437e+01 2.15011236e+01 2.14589080e+01 2.14165999e+01 + 2.13742023e+01 2.13317181e+01 2.12891503e+01 2.12465018e+01 2.12037754e+01 + 2.11609740e+01 2.11181002e+01 2.10751569e+01 2.10321468e+01 2.09890724e+01 + 2.09459364e+01 2.09027415e+01 2.08594901e+01 2.08161847e+01 2.07728279e+01 + 2.07294221e+01 2.06859697e+01 2.06424731e+01 2.05989346e+01 2.05553566e+01 + 2.05117412e+01 2.04680907e+01 2.04244074e+01 2.03806935e+01 2.03369509e+01 + 2.02931820e+01 2.02493887e+01 2.02055731e+01 2.01617372e+01 2.01178830e+01 + 2.00740125e+01 2.00301276e+01 1.99862301e+01 1.99423220e+01 1.98984051e+01 + 1.98544812e+01 1.98105520e+01 1.97666194e+01 1.97226850e+01 1.96787506e+01 + 1.96348178e+01 1.95908883e+01 1.95469637e+01 1.95030455e+01 1.94591354e+01 + 1.94152349e+01 1.93713455e+01 1.93274686e+01 1.92836059e+01 1.92397586e+01 + 1.91959283e+01 1.91521163e+01 1.91083239e+01 1.90645526e+01 1.90208037e+01 + 1.89770784e+01 1.89333780e+01 1.88897038e+01 1.88460571e+01 1.88024390e+01 + 1.87588508e+01 1.87152936e+01 1.86717685e+01 1.86282768e+01 1.85848194e+01 + 1.85413976e+01 1.84980123e+01 1.84546646e+01 1.84113557e+01 1.83680863e+01 + 1.83248577e+01 1.82816707e+01 1.82385264e+01 1.81954256e+01 1.81523692e+01 + 1.81093583e+01 1.80663936e+01 1.80234761e+01 1.79806066e+01 1.79377859e+01 + 1.78950150e+01 1.78522945e+01 1.78096252e+01 1.77670081e+01 1.77244437e+01 + 1.76819330e+01 1.76394765e+01 1.75970750e+01 1.75547293e+01 1.75124399e+01 + 1.74702076e+01 1.74280331e+01 1.73859170e+01 1.73438599e+01 1.73018624e+01 + 1.72599252e+01 1.72180489e+01 1.71762340e+01 1.71344810e+01 1.70927907e+01 + 1.70511634e+01 1.70095998e+01 1.69681003e+01 1.69266656e+01 1.68852959e+01 + 1.68439920e+01 1.68027542e+01 1.67615829e+01 1.67204788e+01 1.66794421e+01 + 1.66384733e+01 1.65975730e+01 1.65567413e+01 1.65159789e+01 1.64752860e+01 + 1.64346631e+01 1.63941105e+01 1.63536286e+01 1.63132177e+01 1.62728783e+01 + 1.62326105e+01 1.61924149e+01 1.61522916e+01 1.61122410e+01 1.60722634e+01 + 1.60323591e+01 1.59925284e+01 1.59527715e+01 1.59130888e+01 1.58734804e+01 + 1.58339467e+01 1.57944880e+01 1.57551043e+01 1.57157960e+01 1.56765634e+01 + 1.56374065e+01 1.55983257e+01 1.55593211e+01 1.55203930e+01 1.54815415e+01 + 1.54427668e+01 1.54040691e+01 1.53654486e+01 1.53269054e+01 1.52884397e+01 + 1.52500516e+01 1.52117414e+01 1.51735091e+01 1.51353549e+01 1.50972789e+01 + 1.50592813e+01 1.50213621e+01 1.49835215e+01 1.49457596e+01 1.49080765e+01 + 1.48704723e+01 1.48329471e+01 1.47955009e+01 1.47581339e+01 1.47208462e+01 + 1.46836378e+01 1.46465088e+01 1.46094593e+01 1.45724893e+01 1.45355989e+01 + 1.44987881e+01 1.44620570e+01 1.44254057e+01 1.43888341e+01 1.43523423e+01 + 1.43159304e+01 1.42795984e+01 1.42433463e+01 1.42071741e+01 1.41710819e+01 + 1.41350696e+01 1.40991373e+01 1.40632850e+01 1.40275127e+01 1.39918204e+01 + 1.39562080e+01 1.39206757e+01 1.38852233e+01 1.38498509e+01 1.38145584e+01 + 1.37793459e+01 1.37442133e+01 1.37091606e+01 1.36741878e+01 1.36392948e+01 + 1.36044816e+01 1.35697482e+01 1.35350945e+01 1.35005205e+01 1.34660262e+01 + 1.34316114e+01 1.33972763e+01 1.33630207e+01 1.33288445e+01 1.32947477e+01 + 1.32607303e+01 1.32267922e+01 1.31929333e+01 1.31591536e+01 1.31254531e+01 + 1.30918315e+01 1.30582890e+01 1.30248253e+01 1.29914405e+01 1.29581344e+01 + 1.29249070e+01 1.28917582e+01 1.28586879e+01 1.28256961e+01 1.27927827e+01 + 1.27599475e+01 1.27271905e+01 1.26945115e+01 1.26619106e+01 1.26293877e+01 + 1.25969425e+01 1.25645751e+01 1.25322853e+01 1.25000730e+01 1.24679382e+01 + 1.24358807e+01 1.24039005e+01 1.23719973e+01 1.23401713e+01 1.23084221e+01 + 1.22767497e+01 1.22451541e+01 1.22136351e+01 1.21821925e+01 1.21508264e+01 + 1.21195365e+01 1.20883227e+01 1.20571850e+01 1.20261232e+01 1.19951373e+01 + 1.19642270e+01 1.19333923e+01 1.19026330e+01 1.18719491e+01 1.18413404e+01 + 1.18108067e+01 1.17803481e+01 1.17499642e+01 1.17196551e+01 1.16894206e+01 + 1.16592606e+01 1.16291749e+01 1.15991634e+01 1.15692260e+01 1.15393626e+01 + 1.15095729e+01 1.14798570e+01 1.14502147e+01 1.14206457e+01 1.13911501e+01 + 1.13617276e+01 1.13323782e+01 1.13031017e+01 1.12738979e+01 1.12447668e+01 + 1.12157082e+01 1.11867219e+01 1.11578079e+01 1.11289659e+01 1.11001959e+01 + 1.10714977e+01 1.10428712e+01 1.10143163e+01 1.09858327e+01 1.09574203e+01 + 1.09290791e+01 1.09008089e+01 1.08726095e+01 1.08444808e+01 1.08164227e+01 + 1.07884349e+01 1.07605175e+01 1.07326701e+01 1.07048928e+01 1.06771853e+01 + 1.06495475e+01 1.06219793e+01 1.05944805e+01 1.05670509e+01 1.05396905e+01 + 1.05123990e+01 1.04851764e+01 1.04580225e+01 1.04309372e+01 1.04039202e+01 + 1.03769716e+01 1.03500910e+01 1.03232784e+01 1.02965336e+01 1.02698565e+01 + 1.02432470e+01 1.02167048e+01 1.01902299e+01 1.01638221e+01 1.01374812e+01 + 1.01112071e+01 1.00849997e+01 1.00588588e+01 1.00327843e+01 1.00067760e+01 + 9.98083379e+00 9.95495749e+00 9.92914697e+00 9.90340209e+00 9.87772270e+00 + 9.85210865e+00 9.82655980e+00 9.80107600e+00 9.77565710e+00 9.75030296e+00 + 9.72501344e+00 9.69978837e+00 9.67462763e+00 9.64953106e+00 9.62449852e+00 + 9.59952985e+00 9.57462492e+00 9.54978358e+00 9.52500568e+00 9.50029108e+00 + 9.47563963e+00 9.45105118e+00 9.42652560e+00 9.40206272e+00 9.37766242e+00 + 9.35332454e+00 9.32904893e+00 9.30483546e+00 9.28068397e+00 9.25659433e+00 + 9.23256638e+00 9.20859999e+00 9.18469501e+00 9.16085128e+00 9.13706868e+00 + 9.11334706e+00 9.08968626e+00 9.06608615e+00 9.04254659e+00 9.01906742e+00 + 8.99564852e+00 8.97228972e+00 8.94899090e+00 8.92575190e+00 8.90257258e+00 + 8.87945281e+00 8.85639244e+00 8.83339132e+00 8.81044932e+00 8.78756628e+00 + 8.76474208e+00 8.74197657e+00 8.71926961e+00 8.69662105e+00 8.67403076e+00 + 8.65149859e+00 8.62902441e+00 8.60660807e+00 8.58424943e+00 8.56194836e+00 + 8.53970471e+00 8.51751834e+00 8.49538911e+00 8.47331690e+00 8.45130154e+00 + 8.42934292e+00 8.40744088e+00 8.38559529e+00 8.36380601e+00 8.34207291e+00 + 8.32039585e+00 8.29877468e+00 8.27720927e+00 8.25569949e+00 8.23424520e+00 + 8.21284625e+00 8.19150252e+00 8.17021387e+00 8.14898017e+00 8.12780127e+00 + 8.10667704e+00 8.08560734e+00 8.06459205e+00 8.04363103e+00 8.02272413e+00 + 8.00187124e+00 7.98107221e+00 7.96032690e+00 7.93963520e+00 7.91899696e+00 + 7.89841205e+00 7.87788034e+00 7.85740169e+00 7.83697597e+00 7.81660306e+00 + 7.79628282e+00 7.77601511e+00 7.75579981e+00 7.73563679e+00 7.71552591e+00 + 7.69546704e+00 7.67546006e+00 7.65550483e+00 7.63560123e+00 7.61574912e+00 + 7.59594838e+00 7.57619887e+00 7.55650048e+00 7.53685306e+00 7.51725649e+00 + 7.49771065e+00 7.47821540e+00 7.45877063e+00 7.43937619e+00 7.42003197e+00 + 7.40073784e+00 7.38149367e+00 7.36229933e+00 7.34315471e+00 7.32405967e+00 + 7.30501408e+00 7.28601784e+00 7.26707080e+00 7.24817285e+00 7.22932386e+00 + 7.21052370e+00 7.19177226e+00 7.17306941e+00 7.15441503e+00 7.13580899e+00 + 7.11725117e+00 7.09874145e+00 7.08027971e+00 7.06186582e+00 7.04349966e+00 + 7.02518112e+00 7.00691007e+00 6.98868640e+00 6.97050997e+00 6.95238067e+00 + 6.93429838e+00 6.91626298e+00 6.89827436e+00 6.88033238e+00 6.86243694e+00 + 6.84458792e+00 6.82678519e+00 6.80902864e+00 6.79131815e+00 6.77365360e+00 + 6.75603488e+00 6.73846187e+00 6.72093445e+00 6.70345250e+00 6.68601592e+00 + 6.66862458e+00 6.65127837e+00 6.63397717e+00 6.61672087e+00 6.59950935e+00 + 6.58234250e+00 6.56522020e+00 6.54814234e+00 6.53110881e+00 6.51411950e+00 + 6.49717428e+00 6.48027305e+00 6.46341569e+00 6.44660210e+00 6.42983215e+00 + 6.41310574e+00 6.39642276e+00 6.37978309e+00 6.36318663e+00 6.34663326e+00 + 6.33012287e+00 6.31365535e+00 6.29723059e+00 6.28084849e+00 6.26450892e+00 + 6.24821179e+00 6.23195699e+00 6.21574440e+00 6.19957391e+00 6.18344542e+00 + 6.16735883e+00 6.15131402e+00 6.13531088e+00 6.11934931e+00 6.10342920e+00 + 6.08755045e+00 6.07171295e+00 6.05591658e+00 6.04016126e+00 6.02444686e+00 + 6.00877329e+00 5.99314044e+00 5.97754820e+00 5.96199647e+00 5.94648515e+00 + 5.93101414e+00 5.91558332e+00 5.90019259e+00 5.88484186e+00 5.86953101e+00 + 5.85425995e+00 5.83902857e+00 5.82383678e+00 5.80868446e+00 5.79357151e+00 + 5.77849784e+00 5.76346335e+00 5.74846793e+00 5.73351148e+00 5.71859390e+00 + 5.70371509e+00 5.68887495e+00 5.67407338e+00 5.65931028e+00 5.64458556e+00 + 5.62989911e+00 5.61525083e+00 5.60064063e+00 5.58606840e+00 5.57153405e+00 + 5.55703748e+00 5.54257860e+00 5.52815730e+00 5.51377349e+00 5.49942708e+00 + 5.48511795e+00 5.47084603e+00 5.45661121e+00 5.44241339e+00 5.42825249e+00 + 5.41412840e+00 5.40004103e+00 5.38599029e+00 5.37197608e+00 5.35799830e+00 + 5.34405687e+00 5.33015168e+00 5.31628265e+00 5.30244967e+00 5.28865267e+00 + 5.27489153e+00 5.26116618e+00 5.24747652e+00 5.23382245e+00 5.22020389e+00 + 5.20662074e+00 5.19307291e+00 5.17956030e+00 5.16608284e+00 5.15264042e+00 + 5.13923296e+00 5.12586036e+00 5.11252254e+00 5.09921940e+00 5.08595085e+00 + 5.07271682e+00 5.05951719e+00 5.04635190e+00 5.03322084e+00 5.02012393e+00 + 5.00706108e+00 4.99403221e+00 4.98103722e+00 4.96807602e+00 4.95514853e+00 + 4.94225467e+00 4.92939434e+00 4.91656745e+00 4.90377393e+00 4.89101368e+00 + 4.87828662e+00 4.86559266e+00 4.85293171e+00 4.84030370e+00 4.82770853e+00 + 4.81514612e+00 4.80261638e+00 4.79011924e+00 4.77765460e+00 4.76522238e+00 + 4.75282250e+00 4.74045487e+00 4.72811941e+00 4.71581604e+00 4.70354467e+00 + 4.69130522e+00 4.67909760e+00 4.66692174e+00 4.65477755e+00 4.64266495e+00 + 4.63058386e+00 4.61853420e+00 4.60651588e+00 4.59452882e+00 4.58257294e+00 + 4.57064817e+00 4.55875441e+00 4.54689159e+00 4.53505964e+00 4.52325846e+00 + 4.51148798e+00 4.49974812e+00 4.48803880e+00 4.47635994e+00 4.46471147e+00 + 4.45309329e+00 4.44150534e+00 4.42994754e+00 4.41841980e+00 4.40692206e+00 + 4.39545422e+00 4.38401622e+00 4.37260797e+00 4.36122940e+00 4.34988044e+00 + 4.33856100e+00 4.32727101e+00 4.31601039e+00 4.30477906e+00 4.29357695e+00 + 4.28240399e+00 4.27126010e+00 4.26014520e+00 4.24905921e+00 4.23800207e+00 + 4.22697369e+00 4.21597401e+00 4.20500294e+00 4.19406042e+00 4.18314636e+00 + 4.17226070e+00 4.16140337e+00 4.15057428e+00 4.13977336e+00 4.12900055e+00 + 4.11825576e+00 4.10753893e+00 4.09684998e+00 4.08618884e+00 4.07555544e+00 + 4.06494971e+00 4.05437157e+00 4.04382095e+00 4.03329778e+00 4.02280199e+00 + 4.01233351e+00 4.00189227e+00 3.99147820e+00 3.98109122e+00 3.97073126e+00 + 3.96039826e+00 3.95009215e+00 3.93981285e+00 3.92956029e+00 3.91933442e+00 + 3.90913515e+00 3.89896241e+00 3.88881615e+00 3.87869628e+00 3.86860275e+00 + 3.85853548e+00 3.84849440e+00 3.83847945e+00 3.82849056e+00 3.81852765e+00 + 3.80859068e+00 3.79867955e+00 3.78879422e+00 3.77893460e+00 3.76910064e+00 + 3.75929227e+00 3.74950942e+00 3.73975203e+00 3.73002002e+00 3.72031334e+00 + 3.71063191e+00 3.70097568e+00 3.69134457e+00 3.68173852e+00 3.67215746e+00 + 3.66260134e+00 3.65307008e+00 3.64356362e+00 3.63408190e+00 3.62462485e+00 + 3.61519241e+00 3.60578451e+00 3.59640109e+00 3.58704209e+00 3.57770744e+00 + 3.56839708e+00 3.55911095e+00 3.54984898e+00 3.54061111e+00 3.53139728e+00 + 3.52220742e+00 3.51304148e+00 3.50389939e+00 3.49478108e+00 3.48568651e+00 + 3.47661559e+00 3.46756829e+00 3.45854452e+00 3.44954423e+00 3.44056737e+00 + 3.43161386e+00 3.42268365e+00 3.41377668e+00 3.40489289e+00 3.39603221e+00 + 3.38719459e+00 3.37837997e+00 3.36958828e+00 3.36081947e+00 3.35207348e+00 + 3.34335025e+00 3.33464972e+00 3.32597183e+00 3.31731651e+00 3.30868372e+00 + 3.30007340e+00 3.29148548e+00 3.28291991e+00 3.27437460e+00 3.26573446e+00 + 3.25693384e+00 3.24797415e+00 3.23885681e+00 3.22958325e+00 3.22015492e+00 + 3.21057326e+00 3.20083974e+00 3.19095585e+00 3.18092306e+00 3.17074289e+00 + 3.16041685e+00 3.14994645e+00 3.13933322e+00 3.12857873e+00 3.11768450e+00 + 3.10665212e+00 3.09548315e+00 3.08417917e+00 3.07274177e+00 3.06117256e+00 + 3.04947314e+00 3.03764512e+00 3.02569014e+00 3.01360983e+00 3.00140582e+00 + 2.98907976e+00 2.97663331e+00 2.96406812e+00 2.95138588e+00 2.93858824e+00 + 2.92567690e+00 2.91265353e+00 2.89951983e+00 2.88627750e+00 2.87292824e+00 + 2.85947376e+00 2.84591578e+00 2.83225600e+00 2.81849615e+00 2.80463796e+00 + 2.79068315e+00 2.77663346e+00 2.76249063e+00 2.74825640e+00 2.73393251e+00 + 2.71952069e+00 2.70502271e+00 2.69044032e+00 2.67577526e+00 2.66102928e+00 + 2.64620415e+00 2.63130163e+00 2.61632346e+00 2.60127141e+00 2.58614724e+00 + 2.57095271e+00 2.55568958e+00 2.54035962e+00 2.52496457e+00 2.50950621e+00 + 2.49398629e+00 2.47840657e+00 2.46276881e+00 2.44707477e+00 2.43132620e+00 + 2.41552486e+00 2.39967249e+00 2.38377086e+00 2.36782170e+00 2.35182676e+00 + 2.33578779e+00 2.31970652e+00 2.30358470e+00 2.28742405e+00 2.27122632e+00 + 2.25499322e+00 2.23872647e+00 2.22242781e+00 2.20609894e+00 2.18974157e+00 + 2.17335742e+00 2.15694817e+00 2.14051554e+00 2.12406122e+00 2.10758688e+00 + 2.09109421e+00 2.07458489e+00 2.05806058e+00 2.04152296e+00 2.02497368e+00 + 2.00841439e+00 1.99184673e+00 1.97527235e+00 1.95869288e+00 1.94210994e+00 + 1.92552516e+00 1.90894014e+00 1.89235648e+00 1.87577578e+00 1.85919964e+00 + 1.84262963e+00 1.82606732e+00 1.80951428e+00 1.79297207e+00 1.77644223e+00 + 1.75992630e+00 1.74342581e+00 1.72694228e+00 1.71047724e+00 1.69403217e+00 + 1.67760858e+00 1.66120794e+00 1.64483175e+00 1.62848145e+00 1.61215850e+00 + 1.59586437e+00 1.57960046e+00 1.56336823e+00 1.54716907e+00 1.53100440e+00 + 1.51487561e+00 1.49878408e+00 1.48273119e+00 1.46671830e+00 1.45074676e+00 + 1.43481791e+00 1.41893309e+00 1.40309360e+00 1.38730076e+00 1.37155587e+00 + 1.35586020e+00 1.34021503e+00 1.32462161e+00 1.30908121e+00 1.29359504e+00 + 1.27816435e+00 1.26279034e+00 1.24747421e+00 1.23221715e+00 1.21702033e+00 + 1.20188492e+00 1.18681208e+00 1.17180293e+00 1.15685861e+00 1.14198022e+00 + 1.12716887e+00 1.11242565e+00 1.09775162e+00 1.08314786e+00 1.06861540e+00 + 1.05415529e+00 1.03976855e+00 1.02545618e+00 1.01121918e+00 9.97058538e-01 + 9.82975218e-01 9.68970178e-01 9.55044358e-01 9.41198688e-01 9.27434083e-01 + 9.13751445e-01 9.00151662e-01 8.86635607e-01 8.73204142e-01 8.59858113e-01 + 8.46598354e-01 8.33425684e-01 8.20340909e-01 8.07344819e-01 7.94438194e-01 + 7.81621797e-01 7.68896378e-01 7.56262673e-01 7.43721404e-01 7.31273280e-01 + 7.18918994e-01 7.06659228e-01 6.94494646e-01 6.82425902e-01 6.70453634e-01 + 6.58578466e-01 6.46801008e-01 6.35121856e-01 6.23541592e-01 6.12060784e-01 + 6.00679988e-01 5.89399741e-01 5.78220572e-01 5.67142991e-01 5.56167497e-01 + 5.45294574e-01 5.34524691e-01 5.23858307e-01 5.13295861e-01 5.02837783e-01 + 4.92484488e-01 4.82236375e-01 4.72093832e-01 4.62057231e-01 4.52126932e-01 + 4.42303279e-01 4.32586605e-01 4.22977227e-01 4.13475449e-01 4.04081562e-01 + 3.94795843e-01 3.85618554e-01 3.76549946e-01 3.67590255e-01 3.58739704e-01 + 3.49998502e-01 3.41366844e-01 3.32844915e-01 3.24432882e-01 3.16130902e-01 + 3.07939119e-01 2.99857661e-01 2.91886645e-01 2.84026175e-01 2.76276342e-01 + 2.68637223e-01 2.61108883e-01 2.53691374e-01 2.46384735e-01 2.39188993e-01 + 2.32104162e-01 2.25130242e-01 2.18267224e-01 2.11515082e-01 2.04873781e-01 + 1.98343273e-01 1.91923497e-01 1.85614380e-01 1.79415837e-01 1.73327772e-01 + 1.67350075e-01 1.61482625e-01 1.55725291e-01 1.50077926e-01 1.44540377e-01 + 1.39112474e-01 1.33794039e-01 1.28584880e-01 1.23484797e-01 1.18493576e-01 + 1.13610993e-01 1.08836811e-01 1.04170785e-01 9.96126567e-02 9.51621582e-02 + 9.08190104e-02 8.65829234e-02 8.24535969e-02 7.84307201e-02 7.45139717e-02 + 7.07030202e-02 6.69975236e-02 6.33971302e-02 5.99014780e-02 5.65101949e-02 + 5.32228993e-02 5.00391995e-02 4.69586945e-02 4.39809734e-02 4.11056159e-02 + 3.83321926e-02 3.56602644e-02 3.30893833e-02 3.06190922e-02 2.82489250e-02 + 2.59784067e-02 2.38070535e-02 2.17343729e-02 1.97598640e-02 1.78830174e-02 + 1.61033150e-02 1.44202309e-02 1.28332308e-02 1.13417724e-02 9.94530538e-03 + 8.64327165e-03 7.43510538e-03 6.32023307e-03 5.29807375e-03 4.36803897e-03 + 3.52953302e-03 2.78195295e-03 2.12468873e-03 1.55712334e-03 1.07863288e-03 + 6.88586680e-04 3.86347392e-04 1.71271129e-04 4.27075560e-05 0.00000000e+00 + 2.04047571e-06 2.05095161e-06 2.09195486e-06 2.13377786e-06 2.17643701e-06 + 2.21994900e-06 2.26433090e-06 2.30960010e-06 2.35577433e-06 2.40287169e-06 + 2.45091064e-06 2.49991000e-06 2.54988896e-06 2.60086712e-06 2.65286446e-06 + 2.70590133e-06 2.75999854e-06 2.81517728e-06 2.87145916e-06 2.92886625e-06 + 2.98742104e-06 3.04714647e-06 3.10806596e-06 3.17020336e-06 3.23358303e-06 + 3.29822981e-06 3.36416903e-06 3.43142652e-06 3.50002865e-06 3.57000228e-06 + 3.64137486e-06 3.71417433e-06 3.78842924e-06 3.86416867e-06 3.94142230e-06 + 4.02022042e-06 4.10059389e-06 4.18257420e-06 4.26619350e-06 4.35148453e-06 + 4.43848073e-06 4.52721619e-06 4.61772567e-06 4.71004464e-06 4.80420928e-06 + 4.90025648e-06 4.99822390e-06 5.09814990e-06 5.20007365e-06 5.30403510e-06 + 5.41007497e-06 5.51823482e-06 5.62855704e-06 5.74108485e-06 5.85586235e-06 + 5.97293451e-06 6.09234722e-06 6.21414726e-06 6.33838236e-06 6.46510120e-06 + 6.59435345e-06 6.72618974e-06 6.86066175e-06 6.99782215e-06 7.13772471e-06 + 7.28042424e-06 7.42597666e-06 7.57443900e-06 7.72586945e-06 7.88032734e-06 + 8.03787319e-06 8.19856875e-06 8.36247698e-06 8.52966210e-06 8.70018965e-06 + 8.87412642e-06 9.05154059e-06 9.23250167e-06 9.41708058e-06 9.60534964e-06 + 9.79738263e-06 9.99325479e-06 1.01930429e-05 1.03968252e-05 1.06046816e-05 + 1.08166935e-05 1.10329440e-05 1.12535179e-05 1.14785015e-05 1.17079831e-05 + 1.19420525e-05 1.21808015e-05 1.24243236e-05 1.26727143e-05 1.29260709e-05 + 1.31844927e-05 1.34480809e-05 1.37169388e-05 1.39911718e-05 1.42708873e-05 + 1.45561950e-05 1.48472067e-05 1.51440363e-05 1.54468002e-05 1.57556170e-05 + 1.60706078e-05 1.63918960e-05 1.67196075e-05 1.70538706e-05 1.73948164e-05 + 1.77425785e-05 1.80972932e-05 1.84590994e-05 1.88281389e-05 1.92045563e-05 + 1.95884992e-05 1.99801179e-05 2.03795660e-05 2.07869999e-05 2.12025794e-05 + 2.16264672e-05 2.20588295e-05 2.24998357e-05 2.29496586e-05 2.34084745e-05 + 2.38764631e-05 2.43538078e-05 2.48406958e-05 2.53373177e-05 2.58438682e-05 + 2.63605457e-05 2.68875528e-05 2.74250960e-05 2.79733858e-05 2.85326371e-05 + 2.91030692e-05 2.96849054e-05 3.02783738e-05 3.08837069e-05 3.15011420e-05 + 3.21309210e-05 3.27732907e-05 3.34285027e-05 3.40968139e-05 3.47784861e-05 + 3.54737864e-05 3.61829873e-05 3.69063666e-05 3.76442079e-05 3.83968003e-05 + 3.91644386e-05 3.99474237e-05 4.07460623e-05 4.15606675e-05 4.23915584e-05 + 4.32390606e-05 4.41035062e-05 4.49852339e-05 4.58845893e-05 4.68019247e-05 + 4.77375996e-05 4.86919807e-05 4.96654419e-05 5.06583647e-05 5.16711381e-05 + 5.27041590e-05 5.37578322e-05 5.48325706e-05 5.59287953e-05 5.70469358e-05 + 5.81874303e-05 5.93507257e-05 6.05372778e-05 6.17475516e-05 6.29820212e-05 + 6.42411705e-05 6.55254929e-05 6.68354915e-05 6.81716797e-05 6.95345810e-05 + 7.09247296e-05 7.23426700e-05 7.37889581e-05 7.52641604e-05 7.67688550e-05 + 7.83036314e-05 7.98690912e-05 8.14658477e-05 8.30945266e-05 8.47557661e-05 + 8.64502170e-05 8.81785434e-05 8.99414225e-05 9.17395450e-05 9.35736156e-05 + 9.54443528e-05 9.73524898e-05 9.92987741e-05 1.01283968e-04 1.03308851e-04 + 1.05374214e-04 1.07480868e-04 1.09629638e-04 1.11821367e-04 1.14056912e-04 + 1.16337149e-04 1.18662973e-04 1.21035295e-04 1.23455043e-04 1.25923167e-04 + 1.28440634e-04 1.31008428e-04 1.33627558e-04 1.36299049e-04 1.39023948e-04 + 1.41803323e-04 1.44638262e-04 1.47529876e-04 1.50479299e-04 1.53487686e-04 + 1.56556216e-04 1.59686091e-04 1.62878538e-04 1.66134807e-04 1.69456174e-04 + 1.72843941e-04 1.76299435e-04 1.79824010e-04 1.83419046e-04 1.87085954e-04 + 1.90826168e-04 1.94641156e-04 1.98532411e-04 2.02501458e-04 2.06549852e-04 + 2.10679180e-04 2.14891059e-04 2.19187140e-04 2.23569105e-04 2.28038673e-04 + 2.32597593e-04 2.37247653e-04 2.41990673e-04 2.46828513e-04 2.51763068e-04 + 2.56796271e-04 2.61930094e-04 2.67166549e-04 2.72507687e-04 2.77955601e-04 + 2.83512425e-04 2.89180337e-04 2.94961556e-04 3.00858349e-04 3.06873025e-04 + 3.13007940e-04 3.19265499e-04 3.25648153e-04 3.32158403e-04 3.38798798e-04 + 3.45571942e-04 3.52480486e-04 3.59527138e-04 3.66714659e-04 3.74045863e-04 + 3.81523625e-04 3.89150872e-04 3.96930593e-04 4.04865836e-04 4.12959709e-04 + 4.21215383e-04 4.29636094e-04 4.38225138e-04 4.46985881e-04 4.55921756e-04 + 4.65036262e-04 4.74332970e-04 4.83815523e-04 4.93487634e-04 5.03353093e-04 + 5.13415764e-04 5.23679589e-04 5.34148588e-04 5.44826864e-04 5.55718598e-04 + 5.66828057e-04 5.78159592e-04 5.89717643e-04 6.01506737e-04 6.13531492e-04 + 6.25796617e-04 6.38306917e-04 6.51067293e-04 6.64082741e-04 6.77358361e-04 + 6.90899352e-04 7.04711018e-04 7.18798769e-04 7.33168121e-04 7.47824704e-04 + 7.62774258e-04 7.78022638e-04 7.93575816e-04 8.09439883e-04 8.25621052e-04 + 8.42125661e-04 8.58960174e-04 8.76131183e-04 8.93645413e-04 9.11509723e-04 + 9.29731109e-04 9.48316707e-04 9.67273794e-04 9.86609795e-04 1.00633228e-03 + 1.02644898e-03 1.04696776e-03 1.06789666e-03 1.08924387e-03 1.11101776e-03 + 1.13322685e-03 1.15587984e-03 1.17898559e-03 1.20255316e-03 1.22659177e-03 + 1.25111082e-03 1.27611993e-03 1.30162888e-03 1.32764766e-03 1.35418646e-03 + 1.38125566e-03 1.40886586e-03 1.43702787e-03 1.46575272e-03 1.49505165e-03 + 1.52493613e-03 1.55541785e-03 1.58650875e-03 1.61822099e-03 1.65056700e-03 + 1.68355942e-03 1.71721118e-03 1.75153544e-03 1.78654563e-03 1.82225546e-03 + 1.85867890e-03 1.89583021e-03 1.93372392e-03 1.97237487e-03 2.01179817e-03 + 2.05200925e-03 2.09302385e-03 2.13485800e-03 2.17752809e-03 2.22105080e-03 + 2.26544317e-03 2.31072255e-03 2.35690665e-03 2.40401356e-03 2.45206169e-03 + 2.50106983e-03 2.55105716e-03 2.60204323e-03 2.65404797e-03 2.70709172e-03 + 2.76119524e-03 2.81637966e-03 2.87266659e-03 2.93007801e-03 2.98863639e-03 + 3.04836461e-03 3.10928602e-03 3.17142445e-03 3.23480418e-03 3.29944999e-03 + 3.36538715e-03 3.43264142e-03 3.50123910e-03 3.57120699e-03 3.64257244e-03 + 3.71536332e-03 3.78960809e-03 3.86533575e-03 3.94257589e-03 4.02135868e-03 + 4.10171490e-03 4.18367594e-03 4.26727380e-03 4.35254115e-03 4.43951127e-03 + 4.52821813e-03 4.61869637e-03 4.71098131e-03 4.80510898e-03 4.90111612e-03 + 4.99904022e-03 5.09891950e-03 5.20079293e-03 5.30470026e-03 5.41068205e-03 + 5.51877965e-03 5.62903523e-03 5.74149179e-03 5.85619321e-03 5.97318421e-03 + 6.09251043e-03 6.21421839e-03 6.33835555e-03 6.46497030e-03 6.59411200e-03 + 6.72583098e-03 6.86017857e-03 6.99720713e-03 7.13697005e-03 7.27952178e-03 + 7.42491784e-03 7.57321486e-03 7.72447059e-03 7.87874393e-03 8.03609494e-03 + 8.19658487e-03 8.36027618e-03 8.52723257e-03 8.69751901e-03 8.87120173e-03 + 9.04834830e-03 9.22902762e-03 9.41330992e-03 9.60126687e-03 9.79297152e-03 + 9.98849837e-03 1.01879234e-02 1.03913241e-02 1.05987794e-02 1.08103700e-02 + 1.10261779e-02 1.12462870e-02 1.14707827e-02 1.16997521e-02 1.19332840e-02 + 1.21714690e-02 1.24143995e-02 1.26621696e-02 1.29148754e-02 1.31726148e-02 + 1.34354876e-02 1.37035958e-02 1.39770430e-02 1.42559352e-02 1.45403802e-02 + 1.48304882e-02 1.51263713e-02 1.54281440e-02 1.57359229e-02 1.60498269e-02 + 1.63699774e-02 1.66964980e-02 1.70295147e-02 1.73691561e-02 1.77155533e-02 + 1.80688398e-02 1.84291520e-02 1.87966285e-02 1.91714111e-02 1.95536442e-02 + 1.99434748e-02 2.03410530e-02 2.07465318e-02 2.11600670e-02 2.15818178e-02 + 2.20119461e-02 2.24506171e-02 2.28979992e-02 2.33542642e-02 2.38195870e-02 + 2.42941460e-02 2.47781231e-02 2.52717037e-02 2.57750767e-02 2.62884346e-02 + 2.68119739e-02 2.73458947e-02 2.78904008e-02 2.84457003e-02 2.90120049e-02 + 2.95895307e-02 3.01784978e-02 3.07791305e-02 3.13916574e-02 3.20163116e-02 + 3.26533305e-02 3.33029562e-02 3.39654353e-02 3.46410192e-02 3.53299639e-02 + 3.60325306e-02 3.67489851e-02 3.74795985e-02 3.82246470e-02 3.89844119e-02 + 3.97591800e-02 4.05492435e-02 4.13549000e-02 4.21764528e-02 4.30142108e-02 + 4.38684889e-02 4.47396078e-02 4.56278942e-02 4.65336809e-02 4.74573070e-02 + 4.83991179e-02 4.93594654e-02 5.03387080e-02 5.13372105e-02 5.23553449e-02 + 5.33934898e-02 5.44520309e-02 5.55313610e-02 5.66318801e-02 5.77539956e-02 + 5.88981224e-02 6.00646830e-02 6.12541074e-02 6.24668337e-02 6.37033078e-02 + 6.49639840e-02 6.62493243e-02 6.75597995e-02 6.88958888e-02 7.02580798e-02 + 7.16468690e-02 7.30627619e-02 7.45062728e-02 7.59779252e-02 7.74782520e-02 + 7.90077955e-02 8.05671075e-02 8.21567496e-02 8.37772930e-02 8.54293193e-02 + 8.71134198e-02 8.88301965e-02 9.05802615e-02 9.23642375e-02 9.41827581e-02 + 9.60364675e-02 9.79260210e-02 9.98520852e-02 1.01815338e-01 1.03816468e-01 + 1.05856176e-01 1.07935174e-01 1.10054188e-01 1.12213953e-01 1.14415217e-01 + 1.16658742e-01 1.18945300e-01 1.21275677e-01 1.23650671e-01 1.26071094e-01 + 1.28537770e-01 1.31051536e-01 1.33613243e-01 1.36223754e-01 1.38883946e-01 + 1.41594711e-01 1.44356954e-01 1.47171591e-01 1.50039557e-01 1.52961797e-01 + 1.55939273e-01 1.58972958e-01 1.62063842e-01 1.65212929e-01 1.68421236e-01 + 1.71689797e-01 1.75019659e-01 1.78411885e-01 1.81867550e-01 1.85387748e-01 + 1.88973584e-01 1.92626180e-01 1.96346674e-01 2.00136216e-01 2.03995974e-01 + 2.07927128e-01 2.11930876e-01 2.16008430e-01 2.20161015e-01 2.24389873e-01 + 2.28696261e-01 2.33081449e-01 2.37546724e-01 2.42093385e-01 2.46722749e-01 + 2.51436143e-01 2.56234912e-01 2.61120413e-01 2.66094017e-01 2.71157111e-01 + 2.76311093e-01 2.81557374e-01 2.86897380e-01 2.92332550e-01 2.97864332e-01 + 3.03494190e-01 3.09223599e-01 3.15054044e-01 3.20987022e-01 3.27024041e-01 + 3.33166619e-01 3.39416285e-01 3.45774574e-01 3.52243033e-01 3.58823217e-01 + 3.65516687e-01 3.72325013e-01 3.79249770e-01 3.86292540e-01 3.93454910e-01 + 4.00738470e-01 4.08144814e-01 4.15675541e-01 4.23332251e-01 4.31116542e-01 + 4.39030017e-01 4.47074276e-01 4.55250916e-01 4.63561533e-01 4.72007720e-01 + 4.80591063e-01 4.89313143e-01 4.98175533e-01 5.07179799e-01 5.16327497e-01 + 5.25620170e-01 5.35059350e-01 5.44646556e-01 5.54383291e-01 5.64271040e-01 + 5.74311272e-01 5.84505434e-01 5.94854953e-01 6.05361233e-01 6.16025651e-01 + 6.26849561e-01 6.37834285e-01 6.48981116e-01 6.60291318e-01 6.71766115e-01 + 6.83406701e-01 6.95214229e-01 7.07189811e-01 7.19334521e-01 7.31649384e-01 + 7.44135384e-01 7.56793451e-01 7.69624469e-01 7.82629267e-01 7.95808620e-01 + 8.09163245e-01 8.22693799e-01 8.36400879e-01 8.50285015e-01 8.64346674e-01 + 8.78586252e-01 8.93004073e-01 9.07600389e-01 9.22375377e-01 9.37329134e-01 + 9.52461677e-01 9.67772941e-01 9.83262776e-01 9.98930942e-01 1.01477711e+00 + 1.03080087e+00 1.04700170e+00 1.06337899e+00 1.07993204e+00 1.09666004e+00 + 1.11356207e+00 1.13063713e+00 1.14788410e+00 1.16530174e+00 1.18288873e+00 + 1.20064361e+00 1.21856482e+00 1.23665070e+00 1.25489945e+00 1.27330916e+00 + 1.29187782e+00 1.31060328e+00 1.32948329e+00 1.34851546e+00 1.36769729e+00 + 1.38702617e+00 1.40649935e+00 1.42611396e+00 1.44586702e+00 1.46575542e+00 + 1.48577594e+00 1.50592523e+00 1.52619982e+00 1.54659613e+00 1.56711045e+00 + 1.58773895e+00 1.60847772e+00 1.62932269e+00 1.65026971e+00 1.67131450e+00 + 1.69245268e+00 1.71367978e+00 1.73499120e+00 1.75638226e+00 1.77784817e+00 + 1.79938405e+00 1.82098493e+00 1.84264575e+00 1.86436137e+00 1.88612657e+00 + 1.90793604e+00 1.92978441e+00 1.95166624e+00 1.97357603e+00 1.99550821e+00 + 2.01745715e+00 2.03941720e+00 2.06138263e+00 2.08334768e+00 2.10530657e+00 + 2.12725347e+00 2.14918254e+00 2.17108791e+00 2.19296369e+00 2.21480400e+00 + 2.23660295e+00 2.25835463e+00 2.28005318e+00 2.30169271e+00 2.32326738e+00 + 2.34477136e+00 2.36619884e+00 2.38754407e+00 2.40880133e+00 2.42996492e+00 + 2.45102924e+00 2.47198870e+00 2.49283781e+00 2.51357111e+00 2.53418325e+00 + 2.55466891e+00 2.57502290e+00 2.59524008e+00 2.61531541e+00 2.63524395e+00 + 2.65502086e+00 2.67464139e+00 2.69410090e+00 2.71339486e+00 2.73251886e+00 + 2.75146860e+00 2.77023990e+00 2.78882870e+00 2.80723106e+00 2.82544319e+00 + 2.84346139e+00 2.86128213e+00 2.87890199e+00 2.89631769e+00 2.91352609e+00 + 2.93052419e+00 2.94730912e+00 2.96387815e+00 2.98022870e+00 2.99635831e+00 + 3.01226468e+00 3.02794565e+00 3.04339918e+00 3.05862340e+00 3.07361655e+00 + 3.08837703e+00 3.10290336e+00 3.11719422e+00 3.13124840e+00 3.14506485e+00 + 3.15864262e+00 3.17198093e+00 3.18507910e+00 3.19793658e+00 3.21055297e+00 + 3.22292797e+00 3.23506140e+00 3.24695322e+00 3.25860348e+00 3.27001236e+00 + 3.28118016e+00 3.29210726e+00 3.30279418e+00 3.31324151e+00 3.32344997e+00 + 3.33342036e+00 3.34315358e+00 3.35265062e+00 3.36191256e+00 3.37094056e+00 + 3.37973589e+00 3.38829985e+00 3.39663387e+00 3.40473941e+00 3.41261803e+00 + 3.42027135e+00 3.42770104e+00 3.43490886e+00 3.44189660e+00 3.44866613e+00 + 3.45521936e+00 3.46155824e+00 3.46768480e+00 3.47360108e+00 3.47930919e+00 + 3.48481125e+00 3.49010944e+00 3.49520597e+00 3.50010308e+00 3.50480303e+00 + 3.50930811e+00 3.51362065e+00 3.51774299e+00 3.52167748e+00 3.52542650e+00 + 3.52899245e+00 3.53237772e+00 3.53558474e+00 3.53861594e+00 3.54147374e+00 + 3.54416059e+00 3.54667892e+00 3.54903119e+00 3.55121984e+00 3.55324732e+00 + 3.55511606e+00 3.55682850e+00 3.55838708e+00 3.55979422e+00 3.56105233e+00 + 3.56216384e+00 3.56313112e+00 3.56395658e+00 3.56464257e+00 3.56519147e+00 + 3.56560561e+00 3.56588732e+00 3.56603892e+00 3.56606270e+00 3.56596093e+00 + 3.56573588e+00 3.56538979e+00 3.56492486e+00 3.56434331e+00 3.56364730e+00 + 3.56283899e+00 3.56192051e+00 3.56089397e+00 3.55976147e+00 3.55852505e+00 + 3.55718677e+00 3.55574864e+00 3.55421264e+00 3.55258076e+00 3.55085491e+00 + 3.54903704e+00 3.54712902e+00 3.54513272e+00 3.54304999e+00 3.54088264e+00 + 3.53863246e+00 3.53630122e+00 3.53389065e+00 3.53140248e+00 3.52883839e+00 + 3.52620004e+00 3.52348907e+00 3.52070710e+00 3.51785572e+00 3.51493648e+00 + 3.51195092e+00 3.50890056e+00 3.50578689e+00 3.50261136e+00 3.49937543e+00 + 3.49608051e+00 3.49272798e+00 3.48931922e+00 3.48585557e+00 3.48233835e+00 + 3.47876886e+00 3.47514837e+00 3.47147815e+00 3.46775941e+00 3.46399337e+00 + 3.46018121e+00 3.45632410e+00 3.45242318e+00 3.44847957e+00 3.44449438e+00 + 3.44046868e+00 3.43640354e+00 3.43229999e+00 3.42815906e+00 3.42398175e+00 + 3.41976903e+00 3.41552187e+00 3.41124122e+00 3.40692800e+00 3.40258311e+00 + 3.39820746e+00 3.39380190e+00 3.38936729e+00 3.38490448e+00 3.38041427e+00 + 3.37589748e+00 3.37135489e+00 3.36678728e+00 3.36219540e+00 3.35757999e+00 + 3.35294177e+00 3.34828146e+00 3.34359975e+00 3.33889733e+00 3.33417485e+00 + 3.32943298e+00 3.32467235e+00 3.31989358e+00 3.31509730e+00 3.31028410e+00 + 3.30545456e+00 3.30060926e+00 3.29574877e+00 3.29087362e+00 3.28598437e+00 + 3.28108153e+00 3.27616563e+00 3.27123716e+00 3.26629662e+00 3.26134448e+00 + 3.25638123e+00 3.25140733e+00 3.24642321e+00 3.24142933e+00 3.23642612e+00 + 3.23141399e+00 3.22639337e+00 3.22136464e+00 3.21632821e+00 3.21128447e+00 + 3.20623378e+00 3.20117652e+00 3.19611304e+00 3.19104371e+00 3.18596885e+00 + 3.18088881e+00 3.17580392e+00 3.17071449e+00 3.16562085e+00 3.16052328e+00 + 3.15542211e+00 3.15031760e+00 3.14521006e+00 3.14009976e+00 3.13498697e+00 + 3.12987197e+00 3.12475499e+00 3.11963632e+00 3.11451618e+00 3.10939482e+00 + 3.10427248e+00 3.09914938e+00 3.09402576e+00 3.08890183e+00 3.08377781e+00 + 3.07865391e+00 3.07353033e+00 3.06840726e+00 3.06328491e+00 3.05816347e+00 + 3.05304312e+00 3.04792404e+00 3.04280640e+00 3.03769039e+00 3.03257616e+00 + 3.02746388e+00 3.02235372e+00 3.01724582e+00 3.01214034e+00 3.00703743e+00 + 3.00193723e+00 2.99683988e+00 2.99174552e+00 2.98665429e+00 2.98156632e+00 + 2.97648172e+00 2.97140063e+00 2.96632317e+00 2.96124945e+00 2.95617960e+00 + 2.95111371e+00 2.94605191e+00 2.94099429e+00 2.93594097e+00 2.93089203e+00 + 2.92584759e+00 2.92080773e+00 2.91577254e+00 2.91074213e+00 2.90571657e+00 + 2.90069596e+00 2.89568037e+00 2.89066989e+00 2.88566460e+00 2.88066457e+00 + 2.87566987e+00 2.87068059e+00 2.86569679e+00 2.86071855e+00 2.85574592e+00 + 2.85077897e+00 2.84581777e+00 2.84086238e+00 2.83591285e+00 2.83096925e+00 + 2.82603163e+00 2.82110005e+00 2.81617456e+00 2.81125521e+00 2.80634205e+00 + 2.80143513e+00 2.79653450e+00 2.79164020e+00 2.78675227e+00 2.78187077e+00 + 2.77699573e+00 2.77212719e+00 2.76726520e+00 2.76240978e+00 2.75756098e+00 + 2.75271883e+00 2.74788336e+00 2.74305462e+00 2.73823262e+00 2.73341741e+00 + 2.72860901e+00 2.72380745e+00 2.71901276e+00 2.71422497e+00 2.70944410e+00 + 2.70467018e+00 2.69990323e+00 2.69514328e+00 2.69039035e+00 2.68564445e+00 + 2.68090562e+00 2.67617386e+00 2.67144921e+00 2.66673167e+00 2.66202127e+00 + 2.65731803e+00 2.65262195e+00 2.64793306e+00 2.64325137e+00 2.63857689e+00 + 2.63390964e+00 2.62924963e+00 2.62459688e+00 2.61995139e+00 2.61531318e+00 + 2.61068225e+00 2.60605863e+00 2.60144230e+00 2.59683330e+00 2.59223161e+00 + 2.58763726e+00 2.58305025e+00 2.57847059e+00 2.57389828e+00 2.56933332e+00 + 2.56477573e+00 2.56022551e+00 2.55568267e+00 2.55114720e+00 2.54661911e+00 + 2.54209841e+00 2.53758510e+00 2.53307918e+00 2.52858066e+00 2.52408953e+00 + 2.51960579e+00 2.51512946e+00 2.51066052e+00 2.50619899e+00 2.50174486e+00 + 2.49729812e+00 2.49285879e+00 2.48842685e+00 2.48400232e+00 2.47958518e+00 + 2.47517543e+00 2.47077309e+00 2.46637813e+00 2.46199056e+00 2.45761038e+00 + 2.45323759e+00 2.44887217e+00 2.44451414e+00 2.44016348e+00 2.43582019e+00 + 2.43148426e+00 2.42715571e+00 2.42283451e+00 2.41852066e+00 2.41421416e+00 + 2.40991501e+00 2.40562320e+00 2.40133873e+00 2.39706158e+00 2.39279176e+00 + 2.38852925e+00 2.38427406e+00 2.38002617e+00 2.37578559e+00 2.37155229e+00 + 2.36732629e+00 2.36310756e+00 2.35889611e+00 2.35469192e+00 2.35049500e+00 + 2.34630533e+00 2.34212290e+00 2.33794771e+00 2.33377975e+00 2.32961902e+00 + 2.32546550e+00 2.32131918e+00 2.31718007e+00 2.31304815e+00 2.30892341e+00 + 2.30480585e+00 2.30069545e+00 2.29659221e+00 2.29249613e+00 2.28840718e+00 + 2.28432536e+00 2.28025067e+00 2.27618310e+00 2.27212263e+00 2.26806926e+00 + 2.26402298e+00 2.25998377e+00 2.25595164e+00 2.25192657e+00 2.24790854e+00 + 2.24389756e+00 2.23989362e+00 2.23589669e+00 2.23190679e+00 2.22792388e+00 + 2.22394797e+00 2.21997904e+00 2.21601709e+00 2.21206211e+00 2.20811408e+00 + 2.20417300e+00 2.20023885e+00 2.19631163e+00 2.19239132e+00 2.18847792e+00 + 2.18457142e+00 2.18067180e+00 2.17677906e+00 2.17289318e+00 2.16901416e+00 + 2.16514198e+00 2.16127664e+00 2.15741813e+00 2.15356642e+00 2.14972153e+00 + 2.14588342e+00 2.14205210e+00 2.13822755e+00 2.13440977e+00 2.13059873e+00 + 2.12679444e+00 2.12299688e+00 2.11920604e+00 2.11542191e+00 2.11164448e+00 + 2.10787374e+00 2.10410968e+00 2.10035229e+00 2.09660155e+00 2.09285746e+00 + 2.08912001e+00 2.08538918e+00 2.08166497e+00 2.07794736e+00 2.07423635e+00 + 2.07053191e+00 2.06683406e+00 2.06314276e+00 2.05945801e+00 2.05577981e+00 + 2.05210813e+00 2.04844298e+00 2.04478433e+00 2.04113218e+00 2.03748651e+00 + 2.03384733e+00 2.03021461e+00 2.02658834e+00 2.02296852e+00 2.01935513e+00 + 2.01574817e+00 2.01214761e+00 2.00855346e+00 2.00496570e+00 2.00138432e+00 + 1.99780931e+00 1.99424066e+00 1.99067835e+00 1.98712239e+00 1.98357275e+00 + 1.98002942e+00 1.97649240e+00 1.97296168e+00 1.96943724e+00 1.96591907e+00 + 1.96240717e+00 1.95890152e+00 1.95540211e+00 1.95190893e+00 1.94842197e+00 + 1.94494122e+00 1.94146667e+00 1.93799831e+00 1.93453613e+00 1.93108011e+00 + 1.92763025e+00 1.92418654e+00 1.92074896e+00 1.91731750e+00 1.91389217e+00 + 1.91047293e+00 1.90705979e+00 1.90365273e+00 1.90025175e+00 1.89685682e+00 + 1.89346795e+00 1.89008512e+00 1.88670832e+00 1.88333754e+00 1.87997276e+00 + 1.87661399e+00 1.87326121e+00 1.86991440e+00 1.86657357e+00 1.86323869e+00 + 1.85990976e+00 1.85658676e+00 1.85326969e+00 1.84995854e+00 1.84665329e+00 + 1.84335394e+00 1.84006048e+00 1.83677289e+00 1.83349116e+00 1.83021529e+00 + 1.82694527e+00 1.82368107e+00 1.82042271e+00 1.81717015e+00 1.81392340e+00 + 1.81068244e+00 1.80744727e+00 1.80421786e+00 1.80099422e+00 1.79777634e+00 + 1.79456419e+00 1.79135778e+00 1.78815710e+00 1.78496212e+00 1.78177285e+00 + 1.77858926e+00 1.77541136e+00 1.77223914e+00 1.76907257e+00 1.76591166e+00 + 1.76275639e+00 1.75960675e+00 1.75646274e+00 1.75332434e+00 1.75019154e+00 + 1.74706433e+00 1.74394271e+00 1.74082665e+00 1.73771617e+00 1.73461123e+00 + 1.73151184e+00 1.72841799e+00 1.72532965e+00 1.72224683e+00 1.71916952e+00 + 1.71609770e+00 1.71303137e+00 1.70997051e+00 1.70691511e+00 1.70386518e+00 + 1.70082068e+00 1.69778163e+00 1.69474800e+00 1.69171979e+00 1.68869699e+00 + 1.68567958e+00 1.68266757e+00 1.67966093e+00 1.67665967e+00 1.67366376e+00 + 1.67067320e+00 1.66768799e+00 1.66470810e+00 1.66173354e+00 1.65876429e+00 + 1.65580034e+00 1.65284169e+00 1.64988832e+00 1.64694023e+00 1.64399740e+00 + 1.64105983e+00 1.63812751e+00 1.63520042e+00 1.63227856e+00 1.62936192e+00 + 1.62645049e+00 1.62354426e+00 1.62064322e+00 1.61774737e+00 1.61485669e+00 + 1.61197117e+00 1.60909080e+00 1.60621558e+00 1.60334550e+00 1.60048054e+00 + 1.59762070e+00 1.59476597e+00 1.59191634e+00 1.58907180e+00 1.58623234e+00 + 1.58339795e+00 1.58056863e+00 1.57774436e+00 1.57492513e+00 1.57211094e+00 + 1.56930178e+00 1.56649764e+00 1.56369851e+00 1.56090438e+00 1.55811524e+00 + 1.55533108e+00 1.55255190e+00 1.54977768e+00 1.54700842e+00 1.54424410e+00 + 1.54148473e+00 1.53873028e+00 1.53598076e+00 1.53323614e+00 1.53049643e+00 + 1.52776162e+00 1.52503169e+00 1.52230664e+00 1.51958646e+00 1.51687113e+00 + 1.51416066e+00 1.51145503e+00 1.50875424e+00 1.50605826e+00 1.50336711e+00 + 1.50068077e+00 1.49799922e+00 1.49532247e+00 1.49265049e+00 1.48998329e+00 + 1.48732086e+00 1.48466319e+00 1.48201026e+00 1.47936207e+00 1.47671861e+00 + 1.47407988e+00 1.47144586e+00 1.46881655e+00 1.46619193e+00 1.46357201e+00 + 1.46095676e+00 1.45834619e+00 1.45574029e+00 1.45313903e+00 1.45054243e+00 + 1.44795047e+00 1.44536313e+00 1.44278042e+00 1.44020233e+00 1.43762884e+00 + 1.43505995e+00 1.43249565e+00 1.42993593e+00 1.42738079e+00 1.42483021e+00 + 1.42228418e+00 1.41974271e+00 1.41720578e+00 1.41467338e+00 1.41214550e+00 + 1.40962214e+00 1.40710330e+00 1.40458895e+00 1.40207909e+00 1.39957372e+00 + 1.39707283e+00 1.39457640e+00 1.39208443e+00 1.38959692e+00 1.38711385e+00 + 1.38463522e+00 1.38216102e+00 1.37969124e+00 1.37722587e+00 1.37476490e+00 + 1.37230834e+00 1.36985616e+00 1.36740837e+00 1.36496495e+00 1.36252589e+00 + 1.36009119e+00 1.35766085e+00 1.35523484e+00 1.35281317e+00 1.35039583e+00 + 1.34798281e+00 1.34557410e+00 1.34316969e+00 1.34076958e+00 1.33837375e+00 + 1.33598221e+00 1.33359495e+00 1.33121194e+00 1.32883320e+00 1.32645870e+00 + 1.32408845e+00 1.32172244e+00 1.31936065e+00 1.31700308e+00 1.31464973e+00 + 1.31230058e+00 1.30995562e+00 1.30761486e+00 1.30527828e+00 1.30294588e+00 + 1.30061764e+00 1.29829356e+00 1.29597364e+00 1.29365786e+00 1.29134622e+00 + 1.28903871e+00 1.28673532e+00 1.28443605e+00 1.28214089e+00 1.27984983e+00 + 1.27756286e+00 1.27527998e+00 1.27300118e+00 1.27072645e+00 1.26845578e+00 + 1.26618917e+00 1.26392662e+00 1.26166810e+00 1.25941362e+00 1.25716317e+00 + 1.25491674e+00 1.25267433e+00 1.25043592e+00 1.24820151e+00 1.24597109e+00 + 1.24374466e+00 1.24152221e+00 1.23930373e+00 1.23708921e+00 1.23487865e+00 + 1.23267204e+00 1.23046938e+00 1.22827064e+00 1.22607584e+00 1.22388496e+00 + 1.22169800e+00 1.21951494e+00 1.21733578e+00 1.21516052e+00 1.21298915e+00 + 1.21082165e+00 1.20865803e+00 1.20649827e+00 1.20434237e+00 1.20219033e+00 + 1.20004213e+00 1.19789777e+00 1.19575724e+00 1.19362053e+00 1.19148765e+00 + 1.18935857e+00 1.18723330e+00 1.18511183e+00 1.18299415e+00 1.18088025e+00 + 1.17877013e+00 1.17666378e+00 1.17456119e+00 1.17246236e+00 1.17036728e+00 + 1.16827595e+00 1.16618835e+00 1.16410448e+00 1.16202434e+00 1.15994791e+00 + 1.15787520e+00 1.15580618e+00 1.15374087e+00 1.15167924e+00 1.14962130e+00 + 1.14756704e+00 1.14551644e+00 1.14346951e+00 1.14142624e+00 1.13938662e+00 + 1.13735064e+00 1.13531831e+00 1.13328960e+00 1.13126452e+00 1.12924306e+00 + 1.12722521e+00 1.12521096e+00 1.12320032e+00 1.12119326e+00 1.11918980e+00 + 1.11718991e+00 1.11519360e+00 1.11320085e+00 1.11121167e+00 1.10922604e+00 + 1.10724396e+00 1.10526542e+00 1.10329041e+00 1.10131893e+00 1.09935098e+00 + 1.09738655e+00 1.09542562e+00 1.09346820e+00 1.09151427e+00 1.08956384e+00 + 1.08761689e+00 1.08567342e+00 1.08373343e+00 1.08179690e+00 1.07986383e+00 + 1.07793421e+00 1.07600805e+00 1.07408532e+00 1.07216603e+00 1.07025017e+00 + 1.06833774e+00 1.06642872e+00 1.06452311e+00 1.06262091e+00 1.06072211e+00 + 1.05882670e+00 1.05693467e+00 1.05504603e+00 1.05316076e+00 1.05127886e+00 + 1.04940033e+00 1.04752515e+00 1.04565332e+00 1.04378484e+00 1.04191969e+00 + 1.04005788e+00 1.03819939e+00 1.03634423e+00 1.03449238e+00 1.03264384e+00 + 1.03079860e+00 1.02895666e+00 1.02711801e+00 1.02528265e+00 1.02345057e+00 + 1.02162176e+00 1.01979621e+00 1.01797393e+00 1.01615491e+00 1.01433914e+00 + 1.01252661e+00 1.01071732e+00 1.00891126e+00 1.00710843e+00 1.00530883e+00 + 1.00351243e+00 1.00171925e+00 9.99929274e-01 9.98142494e-01 9.96358908e-01 + 9.94578508e-01 9.92801290e-01 9.91027248e-01 9.89256375e-01 9.87488667e-01 + 9.85724118e-01 9.83962722e-01 9.82204473e-01 9.80449366e-01 9.78697395e-01 + 9.76948555e-01 9.75202840e-01 9.73460244e-01 9.71720763e-01 9.69984389e-01 + 9.68251118e-01 9.66520945e-01 9.64793863e-01 9.63069867e-01 9.61348952e-01 + 9.59631112e-01 9.57916341e-01 9.56204635e-01 9.54495987e-01 9.52790393e-01 + 9.51087846e-01 9.49388341e-01 9.47691874e-01 9.45998438e-01 9.44308027e-01 + 9.42620638e-01 9.40936263e-01 9.39254899e-01 9.37576539e-01 9.35901178e-01 + 9.34228810e-01 9.32559431e-01 9.30893035e-01 9.29229617e-01 9.27569171e-01 + 9.25911692e-01 9.24257175e-01 9.22605615e-01 9.20957005e-01 9.19311342e-01 + 9.17668619e-01 9.16028831e-01 9.14391974e-01 9.12758042e-01 9.11127029e-01 + 9.09498931e-01 9.07873742e-01 9.06251457e-01 9.04632071e-01 9.03015578e-01 + 9.01401974e-01 8.99791254e-01 8.98183411e-01 8.96578442e-01 8.94976341e-01 + 8.93377102e-01 8.91780721e-01 8.90187193e-01 8.88596512e-01 8.87008674e-01 + 8.85423673e-01 8.83841504e-01 8.82262163e-01 8.80685643e-01 8.79111941e-01 + 8.77541050e-01 8.75972967e-01 8.74407686e-01 8.72845201e-01 8.71285509e-01 + 8.69728604e-01 8.68174481e-01 8.66623135e-01 8.65074560e-01 8.63528754e-01 + 8.61985709e-01 8.60445422e-01 8.58907887e-01 8.57373099e-01 8.55841054e-01 + 8.54311746e-01 8.52785172e-01 8.51261325e-01 8.49740201e-01 8.48201192e-01 + 8.46617382e-01 8.44988908e-01 8.43316032e-01 8.41599021e-01 8.39838147e-01 + 8.38033686e-01 8.36185917e-01 8.34295124e-01 8.32361596e-01 8.30385625e-01 + 8.28367507e-01 8.26307542e-01 8.24206035e-01 8.22063293e-01 8.19879628e-01 + 8.17655357e-01 8.15390797e-01 8.13086273e-01 8.10742111e-01 8.08358641e-01 + 8.05936196e-01 8.03475115e-01 8.00975736e-01 7.98438405e-01 7.95863469e-01 + 7.93251278e-01 7.90602186e-01 7.87916549e-01 7.85194728e-01 7.82437085e-01 + 7.79643987e-01 7.76815803e-01 7.73952904e-01 7.71055665e-01 7.68124463e-01 + 7.65159679e-01 7.62161696e-01 7.59130898e-01 7.56067674e-01 7.52972415e-01 + 7.49845513e-01 7.46687363e-01 7.43498364e-01 7.40278916e-01 7.37029420e-01 + 7.33750281e-01 7.30441906e-01 7.27104703e-01 7.23739083e-01 7.20345459e-01 + 7.16924244e-01 7.13475856e-01 7.10000712e-01 7.06499233e-01 7.02971840e-01 + 6.99418956e-01 6.95841006e-01 6.92238416e-01 6.88611614e-01 6.84961030e-01 + 6.81287093e-01 6.77590236e-01 6.73870892e-01 6.70129494e-01 6.66366479e-01 + 6.62582283e-01 6.58777343e-01 6.54952099e-01 6.51106988e-01 6.47242453e-01 + 6.43358933e-01 6.39456870e-01 6.35536708e-01 6.31598889e-01 6.27643857e-01 + 6.23672057e-01 6.19683933e-01 6.15679931e-01 6.11660495e-01 6.07626073e-01 + 6.03577111e-01 5.99514054e-01 5.95437349e-01 5.91347444e-01 5.87244785e-01 + 5.83129819e-01 5.79002992e-01 5.74864752e-01 5.70715544e-01 5.66555816e-01 + 5.62386013e-01 5.58206581e-01 5.54017965e-01 5.49820611e-01 5.45614964e-01 + 5.41401466e-01 5.37180563e-01 5.32952696e-01 5.28718309e-01 5.24477842e-01 + 5.20231737e-01 5.15980433e-01 5.11724371e-01 5.07463987e-01 5.03199721e-01 + 4.98932007e-01 4.94661282e-01 4.90387980e-01 4.86112534e-01 4.81835376e-01 + 4.77556936e-01 4.73277645e-01 4.68997930e-01 4.64718219e-01 4.60438936e-01 + 4.56160507e-01 4.51883352e-01 4.47607894e-01 4.43334552e-01 4.39063743e-01 + 4.34795884e-01 4.30531389e-01 4.26270671e-01 4.22014140e-01 4.17762207e-01 + 4.13515277e-01 4.09273757e-01 4.05038049e-01 4.00808555e-01 3.96585674e-01 + 3.92369804e-01 3.88161340e-01 3.83960674e-01 3.79768198e-01 3.75584299e-01 + 3.71409365e-01 3.67243780e-01 3.63087924e-01 3.58942178e-01 3.54806918e-01 + 3.50682519e-01 3.46569353e-01 3.42467789e-01 3.38378195e-01 3.34300933e-01 + 3.30236368e-01 3.26184857e-01 3.22146757e-01 3.18122421e-01 3.14112201e-01 + 3.10116445e-01 3.06135499e-01 3.02169705e-01 2.98219402e-01 2.94284928e-01 + 2.90366616e-01 2.86464798e-01 2.82579801e-01 2.78711951e-01 2.74861569e-01 + 2.71028975e-01 2.67214484e-01 2.63418409e-01 2.59641060e-01 2.55882743e-01 + 2.52143761e-01 2.48424414e-01 2.44725000e-01 2.41045812e-01 2.37387139e-01 + 2.33749270e-01 2.30132488e-01 2.26537072e-01 2.22963301e-01 2.19411448e-01 + 2.15881782e-01 2.12374571e-01 2.08890078e-01 2.05428563e-01 2.01990283e-01 + 1.98575490e-01 1.95184433e-01 1.91817359e-01 1.88474510e-01 1.85156124e-01 + 1.81862438e-01 1.78593682e-01 1.75350084e-01 1.72131869e-01 1.68939258e-01 + 1.65772468e-01 1.62631713e-01 1.59517201e-01 1.56429140e-01 1.53367731e-01 + 1.50333174e-01 1.47325663e-01 1.44345390e-01 1.41392542e-01 1.38467304e-01 + 1.35569855e-01 1.32700372e-01 1.29859028e-01 1.27045990e-01 1.24261425e-01 + 1.21505494e-01 1.18778353e-01 1.16080157e-01 1.13411056e-01 1.10771196e-01 + 1.08160719e-01 1.05579764e-01 1.03028466e-01 1.00506954e-01 9.80153575e-02 + 9.55537985e-02 9.31223968e-02 9.07212680e-02 8.83505241e-02 8.60102730e-02 + 8.37006190e-02 8.14216626e-02 7.91735004e-02 7.69562251e-02 7.47699258e-02 + 7.26146878e-02 7.04905924e-02 6.83977173e-02 6.63361363e-02 6.43059195e-02 + 6.23071332e-02 6.03398398e-02 5.84040982e-02 5.64999633e-02 5.46274863e-02 + 5.27867148e-02 5.09776925e-02 4.92004594e-02 4.74550517e-02 4.57415023e-02 + 4.40598398e-02 4.24100894e-02 4.07922728e-02 3.92064078e-02 3.76525084e-02 + 3.61305853e-02 3.46406454e-02 3.31826918e-02 3.17567243e-02 3.03627389e-02 + 2.90007281e-02 2.76706807e-02 2.63725820e-02 2.51064140e-02 2.38721547e-02 + 2.26697789e-02 2.14992579e-02 2.03605594e-02 1.92536477e-02 1.81784835e-02 + 1.71350243e-02 1.61232240e-02 1.51430332e-02 1.41943991e-02 1.32772654e-02 + 1.23915726e-02 1.15372579e-02 1.07142551e-02 9.92249463e-03 9.16190382e-03 + 8.43240666e-03 7.73392391e-03 7.06637314e-03 6.42966871e-03 5.82372182e-03 + 5.24844054e-03 4.70372977e-03 4.18949135e-03 3.70562400e-03 3.25202343e-03 + 2.82858225e-03 2.43519012e-03 2.07173366e-03 1.73809655e-03 1.43415952e-03 + 1.15980039e-03 9.14894082e-04 6.99312635e-04 5.12925259e-04 3.55598341e-04 + 2.27195472e-04 1.27577478e-04 5.66024399e-05 1.41257221e-05 0.00000000e+00 + 5.11971098e-01 5.11971098e-01 5.17242510e-01 5.23233505e-01 5.29293369e-01 + 5.35422881e-01 5.41622827e-01 5.47894004e-01 5.54237214e-01 5.60653272e-01 + 5.67142999e-01 5.73707225e-01 5.80346789e-01 5.87062542e-01 5.93855339e-01 + 6.00726049e-01 6.07675547e-01 6.14704719e-01 6.21814461e-01 6.29005677e-01 + 6.36279282e-01 6.43636201e-01 6.51077366e-01 6.58603723e-01 6.66216226e-01 + 6.73915839e-01 6.81703537e-01 6.89580304e-01 6.97547137e-01 7.05605040e-01 + 7.13755031e-01 7.21998138e-01 7.30335397e-01 7.38767858e-01 7.47296582e-01 + 7.55922638e-01 7.64647111e-01 7.73471093e-01 7.82395690e-01 7.91422019e-01 + 8.00551207e-01 8.09784394e-01 8.19122734e-01 8.28567388e-01 8.38119534e-01 + 8.47780359e-01 8.57551064e-01 8.67432860e-01 8.77426973e-01 8.87534640e-01 + 8.97757111e-01 9.08095650e-01 9.18551533e-01 9.29126046e-01 9.39820494e-01 + 9.50636190e-01 9.61574463e-01 9.72636655e-01 9.83824120e-01 9.95138227e-01 + 1.00658036e+00 1.01815191e+00 1.02985430e+00 1.04168894e+00 1.05365727e+00 + 1.06576075e+00 1.07800084e+00 1.09037902e+00 1.10289680e+00 1.11555567e+00 + 1.12835717e+00 1.14130283e+00 1.15439422e+00 1.16763289e+00 1.18102044e+00 + 1.19455846e+00 1.20824858e+00 1.22209242e+00 1.23609162e+00 1.25024786e+00 + 1.26456280e+00 1.27903815e+00 1.29367562e+00 1.30847692e+00 1.32344380e+00 + 1.33857802e+00 1.35388135e+00 1.36935559e+00 1.38500254e+00 1.40082403e+00 + 1.41682189e+00 1.43299799e+00 1.44935419e+00 1.46589240e+00 1.48261451e+00 + 1.49952245e+00 1.51661817e+00 1.53390362e+00 1.55138079e+00 1.56905166e+00 + 1.58691825e+00 1.60498258e+00 1.62324671e+00 1.64171270e+00 1.66038262e+00 + 1.67925859e+00 1.69834272e+00 1.71763713e+00 1.73714400e+00 1.75686548e+00 + 1.77680377e+00 1.79696108e+00 1.81733963e+00 1.83794166e+00 1.85876944e+00 + 1.87982524e+00 1.90111137e+00 1.92263014e+00 1.94438389e+00 1.96637497e+00 + 1.98860574e+00 2.01107861e+00 2.03379597e+00 2.05676026e+00 2.07997391e+00 + 2.10343939e+00 2.12715919e+00 2.15113579e+00 2.17537172e+00 2.19986952e+00 + 2.22463173e+00 2.24966092e+00 2.27495969e+00 2.30053064e+00 2.32637640e+00 + 2.35249962e+00 2.37890294e+00 2.40558905e+00 2.43256065e+00 2.45982045e+00 + 2.48737117e+00 2.51521557e+00 2.54335641e+00 2.57179648e+00 2.60053857e+00 + 2.62958549e+00 2.65894009e+00 2.68860520e+00 2.71858370e+00 2.74887845e+00 + 2.77949237e+00 2.81042835e+00 2.84168934e+00 2.87327827e+00 2.90519809e+00 + 2.93745179e+00 2.97004235e+00 3.00297276e+00 3.03624605e+00 3.06986525e+00 + 3.10383339e+00 3.13815354e+00 3.17282876e+00 3.20786213e+00 3.24325674e+00 + 3.27901571e+00 3.31514214e+00 3.35163917e+00 3.38850993e+00 3.42575757e+00 + 3.46338525e+00 3.50139614e+00 3.53979341e+00 3.57858025e+00 3.61775985e+00 + 3.65733542e+00 3.69731016e+00 3.73768729e+00 3.77847002e+00 3.81966159e+00 + 3.86126523e+00 3.90328416e+00 3.94572164e+00 3.98858089e+00 4.03186518e+00 + 4.07557773e+00 4.11972181e+00 4.16430066e+00 4.20931753e+00 4.25477566e+00 + 4.30067831e+00 4.34702870e+00 4.39383010e+00 4.44108572e+00 4.48879881e+00 + 4.53697258e+00 4.58561026e+00 4.63471506e+00 4.68429018e+00 4.73433881e+00 + 4.78486415e+00 4.83586936e+00 4.88735761e+00 4.93933204e+00 4.99179578e+00 + 5.04475196e+00 5.09820369e+00 5.15215403e+00 5.20660607e+00 5.26156285e+00 + 5.31702739e+00 5.37300271e+00 5.42949179e+00 5.48649757e+00 5.54402301e+00 + 5.60207099e+00 5.66064441e+00 5.71974611e+00 5.77937891e+00 5.83954559e+00 + 5.90024891e+00 5.96149159e+00 6.02327631e+00 6.08560572e+00 6.14848241e+00 + 6.21190897e+00 6.27588790e+00 6.34042169e+00 6.40551278e+00 6.47116356e+00 + 6.53737636e+00 6.60415348e+00 6.67149715e+00 6.73940957e+00 6.80789285e+00 + 6.87694909e+00 6.94658030e+00 7.01678842e+00 7.08757537e+00 7.15894297e+00 + 7.23089300e+00 7.30342714e+00 7.37654704e+00 7.45025425e+00 7.52455027e+00 + 7.59943651e+00 7.67491431e+00 7.75098493e+00 7.82764955e+00 7.90490929e+00 + 7.98276514e+00 8.06121804e+00 8.14026884e+00 8.21991829e+00 8.30016706e+00 + 8.38101571e+00 8.46246472e+00 8.54451447e+00 8.62716524e+00 8.71041720e+00 + 8.79427042e+00 8.87872489e+00 8.96378046e+00 9.04943689e+00 9.13569381e+00 + 9.22255077e+00 9.31000717e+00 9.39806232e+00 9.48671539e+00 9.57596544e+00 + 9.66581142e+00 9.75625214e+00 9.84728628e+00 9.93891240e+00 1.00311289e+01 + 1.01239342e+01 1.02173263e+01 1.03113033e+01 1.04058631e+01 1.05010035e+01 + 1.05967220e+01 1.06930162e+01 1.07898833e+01 1.08873205e+01 1.09853250e+01 + 1.10838934e+01 1.11830227e+01 1.12827094e+01 1.13829499e+01 1.14837404e+01 + 1.15850772e+01 1.16869562e+01 1.17893732e+01 1.18923238e+01 1.19958035e+01 + 1.20998077e+01 1.22043314e+01 1.23093699e+01 1.24149177e+01 1.25209698e+01 + 1.26275204e+01 1.27345640e+01 1.28420948e+01 1.29501068e+01 1.30585938e+01 + 1.31675494e+01 1.32769672e+01 1.33868405e+01 1.34971625e+01 1.36079262e+01 + 1.37191244e+01 1.38307497e+01 1.39427946e+01 1.40552516e+01 1.41681126e+01 + 1.42813698e+01 1.43950148e+01 1.45090394e+01 1.46234351e+01 1.47381932e+01 + 1.48533048e+01 1.49687609e+01 1.50845524e+01 1.52006699e+01 1.53171040e+01 + 1.54338449e+01 1.55508829e+01 1.56682081e+01 1.57858103e+01 1.59036792e+01 + 1.60218045e+01 1.61401756e+01 1.62587818e+01 1.63776122e+01 1.64966559e+01 + 1.66159016e+01 1.67353383e+01 1.68549545e+01 1.69747385e+01 1.70946789e+01 + 1.72147639e+01 1.73349814e+01 1.74553195e+01 1.75757662e+01 1.76963091e+01 + 1.78169358e+01 1.79376340e+01 1.80583911e+01 1.81791944e+01 1.83000312e+01 + 1.84208886e+01 1.85417538e+01 1.86626136e+01 1.87834551e+01 1.89042651e+01 + 1.90250303e+01 1.91457375e+01 1.92663733e+01 1.93869243e+01 1.95073771e+01 + 1.96277181e+01 1.97479338e+01 1.98680106e+01 1.99879349e+01 2.01076930e+01 + 2.02272714e+01 2.03466562e+01 2.04658338e+01 2.05847906e+01 2.07035127e+01 + 2.08219864e+01 2.09401981e+01 2.10581341e+01 2.11757807e+01 2.12931242e+01 + 2.14101510e+01 2.15268475e+01 2.16432002e+01 2.17591956e+01 2.18748201e+01 + 2.19900603e+01 2.21049030e+01 2.22193347e+01 2.23333424e+01 2.24469127e+01 + 2.25600327e+01 2.26726893e+01 2.27848696e+01 2.28965608e+01 2.30077502e+01 + 2.31184251e+01 2.32285731e+01 2.33381817e+01 2.34472387e+01 2.35557318e+01 + 2.36636490e+01 2.37709785e+01 2.38777084e+01 2.39838270e+01 2.40893229e+01 + 2.41941847e+01 2.42984012e+01 2.44019613e+01 2.45048542e+01 2.46070690e+01 + 2.47085951e+01 2.48094223e+01 2.49095401e+01 2.50089387e+01 2.51076079e+01 + 2.52055383e+01 2.53027201e+01 2.53991441e+01 2.54948011e+01 2.55896821e+01 + 2.56837784e+01 2.57770813e+01 2.58695826e+01 2.59612740e+01 2.60521475e+01 + 2.61421953e+01 2.62314100e+01 2.63197840e+01 2.64073104e+01 2.64939820e+01 + 2.65797922e+01 2.66647345e+01 2.67488026e+01 2.68319902e+01 2.69142917e+01 + 2.69957012e+01 2.70762134e+01 2.71558231e+01 2.72345251e+01 2.73123147e+01 + 2.73891873e+01 2.74651386e+01 2.75401644e+01 2.76142607e+01 2.76874239e+01 + 2.77596504e+01 2.78309370e+01 2.79012805e+01 2.79706782e+01 2.80391273e+01 + 2.81066254e+01 2.81731704e+01 2.82387601e+01 2.83033927e+01 2.83670667e+01 + 2.84297807e+01 2.84915333e+01 2.85523238e+01 2.86121511e+01 2.86710148e+01 + 2.87289145e+01 2.87858498e+01 2.88418209e+01 2.88968278e+01 2.89508709e+01 + 2.90039508e+01 2.90560681e+01 2.91072238e+01 2.91574190e+01 2.92066549e+01 + 2.92549329e+01 2.93022546e+01 2.93486219e+01 2.93940365e+01 2.94385007e+01 + 2.94820167e+01 2.95245868e+01 2.95662136e+01 2.96068999e+01 2.96466484e+01 + 2.96854623e+01 2.97233446e+01 2.97602986e+01 2.97963278e+01 2.98314357e+01 + 2.98656260e+01 2.98989025e+01 2.99312691e+01 2.99627299e+01 2.99932890e+01 + 3.00229508e+01 3.00517197e+01 3.00796001e+01 3.01065967e+01 3.01327141e+01 + 3.01579573e+01 3.01823311e+01 3.02058406e+01 3.02284907e+01 3.02502868e+01 + 3.02712341e+01 3.02913379e+01 3.03106037e+01 3.03290370e+01 3.03466434e+01 + 3.03634285e+01 3.03793980e+01 3.03945578e+01 3.04089136e+01 3.04224715e+01 + 3.04352373e+01 3.04472170e+01 3.04584168e+01 3.04688428e+01 3.04785011e+01 + 3.04873979e+01 3.04955395e+01 3.05029321e+01 3.05095822e+01 3.05154960e+01 + 3.05206800e+01 3.05251405e+01 3.05288840e+01 3.05319170e+01 3.05342459e+01 + 3.05358773e+01 3.05368177e+01 3.05370737e+01 3.05366518e+01 3.05355586e+01 + 3.05338006e+01 3.05313844e+01 3.05283167e+01 3.05246041e+01 3.05202531e+01 + 3.05152703e+01 3.05096624e+01 3.05034359e+01 3.04965974e+01 3.04891535e+01 + 3.04811109e+01 3.04724759e+01 3.04632553e+01 3.04534556e+01 3.04430832e+01 + 3.04321448e+01 3.04206467e+01 3.04085955e+01 3.03959977e+01 3.03828596e+01 + 3.03691878e+01 3.03549885e+01 3.03402682e+01 3.03250332e+01 3.03092899e+01 + 3.02930445e+01 3.02763032e+01 3.02590725e+01 3.02413583e+01 3.02231670e+01 + 3.02045046e+01 3.01853773e+01 3.01657911e+01 3.01457522e+01 3.01252664e+01 + 3.01043398e+01 3.00829783e+01 3.00611878e+01 3.00389742e+01 3.00163433e+01 + 2.99933008e+01 2.99698526e+01 2.99460043e+01 2.99217616e+01 2.98971302e+01 + 2.98721155e+01 2.98467232e+01 2.98209588e+01 2.97948277e+01 2.97683353e+01 + 2.97414870e+01 2.97142882e+01 2.96867441e+01 2.96588599e+01 2.96306410e+01 + 2.96020923e+01 2.95732191e+01 2.95440265e+01 2.95145193e+01 2.94847027e+01 + 2.94545815e+01 2.94241606e+01 2.93934449e+01 2.93624392e+01 2.93311482e+01 + 2.92995767e+01 2.92677292e+01 2.92356105e+01 2.92032251e+01 2.91705775e+01 + 2.91376723e+01 2.91045137e+01 2.90711064e+01 2.90374545e+01 2.90035624e+01 + 2.89694344e+01 2.89350746e+01 2.89004873e+01 2.88656766e+01 2.88306465e+01 + 2.87954011e+01 2.87599444e+01 2.87242804e+01 2.86884129e+01 2.86523458e+01 + 2.86160830e+01 2.85796281e+01 2.85429851e+01 2.85061574e+01 2.84691489e+01 + 2.84319631e+01 2.83946035e+01 2.83570738e+01 2.83193774e+01 2.82815177e+01 + 2.82434981e+01 2.82053220e+01 2.81669928e+01 2.81285137e+01 2.80898879e+01 + 2.80511187e+01 2.80122092e+01 2.79731625e+01 2.79339818e+01 2.78946701e+01 + 2.78552303e+01 2.78156656e+01 2.77759787e+01 2.77361727e+01 2.76962503e+01 + 2.76562144e+01 2.76160678e+01 2.75758133e+01 2.75354535e+01 2.74949912e+01 + 2.74544289e+01 2.74137694e+01 2.73730151e+01 2.73321687e+01 2.72912326e+01 + 2.72502094e+01 2.72091014e+01 2.71679111e+01 2.71266408e+01 2.70852930e+01 + 2.70438699e+01 2.70023738e+01 2.69608070e+01 2.69191717e+01 2.68774700e+01 + 2.68357042e+01 2.67938764e+01 2.67519887e+01 2.67100431e+01 2.66680417e+01 + 2.66259866e+01 2.65838796e+01 2.65417228e+01 2.64995182e+01 2.64572675e+01 + 2.64149727e+01 2.63726356e+01 2.63302581e+01 2.62878419e+01 2.62453889e+01 + 2.62029007e+01 2.61603792e+01 2.61178259e+01 2.60752425e+01 2.60326308e+01 + 2.59899923e+01 2.59473287e+01 2.59046414e+01 2.58619321e+01 2.58192022e+01 + 2.57764534e+01 2.57336870e+01 2.56909045e+01 2.56481074e+01 2.56052971e+01 + 2.55624750e+01 2.55196424e+01 2.54768007e+01 2.54339513e+01 2.53910954e+01 + 2.53482344e+01 2.53053694e+01 2.52625019e+01 2.52196329e+01 2.51767637e+01 + 2.51338956e+01 2.50910296e+01 2.50481669e+01 2.50053088e+01 2.49624562e+01 + 2.49196103e+01 2.48767722e+01 2.48339430e+01 2.47911236e+01 2.47483152e+01 + 2.47055188e+01 2.46627353e+01 2.46199657e+01 2.45772111e+01 2.45344723e+01 + 2.44917503e+01 2.44490460e+01 2.44063604e+01 2.43636943e+01 2.43210485e+01 + 2.42784241e+01 2.42358217e+01 2.41932423e+01 2.41506866e+01 2.41081555e+01 + 2.40656497e+01 2.40231701e+01 2.39807174e+01 2.39382923e+01 2.38958957e+01 + 2.38535281e+01 2.38111904e+01 2.37688832e+01 2.37266073e+01 2.36843632e+01 + 2.36421517e+01 2.35999735e+01 2.35578291e+01 2.35157192e+01 2.34736444e+01 + 2.34316053e+01 2.33896025e+01 2.33476367e+01 2.33057084e+01 2.32638180e+01 + 2.32219664e+01 2.31801538e+01 2.31383810e+01 2.30966483e+01 2.30549564e+01 + 2.30133057e+01 2.29716968e+01 2.29301300e+01 2.28886060e+01 2.28471252e+01 + 2.28056879e+01 2.27642948e+01 2.27229461e+01 2.26816425e+01 2.26403842e+01 + 2.25991717e+01 2.25580054e+01 2.25168857e+01 2.24758130e+01 2.24347878e+01 + 2.23938102e+01 2.23528809e+01 2.23120000e+01 2.22711680e+01 2.22303851e+01 + 2.21896519e+01 2.21489685e+01 2.21083353e+01 2.20677526e+01 2.20272208e+01 + 2.19867401e+01 2.19463109e+01 2.19059334e+01 2.18656079e+01 2.18253348e+01 + 2.17851142e+01 2.17449465e+01 2.17048318e+01 2.16647706e+01 2.16247630e+01 + 2.15848092e+01 2.15449096e+01 2.15050643e+01 2.14652736e+01 2.14255376e+01 + 2.13858567e+01 2.13462310e+01 2.13066607e+01 2.12671461e+01 2.12276873e+01 + 2.11882845e+01 2.11489380e+01 2.11096478e+01 2.10704142e+01 2.10312374e+01 + 2.09921175e+01 2.09530546e+01 2.09140491e+01 2.08751009e+01 2.08362102e+01 + 2.07973773e+01 2.07586022e+01 2.07198851e+01 2.06812261e+01 2.06426254e+01 + 2.06040830e+01 2.05655991e+01 2.05271739e+01 2.04888074e+01 2.04504997e+01 + 2.04122511e+01 2.03740614e+01 2.03359310e+01 2.02978598e+01 2.02598479e+01 + 2.02218956e+01 2.01840027e+01 2.01461695e+01 2.01083960e+01 2.00706823e+01 + 2.00330285e+01 1.99954346e+01 1.99579007e+01 1.99204268e+01 1.98830132e+01 + 1.98456597e+01 1.98083665e+01 1.97711336e+01 1.97339610e+01 1.96968489e+01 + 1.96597973e+01 1.96228062e+01 1.95858756e+01 1.95490056e+01 1.95121963e+01 + 1.94754476e+01 1.94387597e+01 1.94021325e+01 1.93655660e+01 1.93290604e+01 + 1.92926155e+01 1.92562315e+01 1.92199084e+01 1.91836461e+01 1.91474447e+01 + 1.91113042e+01 1.90752247e+01 1.90392061e+01 1.90032484e+01 1.89673516e+01 + 1.89315158e+01 1.88957410e+01 1.88600271e+01 1.88243741e+01 1.87887821e+01 + 1.87532511e+01 1.87177809e+01 1.86823717e+01 1.86470234e+01 1.86117360e+01 + 1.85765095e+01 1.85413439e+01 1.85062392e+01 1.84711952e+01 1.84362122e+01 + 1.84012899e+01 1.83664284e+01 1.83316276e+01 1.82968876e+01 1.82622083e+01 + 1.82275897e+01 1.81930318e+01 1.81585344e+01 1.81240977e+01 1.80897215e+01 + 1.80554058e+01 1.80211507e+01 1.79869560e+01 1.79528217e+01 1.79187478e+01 + 1.78847342e+01 1.78507810e+01 1.78168880e+01 1.77830552e+01 1.77492826e+01 + 1.77155701e+01 1.76819177e+01 1.76483254e+01 1.76147930e+01 1.75813206e+01 + 1.75479081e+01 1.75145554e+01 1.74812625e+01 1.74480294e+01 1.74148559e+01 + 1.73817421e+01 1.73486879e+01 1.73156931e+01 1.72827579e+01 1.72498821e+01 + 1.72170656e+01 1.71843084e+01 1.71516105e+01 1.71189717e+01 1.70863920e+01 + 1.70538715e+01 1.70214099e+01 1.69890072e+01 1.69566634e+01 1.69243784e+01 + 1.68921522e+01 1.68599846e+01 1.68278756e+01 1.67958252e+01 1.67638333e+01 + 1.67318997e+01 1.67000245e+01 1.66682076e+01 1.66364489e+01 1.66047483e+01 + 1.65731058e+01 1.65415213e+01 1.65099947e+01 1.64785260e+01 1.64471150e+01 + 1.64157618e+01 1.63844662e+01 1.63532281e+01 1.63220476e+01 1.62909244e+01 + 1.62598586e+01 1.62288501e+01 1.61978987e+01 1.61670045e+01 1.61361673e+01 + 1.61053871e+01 1.60746637e+01 1.60439972e+01 1.60133874e+01 1.59828342e+01 + 1.59523377e+01 1.59218976e+01 1.58915139e+01 1.58611866e+01 1.58309155e+01 + 1.58007007e+01 1.57705419e+01 1.57404391e+01 1.57103923e+01 1.56804013e+01 + 1.56504661e+01 1.56205866e+01 1.55907628e+01 1.55609944e+01 1.55312816e+01 + 1.55016240e+01 1.54720218e+01 1.54424748e+01 1.54129829e+01 1.53835460e+01 + 1.53541641e+01 1.53248371e+01 1.52955649e+01 1.52663473e+01 1.52371844e+01 + 1.52080761e+01 1.51790222e+01 1.51500226e+01 1.51210774e+01 1.50921863e+01 + 1.50633494e+01 1.50345665e+01 1.50058375e+01 1.49771624e+01 1.49485411e+01 + 1.49199735e+01 1.48914595e+01 1.48629990e+01 1.48345920e+01 1.48062382e+01 + 1.47779378e+01 1.47496905e+01 1.47214964e+01 1.46933552e+01 1.46652670e+01 + 1.46372316e+01 1.46092489e+01 1.45813189e+01 1.45534415e+01 1.45256166e+01 + 1.44978440e+01 1.44701238e+01 1.44424559e+01 1.44148400e+01 1.43872762e+01 + 1.43597644e+01 1.43323045e+01 1.43048964e+01 1.42775400e+01 1.42502352e+01 + 1.42229819e+01 1.41957801e+01 1.41686296e+01 1.41415305e+01 1.41144825e+01 + 1.40874856e+01 1.40605397e+01 1.40336448e+01 1.40068007e+01 1.39800074e+01 + 1.39532647e+01 1.39265726e+01 1.38999310e+01 1.38733398e+01 1.38467989e+01 + 1.38203083e+01 1.37938678e+01 1.37674774e+01 1.37411369e+01 1.37148464e+01 + 1.36886056e+01 1.36624145e+01 1.36362731e+01 1.36101812e+01 1.35841388e+01 + 1.35581457e+01 1.35322019e+01 1.35063073e+01 1.34804618e+01 1.34546654e+01 + 1.34289178e+01 1.34032192e+01 1.33775692e+01 1.33519680e+01 1.33264153e+01 + 1.33009112e+01 1.32754555e+01 1.32500481e+01 1.32246889e+01 1.31993779e+01 + 1.31741150e+01 1.31489001e+01 1.31237331e+01 1.30986139e+01 1.30735424e+01 + 1.30485186e+01 1.30235423e+01 1.29986135e+01 1.29737321e+01 1.29488980e+01 + 1.29241112e+01 1.28993714e+01 1.28746788e+01 1.28500330e+01 1.28254342e+01 + 1.28008822e+01 1.27763769e+01 1.27519182e+01 1.27275060e+01 1.27031403e+01 + 1.26788210e+01 1.26545480e+01 1.26303212e+01 1.26061405e+01 1.25820059e+01 + 1.25579172e+01 1.25338743e+01 1.25098773e+01 1.24859260e+01 1.24620203e+01 + 1.24381601e+01 1.24143454e+01 1.23905761e+01 1.23668520e+01 1.23431732e+01 + 1.23195394e+01 1.22959508e+01 1.22724070e+01 1.22489082e+01 1.22254541e+01 + 1.22020448e+01 1.21786801e+01 1.21553599e+01 1.21320842e+01 1.21088529e+01 + 1.20856658e+01 1.20625230e+01 1.20394244e+01 1.20163698e+01 1.19933591e+01 + 1.19703924e+01 1.19474695e+01 1.19245903e+01 1.19017547e+01 1.18789628e+01 + 1.18562143e+01 1.18335092e+01 1.18108474e+01 1.17882289e+01 1.17656536e+01 + 1.17431214e+01 1.17206321e+01 1.16981858e+01 1.16757823e+01 1.16534217e+01 + 1.16311036e+01 1.16088283e+01 1.15865954e+01 1.15644050e+01 1.15422569e+01 + 1.15201512e+01 1.14980876e+01 1.14760662e+01 1.14540869e+01 1.14321495e+01 + 1.14102540e+01 1.13884004e+01 1.13665885e+01 1.13448182e+01 1.13230896e+01 + 1.13014025e+01 1.12797567e+01 1.12581524e+01 1.12365893e+01 1.12150674e+01 + 1.11935867e+01 1.11721470e+01 1.11507482e+01 1.11293904e+01 1.11080733e+01 + 1.10867970e+01 1.10655614e+01 1.10443663e+01 1.10232118e+01 1.10020977e+01 + 1.09810239e+01 1.09599905e+01 1.09389972e+01 1.09180441e+01 1.08971310e+01 + 1.08762579e+01 1.08554247e+01 1.08346313e+01 1.08138777e+01 1.07931638e+01 + 1.07724894e+01 1.07518546e+01 1.07312593e+01 1.07107033e+01 1.06901867e+01 + 1.06697093e+01 1.06492710e+01 1.06288718e+01 1.06085117e+01 1.05881904e+01 + 1.05679081e+01 1.05476645e+01 1.05274596e+01 1.05072934e+01 1.04871658e+01 + 1.04670766e+01 1.04470259e+01 1.04270135e+01 1.04070395e+01 1.03871036e+01 + 1.03672058e+01 1.03473462e+01 1.03275245e+01 1.03077407e+01 1.02879948e+01 + 1.02682866e+01 1.02486162e+01 1.02289834e+01 1.02093882e+01 1.01898304e+01 + 1.01703101e+01 1.01508271e+01 1.01313814e+01 1.01119729e+01 1.00926016e+01 + 1.00732673e+01 1.00539700e+01 1.00347096e+01 1.00154861e+01 9.99629938e+00 + 9.97714938e+00 9.95803602e+00 9.93895924e+00 9.91991896e+00 9.90091513e+00 + 9.88194766e+00 9.86301650e+00 9.84412157e+00 9.82526280e+00 9.80644012e+00 + 9.78765347e+00 9.76890278e+00 9.75018798e+00 9.73150899e+00 9.71286576e+00 + 9.69425822e+00 9.67568629e+00 9.65714991e+00 9.63864901e+00 9.62018353e+00 + 9.60175339e+00 9.58335854e+00 9.56499889e+00 9.54667439e+00 9.52838497e+00 + 9.51013056e+00 9.49191110e+00 9.47372652e+00 9.45557675e+00 9.43746172e+00 + 9.41938137e+00 9.40133564e+00 9.38332446e+00 9.36534776e+00 9.34740547e+00 + 9.32949754e+00 9.31162389e+00 9.29378447e+00 9.27597920e+00 9.25820801e+00 + 9.24047086e+00 9.22276766e+00 9.20509836e+00 9.18746289e+00 9.16986119e+00 + 9.15229319e+00 9.13475883e+00 9.11725804e+00 9.09979077e+00 9.08235693e+00 + 9.06495649e+00 9.04758936e+00 9.03025548e+00 9.01295480e+00 8.99568724e+00 + 8.97845276e+00 8.96125127e+00 8.94408272e+00 8.92694705e+00 8.90984419e+00 + 8.89277409e+00 8.87573667e+00 8.85873188e+00 8.84175965e+00 8.82481993e+00 + 8.80791264e+00 8.79103774e+00 8.77419515e+00 8.75738481e+00 8.74060667e+00 + 8.72386066e+00 8.70714672e+00 8.69046479e+00 8.67381480e+00 8.65719671e+00 + 8.64061044e+00 8.62405593e+00 8.60753313e+00 8.59104198e+00 8.57458240e+00 + 8.55815435e+00 8.54175777e+00 8.52539259e+00 8.50905875e+00 8.49275619e+00 + 8.47648486e+00 8.46024469e+00 8.44403563e+00 8.42785761e+00 8.41171057e+00 + 8.39559447e+00 8.37950923e+00 8.36345479e+00 8.34743111e+00 8.33143812e+00 + 8.31547576e+00 8.29954398e+00 8.28364271e+00 8.26777190e+00 8.25193148e+00 + 8.23612141e+00 8.22034162e+00 8.20459205e+00 8.18887265e+00 8.17318336e+00 + 8.15752412e+00 8.14189488e+00 8.12629557e+00 8.11072614e+00 8.09518654e+00 + 8.07967670e+00 8.06419657e+00 8.04874609e+00 8.03332521e+00 8.01793386e+00 + 8.00257200e+00 7.98723957e+00 7.97193650e+00 7.95666274e+00 7.94141825e+00 + 7.92620295e+00 7.91101680e+00 7.89585974e+00 7.88073172e+00 7.86563267e+00 + 7.85056255e+00 7.83552129e+00 7.82050885e+00 7.80552516e+00 7.79057018e+00 + 7.77564385e+00 7.76074610e+00 7.74587690e+00 7.73103618e+00 7.71622389e+00 + 7.70143997e+00 7.68668438e+00 7.67195705e+00 7.65725793e+00 7.64258697e+00 + 7.62794411e+00 7.61332931e+00 7.59874250e+00 7.58418364e+00 7.56965266e+00 + 7.55514952e+00 7.54067417e+00 7.52622655e+00 7.51180660e+00 7.49741427e+00 + 7.48304952e+00 7.46871229e+00 7.45440252e+00 7.44012017e+00 7.42586517e+00 + 7.41163749e+00 7.39743706e+00 7.38326383e+00 7.36911776e+00 7.35499879e+00 + 7.34090686e+00 7.32684193e+00 7.31280395e+00 7.29879286e+00 7.28480861e+00 + 7.27085115e+00 7.25692043e+00 7.24301640e+00 7.22913900e+00 7.21528819e+00 + 7.20146392e+00 7.18766613e+00 7.17389477e+00 7.16014979e+00 7.14643115e+00 + 7.13273879e+00 7.11907266e+00 7.10543272e+00 7.09181890e+00 7.07823116e+00 + 7.06466946e+00 7.05113374e+00 7.03762395e+00 7.02414004e+00 7.01068196e+00 + 6.99724967e+00 6.98384311e+00 6.97046224e+00 6.95710700e+00 6.94377734e+00 + 6.93047323e+00 6.91719460e+00 6.90394141e+00 6.89071361e+00 6.87751116e+00 + 6.86433400e+00 6.85118208e+00 6.83805536e+00 6.82495379e+00 6.81187732e+00 + 6.79882590e+00 6.78579949e+00 6.77279803e+00 6.75982148e+00 6.74686980e+00 + 6.73394292e+00 6.72104082e+00 6.70816343e+00 6.69531071e+00 6.68248262e+00 + 6.66967910e+00 6.65690011e+00 6.64414561e+00 6.63141554e+00 6.61870986e+00 + 6.60602853e+00 6.59337149e+00 6.58073869e+00 6.56813011e+00 6.55554567e+00 + 6.54298535e+00 6.53044909e+00 6.51793685e+00 6.50544859e+00 6.49298424e+00 + 6.48054378e+00 6.46812716e+00 6.45573432e+00 6.44336522e+00 6.43101983e+00 + 6.41869808e+00 6.40639995e+00 6.39412537e+00 6.38187431e+00 6.36964673e+00 + 6.35744257e+00 6.34526179e+00 6.33310435e+00 6.32097020e+00 6.30885930e+00 + 6.29677160e+00 6.28470707e+00 6.27266564e+00 6.26064729e+00 6.24865196e+00 + 6.23667962e+00 6.22473021e+00 6.21280370e+00 6.20090004e+00 6.18901918e+00 + 6.17716109e+00 6.16532571e+00 6.15351301e+00 6.14172295e+00 6.12995547e+00 + 6.11821054e+00 6.10648811e+00 6.09478814e+00 6.08311058e+00 6.07145165e+00 + 6.05974338e+00 6.04796088e+00 6.03610468e+00 6.02417530e+00 6.01217326e+00 + 6.00009907e+00 5.98795327e+00 5.97573636e+00 5.96344889e+00 5.95109137e+00 + 5.93866433e+00 5.92616829e+00 5.91360379e+00 5.90097135e+00 5.88827149e+00 + 5.87550476e+00 5.86267167e+00 5.84977277e+00 5.83680857e+00 5.82377962e+00 + 5.81068645e+00 5.79752958e+00 5.78430956e+00 5.77102692e+00 5.75768219e+00 + 5.74427591e+00 5.73080862e+00 5.71728085e+00 5.70369313e+00 5.69004601e+00 + 5.67634003e+00 5.66257572e+00 5.64875361e+00 5.63487426e+00 5.62093820e+00 + 5.60694596e+00 5.59289809e+00 5.57879513e+00 5.56463761e+00 5.55042608e+00 + 5.53616108e+00 5.52184315e+00 5.50747283e+00 5.49305067e+00 5.47857719e+00 + 5.46405294e+00 5.44947847e+00 5.43485432e+00 5.42018102e+00 5.40545912e+00 + 5.39068917e+00 5.37587169e+00 5.36100723e+00 5.34609634e+00 5.33113955e+00 + 5.31613741e+00 5.30109045e+00 5.28599922e+00 5.27086425e+00 5.25568610e+00 + 5.24046529e+00 5.22520236e+00 5.20989787e+00 5.19455234e+00 5.17916631e+00 + 5.16374033e+00 5.14827493e+00 5.13277065e+00 5.11722803e+00 5.10164761e+00 + 5.08602991e+00 5.07037549e+00 5.05468487e+00 5.03895859e+00 5.02319718e+00 + 5.00740119e+00 4.99157113e+00 4.97570756e+00 4.95981100e+00 4.94388198e+00 + 4.92792103e+00 4.91192870e+00 4.89590550e+00 4.87985196e+00 4.86376863e+00 + 4.84765602e+00 4.83151466e+00 4.81534508e+00 4.79914782e+00 4.78292338e+00 + 4.76667231e+00 4.75039512e+00 4.73409233e+00 4.71776448e+00 4.70141208e+00 + 4.68503565e+00 4.66863572e+00 4.65221280e+00 4.63576741e+00 4.61930007e+00 + 4.60281130e+00 4.58630161e+00 4.56977152e+00 4.55322154e+00 4.53665219e+00 + 4.52006398e+00 4.50345741e+00 4.48683300e+00 4.47019126e+00 4.45353270e+00 + 4.43685781e+00 4.42016712e+00 4.40346112e+00 4.38674032e+00 4.37000522e+00 + 4.35325631e+00 4.33649412e+00 4.31971912e+00 4.30293182e+00 4.28613271e+00 + 4.26932230e+00 4.25250108e+00 4.23566953e+00 4.21882815e+00 4.20197744e+00 + 4.18511788e+00 4.16824996e+00 4.15137416e+00 4.13449098e+00 4.11760089e+00 + 4.10070438e+00 4.08380193e+00 4.06689403e+00 4.04998114e+00 4.03306375e+00 + 4.01614234e+00 3.99921737e+00 3.98228932e+00 3.96535867e+00 3.94842588e+00 + 3.93149143e+00 3.91455578e+00 3.89761939e+00 3.88068273e+00 3.86374627e+00 + 3.84681046e+00 3.82987577e+00 3.81294265e+00 3.79601156e+00 3.77908296e+00 + 3.76215730e+00 3.74523503e+00 3.72831661e+00 3.71140247e+00 3.69449308e+00 + 3.67758887e+00 3.66069030e+00 3.64379779e+00 3.62691180e+00 3.61003276e+00 + 3.59316111e+00 3.57629729e+00 3.55944172e+00 3.54259485e+00 3.52575711e+00 + 3.50892892e+00 3.49211070e+00 3.47530290e+00 3.45850592e+00 3.44172019e+00 + 3.42494614e+00 3.40818418e+00 3.39143473e+00 3.37469820e+00 3.35797501e+00 + 3.34126556e+00 3.32457027e+00 3.30788955e+00 3.29122380e+00 3.27457343e+00 + 3.25793884e+00 3.24132042e+00 3.22471858e+00 3.20813372e+00 3.19156622e+00 + 3.17501649e+00 3.15848491e+00 3.14197187e+00 3.12547777e+00 3.10900298e+00 + 3.09254788e+00 3.07611287e+00 3.05969832e+00 3.04330461e+00 3.02693211e+00 + 3.01058120e+00 2.99425225e+00 2.97794563e+00 2.96166171e+00 2.94540085e+00 + 2.92916342e+00 2.91294978e+00 2.89676028e+00 2.88059530e+00 2.86445518e+00 + 2.84834028e+00 2.83225095e+00 2.81618754e+00 2.80015040e+00 2.78413987e+00 + 2.76815630e+00 2.75220003e+00 2.73627139e+00 2.72037074e+00 2.70449840e+00 + 2.68865471e+00 2.67283999e+00 2.65705459e+00 2.64129882e+00 2.62557301e+00 + 2.60987749e+00 2.59421257e+00 2.57857857e+00 2.56297582e+00 2.54740463e+00 + 2.53186530e+00 2.51635816e+00 2.50088350e+00 2.48544165e+00 2.47003289e+00 + 2.45465753e+00 2.43931588e+00 2.42400823e+00 2.40873488e+00 2.39349611e+00 + 2.37829223e+00 2.36312353e+00 2.34799028e+00 2.33289278e+00 2.31783130e+00 + 2.30280614e+00 2.28781756e+00 2.27286585e+00 2.25795128e+00 2.24307412e+00 + 2.22823464e+00 2.21343311e+00 2.19866980e+00 2.18394497e+00 2.16925889e+00 + 2.15461180e+00 2.14000397e+00 2.12543566e+00 2.11090712e+00 2.09641859e+00 + 2.08197033e+00 2.06756258e+00 2.05319559e+00 2.03886960e+00 2.02458485e+00 + 2.01034158e+00 1.99614002e+00 1.98198041e+00 1.96786297e+00 1.95378795e+00 + 1.93975556e+00 1.92576602e+00 1.91181957e+00 1.89791642e+00 1.88405680e+00 + 1.87024091e+00 1.85646897e+00 1.84274119e+00 1.82905778e+00 1.81541896e+00 + 1.80182492e+00 1.78827586e+00 1.77477200e+00 1.76131352e+00 1.74790063e+00 + 1.73453352e+00 1.72121237e+00 1.70793739e+00 1.69470876e+00 1.68152666e+00 + 1.66839128e+00 1.65530280e+00 1.64226140e+00 1.62926725e+00 1.61632054e+00 + 1.60342143e+00 1.59057009e+00 1.57776670e+00 1.56501142e+00 1.55230441e+00 + 1.53964583e+00 1.52703585e+00 1.51447463e+00 1.50196231e+00 1.48949906e+00 + 1.47708502e+00 1.46472034e+00 1.45240518e+00 1.44013967e+00 1.42792395e+00 + 1.41575818e+00 1.40364248e+00 1.39157700e+00 1.37956187e+00 1.36759721e+00 + 1.35568317e+00 1.34381987e+00 1.33200743e+00 1.32024598e+00 1.30853564e+00 + 1.29687653e+00 1.28526877e+00 1.27371247e+00 1.26220775e+00 1.25075472e+00 + 1.23935348e+00 1.22800415e+00 1.21670683e+00 1.20546162e+00 1.19426863e+00 + 1.18312795e+00 1.17203968e+00 1.16100391e+00 1.15002074e+00 1.13909026e+00 + 1.12821255e+00 1.11738771e+00 1.10661582e+00 1.09589696e+00 1.08523121e+00 + 1.07461865e+00 1.06405936e+00 1.05355341e+00 1.04310087e+00 1.03270182e+00 + 1.02235632e+00 1.01206445e+00 1.00182626e+00 9.91641811e-01 9.81511175e-01 + 9.71434406e-01 9.61411561e-01 9.51442695e-01 9.41527861e-01 9.31667110e-01 + 9.21860490e-01 9.12108049e-01 9.02409833e-01 8.92765883e-01 8.83176243e-01 + 8.73640950e-01 8.64160043e-01 8.54733558e-01 8.45361527e-01 8.36043983e-01 + 8.26780955e-01 8.17572473e-01 8.08418561e-01 7.99319245e-01 7.90274546e-01 + 7.81284486e-01 7.72349083e-01 7.63468354e-01 7.54642314e-01 7.45870976e-01 + 7.37154353e-01 7.28492452e-01 7.19885284e-01 7.11332852e-01 7.02835162e-01 + 6.94392216e-01 6.86004014e-01 6.77670556e-01 6.69391838e-01 6.61167856e-01 + 6.52998603e-01 6.44884072e-01 6.36824251e-01 6.28819131e-01 6.20868696e-01 + 6.12972932e-01 6.05131822e-01 5.97345348e-01 5.89613489e-01 5.81936223e-01 + 5.74313527e-01 5.66745375e-01 5.59231740e-01 5.51772594e-01 5.44367906e-01 + 5.37017644e-01 5.29721774e-01 5.22480262e-01 5.15293069e-01 5.08160159e-01 + 5.01081489e-01 4.94057020e-01 4.87086706e-01 4.80170504e-01 4.73308366e-01 + 4.66500245e-01 4.59746091e-01 4.53045851e-01 4.46399475e-01 4.39806906e-01 + 4.33268089e-01 4.26782967e-01 4.20351481e-01 4.13973569e-01 4.07649170e-01 + 4.01378220e-01 3.95160655e-01 3.88996407e-01 3.82885408e-01 3.76827589e-01 + 3.70822880e-01 3.64871206e-01 3.58972495e-01 3.53126672e-01 3.47333658e-01 + 3.41593377e-01 3.35905748e-01 3.30270691e-01 3.24688122e-01 3.19157958e-01 + 3.13680115e-01 3.08254504e-01 3.02881038e-01 2.97559628e-01 2.92290183e-01 + 2.87072611e-01 2.81906818e-01 2.76792711e-01 2.71730191e-01 2.66719163e-01 + 2.61759528e-01 2.56851184e-01 2.51994033e-01 2.47187969e-01 2.42432891e-01 + 2.37728692e-01 2.33075267e-01 2.28472507e-01 2.23920304e-01 2.19418548e-01 + 2.14967127e-01 2.10565929e-01 2.06214840e-01 2.01913745e-01 1.97662529e-01 + 1.93461073e-01 1.89309259e-01 1.85206967e-01 1.81154078e-01 1.77150468e-01 + 1.73196014e-01 1.69290593e-01 1.65434080e-01 1.61626346e-01 1.57867266e-01 + 1.54156710e-01 1.50494548e-01 1.46880650e-01 1.43314884e-01 1.39797116e-01 + 1.36327214e-01 1.32905040e-01 1.29530461e-01 1.26203337e-01 1.22923532e-01 + 1.19690905e-01 1.16505318e-01 1.13366628e-01 1.10274693e-01 1.07229370e-01 + 1.04230516e-01 1.01277984e-01 9.83716292e-02 9.55113045e-02 9.26968618e-02 + 8.99281522e-02 8.72050260e-02 8.45273325e-02 8.18949202e-02 7.93076365e-02 + 7.67653281e-02 7.42678408e-02 7.18150195e-02 6.94067082e-02 6.70427500e-02 + 6.47229875e-02 6.24472620e-02 6.02154142e-02 5.80272842e-02 5.58827108e-02 + 5.37815325e-02 5.17235866e-02 4.97087099e-02 4.77367383e-02 4.58075070e-02 + 4.39208503e-02 4.20766021e-02 4.02745951e-02 3.85146615e-02 3.67966330e-02 + 3.51203401e-02 3.34856129e-02 3.18922809e-02 3.03401727e-02 2.88291163e-02 + 2.73589389e-02 2.59294673e-02 2.45405275e-02 2.31919449e-02 2.18835440e-02 + 2.06151492e-02 1.93865837e-02 1.81976705e-02 1.70482319e-02 1.59380895e-02 + 1.48670644e-02 1.38349771e-02 1.28416476e-02 1.18868951e-02 1.09705385e-02 + 1.00923962e-02 9.25228574e-03 8.45002444e-03 7.68542897e-03 6.95831551e-03 + 6.26849972e-03 5.61579679e-03 5.00002140e-03 4.42098778e-03 3.87850967e-03 + 3.37240035e-03 2.90247264e-03 2.46853892e-03 2.07041115e-03 1.70790084e-03 + 1.38081907e-03 1.08897653e-03 8.32183493e-04 6.10249837e-04 4.22985050e-04 + 2.70198238e-04 1.51698135e-04 6.72931116e-05 1.67911789e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 9.99979585e-01 9.99876811e-01 9.99687440e-01 9.99411505e-01 + 9.99049054e-01 9.98600150e-01 9.98064871e-01 9.97443309e-01 9.96735573e-01 + 9.95941783e-01 9.95062079e-01 9.94096613e-01 9.93045551e-01 9.91909077e-01 + 9.90687386e-01 9.89380690e-01 9.87989216e-01 9.86513205e-01 9.84952913e-01 + 9.83308609e-01 9.81580579e-01 9.79769122e-01 9.77874552e-01 9.75897197e-01 + 9.73837399e-01 9.71695516e-01 9.69471919e-01 9.67166992e-01 9.64781135e-01 + 9.62314761e-01 9.59768298e-01 9.57142187e-01 9.54436882e-01 9.51652852e-01 + 9.48790581e-01 9.45850562e-01 9.42833306e-01 9.39739336e-01 9.36569187e-01 + 9.33323409e-01 9.30002564e-01 9.26607226e-01 9.23137986e-01 9.19595442e-01 + 9.15980210e-01 9.12292915e-01 9.08534196e-01 9.04704704e-01 9.00805103e-01 + 8.96836069e-01 8.92798288e-01 8.88692460e-01 8.84519297e-01 8.80279522e-01 + 8.75973868e-01 8.71603083e-01 8.67167922e-01 8.62669155e-01 8.58107560e-01 + 8.53483929e-01 8.48799061e-01 8.44053769e-01 8.39248875e-01 8.34385211e-01 + 8.29463619e-01 8.24484952e-01 8.19450073e-01 8.14359853e-01 8.09215176e-01 + 8.04016931e-01 7.98766019e-01 7.93463351e-01 7.88109844e-01 7.82706427e-01 + 7.77254034e-01 7.71753611e-01 7.66206111e-01 7.60612494e-01 7.54973730e-01 + 7.49290796e-01 7.43564675e-01 7.37796360e-01 7.31986850e-01 7.26137152e-01 + 7.20248279e-01 7.14321251e-01 7.08357095e-01 7.02356844e-01 6.96321537e-01 + 6.90252221e-01 6.84149946e-01 6.78015770e-01 6.71850755e-01 6.65655970e-01 + 6.59432486e-01 6.53181384e-01 6.46903745e-01 6.40600657e-01 6.34273212e-01 + 6.27922506e-01 6.21549639e-01 6.15155716e-01 6.08741843e-01 6.02309133e-01 + 5.95858698e-01 5.89391658e-01 5.82909132e-01 5.76412243e-01 5.69902117e-01 + 5.63379881e-01 5.56846666e-01 5.50303602e-01 5.43751824e-01 5.37192467e-01 + 5.30626667e-01 5.24055561e-01 5.17480288e-01 5.10901987e-01 5.04321797e-01 + 4.97740858e-01 4.91160311e-01 4.84581295e-01 4.78004950e-01 4.71432416e-01 + 4.64864830e-01 4.58303331e-01 4.51749056e-01 4.45203139e-01 4.38666715e-01 + 4.32140916e-01 4.25626873e-01 4.19125714e-01 4.12638565e-01 4.06166550e-01 + 3.99710791e-01 3.93272405e-01 3.86852508e-01 3.80452213e-01 3.74072627e-01 + 3.67714857e-01 3.61380003e-01 3.55069163e-01 3.48783430e-01 3.42523893e-01 + 3.36291637e-01 3.30087741e-01 3.23913280e-01 3.17769323e-01 3.11656936e-01 + 3.05577176e-01 2.99531097e-01 2.93519746e-01 2.87544165e-01 2.81605389e-01 + 2.75704447e-01 2.69842361e-01 2.64020146e-01 2.58238812e-01 2.52499359e-01 + 2.46802782e-01 2.41150068e-01 2.35542196e-01 2.29980137e-01 2.24464856e-01 + 2.18997307e-01 2.13578438e-01 2.08209187e-01 2.02890485e-01 1.97623253e-01 + 1.92408404e-01 1.87246840e-01 1.82139456e-01 1.77087137e-01 1.72090758e-01 + 1.67151185e-01 1.62269273e-01 1.57445868e-01 1.52681806e-01 1.47977912e-01 + 1.43335000e-01 1.38753876e-01 1.34235332e-01 1.29780152e-01 1.25389107e-01 + 1.21062958e-01 1.16802455e-01 1.12608335e-01 1.08481325e-01 1.04422140e-01 + 1.00431484e-01 9.65100466e-02 9.26585085e-02 8.88775365e-02 8.51677856e-02 + 8.15298985e-02 7.79645054e-02 7.44722238e-02 7.10536590e-02 6.77094029e-02 + 6.44400350e-02 6.12461217e-02 5.81282163e-02 5.50868588e-02 5.21225762e-02 + 4.92358820e-02 4.64272763e-02 4.36972455e-02 4.10462627e-02 3.84747871e-02 + 3.59832642e-02 3.35721256e-02 3.12417889e-02 2.89926579e-02 2.68251222e-02 + 2.47395574e-02 2.27363246e-02 2.08157709e-02 1.89782291e-02 1.72240175e-02 + 1.55534399e-02 1.39667858e-02 1.24643300e-02 1.10463329e-02 9.71303993e-03 + 8.46468223e-03 7.30147603e-03 6.22362282e-03 5.23130933e-03 4.32470747e-03 + 3.50397429e-03 2.76925197e-03 2.12066779e-03 1.55833411e-03 1.08234835e-03 + 6.92792954e-04 3.89735421e-04 1.73228247e-04 4.33089373e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 9.99980173e-01 9.99906079e-01 9.99777111e-01 9.99593281e-01 9.99354611e-01 + 9.99061126e-01 9.98712858e-01 9.98309847e-01 9.97852135e-01 9.97339773e-01 + 9.96772819e-01 9.96151332e-01 9.95475383e-01 9.94745045e-01 9.93960398e-01 + 9.93121529e-01 9.92228529e-01 9.91281497e-01 9.90280537e-01 9.89225758e-01 + 9.88117276e-01 9.86955213e-01 9.85739696e-01 9.84470859e-01 9.83148841e-01 + 9.81773788e-01 9.80345850e-01 9.78865184e-01 9.77331952e-01 9.75746323e-01 + 9.74108471e-01 9.72418575e-01 9.70676822e-01 9.68883402e-01 9.67038512e-01 + 9.65142355e-01 9.63195139e-01 9.61197077e-01 9.59148389e-01 9.57049300e-01 + 9.54900041e-01 9.52700846e-01 9.50451958e-01 9.48153624e-01 9.45806095e-01 + 9.43409630e-01 9.40964491e-01 9.38470947e-01 9.35929271e-01 9.33339743e-01 + 9.30702647e-01 9.28018273e-01 9.25286914e-01 9.22508871e-01 9.19684449e-01 + 9.16813958e-01 9.13897713e-01 9.10936034e-01 9.07929245e-01 9.04877679e-01 + 9.01781668e-01 8.98641553e-01 8.95457679e-01 8.92230395e-01 8.88960056e-01 + 8.85647020e-01 8.82291651e-01 8.78894318e-01 8.75455393e-01 8.71975254e-01 + 8.68454283e-01 8.64892866e-01 8.61291395e-01 8.57650264e-01 8.53969874e-01 + 8.50250628e-01 8.46492934e-01 8.42697206e-01 8.38863860e-01 8.34993316e-01 + 8.31085999e-01 8.27142339e-01 8.23162768e-01 8.19147724e-01 8.15097646e-01 + 8.11012979e-01 8.06894173e-01 8.02741678e-01 7.98555951e-01 7.94337451e-01 + 7.90086642e-01 7.85803989e-01 7.81489963e-01 7.77145038e-01 7.72769691e-01 + 7.68364401e-01 7.63929652e-01 7.59465932e-01 7.54973730e-01 7.50453539e-01 + 7.45905856e-01 7.41331179e-01 7.36730012e-01 7.32102858e-01 7.27450226e-01 + 7.22772626e-01 7.18070573e-01 7.13344581e-01 7.08595171e-01 7.03822863e-01 + 6.99028181e-01 6.94211651e-01 6.89373803e-01 6.84515167e-01 6.79636277e-01 + 6.74737667e-01 6.69819877e-01 6.64883445e-01 6.59928914e-01 6.54956827e-01 + 6.49967731e-01 6.44962172e-01 6.39940701e-01 6.34903869e-01 6.29852227e-01 + 6.24786332e-01 6.19706739e-01 6.14614006e-01 6.09508691e-01 6.04391355e-01 + 5.99262560e-01 5.94122870e-01 5.88972847e-01 5.83813057e-01 5.78644067e-01 + 5.73466445e-01 5.68280758e-01 5.63087575e-01 5.57887468e-01 5.52681006e-01 + 5.47468761e-01 5.42251306e-01 5.37029212e-01 5.31803054e-01 5.26573405e-01 + 5.21340839e-01 5.16105930e-01 5.10869253e-01 5.05631384e-01 5.00392895e-01 + 4.95154364e-01 4.89916365e-01 4.84679473e-01 4.79444262e-01 4.74211308e-01 + 4.68981185e-01 4.63754466e-01 4.58531727e-01 4.53313539e-01 4.48100476e-01 + 4.42893110e-01 4.37692013e-01 4.32497756e-01 4.27310908e-01 4.22132040e-01 + 4.16961719e-01 4.11800513e-01 4.06648989e-01 4.01507712e-01 3.96377247e-01 + 3.91258157e-01 3.86151003e-01 3.81056347e-01 3.75974747e-01 3.70906762e-01 + 3.65852947e-01 3.60813858e-01 3.55790047e-01 3.50782067e-01 3.45790466e-01 + 3.40815793e-01 3.35858594e-01 3.30919413e-01 3.25998792e-01 3.21097271e-01 + 3.16215388e-01 3.11353680e-01 3.06512680e-01 3.01692919e-01 2.96894926e-01 + 2.92119228e-01 2.87366350e-01 2.82636813e-01 2.77931136e-01 2.73249835e-01 + 2.68593425e-01 2.63962417e-01 2.59357319e-01 2.54778637e-01 2.50226873e-01 + 2.45702526e-01 2.41206094e-01 2.36738071e-01 2.32298945e-01 2.27889206e-01 + 2.23509336e-01 2.19159817e-01 2.14841126e-01 2.10553738e-01 2.06298122e-01 + 2.02074746e-01 1.97884074e-01 1.93726565e-01 1.89602676e-01 1.85512860e-01 + 1.81457565e-01 1.77437238e-01 1.73452318e-01 1.69503243e-01 1.65590448e-01 + 1.61714361e-01 1.57875408e-01 1.54074010e-01 1.50310585e-01 1.46585546e-01 + 1.42899302e-01 1.39252256e-01 1.35644811e-01 1.32077361e-01 1.28550298e-01 + 1.25064010e-01 1.21618879e-01 1.18215283e-01 1.14853596e-01 1.11534187e-01 + 1.08257420e-01 1.05023655e-01 1.01833247e-01 9.86865462e-02 9.55838981e-02 + 9.25256431e-02 8.95121170e-02 8.65436505e-02 8.36205696e-02 8.07431951e-02 + 7.79118428e-02 7.51268235e-02 7.23884430e-02 6.96970019e-02 6.70527955e-02 + 6.44561143e-02 6.19072431e-02 5.94064618e-02 5.69540448e-02 5.45502615e-02 + 5.21953757e-02 4.98896458e-02 4.76333250e-02 4.54266610e-02 4.32698959e-02 + 4.11632665e-02 3.91070041e-02 3.71013344e-02 3.51464776e-02 3.32426482e-02 + 3.13900552e-02 2.95889020e-02 2.78393864e-02 2.61417002e-02 2.44960300e-02 + 2.29025563e-02 2.13614541e-02 1.98728925e-02 1.84370350e-02 1.70540391e-02 + 1.57240567e-02 1.44472338e-02 1.32237104e-02 1.20536210e-02 1.09370940e-02 + 9.87425188e-03 8.86521137e-03 7.91008322e-03 7.00897228e-03 6.16197747e-03 + 5.36919175e-03 4.63070216e-03 3.94658975e-03 3.31692963e-03 2.74179092e-03 + 2.22123674e-03 1.75532423e-03 1.34410455e-03 9.87622837e-04 6.85918213e-04 + 4.39023800e-04 2.46966702e-04 1.09767999e-04 2.74427529e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99998611e-01 + 9.99988405e-01 9.99968287e-01 9.99938255e-01 9.99898310e-01 9.99848454e-01 + 9.99788687e-01 9.99719010e-01 9.99639425e-01 9.99549934e-01 9.99450537e-01 + 9.99341238e-01 9.99222038e-01 9.99092940e-01 9.98953946e-01 9.98805059e-01 + 9.98646282e-01 9.98477618e-01 9.98299070e-01 9.98110643e-01 9.97912339e-01 + 9.97704162e-01 9.97486118e-01 9.97258209e-01 9.97020441e-01 9.96772819e-01 + 9.96515346e-01 9.96248029e-01 9.95970873e-01 9.95683882e-01 9.95387064e-01 + 9.95080423e-01 9.94763966e-01 9.94437699e-01 9.94101628e-01 9.93755761e-01 + 9.93400104e-01 9.93034664e-01 9.92659448e-01 9.92274464e-01 9.91879719e-01 + 9.91475222e-01 9.91060979e-01 9.90637001e-01 9.90203294e-01 9.89759867e-01 + 9.89306730e-01 9.88843892e-01 9.88371360e-01 9.87889146e-01 9.87397257e-01 + 9.86895705e-01 9.86384499e-01 9.85863649e-01 9.85333166e-01 9.84793060e-01 + 9.84243341e-01 9.83684021e-01 9.83115111e-01 9.82536622e-01 9.81948565e-01 + 9.81350952e-01 9.80743796e-01 9.80127107e-01 9.79500899e-01 9.78865184e-01 + 9.78219973e-01 9.77565281e-01 9.76901120e-01 9.76227503e-01 9.75544444e-01 + 9.74851956e-01 9.74150052e-01 9.73438748e-01 9.72718056e-01 9.71987991e-01 + 9.71248568e-01 9.70499802e-01 9.69741706e-01 9.68974297e-01 9.68197589e-01 + 9.67411598e-01 9.66616339e-01 9.65811829e-01 9.64998082e-01 9.64175116e-01 + 9.63342946e-01 9.62501590e-01 9.61651063e-01 9.60791382e-01 9.59922566e-01 + 9.59044630e-01 9.58157592e-01 9.57261471e-01 9.56356283e-01 9.55442046e-01 + 9.54518780e-01 9.53586501e-01 9.52645229e-01 9.51694982e-01 9.50735778e-01 + 9.49767638e-01 9.48790581e-01 9.47804624e-01 9.46809789e-01 9.45806095e-01 + 9.44793561e-01 9.43772209e-01 9.42742057e-01 9.41703127e-01 9.40655439e-01 + 9.39599014e-01 9.38533873e-01 9.37460037e-01 9.36377527e-01 9.35286364e-01 + 9.34186571e-01 9.33078170e-01 9.31961181e-01 9.30835628e-01 9.29701532e-01 + 9.28558916e-01 9.27407803e-01 9.26248215e-01 9.25080177e-01 9.23903709e-01 + 9.22718837e-01 9.21525584e-01 9.20323972e-01 9.19114027e-01 9.17895771e-01 + 9.16669230e-01 9.15434427e-01 9.14191387e-01 9.12940135e-01 9.11680695e-01 + 9.10413093e-01 9.09137353e-01 9.07853501e-01 9.06561562e-01 9.05261562e-01 + 9.03953527e-01 9.02637482e-01 9.01313454e-01 8.99981469e-01 8.98641553e-01 + 8.97293733e-01 8.95938036e-01 8.94574488e-01 8.93203117e-01 8.91823950e-01 + 8.90437014e-01 8.89042336e-01 8.87639945e-01 8.86229867e-01 8.84812132e-01 + 8.83386767e-01 8.81953800e-01 8.80513260e-01 8.79065175e-01 8.77609575e-01 + 8.76146487e-01 8.74675941e-01 8.73197967e-01 8.71712593e-01 8.70219848e-01 + 8.68719763e-01 8.67212368e-01 8.65697691e-01 8.64175763e-01 8.62646615e-01 + 8.61110277e-01 8.59566778e-01 8.58016150e-01 8.56458424e-01 8.54893630e-01 + 8.53321799e-01 8.51742963e-01 8.50157152e-01 8.48564399e-01 8.46964734e-01 + 8.45358191e-01 8.43744799e-01 8.42124592e-01 8.40497601e-01 8.38863860e-01 + 8.37223399e-01 8.35576252e-01 8.33922451e-01 8.32262030e-01 8.30595020e-01 + 8.28921456e-01 8.27241370e-01 8.25554796e-01 8.23861766e-01 8.22162316e-01 + 8.20456477e-01 8.18744285e-01 8.17025773e-01 8.15300975e-01 8.13569925e-01 + 8.11832658e-01 8.10089208e-01 8.08339610e-01 8.06583898e-01 8.04822108e-01 + 8.03054273e-01 8.01280430e-01 7.99500613e-01 7.97714858e-01 7.95923200e-01 + 7.94125674e-01 7.92322317e-01 7.90513163e-01 7.88698249e-01 7.86877612e-01 + 7.85051286e-01 7.83219308e-01 7.81381715e-01 7.79538542e-01 7.77689827e-01 + 7.75835606e-01 7.73975916e-01 7.72110794e-01 7.70240277e-01 7.68364401e-01 + 7.66483204e-01 7.64596724e-01 7.62704997e-01 7.60808061e-01 7.58905954e-01 + 7.56998714e-01 7.55086378e-01 7.53168985e-01 7.51246571e-01 7.49319177e-01 + 7.47386838e-01 7.45449595e-01 7.43507485e-01 7.41560547e-01 7.39608819e-01 + 7.37652340e-01 7.35691150e-01 7.33725286e-01 7.31754788e-01 7.29779695e-01 + 7.27800045e-01 7.25815880e-01 7.23827236e-01 7.21834155e-01 7.19836676e-01 + 7.17834837e-01 7.15828680e-01 7.13818243e-01 7.11803566e-01 7.09784691e-01 + 7.07761655e-01 7.05734500e-01 7.03703266e-01 7.01667993e-01 6.99628722e-01 + 6.97585492e-01 6.95538345e-01 6.93487320e-01 6.91432460e-01 6.89373803e-01 + 6.87311392e-01 6.85245267e-01 6.83175469e-01 6.81102039e-01 6.79025018e-01 + 6.76944447e-01 6.74860369e-01 6.72772823e-01 6.70681851e-01 6.68587496e-01 + 6.66489797e-01 6.64388798e-01 6.62284539e-01 6.60177062e-01 6.58066410e-01 + 6.55952623e-01 6.53835744e-01 6.51715815e-01 6.49592878e-01 6.47466975e-01 + 6.45338148e-01 6.43206439e-01 6.41071891e-01 6.38934546e-01 6.36794446e-01 + 6.34651634e-01 6.32506151e-01 6.30358042e-01 6.28207348e-01 6.26054112e-01 + 6.23898376e-01 6.21740184e-01 6.19579579e-01 6.17416602e-01 6.15251297e-01 + 6.13083707e-01 6.10913875e-01 6.08741843e-01 6.06567656e-01 6.04391355e-01 + 6.02212985e-01 6.00032588e-01 5.97850208e-01 5.95665887e-01 5.93479670e-01 + 5.91291599e-01 5.89101719e-01 5.86910071e-01 5.84716701e-01 5.82521650e-01 + 5.80324964e-01 5.78126684e-01 5.75926856e-01 5.73725522e-01 5.71522727e-01 + 5.69318513e-01 5.67112925e-01 5.64906006e-01 5.62697800e-01 5.60488352e-01 + 5.58277703e-01 5.56065900e-01 5.53852984e-01 5.51639001e-01 5.49423994e-01 + 5.47208007e-01 5.44991085e-01 5.42773270e-01 5.40554606e-01 5.38335139e-01 + 5.36114912e-01 5.33893969e-01 5.31672353e-01 5.29450110e-01 5.27227283e-01 + 5.25003915e-01 5.22780052e-01 5.20555738e-01 5.18331016e-01 5.16105930e-01 + 5.13880525e-01 5.11654845e-01 5.09428934e-01 5.07202836e-01 5.04976595e-01 + 5.02750255e-01 5.00523861e-01 4.98297456e-01 4.96071085e-01 4.93844792e-01 + 4.91618621e-01 4.89392617e-01 4.87166822e-01 4.84941282e-01 4.82716041e-01 + 4.80491142e-01 4.78266630e-01 4.76042549e-01 4.73818943e-01 4.71595856e-01 + 4.69373333e-01 4.67151416e-01 4.64930151e-01 4.62709582e-01 4.60489751e-01 + 4.58270704e-01 4.56052485e-01 4.53835136e-01 4.51618704e-01 4.49403230e-01 + 4.47188760e-01 4.44975336e-01 4.42763004e-01 4.40551807e-01 4.38341788e-01 + 4.36132992e-01 4.33925462e-01 4.31719242e-01 4.29514376e-01 4.27310908e-01 + 4.25108881e-01 4.22908339e-01 4.20709325e-01 4.18511884e-01 4.16316058e-01 + 4.14121891e-01 4.11929427e-01 4.09738710e-01 4.07549782e-01 4.05362687e-01 + 4.03177469e-01 4.00994170e-01 3.98812834e-01 3.96633505e-01 3.94456225e-01 + 3.92281038e-01 3.90107987e-01 3.87937114e-01 3.85768464e-01 3.83602078e-01 + 3.81438000e-01 3.79276273e-01 3.77116940e-01 3.74960043e-01 3.72805626e-01 + 3.70653730e-01 3.68504399e-01 3.66357675e-01 3.64213601e-01 3.62072219e-01 + 3.59933573e-01 3.57797703e-01 3.55664653e-01 3.53534464e-01 3.51407180e-01 + 3.49282842e-01 3.47161492e-01 3.45043173e-01 3.42927926e-01 3.40815793e-01 + 3.38706817e-01 3.36601038e-01 3.34498500e-01 3.32399243e-01 3.30303309e-01 + 3.28210740e-01 3.26121577e-01 3.24035861e-01 3.21953634e-01 3.19874938e-01 + 3.17799813e-01 3.15728301e-01 3.13660442e-01 3.11596278e-01 3.09535850e-01 + 3.07479198e-01 3.05426363e-01 3.03377386e-01 3.01332308e-01 2.99291168e-01 + 2.97254009e-01 2.95220869e-01 2.93191789e-01 2.91166810e-01 2.89145972e-01 + 2.87129315e-01 2.85116878e-01 2.83108701e-01 2.81104825e-01 2.79105290e-01 + 2.77110134e-01 2.75119397e-01 2.73133119e-01 2.71151340e-01 2.69174098e-01 + 2.67201433e-01 2.65233383e-01 2.63269988e-01 2.61311288e-01 2.59357319e-01 + 2.57408122e-01 2.55463735e-01 2.53524197e-01 2.51589546e-01 2.49659820e-01 + 2.47735057e-01 2.45815297e-01 2.43900576e-01 2.41990933e-01 2.40086406e-01 + 2.38187032e-01 2.36292850e-01 2.34403896e-01 2.32520208e-01 2.30641823e-01 + 2.28768780e-01 2.26901114e-01 2.25038863e-01 2.23182064e-01 2.21330753e-01 + 2.19484968e-01 2.17644744e-01 2.15810120e-01 2.13981129e-01 2.12157810e-01 + 2.10340199e-01 2.08528330e-01 2.06722240e-01 2.04921966e-01 2.03127542e-01 + 2.01339005e-01 1.99556389e-01 1.97779730e-01 1.96009063e-01 1.94244424e-01 + 1.92485848e-01 1.90733368e-01 1.88987021e-01 1.87246840e-01 1.85512860e-01 + 1.83785116e-01 1.82063641e-01 1.80348471e-01 1.78639638e-01 1.76937177e-01 + 1.75241122e-01 1.73551506e-01 1.71868362e-01 1.70191725e-01 1.68521627e-01 + 1.66858101e-01 1.65201180e-01 1.63550898e-01 1.61907287e-01 1.60270379e-01 + 1.58640208e-01 1.57016804e-01 1.55400201e-01 1.53790431e-01 1.52187525e-01 + 1.50591516e-01 1.49002434e-01 1.47420312e-01 1.45845181e-01 1.44277071e-01 + 1.42716015e-01 1.41162043e-01 1.39615186e-01 1.38075474e-01 1.36542938e-01 + 1.35017609e-01 1.33499516e-01 1.31988690e-01 1.30485161e-01 1.28988959e-01 + 1.27500113e-01 1.26018652e-01 1.24544607e-01 1.23078006e-01 1.21618879e-01 + 1.20167254e-01 1.18723160e-01 1.17286625e-01 1.15857679e-01 1.14436350e-01 + 1.13022665e-01 1.11616654e-01 1.10218343e-01 1.08827760e-01 1.07444933e-01 + 1.06069890e-01 1.04702657e-01 1.03343262e-01 1.01991732e-01 1.00648094e-01 + 9.93123732e-02 9.79845974e-02 9.66647925e-02 9.53529849e-02 9.40492003e-02 + 9.27534648e-02 9.14658040e-02 9.01862434e-02 8.89148084e-02 8.76515242e-02 + 8.63964159e-02 8.51495083e-02 8.39108261e-02 8.26803940e-02 8.14582364e-02 + 8.02443773e-02 7.90388410e-02 7.78416513e-02 7.66528320e-02 7.54724066e-02 + 7.43003985e-02 7.31368310e-02 7.19817272e-02 7.08351099e-02 6.96970019e-02 + 6.85674257e-02 6.74464038e-02 6.63339584e-02 6.52301115e-02 6.41348850e-02 + 6.30483006e-02 6.19703799e-02 6.09011443e-02 5.98406149e-02 5.87888128e-02 + 5.77457588e-02 5.67114736e-02 5.56859778e-02 5.46692916e-02 5.36614352e-02 + 5.26624286e-02 5.16722916e-02 5.06910438e-02 4.97187048e-02 4.87552937e-02 + 4.78008297e-02 4.68553316e-02 4.59188183e-02 4.49913084e-02 4.40728201e-02 + 4.31633717e-02 4.22629813e-02 4.13716667e-02 4.04894456e-02 3.96163354e-02 + 3.87523535e-02 3.78975170e-02 3.70518428e-02 3.62153478e-02 3.53880485e-02 + 3.45699613e-02 3.37611024e-02 3.29614879e-02 3.21711336e-02 3.13900552e-02 + 3.06182682e-02 2.98557879e-02 2.91026294e-02 2.83588076e-02 2.76243373e-02 + 2.68992330e-02 2.61835092e-02 2.54771800e-02 2.47802594e-02 2.40927612e-02 + 2.34146991e-02 2.27460866e-02 2.20869367e-02 2.14372628e-02 2.07970775e-02 + 2.01663937e-02 1.95452238e-02 1.89335801e-02 1.83314748e-02 1.77389197e-02 + 1.71559268e-02 1.65825074e-02 1.60186730e-02 1.54644348e-02 1.49198037e-02 + 1.43847906e-02 1.38594060e-02 1.33436604e-02 1.28375640e-02 1.23411268e-02 + 1.18543587e-02 1.13772693e-02 1.09098682e-02 1.04521644e-02 1.00041672e-02 + 9.56588541e-03 9.13732771e-03 8.71850261e-03 8.30941841e-03 7.91008322e-03 + 7.52050497e-03 7.14069137e-03 6.77064996e-03 6.41038807e-03 6.05991285e-03 + 5.71923124e-03 5.38835001e-03 5.06727570e-03 4.75601470e-03 4.45457316e-03 + 4.16295707e-03 3.88117220e-03 3.60922415e-03 3.34711831e-03 3.09485987e-03 + 2.85245383e-03 2.61990501e-03 2.39721801e-03 2.18439724e-03 1.98144694e-03 + 1.78837111e-03 1.60517360e-03 1.43185803e-03 1.26842784e-03 1.11488626e-03 + 9.71236350e-04 8.37480951e-04 7.13622715e-04 5.99664099e-04 4.95607361e-04 + 4.01454566e-04 3.17207579e-04 2.42868072e-04 1.78437519e-04 1.23917196e-04 + 7.93081847e-05 4.46113698e-05 1.98274393e-05 4.95688439e-06 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99999383e-01 9.99962914e-01 + 9.99870183e-01 9.99721201e-01 9.99515984e-01 9.99254555e-01 9.98936943e-01 + 9.98563186e-01 9.98133323e-01 9.97647405e-01 9.97105485e-01 9.96507624e-01 + 9.95853891e-01 9.95144357e-01 9.94379104e-01 9.93558218e-01 9.92681790e-01 + 9.91749919e-01 9.90762710e-01 9.89720275e-01 9.88622731e-01 9.87470200e-01 + 9.86262813e-01 9.85000706e-01 9.83684021e-01 9.82312906e-01 9.80887514e-01 + 9.79408008e-01 9.77874552e-01 9.76287320e-01 9.74646490e-01 9.72952247e-01 + 9.71204782e-01 9.69404291e-01 9.67550976e-01 9.65645047e-01 9.63686718e-01 + 9.61676209e-01 9.59613746e-01 9.57499563e-01 9.55333895e-01 9.53116988e-01 + 9.50849090e-01 9.48530457e-01 9.46161350e-01 9.43742036e-01 9.41272786e-01 + 9.38753878e-01 9.36185597e-01 9.33568230e-01 9.30902073e-01 9.28187426e-01 + 9.25424593e-01 9.22613887e-01 9.19755623e-01 9.16850122e-01 9.13897713e-01 + 9.10898726e-01 9.07853501e-01 9.04762378e-01 9.01625707e-01 8.98443839e-01 + 8.95217134e-01 8.91945954e-01 8.88630668e-01 8.85271647e-01 8.81869272e-01 + 8.78423923e-01 8.74935990e-01 8.71405864e-01 8.67833943e-01 8.64220629e-01 + 8.60566328e-01 8.56871452e-01 8.53136416e-01 8.49361641e-01 8.45547552e-01 + 8.41694577e-01 8.37803150e-01 8.33873710e-01 8.29906698e-01 8.25902560e-01 + 8.21861749e-01 8.17784717e-01 8.13671924e-01 8.09523833e-01 8.05340911e-01 + 8.01123627e-01 7.96872458e-01 7.92587881e-01 7.88270378e-01 7.83920435e-01 + 7.79538542e-01 7.75125192e-01 7.70680882e-01 7.66206111e-01 7.61701383e-01 + 7.57167206e-01 7.52604088e-01 7.48012545e-01 7.43393092e-01 7.38746250e-01 + 7.34072541e-01 7.29372491e-01 7.24646629e-01 7.19895487e-01 7.15119600e-01 + 7.10319505e-01 7.05495742e-01 7.00648855e-01 6.95779388e-01 6.90887889e-01 + 6.85974909e-01 6.81041001e-01 6.76086720e-01 6.71112623e-01 6.66119271e-01 + 6.61107225e-01 6.56077049e-01 6.51029310e-01 6.45964575e-01 6.40883414e-01 + 6.35786399e-01 6.30674104e-01 6.25547103e-01 6.20405975e-01 6.15251297e-01 + 6.10083649e-01 6.04903614e-01 5.99711773e-01 5.94508712e-01 5.89295015e-01 + 5.84071270e-01 5.78838064e-01 5.73595986e-01 5.68345626e-01 5.63087575e-01 + 5.57822425e-01 5.52550768e-01 5.47273197e-01 5.41990307e-01 5.36702691e-01 + 5.31410945e-01 5.26115664e-01 5.20817444e-01 5.15516882e-01 5.10214573e-01 + 5.04911115e-01 4.99607105e-01 4.94303138e-01 4.88999813e-01 4.83697725e-01 + 4.78397472e-01 4.73099650e-01 4.67804856e-01 4.62513684e-01 4.57226730e-01 + 4.51944590e-01 4.46667858e-01 4.41397128e-01 4.36132992e-01 4.30876043e-01 + 4.25626873e-01 4.20386072e-01 4.15154231e-01 4.09931937e-01 4.04719779e-01 + 3.99518343e-01 3.94328215e-01 3.89149978e-01 3.83984215e-01 3.78831508e-01 + 3.73692436e-01 3.68567577e-01 3.63457510e-01 3.58362807e-01 3.53284044e-01 + 3.48221791e-01 3.43176617e-01 3.38149092e-01 3.33139780e-01 3.28149245e-01 + 3.23178049e-01 3.18226751e-01 3.13295908e-01 3.08386076e-01 3.03497806e-01 + 2.98631650e-01 2.93788154e-01 2.88967863e-01 2.84171320e-01 2.79399065e-01 + 2.74651635e-01 2.69929564e-01 2.65233383e-01 2.60563621e-01 2.55920803e-01 + 2.51305453e-01 2.46718088e-01 2.42159226e-01 2.37629379e-01 2.33129058e-01 + 2.28658768e-01 2.24219012e-01 2.19810291e-01 2.15433101e-01 2.11087933e-01 + 2.06775278e-01 2.02495620e-01 1.98249440e-01 1.94037218e-01 1.89859426e-01 + 1.85716535e-01 1.81609011e-01 1.77537316e-01 1.73501909e-01 1.69503243e-01 + 1.65541769e-01 1.61617933e-01 1.57732175e-01 1.53884934e-01 1.50076642e-01 + 1.46307727e-01 1.42578614e-01 1.38889723e-01 1.35241469e-01 1.31634261e-01 + 1.28068507e-01 1.24544607e-01 1.21062958e-01 1.17623952e-01 1.14227975e-01 + 1.10875410e-01 1.07566635e-01 1.04302020e-01 1.01081935e-01 9.79067409e-02 + 9.47767953e-02 9.16924504e-02 8.86540533e-02 8.56619461e-02 8.27164652e-02 + 7.98179423e-02 7.69667035e-02 7.41630697e-02 7.14073563e-02 6.86998735e-02 + 6.60409259e-02 6.34308128e-02 6.08698279e-02 5.83582593e-02 5.58963898e-02 + 5.34844963e-02 5.11228502e-02 4.88117174e-02 4.65513579e-02 4.43420261e-02 + 4.21839706e-02 4.00774342e-02 3.80226540e-02 3.60198612e-02 3.40692813e-02 + 3.21711336e-02 3.03256319e-02 2.85329837e-02 2.67933909e-02 2.51070491e-02 + 2.34741482e-02 2.18948719e-02 2.03693980e-02 1.88978980e-02 1.74805376e-02 + 1.61174762e-02 1.48088674e-02 1.35548582e-02 1.23555900e-02 1.12111975e-02 + 1.01218096e-02 9.08754885e-03 8.10853169e-03 7.18486826e-03 6.31666251e-03 + 5.50401213e-03 4.74700858e-03 4.04573705e-03 3.40027644e-03 2.81069940e-03 + 2.27707227e-03 1.79945510e-03 1.37790165e-03 1.01245934e-03 7.03169297e-04 + 4.50066336e-04 2.53178934e-04 1.12529247e-04 2.81331032e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99975710e-01 + 9.99895217e-01 9.99758386e-01 9.99565232e-01 9.99315778e-01 9.99010051e-01 + 9.98648086e-01 9.98229923e-01 9.97755610e-01 9.97225201e-01 9.96638754e-01 + 9.95996336e-01 9.95298020e-01 9.94543884e-01 9.93734013e-01 9.92868499e-01 + 9.91947438e-01 9.90970935e-01 9.89939101e-01 9.88852050e-01 9.87709905e-01 + 9.86512796e-01 9.85260858e-01 9.83954230e-01 9.82593062e-01 9.81177505e-01 + 9.79707720e-01 9.78183872e-01 9.76606132e-01 9.74974680e-01 9.73289698e-01 + 9.71551377e-01 9.69759912e-01 9.67915505e-01 9.66018364e-01 9.64068704e-01 + 9.62066743e-01 9.60012707e-01 9.57906828e-01 9.55749343e-01 9.53540496e-01 + 9.51280535e-01 9.48969714e-01 9.46608295e-01 9.44196544e-01 9.41734731e-01 + 9.39223136e-01 9.36662040e-01 9.34051732e-01 9.31392507e-01 9.28684665e-01 + 9.25928510e-01 9.23124352e-01 9.20272509e-01 9.17373302e-01 9.14427057e-01 + 9.11434106e-01 9.08394786e-01 9.05309441e-01 9.02178417e-01 8.99002068e-01 + 8.95780752e-01 8.92514832e-01 8.89204675e-01 8.85850655e-01 8.82453150e-01 + 8.79012542e-01 8.75529221e-01 8.72003577e-01 8.68436008e-01 8.64826917e-01 + 8.61176710e-01 8.57485799e-01 8.53754599e-01 8.49983531e-01 8.46173020e-01 + 8.42323496e-01 8.38435392e-01 8.34509147e-01 8.30545202e-01 8.26544005e-01 + 8.22506007e-01 8.18431663e-01 8.14321431e-01 8.10175776e-01 8.05995164e-01 + 8.01780066e-01 7.97530958e-01 7.93248319e-01 7.88932630e-01 7.84584379e-01 + 7.80204055e-01 7.75792153e-01 7.71349168e-01 7.66875603e-01 7.62371961e-01 + 7.57838750e-01 7.53276481e-01 7.48685668e-01 7.44066827e-01 7.39420481e-01 + 7.34747152e-01 7.30047367e-01 7.25321656e-01 7.20570551e-01 7.15794588e-01 + 7.10994305e-01 7.06170243e-01 7.01322946e-01 6.96452960e-01 6.91560833e-01 + 6.86647118e-01 6.81712368e-01 6.76757139e-01 6.71781989e-01 6.66787480e-01 + 6.61774174e-01 6.56742636e-01 6.51693433e-01 6.46627134e-01 6.41544311e-01 + 6.36445535e-01 6.31331383e-01 6.26202429e-01 6.21059252e-01 6.15902432e-01 + 6.10732550e-01 6.05550188e-01 6.00355931e-01 5.95150364e-01 5.89934073e-01 + 5.84707647e-01 5.79471675e-01 5.74226746e-01 5.68973451e-01 5.63712384e-01 + 5.58444136e-01 5.53169301e-01 5.47888474e-01 5.42602250e-01 5.37311225e-01 + 5.32015995e-01 5.26717157e-01 5.21415308e-01 5.16111045e-01 5.10804967e-01 + 5.05497671e-01 5.00189755e-01 4.94881818e-01 4.89574458e-01 4.84268272e-01 + 4.78963860e-01 4.73661819e-01 4.68362745e-01 4.63067237e-01 4.57775892e-01 + 4.52489305e-01 4.47208073e-01 4.41932790e-01 4.36664051e-01 4.31402451e-01 + 4.26148581e-01 4.20903034e-01 4.15666401e-01 4.10439273e-01 4.05222238e-01 + 4.00015885e-01 3.94820800e-01 3.89637568e-01 3.84466774e-01 3.79309001e-01 + 3.74164830e-01 3.69034840e-01 3.63919610e-01 3.58819716e-01 3.53735733e-01 + 3.48668234e-01 3.43617790e-01 3.38584970e-01 3.33570341e-01 3.28574469e-01 + 3.23597917e-01 3.18641245e-01 3.13705012e-01 3.08789775e-01 3.03896087e-01 + 2.99024499e-01 2.94175562e-01 2.89349820e-01 2.84547819e-01 2.79770100e-01 + 2.75017200e-01 2.70289655e-01 2.65587999e-01 2.60912761e-01 2.56264468e-01 + 2.51643644e-01 2.47050809e-01 2.42486482e-01 2.37951176e-01 2.33445403e-01 + 2.28969671e-01 2.24524484e-01 2.20110342e-01 2.15727744e-01 2.11377184e-01 + 2.07059151e-01 2.02774132e-01 1.98522611e-01 1.94305066e-01 1.90121972e-01 + 1.85973802e-01 1.81861023e-01 1.77784097e-01 1.73743485e-01 1.69739642e-01 + 1.65773019e-01 1.61844064e-01 1.57953218e-01 1.54100921e-01 1.50287606e-01 + 1.46513704e-01 1.42779640e-01 1.39085834e-01 1.35432703e-01 1.31820659e-01 + 1.28250109e-01 1.24721454e-01 1.21235093e-01 1.17791419e-01 1.14390819e-01 + 1.11033677e-01 1.07720372e-01 1.04451277e-01 1.01226759e-01 9.80471834e-02 + 9.49129074e-02 9.18242846e-02 8.87816629e-02 8.57853854e-02 8.28357897e-02 + 7.99332082e-02 7.70779680e-02 7.42703909e-02 7.15107933e-02 6.87994863e-02 + 6.61367753e-02 6.35229606e-02 6.09583365e-02 5.84431923e-02 5.59778113e-02 + 5.35624714e-02 5.11974448e-02 4.88829981e-02 4.66193920e-02 4.44068816e-02 + 4.22457164e-02 4.01361399e-02 3.80783899e-02 3.60726981e-02 3.41192908e-02 + 3.22183880e-02 3.03702040e-02 2.85749470e-02 2.68328194e-02 2.51440175e-02 + 2.35087316e-02 2.19271461e-02 2.03994392e-02 1.89257830e-02 1.75063436e-02 + 1.61412811e-02 1.48307492e-02 1.35748956e-02 1.23738620e-02 1.12277835e-02 + 1.01367895e-02 9.10100279e-03 8.12054017e-03 7.19551214e-03 6.32602293e-03 + 5.51217055e-03 4.75404670e-03 4.05173684e-03 3.40532012e-03 2.81486937e-03 + 2.28045115e-03 1.80212569e-03 1.37994689e-03 1.01396233e-03 7.04213259e-04 + 4.50734584e-04 2.53554873e-04 1.12696347e-04 2.81748805e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99999383e-01 + 9.99986934e-01 9.99958482e-01 9.99914026e-01 9.99853569e-01 9.99777111e-01 + 9.99684655e-01 9.99576205e-01 9.99451764e-01 9.99311336e-01 9.99154925e-01 + 9.98982536e-01 9.98794176e-01 9.98589849e-01 9.98369562e-01 9.98133323e-01 + 9.97881139e-01 9.97613018e-01 9.97328969e-01 9.97029001e-01 9.96713123e-01 + 9.96381345e-01 9.96033679e-01 9.95670135e-01 9.95290724e-01 9.94895460e-01 + 9.94484354e-01 9.94057421e-01 9.93614672e-01 9.93156124e-01 9.92681790e-01 + 9.92191685e-01 9.91685825e-01 9.91164227e-01 9.90626907e-01 9.90073883e-01 + 9.89505171e-01 9.88920791e-01 9.88320760e-01 9.87705099e-01 9.87073826e-01 + 9.86426963e-01 9.85764529e-01 9.85086546e-01 9.84393036e-01 9.83684021e-01 + 9.82959523e-01 9.82219566e-01 9.81464174e-01 9.80693370e-01 9.79907179e-01 + 9.79105627e-01 9.78288739e-01 9.77456541e-01 9.76609060e-01 9.75746323e-01 + 9.74868358e-01 9.73975192e-01 9.73066855e-01 9.72143375e-01 9.71204782e-01 + 9.70251106e-01 9.69282377e-01 9.68298628e-01 9.67299888e-01 9.66286190e-01 + 9.65257566e-01 9.64214050e-01 9.63155675e-01 9.62082474e-01 9.60994483e-01 + 9.59891735e-01 9.58774266e-01 9.57642113e-01 9.56495310e-01 9.55333895e-01 + 9.54157905e-01 9.52967378e-01 9.51762352e-01 9.50542865e-01 9.49308956e-01 + 9.48060665e-01 9.46798032e-01 9.45521098e-01 9.44229902e-01 9.42924487e-01 + 9.41604894e-01 9.40271166e-01 9.38923345e-01 9.37561474e-01 9.36185597e-01 + 9.34795758e-01 9.33392001e-01 9.31974372e-01 9.30542915e-01 9.29097677e-01 + 9.27638704e-01 9.26166043e-01 9.24679740e-01 9.23179843e-01 9.21666401e-01 + 9.20139461e-01 9.18599073e-01 9.17045285e-01 9.15478149e-01 9.13897713e-01 + 9.12304028e-01 9.10697146e-01 9.09077118e-01 9.07443995e-01 9.05797831e-01 + 9.04138676e-01 9.02466586e-01 9.00781613e-01 8.99083811e-01 8.97373235e-01 + 8.95649939e-01 8.93913979e-01 8.92165409e-01 8.90404287e-01 8.88630668e-01 + 8.86844609e-01 8.85046167e-01 8.83235400e-01 8.81412366e-01 8.79577124e-01 + 8.77729731e-01 8.75870247e-01 8.73998732e-01 8.72115246e-01 8.70219848e-01 + 8.68312600e-01 8.66393562e-01 8.64462797e-01 8.62520365e-01 8.60566328e-01 + 8.58600751e-01 8.56623695e-01 8.54635223e-01 8.52635400e-01 8.50624289e-01 + 8.48601955e-01 8.46568462e-01 8.44523876e-01 8.42468262e-01 8.40401685e-01 + 8.38324213e-01 8.36235911e-01 8.34136846e-01 8.32027086e-01 8.29906698e-01 + 8.27775749e-01 8.25634309e-01 8.23482445e-01 8.21320227e-01 8.19147724e-01 + 8.16965004e-01 8.14772139e-01 8.12569199e-01 8.10356253e-01 8.08133373e-01 + 8.05900629e-01 8.03658094e-01 8.01405839e-01 7.99143936e-01 7.96872458e-01 + 7.94591477e-01 7.92301066e-01 7.90001299e-01 7.87692249e-01 7.85373990e-01 + 7.83046597e-01 7.80710143e-01 7.78364704e-01 7.76010355e-01 7.73647171e-01 + 7.71275227e-01 7.68894601e-01 7.66505367e-01 7.64107602e-01 7.61701383e-01 + 7.59286788e-01 7.56863893e-01 7.54432775e-01 7.51993514e-01 7.49546186e-01 + 7.47090871e-01 7.44627646e-01 7.42156591e-01 7.39677784e-01 7.37191306e-01 + 7.34697235e-01 7.32195652e-01 7.29686636e-01 7.27170269e-01 7.24646629e-01 + 7.22115799e-01 7.19577859e-01 7.17032890e-01 7.14480975e-01 7.11922193e-01 + 7.09356629e-01 7.06784363e-01 7.04205478e-01 7.01620056e-01 6.99028181e-01 + 6.96429935e-01 6.93825401e-01 6.91214663e-01 6.88597804e-01 6.85974909e-01 + 6.83346060e-01 6.80711343e-01 6.78070841e-01 6.75424640e-01 6.72772823e-01 + 6.70115475e-01 6.67452683e-01 6.64784530e-01 6.62111103e-01 6.59432486e-01 + 6.56748767e-01 6.54060030e-01 6.51366361e-01 6.48667847e-01 6.45964575e-01 + 6.43256630e-01 6.40544100e-01 6.37827071e-01 6.35105630e-01 6.32379864e-01 + 6.29649862e-01 6.26915709e-01 6.24177493e-01 6.21435303e-01 6.18689226e-01 + 6.15939349e-01 6.13185762e-01 6.10428551e-01 6.07667806e-01 6.04903614e-01 + 6.02136064e-01 5.99365245e-01 5.96591245e-01 5.93814154e-01 5.91034060e-01 + 5.88251051e-01 5.85465218e-01 5.82676649e-01 5.79885434e-01 5.77091661e-01 + 5.74295421e-01 5.71496803e-01 5.68695896e-01 5.65892790e-01 5.63087575e-01 + 5.60280341e-01 5.57471177e-01 5.54660174e-01 5.51847421e-01 5.49033008e-01 + 5.46217026e-01 5.43399564e-01 5.40580713e-01 5.37760563e-01 5.34939205e-01 + 5.32116728e-01 5.29293223e-01 5.26468780e-01 5.23643491e-01 5.20817444e-01 + 5.17990731e-01 5.15163442e-01 5.12335668e-01 5.09507499e-01 5.06679025e-01 + 5.03850338e-01 5.01021528e-01 4.98192685e-01 4.95363899e-01 4.92535262e-01 + 4.89706864e-01 4.86878796e-01 4.84051147e-01 4.81224009e-01 4.78397472e-01 + 4.75571627e-01 4.72746563e-01 4.69922372e-01 4.67099144e-01 4.64276968e-01 + 4.61455937e-01 4.58636139e-01 4.55817665e-01 4.53000605e-01 4.50185050e-01 + 4.47371089e-01 4.44558813e-01 4.41748311e-01 4.38939674e-01 4.36132992e-01 + 4.33328354e-01 4.30525850e-01 4.27725570e-01 4.24927603e-01 4.22132040e-01 + 4.19338968e-01 4.16548479e-01 4.13760661e-01 4.10975604e-01 4.08193396e-01 + 4.05414127e-01 4.02637885e-01 3.99864760e-01 3.97094840e-01 3.94328215e-01 + 3.91564971e-01 3.88805199e-01 3.86048986e-01 3.83296420e-01 3.80547590e-01 + 3.77802584e-01 3.75061489e-01 3.72324393e-01 3.69591384e-01 3.66862550e-01 + 3.64137977e-01 3.61417753e-01 3.58701965e-01 3.55990699e-01 3.53284044e-01 + 3.50582085e-01 3.47884908e-01 3.45192601e-01 3.42505249e-01 3.39822938e-01 + 3.37145754e-01 3.34473784e-01 3.31807111e-01 3.29145823e-01 3.26490003e-01 + 3.23839737e-01 3.21195110e-01 3.18556207e-01 3.15923112e-01 3.13295908e-01 + 3.10674681e-01 3.08059514e-01 3.05450491e-01 3.02847696e-01 3.00251211e-01 + 2.97661120e-01 2.95077506e-01 2.92500451e-01 2.89930039e-01 2.87366350e-01 + 2.84809468e-01 2.82259474e-01 2.79716449e-01 2.77180476e-01 2.74651635e-01 + 2.72130007e-01 2.69615674e-01 2.67108715e-01 2.64609210e-01 2.62117240e-01 + 2.59632885e-01 2.57156224e-01 2.54687336e-01 2.52226300e-01 2.49773196e-01 + 2.47328101e-01 2.44891094e-01 2.42462253e-01 2.40041655e-01 2.37629379e-01 + 2.35225501e-01 2.32830098e-01 2.30443248e-01 2.28065025e-01 2.25695507e-01 + 2.23334770e-01 2.20982888e-01 2.18639937e-01 2.16305993e-01 2.13981129e-01 + 2.11665421e-01 2.09358943e-01 2.07061767e-01 2.04773968e-01 2.02495620e-01 + 2.00226794e-01 1.97967564e-01 1.95718001e-01 1.93478179e-01 1.91248168e-01 + 1.89028040e-01 1.86817867e-01 1.84617718e-01 1.82427664e-01 1.80247775e-01 + 1.78078122e-01 1.75918773e-01 1.73769798e-01 1.71631265e-01 1.69503243e-01 + 1.67385801e-01 1.65279004e-01 1.63182923e-01 1.61097622e-01 1.59023170e-01 + 1.56959632e-01 1.54907074e-01 1.52865563e-01 1.50835164e-01 1.48815940e-01 + 1.46807959e-01 1.44811282e-01 1.42825975e-01 1.40852101e-01 1.38889723e-01 + 1.36938904e-01 1.34999707e-01 1.33072193e-01 1.31156424e-01 1.29252461e-01 + 1.27360366e-01 1.25480199e-01 1.23612020e-01 1.21755889e-01 1.19911865e-01 + 1.18080008e-01 1.16260376e-01 1.14453027e-01 1.12658019e-01 1.10875410e-01 + 1.09105257e-01 1.07347616e-01 1.05602543e-01 1.03870095e-01 1.02150327e-01 + 1.00443293e-01 9.87490497e-02 9.70676498e-02 9.53991475e-02 9.37435963e-02 + 9.21010491e-02 9.04715586e-02 8.88551768e-02 8.72519555e-02 8.56619461e-02 + 8.40851993e-02 8.25217658e-02 8.09716956e-02 7.94350381e-02 7.79118428e-02 + 7.64021582e-02 7.49060328e-02 7.34235143e-02 7.19546504e-02 7.04994879e-02 + 6.90580735e-02 6.76304533e-02 6.62166731e-02 6.48167779e-02 6.34308128e-02 + 6.20588220e-02 6.07008494e-02 5.93569385e-02 5.80271324e-02 5.67114736e-02 + 5.54100042e-02 5.41227659e-02 5.28497998e-02 5.15911468e-02 5.03468471e-02 + 4.91169405e-02 4.79014665e-02 4.67004638e-02 4.55139711e-02 4.43420261e-02 + 4.31846665e-02 4.20419294e-02 4.09138512e-02 3.98004680e-02 3.87018157e-02 + 3.76179292e-02 3.65488433e-02 3.54945922e-02 3.44552096e-02 3.34307289e-02 + 3.24211828e-02 3.14266036e-02 3.04470233e-02 2.94824730e-02 2.85329837e-02 + 2.75985858e-02 2.66793093e-02 2.57751834e-02 2.48862372e-02 2.40124992e-02 + 2.31539972e-02 2.23107588e-02 2.14828110e-02 2.06701802e-02 1.98728925e-02 + 1.90909735e-02 1.83244480e-02 1.75733407e-02 1.68376756e-02 1.61174762e-02 + 1.54127657e-02 1.47235665e-02 1.40499008e-02 1.33917900e-02 1.27492553e-02 + 1.21223172e-02 1.15109958e-02 1.09153106e-02 1.03352808e-02 9.77092489e-03 + 9.22226091e-03 8.68930645e-03 8.17207857e-03 7.67059382e-03 7.18486826e-03 + 6.71491743e-03 6.26075638e-03 5.82239964e-03 5.39986125e-03 4.99315473e-03 + 4.60229310e-03 4.22728887e-03 3.86815404e-03 3.52490011e-03 3.19753807e-03 + 2.88607840e-03 2.59053106e-03 2.31090551e-03 2.04721071e-03 1.79945510e-03 + 1.56764661e-03 1.35179266e-03 1.15190015e-03 9.67975486e-04 8.00024557e-04 + 6.48052736e-04 5.12064889e-04 3.92065368e-04 2.88058015e-04 2.00046158e-04 + 1.28032615e-04 7.20196905e-05 3.20091782e-05 8.00235860e-06 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 5.14330820e-07 5.21272731e-07 5.28308337e-07 5.35438902e-07 5.42665708e-07 + 5.49990054e-07 5.57413257e-07 5.64936650e-07 5.72561587e-07 5.80289437e-07 + 5.88121589e-07 5.96059452e-07 6.04104453e-07 6.12258036e-07 6.20521668e-07 + 6.28896834e-07 6.37385040e-07 6.45987811e-07 6.54706693e-07 6.63543253e-07 + 6.72499081e-07 6.81575785e-07 6.90774997e-07 7.00098371e-07 7.09547582e-07 + 7.19124329e-07 7.28830332e-07 7.38667338e-07 7.48637114e-07 7.58741451e-07 + 7.68982166e-07 7.79361100e-07 7.89880118e-07 8.00541111e-07 8.11345996e-07 + 8.22296713e-07 8.33395232e-07 8.44643548e-07 8.56043682e-07 8.67597683e-07 + 8.79307628e-07 8.91175622e-07 9.03203799e-07 9.15394319e-07 9.27749374e-07 + 9.40271185e-07 9.52962003e-07 9.65824108e-07 9.78859813e-07 9.92071461e-07 + 1.00546143e-06 1.01903211e-06 1.03278597e-06 1.04672545e-06 1.06085308e-06 + 1.07517139e-06 1.08968295e-06 1.10439038e-06 1.11929631e-06 1.13440343e-06 + 1.14971444e-06 1.16523211e-06 1.18095922e-06 1.19689860e-06 1.21305311e-06 + 1.22942566e-06 1.24601919e-06 1.26283668e-06 1.27988116e-06 1.29715568e-06 + 1.31466336e-06 1.33240734e-06 1.35039081e-06 1.36861700e-06 1.38708919e-06 + 1.40581070e-06 1.42478490e-06 1.44401519e-06 1.46350502e-06 1.48325792e-06 + 1.50327741e-06 1.52356711e-06 1.54413066e-06 1.56497176e-06 1.58609414e-06 + 1.60750162e-06 1.62919803e-06 1.65118728e-06 1.67347331e-06 1.69606014e-06 + 1.71895182e-06 1.74215248e-06 1.76566627e-06 1.78949742e-06 1.81365023e-06 + 1.83812902e-06 1.86293820e-06 1.88808224e-06 1.91356564e-06 1.93939299e-06 + 1.96556893e-06 1.99209816e-06 2.01898547e-06 2.04623566e-06 2.07385366e-06 + 2.10184441e-06 2.13021296e-06 2.15896439e-06 2.18810388e-06 2.21763667e-06 + 2.24756806e-06 2.27790343e-06 2.30864824e-06 2.33980801e-06 2.37138834e-06 + 2.40339491e-06 2.43583348e-06 2.46870986e-06 2.50202998e-06 2.53579982e-06 + 2.57002545e-06 2.60471302e-06 2.63986877e-06 2.67549902e-06 2.71161016e-06 + 2.74820870e-06 2.78530121e-06 2.82289435e-06 2.86099489e-06 2.89960967e-06 + 2.93874563e-06 2.97840981e-06 3.01860934e-06 3.05935144e-06 3.10064343e-06 + 3.14249274e-06 3.18490689e-06 3.22789350e-06 3.27146030e-06 3.31561513e-06 + 3.36036590e-06 3.40572068e-06 3.45168761e-06 3.49827496e-06 3.54549109e-06 + 3.59334450e-06 3.64184379e-06 3.69099766e-06 3.74081497e-06 3.79130466e-06 + 3.84247581e-06 3.89433762e-06 3.94689940e-06 4.00017061e-06 4.05416081e-06 + 4.10887972e-06 4.16433718e-06 4.22054314e-06 4.27750771e-06 4.33524113e-06 + 4.39375377e-06 4.45305616e-06 4.51315895e-06 4.57407295e-06 4.63580911e-06 + 4.69837851e-06 4.76179241e-06 4.82606221e-06 4.89119946e-06 4.95721586e-06 + 5.02412329e-06 5.09193376e-06 5.16065947e-06 5.23031277e-06 5.30090617e-06 + 5.37245238e-06 5.44496424e-06 5.51845479e-06 5.59293724e-06 5.66842498e-06 + 5.74493158e-06 5.82247079e-06 5.90105654e-06 5.98070296e-06 6.06142436e-06 + 6.14323526e-06 6.22615036e-06 6.31018456e-06 6.39535297e-06 6.48167090e-06 + 6.56915386e-06 6.65781757e-06 6.74767798e-06 6.83875123e-06 6.93105369e-06 + 7.02460195e-06 7.11941284e-06 7.21550338e-06 7.31289086e-06 7.41159278e-06 + 7.51162687e-06 7.61301112e-06 7.71576375e-06 7.81990322e-06 7.92544827e-06 + 8.03241786e-06 8.14083121e-06 8.25070782e-06 8.36206742e-06 8.47493005e-06 + 8.58931598e-06 8.70524577e-06 8.82274026e-06 8.94182058e-06 9.06250812e-06 + 9.18482457e-06 9.30879193e-06 9.43443248e-06 9.56176879e-06 9.69082375e-06 + 9.82162057e-06 9.95418275e-06 1.00885341e-05 1.02246988e-05 1.03627013e-05 + 1.05025665e-05 1.06443194e-05 1.07879855e-05 1.09335907e-05 1.10811611e-05 + 1.12307232e-05 1.13823040e-05 1.15359307e-05 1.16916309e-05 1.18494326e-05 + 1.20093641e-05 1.21714542e-05 1.23357320e-05 1.25022271e-05 1.26709694e-05 + 1.28419891e-05 1.30153172e-05 1.31909846e-05 1.33690230e-05 1.35494644e-05 + 1.37323412e-05 1.39176862e-05 1.41055329e-05 1.42959150e-05 1.44888666e-05 + 1.46844225e-05 1.48826178e-05 1.50834881e-05 1.52870696e-05 1.54933988e-05 + 1.57025128e-05 1.59144493e-05 1.61292462e-05 1.63469423e-05 1.65675766e-05 + 1.67911888e-05 1.70178190e-05 1.72475081e-05 1.74802973e-05 1.77162285e-05 + 1.79553440e-05 1.81976869e-05 1.84433006e-05 1.86922294e-05 1.89445180e-05 + 1.92002117e-05 1.94593565e-05 1.97219989e-05 1.99881863e-05 2.02579664e-05 + 2.05313877e-05 2.08084993e-05 2.10893511e-05 2.13739936e-05 2.16624779e-05 + 2.19548558e-05 2.22511800e-05 2.25515036e-05 2.28558807e-05 2.31643660e-05 + 2.34770149e-05 2.37938836e-05 2.41150291e-05 2.44405091e-05 2.47703821e-05 + 2.51047073e-05 2.54435449e-05 2.57869559e-05 2.61350018e-05 2.64877453e-05 + 2.68452498e-05 2.72075795e-05 2.75747995e-05 2.79469759e-05 2.83241756e-05 + 2.87064663e-05 2.90939168e-05 2.94865967e-05 2.98845766e-05 3.02879280e-05 + 3.06967235e-05 3.11110364e-05 3.15309413e-05 3.19565137e-05 3.23878300e-05 + 3.28249678e-05 3.32680056e-05 3.37170230e-05 3.41721009e-05 3.46333209e-05 + 3.51007660e-05 3.55745202e-05 3.60546687e-05 3.65412977e-05 3.70344947e-05 + 3.75343484e-05 3.80409486e-05 3.85543864e-05 3.90747540e-05 3.96021450e-05 + 4.01366543e-05 4.06783777e-05 4.12274128e-05 4.17838582e-05 4.23478140e-05 + 4.29193814e-05 4.34986633e-05 4.40857637e-05 4.46807882e-05 4.52838437e-05 + 4.58950387e-05 4.65144829e-05 4.71422878e-05 4.77785661e-05 4.84234323e-05 + 4.90770022e-05 4.97393933e-05 5.04107247e-05 5.10911171e-05 5.17806927e-05 + 5.24795755e-05 5.31878910e-05 5.39057667e-05 5.46333316e-05 5.53707164e-05 + 5.61180536e-05 5.68754776e-05 5.76431246e-05 5.84211325e-05 5.92096411e-05 + 6.00087922e-05 6.08187295e-05 6.16395984e-05 6.24715466e-05 6.33147236e-05 + 6.41692809e-05 6.50353721e-05 6.59131530e-05 6.68027813e-05 6.77044168e-05 + 6.86182217e-05 6.95443602e-05 7.04829988e-05 7.14343061e-05 7.23984533e-05 + 7.33756135e-05 7.43659624e-05 7.53696780e-05 7.63869407e-05 7.74179335e-05 + 7.84628415e-05 7.95218526e-05 8.05951571e-05 8.16829480e-05 8.27854208e-05 + 8.39027737e-05 8.50352074e-05 8.61829256e-05 8.73461345e-05 8.85250432e-05 + 8.97198636e-05 9.09308104e-05 9.21581014e-05 9.34019571e-05 9.46626011e-05 + 9.59402600e-05 9.72351634e-05 9.85475441e-05 9.98776379e-05 1.01225684e-04 + 1.02591925e-04 1.03976605e-04 1.05379975e-04 1.06802286e-04 1.08243794e-04 + 1.09704758e-04 1.11185441e-04 1.12686108e-04 1.14207029e-04 1.15748479e-04 + 1.17310733e-04 1.18894074e-04 1.20498784e-04 1.22125153e-04 1.23773474e-04 + 1.25444041e-04 1.27137157e-04 1.28853124e-04 1.30592251e-04 1.32354852e-04 + 1.34141242e-04 1.35951743e-04 1.37786681e-04 1.39646384e-04 1.41531188e-04 + 1.43441431e-04 1.45377457e-04 1.47339613e-04 1.49328252e-04 1.51343732e-04 + 1.53386415e-04 1.55456667e-04 1.57554862e-04 1.59681377e-04 1.61836592e-04 + 1.64020897e-04 1.66234683e-04 1.68478349e-04 1.70752297e-04 1.73056937e-04 + 1.75392682e-04 1.77759953e-04 1.80159175e-04 1.82590779e-04 1.85055202e-04 + 1.87552888e-04 1.90084285e-04 1.92649848e-04 1.95250038e-04 1.97885323e-04 + 2.00556177e-04 2.03263079e-04 2.06006515e-04 2.08786981e-04 2.11604973e-04 + 2.14461001e-04 2.17355576e-04 2.20289219e-04 2.23262457e-04 2.26275825e-04 + 2.29329865e-04 2.32425124e-04 2.35562161e-04 2.38741538e-04 2.41963826e-04 + 2.45229606e-04 2.48539465e-04 2.51893996e-04 2.55293803e-04 2.58739497e-04 + 2.62231698e-04 2.65771033e-04 2.69358138e-04 2.72993659e-04 2.76678248e-04 + 2.80412567e-04 2.84197289e-04 2.88033093e-04 2.91920669e-04 2.95860715e-04 + 2.99853940e-04 3.03901062e-04 3.08002807e-04 3.12159914e-04 3.16373129e-04 + 3.20643209e-04 3.24970923e-04 3.29357048e-04 3.33802372e-04 3.38307695e-04 + 3.42873826e-04 3.47501586e-04 3.52191806e-04 3.56945331e-04 3.61763013e-04 + 3.66645720e-04 3.71594328e-04 3.76609728e-04 3.81692821e-04 3.86844520e-04 + 3.92065751e-04 3.97357453e-04 4.02720577e-04 4.08156087e-04 4.13664960e-04 + 4.19248186e-04 4.24906769e-04 4.30641726e-04 4.36454087e-04 4.42344897e-04 + 4.48315216e-04 4.54366115e-04 4.60498684e-04 4.66714024e-04 4.73013252e-04 + 4.79397500e-04 4.85867917e-04 4.92425665e-04 4.99071922e-04 5.05807884e-04 + 5.12634761e-04 5.19553780e-04 5.26566185e-04 5.33673236e-04 5.40876211e-04 + 5.48176405e-04 5.55575129e-04 5.63073713e-04 5.70673505e-04 5.78375872e-04 + 5.86182197e-04 5.94093885e-04 6.02112356e-04 6.10239052e-04 6.18475434e-04 + 6.26822982e-04 6.35283197e-04 6.43857599e-04 6.52547729e-04 6.61355151e-04 + 6.70281445e-04 6.79328218e-04 6.88497095e-04 6.97789724e-04 7.07207775e-04 + 7.16752941e-04 7.26426939e-04 7.36231506e-04 7.46168405e-04 7.56239422e-04 + 7.66446368e-04 7.76791076e-04 7.87275407e-04 7.97901244e-04 8.08670498e-04 + 8.19585105e-04 8.30647025e-04 8.41858248e-04 8.53220789e-04 8.64736690e-04 + 8.76408020e-04 8.88236878e-04 9.00225390e-04 9.12375711e-04 9.24690024e-04 + 9.37170543e-04 9.49819512e-04 9.62639203e-04 9.75631922e-04 9.88800002e-04 + 1.00214581e-03 1.01567175e-03 1.02938025e-03 1.04327377e-03 1.05735481e-03 + 1.07162590e-03 1.08608961e-03 1.10074854e-03 1.11560531e-03 1.13066261e-03 + 1.14592314e-03 1.16138964e-03 1.17706488e-03 1.19295170e-03 1.20905294e-03 + 1.22537150e-03 1.24191031e-03 1.25867234e-03 1.27566061e-03 1.29287818e-03 + 1.31032812e-03 1.32801359e-03 1.34593776e-03 1.36410385e-03 1.38251512e-03 + 1.40117490e-03 1.42008652e-03 1.43925340e-03 1.45867896e-03 1.47836672e-03 + 1.49832020e-03 1.51854299e-03 1.53903873e-03 1.55981110e-03 1.58086383e-03 + 1.60220071e-03 1.62382558e-03 1.64574231e-03 1.66795486e-03 1.69046721e-03 + 1.71328340e-03 1.73640755e-03 1.75984380e-03 1.78359637e-03 1.80766953e-03 + 1.83206760e-03 1.85679497e-03 1.88185609e-03 1.90725546e-03 1.93299764e-03 + 1.95908726e-03 1.98552901e-03 2.01232765e-03 2.03948799e-03 2.06701491e-03 + 2.09491336e-03 2.12318836e-03 2.15184498e-03 2.18088838e-03 2.21032378e-03 + 2.24015647e-03 2.27039180e-03 2.30103523e-03 2.33209225e-03 2.36356844e-03 + 2.39546947e-03 2.42780106e-03 2.46056903e-03 2.49377928e-03 2.52743776e-03 + 2.56155052e-03 2.59612371e-03 2.63116353e-03 2.66667628e-03 2.70266835e-03 + 2.73914620e-03 2.77611639e-03 2.81358556e-03 2.85156046e-03 2.89004791e-03 + 2.92905481e-03 2.96858820e-03 3.00865516e-03 3.04926291e-03 3.09041874e-03 + 3.13213004e-03 3.17440433e-03 3.21724919e-03 3.26067232e-03 3.30468154e-03 + 3.34928475e-03 3.39448996e-03 3.44030531e-03 3.48673903e-03 3.53379947e-03 + 3.58149507e-03 3.62983443e-03 3.67882622e-03 3.72847925e-03 3.77880244e-03 + 3.82980485e-03 3.88149563e-03 3.93388409e-03 3.98697963e-03 4.04079180e-03 + 4.09533027e-03 4.15060484e-03 4.20662546e-03 4.26340218e-03 4.32094522e-03 + 4.37926491e-03 4.43837175e-03 4.49827634e-03 4.55898947e-03 4.62052205e-03 + 4.68288512e-03 4.74608991e-03 4.81014777e-03 4.87507022e-03 4.94086893e-03 + 5.00755572e-03 5.07514258e-03 5.14364166e-03 5.21306527e-03 5.28342588e-03 + 5.35473616e-03 5.42700890e-03 5.50025711e-03 5.57449395e-03 5.64973276e-03 + 5.72598707e-03 5.80327058e-03 5.88159719e-03 5.96098097e-03 6.04143618e-03 + 6.12297730e-03 6.20561898e-03 6.28937607e-03 6.37426363e-03 6.46029692e-03 + 6.54749139e-03 6.63586273e-03 6.72542681e-03 6.81619973e-03 6.90819782e-03 + 7.00143760e-03 7.09593584e-03 7.19170951e-03 7.28877585e-03 7.38715228e-03 + 7.48685650e-03 7.58790642e-03 7.69032021e-03 7.79411628e-03 7.89931328e-03 + 8.00593013e-03 8.11398598e-03 8.22350025e-03 8.33449264e-03 8.44698309e-03 + 8.56099182e-03 8.67653932e-03 8.79364636e-03 8.91233400e-03 9.03262356e-03 + 9.15453666e-03 9.27809523e-03 9.40332146e-03 9.53023786e-03 9.65886725e-03 + 9.78923276e-03 9.92135780e-03 1.00552661e-02 1.01909818e-02 1.03285293e-02 + 1.04679332e-02 1.06092186e-02 1.07524110e-02 1.08975360e-02 1.10446198e-02 + 1.11936888e-02 1.13447697e-02 1.14978898e-02 1.16530766e-02 1.18103578e-02 + 1.19697620e-02 1.21313176e-02 1.22950537e-02 1.24609997e-02 1.26291855e-02 + 1.27996413e-02 1.29723978e-02 1.31474859e-02 1.33249372e-02 1.35047836e-02 + 1.36870573e-02 1.38717912e-02 1.40590185e-02 1.42487727e-02 1.44410881e-02 + 1.46359991e-02 1.48335408e-02 1.50337487e-02 1.52366589e-02 1.54423077e-02 + 1.56507322e-02 1.58619697e-02 1.60760584e-02 1.62930365e-02 1.65129433e-02 + 1.67358181e-02 1.69617010e-02 1.71906327e-02 1.74226542e-02 1.76578074e-02 + 1.78961344e-02 1.81376781e-02 1.83824819e-02 1.86305898e-02 1.88820465e-02 + 1.91368970e-02 1.93951872e-02 1.96569636e-02 1.99222732e-02 2.01911636e-02 + 2.04636833e-02 2.07398811e-02 2.10198068e-02 2.13035106e-02 2.15910436e-02 + 2.18824574e-02 2.21778044e-02 2.24771377e-02 2.27805111e-02 2.30879791e-02 + 2.33995970e-02 2.37154208e-02 2.40355073e-02 2.43599140e-02 2.46886991e-02 + 2.50219219e-02 2.53596422e-02 2.57019207e-02 2.60488189e-02 2.64003992e-02 + 2.67567248e-02 2.71178596e-02 2.74838687e-02 2.78548179e-02 2.82307737e-02 + 2.86118038e-02 2.89979766e-02 2.93893616e-02 2.97860291e-02 3.01880504e-02 + 3.05954978e-02 3.10084445e-02 3.14269648e-02 3.18511338e-02 3.22810278e-02 + 3.27167240e-02 3.31583009e-02 3.36058377e-02 3.40594148e-02 3.45191140e-02 + 3.49850176e-02 3.54572096e-02 3.59357747e-02 3.64207990e-02 3.69123696e-02 + 3.74105750e-02 3.79155046e-02 3.84272493e-02 3.89459010e-02 3.94715529e-02 + 4.00042995e-02 4.05442365e-02 4.10914611e-02 4.16460716e-02 4.22081677e-02 + 4.27778503e-02 4.33552219e-02 4.39403863e-02 4.45334487e-02 4.51345155e-02 + 4.57436950e-02 4.63610966e-02 4.69868312e-02 4.76210113e-02 4.82637510e-02 + 4.89151657e-02 4.95753725e-02 5.02444901e-02 5.09226388e-02 5.16099405e-02 + 5.23065186e-02 5.30124984e-02 5.37280069e-02 5.44531725e-02 5.51881257e-02 + 5.59329985e-02 5.66879248e-02 5.74530404e-02 5.82284827e-02 5.90143912e-02 + 5.98109070e-02 6.06181734e-02 6.14363354e-02 6.22655402e-02 6.31059367e-02 + 6.39576760e-02 6.48209113e-02 6.56957975e-02 6.65824922e-02 6.74811545e-02 + 6.83919460e-02 6.93150305e-02 7.02505738e-02 7.11987441e-02 7.21597119e-02 + 7.31336498e-02 7.41207329e-02 7.51211387e-02 7.61350469e-02 7.71626398e-02 + 7.82041021e-02 7.92596210e-02 8.03293862e-02 8.14135900e-02 8.25124273e-02 + 8.36260956e-02 8.47547950e-02 8.58987284e-02 8.70581015e-02 8.82331227e-02 + 8.94240030e-02 9.06309567e-02 9.18542005e-02 9.30939545e-02 9.43504414e-02 + 9.56238870e-02 9.69145203e-02 9.82225733e-02 9.95482810e-02 1.00891882e-01 + 1.02253617e-01 1.03633732e-01 1.05032474e-01 1.06450095e-01 1.07886849e-01 + 1.09342995e-01 1.10818795e-01 1.12314514e-01 1.13830420e-01 1.15366786e-01 + 1.16923889e-01 1.18502008e-01 1.20101427e-01 1.21722433e-01 1.23365318e-01 + 1.25030377e-01 1.26717909e-01 1.28428217e-01 1.30161610e-01 1.31918398e-01 + 1.33698897e-01 1.35503428e-01 1.37332315e-01 1.39185886e-01 1.41064474e-01 + 1.42968418e-01 1.44898059e-01 1.46853745e-01 1.48835827e-01 1.50844660e-01 + 1.52880607e-01 1.54944033e-01 1.57035309e-01 1.59154811e-01 1.61302919e-01 + 1.63480021e-01 1.65686507e-01 1.67922774e-01 1.70189223e-01 1.72486263e-01 + 1.74814306e-01 1.77173771e-01 1.79565081e-01 1.81988667e-01 1.84444963e-01 + 1.86934413e-01 1.89457462e-01 1.92014565e-01 1.94606181e-01 1.97232776e-01 + 1.99894822e-01 2.02592797e-01 2.05327188e-01 2.08098484e-01 2.10907184e-01 + 2.13753793e-01 2.16638823e-01 2.19562792e-01 2.22526226e-01 2.25529657e-01 + 2.28573626e-01 2.31658678e-01 2.34785370e-01 2.37954263e-01 2.41165926e-01 + 2.44420936e-01 2.47719880e-01 2.51063349e-01 2.54451945e-01 2.57886277e-01 + 2.61366962e-01 2.64894626e-01 2.68469902e-01 2.72093434e-01 2.75765873e-01 + 2.79487878e-01 2.83260119e-01 2.87083274e-01 2.90958030e-01 2.94885084e-01 + 2.98865141e-01 3.02898917e-01 3.06987136e-01 3.11130534e-01 3.15329856e-01 + 3.19585855e-01 3.23899298e-01 3.28270959e-01 3.32701624e-01 3.37192090e-01 + 3.41743164e-01 3.46355663e-01 3.51030417e-01 3.55768266e-01 3.60570062e-01 + 3.65436668e-01 3.70368958e-01 3.75367819e-01 3.80434149e-01 3.85568860e-01 + 3.90772873e-01 3.96047126e-01 4.01392564e-01 4.06810150e-01 4.12300857e-01 + 4.17865672e-01 4.23505595e-01 4.29221640e-01 4.35014834e-01 4.40886219e-01 + 4.46836850e-01 4.52867796e-01 4.58980142e-01 4.65174986e-01 4.71453442e-01 + 4.77816637e-01 4.84265717e-01 4.90801840e-01 4.97426181e-01 5.04139930e-01 + 5.10944295e-01 5.17840498e-01 5.24829779e-01 5.31913394e-01 5.39092616e-01 + 5.46368736e-01 5.53743062e-01 5.61216919e-01 5.68791650e-01 5.76468618e-01 + 5.84249201e-01 5.92134798e-01 6.00126828e-01 6.08226725e-01 6.16435947e-01 + 6.24755968e-01 6.33188284e-01 6.41734412e-01 6.50395886e-01 6.59174263e-01 + 6.68071123e-01 6.77088063e-01 6.86226704e-01 6.95488690e-01 7.04875684e-01 + 7.14389374e-01 7.24031471e-01 7.33803706e-01 7.43707837e-01 7.53745644e-01 + 7.63918931e-01 7.74229527e-01 7.84679284e-01 7.95270082e-01 8.06003823e-01 + 8.16882438e-01 8.27907880e-01 8.39082133e-01 8.50407205e-01 8.61885131e-01 + 8.73517974e-01 8.85307825e-01 8.97256804e-01 9.09367057e-01 9.21640763e-01 + 9.34080126e-01 9.46687383e-01 9.59464800e-01 9.72414674e-01 9.85539332e-01 + 9.98841133e-01 1.01232247e+00 1.02598576e+00 1.03983347e+00 1.05386807e+00 + 1.06809210e+00 1.08250812e+00 1.09711870e+00 1.11192649e+00 1.12693414e+00 + 1.14214434e+00 1.15755983e+00 1.17318339e+00 1.18901782e+00 1.20506596e+00 + 1.22133071e+00 1.23781498e+00 1.25452174e+00 1.27145399e+00 1.28861478e+00 + 1.30600718e+00 1.32363433e+00 1.34149939e+00 1.35960557e+00 1.37795614e+00 + 1.39655438e+00 1.41540364e+00 1.43450731e+00 1.45386882e+00 1.47349165e+00 + 1.49337933e+00 1.51353544e+00 1.53396359e+00 1.55466746e+00 1.57565077e+00 + 1.59691729e+00 1.61847085e+00 1.64031531e+00 1.66245461e+00 1.68489272e+00 + 1.70763367e+00 1.73068156e+00 1.75404053e+00 1.77771477e+00 1.80170855e+00 + 1.82602617e+00 1.85067200e+00 1.87565047e+00 1.90096608e+00 1.92662338e+00 + 1.95262697e+00 1.97898153e+00 2.00569179e+00 2.03276257e+00 2.06019871e+00 + 2.08800517e+00 2.11618692e+00 2.14474905e+00 2.17369667e+00 2.20303501e+00 + 2.23276932e+00 2.26290495e+00 2.29344733e+00 2.32440193e+00 2.35577433e+00 + 2.38757016e+00 2.41979514e+00 2.45245505e+00 2.48555578e+00 2.51910327e+00 + 2.55310354e+00 2.58756272e+00 2.62248699e+00 2.65788264e+00 2.69375602e+00 + 2.73011358e+00 2.76696186e+00 2.80430747e+00 2.84215715e+00 2.88051767e+00 + 2.91939595e+00 2.95879897e+00 2.99873381e+00 3.03920765e+00 3.08022776e+00 + 3.12180152e+00 3.16393640e+00 3.20663997e+00 3.24991992e+00 3.29378401e+00 + 3.33824013e+00 3.38329628e+00 3.42896055e+00 3.47524115e+00 3.52214640e+00 + 3.56968472e+00 3.61786467e+00 3.66669491e+00 3.71618420e+00 3.76634145e+00 + 3.81717567e+00 3.86869600e+00 3.92091170e+00 3.97383215e+00 4.02746687e+00 + 4.08182549e+00 4.13691779e+00 4.19275367e+00 4.24934317e+00 4.30669645e+00 + 4.36482383e+00 4.42373576e+00 4.48344281e+00 4.54395573e+00 4.60528539e+00 + 4.66744282e+00 4.73043919e+00 4.79428581e+00 4.85899417e+00 4.92457590e+00 + 4.99104278e+00 5.05840677e+00 5.12667997e+00 5.19587464e+00 5.26600324e+00 + 5.33707836e+00 5.40911278e+00 5.48211944e+00 5.55611148e+00 5.63110218e+00 + 5.70710504e+00 5.78413370e+00 5.86220201e+00 5.94132401e+00 6.02151392e+00 + 6.10278615e+00 6.18515531e+00 6.26863620e+00 6.35324384e+00 6.43899342e+00 + 6.52590036e+00 6.61398028e+00 6.70324902e+00 6.79372261e+00 6.88541732e+00 + 6.97834963e+00 7.07253625e+00 7.16799410e+00 7.26474035e+00 7.36279238e+00 + 7.46216781e+00 7.56288451e+00 7.66496058e+00 7.76841437e+00 7.87326448e+00 + 7.97952974e+00 8.08722926e+00 8.19638240e+00 8.30700878e+00 8.41912828e+00 + 8.53276106e+00 8.64792753e+00 8.76464840e+00 8.88294465e+00 9.00283754e+00 + 9.12434863e+00 9.24749974e+00 9.37231303e+00 9.49881091e+00 9.62701614e+00 + 9.75695174e+00 9.88864109e+00 1.00221078e+01 1.01573760e+01 1.02944699e+01 + 1.04334141e+01 1.05742336e+01 1.07169538e+01 1.08616003e+01 1.10081990e+01 + 1.11567764e+01 1.13073592e+01 1.14599743e+01 1.16146493e+01 1.17714120e+01 + 1.19302904e+01 1.20913133e+01 1.22545094e+01 1.24199083e+01 1.25875395e+01 + 1.27574332e+01 1.29296200e+01 1.31041307e+01 1.32809969e+01 1.34602502e+01 + 1.36419229e+01 1.38260476e+01 1.40126574e+01 1.42017859e+01 1.43934671e+01 + 1.45877353e+01 1.47846257e+01 1.49841734e+01 1.51864144e+01 1.53913851e+01 + 1.55991223e+01 1.58096632e+01 1.60230459e+01 1.62393086e+01 1.64584901e+01 + 1.66806300e+01 1.69057680e+01 1.71339448e+01 1.73652012e+01 1.75995789e+01 + 1.78371200e+01 1.80778672e+01 1.83218638e+01 1.85691535e+01 1.88197809e+01 + 1.90737911e+01 1.93312296e+01 1.95921427e+01 1.98565774e+01 2.01245812e+01 + 2.03962022e+01 2.06714892e+01 2.09504918e+01 2.12332601e+01 2.15198449e+01 + 2.18102977e+01 2.21046708e+01 2.24030170e+01 2.27053900e+01 2.30118441e+01 + 2.33224344e+01 2.36372168e+01 2.39562477e+01 2.42795846e+01 2.46072856e+01 + 2.49394095e+01 2.52760162e+01 2.56171659e+01 2.59629202e+01 2.63133411e+01 + 2.66684917e+01 2.70284357e+01 2.73932378e+01 2.77629637e+01 2.81376798e+01 + 2.85174534e+01 2.89023527e+01 2.92924471e+01 2.96878066e+01 3.00885022e+01 + 3.04946060e+01 3.09061910e+01 3.13233311e+01 3.17461013e+01 3.21745777e+01 + 3.26088372e+01 3.30489579e+01 3.34950189e+01 3.39471004e+01 3.44052836e+01 + 3.48696509e+01 3.53402857e+01 3.58172727e+01 3.63006976e+01 3.67906473e+01 + 3.72872097e+01 3.77904743e+01 3.83005315e+01 3.88174728e+01 3.93413913e+01 + 3.98723811e+01 4.04105377e+01 4.09559578e+01 4.15087394e+01 4.20689818e+01 + 4.26367859e+01 4.32122536e+01 4.37954883e+01 4.43865950e+01 4.49856798e+01 + 4.55928504e+01 4.62082161e+01 4.68318873e+01 4.74639761e+01 4.81045963e+01 + 4.87538629e+01 4.94118926e+01 5.00788037e+01 5.07547161e+01 5.14397513e+01 + 5.21340324e+01 5.28376842e+01 5.35508332e+01 5.42736075e+01 5.50061371e+01 + 5.57485536e+01 5.65009905e+01 5.72635830e+01 5.80364683e+01 5.88197851e+01 + 5.96136743e+01 6.04182787e+01 6.12337427e+01 6.20602131e+01 6.28978383e+01 + 6.37467689e+01 6.46071576e+01 6.54791588e+01 6.63629295e+01 6.72586284e+01 + 6.81664165e+01 6.90864570e+01 7.00189152e+01 7.09639589e+01 7.19217577e+01 + 7.28924840e+01 7.38763121e+01 7.48734189e+01 7.58839837e+01 7.69081880e+01 + 7.79462160e+01 7.89982542e+01 8.00644917e+01 8.11451203e+01 8.22403340e+01 + 8.33503299e+01 8.44753073e+01 8.56154685e+01 8.67710184e+01 8.79421648e+01 + 8.91291181e+01 9.03320917e+01 9.15513018e+01 9.27869675e+01 9.40393110e+01 + 9.53085573e+01 9.65949346e+01 9.78986742e+01 9.92200103e+01 1.00559180e+02 + 1.01916425e+02 1.03291989e+02 1.04686118e+02 1.06099064e+02 1.07531081e+02 + 1.08982425e+02 1.10453359e+02 1.11944145e+02 1.13455052e+02 1.14986352e+02 + 1.16538321e+02 1.18111235e+02 1.19705380e+02 1.21321041e+02 1.22958508e+02 + 1.24618076e+02 1.26300043e+02 1.28004712e+02 1.29732388e+02 1.31483383e+02 + 1.33258011e+02 1.35056592e+02 1.36879447e+02 1.38726906e+02 1.40599300e+02 + 1.42496965e+02 1.44420243e+02 1.46369480e+02 1.48345025e+02 1.50347234e+02 + 1.52376467e+02 1.54433089e+02 1.56517469e+02 1.58629981e+02 1.60771006e+02 + 1.62940929e+02 1.65140138e+02 1.67369031e+02 1.69628007e+02 1.71917472e+02 + 1.74237838e+02 1.76589522e+02 1.78972947e+02 1.81388540e+02 1.83836737e+02 + 1.86317977e+02 1.88832706e+02 1.91381377e+02 1.93964447e+02 1.96582380e+02 + 1.99235648e+02 2.01924727e+02 2.04650100e+02 2.07412257e+02 2.10211696e+02 + 2.13048918e+02 2.15924434e+02 2.18838761e+02 2.21792423e+02 2.24785950e+02 + 2.27819880e+02 2.30894760e+02 2.34011141e+02 2.37169584e+02 2.40370656e+02 + 2.43614933e+02 2.46902998e+02 2.50235442e+02 2.53612863e+02 2.57035870e+02 + 2.60505077e+02 2.64021108e+02 2.67584595e+02 2.71196178e+02 2.74856506e+02 + 2.78566238e+02 2.82326040e+02 2.86136587e+02 2.89998566e+02 2.93912670e+02 + 2.97879602e+02 3.01900076e+02 3.05974814e+02 3.10104549e+02 3.14290023e+02 + 3.18531988e+02 3.22831206e+02 3.27188451e+02 3.31604506e+02 3.36080164e+02 + 3.40616230e+02 3.45213519e+02 3.49872858e+02 3.54595083e+02 3.59381045e+02 + 3.64231602e+02 3.69147628e+02 3.74130004e+02 3.79179628e+02 3.84297406e+02 + 3.89484259e+02 3.94741119e+02 4.00068931e+02 4.05468651e+02 4.10941252e+02 + 4.16487716e+02 4.22109041e+02 4.27806237e+02 4.33580327e+02 4.39432351e+02 + 4.45363359e+02 4.51374417e+02 4.57466607e+02 4.63641023e+02 4.69898775e+02 + 4.76240987e+02 4.82668801e+02 4.89183370e+02 4.95785866e+02 5.02477476e+02 + 5.09259403e+02 5.16132865e+02 5.23099098e+02 5.30159354e+02 5.37314902e+02 + 5.44567029e+02 5.51917037e+02 5.59366248e+02 5.66916001e+02 5.74567652e+02 + 5.82322578e+02 5.90182172e+02 5.98147847e+02 6.06221034e+02 6.14403185e+02 + 6.22695770e+02 6.31100280e+02 6.39618226e+02 6.48251138e+02 6.57000568e+02 + 6.65868089e+02 6.74855295e+02 6.83963800e+02 6.93195244e+02 7.02551283e+02 + 7.12033601e+02 7.21643902e+02 7.31383912e+02 7.41255383e+02 7.51260090e+02 + 7.61399829e+02 7.71676425e+02 7.82091723e+02 7.92647596e+02 8.03345942e+02 + 8.14188683e+02 8.25177768e+02 8.36315173e+02 8.47602899e+02 8.59042975e+02 + 8.70637458e+02 8.82388431e+02 8.94298006e+02 9.06368325e+02 9.18601557e+02 + 9.30999900e+02 9.43565584e+02 9.56300866e+02 9.69208036e+02 9.82289413e+02 + 9.95547350e+02 1.00898423e+03 1.02260247e+03 1.03640451e+03 1.05039283e+03 + 1.06456996e+03 1.07893844e+03 1.09350084e+03 1.10825980e+03 1.12321795e+03 + 1.13837800e+03 1.15374266e+03 1.16931470e+03 1.18509691e+03 1.20109213e+03 + 1.21730325e+03 1.23373316e+03 1.25038483e+03 1.26726124e+03 1.28436543e+03 + 1.30170048e+03 1.31926950e+03 1.33707565e+03 1.35512213e+03 1.37341218e+03 + 1.39194909e+03 1.41073620e+03 1.42977687e+03 1.44907454e+03 1.46863266e+03 + 1.48845476e+03 1.50854440e+03 1.52890519e+03 1.54954078e+03 1.57045490e+03 + 1.59165129e+03 1.61313377e+03 1.63490620e+03 1.65697249e+03 1.67933661e+03 + 1.70200257e+03 1.72497446e+03 1.74825640e+03 1.77185258e+03 1.79576723e+03 + 1.82000465e+03 1.84456921e+03 1.86946532e+03 1.89469745e+03 1.92027014e+03 + 1.94618798e+03 1.97245563e+03 1.99907782e+03 2.02605932e+03 2.05340500e+03 + 2.08111975e+03 2.10920858e+03 2.13767652e+03 2.16652868e+03 2.19577027e+03 + 2.22540653e+03 2.25544279e+03 2.28588445e+03 2.31673697e+03 2.34800592e+03 + 2.37969690e+03 2.41181561e+03 2.44436783e+03 2.47735940e+03 2.51079626e+03 + 2.54468442e+03 2.57902996e+03 2.61383907e+03 2.64911799e+03 2.68487308e+03 + 2.72111074e+03 2.75783751e+03 2.79505998e+03 2.83278484e+03 2.87101887e+03 + 2.90976894e+03 2.94904202e+03 2.98884517e+03 3.02918554e+03 3.07007039e+03 + 3.11150706e+03 3.15350299e+03 3.19606575e+03 3.23920297e+03 3.28292242e+03 + 3.32723194e+03 3.37213951e+03 3.41765320e+03 3.46378118e+03 3.51053175e+03 + 3.55791332e+03 3.60593439e+03 3.65460360e+03 3.70392970e+03 3.75392155e+03 + 3.80458814e+03 3.85593857e+03 3.90798208e+03 3.96072802e+03 4.01418588e+03 + 4.06836525e+03 4.12327588e+03 4.17892763e+03 4.23533052e+03 4.29249467e+03 + 4.35043037e+03 4.40914803e+03 4.46865819e+03 4.52897157e+03 4.59009899e+03 + 4.65205144e+03 4.71484007e+03 4.77847616e+03 4.84297113e+03 4.90833660e+03 + 4.97458430e+03 5.04172615e+03 5.10977421e+03 5.17874071e+03 5.24863805e+03 + 5.31947879e+03 5.39127567e+03 5.46404159e+03 5.53778963e+03 5.61253304e+03 + 5.68828527e+03 5.76505992e+03 5.84287079e+03 5.92173188e+03 6.00165735e+03 + 6.08266158e+03 6.16475912e+03 6.24796473e+03 6.33229336e+03 6.41776017e+03 + 6.50438053e+03 6.59216999e+03 6.68114436e+03 6.77131960e+03 6.86271194e+03 + 6.95533780e+03 7.04921383e+03 7.14435690e+03 7.24078412e+03 7.33851281e+03 + 7.43756054e+03 7.53794512e+03 7.63968458e+03 7.74279722e+03 7.84730157e+03 + 7.95321641e+03 8.06056079e+03 8.16935398e+03 8.27961556e+03 8.39136533e+03 + 8.50462339e+03 8.61941009e+03 8.73574606e+03 8.85365222e+03 8.97314975e+03 + 9.09426014e+03 9.21700515e+03 9.34140685e+03 9.46748760e+03 9.59527005e+03 + 9.72477718e+03 9.85603227e+03 9.98905890e+03 1.01238810e+04 1.02605228e+04 + 1.03990088e+04 1.05393640e+04 1.06816135e+04 1.08257830e+04 1.09718983e+04 + 1.11199858e+04 1.12700720e+04 1.14221839e+04 1.15763488e+04 1.17325945e+04 + 1.18909491e+04 1.20514409e+04 1.22140989e+04 1.23789523e+04 1.25460308e+04 + 1.27153642e+04 1.28869832e+04 1.30609185e+04 1.32372014e+04 1.34158636e+04 + 1.35969372e+04 1.37804547e+04 1.39664492e+04 1.41549540e+04 1.43460031e+04 + 1.45396308e+04 1.47358718e+04 1.49347615e+04 1.51363357e+04 1.53406304e+04 + 1.55476825e+04 1.57575292e+04 1.59702082e+04 1.61857578e+04 1.64042165e+04 + 1.66256239e+04 1.68500195e+04 1.70774438e+04 1.73079377e+04 1.75415425e+04 + 1.77783003e+04 1.80182536e+04 1.82614455e+04 1.85079198e+04 1.87577208e+04 + 1.90108933e+04 1.92674828e+04 1.95275356e+04 1.97910983e+04 2.00582183e+04 + 2.03289436e+04 2.06033228e+04 2.08814054e+04 2.11632412e+04 2.14488810e+04 + 2.17383760e+04 2.20317784e+04 2.23291407e+04 2.26305166e+04 2.29359602e+04 + 2.32455263e+04 2.35592706e+04 2.38772495e+04 2.41995202e+04 2.45261405e+04 + 2.48571693e+04 2.51926659e+04 2.55326907e+04 2.58773048e+04 2.62265702e+04 + 2.65805496e+04 2.69393066e+04 2.73029058e+04 2.76714125e+04 2.80448928e+04 + 2.84234141e+04 2.88070442e+04 2.91958522e+04 2.95899080e+04 2.99892822e+04 + 3.03940469e+04 3.08042746e+04 3.12200391e+04 3.16414153e+04 3.20684787e+04 + 3.25013062e+04 3.29399755e+04 3.33845656e+04 3.38351563e+04 3.42918286e+04 + 3.47546646e+04 3.52237475e+04 3.56991616e+04 3.61809923e+04 3.66693263e+04 + 3.71642513e+04 3.76658563e+04 3.81742315e+04 3.86894682e+04 3.92116590e+04 + 3.97408978e+04 4.02772798e+04 4.08209013e+04 4.13718600e+04 4.19302550e+04 + 4.24961867e+04 4.30697567e+04 4.36510682e+04 4.42402256e+04 4.48373349e+04 + 4.54425033e+04 4.60558397e+04 4.66774542e+04 4.73074587e+04 4.79459664e+04 + 4.85930919e+04 4.92489517e+04 4.99136637e+04 5.05873472e+04 5.12701234e+04 + 5.19621151e+04 5.26634465e+04 5.33742438e+04 5.40946347e+04 5.48247487e+04 + 5.55647170e+04 5.63146726e+04 5.70747504e+04 5.78450870e+04 5.86258207e+04 + 5.94170921e+04 6.02190431e+04 6.10318181e+04 6.18555631e+04 6.26904262e+04 + 6.35365574e+04 6.43941088e+04 6.52632345e+04 6.61440908e+04 6.70368361e+04 + 6.79416306e+04 6.88586372e+04 6.97880206e+04 7.07299478e+04 7.16845883e+04 + 7.26521134e+04 7.36326973e+04 7.46265160e+04 7.56337483e+04 7.66545752e+04 + 7.76891802e+04 7.87377492e+04 7.98004708e+04 8.08775358e+04 8.19691380e+04 + 8.30754735e+04 8.41967412e+04 8.53331426e+04 8.64848820e+04 8.76521664e+04 + 8.88352056e+04 9.00342122e+04 9.12494018e+04 9.24809928e+04 9.37292066e+04 + 9.49942675e+04 9.62764028e+04 9.75758431e+04 9.88928220e+04 1.00227576e+05 + 1.01580345e+05 1.02951373e+05 1.04340905e+05 1.05749192e+05 1.07176486e+05 + 1.08623044e+05 1.10089127e+05 1.11574997e+05 1.13080923e+05 1.14607173e+05 + 1.16154023e+05 1.17721751e+05 1.19310639e+05 1.20920972e+05 1.22553039e+05 + 1.24207135e+05 1.25883556e+05 1.27582603e+05 1.29304582e+05 1.31049803e+05 + 1.32818579e+05 1.34611228e+05 1.36428073e+05 1.38269439e+05 1.40135659e+05 + 1.42027066e+05 1.43944002e+05 1.45886811e+05 1.47855842e+05 1.49851449e+05 + 1.51873990e+05 1.53923830e+05 1.56001336e+05 1.58106882e+05 1.60240847e+05 + 1.62403614e+05 1.64595572e+05 1.66817114e+05 1.69068641e+05 1.71350556e+05 + 1.73663271e+05 1.76007200e+05 1.78382765e+05 1.80790393e+05 1.83230516e+05 + 1.85703574e+05 1.88210011e+05 1.90750277e+05 1.93324829e+05 1.95934129e+05 + 1.98578648e+05 2.01258859e+05 2.03975245e+05 2.06728294e+05 2.09518501e+05 + 2.12346367e+05 2.15212401e+05 2.18117118e+05 2.21061039e+05 2.24044695e+05 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.51514411e-06 1.53559398e-06 1.55631985e-06 1.57732546e-06 1.59861459e-06 + 1.62019105e-06 1.64205873e-06 1.66422156e-06 1.68668352e-06 1.70944864e-06 + 1.73252103e-06 1.75590483e-06 1.77960423e-06 1.80362351e-06 1.82796697e-06 + 1.85263900e-06 1.87764402e-06 1.90298654e-06 1.92867110e-06 1.95470233e-06 + 1.98108490e-06 2.00782356e-06 2.03492310e-06 2.06238841e-06 2.09022442e-06 + 2.11843613e-06 2.14702861e-06 2.17600701e-06 2.20537652e-06 2.23514243e-06 + 2.26531010e-06 2.29588494e-06 2.32687244e-06 2.35827818e-06 2.39010781e-06 + 2.42236703e-06 2.45506166e-06 2.48819757e-06 2.52178072e-06 2.55581713e-06 + 2.59031293e-06 2.62527433e-06 2.66070759e-06 2.69661910e-06 2.73301530e-06 + 2.76990274e-06 2.80728805e-06 2.84517795e-06 2.88357925e-06 2.92249885e-06 + 2.96194375e-06 3.00192104e-06 3.04243789e-06 3.08350160e-06 3.12511955e-06 + 3.16729922e-06 3.21004818e-06 3.25337412e-06 3.29728483e-06 3.34178821e-06 + 3.38689225e-06 3.43260505e-06 3.47893484e-06 3.52588994e-06 3.57347879e-06 + 3.62170995e-06 3.67059208e-06 3.72013398e-06 3.77034453e-06 3.82123279e-06 + 3.87280787e-06 3.92507907e-06 3.97805577e-06 4.03174749e-06 4.08616389e-06 + 4.14131475e-06 4.19720997e-06 4.25385962e-06 4.31127386e-06 4.36946302e-06 + 4.42843756e-06 4.48820807e-06 4.54878531e-06 4.61018016e-06 4.67240365e-06 + 4.73546697e-06 4.79938146e-06 4.86415859e-06 4.92981003e-06 4.99634755e-06 + 5.06378314e-06 5.13212890e-06 5.20139712e-06 5.27160025e-06 5.34275092e-06 + 5.41486190e-06 5.48794616e-06 5.56201684e-06 5.63708725e-06 5.71317088e-06 + 5.79028141e-06 5.86843270e-06 5.94763880e-06 6.02791394e-06 6.10927255e-06 + 6.19172925e-06 6.27529887e-06 6.35999643e-06 6.44583715e-06 6.53283646e-06 + 6.62101000e-06 6.71037362e-06 6.80094337e-06 6.89273554e-06 6.98576663e-06 + 7.08005335e-06 7.17561266e-06 7.27246174e-06 7.37061798e-06 7.47009904e-06 + 7.57092278e-06 7.67310735e-06 7.77667110e-06 7.88163264e-06 7.98801085e-06 + 8.09582484e-06 8.20509399e-06 8.31583795e-06 8.42807662e-06 8.54183017e-06 + 8.65711905e-06 8.77396398e-06 8.89238596e-06 9.01240628e-06 9.13404651e-06 + 9.25732852e-06 9.38227446e-06 9.50890680e-06 9.63724829e-06 9.76732200e-06 + 9.89915131e-06 1.00327599e-05 1.01681718e-05 1.03054114e-05 1.04445033e-05 + 1.05854725e-05 1.07283444e-05 1.08731446e-05 1.10198992e-05 1.11686345e-05 + 1.13193773e-05 1.14721546e-05 1.16269940e-05 1.17839233e-05 1.19429706e-05 + 1.21041646e-05 1.22675342e-05 1.24331089e-05 1.26009182e-05 1.27709925e-05 + 1.29433623e-05 1.31180586e-05 1.32951127e-05 1.34745565e-05 1.36564223e-05 + 1.38407427e-05 1.40275509e-05 1.42168804e-05 1.44087653e-05 1.46032400e-05 + 1.48003396e-05 1.50000995e-05 1.52025554e-05 1.54077440e-05 1.56157019e-05 + 1.58264667e-05 1.60400761e-05 1.62565686e-05 1.64759832e-05 1.66983591e-05 + 1.69237365e-05 1.71521557e-05 1.73836580e-05 1.76182848e-05 1.78560784e-05 + 1.80970814e-05 1.83413373e-05 1.85888899e-05 1.88397837e-05 1.90940638e-05 + 1.93517759e-05 1.96129664e-05 1.98776821e-05 2.01459707e-05 2.04178804e-05 + 2.06934601e-05 2.09727592e-05 2.12558280e-05 2.15427174e-05 2.18334790e-05 + 2.21281649e-05 2.24268282e-05 2.27295226e-05 2.30363024e-05 2.33472229e-05 + 2.36623398e-05 2.39817098e-05 2.43053904e-05 2.46334396e-05 2.49659166e-05 + 2.53028810e-05 2.56443934e-05 2.59905151e-05 2.63413085e-05 2.66968365e-05 + 2.70571631e-05 2.74223530e-05 2.77924718e-05 2.81675861e-05 2.85477634e-05 + 2.89330718e-05 2.93235808e-05 2.97193605e-05 3.01204820e-05 3.05270174e-05 + 3.09390399e-05 3.13566233e-05 3.17798429e-05 3.22087747e-05 3.26434958e-05 + 3.30840843e-05 3.35306194e-05 3.39831813e-05 3.44418515e-05 3.49067124e-05 + 3.53778474e-05 3.58553414e-05 3.63392801e-05 3.68297505e-05 3.73268407e-05 + 3.78306402e-05 3.83412395e-05 3.88587303e-05 3.93832056e-05 3.99147598e-05 + 4.04534884e-05 4.09994881e-05 4.15528573e-05 4.21136952e-05 4.26821027e-05 + 4.32581821e-05 4.38420367e-05 4.44337716e-05 4.50334932e-05 4.56413092e-05 + 4.62573288e-05 4.68816629e-05 4.75144236e-05 4.81557246e-05 4.88056813e-05 + 4.94644104e-05 5.01320304e-05 5.08086612e-05 5.14944245e-05 5.21894435e-05 + 5.28938432e-05 5.36077501e-05 5.43312927e-05 5.50646008e-05 5.58078064e-05 + 5.65610431e-05 5.73244461e-05 5.80981528e-05 5.88823022e-05 5.96770352e-05 + 6.04824947e-05 6.12988255e-05 6.21261743e-05 6.29646898e-05 6.38145227e-05 + 6.46758258e-05 6.55487539e-05 6.64334638e-05 6.73301147e-05 6.82388677e-05 + 6.91598861e-05 7.00933354e-05 7.10393835e-05 7.19982003e-05 7.29699583e-05 + 7.39548321e-05 7.49529987e-05 7.59646376e-05 7.69899305e-05 7.80290617e-05 + 7.90822181e-05 8.01495889e-05 8.12313660e-05 8.23277438e-05 8.34389194e-05 + 8.45650925e-05 8.57064656e-05 8.68632437e-05 8.80356348e-05 8.92238497e-05 + 9.04281018e-05 9.16486078e-05 9.28855869e-05 9.41392614e-05 9.54098568e-05 + 9.66976013e-05 9.80027266e-05 9.93254670e-05 1.00666060e-04 1.02024748e-04 + 1.03401773e-04 1.04797385e-04 1.06211833e-04 1.07645371e-04 1.09098258e-04 + 1.10570755e-04 1.12063126e-04 1.13575639e-04 1.15108567e-04 1.16662184e-04 + 1.18236771e-04 1.19832610e-04 1.21449988e-04 1.23089195e-04 1.24750527e-04 + 1.26434282e-04 1.28140763e-04 1.29870275e-04 1.31623131e-04 1.33399646e-04 + 1.35200138e-04 1.37024931e-04 1.38874353e-04 1.40748737e-04 1.42648419e-04 + 1.44573741e-04 1.46525050e-04 1.48502695e-04 1.50507032e-04 1.52538422e-04 + 1.54597229e-04 1.56683824e-04 1.58798582e-04 1.60941883e-04 1.63114112e-04 + 1.65315659e-04 1.67546920e-04 1.69808297e-04 1.72100196e-04 1.74423028e-04 + 1.76777212e-04 1.79163169e-04 1.81581330e-04 1.84032129e-04 1.86516007e-04 + 1.89033409e-04 1.91584788e-04 1.94170603e-04 1.96791319e-04 1.99447407e-04 + 2.02139344e-04 2.04867614e-04 2.07632707e-04 2.10435121e-04 2.13275359e-04 + 2.16153931e-04 2.19071356e-04 2.22028156e-04 2.25024865e-04 2.28062020e-04 + 2.31140168e-04 2.34259861e-04 2.37421661e-04 2.40626136e-04 2.43873861e-04 + 2.47165421e-04 2.50501406e-04 2.53882418e-04 2.57309063e-04 2.60781957e-04 + 2.64301725e-04 2.67868999e-04 2.71484421e-04 2.75148639e-04 2.78862314e-04 + 2.82626112e-04 2.86440710e-04 2.90306793e-04 2.94225057e-04 2.98196206e-04 + 3.02220953e-04 3.06300022e-04 3.10434146e-04 3.14624068e-04 3.18870542e-04 + 3.23174330e-04 3.27536206e-04 3.31956954e-04 3.36437370e-04 3.40978257e-04 + 3.45580432e-04 3.50244723e-04 3.54971968e-04 3.59763016e-04 3.64618729e-04 + 3.69539979e-04 3.74527651e-04 3.79582642e-04 3.84705860e-04 3.89898226e-04 + 3.95160673e-04 4.00494147e-04 4.05899607e-04 4.11378024e-04 4.16930384e-04 + 4.22557683e-04 4.28260934e-04 4.34041162e-04 4.39899405e-04 4.45836717e-04 + 4.51854164e-04 4.57952829e-04 4.64133808e-04 4.70398211e-04 4.76747164e-04 + 4.83181809e-04 4.89703302e-04 4.96312816e-04 5.03011539e-04 5.09800673e-04 + 5.16681441e-04 5.23655078e-04 5.30722838e-04 5.37885992e-04 5.45145826e-04 + 5.52503646e-04 5.59960775e-04 5.67518552e-04 5.75178336e-04 5.82941505e-04 + 5.90809452e-04 5.98783593e-04 6.06865361e-04 6.15056208e-04 6.23357607e-04 + 6.31771050e-04 6.40298049e-04 6.48940137e-04 6.57698866e-04 6.66575812e-04 + 6.75572570e-04 6.84690757e-04 6.93932012e-04 7.03297995e-04 7.12790392e-04 + 7.22410907e-04 7.32161269e-04 7.42043233e-04 7.52058572e-04 7.62209089e-04 + 7.72496607e-04 7.82922975e-04 7.93490068e-04 8.04199785e-04 8.15054050e-04 + 8.26054815e-04 8.37204057e-04 8.48503780e-04 8.59956016e-04 8.71562821e-04 + 8.83326284e-04 8.95248518e-04 9.07331666e-04 9.19577900e-04 9.31989421e-04 + 9.44568460e-04 9.57317278e-04 9.70238166e-04 9.83333448e-04 9.96605476e-04 + 1.01005664e-03 1.02368935e-03 1.03750606e-03 1.05150925e-03 1.06570145e-03 + 1.08008519e-03 1.09466308e-03 1.10943772e-03 1.12441177e-03 1.13958793e-03 + 1.15496892e-03 1.17055751e-03 1.18635650e-03 1.20236872e-03 1.21859707e-03 + 1.23504444e-03 1.25171381e-03 1.26860816e-03 1.28573053e-03 1.30308401e-03 + 1.32067170e-03 1.33849678e-03 1.35656243e-03 1.37487193e-03 1.39342854e-03 + 1.41223561e-03 1.43129652e-03 1.45061470e-03 1.47019361e-03 1.49003678e-03 + 1.51014777e-03 1.53053020e-03 1.55118773e-03 1.57212407e-03 1.59334299e-03 + 1.61484830e-03 1.63664387e-03 1.65873361e-03 1.68112150e-03 1.70381156e-03 + 1.72680786e-03 1.75011455e-03 1.77373580e-03 1.79767587e-03 1.82193906e-03 + 1.84652973e-03 1.87145230e-03 1.89671124e-03 1.92231111e-03 1.94825650e-03 + 1.97455207e-03 2.00120255e-03 2.02821273e-03 2.05558747e-03 2.08333169e-03 + 2.11145037e-03 2.13994856e-03 2.16883140e-03 2.19810406e-03 2.22777182e-03 + 2.25784000e-03 2.28831402e-03 2.31919934e-03 2.35050151e-03 2.38222618e-03 + 2.41437903e-03 2.44696584e-03 2.47999248e-03 2.51346488e-03 2.54738906e-03 + 2.58177111e-03 2.61661721e-03 2.65193363e-03 2.68772672e-03 2.72400290e-03 + 2.76076870e-03 2.79803073e-03 2.83579568e-03 2.87407035e-03 2.91286161e-03 + 2.95217643e-03 2.99202189e-03 3.03240514e-03 3.07333344e-03 3.11481415e-03 + 3.15685472e-03 3.19946271e-03 3.24264578e-03 3.28641170e-03 3.33076832e-03 + 3.37572362e-03 3.42128568e-03 3.46746269e-03 3.51426295e-03 3.56169487e-03 + 3.60976698e-03 3.65848792e-03 3.70786645e-03 3.75791143e-03 3.80863187e-03 + 3.86003689e-03 3.91213571e-03 3.96493772e-03 4.01845239e-03 4.07268934e-03 + 4.12765833e-03 4.18336924e-03 4.23983207e-03 4.29705699e-03 4.35505426e-03 + 4.41383433e-03 4.47340774e-03 4.53378522e-03 4.59497761e-03 4.65699591e-03 + 4.71985128e-03 4.78355500e-03 4.84811852e-03 4.91355347e-03 4.97987158e-03 + 5.04708479e-03 5.11520517e-03 5.18424497e-03 5.25421660e-03 5.32513264e-03 + 5.39700583e-03 5.46984909e-03 5.54367551e-03 5.61849837e-03 5.69433110e-03 + 5.77118736e-03 5.84908093e-03 5.92802584e-03 6.00803626e-03 6.08912659e-03 + 6.17131138e-03 6.25460542e-03 6.33902369e-03 6.42458134e-03 6.51129376e-03 + 6.59917653e-03 6.68824546e-03 6.77851655e-03 6.87000603e-03 6.96273034e-03 + 7.05670614e-03 7.15195034e-03 7.24848004e-03 7.34631260e-03 7.44546561e-03 + 7.54595688e-03 7.64780448e-03 7.75102672e-03 7.85564214e-03 7.96166955e-03 + 8.06912802e-03 8.17803685e-03 8.28841561e-03 8.40028416e-03 8.51366260e-03 + 8.62857130e-03 8.74503092e-03 8.86306239e-03 8.98268694e-03 9.10392605e-03 + 9.22680152e-03 9.35133544e-03 9.47755019e-03 9.60546846e-03 9.73511324e-03 + 9.86650783e-03 9.99967585e-03 1.01346412e-02 1.02714283e-02 1.04100615e-02 + 1.05505658e-02 1.06929666e-02 1.08372893e-02 1.09835599e-02 1.11318048e-02 + 1.12820505e-02 1.14343240e-02 1.15886528e-02 1.17450646e-02 1.19035875e-02 + 1.20642499e-02 1.22270808e-02 1.23921094e-02 1.25593654e-02 1.27288789e-02 + 1.29006802e-02 1.30748004e-02 1.32512707e-02 1.34301228e-02 1.36113888e-02 + 1.37951014e-02 1.39812936e-02 1.41699987e-02 1.43612509e-02 1.45550843e-02 + 1.47515340e-02 1.49506351e-02 1.51524234e-02 1.53569353e-02 1.55642075e-02 + 1.57742773e-02 1.59871823e-02 1.62029609e-02 1.64216519e-02 1.66432945e-02 + 1.68679287e-02 1.70955947e-02 1.73263336e-02 1.75601867e-02 1.77971961e-02 + 1.80374044e-02 1.82808548e-02 1.85275911e-02 1.87776576e-02 1.90310992e-02 + 1.92879614e-02 1.95482906e-02 1.98121334e-02 2.00795373e-02 2.03505503e-02 + 2.06252212e-02 2.09035994e-02 2.11857347e-02 2.14716781e-02 2.17614808e-02 + 2.20551950e-02 2.23528734e-02 2.26545697e-02 2.29603378e-02 2.32702330e-02 + 2.35843107e-02 2.39026276e-02 2.42252408e-02 2.45522083e-02 2.48835889e-02 + 2.52194421e-02 2.55598283e-02 2.59048087e-02 2.62544453e-02 2.66088009e-02 + 2.69679393e-02 2.73319249e-02 2.77008232e-02 2.80747006e-02 2.84536242e-02 + 2.88376620e-02 2.92268833e-02 2.96213578e-02 3.00211566e-02 3.04263514e-02 + 3.08370152e-02 3.12532216e-02 3.16750456e-02 3.21025629e-02 3.25358505e-02 + 3.29749861e-02 3.34200487e-02 3.38711183e-02 3.43282759e-02 3.47916039e-02 + 3.52611853e-02 3.57371047e-02 3.62194475e-02 3.67083006e-02 3.72037516e-02 + 3.77058898e-02 3.82148053e-02 3.87305896e-02 3.92533354e-02 3.97831368e-02 + 4.03200888e-02 4.08642881e-02 4.14158324e-02 4.19748209e-02 4.25413541e-02 + 4.31155337e-02 4.36974630e-02 4.42872467e-02 4.48849906e-02 4.54908022e-02 + 4.61047905e-02 4.67270657e-02 4.73577398e-02 4.79969261e-02 4.86447395e-02 + 4.93012964e-02 4.99667148e-02 5.06411144e-02 5.13246163e-02 5.20173434e-02 + 5.27194202e-02 5.34309730e-02 5.41521296e-02 5.48830196e-02 5.56237744e-02 + 5.63745271e-02 5.71354128e-02 5.79065681e-02 5.86881317e-02 5.94802440e-02 + 6.02830474e-02 6.10966863e-02 6.19213068e-02 6.27570572e-02 6.36040877e-02 + 6.44625506e-02 6.53326001e-02 6.62143926e-02 6.71080867e-02 6.80138429e-02 + 6.89318241e-02 6.98621953e-02 7.08051237e-02 7.17607788e-02 7.27293323e-02 + 7.37109584e-02 7.47058334e-02 7.57141363e-02 7.67360482e-02 7.77717528e-02 + 7.88214363e-02 7.98852873e-02 8.09634971e-02 8.20562595e-02 8.31637709e-02 + 8.42862303e-02 8.54238396e-02 8.65768031e-02 8.77453282e-02 8.89296248e-02 + 9.01299058e-02 9.13463870e-02 9.25792870e-02 9.38288274e-02 9.50952329e-02 + 9.63787310e-02 9.76795524e-02 9.89979310e-02 1.00334104e-01 1.01688311e-01 + 1.03060795e-01 1.04451805e-01 1.05861588e-01 1.07290399e-01 1.08738495e-01 + 1.10206136e-01 1.11693586e-01 1.13201111e-01 1.14728984e-01 1.16277479e-01 + 1.17846873e-01 1.19437449e-01 1.21049494e-01 1.22683296e-01 1.24339149e-01 + 1.26017352e-01 1.27718205e-01 1.29442015e-01 1.31189090e-01 1.32959747e-01 + 1.34754301e-01 1.36573077e-01 1.38416400e-01 1.40284603e-01 1.42178021e-01 + 1.44096994e-01 1.46041868e-01 1.48012992e-01 1.50010719e-01 1.52035411e-01 + 1.54087429e-01 1.56167143e-01 1.58274927e-01 1.60411160e-01 1.62576226e-01 + 1.64770513e-01 1.66994417e-01 1.69248337e-01 1.71532678e-01 1.73847850e-01 + 1.76194270e-01 1.78572360e-01 1.80982547e-01 1.83425264e-01 1.85900951e-01 + 1.88410051e-01 1.90953017e-01 1.93530306e-01 1.96142380e-01 1.98789709e-01 + 2.01472769e-01 2.04192042e-01 2.06948017e-01 2.09741189e-01 2.12572061e-01 + 2.15441141e-01 2.18348945e-01 2.21295996e-01 2.24282822e-01 2.27309962e-01 + 2.30377959e-01 2.33487365e-01 2.36638739e-01 2.39832646e-01 2.43069662e-01 + 2.46350367e-01 2.49675352e-01 2.53045214e-01 2.56460560e-01 2.59922002e-01 + 2.63430163e-01 2.66985673e-01 2.70589173e-01 2.74241308e-01 2.77942737e-01 + 2.81694123e-01 2.85496142e-01 2.89349477e-01 2.93254820e-01 2.97212873e-01 + 3.01224348e-01 3.05289966e-01 3.09410457e-01 3.13586563e-01 3.17819033e-01 + 3.22108629e-01 3.26456121e-01 3.30862292e-01 3.35327932e-01 3.39853846e-01 + 3.44440845e-01 3.49089755e-01 3.53801411e-01 3.58576660e-01 3.63416361e-01 + 3.68321383e-01 3.73292608e-01 3.78330929e-01 3.83437252e-01 3.88612496e-01 + 3.93857590e-01 3.99173476e-01 4.04561111e-01 4.10021463e-01 4.15555512e-01 + 4.21164255e-01 4.26848699e-01 4.32609866e-01 4.38448791e-01 4.44366524e-01 + 4.50364128e-01 4.56442682e-01 4.62603278e-01 4.68847024e-01 4.75175041e-01 + 4.81588467e-01 4.88088455e-01 4.94676173e-01 5.01352806e-01 5.08119553e-01 + 5.14977630e-01 5.21928271e-01 5.28972724e-01 5.36112257e-01 5.43348151e-01 + 5.50681708e-01 5.58114246e-01 5.65647101e-01 5.73281626e-01 5.81019194e-01 + 5.88861197e-01 5.96809042e-01 6.04864160e-01 6.13027997e-01 6.21302021e-01 + 6.29687720e-01 6.38186600e-01 6.46800189e-01 6.55530036e-01 6.64377709e-01 + 6.73344799e-01 6.82432918e-01 6.91643699e-01 7.00978797e-01 7.10439891e-01 + 7.20028682e-01 7.29746892e-01 7.39596268e-01 7.49578581e-01 7.59695625e-01 + 7.69949219e-01 7.80341205e-01 7.90873452e-01 8.01547852e-01 8.12366325e-01 + 8.23330813e-01 8.34443290e-01 8.45705751e-01 8.57120221e-01 8.68688753e-01 + 8.80413424e-01 8.92296343e-01 9.04339645e-01 9.16545496e-01 9.28916089e-01 + 9.41453647e-01 9.54160425e-01 9.67038705e-01 9.80090803e-01 9.93319066e-01 + 1.00672587e+00 1.02031362e+00 1.03408477e+00 1.04804179e+00 1.06218719e+00 + 1.07652350e+00 1.09105331e+00 1.10577923e+00 1.12070391e+00 1.13583002e+00 + 1.15116029e+00 1.16669748e+00 1.18244437e+00 1.19840379e+00 1.21457862e+00 + 1.23097175e+00 1.24758615e+00 1.26442479e+00 1.28149070e+00 1.29878695e+00 + 1.31631665e+00 1.33408294e+00 1.35208903e+00 1.37033814e+00 1.38883356e+00 + 1.40757862e+00 1.42657667e+00 1.44583114e+00 1.46534549e+00 1.48512323e+00 + 1.50516790e+00 1.52548311e+00 1.54607252e+00 1.56693983e+00 1.58808878e+00 + 1.60952317e+00 1.63124687e+00 1.65326377e+00 1.67557783e+00 1.69819306e+00 + 1.72111354e+00 1.74434336e+00 1.76788672e+00 1.79174785e+00 1.81593103e+00 + 1.84044061e+00 1.86528099e+00 1.89045664e+00 1.91597209e+00 1.94183192e+00 + 1.96804078e+00 1.99460338e+00 2.02152449e+00 2.04880896e+00 2.07646169e+00 + 2.10448764e+00 2.13289186e+00 2.16167945e+00 2.19085559e+00 2.22042551e+00 + 2.25039454e+00 2.28076806e+00 2.31155154e+00 2.34275049e+00 2.37437054e+00 + 2.40641736e+00 2.43889672e+00 2.47181445e+00 2.50517647e+00 2.53898878e+00 + 2.57325745e+00 2.60798864e+00 2.64318860e+00 2.67886366e+00 2.71502022e+00 + 2.75166478e+00 2.78880393e+00 2.82644435e+00 2.86459281e+00 2.90325615e+00 + 2.94244133e+00 2.98215539e+00 3.02240547e+00 3.06319880e+00 3.10454272e+00 + 3.14644466e+00 3.18891215e+00 3.23195282e+00 3.27557441e+00 3.31978476e+00 + 3.36459182e+00 3.41000363e+00 3.45602837e+00 3.50267430e+00 3.54994981e+00 + 3.59786340e+00 3.64642368e+00 3.69563937e+00 3.74551933e+00 3.79607251e+00 + 3.84730801e+00 3.89923504e+00 3.95186292e+00 4.00520112e+00 4.05925923e+00 + 4.11404695e+00 4.16957414e+00 4.22585079e+00 4.28288699e+00 4.34069302e+00 + 4.39927925e+00 4.45865622e+00 4.51883459e+00 4.57982520e+00 4.64163899e+00 + 4.70428708e+00 4.76778073e+00 4.83213135e+00 4.89735051e+00 4.96344994e+00 + 5.03044150e+00 5.09833725e+00 5.16714939e+00 5.23689028e+00 5.30757246e+00 + 5.37920864e+00 5.45181169e+00 5.52539466e+00 5.59997078e+00 5.67555346e+00 + 5.75215627e+00 5.82979298e+00 5.90847756e+00 5.98822414e+00 6.06904706e+00 + 6.15096084e+00 6.23398021e+00 6.31812010e+00 6.40339561e+00 6.48982209e+00 + 6.57741507e+00 6.66619028e+00 6.75616369e+00 6.84735147e+00 6.93977001e+00 + 7.03343592e+00 7.12836604e+00 7.22457742e+00 7.32208737e+00 7.42091341e+00 + 7.52107330e+00 7.62258505e+00 7.72546690e+00 7.82973734e+00 7.93541512e+00 + 8.04251923e+00 8.15106892e+00 8.26108370e+00 8.37258335e+00 8.48558791e+00 + 8.60011769e+00 8.71619327e+00 8.83383553e+00 8.95306559e+00 9.07390491e+00 + 9.19637518e+00 9.32049844e+00 9.44629699e+00 9.57379343e+00 9.70301069e+00 + 9.83397200e+00 9.96670088e+00 1.01012212e+01 1.02375571e+01 1.03757332e+01 + 1.05157742e+01 1.06577054e+01 1.08015522e+01 1.09473405e+01 1.10950965e+01 + 1.12448467e+01 1.13966182e+01 1.15504380e+01 1.17063340e+01 1.18643341e+01 + 1.20244668e+01 1.21867607e+01 1.23512451e+01 1.25179496e+01 1.26869041e+01 + 1.28581389e+01 1.30316849e+01 1.32075732e+01 1.33858355e+01 1.35665038e+01 + 1.37496106e+01 1.39351888e+01 1.41232717e+01 1.43138932e+01 1.45070874e+01 + 1.47028892e+01 1.49013338e+01 1.51024567e+01 1.53062942e+01 1.55128829e+01 + 1.57222599e+01 1.59344629e+01 1.61495300e+01 1.63674998e+01 1.65884115e+01 + 1.68123049e+01 1.70392202e+01 1.72691982e+01 1.75022801e+01 1.77385080e+01 + 1.79779242e+01 1.82205718e+01 1.84664944e+01 1.87157363e+01 1.89683421e+01 + 1.92243574e+01 1.94838281e+01 1.97468008e+01 2.00133229e+01 2.02834423e+01 + 2.05572074e+01 2.08346676e+01 2.11158726e+01 2.14008730e+01 2.16897201e+01 + 2.19824657e+01 2.22791625e+01 2.25798639e+01 2.28846237e+01 2.31934970e+01 + 2.35065390e+01 2.38238062e+01 2.41453556e+01 2.44712449e+01 2.48015327e+01 + 2.51362784e+01 2.54755421e+01 2.58193849e+01 2.61678685e+01 2.65210556e+01 + 2.68790097e+01 2.72417950e+01 2.76094769e+01 2.79821213e+01 2.83597954e+01 + 2.87425669e+01 2.91305046e+01 2.95236783e+01 2.99221587e+01 3.03260174e+01 + 3.07353269e+01 3.11501609e+01 3.15705939e+01 3.19967014e+01 3.24285601e+01 + 3.28662476e+01 3.33098426e+01 3.37594247e+01 3.42150749e+01 3.46768749e+01 + 3.51449079e+01 3.56192579e+01 3.61000102e+01 3.65872511e+01 3.70810684e+01 + 3.75815507e+01 3.80887880e+01 3.86028714e+01 3.91238935e+01 3.96519477e+01 + 4.01871291e+01 4.07295339e+01 4.12792594e+01 4.18364046e+01 4.24010695e+01 + 4.29733558e+01 4.35533661e+01 4.41412049e+01 4.47369777e+01 4.53407916e+01 + 4.59527552e+01 4.65729784e+01 4.72015728e+01 4.78386513e+01 4.84843284e+01 + 4.91387202e+01 4.98019444e+01 5.04741200e+01 5.11553680e+01 5.18458108e+01 + 5.25455725e+01 5.32547788e+01 5.39735573e+01 5.47020371e+01 5.54403492e+01 + 5.61886263e+01 5.69470028e+01 5.77156152e+01 5.84946015e+01 5.92841017e+01 + 6.00842578e+01 6.08952136e+01 6.17171149e+01 6.25501093e+01 6.33943466e+01 + 6.42499786e+01 6.51171590e+01 6.59960438e+01 6.68867908e+01 6.77895602e+01 + 6.87045143e+01 6.96318175e+01 7.05716365e+01 7.15241402e+01 7.24894998e+01 + 7.34678888e+01 7.44594832e+01 7.54644611e+01 7.64830031e+01 7.75152924e+01 + 7.85615144e+01 7.96218573e+01 8.06965116e+01 8.17856705e+01 8.28895297e+01 + 8.40082878e+01 8.51421456e+01 8.62913071e+01 8.74559788e+01 8.86363701e+01 + 8.98326931e+01 9.10451628e+01 9.22739972e+01 9.35194171e+01 9.47816465e+01 + 9.60609121e+01 9.73574439e+01 9.86714750e+01 1.00003242e+02 1.01352983e+02 + 1.02720942e+02 1.04107364e+02 1.05512498e+02 1.06936598e+02 1.08379919e+02 + 1.09842720e+02 1.11325265e+02 1.12827819e+02 1.14350653e+02 1.15894041e+02 + 1.17458261e+02 1.19043592e+02 1.20650320e+02 1.22278735e+02 1.23929128e+02 + 1.25601797e+02 1.27297041e+02 1.29015166e+02 1.30756481e+02 1.32521298e+02 + 1.34309935e+02 1.36122713e+02 1.37959958e+02 1.39822000e+02 1.41709174e+02 + 1.43621820e+02 1.45560280e+02 1.47524903e+02 1.49516044e+02 1.51534058e+02 + 1.53579310e+02 1.55652166e+02 1.57752999e+02 1.59882188e+02 1.62040114e+02 + 1.64227166e+02 1.66443736e+02 1.68690223e+02 1.70967031e+02 1.73274569e+02 + 1.75613251e+02 1.77983499e+02 1.80385738e+02 1.82820400e+02 1.85287923e+02 + 1.87788750e+02 1.90323330e+02 1.92892119e+02 1.95495580e+02 1.98134179e+02 + 2.00808391e+02 2.03518697e+02 2.06265584e+02 2.09049546e+02 2.11871083e+02 + 2.14730702e+02 2.17628917e+02 2.20566249e+02 2.23543226e+02 2.26560384e+02 + 2.29618264e+02 2.32717416e+02 2.35858398e+02 2.39041773e+02 2.42268114e+02 + 2.45538001e+02 2.48852022e+02 2.52210771e+02 2.55614854e+02 2.59064882e+02 + 2.62561474e+02 2.66105260e+02 2.69696877e+02 2.73336969e+02 2.77026192e+02 + 2.80765207e+02 2.84554689e+02 2.88395317e+02 2.92287781e+02 2.96232783e+02 + 3.00231029e+02 3.04283240e+02 3.08390144e+02 3.12552478e+02 3.16770992e+02 + 3.21046442e+02 3.25379599e+02 3.29771239e+02 3.34222154e+02 3.38733142e+02 + 3.43305015e+02 3.47938595e+02 3.52634714e+02 3.57394216e+02 3.62217957e+02 + 3.67106805e+02 3.72061636e+02 3.77083343e+02 3.82172828e+02 3.87331006e+02 + 3.92558803e+02 3.97857160e+02 4.03227029e+02 4.08669374e+02 4.14185175e+02 + 4.19775422e+02 4.25441121e+02 4.31183290e+02 4.37002961e+02 4.42901179e+02 + 4.48879006e+02 4.54937515e+02 4.61077796e+02 4.67300952e+02 4.73608102e+02 + 4.80000379e+02 4.86478933e+02 4.93044927e+02 4.99699543e+02 5.06443976e+02 + 5.13279438e+02 5.20207158e+02 5.27228382e+02 5.34344371e+02 5.41556404e+02 + 5.48865778e+02 5.56273806e+02 5.63781821e+02 5.71391170e+02 5.79103223e+02 + 5.86919366e+02 5.94841002e+02 6.02869557e+02 6.11006473e+02 6.19253213e+02 + 6.27611259e+02 6.36082113e+02 6.44667298e+02 6.53368357e+02 6.62186855e+02 + 6.71124375e+02 6.80182525e+02 6.89362932e+02 6.98667247e+02 7.08097142e+02 + 7.17654312e+02 7.27340476e+02 7.37157373e+02 7.47106768e+02 7.57190450e+02 + 7.67410232e+02 7.77767949e+02 7.88265465e+02 7.98904665e+02 8.09687462e+02 + 8.20615795e+02 8.31691626e+02 8.42916949e+02 8.54293779e+02 8.65824161e+02 + 8.77510169e+02 8.89353903e+02 9.01357492e+02 9.13523092e+02 9.25852892e+02 + 9.38349106e+02 9.51013982e+02 9.63849795e+02 9.76858852e+02 9.90043493e+02 + 1.00340609e+03 1.01694903e+03 1.03067477e+03 1.04458576e+03 1.05868451e+03 + 1.07297355e+03 1.08745545e+03 1.10213281e+03 1.11700827e+03 1.13208451e+03 + 1.14736422e+03 1.16285017e+03 1.17854513e+03 1.19445193e+03 1.21057342e+03 + 1.22691250e+03 1.24347211e+03 1.26025522e+03 1.27726485e+03 1.29450407e+03 + 1.31197596e+03 1.32968367e+03 1.34763038e+03 1.36581931e+03 1.38425374e+03 + 1.40293698e+03 1.42187239e+03 1.44106337e+03 1.46051336e+03 1.48022588e+03 + 1.50020445e+03 1.52045267e+03 1.54097419e+03 1.56177268e+03 1.58285189e+03 + 1.60421560e+03 1.62586766e+03 1.64781196e+03 1.67005244e+03 1.69259310e+03 + 1.71543799e+03 1.73859121e+03 1.76205693e+03 1.78583938e+03 1.80994281e+03 + 1.83437156e+03 1.85913003e+03 1.88422266e+03 1.90965397e+03 1.93542853e+03 + 1.96155096e+03 1.98802597e+03 2.01485831e+03 2.04205280e+03 2.06961434e+03 + 2.09754787e+03 2.12585843e+03 2.15455109e+03 2.18363101e+03 2.21310343e+03 + 2.24297363e+03 2.27324699e+03 2.30392895e+03 2.33502503e+03 2.36654081e+03 + 2.39848195e+03 2.43085420e+03 2.46366339e+03 2.49691539e+03 2.53061620e+03 + 2.56477187e+03 2.59938853e+03 2.63447242e+03 2.67002983e+03 2.70606716e+03 + 2.74259088e+03 2.77960756e+03 2.81712386e+03 2.85514651e+03 2.89368236e+03 + 2.93273832e+03 2.97232142e+03 3.01243877e+03 3.05309759e+03 3.09430517e+03 + 3.13606893e+03 3.17839638e+03 3.22129512e+03 3.26477287e+03 3.30883743e+03 + 3.35349673e+03 3.39875879e+03 3.44463176e+03 3.49112387e+03 3.53824349e+03 + 3.58599907e+03 3.63439922e+03 3.68345262e+03 3.73316809e+03 3.78355457e+03 + 3.83462112e+03 3.88637691e+03 3.93883124e+03 3.99199356e+03 4.04587340e+03 + 4.10048045e+03 4.15582454e+03 4.21191561e+03 4.26876373e+03 4.32637913e+03 + 4.38477217e+03 4.44395333e+03 4.50393327e+03 4.56472275e+03 4.62633270e+03 + 4.68877420e+03 4.75205848e+03 4.81619690e+03 4.88120099e+03 4.94708244e+03 + 5.01385310e+03 5.08152495e+03 5.15011018e+03 5.21962109e+03 5.29007019e+03 + 5.36147014e+03 5.43383378e+03 5.50717410e+03 5.58150430e+03 5.65683773e+03 + 5.73318793e+03 5.81056864e+03 5.88899374e+03 5.96847735e+03 6.04903375e+03 + 6.13067741e+03 6.21342302e+03 6.29728544e+03 6.38227975e+03 6.46842123e+03 + 6.55572536e+03 6.64420783e+03 6.73388454e+03 6.82477162e+03 6.91688540e+03 + 7.01024244e+03 7.10485951e+03 7.20075363e+03 7.29794203e+03 7.39644218e+03 + 7.49627178e+03 7.59744879e+03 7.69999137e+03 7.80391797e+03 7.90924727e+03 + 8.01599819e+03 8.12418992e+03 8.23384192e+03 8.34497389e+03 8.45760580e+03 + 8.57175791e+03 8.68745072e+03 8.80470504e+03 8.92354193e+03 9.04398276e+03 + 9.16604918e+03 9.28976313e+03 9.41514684e+03 9.54222285e+03 9.67101401e+03 + 9.80154345e+03 9.93383465e+03 1.00679114e+04 1.02037977e+04 1.03415182e+04 + 1.04810974e+04 1.06225605e+04 1.07659329e+04 1.09112405e+04 1.10585092e+04 + 1.12077657e+04 1.13590366e+04 1.15123493e+04 1.16677312e+04 1.18252103e+04 + 1.19848148e+04 1.21465736e+04 1.23105156e+04 1.24766704e+04 1.26450677e+04 + 1.28157379e+04 1.29887116e+04 1.31640199e+04 1.33416944e+04 1.35217669e+04 + 1.37042699e+04 1.38892361e+04 1.40766987e+04 1.42666916e+04 1.44592488e+04 + 1.46544049e+04 1.48521951e+04 1.50526548e+04 1.52558201e+04 1.54617276e+04 + 1.56704142e+04 1.58819174e+04 1.60962752e+04 1.63135263e+04 1.65337095e+04 + 1.67568646e+04 1.69830316e+04 1.72122512e+04 1.74445645e+04 1.76800134e+04 + 1.79186401e+04 1.81604876e+04 1.84055993e+04 1.86540192e+04 1.89057921e+04 + 1.91609631e+04 1.94195781e+04 1.96816837e+04 1.99473269e+04 2.02165555e+04 + 2.04894179e+04 2.07659631e+04 2.10462408e+04 2.13303014e+04 2.16181960e+04 + 2.19099763e+04 2.22056947e+04 2.25054044e+04 2.28091593e+04 2.31170140e+04 + 2.34290238e+04 2.37452448e+04 2.40657338e+04 2.43905484e+04 2.47197470e+04 + 2.50533889e+04 2.53915339e+04 2.57342428e+04 2.60815773e+04 2.64335997e+04 + 2.67903734e+04 2.71519624e+04 2.75184318e+04 2.78898474e+04 2.82662760e+04 + 2.86477853e+04 2.90344437e+04 2.94263209e+04 2.98234873e+04 3.02260142e+04 + 3.06339740e+04 3.10474400e+04 3.14664865e+04 3.18911890e+04 3.23216236e+04 + 3.27578678e+04 3.31999999e+04 3.36480995e+04 3.41022471e+04 3.45625243e+04 + 3.50290139e+04 3.55017997e+04 3.59809666e+04 3.64666009e+04 3.69587897e+04 + 3.74576216e+04 3.79631862e+04 3.84755745e+04 3.89948784e+04 3.95211913e+04 + 4.00546079e+04 4.05952240e+04 4.11431368e+04 4.16984447e+04 4.22612476e+04 + 4.28316467e+04 4.34097444e+04 4.39956447e+04 4.45894528e+04 4.51912756e+04 + 4.58012212e+04 4.64193992e+04 4.70459207e+04 4.76808984e+04 4.83244463e+04 + 4.89766802e+04 4.96377173e+04 5.03076764e+04 5.09866779e+04 5.16748439e+04 + 5.23722980e+04 5.30791657e+04 5.37955739e+04 5.45216515e+04 5.52575289e+04 + 5.60033385e+04 5.67592142e+04 5.75252919e+04 5.83017094e+04 5.90886062e+04 + 5.98861237e+04 6.06944053e+04 6.15135963e+04 6.23438438e+04 6.31852972e+04 + 6.40381076e+04 6.49024284e+04 6.57784150e+04 6.66662247e+04 6.75660171e+04 + 6.84779540e+04 6.94021994e+04 7.03389192e+04 7.12882819e+04 7.22504581e+04 + 7.32256209e+04 7.42139453e+04 7.52156092e+04 7.62307924e+04 7.72596776e+04 + 7.83024497e+04 7.93592960e+04 8.04304065e+04 8.15159738e+04 8.26161929e+04 + 8.37312617e+04 8.48613806e+04 8.60067526e+04 8.71675837e+04 8.83440825e+04 + 8.95364604e+04 9.07449319e+04 9.19697141e+04 9.32110271e+04 9.44690942e+04 + 9.57441413e+04 9.70363977e+04 9.83460956e+04 9.96734705e+04 1.01018761e+05 + 1.02382209e+05 1.03764059e+05 1.05164560e+05 1.06583964e+05 1.08022525e+05 + 1.09480502e+05 1.10958158e+05 1.12455758e+05 1.13973570e+05 1.15511869e+05 + 1.17070930e+05 1.18651033e+05 1.20252464e+05 1.21875508e+05 1.23520459e+05 + 1.25187612e+05 1.26877266e+05 1.28589725e+05 1.30325298e+05 1.32084295e+05 + 1.33867034e+05 1.35673834e+05 1.37505020e+05 1.39360922e+05 1.41241873e+05 + 1.43148212e+05 1.45080280e+05 1.47038425e+05 1.49022999e+05 1.51034359e+05 + 1.53072866e+05 1.55138887e+05 1.57232793e+05 1.59354960e+05 1.61505770e+05 + 1.63685609e+05 1.65894870e+05 1.68133949e+05 1.70403249e+05 1.72703178e+05 + 1.75034149e+05 1.77396580e+05 1.79790898e+05 1.82217531e+05 1.84676917e+05 + 1.87169497e+05 1.89695719e+05 1.92256038e+05 1.94850913e+05 1.97480811e+05 + 2.00146205e+05 2.02847573e+05 2.05585402e+05 2.08360183e+05 2.11172416e+05 + 2.14022605e+05 2.16911263e+05 2.19838909e+05 2.22806069e+05 2.25813278e+05 + 2.28861074e+05 2.31950007e+05 2.35080630e+05 2.38253508e+05 2.41469210e+05 + 2.44728314e+05 2.48031406e+05 2.51379080e+05 2.54771938e+05 2.58210588e+05 + 2.61695651e+05 2.65227751e+05 2.68807523e+05 2.72435612e+05 2.76112669e+05 + 2.79839355e+05 2.83616340e+05 2.87444303e+05 2.91323932e+05 2.95255924e+05 + 2.99240986e+05 3.03279835e+05 3.07373196e+05 3.11521804e+05 3.15726407e+05 + 3.19987758e+05 3.24306626e+05 3.28683784e+05 3.33120022e+05 3.37616135e+05 + 3.42172931e+05 3.46791231e+05 3.51471864e+05 3.56215672e+05 3.61023506e+05 + 3.65896232e+05 3.70834725e+05 3.75839872e+05 3.80912574e+05 3.86053742e+05 + 3.91264300e+05 3.96545185e+05 4.01897346e+05 4.07321745e+05 4.12819356e+05 + 4.18391169e+05 4.24038185e+05 4.29761418e+05 4.35561898e+05 4.41440667e+05 + 4.47398781e+05 4.53437311e+05 4.59557344e+05 4.65759979e+05 4.72046330e+05 + 4.78417528e+05 4.84874718e+05 4.91419060e+05 4.98051732e+05 5.04773924e+05 + 5.11586846e+05 5.18491721e+05 5.25489792e+05 5.32582315e+05 5.39770566e+05 + 5.47055836e+05 5.54439436e+05 5.61922691e+05 5.69506949e+05 5.77193570e+05 + 5.84983938e+05 5.92879453e+05 6.00881532e+05 6.08991616e+05 6.17211161e+05 + 6.25541646e+05 6.33984566e+05 6.42541441e+05 6.51213808e+05 6.60003225e+05 + 3.33422613e-07 3.37922810e-07 3.42483747e-07 3.47106241e-07 3.51791126e-07 + 3.56539243e-07 3.61351444e-07 3.66228596e-07 3.71171575e-07 3.76181269e-07 + 3.81258578e-07 3.86404416e-07 3.91619707e-07 3.96905389e-07 4.02262412e-07 + 4.07691738e-07 4.13194344e-07 4.18771218e-07 4.24423363e-07 4.30151795e-07 + 4.35957544e-07 4.41841652e-07 4.47805178e-07 4.53849194e-07 4.59974786e-07 + 4.66183055e-07 4.72475116e-07 4.78852102e-07 4.85315157e-07 4.91865444e-07 + 4.98504140e-07 5.05232439e-07 5.12051549e-07 5.18962697e-07 5.25967124e-07 + 5.33066089e-07 5.40260870e-07 5.47552758e-07 5.54943064e-07 5.62433118e-07 + 5.70024264e-07 5.77717868e-07 5.85515312e-07 5.93417998e-07 6.01427347e-07 + 6.09544798e-07 6.17771809e-07 6.26109861e-07 6.34560451e-07 6.43125098e-07 + 6.51805342e-07 6.60602743e-07 6.69518883e-07 6.78555363e-07 6.87713809e-07 + 6.96995865e-07 7.06403202e-07 7.15937509e-07 7.25600501e-07 7.35393913e-07 + 7.45319507e-07 7.55379067e-07 7.65574400e-07 7.75907340e-07 7.86379743e-07 + 7.96993491e-07 8.07750493e-07 8.18652683e-07 8.29702018e-07 8.40900487e-07 + 8.52250101e-07 8.63752900e-07 8.75410952e-07 8.87226353e-07 8.99201226e-07 + 9.11337723e-07 9.23638027e-07 9.36104347e-07 9.48738925e-07 9.61544032e-07 + 9.74521969e-07 9.87675069e-07 1.00100570e-06 1.01451625e-06 1.02820915e-06 + 1.04208686e-06 1.05615188e-06 1.07040674e-06 1.08485399e-06 1.09949624e-06 + 1.11433612e-06 1.12937629e-06 1.14461945e-06 1.16006835e-06 1.17572577e-06 + 1.19159451e-06 1.20767743e-06 1.22397743e-06 1.24049742e-06 1.25724038e-06 + 1.27420933e-06 1.29140730e-06 1.30883739e-06 1.32650274e-06 1.34440652e-06 + 1.36255194e-06 1.38094227e-06 1.39958082e-06 1.41847092e-06 1.43761599e-06 + 1.45701946e-06 1.47668482e-06 1.49661560e-06 1.51681538e-06 1.53728780e-06 + 1.55803654e-06 1.57906532e-06 1.60037793e-06 1.62197819e-06 1.64386999e-06 + 1.66605727e-06 1.68854400e-06 1.71133424e-06 1.73443208e-06 1.75784167e-06 + 1.78156721e-06 1.80561298e-06 1.82998330e-06 1.85468254e-06 1.87971515e-06 + 1.90508562e-06 1.93079851e-06 1.95685845e-06 1.98327013e-06 2.01003828e-06 + 2.03716771e-06 2.06466332e-06 2.09253003e-06 2.12077286e-06 2.14939688e-06 + 2.17840724e-06 2.20780915e-06 2.23760790e-06 2.26780884e-06 2.29841740e-06 + 2.32943908e-06 2.36087947e-06 2.39274420e-06 2.42503901e-06 2.45776971e-06 + 2.49094216e-06 2.52456235e-06 2.55863631e-06 2.59317016e-06 2.62817012e-06 + 2.66364247e-06 2.69959359e-06 2.73602994e-06 2.77295807e-06 2.81038462e-06 + 2.84831631e-06 2.88675997e-06 2.92572250e-06 2.96521091e-06 3.00523229e-06 + 3.04579384e-06 3.08690284e-06 3.12856670e-06 3.17079289e-06 3.21358900e-06 + 3.25696274e-06 3.30092189e-06 3.34547435e-06 3.39062814e-06 3.43639136e-06 + 3.48277226e-06 3.52977915e-06 3.57742050e-06 3.62570485e-06 3.67464091e-06 + 3.72423745e-06 3.77450339e-06 3.82544777e-06 3.87707975e-06 3.92940860e-06 + 3.98244374e-06 4.03619469e-06 4.09067111e-06 4.14588280e-06 4.20183968e-06 + 4.25855181e-06 4.31602938e-06 4.37428273e-06 4.43332232e-06 4.49315877e-06 + 4.55380282e-06 4.61526539e-06 4.67755752e-06 4.74069040e-06 4.80467539e-06 + 4.86952397e-06 4.93524782e-06 5.00185875e-06 5.06936871e-06 5.13778986e-06 + 5.20713449e-06 5.27741506e-06 5.34864421e-06 5.42083473e-06 5.49399961e-06 + 5.56815199e-06 5.64330520e-06 5.71947276e-06 5.79666835e-06 5.87490584e-06 + 5.95419930e-06 6.03456299e-06 6.11601134e-06 6.19855900e-06 6.28222081e-06 + 6.36701179e-06 6.45294720e-06 6.54004247e-06 6.62831327e-06 6.71777545e-06 + 6.80844511e-06 6.90033853e-06 6.99347224e-06 7.08786296e-06 7.18352768e-06 + 7.28048358e-06 7.37874810e-06 7.47833888e-06 7.57927385e-06 7.68157112e-06 + 7.78524911e-06 7.89032643e-06 7.99682198e-06 8.10475489e-06 8.21414458e-06 + 8.32501069e-06 8.43737316e-06 8.55125218e-06 8.66666823e-06 8.78364205e-06 + 8.90219465e-06 9.02234736e-06 9.14412177e-06 9.26753976e-06 9.39262353e-06 + 9.51939554e-06 9.64787860e-06 9.77809578e-06 9.91007051e-06 1.00438265e-05 + 1.01793878e-05 1.03167787e-05 1.04560241e-05 1.05971488e-05 1.07401782e-05 + 1.08851382e-05 1.10320546e-05 1.11809540e-05 1.13318631e-05 1.14848089e-05 + 1.16398191e-05 1.17969215e-05 1.19561443e-05 1.21175161e-05 1.22810659e-05 + 1.24468231e-05 1.26148176e-05 1.27850795e-05 1.29576394e-05 1.31325284e-05 + 1.33097778e-05 1.34894195e-05 1.36714859e-05 1.38560096e-05 1.40430239e-05 + 1.42325622e-05 1.44246588e-05 1.46193481e-05 1.48166650e-05 1.50166452e-05 + 1.52193245e-05 1.54247394e-05 1.56329267e-05 1.58439240e-05 1.60577690e-05 + 1.62745004e-05 1.64941569e-05 1.67167781e-05 1.69424041e-05 1.71710753e-05 + 1.74028329e-05 1.76377185e-05 1.78757744e-05 1.81170433e-05 1.83615686e-05 + 1.86093943e-05 1.88605648e-05 1.91151254e-05 1.93731218e-05 1.96346004e-05 + 1.98996081e-05 2.01681926e-05 2.04404022e-05 2.07162859e-05 2.09958931e-05 + 2.12792742e-05 2.15664800e-05 2.18575623e-05 2.21525733e-05 2.24515660e-05 + 2.27545943e-05 2.30617125e-05 2.33729759e-05 2.36884404e-05 2.40081627e-05 + 2.43322003e-05 2.46606114e-05 2.49934551e-05 2.53307912e-05 2.56726803e-05 + 2.60191838e-05 2.63703641e-05 2.67262843e-05 2.70870083e-05 2.74526010e-05 + 2.78231281e-05 2.81986562e-05 2.85792528e-05 2.89649863e-05 2.93559260e-05 + 2.97521423e-05 3.01537062e-05 3.05606901e-05 3.09731670e-05 3.13912111e-05 + 3.18148975e-05 3.22443024e-05 3.26795030e-05 3.31205775e-05 3.35676051e-05 + 3.40206663e-05 3.44798424e-05 3.49452160e-05 3.54168708e-05 3.58948914e-05 + 3.63793639e-05 3.68703753e-05 3.73680139e-05 3.78723691e-05 3.83835316e-05 + 3.89015932e-05 3.94266470e-05 3.99587876e-05 4.04981104e-05 4.10447124e-05 + 4.15986919e-05 4.21601485e-05 4.27291830e-05 4.33058977e-05 4.38903964e-05 + 4.44827840e-05 4.50831671e-05 4.56916535e-05 4.63083527e-05 4.69333754e-05 + 4.75668341e-05 4.82088425e-05 4.88595161e-05 4.95189718e-05 5.01873282e-05 + 5.08647054e-05 5.15512251e-05 5.22470108e-05 5.29521874e-05 5.36668818e-05 + 5.43912225e-05 5.51253395e-05 5.58693649e-05 5.66234324e-05 5.73876775e-05 + 5.81622376e-05 5.89472519e-05 5.97428616e-05 6.05492096e-05 6.13664408e-05 + 6.21947022e-05 6.30341426e-05 6.38849129e-05 6.47471661e-05 6.56210570e-05 + 6.65067429e-05 6.74043828e-05 6.83141382e-05 6.92361725e-05 7.01706514e-05 + 7.11177430e-05 7.20776175e-05 7.30504474e-05 7.40364076e-05 7.50356752e-05 + 7.60484299e-05 7.70748537e-05 7.81151312e-05 7.91694493e-05 8.02379974e-05 + 8.13209678e-05 8.24185549e-05 8.35309562e-05 8.46583715e-05 8.58010036e-05 + 8.69590577e-05 8.81327420e-05 8.93222675e-05 9.05278480e-05 9.17497002e-05 + 9.29880438e-05 9.42431012e-05 9.55150981e-05 9.68042631e-05 9.81108279e-05 + 9.94350274e-05 1.00777100e-04 1.02137286e-04 1.03515830e-04 1.04912981e-04 + 1.06328989e-04 1.07764109e-04 1.09218598e-04 1.10692719e-04 1.12186736e-04 + 1.13700918e-04 1.15235536e-04 1.16790868e-04 1.18367191e-04 1.19964790e-04 + 1.21583952e-04 1.23224968e-04 1.24888133e-04 1.26573745e-04 1.28282107e-04 + 1.30013528e-04 1.31768318e-04 1.33546791e-04 1.35349269e-04 1.37176075e-04 + 1.39027537e-04 1.40903989e-04 1.42805766e-04 1.44733212e-04 1.46686673e-04 + 1.48666500e-04 1.50673048e-04 1.52706678e-04 1.54767757e-04 1.56856654e-04 + 1.58973744e-04 1.61119409e-04 1.63294034e-04 1.65498009e-04 1.67731732e-04 + 1.69995603e-04 1.72290030e-04 1.74615424e-04 1.76972205e-04 1.79360794e-04 + 1.81781623e-04 1.84235125e-04 1.86721742e-04 1.89241921e-04 1.91796114e-04 + 1.94384782e-04 1.97008389e-04 1.99667406e-04 2.02362313e-04 2.05093592e-04 + 2.07861735e-04 2.10667240e-04 2.13510611e-04 2.16392358e-04 2.19313001e-04 + 2.22273063e-04 2.25273078e-04 2.28313583e-04 2.31395126e-04 2.34518260e-04 + 2.37683548e-04 2.40891557e-04 2.44142865e-04 2.47438055e-04 2.50777721e-04 + 2.54162461e-04 2.57592886e-04 2.61069611e-04 2.64593261e-04 2.68164470e-04 + 2.71783880e-04 2.75452140e-04 2.79169911e-04 2.82937861e-04 2.86756667e-04 + 2.90627015e-04 2.94549600e-04 2.98525129e-04 3.02554316e-04 3.06637884e-04 + 3.10776569e-04 3.14971112e-04 3.19222270e-04 3.23530805e-04 3.27897493e-04 + 3.32323118e-04 3.36808475e-04 3.41354371e-04 3.45961623e-04 3.50631058e-04 + 3.55363517e-04 3.60159850e-04 3.65020919e-04 3.69947598e-04 3.74940772e-04 + 3.80001338e-04 3.85130207e-04 3.90328301e-04 3.95596553e-04 4.00935910e-04 + 4.06347332e-04 4.11831792e-04 4.17390276e-04 4.23023783e-04 4.28733325e-04 + 4.34519928e-04 4.40384633e-04 4.46328494e-04 4.52352579e-04 4.58457971e-04 + 4.64645768e-04 4.70917081e-04 4.77273037e-04 4.83714780e-04 4.90243467e-04 + 4.96860271e-04 5.03566382e-04 5.10363006e-04 5.17251363e-04 5.24232693e-04 + 5.31308249e-04 5.38479303e-04 5.45747146e-04 5.53113082e-04 5.60578436e-04 + 5.68144550e-04 5.75812783e-04 5.83584515e-04 5.91461141e-04 5.99444078e-04 + 6.07534760e-04 6.15734643e-04 6.24045198e-04 6.32467922e-04 6.41004326e-04 + 6.49655946e-04 6.58424337e-04 6.67311075e-04 6.76317756e-04 6.85446001e-04 + 6.94697449e-04 7.04073764e-04 7.13576631e-04 7.23207758e-04 7.32968876e-04 + 7.42861739e-04 7.52888126e-04 7.63049839e-04 7.73348705e-04 7.83786574e-04 + 7.94365323e-04 8.05086852e-04 8.15953090e-04 8.26965990e-04 8.38127530e-04 + 8.49439717e-04 8.60904585e-04 8.72524194e-04 8.84300632e-04 8.96236017e-04 + 9.08332493e-04 9.20592235e-04 9.33017446e-04 9.45610360e-04 9.58373241e-04 + 9.71308382e-04 9.84418108e-04 9.97704775e-04 1.01117077e-03 1.02481852e-03 + 1.03865047e-03 1.05266911e-03 1.06687696e-03 1.08127658e-03 1.09587054e-03 + 1.11066148e-03 1.12565205e-03 1.14084495e-03 1.15624291e-03 1.17184869e-03 + 1.18766510e-03 1.20369499e-03 1.21994123e-03 1.23640675e-03 1.25309450e-03 + 1.27000749e-03 1.28714875e-03 1.30452137e-03 1.32212846e-03 1.33997320e-03 + 1.35805878e-03 1.37638847e-03 1.39496555e-03 1.41379337e-03 1.43287530e-03 + 1.45221479e-03 1.47181530e-03 1.49168035e-03 1.51181353e-03 1.53221844e-03 + 1.55289875e-03 1.57385819e-03 1.59510052e-03 1.61662955e-03 1.63844916e-03 + 1.66056327e-03 1.68297585e-03 1.70569094e-03 1.72871261e-03 1.75204500e-03 + 1.77569231e-03 1.79965879e-03 1.82394874e-03 1.84856653e-03 1.87351659e-03 + 1.89880340e-03 1.92443150e-03 1.95040551e-03 1.97673009e-03 2.00340997e-03 + 2.03044994e-03 2.05785488e-03 2.08562970e-03 2.11377939e-03 2.14230902e-03 + 2.17122371e-03 2.20052867e-03 2.23022915e-03 2.26033050e-03 2.29083813e-03 + 2.32175752e-03 2.35309422e-03 2.38485388e-03 2.41704219e-03 2.44966495e-03 + 2.48272802e-03 2.51623735e-03 2.55019894e-03 2.58461891e-03 2.61950345e-03 + 2.65485883e-03 2.69069140e-03 2.72700759e-03 2.76381395e-03 2.80111708e-03 + 2.83892369e-03 2.87724058e-03 2.91607463e-03 2.95543282e-03 2.99532222e-03 + 3.03575001e-03 3.07672346e-03 3.11824992e-03 3.16033687e-03 3.20299186e-03 + 3.24622256e-03 3.29003675e-03 3.33444230e-03 3.37944719e-03 3.42505951e-03 + 3.47128745e-03 3.51813934e-03 3.56562358e-03 3.61374872e-03 3.66252340e-03 + 3.71195639e-03 3.76205657e-03 3.81283296e-03 3.86429468e-03 3.91645097e-03 + 3.96931122e-03 4.02288492e-03 4.07718170e-03 4.13221132e-03 4.18798368e-03 + 4.24450880e-03 4.30179683e-03 4.35985808e-03 4.41870298e-03 4.47834211e-03 + 4.53878618e-03 4.60004607e-03 4.66213279e-03 4.72505748e-03 4.78883147e-03 + 4.85346621e-03 4.91897333e-03 4.98536460e-03 5.05265194e-03 5.12084747e-03 + 5.18996342e-03 5.26001224e-03 5.33100650e-03 5.40295896e-03 5.47588257e-03 + 5.54979043e-03 5.62469582e-03 5.70061220e-03 5.77755323e-03 5.85553273e-03 + 5.93456471e-03 6.01466339e-03 6.09584316e-03 6.17811861e-03 6.26150453e-03 + 6.34601591e-03 6.43166793e-03 6.51847600e-03 6.60645572e-03 6.69562289e-03 + 6.78599356e-03 6.87758395e-03 6.97041054e-03 7.06449000e-03 7.15983925e-03 + 7.25647543e-03 7.35441591e-03 7.45367829e-03 7.55428040e-03 7.65624035e-03 + 7.75957644e-03 7.86430726e-03 7.97045163e-03 8.07802862e-03 8.18705758e-03 + 8.29755810e-03 8.40955005e-03 8.52305354e-03 8.63808899e-03 8.75467707e-03 + 8.87283874e-03 8.99259524e-03 9.11396808e-03 9.23697909e-03 9.36165038e-03 + 9.48800435e-03 9.61606372e-03 9.74585150e-03 9.87739102e-03 1.00107059e-02 + 1.01458202e-02 1.02827581e-02 1.04215442e-02 1.05622036e-02 1.07047614e-02 + 1.08492433e-02 1.09956753e-02 1.11440836e-02 1.12944951e-02 1.14469366e-02 + 1.16014356e-02 1.17580199e-02 1.19167176e-02 1.20775573e-02 1.22405678e-02 + 1.24057784e-02 1.25732189e-02 1.27429194e-02 1.29149103e-02 1.30892225e-02 + 1.32658874e-02 1.34449368e-02 1.36264028e-02 1.38103180e-02 1.39967155e-02 + 1.41856289e-02 1.43770920e-02 1.45711392e-02 1.47678056e-02 1.49671263e-02 + 1.51691372e-02 1.53738747e-02 1.55813755e-02 1.57916770e-02 1.60048169e-02 + 1.62208335e-02 1.64397657e-02 1.66616528e-02 1.68865348e-02 1.71144519e-02 + 1.73454453e-02 1.75795563e-02 1.78168272e-02 1.80573005e-02 1.83010194e-02 + 1.85480279e-02 1.87983701e-02 1.90520913e-02 1.93092369e-02 1.95698532e-02 + 1.98339871e-02 2.01016859e-02 2.03729979e-02 2.06479718e-02 2.09266569e-02 + 2.12091035e-02 2.14953623e-02 2.17854847e-02 2.20795229e-02 2.23775297e-02 + 2.26795586e-02 2.29856641e-02 2.32959011e-02 2.36103253e-02 2.39289933e-02 + 2.42519623e-02 2.45792905e-02 2.49110366e-02 2.52472603e-02 2.55880219e-02 + 2.59333828e-02 2.62834051e-02 2.66381516e-02 2.69976861e-02 2.73620732e-02 + 2.77313785e-02 2.81056682e-02 2.84850098e-02 2.88694713e-02 2.92591218e-02 + 2.96540315e-02 3.00542712e-02 3.04599130e-02 3.08710297e-02 3.12876953e-02 + 3.17099846e-02 3.21379735e-02 3.25717389e-02 3.30113589e-02 3.34569125e-02 + 3.39084796e-02 3.43661415e-02 3.48299805e-02 3.53000800e-02 3.57765243e-02 + 3.62593992e-02 3.67487914e-02 3.72447890e-02 3.77474810e-02 3.82569579e-02 + 3.87733111e-02 3.92966336e-02 3.98270193e-02 4.03645636e-02 4.09093632e-02 + 4.14615159e-02 4.20211210e-02 4.25882791e-02 4.31630920e-02 4.37456633e-02 + 4.43360974e-02 4.49345007e-02 4.55409806e-02 4.61556461e-02 4.67786078e-02 + 4.74099775e-02 4.80498689e-02 4.86983968e-02 4.93556779e-02 5.00218303e-02 + 5.06969737e-02 5.13812296e-02 5.20747208e-02 5.27775721e-02 5.34899097e-02 + 5.42118618e-02 5.49435580e-02 5.56851299e-02 5.64367107e-02 5.71984357e-02 + 5.79704416e-02 5.87528673e-02 5.95458533e-02 6.03495423e-02 6.11640786e-02 + 6.19896087e-02 6.28262810e-02 6.36742458e-02 6.45336556e-02 6.54046648e-02 + 6.62874300e-02 6.71821099e-02 6.80888652e-02 6.90078590e-02 6.99392564e-02 + 7.08832249e-02 7.18399341e-02 7.28095560e-02 7.37922648e-02 7.47882373e-02 + 7.57976523e-02 7.68206914e-02 7.78575385e-02 7.89083798e-02 7.99734043e-02 + 8.10528035e-02 8.21467712e-02 8.32555042e-02 8.43792018e-02 8.55180659e-02 + 8.66723011e-02 8.78421151e-02 8.90277181e-02 9.02293231e-02 9.14471461e-02 + 9.26814060e-02 9.39323248e-02 9.52001271e-02 9.64850410e-02 9.77872973e-02 + 9.91071301e-02 1.00444777e-01 1.01800477e-01 1.03174476e-01 1.04567019e-01 + 1.05978358e-01 1.07408745e-01 1.08858439e-01 1.10327698e-01 1.11816789e-01 + 1.13325977e-01 1.14855535e-01 1.16405738e-01 1.17976863e-01 1.19569194e-01 + 1.21183017e-01 1.22818621e-01 1.24476301e-01 1.26156355e-01 1.27859084e-01 + 1.29584795e-01 1.31333798e-01 1.33106407e-01 1.34902941e-01 1.36723723e-01 + 1.38569080e-01 1.40439343e-01 1.42334850e-01 1.44255940e-01 1.46202959e-01 + 1.48176257e-01 1.50176188e-01 1.52203112e-01 1.54257394e-01 1.56339402e-01 + 1.58449512e-01 1.60588101e-01 1.62755555e-01 1.64952263e-01 1.67178619e-01 + 1.69435025e-01 1.71721886e-01 1.74039612e-01 1.76388620e-01 1.78769333e-01 + 1.81182179e-01 1.83627590e-01 1.86106008e-01 1.88617876e-01 1.91163647e-01 + 1.93743778e-01 1.96358733e-01 1.99008982e-01 2.01695002e-01 2.04417275e-01 + 2.07176290e-01 2.09972543e-01 2.12806537e-01 2.15678782e-01 2.18589794e-01 + 2.21540095e-01 2.24530216e-01 2.27560695e-01 2.30632076e-01 2.33744912e-01 + 2.36899762e-01 2.40097192e-01 2.43337778e-01 2.46622102e-01 2.49950755e-01 + 2.53324334e-01 2.56743447e-01 2.60208707e-01 2.63720738e-01 2.67280170e-01 + 2.70887644e-01 2.74543808e-01 2.78249320e-01 2.82004844e-01 2.85811057e-01 + 2.89668642e-01 2.93578293e-01 2.97540712e-01 3.01556612e-01 3.05626714e-01 + 3.09751751e-01 3.13932463e-01 3.18169601e-01 3.22463929e-01 3.26816217e-01 + 3.31227248e-01 3.35697814e-01 3.40228719e-01 3.44820778e-01 3.49474816e-01 + 3.54191669e-01 3.58972186e-01 3.63817225e-01 3.68727657e-01 3.73704366e-01 + 3.78748245e-01 3.83860201e-01 3.89041153e-01 3.94292032e-01 3.99613782e-01 + 4.05007360e-01 4.10473734e-01 4.16013889e-01 4.21628818e-01 4.27319532e-01 + 4.33087054e-01 4.38932419e-01 4.44856680e-01 4.50860900e-01 4.56946159e-01 + 4.63113550e-01 4.69364183e-01 4.75699180e-01 4.82119680e-01 4.88626838e-01 + 4.95221823e-01 5.01905820e-01 5.08680031e-01 5.15545673e-01 5.22503981e-01 + 5.29556205e-01 5.36703612e-01 5.43947488e-01 5.51289134e-01 5.58729871e-01 + 5.66271034e-01 5.73913981e-01 5.81660084e-01 5.89510737e-01 5.97467349e-01 + 6.05531351e-01 6.13704194e-01 6.21987345e-01 6.30382293e-01 6.38890548e-01 + 6.47513638e-01 6.56253114e-01 6.65110547e-01 6.74087528e-01 6.83185672e-01 + 6.92406612e-01 7.01752008e-01 7.11223538e-01 7.20822905e-01 7.30551835e-01 + 7.40412075e-01 7.50405399e-01 7.60533603e-01 7.70798507e-01 7.81201956e-01 + 7.91745820e-01 8.02431995e-01 8.13262400e-01 8.24238984e-01 8.35363718e-01 + 8.46638602e-01 8.58065663e-01 8.69646955e-01 8.81384559e-01 8.93280585e-01 + 9.05337172e-01 9.17556486e-01 9.29940724e-01 9.42492112e-01 9.55212906e-01 + 9.68105391e-01 9.81171887e-01 9.94414740e-01 1.00783633e+00 1.02143908e+00 + 1.03522541e+00 1.04919783e+00 1.06335883e+00 1.07771095e+00 1.09225679e+00 + 1.10699896e+00 1.12194010e+00 1.13708289e+00 1.15243007e+00 1.16798440e+00 + 1.18374865e+00 1.19972568e+00 1.21591835e+00 1.23232957e+00 1.24896229e+00 + 1.26581951e+00 1.28290424e+00 1.30021957e+00 1.31776860e+00 1.33555450e+00 + 1.35358044e+00 1.37184969e+00 1.39036551e+00 1.40913124e+00 1.42815025e+00 + 1.44742596e+00 1.46696183e+00 1.48676138e+00 1.50682816e+00 1.52716579e+00 + 1.54777791e+00 1.56866823e+00 1.58984051e+00 1.61129855e+00 1.63304621e+00 + 1.65508739e+00 1.67742607e+00 1.70006625e+00 1.72301200e+00 1.74626745e+00 + 1.76983678e+00 1.79372423e+00 1.81793408e+00 1.84247069e+00 1.86733848e+00 + 1.89254190e+00 1.91808549e+00 1.94397385e+00 1.97021161e+00 1.99680351e+00 + 2.02375432e+00 2.05106889e+00 2.07875211e+00 2.10680898e+00 2.13524453e+00 + 2.16406388e+00 2.19327220e+00 2.22287474e+00 2.25287683e+00 2.28328385e+00 + 2.31410128e+00 2.34533465e+00 2.37698957e+00 2.40907175e+00 2.44158693e+00 + 2.47454097e+00 2.50793979e+00 2.54178939e+00 2.57609587e+00 2.61086537e+00 + 2.64610416e+00 2.68181856e+00 2.71801500e+00 2.75469999e+00 2.79188011e+00 + 2.82956205e+00 2.86775258e+00 2.90645857e+00 2.94568697e+00 2.98544484e+00 + 3.02573931e+00 3.06657764e+00 3.10796717e+00 3.14991533e+00 3.19242966e+00 + 3.23551781e+00 3.27918751e+00 3.32344663e+00 3.36830311e+00 3.41376502e+00 + 3.45984052e+00 3.50653791e+00 3.55386557e+00 3.60183200e+00 3.65044585e+00 + 3.69971583e+00 3.74965080e+00 3.80025975e+00 3.85155177e+00 3.90353607e+00 + 3.95622200e+00 4.00961904e+00 4.06373677e+00 4.11858493e+00 4.17417337e+00 + 4.23051209e+00 4.28761121e+00 4.34548099e+00 4.40413185e+00 4.46357431e+00 + 4.52381907e+00 4.58487694e+00 4.64675892e+00 4.70947611e+00 4.77303980e+00 + 4.83746140e+00 4.90275251e+00 4.96892484e+00 5.03599030e+00 5.10396094e+00 + 5.17284898e+00 5.24266680e+00 5.31342695e+00 5.38514215e+00 5.45782528e+00 + 5.53148942e+00 5.60614780e+00 5.68181384e+00 5.75850115e+00 5.83622350e+00 + 5.91499487e+00 5.99482942e+00 6.07574149e+00 6.15774562e+00 6.24085657e+00 + 6.32508926e+00 6.41045884e+00 6.49698065e+00 6.58467024e+00 6.67354338e+00 + 6.76361604e+00 6.85490440e+00 6.94742488e+00 7.04119411e+00 7.13622894e+00 + 7.23254645e+00 7.33016396e+00 7.42909901e+00 7.52936938e+00 7.63099310e+00 + 7.73398843e+00 7.83837389e+00 7.94416823e+00 8.05139048e+00 8.16005991e+00 + 8.27019604e+00 8.38181868e+00 8.49494789e+00 8.60960400e+00 8.72580762e+00 + 8.84357964e+00 8.96294122e+00 9.08391382e+00 9.20651919e+00 9.33077936e+00 + 9.45671667e+00 9.58435375e+00 9.71371354e+00 9.84481930e+00 9.97769459e+00 + 1.01123633e+01 1.02488496e+01 1.03871781e+01 1.05273736e+01 1.06694613e+01 + 1.08134668e+01 1.09594159e+01 1.11073349e+01 1.12572503e+01 1.14091891e+01 + 1.15631787e+01 1.17192466e+01 1.18774210e+01 1.20377303e+01 1.22002032e+01 + 1.23648691e+01 1.25317574e+01 1.27008983e+01 1.28723220e+01 1.30460594e+01 + 1.32221418e+01 1.34006007e+01 1.35814683e+01 1.37647770e+01 1.39505599e+01 + 1.41388503e+01 1.43296820e+01 1.45230894e+01 1.47191072e+01 1.49177706e+01 + 1.51191154e+01 1.53231778e+01 1.55299943e+01 1.57396023e+01 1.59520393e+01 + 1.61673436e+01 1.63855539e+01 1.66067093e+01 1.68308497e+01 1.70580152e+01 + 1.72882469e+01 1.75215859e+01 1.77580743e+01 1.79977547e+01 1.82406699e+01 + 1.84868638e+01 1.87363806e+01 1.89892650e+01 1.92455627e+01 1.95053196e+01 + 1.97685824e+01 2.00353985e+01 2.03058158e+01 2.05798829e+01 2.08576491e+01 + 2.11391643e+01 2.14244791e+01 2.17136448e+01 2.20067133e+01 2.23037374e+01 + 2.26047704e+01 2.29098665e+01 2.32190804e+01 2.35324678e+01 2.38500849e+01 + 2.41719890e+01 2.44982377e+01 2.48288899e+01 2.51640048e+01 2.55036428e+01 + 2.58478648e+01 2.61967328e+01 2.65503095e+01 2.69086584e+01 2.72718439e+01 + 2.76399314e+01 2.80129869e+01 2.83910775e+01 2.87742712e+01 2.91626368e+01 + 2.95562442e+01 2.99551642e+01 3.03594683e+01 3.07692293e+01 3.11845209e+01 + 3.16054176e+01 3.20319952e+01 3.24643303e+01 3.29025005e+01 3.33465848e+01 + 3.37966629e+01 3.42528156e+01 3.47151251e+01 3.51836743e+01 3.56585475e+01 + 3.61398301e+01 3.66276085e+01 3.71219704e+01 3.76230048e+01 3.81308016e+01 + 3.86454521e+01 3.91670489e+01 3.96956856e+01 4.02314573e+01 4.07744603e+01 + 4.13247922e+01 4.18825520e+01 4.24478398e+01 4.30207573e+01 4.36014074e+01 + 4.41898946e+01 4.47863245e+01 4.53908045e+01 4.60034431e+01 4.66243504e+01 + 4.72536382e+01 4.78914194e+01 4.85378088e+01 4.91929224e+01 4.98568781e+01 + 5.05297952e+01 5.12117947e+01 5.19029990e+01 5.26035326e+01 5.33135212e+01 + 5.40330925e+01 5.47623759e+01 5.55015024e+01 5.62506048e+01 5.70098179e+01 + 5.77792780e+01 5.85591236e+01 5.93494947e+01 6.01505334e+01 6.09623837e+01 + 6.17851916e+01 6.26191048e+01 6.34642734e+01 6.43208492e+01 6.51889861e+01 + 6.60688403e+01 6.69605699e+01 6.78643351e+01 6.87802984e+01 6.97086245e+01 + 7.06494801e+01 7.16030345e+01 7.25694589e+01 7.35489272e+01 7.45416153e+01 + 7.55477017e+01 7.65673672e+01 7.76007951e+01 7.86481712e+01 7.97096837e+01 + 8.07855234e+01 8.18758837e+01 8.29809606e+01 8.41009526e+01 8.52360612e+01 + 8.63864902e+01 8.75524466e+01 8.87341399e+01 8.99317825e+01 9.11455896e+01 + 9.23757795e+01 9.36225732e+01 9.48861948e+01 9.61668715e+01 9.74648335e+01 + 9.87803140e+01 1.00113550e+02 1.01464780e+02 1.02834247e+02 1.04222199e+02 + 1.05628883e+02 1.07054554e+02 1.08499467e+02 1.09963881e+02 1.11448061e+02 + 1.12952273e+02 1.14476787e+02 1.16021878e+02 1.17587822e+02 1.19174902e+02 + 1.20783403e+02 1.22413614e+02 1.24065827e+02 1.25740341e+02 1.27437455e+02 + 1.29157476e+02 1.30900711e+02 1.32667475e+02 1.34458085e+02 1.36272862e+02 + 1.38112134e+02 1.39976230e+02 1.41865486e+02 1.43780241e+02 1.45720839e+02 + 1.47687630e+02 1.49680966e+02 1.51701207e+02 1.53748714e+02 1.55823857e+02 + 1.57927008e+02 1.60058545e+02 1.62218851e+02 1.64408315e+02 1.66627330e+02 + 1.68876296e+02 1.71155615e+02 1.73465698e+02 1.75806961e+02 1.78179823e+02 + 1.80584712e+02 1.83022059e+02 1.85492304e+02 1.87995889e+02 1.90533265e+02 + 1.93104888e+02 1.95711220e+02 1.98352730e+02 2.01029892e+02 2.03743187e+02 + 2.06493104e+02 2.09280137e+02 2.12104786e+02 2.14967559e+02 2.17868971e+02 + 2.20809543e+02 2.23789805e+02 2.26810290e+02 2.29871543e+02 2.32974114e+02 + 2.36118560e+02 2.39305447e+02 2.42535347e+02 2.45808840e+02 2.49126516e+02 + 2.52488971e+02 2.55896809e+02 2.59350642e+02 2.62851091e+02 2.66398786e+02 + 2.69994364e+02 2.73638472e+02 2.77331764e+02 2.81074904e+02 2.84868565e+02 + 2.88713429e+02 2.92610188e+02 2.96559540e+02 3.00562197e+02 3.04618878e+02 + 3.08730312e+02 3.12897238e+02 3.17120404e+02 3.21400571e+02 3.25738507e+02 + 3.30134991e+02 3.34590816e+02 3.39106780e+02 3.43683696e+02 3.48322387e+02 + 3.53023686e+02 3.57788438e+02 3.62617500e+02 3.67511740e+02 3.72472037e+02 + 3.77499283e+02 3.82594382e+02 3.87758249e+02 3.92991813e+02 3.98296014e+02 + 4.03671806e+02 4.09120155e+02 4.14642040e+02 4.20238453e+02 4.25910402e+02 + 4.31658904e+02 4.37484994e+02 4.43389719e+02 4.49374139e+02 4.55439331e+02 + 4.61586385e+02 4.67816405e+02 4.74130512e+02 4.80529841e+02 4.87015540e+02 + 4.93588778e+02 5.00250733e+02 5.07002606e+02 5.13845608e+02 5.20780970e+02 + 5.27809938e+02 5.34933776e+02 5.42153765e+02 5.49471201e+02 5.56887401e+02 + 5.64403697e+02 5.72021440e+02 5.79742000e+02 5.87566764e+02 5.95497138e+02 + 6.03534549e+02 6.11680440e+02 6.19936277e+02 6.28303542e+02 6.36783740e+02 + 6.45378395e+02 6.54089052e+02 6.62917276e+02 6.71864655e+02 6.80932796e+02 + 6.90123330e+02 6.99437908e+02 7.08878204e+02 7.18445917e+02 7.28142764e+02 + 7.37970490e+02 7.47930860e+02 7.58025665e+02 7.68256719e+02 7.78625862e+02 + 7.89134956e+02 7.99785892e+02 8.10580583e+02 8.21520970e+02 8.32609019e+02 + 8.43846723e+02 8.55236102e+02 8.66779204e+02 8.78478102e+02 8.90334900e+02 + 9.02351729e+02 9.14530748e+02 9.26874148e+02 9.39384146e+02 9.52062992e+02 + 9.64912963e+02 9.77936371e+02 9.91135555e+02 1.00451289e+03 1.01807077e+03 + 1.03181165e+03 1.04573799e+03 1.05985229e+03 1.07415709e+03 1.08865496e+03 + 1.10334851e+03 1.11824038e+03 1.13333325e+03 1.14862982e+03 1.16413285e+03 + 1.17984512e+03 1.19576946e+03 1.21190873e+03 1.22826584e+03 1.24484371e+03 + 1.26164534e+03 1.27867373e+03 1.29593196e+03 1.31342313e+03 1.33115037e+03 + 1.34911687e+03 1.36732587e+03 1.38578063e+03 1.40448448e+03 1.42344078e+03 + 1.44265292e+03 1.46212437e+03 1.48185863e+03 1.50185924e+03 1.52212980e+03 + 1.54267395e+03 1.56349538e+03 1.58459784e+03 1.60598512e+03 1.62766107e+03 + 1.64962957e+03 1.67189458e+03 1.69446010e+03 1.71733019e+03 1.74050895e+03 + 1.76400056e+03 1.78780923e+03 1.81193925e+03 1.83639495e+03 1.86118073e+03 + 1.88630105e+03 1.91176041e+03 1.93756339e+03 1.96371464e+03 1.99021885e+03 + 2.01708078e+03 2.04430527e+03 2.07189721e+03 2.09986156e+03 2.12820334e+03 + 2.15692765e+03 2.18603965e+03 2.21554458e+03 2.24544773e+03 2.27575449e+03 + 2.30647029e+03 2.33760066e+03 2.36915120e+03 2.40112758e+03 2.43353554e+03 + 2.46638092e+03 2.49966960e+03 2.53340758e+03 2.56760092e+03 2.60225577e+03 + 2.63737835e+03 2.67297499e+03 2.70905207e+03 2.74561608e+03 2.78267359e+03 + 2.82023127e+03 2.85829587e+03 2.89687422e+03 2.93597326e+03 2.97560002e+03 + 3.01576162e+03 3.05646529e+03 3.09771833e+03 3.13952816e+03 3.18190229e+03 + 3.22484835e+03 3.26837405e+03 3.31248722e+03 3.35719578e+03 3.40250777e+03 + 3.44843134e+03 3.49497473e+03 3.54214633e+03 3.58995459e+03 3.63840812e+03 + 3.68751563e+03 3.73728594e+03 3.78772800e+03 3.83885087e+03 3.89066375e+03 + 3.94317595e+03 3.99639690e+03 4.05033617e+03 4.10500346e+03 4.16040860e+03 + 4.21656153e+03 4.27347236e+03 4.33115132e+03 4.38960877e+03 4.44885521e+03 + 4.50890130e+03 4.56975784e+03 4.63143575e+03 4.69394613e+03 4.75730021e+03 + 4.82150937e+03 4.88658517e+03 4.95253929e+03 5.01938360e+03 5.08713010e+03 + 5.15579097e+03 5.22537856e+03 5.29590537e+03 5.36738408e+03 5.43982754e+03 + 5.51324876e+03 5.58766095e+03 5.66307747e+03 5.73951189e+03 5.81697795e+03 + 5.89548956e+03 5.97506084e+03 6.05570610e+03 6.13743982e+03 6.22027670e+03 + 6.30423162e+03 6.38931969e+03 6.47555618e+03 6.56295661e+03 6.65153668e+03 + 6.74131231e+03 6.83229964e+03 6.92451503e+03 7.01797504e+03 7.11269648e+03 + 7.20869638e+03 7.30599198e+03 7.40460078e+03 7.50454050e+03 7.60582911e+03 + 7.70848480e+03 7.81252604e+03 7.91797151e+03 8.02484019e+03 8.13315126e+03 + 8.24292421e+03 8.35417876e+03 8.46693492e+03 8.58121294e+03 8.69703336e+03 + 8.81441701e+03 8.93338499e+03 9.05395867e+03 9.17615974e+03 9.30001015e+03 + 9.42553216e+03 9.55274835e+03 9.68168156e+03 9.81235499e+03 9.94479211e+03 + 1.00790167e+04 1.02150530e+04 1.03529253e+04 1.04926585e+04 1.06342777e+04 + 1.07778082e+04 1.09232761e+04 1.10707073e+04 1.12201283e+04 1.13715661e+04 + 1.15250479e+04 1.16806012e+04 1.18382540e+04 1.19980346e+04 1.21599718e+04 + 1.23240947e+04 1.24904327e+04 1.26590157e+04 1.28298742e+04 1.30030387e+04 + 1.31785404e+04 1.33564108e+04 1.35366820e+04 1.37193863e+04 1.39045565e+04 + 1.40922260e+04 1.42824284e+04 1.44751980e+04 1.46705694e+04 1.48685777e+04 + 1.50692586e+04 1.52726480e+04 1.54787826e+04 1.56876993e+04 1.58994358e+04 + 1.61140301e+04 1.63315208e+04 1.65519470e+04 1.67753482e+04 1.70017647e+04 + 1.72312371e+04 1.74638067e+04 1.76995153e+04 1.79384052e+04 1.81805194e+04 + 1.84259015e+04 1.86745954e+04 1.89266460e+04 1.91820985e+04 1.94409988e+04 + 1.97033935e+04 1.99693297e+04 2.02388553e+04 2.05120186e+04 2.07888689e+04 + 2.10694557e+04 2.13538297e+04 2.16420418e+04 2.19341439e+04 2.22301885e+04 + 2.25302289e+04 2.28343188e+04 2.31425131e+04 2.34548670e+04 2.37714368e+04 + 2.40922793e+04 2.44174522e+04 2.47470140e+04 2.50810239e+04 2.54195419e+04 + 2.57626288e+04 2.61103464e+04 2.64627571e+04 2.68199243e+04 2.71819122e+04 + 2.75487858e+04 2.79206111e+04 2.82974550e+04 2.86793850e+04 2.90664700e+04 + 2.94587795e+04 2.98563839e+04 3.02593548e+04 3.06677646e+04 3.10816867e+04 + 3.15011955e+04 3.19263663e+04 3.23572758e+04 3.27940011e+04 3.32366210e+04 + 3.36852149e+04 3.41398634e+04 3.46006483e+04 3.50676525e+04 3.55409597e+04 + 3.60206552e+04 3.65068251e+04 3.69995569e+04 3.74989390e+04 3.80050613e+04 + 3.85180147e+04 3.90378914e+04 3.95647849e+04 4.00987899e+04 4.06400023e+04 + 4.11885195e+04 4.17444399e+04 4.23078636e+04 4.28788919e+04 4.34576272e+04 + 4.40441738e+04 4.46386370e+04 4.52411236e+04 4.58517419e+04 4.64706018e+04 + 4.70978144e+04 4.77334925e+04 4.83777503e+04 4.90307037e+04 4.96924699e+04 + 5.03631680e+04 5.10429184e+04 5.17318435e+04 5.24300670e+04 5.31377143e+04 + 5.38549128e+04 5.45817913e+04 5.53184804e+04 5.60651126e+04 5.68218221e+04 + 5.75887449e+04 5.83660188e+04 5.91537836e+04 5.99521808e+04 6.07613539e+04 + 6.15814485e+04 6.24126118e+04 6.32549933e+04 6.41087445e+04 6.49740187e+04 + 6.58509715e+04 6.67397605e+04 6.76405454e+04 6.85534882e+04 6.94787530e+04 + 7.04165061e+04 7.13669160e+04 7.23301536e+04 7.33063919e+04 7.42958066e+04 + 7.52985753e+04 7.63148784e+04 7.73448985e+04 7.83888207e+04 7.94468328e+04 + 8.05191248e+04 8.16058895e+04 8.27073222e+04 8.38236210e+04 8.49549864e+04 + 8.61016218e+04 8.72637334e+04 8.84415299e+04 8.96352231e+04 9.08450276e+04 + 9.20711608e+04 9.33138430e+04 9.45732977e+04 9.58497513e+04 9.71434331e+04 + 9.84545757e+04 9.97834147e+04 1.01130189e+05 1.02495141e+05 1.03878515e+05 + 1.05280561e+05 1.06701530e+05 1.08141678e+05 1.09601264e+05 1.11080550e+05 + 1.12579801e+05 1.14099288e+05 1.15639284e+05 1.17200064e+05 1.18781911e+05 + 1.20385107e+05 1.22009942e+05 1.23656707e+05 1.25325699e+05 1.27017217e+05 + 1.28731565e+05 1.30469052e+05 1.32229990e+05 1.34014695e+05 1.35823488e+05 + 1.37656695e+05 1.39514644e+05 1.41397670e+05 1.43306110e+05 1.45240310e+05 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 4.46340243e-06 4.52364487e-06 4.58470040e-06 4.64657999e-06 4.70929477e-06 + 4.77285601e-06 4.83727513e-06 4.90256372e-06 4.96873350e-06 5.03579638e-06 + 5.10376441e-06 5.17264979e-06 5.24246492e-06 5.31322235e-06 5.38493478e-06 + 5.45761512e-06 5.53127642e-06 5.60593193e-06 5.68159506e-06 5.75827941e-06 + 5.83599877e-06 5.91476711e-06 5.99459858e-06 6.07550753e-06 6.15750851e-06 + 6.24061626e-06 6.32484571e-06 6.41021200e-06 6.49673048e-06 6.58441669e-06 + 6.67328641e-06 6.76335560e-06 6.85464044e-06 6.94715736e-06 7.04092298e-06 + 7.13595415e-06 7.23226795e-06 7.32988170e-06 7.42881294e-06 7.52907945e-06 + 7.63069926e-06 7.73369062e-06 7.83807206e-06 7.94386233e-06 8.05108045e-06 + 8.15974569e-06 8.26987759e-06 8.38149593e-06 8.49462078e-06 8.60927247e-06 + 8.72547162e-06 8.84323910e-06 8.96259609e-06 9.08356403e-06 9.20616468e-06 + 9.33042007e-06 9.45635252e-06 9.58398469e-06 9.71333950e-06 9.84444021e-06 + 9.97731039e-06 1.01119739e-05 1.02484550e-05 1.03867781e-05 1.05269682e-05 + 1.06690505e-05 1.08130504e-05 1.09589939e-05 1.11069072e-05 1.12568168e-05 + 1.14087498e-05 1.15627334e-05 1.17187954e-05 1.18769637e-05 1.20372668e-05 + 1.21997335e-05 1.23643930e-05 1.25312749e-05 1.27004092e-05 1.28718263e-05 + 1.30455571e-05 1.32216326e-05 1.34000847e-05 1.35809453e-05 1.37642470e-05 + 1.39500227e-05 1.41383059e-05 1.43291302e-05 1.45225302e-05 1.47185404e-05 + 1.49171962e-05 1.51185332e-05 1.53225877e-05 1.55293963e-05 1.57389962e-05 + 1.59514251e-05 1.61667211e-05 1.63849229e-05 1.66060698e-05 1.68302016e-05 + 1.70573584e-05 1.72875812e-05 1.75209112e-05 1.77573905e-05 1.79970616e-05 + 1.82399675e-05 1.84861519e-05 1.87356591e-05 1.89885338e-05 1.92448216e-05 + 1.95045685e-05 1.97678212e-05 2.00346270e-05 2.03050339e-05 2.05790905e-05 + 2.08568460e-05 2.11383503e-05 2.14236541e-05 2.17128087e-05 2.20058659e-05 + 2.23028786e-05 2.26039000e-05 2.29089843e-05 2.32181863e-05 2.35315616e-05 + 2.38491666e-05 2.41710582e-05 2.44972944e-05 2.48279338e-05 2.51630358e-05 + 2.55026607e-05 2.58468695e-05 2.61957241e-05 2.65492872e-05 2.69076223e-05 + 2.72707938e-05 2.76388671e-05 2.80119082e-05 2.83899842e-05 2.87731632e-05 + 2.91615139e-05 2.95551061e-05 2.99540107e-05 3.03582993e-05 3.07680445e-05 + 3.11833201e-05 3.16042006e-05 3.20307617e-05 3.24630802e-05 3.29012336e-05 + 3.33453008e-05 3.37953615e-05 3.42514967e-05 3.47137883e-05 3.51823195e-05 + 3.56571744e-05 3.61384384e-05 3.66261981e-05 3.71205410e-05 3.76215561e-05 + 3.81293333e-05 3.86439640e-05 3.91655407e-05 3.96941570e-05 4.02299081e-05 + 4.07728902e-05 4.13232010e-05 4.18809392e-05 4.24462053e-05 4.30191007e-05 + 4.35997285e-05 4.41881930e-05 4.47846000e-05 4.53890566e-05 4.60016716e-05 + 4.66225551e-05 4.72518186e-05 4.78895753e-05 4.85359398e-05 4.91910282e-05 + 4.98549583e-05 5.05278495e-05 5.12098227e-05 5.19010004e-05 5.26015070e-05 + 5.33114683e-05 5.40310119e-05 5.47602672e-05 5.54993652e-05 5.62484388e-05 + 5.70076227e-05 5.77770532e-05 5.85568687e-05 5.93472093e-05 6.01482172e-05 + 6.09600363e-05 6.17828124e-05 6.26166936e-05 6.34618296e-05 6.43183724e-05 + 6.51864759e-05 6.60662962e-05 6.69579915e-05 6.78617219e-05 6.87776499e-05 + 6.97059402e-05 7.06467597e-05 7.16002773e-05 7.25666645e-05 7.35460951e-05 + 7.45387450e-05 7.55447926e-05 7.65644189e-05 7.75978070e-05 7.86451428e-05 + 7.97066144e-05 8.07824127e-05 8.18727310e-05 8.29777653e-05 8.40977142e-05 + 8.52327790e-05 8.63831638e-05 8.75490753e-05 8.87307231e-05 8.99283196e-05 + 9.11420799e-05 9.23722224e-05 9.36189681e-05 9.48825411e-05 9.61631685e-05 + 9.74610805e-05 9.87765104e-05 1.00109695e-04 1.01460873e-04 1.02830288e-04 + 1.04218186e-04 1.05624816e-04 1.07050432e-04 1.08495289e-04 1.09959647e-04 + 1.11443770e-04 1.12947924e-04 1.14472379e-04 1.16017410e-04 1.17583294e-04 + 1.19170313e-04 1.20778752e-04 1.22408900e-04 1.24061050e-04 1.25735499e-04 + 1.27432548e-04 1.29152502e-04 1.30895670e-04 1.32662366e-04 1.34452907e-04 + 1.36267615e-04 1.38106815e-04 1.39970840e-04 1.41860023e-04 1.43774704e-04 + 1.45715228e-04 1.47681943e-04 1.49675203e-04 1.51695365e-04 1.53742794e-04 + 1.55817857e-04 1.57920927e-04 1.60052382e-04 1.62212605e-04 1.64401985e-04 + 1.66620914e-04 1.68869793e-04 1.71149024e-04 1.73459019e-04 1.75800191e-04 + 1.78172962e-04 1.80577758e-04 1.83015012e-04 1.85485161e-04 1.87988650e-04 + 1.90525928e-04 1.93097452e-04 1.95703684e-04 1.98345092e-04 2.01022151e-04 + 2.03735342e-04 2.06485153e-04 2.09272078e-04 2.12096618e-04 2.14959281e-04 + 2.17860582e-04 2.20801041e-04 2.23781187e-04 2.26801557e-04 2.29862692e-04 + 2.32965143e-04 2.36109468e-04 2.39296232e-04 2.42526007e-04 2.45799375e-04 + 2.49116923e-04 2.52479249e-04 2.55886955e-04 2.59340655e-04 2.62840970e-04 + 2.66388528e-04 2.69983968e-04 2.73627935e-04 2.77321085e-04 2.81064081e-04 + 2.84857596e-04 2.88702312e-04 2.92598920e-04 2.96548121e-04 3.00550624e-04 + 3.04607148e-04 3.08718424e-04 3.12885189e-04 3.17108193e-04 3.21388195e-04 + 3.25725964e-04 3.30122279e-04 3.34577932e-04 3.39093722e-04 3.43670462e-04 + 3.48308974e-04 3.53010092e-04 3.57774661e-04 3.62603537e-04 3.67497588e-04 + 3.72457694e-04 3.77484747e-04 3.82579649e-04 3.87743318e-04 3.92976680e-04 + 3.98280677e-04 4.03656262e-04 4.09104401e-04 4.14626073e-04 4.20222271e-04 + 4.25894001e-04 4.31642283e-04 4.37468148e-04 4.43372645e-04 4.49356835e-04 + 4.55421794e-04 4.61568611e-04 4.67798392e-04 4.74112255e-04 4.80511337e-04 + 4.86996787e-04 4.93569771e-04 5.00231471e-04 5.06983083e-04 5.13825821e-04 + 5.20760916e-04 5.27789614e-04 5.34913178e-04 5.42132888e-04 5.49450043e-04 + 5.56865957e-04 5.64381964e-04 5.71999414e-04 5.79719676e-04 5.87544139e-04 + 5.95474208e-04 6.03511309e-04 6.11656887e-04 6.19912405e-04 6.28279348e-04 + 6.36759220e-04 6.45353544e-04 6.54063865e-04 6.62891749e-04 6.71838784e-04 + 6.80906576e-04 6.90096755e-04 6.99410975e-04 7.08850908e-04 7.18418252e-04 + 7.28114726e-04 7.37942073e-04 7.47902060e-04 7.57996476e-04 7.68227136e-04 + 7.78595880e-04 7.89104570e-04 7.99755095e-04 8.10549371e-04 8.21489336e-04 + 8.32576958e-04 8.43814230e-04 8.55203170e-04 8.66745827e-04 8.78444275e-04 + 8.90300616e-04 9.02316982e-04 9.14495533e-04 9.26838458e-04 9.39347974e-04 + 9.52026331e-04 9.64875808e-04 9.77898714e-04 9.91097390e-04 1.00447421e-03 + 1.01803157e-03 1.03177192e-03 1.04569772e-03 1.05981148e-03 1.07411573e-03 + 1.08861304e-03 1.10330603e-03 1.11819732e-03 1.13328960e-03 1.14858559e-03 + 1.16408802e-03 1.17979969e-03 1.19572342e-03 1.21186207e-03 1.22821854e-03 + 1.24479578e-03 1.26159676e-03 1.27862450e-03 1.29588206e-03 1.31337255e-03 + 1.33109911e-03 1.34906492e-03 1.36727322e-03 1.38572727e-03 1.40443040e-03 + 1.42338596e-03 1.44259737e-03 1.46206807e-03 1.48180157e-03 1.50180141e-03 + 1.52207119e-03 1.54261455e-03 1.56343518e-03 1.58453683e-03 1.60592328e-03 + 1.62759839e-03 1.64956605e-03 1.67183020e-03 1.69439485e-03 1.71726406e-03 + 1.74044193e-03 1.76393264e-03 1.78774039e-03 1.81186948e-03 1.83632424e-03 + 1.86110907e-03 1.88622841e-03 1.91168679e-03 1.93748878e-03 1.96363902e-03 + 1.99014221e-03 2.01700311e-03 2.04422656e-03 2.07181743e-03 2.09978070e-03 + 2.12812139e-03 2.15684460e-03 2.18595548e-03 2.21545927e-03 2.24536127e-03 + 2.27566685e-03 2.30638148e-03 2.33751065e-03 2.36905998e-03 2.40103512e-03 + 2.43344184e-03 2.46628594e-03 2.49957335e-03 2.53331003e-03 2.56750205e-03 + 2.60215557e-03 2.63727680e-03 2.67287206e-03 2.70894775e-03 2.74551035e-03 + 2.78256644e-03 2.82012268e-03 2.85818580e-03 2.89676267e-03 2.93586021e-03 + 2.97548544e-03 3.01564550e-03 3.05634759e-03 3.09759904e-03 3.13940726e-03 + 3.18177977e-03 3.22472418e-03 3.26824820e-03 3.31235967e-03 3.35706651e-03 + 3.40237675e-03 3.44829855e-03 3.49484016e-03 3.54200993e-03 3.58981635e-03 + 3.63826802e-03 3.68737364e-03 3.73714203e-03 3.78758215e-03 3.83870305e-03 + 3.89051394e-03 3.94302411e-03 3.99624301e-03 4.05018021e-03 4.10484540e-03 + 4.16024840e-03 4.21639917e-03 4.27330781e-03 4.33098454e-03 4.38943974e-03 + 4.44868390e-03 4.50872768e-03 4.56958187e-03 4.63125741e-03 4.69376538e-03 + 4.75711702e-03 4.82132372e-03 4.88639701e-03 4.95234859e-03 5.01919032e-03 + 5.08693421e-03 5.15559244e-03 5.22517735e-03 5.29570145e-03 5.36717740e-03 + 5.43961807e-03 5.51303646e-03 5.58744578e-03 5.66285941e-03 5.73929089e-03 + 5.81675396e-03 5.89526255e-03 5.97483077e-03 6.05547291e-03 6.13720349e-03 + 6.22003718e-03 6.30398887e-03 6.38907366e-03 6.47530683e-03 6.56270389e-03 + 6.65128055e-03 6.74105273e-03 6.83203656e-03 6.92424839e-03 7.01770481e-03 + 7.11242260e-03 7.20841880e-03 7.30571066e-03 7.40431566e-03 7.50425153e-03 + 7.60553623e-03 7.70818798e-03 7.81222521e-03 7.91766662e-03 8.02453118e-03 + 8.13283809e-03 8.24260681e-03 8.35385708e-03 8.46660889e-03 8.58088250e-03 + 8.69669847e-03 8.81407760e-03 8.93304100e-03 9.05361004e-03 9.17580640e-03 + 9.29965204e-03 9.42516922e-03 9.55238051e-03 9.68130876e-03 9.81197715e-03 + 9.94440917e-03 1.00786286e-02 1.02146596e-02 1.03525267e-02 1.04922545e-02 + 1.06338682e-02 1.07773932e-02 1.09228555e-02 1.10702810e-02 1.12196963e-02 + 1.13711283e-02 1.15246041e-02 1.16801514e-02 1.18377981e-02 1.19975726e-02 + 1.21595036e-02 1.23236201e-02 1.24899517e-02 1.26585283e-02 1.28293801e-02 + 1.30025380e-02 1.31780329e-02 1.33558965e-02 1.35361607e-02 1.37188580e-02 + 1.39040211e-02 1.40916833e-02 1.42818784e-02 1.44746406e-02 1.46700045e-02 + 1.48680052e-02 1.50686783e-02 1.52720599e-02 1.54781865e-02 1.56870952e-02 + 1.58988236e-02 1.61134096e-02 1.63308919e-02 1.65513096e-02 1.67747022e-02 + 1.70011100e-02 1.72305736e-02 1.74631342e-02 1.76988337e-02 1.79377144e-02 + 1.81798193e-02 1.84251919e-02 1.86738763e-02 1.89259172e-02 1.91813598e-02 + 1.94402502e-02 1.97026348e-02 1.99685608e-02 2.02380760e-02 2.05112288e-02 + 2.07880684e-02 2.10686444e-02 2.13530074e-02 2.16412084e-02 2.19332993e-02 + 2.22293325e-02 2.25293613e-02 2.28334396e-02 2.31416219e-02 2.34539639e-02 + 2.37705215e-02 2.40913516e-02 2.44165120e-02 2.47460611e-02 2.50800581e-02 + 2.54185630e-02 2.57616368e-02 2.61093410e-02 2.64617381e-02 2.68188916e-02 + 2.71808655e-02 2.75477250e-02 2.79195360e-02 2.82963653e-02 2.86782807e-02 + 2.90653508e-02 2.94576451e-02 2.98552342e-02 3.02581896e-02 3.06665837e-02 + 3.10804898e-02 3.14999825e-02 3.19251370e-02 3.23560298e-02 3.27927384e-02 + 3.32353412e-02 3.36839178e-02 3.41385488e-02 3.45993160e-02 3.50663021e-02 + 3.55395912e-02 3.60192682e-02 3.65054194e-02 3.69981322e-02 3.74974951e-02 + 3.80035979e-02 3.85165315e-02 3.90363882e-02 3.95632614e-02 4.00972458e-02 + 4.06384374e-02 4.11869334e-02 4.17428325e-02 4.23062345e-02 4.28772407e-02 + 4.34559538e-02 4.40424778e-02 4.46369181e-02 4.52393815e-02 4.58499764e-02 + 4.64688124e-02 4.70960009e-02 4.77316545e-02 4.83758875e-02 4.90288157e-02 + 4.96905564e-02 5.03612287e-02 5.10409530e-02 5.17298515e-02 5.24280481e-02 + 5.31356682e-02 5.38528390e-02 5.45796895e-02 5.53163503e-02 5.60629537e-02 + 5.68196341e-02 5.75865273e-02 5.83637713e-02 5.91515058e-02 5.99498722e-02 + 6.07590142e-02 6.15790772e-02 6.24102085e-02 6.32525576e-02 6.41062759e-02 + 6.49715168e-02 6.58484358e-02 6.67371905e-02 6.76379408e-02 6.85508485e-02 + 6.94760777e-02 7.04137946e-02 7.13641679e-02 7.23273684e-02 7.33035692e-02 + 7.42929457e-02 7.52956758e-02 7.63119398e-02 7.73419202e-02 7.83858022e-02 + 7.94437736e-02 8.05160243e-02 8.16027471e-02 8.27041375e-02 8.38203932e-02 + 8.49517151e-02 8.60983064e-02 8.72603732e-02 8.84381243e-02 8.96317716e-02 + 9.08415295e-02 9.20676154e-02 9.33102498e-02 9.45696561e-02 9.58460605e-02 + 9.71396924e-02 9.84507846e-02 9.97795725e-02 1.01126295e-01 1.02491194e-01 + 1.03874515e-01 1.05276507e-01 1.06697422e-01 1.08137514e-01 1.09597044e-01 + 1.11076272e-01 1.12575466e-01 1.14094895e-01 1.15634831e-01 1.17195551e-01 + 1.18777337e-01 1.20380472e-01 1.22005244e-01 1.23651946e-01 1.25320873e-01 + 1.27012326e-01 1.28726608e-01 1.30464028e-01 1.32224898e-01 1.34009535e-01 + 1.35818258e-01 1.37651394e-01 1.39509271e-01 1.41392225e-01 1.43300592e-01 + 1.45234717e-01 1.47194946e-01 1.49181633e-01 1.51195134e-01 1.53235811e-01 + 1.55304031e-01 1.57400166e-01 1.59524592e-01 1.61677692e-01 1.63859852e-01 + 1.66071465e-01 1.68312927e-01 1.70584643e-01 1.72887020e-01 1.75220472e-01 + 1.77585418e-01 1.79982284e-01 1.82411501e-01 1.84873504e-01 1.87368738e-01 + 1.89897649e-01 1.92460693e-01 1.95058331e-01 1.97691028e-01 2.00359259e-01 + 2.03063503e-01 2.05804247e-01 2.08581982e-01 2.11397208e-01 2.14250431e-01 + 2.17142164e-01 2.20072926e-01 2.23043245e-01 2.26053655e-01 2.29104696e-01 + 2.32196916e-01 2.35330873e-01 2.38507128e-01 2.41726253e-01 2.44988826e-01 + 2.48295435e-01 2.51646672e-01 2.55043141e-01 2.58485452e-01 2.61974224e-01 + 2.65510084e-01 2.69093668e-01 2.72725618e-01 2.76406590e-01 2.80137243e-01 + 2.83918248e-01 2.87750286e-01 2.91634045e-01 2.95570223e-01 2.99559527e-01 + 3.03602675e-01 3.07700393e-01 3.11853418e-01 3.16062496e-01 3.20328384e-01 + 3.24651848e-01 3.29033667e-01 3.33474626e-01 3.37975525e-01 3.42537173e-01 + 3.47160389e-01 3.51846004e-01 3.56594862e-01 3.61407814e-01 3.66285727e-01 + 3.71229476e-01 3.76239952e-01 3.81318053e-01 3.86464694e-01 3.91680799e-01 + 3.96967305e-01 4.02325164e-01 4.07755337e-01 4.13258801e-01 4.18836545e-01 + 4.24489572e-01 4.30218897e-01 4.36025552e-01 4.41910578e-01 4.47875035e-01 + 4.53919993e-01 4.60046541e-01 4.66255778e-01 4.72548821e-01 4.78926801e-01 + 4.85390865e-01 4.91942174e-01 4.98581905e-01 5.05311254e-01 5.12131428e-01 + 5.19043653e-01 5.26049173e-01 5.33149246e-01 5.40345149e-01 5.47638174e-01 + 5.55029634e-01 5.62520856e-01 5.70113186e-01 5.77807990e-01 5.85606651e-01 + 5.93510570e-01 6.01521168e-01 6.09639885e-01 6.17868180e-01 6.26207532e-01 + 6.34659440e-01 6.43225423e-01 6.51907022e-01 6.60705795e-01 6.69623325e-01 + 6.78661216e-01 6.87821090e-01 6.97104595e-01 7.06513399e-01 7.16049193e-01 + 7.25713692e-01 7.35508633e-01 7.45435775e-01 7.55496904e-01 7.65693828e-01 + 7.76028379e-01 7.86502415e-01 7.97117820e-01 8.07876500e-01 8.18780390e-01 + 8.29831449e-01 8.41031665e-01 8.52383049e-01 8.63887643e-01 8.75547514e-01 + 8.87364758e-01 8.99341499e-01 9.11479889e-01 9.23782112e-01 9.36250377e-01 + 9.48886926e-01 9.61694030e-01 9.74673991e-01 9.87829143e-01 1.00116185e+00 + 1.01467451e+00 1.02836954e+00 1.04224942e+00 1.05631664e+00 1.07057372e+00 + 1.08502323e+00 1.09966776e+00 1.11450995e+00 1.12955246e+00 1.14479801e+00 + 1.16024932e+00 1.17590918e+00 1.19178039e+00 1.20786583e+00 1.22416836e+00 + 1.24069093e+00 1.25743651e+00 1.27440810e+00 1.29160876e+00 1.30904157e+00 + 1.32670967e+00 1.34461624e+00 1.36276449e+00 1.38115769e+00 1.39979915e+00 + 1.41869220e+00 1.43784026e+00 1.45724675e+00 1.47691518e+00 1.49684907e+00 + 1.51705200e+00 1.53752762e+00 1.55827959e+00 1.57931165e+00 1.60062758e+00 + 1.62223122e+00 1.64412643e+00 1.66631717e+00 1.68880741e+00 1.71160120e+00 + 1.73470264e+00 1.75811589e+00 1.78184513e+00 1.80589465e+00 1.83026877e+00 + 1.85497187e+00 1.88000838e+00 1.90538281e+00 1.93109971e+00 1.95716372e+00 + 1.98357951e+00 2.01035184e+00 2.03748551e+00 2.06498540e+00 2.09285646e+00 + 2.12110369e+00 2.14973218e+00 2.17874706e+00 2.20815356e+00 2.23795696e+00 + 2.26816261e+00 2.29877594e+00 2.32980247e+00 2.36124776e+00 2.39311746e+00 + 2.42541731e+00 2.45815311e+00 2.49133074e+00 2.52495618e+00 2.55903545e+00 + 2.59357469e+00 2.62858010e+00 2.66405799e+00 2.70001472e+00 2.73645675e+00 + 2.77339064e+00 2.81082303e+00 2.84876064e+00 2.88721029e+00 2.92617890e+00 + 2.96567347e+00 3.00570109e+00 3.04626897e+00 3.08738439e+00 3.12905474e+00 + 3.17128752e+00 3.21409031e+00 3.25747081e+00 3.30143682e+00 3.34599623e+00 + 3.39115706e+00 3.43692743e+00 3.48331556e+00 3.53032979e+00 3.57797856e+00 + 3.62627045e+00 3.67521414e+00 3.72481842e+00 3.77509220e+00 3.82604453e+00 + 3.87768456e+00 3.93002158e+00 3.98306499e+00 4.03682432e+00 4.09130924e+00 + 4.14652955e+00 4.20249516e+00 4.25921613e+00 4.31670267e+00 4.37496510e+00 + 4.43401390e+00 4.49385968e+00 4.55451320e+00 4.61598536e+00 4.67828720e+00 + 4.74142993e+00 4.80542490e+00 4.87028361e+00 4.93601771e+00 5.00263902e+00 + 5.07015952e+00 5.13859134e+00 5.20794679e+00 5.27823832e+00 5.34947858e+00 + 5.42168036e+00 5.49485665e+00 5.56902060e+00 5.64418554e+00 5.72036498e+00 + 5.79757261e+00 5.87582231e+00 5.95512814e+00 6.03550436e+00 6.11696542e+00 + 6.19952596e+00 6.28320081e+00 6.36800502e+00 6.45395384e+00 6.54106270e+00 + 6.62934727e+00 6.71882341e+00 6.80950721e+00 6.90141496e+00 6.99456320e+00 + 7.08896865e+00 7.18464829e+00 7.28161932e+00 7.37989916e+00 7.47950548e+00 + 7.58045619e+00 7.68276943e+00 7.78646358e+00 7.89155730e+00 7.99806946e+00 + 8.10601921e+00 8.21542596e+00 8.32630937e+00 8.43868936e+00 8.55258615e+00 + 8.66802020e+00 8.78501227e+00 8.90358337e+00 9.02375482e+00 9.14554822e+00 + 9.26898547e+00 9.39408875e+00 9.52088054e+00 9.64938364e+00 9.77962114e+00 + 9.91161645e+00 1.00453933e+01 1.01809757e+01 1.03183881e+01 1.04576552e+01 + 1.05988019e+01 1.07418537e+01 1.08868362e+01 1.10337756e+01 1.11826982e+01 + 1.13336308e+01 1.14866005e+01 1.16416349e+01 1.17987618e+01 1.19580094e+01 + 1.21194064e+01 1.22829817e+01 1.24487648e+01 1.26167855e+01 1.27870739e+01 + 1.29596608e+01 1.31345770e+01 1.33118541e+01 1.34915238e+01 1.36736186e+01 + 1.38581711e+01 1.40452145e+01 1.42347825e+01 1.44269090e+01 1.46216286e+01 + 1.48189764e+01 1.50189878e+01 1.52216987e+01 1.54271456e+01 1.56353654e+01 + 1.58463956e+01 1.60602740e+01 1.62770391e+01 1.64967299e+01 1.67193859e+01 + 1.69450471e+01 1.71737540e+01 1.74055477e+01 1.76404700e+01 1.78785630e+01 + 1.81198695e+01 1.83644330e+01 1.86122973e+01 1.88635070e+01 1.91181073e+01 + 1.93761439e+01 1.96376633e+01 1.99027124e+01 2.01713388e+01 2.04435909e+01 + 2.07195175e+01 2.09991684e+01 2.12825937e+01 2.15698443e+01 2.18609720e+01 + 2.21560290e+01 2.24550684e+01 2.27581439e+01 2.30653100e+01 2.33766220e+01 + 2.36921357e+01 2.40119079e+01 2.43359960e+01 2.46644584e+01 2.49973540e+01 + 2.53347427e+01 2.56766851e+01 2.60232427e+01 2.63744778e+01 2.67304535e+01 + 2.70912338e+01 2.74568835e+01 2.78274684e+01 2.82030551e+01 2.85837111e+01 + 2.89695047e+01 2.93605055e+01 2.97567835e+01 3.01584101e+01 3.05654574e+01 + 3.09779987e+01 3.13961080e+01 3.18198605e+01 3.22493324e+01 3.26846009e+01 + 3.31257442e+01 3.35728416e+01 3.40259734e+01 3.44852212e+01 3.49506674e+01 + 3.54223957e+01 3.59004909e+01 3.63850390e+01 3.68761270e+01 3.73738432e+01 + 3.78782771e+01 3.83895193e+01 3.89076617e+01 3.94327975e+01 3.99650210e+01 + 4.05044279e+01 4.10511152e+01 4.16051812e+01 4.21667253e+01 4.27358486e+01 + 4.33126533e+01 4.38972432e+01 4.44897232e+01 4.50902000e+01 4.56987813e+01 + 4.63155767e+01 4.69406969e+01 4.75742544e+01 4.82163629e+01 4.88671380e+01 + 4.95266966e+01 5.01951573e+01 5.08726401e+01 5.15592669e+01 5.22551611e+01 + 5.29604478e+01 5.36752537e+01 5.43997073e+01 5.51339389e+01 5.58780803e+01 + 5.66322655e+01 5.73966298e+01 5.81713107e+01 5.89564475e+01 5.97521813e+01 + 6.05586551e+01 6.13760138e+01 6.22044044e+01 6.30439758e+01 6.38948788e+01 + 6.47572664e+01 6.56312937e+01 6.65171177e+01 6.74148977e+01 6.83247950e+01 + 6.92469731e+01 7.01815978e+01 7.11288372e+01 7.20888614e+01 7.30618430e+01 + 7.40479570e+01 7.50473805e+01 7.60602932e+01 7.70868772e+01 7.81273169e+01 + 7.91817995e+01 8.02505143e+01 8.13336536e+01 8.24314120e+01 8.35439868e+01 + 8.46715780e+01 8.58143883e+01 8.69726230e+01 8.81464904e+01 8.93362015e+01 + 9.05419701e+01 9.17640129e+01 9.30025496e+01 9.42578028e+01 9.55299981e+01 + 9.68193642e+01 9.81261329e+01 9.94505390e+01 1.00792821e+02 1.02153219e+02 + 1.03531978e+02 1.04929347e+02 1.06345576e+02 1.07780920e+02 1.09235636e+02 + 1.10709987e+02 1.12204237e+02 1.13718655e+02 1.15253513e+02 1.16809087e+02 + 1.18385656e+02 1.19983505e+02 1.21602919e+02 1.23244191e+02 1.24907615e+02 + 1.26593490e+02 1.28302119e+02 1.30033810e+02 1.31788873e+02 1.33567624e+02 + 1.35370383e+02 1.37197474e+02 1.39049225e+02 1.40925969e+02 1.42828044e+02 + 1.44755790e+02 1.46709556e+02 1.48689691e+02 1.50696552e+02 1.52730500e+02 + 1.54791900e+02 1.56881123e+02 1.58998544e+02 1.61144543e+02 1.63319507e+02 + 1.65523827e+02 1.67757898e+02 1.70022122e+02 1.72316907e+02 1.74642664e+02 + 1.76999812e+02 1.79388774e+02 1.81809980e+02 1.84263865e+02 1.86750870e+02 + 1.89271442e+02 1.91826034e+02 1.94415106e+02 1.97039122e+02 1.99698554e+02 + 2.02393881e+02 2.05125586e+02 2.07894161e+02 2.10700104e+02 2.13543918e+02 + 2.16426115e+02 2.19347213e+02 2.22307737e+02 2.25308219e+02 2.28349199e+02 + 2.31431223e+02 2.34554845e+02 2.37720626e+02 2.40929135e+02 2.44180950e+02 + 2.47476655e+02 2.50816841e+02 2.54202110e+02 2.57633070e+02 2.61110337e+02 + 2.64634537e+02 2.68206303e+02 2.71826277e+02 2.75495110e+02 2.79213461e+02 + 2.82981999e+02 2.86801400e+02 2.90672351e+02 2.94595549e+02 2.98571698e+02 + 3.02601513e+02 3.06685719e+02 3.10825049e+02 3.15020247e+02 3.19272068e+02 + 3.23581275e+02 3.27948644e+02 3.32374959e+02 3.36861016e+02 3.41407621e+02 + 3.46015592e+02 3.50685756e+02 3.55418953e+02 3.60216034e+02 3.65077861e+02 + 3.70005309e+02 3.74999261e+02 3.80060618e+02 3.85190287e+02 3.90389191e+02 + 3.95658264e+02 4.00998455e+02 4.06410721e+02 4.11896037e+02 4.17455388e+02 + 4.23089773e+02 4.28800206e+02 4.34587712e+02 4.40453332e+02 4.46398120e+02 + 4.52423145e+02 4.58529489e+02 4.64718251e+02 4.70990542e+02 4.77347490e+02 + 4.83790238e+02 4.90319943e+02 4.96937780e+02 5.03644937e+02 5.10442621e+02 + 5.17332053e+02 5.24314471e+02 5.31391131e+02 5.38563305e+02 5.45832281e+02 + 5.53199366e+02 5.60665885e+02 5.68233179e+02 5.75902608e+02 5.83675552e+02 + 5.91553407e+02 5.99537589e+02 6.07629534e+02 6.15830695e+02 6.24142548e+02 + 6.32566585e+02 6.41104321e+02 6.49757290e+02 6.58527049e+02 6.67415173e+02 + 6.76423260e+02 6.85552928e+02 6.94805820e+02 7.04183597e+02 7.13687947e+02 + 7.23320576e+02 7.33083216e+02 7.42977623e+02 7.53005574e+02 7.63168873e+02 + 7.73469345e+02 7.83908842e+02 7.94489241e+02 8.05212443e+02 8.16080377e+02 + 8.27094994e+02 8.38258275e+02 8.49572227e+02 8.61038884e+02 8.72660305e+02 + 8.84438580e+02 8.96375827e+02 9.08474190e+02 9.20735844e+02 9.33162994e+02 + 9.45757873e+02 9.58522744e+02 9.71459903e+02 9.84571674e+02 9.97860414e+02 + 1.01132851e+03 1.02497839e+03 1.03881250e+03 1.05283333e+03 1.06704339e+03 + 1.08144525e+03 1.09604149e+03 1.11083474e+03 1.12582765e+03 1.14102292e+03 + 1.15642328e+03 1.17203149e+03 1.18785037e+03 1.20388276e+03 1.22013154e+03 + 1.23659963e+03 1.25328998e+03 1.27020561e+03 1.28734954e+03 1.30472487e+03 + 1.32233471e+03 1.34018223e+03 1.35827064e+03 1.37660318e+03 1.39518316e+03 + 1.41401392e+03 1.43309883e+03 1.45244133e+03 1.47204490e+03 1.49191305e+03 + 1.51204937e+03 1.53245746e+03 1.55314100e+03 1.57410371e+03 1.59534935e+03 + 1.61688174e+03 1.63870475e+03 1.66082231e+03 1.68323839e+03 1.70595702e+03 + 1.72898228e+03 1.75231832e+03 1.77596931e+03 1.79993953e+03 1.82423327e+03 + 1.84885490e+03 1.87380885e+03 1.89909961e+03 1.92473171e+03 1.95070977e+03 + 1.97703845e+03 2.00372249e+03 2.03076669e+03 2.05817590e+03 2.08595505e+03 + 2.11410913e+03 2.14264321e+03 2.17156242e+03 2.20087194e+03 2.23057706e+03 + 2.26068311e+03 2.29119549e+03 2.32211970e+03 2.35346130e+03 2.38522591e+03 + 2.41741924e+03 2.45004709e+03 2.48311532e+03 2.51662987e+03 2.55059676e+03 + 2.58502211e+03 2.61991209e+03 2.65527298e+03 2.69111114e+03 2.72743300e+03 + 2.76424510e+03 2.80155405e+03 2.83936656e+03 2.87768942e+03 2.91652952e+03 + 2.95589385e+03 2.99578948e+03 3.03622358e+03 3.07720342e+03 3.11873636e+03 + 3.16082987e+03 3.20349152e+03 3.24672896e+03 3.29054999e+03 3.33496246e+03 + 3.37997437e+03 3.42559381e+03 3.47182896e+03 3.51868816e+03 3.56617981e+03 + 3.61431245e+03 3.66309474e+03 3.71253544e+03 3.76264344e+03 3.81342775e+03 + 3.86489750e+03 3.91706193e+03 3.96993042e+03 4.02351247e+03 4.07781773e+03 + 4.13285593e+03 4.18863699e+03 4.24517093e+03 4.30246790e+03 4.36053820e+03 + 4.41939228e+03 4.47904072e+03 4.53949422e+03 4.60076367e+03 4.66286006e+03 + 4.72579458e+03 4.78957851e+03 4.85422334e+03 4.91974068e+03 4.98614230e+03 + 5.05344014e+03 5.12164630e+03 5.19077304e+03 5.26083278e+03 5.33183812e+03 + 5.40380181e+03 5.47673679e+03 5.55065618e+03 5.62557325e+03 5.70150148e+03 + 5.77845451e+03 5.85644617e+03 5.93549049e+03 6.01560166e+03 6.09679409e+03 + 6.17908238e+03 6.26248131e+03 6.34700587e+03 6.43267125e+03 6.51949286e+03 + 6.60748630e+03 6.69666739e+03 6.78705215e+03 6.87865683e+03 6.97149790e+03 + 7.06559204e+03 7.16095617e+03 7.25760742e+03 7.35556318e+03 7.45484104e+03 + 7.55545885e+03 7.65743470e+03 7.76078691e+03 7.86553407e+03 7.97169499e+03 + 8.07928877e+03 8.18833474e+03 8.29885250e+03 8.41086191e+03 8.52438311e+03 + 8.63943651e+03 8.75604278e+03 8.87422288e+03 8.99399805e+03 9.11538983e+03 + 9.23842003e+03 9.36311076e+03 9.48948445e+03 9.61756379e+03 9.74737182e+03 + 9.87893187e+03 1.00122676e+04 1.01474029e+04 1.02843622e+04 1.04231700e+04 + 1.05638512e+04 1.07064313e+04 1.08509357e+04 1.09973906e+04 1.11458221e+04 + 1.12962570e+04 1.14487223e+04 1.16032454e+04 1.17598541e+04 1.19185766e+04 + 1.20794414e+04 1.22424773e+04 1.24077137e+04 1.25751803e+04 1.27449072e+04 + 1.29169249e+04 1.30912644e+04 1.32679569e+04 1.34470341e+04 1.36285284e+04 + 1.38124724e+04 1.39988990e+04 1.41878418e+04 1.43793348e+04 1.45734123e+04 + 1.47701093e+04 1.49694611e+04 1.51715036e+04 1.53762730e+04 1.55838062e+04 + 1.57941404e+04 1.60073136e+04 1.62233639e+04 1.64423303e+04 1.66642520e+04 + 1.68891690e+04 1.71171217e+04 1.73481511e+04 1.75822987e+04 1.78196066e+04 + 1.80601174e+04 1.83038743e+04 1.85509213e+04 1.88013026e+04 1.90550634e+04 + 1.93122491e+04 1.95729061e+04 1.98370811e+04 2.01048217e+04 2.03761760e+04 + 2.06511928e+04 2.09299214e+04 2.12124121e+04 2.14987155e+04 2.17888832e+04 + 2.20829672e+04 2.23810205e+04 2.26830966e+04 2.29892498e+04 2.32995352e+04 + 2.36140084e+04 2.39327261e+04 2.42557456e+04 2.45831248e+04 2.49149226e+04 + 2.52511988e+04 2.55920136e+04 2.59374284e+04 2.62875052e+04 2.66423071e+04 + 2.70018976e+04 2.73663416e+04 2.77357045e+04 2.81100526e+04 2.84894533e+04 + 2.88739748e+04 2.92636861e+04 2.96586574e+04 3.00589596e+04 3.04646647e+04 + 3.08758455e+04 3.12925761e+04 3.17149312e+04 3.21429869e+04 3.25768200e+04 + 3.30165086e+04 3.34621316e+04 3.39137692e+04 3.43715026e+04 3.48354139e+04 + 3.53055867e+04 3.57821053e+04 3.62650555e+04 3.67545241e+04 3.72505991e+04 + 3.77533695e+04 3.82629258e+04 3.87793596e+04 3.93027637e+04 3.98332322e+04 + 4.03708604e+04 4.09157449e+04 4.14679838e+04 4.20276762e+04 4.25949227e+04 + 4.31698254e+04 4.37524875e+04 4.43430137e+04 4.49415103e+04 4.55480848e+04 + 4.61628462e+04 4.67859051e+04 4.74173733e+04 4.80573645e+04 4.87059936e+04 + 4.93633772e+04 5.00296335e+04 5.07048823e+04 5.13892449e+04 5.20828443e+04 + 5.27858052e+04 5.34982540e+04 5.42203186e+04 5.49521290e+04 5.56938166e+04 + 5.64455147e+04 5.72073585e+04 5.79794848e+04 5.87620325e+04 5.95551423e+04 + 6.03589566e+04 6.11736200e+04 6.19992789e+04 6.28360817e+04 6.36841788e+04 + 6.45437226e+04 6.54148677e+04 6.62977706e+04 6.71925901e+04 6.80994869e+04 + 6.90186240e+04 6.99501667e+04 7.08942825e+04 7.18511409e+04 7.28209140e+04 + 7.38037762e+04 7.47999040e+04 7.58094765e+04 7.68326752e+04 7.78696840e+04 + 7.89206893e+04 7.99858799e+04 8.10654474e+04 8.21595859e+04 8.32684918e+04 + 8.43923647e+04 8.55314064e+04 8.66858218e+04 8.78558182e+04 8.90416061e+04 + 9.02433986e+04 9.14614116e+04 9.26958640e+04 9.39469779e+04 9.52149780e+04 + 9.65000923e+04 9.78025518e+04 9.91225905e+04 1.00460446e+05 1.01816358e+05 + 1.03190571e+05 1.04583332e+05 1.05994890e+05 1.07425501e+05 1.08875420e+05 + 1.10344909e+05 1.11834232e+05 1.13343656e+05 1.14873452e+05 1.16423897e+05 + 1.17995267e+05 1.19587847e+05 1.21201921e+05 1.22837780e+05 1.24495719e+05 + 1.26176035e+05 1.27879030e+05 1.29605010e+05 1.31354286e+05 1.33127171e+05 + 1.34923985e+05 1.36745051e+05 1.38590696e+05 1.40461251e+05 1.42357053e+05 + 1.44278443e+05 1.46225766e+05 1.48199372e+05 1.50199615e+05 1.52226856e+05 + 1.54281458e+05 1.56363791e+05 1.58474229e+05 1.60613152e+05 1.62780944e+05 + 1.64977995e+05 1.67204699e+05 1.69461457e+05 1.71748674e+05 1.74066762e+05 + 1.76416136e+05 1.78797221e+05 1.81210443e+05 1.83656236e+05 1.86135040e+05 + 1.88647300e+05 1.91193468e+05 1.93774002e+05 1.96389365e+05 1.99040027e+05 + 2.01726466e+05 2.04449163e+05 2.07208608e+05 2.10005298e+05 2.12839735e+05 + 2.15712427e+05 2.18623893e+05 2.21574654e+05 2.24565242e+05 2.27596194e+05 + 2.30668054e+05 2.33781376e+05 2.36936717e+05 2.40134646e+05 2.43375738e+05 + 2.46660575e+05 2.49989747e+05 2.53363852e+05 2.56783498e+05 2.60249299e+05 + 2.63761877e+05 2.67321865e+05 2.70929902e+05 2.74586636e+05 2.78292726e+05 + 2.82048836e+05 2.85855642e+05 2.89713829e+05 2.93624090e+05 2.97587127e+05 + 3.01603654e+05 3.05674391e+05 3.09800071e+05 3.13981435e+05 3.18219235e+05 + 3.22514232e+05 3.26867199e+05 3.31278918e+05 3.35750182e+05 3.40281794e+05 + 3.44874569e+05 3.49529333e+05 3.54246922e+05 3.59028184e+05 3.63873979e+05 + 3.68785178e+05 3.73762662e+05 3.78807328e+05 3.83920082e+05 3.89101842e+05 + 3.94353540e+05 3.99676120e+05 4.05070540e+05 4.10537767e+05 4.16078785e+05 + 4.21694591e+05 4.27386193e+05 4.33154614e+05 4.39000892e+05 4.44926076e+05 + 4.50931233e+05 4.57017441e+05 4.63185794e+05 4.69437402e+05 4.75773387e+05 + 4.82194889e+05 4.88703062e+05 4.95299076e+05 5.01984116e+05 5.08759383e+05 + 5.15626097e+05 5.22585490e+05 5.29638814e+05 5.36787336e+05 5.44032342e+05 + 5.51375134e+05 5.58817031e+05 5.66359371e+05 5.74003510e+05 5.81750821e+05 + 5.89602698e+05 5.97560552e+05 6.05625813e+05 6.13799930e+05 6.22084373e+05 + 6.30480631e+05 6.38990213e+05 6.47614648e+05 6.56355488e+05 6.65214302e+05 + 6.74192684e+05 6.83292246e+05 6.92514626e+05 7.01861479e+05 7.11334487e+05 + 7.20935351e+05 7.30665798e+05 7.40527577e+05 7.50522460e+05 7.60652244e+05 + 7.70918749e+05 7.81323821e+05 7.91869330e+05 8.02557172e+05 8.13389267e+05 + 8.24367562e+05 8.35494032e+05 8.46770675e+05 8.58199518e+05 8.69782617e+05 + 8.81522052e+05 8.93419934e+05 9.05478402e+05 9.17699622e+05 9.30085792e+05 + 9.42639138e+05 9.55361916e+05 9.68256413e+05 9.81324947e+05 9.94569866e+05 + 1.00799355e+06 1.02159842e+06 1.03538691e+06 1.04936150e+06 1.06352471e+06 + 1.07787907e+06 1.09242718e+06 1.10717165e+06 1.12211511e+06 1.13726028e+06 + 1.15260985e+06 1.16816660e+06 1.18393331e+06 1.19991283e+06 1.21610803e+06 + 1.23252181e+06 1.24915713e+06 1.26601697e+06 1.28310437e+06 1.30042240e+06 + 1.31797417e+06 1.33576284e+06 1.35379160e+06 1.37206369e+06 1.39058240e+06 + 1.40935106e+06 1.42837304e+06 1.44765175e+06 1.46719067e+06 1.48699331e+06 + 1.50706323e+06 1.52740402e+06 1.54801936e+06 1.56891294e+06 1.59008852e+06 + 1.61154991e+06 1.63330096e+06 1.65534558e+06 1.67768774e+06 1.70033145e+06 + 1.72328078e+06 1.74653986e+06 1.77011287e+06 1.79400404e+06 1.81821767e+06 + 1.84275811e+06 1.86762977e+06 1.89283713e+06 1.91838471e+06 1.94427710e+06 + 1.51514411e-06 1.53559398e-06 1.55631985e-06 1.57732546e-06 1.59861459e-06 + 1.62019105e-06 1.64205873e-06 1.66422156e-06 1.68668352e-06 1.70944864e-06 + 1.73252103e-06 1.75590483e-06 1.77960423e-06 1.80362351e-06 1.82796697e-06 + 1.85263900e-06 1.87764402e-06 1.90298654e-06 1.92867110e-06 1.95470233e-06 + 1.98108490e-06 2.00782356e-06 2.03492310e-06 2.06238841e-06 2.09022442e-06 + 2.11843613e-06 2.14702861e-06 2.17600701e-06 2.20537652e-06 2.23514243e-06 + 2.26531010e-06 2.29588494e-06 2.32687244e-06 2.35827818e-06 2.39010781e-06 + 2.42236703e-06 2.45506166e-06 2.48819757e-06 2.52178072e-06 2.55581713e-06 + 2.59031293e-06 2.62527433e-06 2.66070759e-06 2.69661910e-06 2.73301530e-06 + 2.76990274e-06 2.80728805e-06 2.84517795e-06 2.88357925e-06 2.92249885e-06 + 2.96194375e-06 3.00192104e-06 3.04243789e-06 3.08350160e-06 3.12511955e-06 + 3.16729922e-06 3.21004818e-06 3.25337412e-06 3.29728483e-06 3.34178821e-06 + 3.38689225e-06 3.43260505e-06 3.47893484e-06 3.52588994e-06 3.57347879e-06 + 3.62170995e-06 3.67059208e-06 3.72013398e-06 3.77034453e-06 3.82123279e-06 + 3.87280787e-06 3.92507907e-06 3.97805577e-06 4.03174749e-06 4.08616389e-06 + 4.14131475e-06 4.19720997e-06 4.25385962e-06 4.31127386e-06 4.36946302e-06 + 4.42843756e-06 4.48820807e-06 4.54878531e-06 4.61018016e-06 4.67240365e-06 + 4.73546697e-06 4.79938146e-06 4.86415859e-06 4.92981003e-06 4.99634755e-06 + 5.06378314e-06 5.13212890e-06 5.20139712e-06 5.27160025e-06 5.34275092e-06 + 5.41486190e-06 5.48794616e-06 5.56201684e-06 5.63708725e-06 5.71317088e-06 + 5.79028141e-06 5.86843270e-06 5.94763880e-06 6.02791394e-06 6.10927255e-06 + 6.19172925e-06 6.27529887e-06 6.35999643e-06 6.44583715e-06 6.53283646e-06 + 6.62101000e-06 6.71037362e-06 6.80094337e-06 6.89273554e-06 6.98576663e-06 + 7.08005335e-06 7.17561266e-06 7.27246174e-06 7.37061798e-06 7.47009904e-06 + 7.57092278e-06 7.67310735e-06 7.77667110e-06 7.88163264e-06 7.98801085e-06 + 8.09582484e-06 8.20509399e-06 8.31583795e-06 8.42807662e-06 8.54183017e-06 + 8.65711905e-06 8.77396398e-06 8.89238596e-06 9.01240628e-06 9.13404651e-06 + 9.25732852e-06 9.38227446e-06 9.50890680e-06 9.63724829e-06 9.76732200e-06 + 9.89915131e-06 1.00327599e-05 1.01681718e-05 1.03054114e-05 1.04445033e-05 + 1.05854725e-05 1.07283444e-05 1.08731446e-05 1.10198992e-05 1.11686345e-05 + 1.13193773e-05 1.14721546e-05 1.16269940e-05 1.17839233e-05 1.19429706e-05 + 1.21041646e-05 1.22675342e-05 1.24331089e-05 1.26009182e-05 1.27709925e-05 + 1.29433623e-05 1.31180586e-05 1.32951127e-05 1.34745565e-05 1.36564223e-05 + 1.38407427e-05 1.40275509e-05 1.42168804e-05 1.44087653e-05 1.46032400e-05 + 1.48003396e-05 1.50000995e-05 1.52025554e-05 1.54077440e-05 1.56157019e-05 + 1.58264667e-05 1.60400761e-05 1.62565686e-05 1.64759832e-05 1.66983591e-05 + 1.69237365e-05 1.71521557e-05 1.73836580e-05 1.76182848e-05 1.78560784e-05 + 1.80970814e-05 1.83413373e-05 1.85888899e-05 1.88397837e-05 1.90940638e-05 + 1.93517759e-05 1.96129664e-05 1.98776821e-05 2.01459707e-05 2.04178804e-05 + 2.06934601e-05 2.09727592e-05 2.12558280e-05 2.15427174e-05 2.18334790e-05 + 2.21281649e-05 2.24268282e-05 2.27295226e-05 2.30363024e-05 2.33472229e-05 + 2.36623398e-05 2.39817098e-05 2.43053904e-05 2.46334396e-05 2.49659166e-05 + 2.53028810e-05 2.56443934e-05 2.59905151e-05 2.63413085e-05 2.66968365e-05 + 2.70571631e-05 2.74223530e-05 2.77924718e-05 2.81675861e-05 2.85477634e-05 + 2.89330718e-05 2.93235808e-05 2.97193605e-05 3.01204820e-05 3.05270174e-05 + 3.09390399e-05 3.13566233e-05 3.17798429e-05 3.22087747e-05 3.26434958e-05 + 3.30840843e-05 3.35306194e-05 3.39831813e-05 3.44418515e-05 3.49067124e-05 + 3.53778474e-05 3.58553414e-05 3.63392801e-05 3.68297505e-05 3.73268407e-05 + 3.78306402e-05 3.83412395e-05 3.88587303e-05 3.93832056e-05 3.99147598e-05 + 4.04534884e-05 4.09994881e-05 4.15528573e-05 4.21136952e-05 4.26821027e-05 + 4.32581821e-05 4.38420367e-05 4.44337716e-05 4.50334932e-05 4.56413092e-05 + 4.62573288e-05 4.68816629e-05 4.75144236e-05 4.81557246e-05 4.88056813e-05 + 4.94644104e-05 5.01320304e-05 5.08086612e-05 5.14944245e-05 5.21894435e-05 + 5.28938432e-05 5.36077501e-05 5.43312927e-05 5.50646008e-05 5.58078064e-05 + 5.65610431e-05 5.73244461e-05 5.80981528e-05 5.88823022e-05 5.96770352e-05 + 6.04824947e-05 6.12988255e-05 6.21261743e-05 6.29646898e-05 6.38145227e-05 + 6.46758258e-05 6.55487539e-05 6.64334638e-05 6.73301147e-05 6.82388677e-05 + 6.91598861e-05 7.00933354e-05 7.10393835e-05 7.19982003e-05 7.29699583e-05 + 7.39548321e-05 7.49529987e-05 7.59646376e-05 7.69899305e-05 7.80290617e-05 + 7.90822181e-05 8.01495889e-05 8.12313660e-05 8.23277438e-05 8.34389194e-05 + 8.45650925e-05 8.57064656e-05 8.68632437e-05 8.80356348e-05 8.92238497e-05 + 9.04281018e-05 9.16486078e-05 9.28855869e-05 9.41392614e-05 9.54098568e-05 + 9.66976013e-05 9.80027266e-05 9.93254670e-05 1.00666060e-04 1.02024748e-04 + 1.03401773e-04 1.04797385e-04 1.06211833e-04 1.07645371e-04 1.09098258e-04 + 1.10570755e-04 1.12063126e-04 1.13575639e-04 1.15108567e-04 1.16662184e-04 + 1.18236771e-04 1.19832610e-04 1.21449988e-04 1.23089195e-04 1.24750527e-04 + 1.26434282e-04 1.28140763e-04 1.29870275e-04 1.31623131e-04 1.33399646e-04 + 1.35200138e-04 1.37024931e-04 1.38874353e-04 1.40748737e-04 1.42648419e-04 + 1.44573741e-04 1.46525050e-04 1.48502695e-04 1.50507032e-04 1.52538422e-04 + 1.54597229e-04 1.56683824e-04 1.58798582e-04 1.60941883e-04 1.63114112e-04 + 1.65315659e-04 1.67546920e-04 1.69808297e-04 1.72100196e-04 1.74423028e-04 + 1.76777212e-04 1.79163169e-04 1.81581330e-04 1.84032129e-04 1.86516007e-04 + 1.89033409e-04 1.91584788e-04 1.94170603e-04 1.96791319e-04 1.99447407e-04 + 2.02139344e-04 2.04867614e-04 2.07632707e-04 2.10435121e-04 2.13275359e-04 + 2.16153931e-04 2.19071356e-04 2.22028156e-04 2.25024865e-04 2.28062020e-04 + 2.31140168e-04 2.34259861e-04 2.37421661e-04 2.40626136e-04 2.43873861e-04 + 2.47165421e-04 2.50501406e-04 2.53882418e-04 2.57309063e-04 2.60781957e-04 + 2.64301725e-04 2.67868999e-04 2.71484421e-04 2.75148639e-04 2.78862314e-04 + 2.82626112e-04 2.86440710e-04 2.90306793e-04 2.94225057e-04 2.98196206e-04 + 3.02220953e-04 3.06300022e-04 3.10434146e-04 3.14624068e-04 3.18870542e-04 + 3.23174330e-04 3.27536206e-04 3.31956954e-04 3.36437370e-04 3.40978257e-04 + 3.45580432e-04 3.50244723e-04 3.54971968e-04 3.59763016e-04 3.64618729e-04 + 3.69539979e-04 3.74527651e-04 3.79582642e-04 3.84705860e-04 3.89898226e-04 + 3.95160673e-04 4.00494147e-04 4.05899607e-04 4.11378024e-04 4.16930384e-04 + 4.22557683e-04 4.28260934e-04 4.34041162e-04 4.39899405e-04 4.45836717e-04 + 4.51854164e-04 4.57952829e-04 4.64133808e-04 4.70398211e-04 4.76747164e-04 + 4.83181809e-04 4.89703302e-04 4.96312816e-04 5.03011539e-04 5.09800673e-04 + 5.16681441e-04 5.23655078e-04 5.30722838e-04 5.37885992e-04 5.45145826e-04 + 5.52503646e-04 5.59960775e-04 5.67518552e-04 5.75178336e-04 5.82941505e-04 + 5.90809452e-04 5.98783593e-04 6.06865361e-04 6.15056208e-04 6.23357607e-04 + 6.31771050e-04 6.40298049e-04 6.48940137e-04 6.57698866e-04 6.66575812e-04 + 6.75572570e-04 6.84690757e-04 6.93932012e-04 7.03297995e-04 7.12790392e-04 + 7.22410907e-04 7.32161269e-04 7.42043233e-04 7.52058572e-04 7.62209089e-04 + 7.72496607e-04 7.82922975e-04 7.93490068e-04 8.04199785e-04 8.15054050e-04 + 8.26054815e-04 8.37204057e-04 8.48503780e-04 8.59956016e-04 8.71562821e-04 + 8.83326284e-04 8.95248518e-04 9.07331666e-04 9.19577900e-04 9.31989421e-04 + 9.44568460e-04 9.57317278e-04 9.70238166e-04 9.83333448e-04 9.96605476e-04 + 1.01005664e-03 1.02368935e-03 1.03750606e-03 1.05150925e-03 1.06570145e-03 + 1.08008519e-03 1.09466308e-03 1.10943772e-03 1.12441177e-03 1.13958793e-03 + 1.15496892e-03 1.17055751e-03 1.18635650e-03 1.20236872e-03 1.21859707e-03 + 1.23504444e-03 1.25171381e-03 1.26860816e-03 1.28573053e-03 1.30308401e-03 + 1.32067170e-03 1.33849678e-03 1.35656243e-03 1.37487193e-03 1.39342854e-03 + 1.41223561e-03 1.43129652e-03 1.45061470e-03 1.47019361e-03 1.49003678e-03 + 1.51014777e-03 1.53053020e-03 1.55118773e-03 1.57212407e-03 1.59334299e-03 + 1.61484830e-03 1.63664387e-03 1.65873361e-03 1.68112150e-03 1.70381156e-03 + 1.72680786e-03 1.75011455e-03 1.77373580e-03 1.79767587e-03 1.82193906e-03 + 1.84652973e-03 1.87145230e-03 1.89671124e-03 1.92231111e-03 1.94825650e-03 + 1.97455207e-03 2.00120255e-03 2.02821273e-03 2.05558747e-03 2.08333169e-03 + 2.11145037e-03 2.13994856e-03 2.16883140e-03 2.19810406e-03 2.22777182e-03 + 2.25784000e-03 2.28831402e-03 2.31919934e-03 2.35050151e-03 2.38222618e-03 + 2.41437903e-03 2.44696584e-03 2.47999248e-03 2.51346488e-03 2.54738906e-03 + 2.58177111e-03 2.61661721e-03 2.65193363e-03 2.68772672e-03 2.72400290e-03 + 2.76076870e-03 2.79803073e-03 2.83579568e-03 2.87407035e-03 2.91286161e-03 + 2.95217643e-03 2.99202189e-03 3.03240514e-03 3.07333344e-03 3.11481415e-03 + 3.15685472e-03 3.19946271e-03 3.24264578e-03 3.28641170e-03 3.33076832e-03 + 3.37572362e-03 3.42128568e-03 3.46746269e-03 3.51426295e-03 3.56169487e-03 + 3.60976698e-03 3.65848792e-03 3.70786645e-03 3.75791143e-03 3.80863187e-03 + 3.86003689e-03 3.91213571e-03 3.96493772e-03 4.01845239e-03 4.07268934e-03 + 4.12765833e-03 4.18336924e-03 4.23983207e-03 4.29705699e-03 4.35505426e-03 + 4.41383433e-03 4.47340774e-03 4.53378522e-03 4.59497761e-03 4.65699591e-03 + 4.71985128e-03 4.78355500e-03 4.84811852e-03 4.91355347e-03 4.97987158e-03 + 5.04708479e-03 5.11520517e-03 5.18424497e-03 5.25421660e-03 5.32513264e-03 + 5.39700583e-03 5.46984909e-03 5.54367551e-03 5.61849837e-03 5.69433110e-03 + 5.77118736e-03 5.84908093e-03 5.92802584e-03 6.00803626e-03 6.08912659e-03 + 6.17131138e-03 6.25460542e-03 6.33902369e-03 6.42458134e-03 6.51129376e-03 + 6.59917653e-03 6.68824546e-03 6.77851655e-03 6.87000603e-03 6.96273034e-03 + 7.05670614e-03 7.15195034e-03 7.24848004e-03 7.34631260e-03 7.44546561e-03 + 7.54595688e-03 7.64780448e-03 7.75102672e-03 7.85564214e-03 7.96166955e-03 + 8.06912802e-03 8.17803685e-03 8.28841561e-03 8.40028416e-03 8.51366260e-03 + 8.62857130e-03 8.74503092e-03 8.86306239e-03 8.98268694e-03 9.10392605e-03 + 9.22680152e-03 9.35133544e-03 9.47755019e-03 9.60546846e-03 9.73511324e-03 + 9.86650783e-03 9.99967585e-03 1.01346412e-02 1.02714283e-02 1.04100615e-02 + 1.05505658e-02 1.06929666e-02 1.08372893e-02 1.09835599e-02 1.11318048e-02 + 1.12820505e-02 1.14343240e-02 1.15886528e-02 1.17450646e-02 1.19035875e-02 + 1.20642499e-02 1.22270808e-02 1.23921094e-02 1.25593654e-02 1.27288789e-02 + 1.29006802e-02 1.30748004e-02 1.32512707e-02 1.34301228e-02 1.36113888e-02 + 1.37951014e-02 1.39812936e-02 1.41699987e-02 1.43612509e-02 1.45550843e-02 + 1.47515340e-02 1.49506351e-02 1.51524234e-02 1.53569353e-02 1.55642075e-02 + 1.57742773e-02 1.59871823e-02 1.62029609e-02 1.64216519e-02 1.66432945e-02 + 1.68679287e-02 1.70955947e-02 1.73263336e-02 1.75601867e-02 1.77971961e-02 + 1.80374044e-02 1.82808548e-02 1.85275911e-02 1.87776576e-02 1.90310992e-02 + 1.92879614e-02 1.95482906e-02 1.98121334e-02 2.00795373e-02 2.03505503e-02 + 2.06252212e-02 2.09035994e-02 2.11857347e-02 2.14716781e-02 2.17614808e-02 + 2.20551950e-02 2.23528734e-02 2.26545697e-02 2.29603378e-02 2.32702330e-02 + 2.35843107e-02 2.39026276e-02 2.42252408e-02 2.45522083e-02 2.48835889e-02 + 2.52194421e-02 2.55598283e-02 2.59048087e-02 2.62544453e-02 2.66088009e-02 + 2.69679393e-02 2.73319249e-02 2.77008232e-02 2.80747006e-02 2.84536242e-02 + 2.88376620e-02 2.92268833e-02 2.96213578e-02 3.00211566e-02 3.04263514e-02 + 3.08370152e-02 3.12532216e-02 3.16750456e-02 3.21025629e-02 3.25358505e-02 + 3.29749861e-02 3.34200487e-02 3.38711183e-02 3.43282759e-02 3.47916039e-02 + 3.52611853e-02 3.57371047e-02 3.62194475e-02 3.67083006e-02 3.72037516e-02 + 3.77058898e-02 3.82148053e-02 3.87305896e-02 3.92533354e-02 3.97831368e-02 + 4.03200888e-02 4.08642881e-02 4.14158324e-02 4.19748209e-02 4.25413541e-02 + 4.31155337e-02 4.36974630e-02 4.42872467e-02 4.48849906e-02 4.54908022e-02 + 4.61047905e-02 4.67270657e-02 4.73577398e-02 4.79969261e-02 4.86447395e-02 + 4.93012964e-02 4.99667148e-02 5.06411144e-02 5.13246163e-02 5.20173434e-02 + 5.27194202e-02 5.34309730e-02 5.41521296e-02 5.48830196e-02 5.56237744e-02 + 5.63745271e-02 5.71354128e-02 5.79065681e-02 5.86881317e-02 5.94802440e-02 + 6.02830474e-02 6.10966863e-02 6.19213068e-02 6.27570572e-02 6.36040877e-02 + 6.44625506e-02 6.53326001e-02 6.62143926e-02 6.71080867e-02 6.80138429e-02 + 6.89318241e-02 6.98621953e-02 7.08051237e-02 7.17607788e-02 7.27293323e-02 + 7.37109584e-02 7.47058334e-02 7.57141363e-02 7.67360482e-02 7.77717528e-02 + 7.88214363e-02 7.98852873e-02 8.09634971e-02 8.20562595e-02 8.31637709e-02 + 8.42862303e-02 8.54238396e-02 8.65768031e-02 8.77453282e-02 8.89296248e-02 + 9.01299058e-02 9.13463870e-02 9.25792870e-02 9.38288274e-02 9.50952329e-02 + 9.63787310e-02 9.76795524e-02 9.89979310e-02 1.00334104e-01 1.01688311e-01 + 1.03060795e-01 1.04451805e-01 1.05861588e-01 1.07290399e-01 1.08738495e-01 + 1.10206136e-01 1.11693586e-01 1.13201111e-01 1.14728984e-01 1.16277479e-01 + 1.17846873e-01 1.19437449e-01 1.21049494e-01 1.22683296e-01 1.24339149e-01 + 1.26017352e-01 1.27718205e-01 1.29442015e-01 1.31189090e-01 1.32959747e-01 + 1.34754301e-01 1.36573077e-01 1.38416400e-01 1.40284603e-01 1.42178021e-01 + 1.44096994e-01 1.46041868e-01 1.48012992e-01 1.50010719e-01 1.52035411e-01 + 1.54087429e-01 1.56167143e-01 1.58274927e-01 1.60411160e-01 1.62576226e-01 + 1.64770513e-01 1.66994417e-01 1.69248337e-01 1.71532678e-01 1.73847850e-01 + 1.76194270e-01 1.78572360e-01 1.80982547e-01 1.83425264e-01 1.85900951e-01 + 1.88410051e-01 1.90953017e-01 1.93530306e-01 1.96142380e-01 1.98789709e-01 + 2.01472769e-01 2.04192042e-01 2.06948017e-01 2.09741189e-01 2.12572061e-01 + 2.15441141e-01 2.18348945e-01 2.21295996e-01 2.24282822e-01 2.27309962e-01 + 2.30377959e-01 2.33487365e-01 2.36638739e-01 2.39832646e-01 2.43069662e-01 + 2.46350367e-01 2.49675352e-01 2.53045214e-01 2.56460560e-01 2.59922002e-01 + 2.63430163e-01 2.66985673e-01 2.70589173e-01 2.74241308e-01 2.77942737e-01 + 2.81694123e-01 2.85496142e-01 2.89349477e-01 2.93254820e-01 2.97212873e-01 + 3.01224348e-01 3.05289966e-01 3.09410457e-01 3.13586563e-01 3.17819033e-01 + 3.22108629e-01 3.26456121e-01 3.30862292e-01 3.35327932e-01 3.39853846e-01 + 3.44440845e-01 3.49089755e-01 3.53801411e-01 3.58576660e-01 3.63416361e-01 + 3.68321383e-01 3.73292608e-01 3.78330929e-01 3.83437252e-01 3.88612496e-01 + 3.93857590e-01 3.99173476e-01 4.04561111e-01 4.10021463e-01 4.15555512e-01 + 4.21164255e-01 4.26848699e-01 4.32609866e-01 4.38448791e-01 4.44366524e-01 + 4.50364128e-01 4.56442682e-01 4.62603278e-01 4.68847024e-01 4.75175041e-01 + 4.81588467e-01 4.88088455e-01 4.94676173e-01 5.01352806e-01 5.08119553e-01 + 5.14977630e-01 5.21928271e-01 5.28972724e-01 5.36112257e-01 5.43348151e-01 + 5.50681708e-01 5.58114246e-01 5.65647101e-01 5.73281626e-01 5.81019194e-01 + 5.88861197e-01 5.96809042e-01 6.04864160e-01 6.13027997e-01 6.21302021e-01 + 6.29687720e-01 6.38186600e-01 6.46800189e-01 6.55530036e-01 6.64377709e-01 + 6.73344799e-01 6.82432918e-01 6.91643699e-01 7.00978797e-01 7.10439891e-01 + 7.20028682e-01 7.29746892e-01 7.39596268e-01 7.49578581e-01 7.59695625e-01 + 7.69949219e-01 7.80341205e-01 7.90873452e-01 8.01547852e-01 8.12366325e-01 + 8.23330813e-01 8.34443290e-01 8.45705751e-01 8.57120221e-01 8.68688753e-01 + 8.80413424e-01 8.92296343e-01 9.04339645e-01 9.16545496e-01 9.28916089e-01 + 9.41453647e-01 9.54160425e-01 9.67038705e-01 9.80090803e-01 9.93319066e-01 + 1.00672587e+00 1.02031362e+00 1.03408477e+00 1.04804179e+00 1.06218719e+00 + 1.07652350e+00 1.09105331e+00 1.10577923e+00 1.12070391e+00 1.13583002e+00 + 1.15116029e+00 1.16669748e+00 1.18244437e+00 1.19840379e+00 1.21457862e+00 + 1.23097175e+00 1.24758615e+00 1.26442479e+00 1.28149070e+00 1.29878695e+00 + 1.31631665e+00 1.33408294e+00 1.35208903e+00 1.37033814e+00 1.38883356e+00 + 1.40757862e+00 1.42657667e+00 1.44583114e+00 1.46534549e+00 1.48512323e+00 + 1.50516790e+00 1.52548311e+00 1.54607252e+00 1.56693983e+00 1.58808878e+00 + 1.60952317e+00 1.63124687e+00 1.65326377e+00 1.67557783e+00 1.69819306e+00 + 1.72111354e+00 1.74434336e+00 1.76788672e+00 1.79174785e+00 1.81593103e+00 + 1.84044061e+00 1.86528099e+00 1.89045664e+00 1.91597209e+00 1.94183192e+00 + 1.96804078e+00 1.99460338e+00 2.02152449e+00 2.04880896e+00 2.07646169e+00 + 2.10448764e+00 2.13289186e+00 2.16167945e+00 2.19085559e+00 2.22042551e+00 + 2.25039454e+00 2.28076806e+00 2.31155154e+00 2.34275049e+00 2.37437054e+00 + 2.40641736e+00 2.43889672e+00 2.47181445e+00 2.50517647e+00 2.53898878e+00 + 2.57325745e+00 2.60798864e+00 2.64318860e+00 2.67886366e+00 2.71502022e+00 + 2.75166478e+00 2.78880393e+00 2.82644435e+00 2.86459281e+00 2.90325615e+00 + 2.94244133e+00 2.98215539e+00 3.02240547e+00 3.06319880e+00 3.10454272e+00 + 3.14644466e+00 3.18891215e+00 3.23195282e+00 3.27557441e+00 3.31978476e+00 + 3.36459182e+00 3.41000363e+00 3.45602837e+00 3.50267430e+00 3.54994981e+00 + 3.59786340e+00 3.64642368e+00 3.69563937e+00 3.74551933e+00 3.79607251e+00 + 3.84730801e+00 3.89923504e+00 3.95186292e+00 4.00520112e+00 4.05925923e+00 + 4.11404695e+00 4.16957414e+00 4.22585079e+00 4.28288699e+00 4.34069302e+00 + 4.39927925e+00 4.45865622e+00 4.51883459e+00 4.57982520e+00 4.64163899e+00 + 4.70428708e+00 4.76778073e+00 4.83213135e+00 4.89735051e+00 4.96344994e+00 + 5.03044150e+00 5.09833725e+00 5.16714939e+00 5.23689028e+00 5.30757246e+00 + 5.37920864e+00 5.45181169e+00 5.52539466e+00 5.59997078e+00 5.67555346e+00 + 5.75215627e+00 5.82979298e+00 5.90847756e+00 5.98822414e+00 6.06904706e+00 + 6.15096084e+00 6.23398021e+00 6.31812010e+00 6.40339561e+00 6.48982209e+00 + 6.57741507e+00 6.66619028e+00 6.75616369e+00 6.84735147e+00 6.93977001e+00 + 7.03343592e+00 7.12836604e+00 7.22457742e+00 7.32208737e+00 7.42091341e+00 + 7.52107330e+00 7.62258505e+00 7.72546690e+00 7.82973734e+00 7.93541512e+00 + 8.04251923e+00 8.15106892e+00 8.26108370e+00 8.37258335e+00 8.48558791e+00 + 8.60011769e+00 8.71619327e+00 8.83383553e+00 8.95306559e+00 9.07390491e+00 + 9.19637518e+00 9.32049844e+00 9.44629699e+00 9.57379343e+00 9.70301069e+00 + 9.83397200e+00 9.96670088e+00 1.01012212e+01 1.02375571e+01 1.03757332e+01 + 1.05157742e+01 1.06577054e+01 1.08015522e+01 1.09473405e+01 1.10950965e+01 + 1.12448467e+01 1.13966182e+01 1.15504380e+01 1.17063340e+01 1.18643341e+01 + 1.20244668e+01 1.21867607e+01 1.23512451e+01 1.25179496e+01 1.26869041e+01 + 1.28581389e+01 1.30316849e+01 1.32075732e+01 1.33858355e+01 1.35665038e+01 + 1.37496106e+01 1.39351888e+01 1.41232717e+01 1.43138932e+01 1.45070874e+01 + 1.47028892e+01 1.49013338e+01 1.51024567e+01 1.53062942e+01 1.55128829e+01 + 1.57222599e+01 1.59344629e+01 1.61495300e+01 1.63674998e+01 1.65884115e+01 + 1.68123049e+01 1.70392202e+01 1.72691982e+01 1.75022801e+01 1.77385080e+01 + 1.79779242e+01 1.82205718e+01 1.84664944e+01 1.87157363e+01 1.89683421e+01 + 1.92243574e+01 1.94838281e+01 1.97468008e+01 2.00133229e+01 2.02834423e+01 + 2.05572074e+01 2.08346676e+01 2.11158726e+01 2.14008730e+01 2.16897201e+01 + 2.19824657e+01 2.22791625e+01 2.25798639e+01 2.28846237e+01 2.31934970e+01 + 2.35065390e+01 2.38238062e+01 2.41453556e+01 2.44712449e+01 2.48015327e+01 + 2.51362784e+01 2.54755421e+01 2.58193849e+01 2.61678685e+01 2.65210556e+01 + 2.68790097e+01 2.72417950e+01 2.76094769e+01 2.79821213e+01 2.83597954e+01 + 2.87425669e+01 2.91305046e+01 2.95236783e+01 2.99221587e+01 3.03260174e+01 + 3.07353269e+01 3.11501609e+01 3.15705939e+01 3.19967014e+01 3.24285601e+01 + 3.28662476e+01 3.33098426e+01 3.37594247e+01 3.42150749e+01 3.46768749e+01 + 3.51449079e+01 3.56192579e+01 3.61000102e+01 3.65872511e+01 3.70810684e+01 + 3.75815507e+01 3.80887880e+01 3.86028714e+01 3.91238935e+01 3.96519477e+01 + 4.01871291e+01 4.07295339e+01 4.12792594e+01 4.18364046e+01 4.24010695e+01 + 4.29733558e+01 4.35533661e+01 4.41412049e+01 4.47369777e+01 4.53407916e+01 + 4.59527552e+01 4.65729784e+01 4.72015728e+01 4.78386513e+01 4.84843284e+01 + 4.91387202e+01 4.98019444e+01 5.04741200e+01 5.11553680e+01 5.18458108e+01 + 5.25455725e+01 5.32547788e+01 5.39735573e+01 5.47020371e+01 5.54403492e+01 + 5.61886263e+01 5.69470028e+01 5.77156152e+01 5.84946015e+01 5.92841017e+01 + 6.00842578e+01 6.08952136e+01 6.17171149e+01 6.25501093e+01 6.33943466e+01 + 6.42499786e+01 6.51171590e+01 6.59960438e+01 6.68867908e+01 6.77895602e+01 + 6.87045143e+01 6.96318175e+01 7.05716365e+01 7.15241402e+01 7.24894998e+01 + 7.34678888e+01 7.44594832e+01 7.54644611e+01 7.64830031e+01 7.75152924e+01 + 7.85615144e+01 7.96218573e+01 8.06965116e+01 8.17856705e+01 8.28895297e+01 + 8.40082878e+01 8.51421456e+01 8.62913071e+01 8.74559788e+01 8.86363701e+01 + 8.98326931e+01 9.10451628e+01 9.22739972e+01 9.35194171e+01 9.47816465e+01 + 9.60609121e+01 9.73574439e+01 9.86714750e+01 1.00003242e+02 1.01352983e+02 + 1.02720942e+02 1.04107364e+02 1.05512498e+02 1.06936598e+02 1.08379919e+02 + 1.09842720e+02 1.11325265e+02 1.12827819e+02 1.14350653e+02 1.15894041e+02 + 1.17458261e+02 1.19043592e+02 1.20650320e+02 1.22278735e+02 1.23929128e+02 + 1.25601797e+02 1.27297041e+02 1.29015166e+02 1.30756481e+02 1.32521298e+02 + 1.34309935e+02 1.36122713e+02 1.37959958e+02 1.39822000e+02 1.41709174e+02 + 1.43621820e+02 1.45560280e+02 1.47524903e+02 1.49516044e+02 1.51534058e+02 + 1.53579310e+02 1.55652166e+02 1.57752999e+02 1.59882188e+02 1.62040114e+02 + 1.64227166e+02 1.66443736e+02 1.68690223e+02 1.70967031e+02 1.73274569e+02 + 1.75613251e+02 1.77983499e+02 1.80385738e+02 1.82820400e+02 1.85287923e+02 + 1.87788750e+02 1.90323330e+02 1.92892119e+02 1.95495580e+02 1.98134179e+02 + 2.00808391e+02 2.03518697e+02 2.06265584e+02 2.09049546e+02 2.11871083e+02 + 2.14730702e+02 2.17628917e+02 2.20566249e+02 2.23543226e+02 2.26560384e+02 + 2.29618264e+02 2.32717416e+02 2.35858398e+02 2.39041773e+02 2.42268114e+02 + 2.45538001e+02 2.48852022e+02 2.52210771e+02 2.55614854e+02 2.59064882e+02 + 2.62561474e+02 2.66105260e+02 2.69696877e+02 2.73336969e+02 2.77026192e+02 + 2.80765207e+02 2.84554689e+02 2.88395317e+02 2.92287781e+02 2.96232783e+02 + 3.00231029e+02 3.04283240e+02 3.08390144e+02 3.12552478e+02 3.16770992e+02 + 3.21046442e+02 3.25379599e+02 3.29771239e+02 3.34222154e+02 3.38733142e+02 + 3.43305015e+02 3.47938595e+02 3.52634714e+02 3.57394216e+02 3.62217957e+02 + 3.67106805e+02 3.72061636e+02 3.77083343e+02 3.82172828e+02 3.87331006e+02 + 3.92558803e+02 3.97857160e+02 4.03227029e+02 4.08669374e+02 4.14185175e+02 + 4.19775422e+02 4.25441121e+02 4.31183290e+02 4.37002961e+02 4.42901179e+02 + 4.48879006e+02 4.54937515e+02 4.61077796e+02 4.67300952e+02 4.73608102e+02 + 4.80000379e+02 4.86478933e+02 4.93044927e+02 4.99699543e+02 5.06443976e+02 + 5.13279438e+02 5.20207158e+02 5.27228382e+02 5.34344371e+02 5.41556404e+02 + 5.48865778e+02 5.56273806e+02 5.63781821e+02 5.71391170e+02 5.79103223e+02 + 5.86919366e+02 5.94841002e+02 6.02869557e+02 6.11006473e+02 6.19253213e+02 + 6.27611259e+02 6.36082113e+02 6.44667298e+02 6.53368357e+02 6.62186855e+02 + 6.71124375e+02 6.80182525e+02 6.89362932e+02 6.98667247e+02 7.08097142e+02 + 7.17654312e+02 7.27340476e+02 7.37157373e+02 7.47106768e+02 7.57190450e+02 + 7.67410232e+02 7.77767949e+02 7.88265465e+02 7.98904665e+02 8.09687462e+02 + 8.20615795e+02 8.31691626e+02 8.42916949e+02 8.54293779e+02 8.65824161e+02 + 8.77510169e+02 8.89353903e+02 9.01357492e+02 9.13523092e+02 9.25852892e+02 + 9.38349106e+02 9.51013982e+02 9.63849795e+02 9.76858852e+02 9.90043493e+02 + 1.00340609e+03 1.01694903e+03 1.03067477e+03 1.04458576e+03 1.05868451e+03 + 1.07297355e+03 1.08745545e+03 1.10213281e+03 1.11700827e+03 1.13208451e+03 + 1.14736422e+03 1.16285017e+03 1.17854513e+03 1.19445193e+03 1.21057342e+03 + 1.22691250e+03 1.24347211e+03 1.26025522e+03 1.27726485e+03 1.29450407e+03 + 1.31197596e+03 1.32968367e+03 1.34763038e+03 1.36581931e+03 1.38425374e+03 + 1.40293698e+03 1.42187239e+03 1.44106337e+03 1.46051336e+03 1.48022588e+03 + 1.50020445e+03 1.52045267e+03 1.54097419e+03 1.56177268e+03 1.58285189e+03 + 1.60421560e+03 1.62586766e+03 1.64781196e+03 1.67005244e+03 1.69259310e+03 + 1.71543799e+03 1.73859121e+03 1.76205693e+03 1.78583938e+03 1.80994281e+03 + 1.83437156e+03 1.85913003e+03 1.88422266e+03 1.90965397e+03 1.93542853e+03 + 1.96155096e+03 1.98802597e+03 2.01485831e+03 2.04205280e+03 2.06961434e+03 + 2.09754787e+03 2.12585843e+03 2.15455109e+03 2.18363101e+03 2.21310343e+03 + 2.24297363e+03 2.27324699e+03 2.30392895e+03 2.33502503e+03 2.36654081e+03 + 2.39848195e+03 2.43085420e+03 2.46366339e+03 2.49691539e+03 2.53061620e+03 + 2.56477187e+03 2.59938853e+03 2.63447242e+03 2.67002983e+03 2.70606716e+03 + 2.74259088e+03 2.77960756e+03 2.81712386e+03 2.85514651e+03 2.89368236e+03 + 2.93273832e+03 2.97232142e+03 3.01243877e+03 3.05309759e+03 3.09430517e+03 + 3.13606893e+03 3.17839638e+03 3.22129512e+03 3.26477287e+03 3.30883743e+03 + 3.35349673e+03 3.39875879e+03 3.44463176e+03 3.49112387e+03 3.53824349e+03 + 3.58599907e+03 3.63439922e+03 3.68345262e+03 3.73316809e+03 3.78355457e+03 + 3.83462112e+03 3.88637691e+03 3.93883124e+03 3.99199356e+03 4.04587340e+03 + 4.10048045e+03 4.15582454e+03 4.21191561e+03 4.26876373e+03 4.32637913e+03 + 4.38477217e+03 4.44395333e+03 4.50393327e+03 4.56472275e+03 4.62633270e+03 + 4.68877420e+03 4.75205848e+03 4.81619690e+03 4.88120099e+03 4.94708244e+03 + 5.01385310e+03 5.08152495e+03 5.15011018e+03 5.21962109e+03 5.29007019e+03 + 5.36147014e+03 5.43383378e+03 5.50717410e+03 5.58150430e+03 5.65683773e+03 + 5.73318793e+03 5.81056864e+03 5.88899374e+03 5.96847735e+03 6.04903375e+03 + 6.13067741e+03 6.21342302e+03 6.29728544e+03 6.38227975e+03 6.46842123e+03 + 6.55572536e+03 6.64420783e+03 6.73388454e+03 6.82477162e+03 6.91688540e+03 + 7.01024244e+03 7.10485951e+03 7.20075363e+03 7.29794203e+03 7.39644218e+03 + 7.49627178e+03 7.59744879e+03 7.69999137e+03 7.80391797e+03 7.90924727e+03 + 8.01599819e+03 8.12418992e+03 8.23384192e+03 8.34497389e+03 8.45760580e+03 + 8.57175791e+03 8.68745072e+03 8.80470504e+03 8.92354193e+03 9.04398276e+03 + 9.16604918e+03 9.28976313e+03 9.41514684e+03 9.54222285e+03 9.67101401e+03 + 9.80154345e+03 9.93383465e+03 1.00679114e+04 1.02037977e+04 1.03415182e+04 + 1.04810974e+04 1.06225605e+04 1.07659329e+04 1.09112405e+04 1.10585092e+04 + 1.12077657e+04 1.13590366e+04 1.15123493e+04 1.16677312e+04 1.18252103e+04 + 1.19848148e+04 1.21465736e+04 1.23105156e+04 1.24766704e+04 1.26450677e+04 + 1.28157379e+04 1.29887116e+04 1.31640199e+04 1.33416944e+04 1.35217669e+04 + 1.37042699e+04 1.38892361e+04 1.40766987e+04 1.42666916e+04 1.44592488e+04 + 1.46544049e+04 1.48521951e+04 1.50526548e+04 1.52558201e+04 1.54617276e+04 + 1.56704142e+04 1.58819174e+04 1.60962752e+04 1.63135263e+04 1.65337095e+04 + 1.67568646e+04 1.69830316e+04 1.72122512e+04 1.74445645e+04 1.76800134e+04 + 1.79186401e+04 1.81604876e+04 1.84055993e+04 1.86540192e+04 1.89057921e+04 + 1.91609631e+04 1.94195781e+04 1.96816837e+04 1.99473269e+04 2.02165555e+04 + 2.04894179e+04 2.07659631e+04 2.10462408e+04 2.13303014e+04 2.16181960e+04 + 2.19099763e+04 2.22056947e+04 2.25054044e+04 2.28091593e+04 2.31170140e+04 + 2.34290238e+04 2.37452448e+04 2.40657338e+04 2.43905484e+04 2.47197470e+04 + 2.50533889e+04 2.53915339e+04 2.57342428e+04 2.60815773e+04 2.64335997e+04 + 2.67903734e+04 2.71519624e+04 2.75184318e+04 2.78898474e+04 2.82662760e+04 + 2.86477853e+04 2.90344437e+04 2.94263209e+04 2.98234873e+04 3.02260142e+04 + 3.06339740e+04 3.10474400e+04 3.14664865e+04 3.18911890e+04 3.23216236e+04 + 3.27578678e+04 3.31999999e+04 3.36480995e+04 3.41022471e+04 3.45625243e+04 + 3.50290139e+04 3.55017997e+04 3.59809666e+04 3.64666009e+04 3.69587897e+04 + 3.74576216e+04 3.79631862e+04 3.84755745e+04 3.89948784e+04 3.95211913e+04 + 4.00546079e+04 4.05952240e+04 4.11431368e+04 4.16984447e+04 4.22612476e+04 + 4.28316467e+04 4.34097444e+04 4.39956447e+04 4.45894528e+04 4.51912756e+04 + 4.58012212e+04 4.64193992e+04 4.70459207e+04 4.76808984e+04 4.83244463e+04 + 4.89766802e+04 4.96377173e+04 5.03076764e+04 5.09866779e+04 5.16748439e+04 + 5.23722980e+04 5.30791657e+04 5.37955739e+04 5.45216515e+04 5.52575289e+04 + 5.60033385e+04 5.67592142e+04 5.75252919e+04 5.83017094e+04 5.90886062e+04 + 5.98861237e+04 6.06944053e+04 6.15135963e+04 6.23438438e+04 6.31852972e+04 + 6.40381076e+04 6.49024284e+04 6.57784150e+04 6.66662247e+04 6.75660171e+04 + 6.84779540e+04 6.94021994e+04 7.03389192e+04 7.12882819e+04 7.22504581e+04 + 7.32256209e+04 7.42139453e+04 7.52156092e+04 7.62307924e+04 7.72596776e+04 + 7.83024497e+04 7.93592960e+04 8.04304065e+04 8.15159738e+04 8.26161929e+04 + 8.37312617e+04 8.48613806e+04 8.60067526e+04 8.71675837e+04 8.83440825e+04 + 8.95364604e+04 9.07449319e+04 9.19697141e+04 9.32110271e+04 9.44690942e+04 + 9.57441413e+04 9.70363977e+04 9.83460956e+04 9.96734705e+04 1.01018761e+05 + 1.02382209e+05 1.03764059e+05 1.05164560e+05 1.06583964e+05 1.08022525e+05 + 1.09480502e+05 1.10958158e+05 1.12455758e+05 1.13973570e+05 1.15511869e+05 + 1.17070930e+05 1.18651033e+05 1.20252464e+05 1.21875508e+05 1.23520459e+05 + 1.25187612e+05 1.26877266e+05 1.28589725e+05 1.30325298e+05 1.32084295e+05 + 1.33867034e+05 1.35673834e+05 1.37505020e+05 1.39360922e+05 1.41241873e+05 + 1.43148212e+05 1.45080280e+05 1.47038425e+05 1.49022999e+05 1.51034359e+05 + 1.53072866e+05 1.55138887e+05 1.57232793e+05 1.59354960e+05 1.61505770e+05 + 1.63685609e+05 1.65894870e+05 1.68133949e+05 1.70403249e+05 1.72703178e+05 + 1.75034149e+05 1.77396580e+05 1.79790898e+05 1.82217531e+05 1.84676917e+05 + 1.87169497e+05 1.89695719e+05 1.92256038e+05 1.94850913e+05 1.97480811e+05 + 2.00146205e+05 2.02847573e+05 2.05585402e+05 2.08360183e+05 2.11172416e+05 + 2.14022605e+05 2.16911263e+05 2.19838909e+05 2.22806069e+05 2.25813278e+05 + 2.28861074e+05 2.31950007e+05 2.35080630e+05 2.38253508e+05 2.41469210e+05 + 2.44728314e+05 2.48031406e+05 2.51379080e+05 2.54771938e+05 2.58210588e+05 + 2.61695651e+05 2.65227751e+05 2.68807523e+05 2.72435612e+05 2.76112669e+05 + 2.79839355e+05 2.83616340e+05 2.87444303e+05 2.91323932e+05 2.95255924e+05 + 2.99240986e+05 3.03279835e+05 3.07373196e+05 3.11521804e+05 3.15726407e+05 + 3.19987758e+05 3.24306626e+05 3.28683784e+05 3.33120022e+05 3.37616135e+05 + 3.42172931e+05 3.46791231e+05 3.51471864e+05 3.56215672e+05 3.61023506e+05 + 3.65896232e+05 3.70834725e+05 3.75839872e+05 3.80912574e+05 3.86053742e+05 + 3.91264300e+05 3.96545185e+05 4.01897346e+05 4.07321745e+05 4.12819356e+05 + 4.18391169e+05 4.24038185e+05 4.29761418e+05 4.35561898e+05 4.41440667e+05 + 4.47398781e+05 4.53437311e+05 4.59557344e+05 4.65759979e+05 4.72046330e+05 + 4.78417528e+05 4.84874718e+05 4.91419060e+05 4.98051732e+05 5.04773924e+05 + 5.11586846e+05 5.18491721e+05 5.25489792e+05 5.32582315e+05 5.39770566e+05 + 5.47055836e+05 5.54439436e+05 5.61922691e+05 5.69506949e+05 5.77193570e+05 + 5.84983938e+05 5.92879453e+05 6.00881532e+05 6.08991616e+05 6.17211161e+05 + 6.25541646e+05 6.33984566e+05 6.42541441e+05 6.51213808e+05 6.60003225e+05 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 6.88504212e-06 6.97796937e-06 7.07215085e-06 7.16760350e-06 7.26434448e-06 + 7.36239116e-06 7.46176118e-06 7.56247239e-06 7.66454290e-06 7.76799106e-06 + 7.87283545e-06 7.97909492e-06 8.08678857e-06 8.19593576e-06 8.30655611e-06 + 8.41866950e-06 8.53229609e-06 8.64745628e-06 8.76417079e-06 8.88246060e-06 + 9.00234696e-06 9.12385142e-06 9.24699583e-06 9.37180231e-06 9.49829330e-06 + 9.62649154e-06 9.75642007e-06 9.88810223e-06 1.00215617e-05 1.01568225e-05 + 1.02939089e-05 1.04328455e-05 1.05736574e-05 1.07163698e-05 1.08610084e-05 + 1.10075992e-05 1.11561685e-05 1.13067430e-05 1.14593498e-05 1.16140164e-05 + 1.17707705e-05 1.19296403e-05 1.20906544e-05 1.22538417e-05 1.24192315e-05 + 1.25868536e-05 1.27567380e-05 1.29289154e-05 1.31034167e-05 1.32802732e-05 + 1.34595167e-05 1.36411795e-05 1.38252941e-05 1.40118938e-05 1.42010120e-05 + 1.43926827e-05 1.45869404e-05 1.47838200e-05 1.49833569e-05 1.51855869e-05 + 1.53905464e-05 1.55982722e-05 1.58088017e-05 1.60221728e-05 1.62384236e-05 + 1.64575933e-05 1.66797210e-05 1.69048468e-05 1.71330111e-05 1.73642550e-05 + 1.75986199e-05 1.78361481e-05 1.80768821e-05 1.83208654e-05 1.85681416e-05 + 1.88187554e-05 1.90727517e-05 1.93301762e-05 1.95910751e-05 1.98554954e-05 + 2.01234845e-05 2.03950907e-05 2.06703628e-05 2.09493502e-05 2.12321030e-05 + 2.15186722e-05 2.18091092e-05 2.21034663e-05 2.24017962e-05 2.27041527e-05 + 2.30105901e-05 2.33211635e-05 2.36359287e-05 2.39549423e-05 2.42782616e-05 + 2.46059447e-05 2.49380505e-05 2.52746388e-05 2.56157700e-05 2.59615054e-05 + 2.63119073e-05 2.66670385e-05 2.70269628e-05 2.73917451e-05 2.77614508e-05 + 2.81361465e-05 2.85158994e-05 2.89007778e-05 2.92908509e-05 2.96861888e-05 + 3.00868626e-05 3.04929443e-05 3.09045068e-05 3.13216242e-05 3.17443714e-05 + 3.21728244e-05 3.26070603e-05 3.30471570e-05 3.34931937e-05 3.39452505e-05 + 3.44034088e-05 3.48677508e-05 3.53383600e-05 3.58153210e-05 3.62987195e-05 + 3.67886424e-05 3.72851779e-05 3.77884150e-05 3.82984444e-05 3.88153576e-05 + 3.93392475e-05 3.98702084e-05 4.04083357e-05 4.09537260e-05 4.15064775e-05 + 4.20666894e-05 4.26344625e-05 4.32098988e-05 4.37931018e-05 4.43841763e-05 + 4.49832284e-05 4.55903660e-05 4.62056981e-05 4.68293353e-05 4.74613897e-05 + 4.81019749e-05 4.87512062e-05 4.94092000e-05 5.00760748e-05 5.07519504e-05 + 5.14369483e-05 5.21311915e-05 5.28348050e-05 5.35479151e-05 5.42706500e-05 + 5.50031397e-05 5.57455158e-05 5.64979117e-05 5.72604626e-05 5.80333057e-05 + 5.88165799e-05 5.96104258e-05 6.04149863e-05 6.12304060e-05 6.20568313e-05 + 6.28944109e-05 6.37432952e-05 6.46036370e-05 6.54755907e-05 6.63593132e-05 + 6.72549633e-05 6.81627019e-05 6.90826923e-05 7.00150997e-05 7.09600919e-05 + 7.19178385e-05 7.28885119e-05 7.38722864e-05 7.48693389e-05 7.58798486e-05 + 7.69039971e-05 7.79419685e-05 7.89939494e-05 8.00601288e-05 8.11406985e-05 + 8.22358526e-05 8.33457879e-05 8.44707040e-05 8.56108031e-05 8.67662901e-05 + 8.79373726e-05 8.91242612e-05 9.03271693e-05 9.15463129e-05 9.27819113e-05 + 9.40341866e-05 9.53033637e-05 9.65896710e-05 9.78933395e-05 9.92146035e-05 + 1.00553701e-04 1.01910872e-04 1.03286360e-04 1.04680414e-04 1.06093283e-04 + 1.07525221e-04 1.08976487e-04 1.10447340e-04 1.11938045e-04 1.13448870e-04 + 1.14980087e-04 1.16531970e-04 1.18104799e-04 1.19698857e-04 1.21314430e-04 + 1.22951808e-04 1.24611285e-04 1.26293161e-04 1.27997736e-04 1.29725319e-04 + 1.31476218e-04 1.33250750e-04 1.35049232e-04 1.36871988e-04 1.38719346e-04 + 1.40591638e-04 1.42489200e-04 1.44412373e-04 1.46361504e-04 1.48336941e-04 + 1.50339042e-04 1.52368164e-04 1.54424673e-04 1.56508940e-04 1.58621337e-04 + 1.60762245e-04 1.62932050e-04 1.65131140e-04 1.67359911e-04 1.69618763e-04 + 1.71908104e-04 1.74228343e-04 1.76579899e-04 1.78963194e-04 1.81378656e-04 + 1.83826719e-04 1.86307824e-04 1.88822416e-04 1.91370948e-04 1.93953877e-04 + 1.96571668e-04 1.99224791e-04 2.01913723e-04 2.04638948e-04 2.07400955e-04 + 2.10200241e-04 2.13037308e-04 2.15912668e-04 2.18826836e-04 2.21780337e-04 + 2.24773701e-04 2.27807466e-04 2.30882178e-04 2.33998389e-04 2.37156660e-04 + 2.40357558e-04 2.43601658e-04 2.46889543e-04 2.50221806e-04 2.53599044e-04 + 2.57021864e-04 2.60490882e-04 2.64006721e-04 2.67570013e-04 2.71181399e-04 + 2.74841528e-04 2.78551058e-04 2.82310655e-04 2.86120995e-04 2.89982763e-04 + 2.93896654e-04 2.97863370e-04 3.01883625e-04 3.05958141e-04 3.10087651e-04 + 3.14272896e-04 3.18514630e-04 3.22813614e-04 3.27170622e-04 3.31586436e-04 + 3.36061850e-04 3.40597669e-04 3.45194708e-04 3.49853792e-04 3.54575761e-04 + 3.59361461e-04 3.64211754e-04 3.69127512e-04 3.74109617e-04 3.79158966e-04 + 3.84276465e-04 3.89463035e-04 3.94719609e-04 4.00047130e-04 4.05446556e-04 + 4.10918859e-04 4.16465021e-04 4.22086040e-04 4.27782925e-04 4.33556701e-04 + 4.39408405e-04 4.45339090e-04 4.51349821e-04 4.57441679e-04 4.63615758e-04 + 4.69873169e-04 4.76215036e-04 4.82642499e-04 4.89156713e-04 4.95758850e-04 + 5.02450095e-04 5.09231652e-04 5.16104740e-04 5.23070593e-04 5.30130464e-04 + 5.37285623e-04 5.44537354e-04 5.51886961e-04 5.59335767e-04 5.66885108e-04 + 5.74536343e-04 5.82290846e-04 5.90150012e-04 5.98115253e-04 6.06188000e-04 + 6.14369705e-04 6.22661838e-04 6.31065890e-04 6.39583371e-04 6.48215813e-04 + 6.56964766e-04 6.65831804e-04 6.74818520e-04 6.83926530e-04 6.93157470e-04 + 7.02513000e-04 7.11994801e-04 7.21604578e-04 7.31344057e-04 7.41214991e-04 + 7.51219152e-04 7.61358339e-04 7.71634374e-04 7.82049105e-04 7.92604403e-04 + 8.03302166e-04 8.14144316e-04 8.25132802e-04 8.36269600e-04 8.47556711e-04 + 8.58996164e-04 8.70590014e-04 8.82340347e-04 8.94249274e-04 9.06318935e-04 + 9.18551500e-04 9.30949168e-04 9.43514166e-04 9.56248755e-04 9.69155221e-04 + 9.82235886e-04 9.95493101e-04 1.00892925e-03 1.02254674e-03 1.03634803e-03 + 1.05033559e-03 1.06451195e-03 1.07887964e-03 1.09344125e-03 1.10819941e-03 + 1.12315675e-03 1.13831597e-03 1.15367979e-03 1.16925098e-03 1.18503233e-03 + 1.20102668e-03 1.21723691e-03 1.23366593e-03 1.25031669e-03 1.26719218e-03 + 1.28429545e-03 1.30162955e-03 1.31919761e-03 1.33700279e-03 1.35504829e-03 + 1.37333734e-03 1.39187324e-03 1.41065932e-03 1.42969896e-03 1.44899557e-03 + 1.46855263e-03 1.48837365e-03 1.50846219e-03 1.52882187e-03 1.54945635e-03 + 1.57036932e-03 1.59156456e-03 1.61304587e-03 1.63481711e-03 1.65688220e-03 + 1.67924510e-03 1.70190983e-03 1.72488046e-03 1.74816113e-03 1.77175602e-03 + 1.79566937e-03 1.81990548e-03 1.84446870e-03 1.86936345e-03 1.89459420e-03 + 1.92016550e-03 1.94608192e-03 1.97234815e-03 1.99896888e-03 2.02594892e-03 + 2.05329310e-03 2.08100635e-03 2.10909364e-03 2.13756003e-03 2.16641063e-03 + 2.19565062e-03 2.22528526e-03 2.25531988e-03 2.28575988e-03 2.31661073e-03 + 2.34787797e-03 2.37956722e-03 2.41168418e-03 2.44423463e-03 2.47722440e-03 + 2.51065944e-03 2.54454575e-03 2.57888943e-03 2.61369664e-03 2.64897364e-03 + 2.68472677e-03 2.72096247e-03 2.75768723e-03 2.79490767e-03 2.83263047e-03 + 2.87086242e-03 2.90961038e-03 2.94888132e-03 2.98868230e-03 3.02902048e-03 + 3.06990309e-03 3.11133750e-03 3.15333115e-03 3.19589159e-03 3.23902646e-03 + 3.28274352e-03 3.32705063e-03 3.37195576e-03 3.41746696e-03 3.46359243e-03 + 3.51034046e-03 3.55771944e-03 3.60573789e-03 3.65440445e-03 3.70372786e-03 + 3.75371699e-03 3.80438082e-03 3.85572845e-03 3.90776913e-03 3.96051220e-03 + 4.01396713e-03 4.06814355e-03 4.12305119e-03 4.17869991e-03 4.23509973e-03 + 4.29226077e-03 4.35019331e-03 4.40890776e-03 4.46841469e-03 4.52872477e-03 + 4.58984886e-03 4.65179794e-03 4.71458315e-03 4.77821577e-03 4.84270723e-03 + 4.90806913e-03 4.97431323e-03 5.04145141e-03 5.10949576e-03 5.17845851e-03 + 5.24835204e-03 5.31918892e-03 5.39098188e-03 5.46374384e-03 5.53748786e-03 + 5.61222720e-03 5.68797530e-03 5.76474576e-03 5.84255240e-03 5.92140919e-03 + 6.00133031e-03 6.08233012e-03 6.16442319e-03 6.24762426e-03 6.33194830e-03 + 6.41741045e-03 6.50402609e-03 6.59181077e-03 6.68078028e-03 6.77095062e-03 + 6.86233798e-03 6.95495879e-03 7.04882970e-03 7.14396759e-03 7.24038955e-03 + 7.33811291e-03 7.43715525e-03 7.53753436e-03 7.63926828e-03 7.74237530e-03 + 7.84687395e-03 7.95278302e-03 8.06012155e-03 8.16890882e-03 8.27916438e-03 + 8.39090807e-03 8.50415995e-03 8.61894040e-03 8.73527003e-03 8.85316976e-03 + 8.97266078e-03 9.09376457e-03 9.21650290e-03 9.34089782e-03 9.46697169e-03 + 9.59474718e-03 9.72424726e-03 9.85549519e-03 9.98851457e-03 1.01233293e-02 + 1.02599637e-02 1.03984421e-02 1.05387897e-02 1.06810315e-02 1.08251931e-02 + 1.09713005e-02 1.11193798e-02 1.12694578e-02 1.14215614e-02 1.15757180e-02 + 1.17319552e-02 1.18903011e-02 1.20507842e-02 1.22134334e-02 1.23782778e-02 + 1.25453471e-02 1.27146713e-02 1.28862810e-02 1.30602068e-02 1.32364801e-02 + 1.34151325e-02 1.35961963e-02 1.37797038e-02 1.39656881e-02 1.41541827e-02 + 1.43452214e-02 1.45388385e-02 1.47350688e-02 1.49339477e-02 1.51355108e-02 + 1.53397945e-02 1.55468353e-02 1.57566706e-02 1.59693380e-02 1.61848758e-02 + 1.64033226e-02 1.66247179e-02 1.68491013e-02 1.70765132e-02 1.73069945e-02 + 1.75405866e-02 1.77773315e-02 1.80172717e-02 1.82604504e-02 1.85069113e-02 + 1.87566986e-02 1.90098573e-02 1.92664329e-02 1.95264715e-02 1.97900198e-02 + 2.00571252e-02 2.03278358e-02 2.06022001e-02 2.08802675e-02 2.11620880e-02 + 2.14477122e-02 2.17371914e-02 2.20305778e-02 2.23279240e-02 2.26292834e-02 + 2.29347103e-02 2.32442596e-02 2.35579868e-02 2.38759484e-02 2.41982015e-02 + 2.45248040e-02 2.48558147e-02 2.51912931e-02 2.55312994e-02 2.58758947e-02 + 2.62251410e-02 2.65791011e-02 2.69378386e-02 2.73014180e-02 2.76699046e-02 + 2.80433646e-02 2.84218652e-02 2.88054745e-02 2.91942613e-02 2.95882955e-02 + 2.99876481e-02 3.03923906e-02 3.08025960e-02 3.12183379e-02 3.16396911e-02 + 3.20667312e-02 3.24995351e-02 3.29381806e-02 3.33827464e-02 3.38333125e-02 + 3.42899600e-02 3.47527707e-02 3.52218280e-02 3.56972162e-02 3.61790207e-02 + 3.66673281e-02 3.71622261e-02 3.76638038e-02 3.81721513e-02 3.86873599e-02 + 3.92095223e-02 3.97387323e-02 4.02750850e-02 4.08186768e-02 4.13696055e-02 + 4.19279701e-02 4.24938709e-02 4.30674097e-02 4.36486895e-02 4.42378148e-02 + 4.48348916e-02 4.54400270e-02 4.60533300e-02 4.66749107e-02 4.73048808e-02 + 4.79433537e-02 4.85904440e-02 4.92462681e-02 4.99109438e-02 5.05845906e-02 + 5.12673296e-02 5.19592835e-02 5.26605767e-02 5.33713353e-02 5.40916869e-02 + 5.48217611e-02 5.55616891e-02 5.63116039e-02 5.70716403e-02 5.78419349e-02 + 5.86226261e-02 5.94138543e-02 6.02157617e-02 6.10284924e-02 6.18521925e-02 + 6.26870100e-02 6.35330951e-02 6.43905998e-02 6.52596782e-02 6.61404865e-02 + 6.70331831e-02 6.79379283e-02 6.88548849e-02 6.97842177e-02 7.07260936e-02 + 7.16806820e-02 7.26481545e-02 7.36286849e-02 7.46224495e-02 7.56296269e-02 + 7.66503982e-02 7.76849468e-02 7.87334586e-02 7.97961222e-02 8.08731286e-02 + 8.19646713e-02 8.30709465e-02 8.41921531e-02 8.53284926e-02 8.64801692e-02 + 8.76473900e-02 8.88303647e-02 9.00293060e-02 9.12444294e-02 9.24759533e-02 + 9.37240991e-02 9.49890910e-02 9.62711565e-02 9.75705260e-02 9.88874331e-02 + 1.00222114e-01 1.01574810e-01 1.02945763e-01 1.04335219e-01 1.05743429e-01 + 1.07170646e-01 1.08617125e-01 1.10083128e-01 1.11568917e-01 1.13074760e-01 + 1.14600928e-01 1.16147694e-01 1.17715336e-01 1.19304138e-01 1.20914383e-01 + 1.22546361e-01 1.24200367e-01 1.25876696e-01 1.27575651e-01 1.29297536e-01 + 1.31042662e-01 1.32811342e-01 1.34603893e-01 1.36420639e-01 1.38261905e-01 + 1.40128022e-01 1.42019327e-01 1.43936158e-01 1.45878861e-01 1.47847785e-01 + 1.49843283e-01 1.51865714e-01 1.53915442e-01 1.55992835e-01 1.58098267e-01 + 1.60232115e-01 1.62394764e-01 1.64586603e-01 1.66808024e-01 1.69059428e-01 + 1.71341219e-01 1.73653807e-01 1.75997609e-01 1.78373044e-01 1.80780541e-01 + 1.83220532e-01 1.85693455e-01 1.88199755e-01 1.90739882e-01 1.93314294e-01 + 1.95923452e-01 1.98567827e-01 2.01247892e-01 2.03964130e-01 2.06717029e-01 + 2.09507084e-01 2.12334796e-01 2.15200673e-01 2.18105232e-01 2.21048993e-01 + 2.24032486e-01 2.27056247e-01 2.30120820e-01 2.33226755e-01 2.36374611e-01 + 2.39564954e-01 2.42798356e-01 2.46075400e-01 2.49396673e-01 2.52762774e-01 + 2.56174308e-01 2.59631886e-01 2.63136131e-01 2.66687674e-01 2.70287151e-01 + 2.73935210e-01 2.77632507e-01 2.81379706e-01 2.85177481e-01 2.89026515e-01 + 2.92927499e-01 2.96881135e-01 3.00888132e-01 3.04949212e-01 3.09065104e-01 + 3.13236549e-01 3.17464295e-01 3.21749103e-01 3.26091743e-01 3.30492995e-01 + 3.34953651e-01 3.39474513e-01 3.44056392e-01 3.48700113e-01 3.53406510e-01 + 3.58176430e-01 3.63010728e-01 3.67910276e-01 3.72875952e-01 3.77908650e-01 + 3.83009274e-01 3.88178741e-01 3.93417980e-01 3.98727933e-01 4.04109554e-01 + 4.09563811e-01 4.15091684e-01 4.20694167e-01 4.26372266e-01 4.32127002e-01 + 4.37959410e-01 4.43870538e-01 4.49861448e-01 4.55933217e-01 4.62086937e-01 + 4.68323713e-01 4.74644667e-01 4.81050935e-01 4.87543668e-01 4.94124034e-01 + 5.00793214e-01 5.07552408e-01 5.14402831e-01 5.21345713e-01 5.28382304e-01 + 5.35513867e-01 5.42741685e-01 5.50067057e-01 5.57491299e-01 5.65015746e-01 + 5.72641750e-01 5.80370682e-01 5.88203931e-01 5.96142905e-01 6.04189032e-01 + 6.12343757e-01 6.20608546e-01 6.28984885e-01 6.37474279e-01 6.46078254e-01 + 6.54798357e-01 6.63636155e-01 6.72593236e-01 6.81671211e-01 6.90871711e-01 + 7.00196390e-01 7.09646924e-01 7.19225012e-01 7.28932374e-01 7.38770757e-01 + 7.48741929e-01 7.58847681e-01 7.69089830e-01 7.79470217e-01 7.89990708e-01 + 8.00653193e-01 8.11459591e-01 8.22411841e-01 8.33511914e-01 8.44761805e-01 + 8.56163535e-01 8.67719154e-01 8.79430738e-01 8.91300394e-01 9.03330254e-01 + 9.15522481e-01 9.27879266e-01 9.40402831e-01 9.53095425e-01 9.65959331e-01 + 9.78996861e-01 9.92210359e-01 1.00560220e+00 1.01917479e+00 1.03293057e+00 + 1.04687200e+00 1.06100161e+00 1.07532192e+00 1.08983552e+00 1.10454500e+00 + 1.11945302e+00 1.13456225e+00 1.14987541e+00 1.16539525e+00 1.18112456e+00 + 1.19706617e+00 1.21322295e+00 1.22959779e+00 1.24619364e+00 1.26301349e+00 + 1.28006035e+00 1.29733729e+00 1.31484742e+00 1.33259389e+00 1.35057988e+00 + 1.36880862e+00 1.38728340e+00 1.40600753e+00 1.42498438e+00 1.44421736e+00 + 1.46370993e+00 1.48346558e+00 1.50348788e+00 1.52378042e+00 1.54434685e+00 + 1.56519086e+00 1.58631621e+00 1.60772668e+00 1.62942613e+00 1.65141846e+00 + 1.67370761e+00 1.69629760e+00 1.71919249e+00 1.74239639e+00 1.76591347e+00 + 1.78974797e+00 1.81390415e+00 1.83838637e+00 1.86319903e+00 1.88834658e+00 + 1.91383355e+00 1.93966452e+00 1.96584412e+00 1.99237707e+00 2.01926814e+00 + 2.04652215e+00 2.07414401e+00 2.10213869e+00 2.13051120e+00 2.15926666e+00 + 2.18841023e+00 2.21794715e+00 2.24788273e+00 2.27822235e+00 2.30897147e+00 + 2.34013560e+00 2.37172035e+00 2.40373141e+00 2.43617451e+00 2.46905550e+00 + 2.50238028e+00 2.53615485e+00 2.57038527e+00 2.60507770e+00 2.64023837e+00 + 2.67587361e+00 2.71198981e+00 2.74859347e+00 2.78569117e+00 2.82328958e+00 + 2.86139545e+00 2.90001564e+00 2.93915708e+00 2.97882681e+00 3.01903197e+00 + 3.05977977e+00 3.10107754e+00 3.14293271e+00 3.18535280e+00 3.22834543e+00 + 3.27191833e+00 3.31607934e+00 3.36083638e+00 3.40619751e+00 3.45217088e+00 + 3.49876474e+00 3.54598749e+00 3.59384760e+00 3.64235367e+00 3.69151443e+00 + 3.74133872e+00 3.79183548e+00 3.84301379e+00 3.89488285e+00 3.94745200e+00 + 4.00073066e+00 4.05472843e+00 4.10945500e+00 4.16492022e+00 4.22113405e+00 + 4.27810659e+00 4.33584809e+00 4.39436893e+00 4.45367962e+00 4.51379083e+00 + 4.57471336e+00 4.63645816e+00 4.69903632e+00 4.76245910e+00 4.82673790e+00 + 4.89188427e+00 4.95790991e+00 5.02482670e+00 5.09264667e+00 5.16138200e+00 + 5.23104505e+00 5.30164834e+00 5.37320456e+00 5.44572658e+00 5.51922742e+00 + 5.59372030e+00 5.66921861e+00 5.74573592e+00 5.82328598e+00 5.90188273e+00 + 5.98154030e+00 6.06227301e+00 6.14409536e+00 6.22702207e+00 6.31106804e+00 + 6.39624837e+00 6.48257839e+00 6.57007359e+00 6.65874972e+00 6.74862270e+00 + 6.83970870e+00 6.93202409e+00 7.02558545e+00 7.12040961e+00 7.21651361e+00 + 7.31391472e+00 7.41263046e+00 7.51267855e+00 7.61407700e+00 7.71684401e+00 + 7.82099807e+00 7.92655790e+00 8.03354246e+00 8.14197099e+00 8.25186298e+00 + 8.36323818e+00 8.47611660e+00 8.59051855e+00 8.70646457e+00 8.82397552e+00 + 8.94307250e+00 9.06377694e+00 9.18611052e+00 9.31009524e+00 9.43575337e+00 + 9.56310751e+00 9.69218054e+00 9.82299567e+00 9.95557641e+00 1.00899466e+01 + 1.02261304e+01 1.03641522e+01 1.05040369e+01 1.06458096e+01 1.07894959e+01 + 1.09351215e+01 1.10827125e+01 1.12322956e+01 1.13838977e+01 1.15375459e+01 + 1.16932678e+01 1.18510916e+01 1.20110455e+01 1.21731583e+01 1.23374591e+01 + 1.25039775e+01 1.26727434e+01 1.28437871e+01 1.30171394e+01 1.31928314e+01 + 1.33708948e+01 1.35513614e+01 1.37342638e+01 1.39196348e+01 1.41075078e+01 + 1.42979165e+01 1.44908951e+01 1.46864784e+01 1.48847015e+01 1.50855999e+01 + 1.52892099e+01 1.54955680e+01 1.57047113e+01 1.59166774e+01 1.61315045e+01 + 1.63492310e+01 1.65698962e+01 1.67935397e+01 1.70202017e+01 1.72499229e+01 + 1.74827447e+01 1.77187089e+01 1.79578579e+01 1.82002347e+01 1.84458828e+01 + 1.86948465e+01 1.89471703e+01 1.92028999e+01 1.94620809e+01 1.97247602e+01 + 1.99909848e+01 2.02608026e+01 2.05342622e+01 2.08114127e+01 2.10923038e+01 + 2.13769861e+01 2.16655108e+01 2.19579297e+01 2.22542953e+01 2.25546610e+01 + 2.28590807e+01 2.31676092e+01 2.34803019e+01 2.37972150e+01 2.41184054e+01 + 2.44439309e+01 2.47738501e+01 2.51082222e+01 2.54471072e+01 2.57905662e+01 + 2.61386609e+01 2.64914538e+01 2.68490083e+01 2.72113887e+01 2.75786602e+01 + 2.79508887e+01 2.83281412e+01 2.87104854e+01 2.90979902e+01 2.94907251e+01 + 2.98887607e+01 3.02921686e+01 3.07010212e+01 3.11153922e+01 3.15353559e+01 + 3.19609878e+01 3.23923645e+01 3.28295635e+01 3.32726633e+01 3.37217437e+01 + 3.41768853e+01 3.46381699e+01 3.51056804e+01 3.55795009e+01 3.60597166e+01 + 3.65464138e+01 3.70396798e+01 3.75396035e+01 3.80462746e+01 3.85597843e+01 + 3.90802248e+01 3.96076897e+01 4.01422737e+01 4.06840730e+01 4.12331850e+01 + 4.17897083e+01 4.23537430e+01 4.29253905e+01 4.35047534e+01 4.40919360e+01 + 4.46870439e+01 4.52901838e+01 4.59014643e+01 4.65209953e+01 4.71488881e+01 + 4.77852555e+01 4.84302120e+01 4.90838734e+01 4.97463572e+01 5.04177826e+01 + 5.10982703e+01 5.17879424e+01 5.24869230e+01 5.31953378e+01 5.39133140e+01 + 5.46409807e+01 5.53784687e+01 5.61259106e+01 5.68834406e+01 5.76511951e+01 + 5.84293119e+01 5.92179309e+01 6.00171939e+01 6.08272446e+01 6.16482284e+01 + 6.24802931e+01 6.33235881e+01 6.41782651e+01 6.50444776e+01 6.59223814e+01 + 6.68121342e+01 6.77138960e+01 6.86278288e+01 6.95540970e+01 7.04928670e+01 + 7.14443075e+01 7.24085896e+01 7.33858866e+01 7.43763742e+01 7.53802303e+01 + 7.63976355e+01 7.74287726e+01 7.84738269e+01 7.95329863e+01 8.06064411e+01 + 8.16943843e+01 8.27970114e+01 8.39145207e+01 8.50471130e+01 8.61949919e+01 + 8.73583636e+01 8.85374374e+01 8.97324251e+01 9.09435415e+01 9.21710043e+01 + 9.34150341e+01 9.46758546e+01 9.59536924e+01 9.72487771e+01 9.85613415e+01 + 9.98916216e+01 1.01239856e+02 1.02606288e+02 1.03991163e+02 1.05394729e+02 + 1.06817239e+02 1.08258949e+02 1.09720118e+02 1.11201007e+02 1.12701885e+02 + 1.14223019e+02 1.15764685e+02 1.17327158e+02 1.18910720e+02 1.20515655e+02 + 1.22142252e+02 1.23790803e+02 1.25461604e+02 1.27154957e+02 1.28871164e+02 + 1.30610535e+02 1.32373382e+02 1.34160023e+02 1.35970777e+02 1.37805972e+02 + 1.39665936e+02 1.41551004e+02 1.43461514e+02 1.45397811e+02 1.47360241e+02 + 1.49349159e+02 1.51364921e+02 1.53407890e+02 1.55478433e+02 1.57576921e+02 + 1.59703733e+02 1.61859251e+02 1.64043861e+02 1.66257957e+02 1.68501937e+02 + 1.70776204e+02 1.73081166e+02 1.75417238e+02 1.77784841e+02 1.80184398e+02 + 1.82616343e+02 1.85081111e+02 1.87579147e+02 1.90110898e+02 1.92676820e+02 + 1.95277375e+02 1.97913029e+02 2.00584256e+02 2.03291537e+02 2.06035358e+02 + 2.08816212e+02 2.11634600e+02 2.14491027e+02 2.17386007e+02 2.20320061e+02 + 2.23293716e+02 2.26307506e+02 2.29361973e+02 2.32457666e+02 2.35595141e+02 + 2.38774963e+02 2.41997703e+02 2.45263940e+02 2.48574262e+02 2.51929263e+02 + 2.55329546e+02 2.58775723e+02 2.62268413e+02 2.65808243e+02 2.69395851e+02 + 2.73031880e+02 2.76716985e+02 2.80451827e+02 2.84237079e+02 2.88073420e+02 + 2.91961540e+02 2.95902138e+02 2.99895922e+02 3.03943610e+02 3.08045930e+02 + 3.12203619e+02 3.16417423e+02 3.20688102e+02 3.25016422e+02 3.29403160e+02 + 3.33849107e+02 3.38355061e+02 3.42921831e+02 3.47550238e+02 3.52241116e+02 + 3.56995306e+02 3.61813663e+02 3.66697053e+02 3.71646355e+02 3.76662457e+02 + 3.81746261e+02 3.86898681e+02 3.92120643e+02 3.97413086e+02 4.02776961e+02 + 4.08213232e+02 4.13722877e+02 4.19306884e+02 4.24966259e+02 4.30702019e+02 + 4.36515194e+02 4.42406829e+02 4.48377983e+02 4.54429730e+02 4.60563157e+02 + 4.66779367e+02 4.73079477e+02 4.79464620e+02 4.85935942e+02 4.92494608e+02 + 4.99141796e+02 5.05878701e+02 5.12706534e+02 5.19626522e+02 5.26639909e+02 + 5.33747955e+02 5.40951938e+02 5.48253154e+02 5.55652913e+02 5.63152548e+02 + 5.70753404e+02 5.78456849e+02 5.86264268e+02 5.94177062e+02 6.02196656e+02 + 6.10324490e+02 6.18562025e+02 6.26910742e+02 6.35372141e+02 6.43947744e+02 + 6.52639091e+02 6.61447746e+02 6.70375290e+02 6.79423329e+02 6.88593490e+02 + 6.97887420e+02 7.07306790e+02 7.16853293e+02 7.26528644e+02 7.36334584e+02 + 7.46272874e+02 7.56345302e+02 7.66553676e+02 7.76899833e+02 7.87385631e+02 + 7.98012956e+02 8.08783718e+02 8.19699853e+02 8.30763322e+02 8.41976115e+02 + 8.53340247e+02 8.64857760e+02 8.76530724e+02 8.88361238e+02 9.00351429e+02 + 9.12503451e+02 9.24819488e+02 9.37301755e+02 9.49952494e+02 9.62773980e+02 + 9.75768518e+02 9.88938442e+02 1.00228612e+03 1.01581395e+03 1.02952437e+03 + 1.04341984e+03 1.05750285e+03 1.07177594e+03 1.08624167e+03 1.10090265e+03 + 1.11576151e+03 1.13082091e+03 1.14608358e+03 1.16155224e+03 1.17722968e+03 + 1.19311872e+03 1.20922222e+03 1.22554306e+03 1.24208419e+03 1.25884857e+03 + 1.27583922e+03 1.29305919e+03 1.31051158e+03 1.32819952e+03 1.34612620e+03 + 1.36429483e+03 1.38270869e+03 1.40137107e+03 1.42028535e+03 1.43945490e+03 + 1.45888319e+03 1.47857370e+03 1.49852998e+03 1.51875560e+03 1.53925421e+03 + 1.56002949e+03 1.58108517e+03 1.60242504e+03 1.62405293e+03 1.64597273e+03 + 1.66818839e+03 1.69070388e+03 1.71352328e+03 1.73665066e+03 1.76009019e+03 + 1.78384609e+03 1.80792261e+03 1.83232410e+03 1.85705494e+03 1.88211956e+03 + 1.90752249e+03 1.93326827e+03 1.95936155e+03 1.98580700e+03 2.01260939e+03 + 2.03977353e+03 2.06730431e+03 2.09520667e+03 2.12348562e+03 2.15214626e+03 + 2.18119372e+03 2.21063324e+03 2.24047011e+03 2.27070968e+03 2.30135739e+03 + 2.33241876e+03 2.36389936e+03 2.39580485e+03 2.42814097e+03 2.46091353e+03 + 2.49412842e+03 2.52779162e+03 2.56190916e+03 2.59648719e+03 2.63153191e+03 + 2.66704964e+03 2.70304674e+03 2.73952970e+03 2.77650507e+03 2.81397949e+03 + 2.85195970e+03 2.89045253e+03 2.92946490e+03 2.96900382e+03 3.00907640e+03 + 3.04968983e+03 3.09085142e+03 3.13256857e+03 3.17484877e+03 3.21769963e+03 + 3.26112884e+03 3.30514422e+03 3.34975367e+03 3.39496522e+03 3.44078698e+03 + 3.48722720e+03 3.53429423e+03 3.58199651e+03 3.63034263e+03 3.67934128e+03 + 3.72900126e+03 3.77933150e+03 3.83034105e+03 3.88203907e+03 3.93443486e+03 + 3.98753784e+03 4.04135754e+03 4.09590365e+03 4.15118596e+03 4.20721442e+03 + 4.26399909e+03 4.32155018e+03 4.37987804e+03 4.43899315e+03 4.49890614e+03 + 4.55962777e+03 4.62116895e+03 4.68354076e+03 4.74675440e+03 4.81082123e+03 + 4.87575277e+03 4.94156069e+03 5.00825682e+03 5.07585314e+03 5.14436181e+03 + 5.21379514e+03 5.28416561e+03 5.35548586e+03 5.42776873e+03 5.50102719e+03 + 5.57527443e+03 5.65052377e+03 5.72678876e+03 5.80408309e+03 5.88242066e+03 + 5.96181555e+03 6.04228203e+03 6.12383457e+03 6.20648782e+03 6.29025664e+03 + 6.37515608e+03 6.46120141e+03 6.54840809e+03 6.63679180e+03 6.72636842e+03 + 6.81715406e+03 6.90916502e+03 7.00241786e+03 7.09692932e+03 7.19271641e+03 + 7.28979633e+03 7.38818654e+03 7.48790472e+03 7.58896879e+03 7.69139692e+03 + 7.79520752e+03 7.90041925e+03 8.00705102e+03 8.11512200e+03 8.22465161e+03 + 8.33565953e+03 8.44816573e+03 8.56219042e+03 8.67775410e+03 8.79487754e+03 + 8.91358179e+03 9.03388820e+03 9.15581837e+03 9.27939423e+03 9.40463799e+03 + 9.53157217e+03 9.66021957e+03 9.79060332e+03 9.92274686e+03 1.00566739e+04 + 1.01924086e+04 1.03299753e+04 1.04693988e+04 1.06107040e+04 1.07539164e+04 + 1.08990618e+04 1.10461661e+04 1.11952560e+04 1.13463581e+04 1.14994996e+04 + 1.16547081e+04 1.18120114e+04 1.19714378e+04 1.21330160e+04 1.22967751e+04 + 1.24627443e+04 1.26309537e+04 1.28014334e+04 1.29742140e+04 1.31493267e+04 + 1.33268028e+04 1.35066744e+04 1.36889736e+04 1.38737334e+04 1.40609868e+04 + 1.42507676e+04 1.44431099e+04 1.46380482e+04 1.48356176e+04 1.50358536e+04 + 1.52387922e+04 1.54444698e+04 1.56529234e+04 1.58641905e+04 1.60783091e+04 + 1.62953177e+04 1.65152552e+04 1.67381612e+04 1.69640758e+04 1.71930395e+04 + 1.74250936e+04 1.76602796e+04 1.78986400e+04 1.81402175e+04 1.83850556e+04 + 1.86331983e+04 1.88846901e+04 1.91395763e+04 1.93979027e+04 1.96597157e+04 + 1.99250625e+04 2.01939905e+04 2.04665484e+04 2.07427849e+04 2.10227497e+04 + 2.13064933e+04 2.15940665e+04 2.18855211e+04 2.21809095e+04 2.24802847e+04 + 2.27837006e+04 2.30912116e+04 2.34028732e+04 2.37187412e+04 2.40388725e+04 + 2.43633245e+04 2.46921558e+04 2.50254252e+04 2.53631928e+04 2.57055192e+04 + 2.60524660e+04 2.64040955e+04 2.67604709e+04 2.71216563e+04 2.74877167e+04 + 2.78587178e+04 2.82347262e+04 2.86158096e+04 2.90020365e+04 2.93934763e+04 + 2.97901994e+04 3.01922770e+04 3.05997814e+04 3.10127860e+04 3.14313648e+04 + 3.18555932e+04 3.22855473e+04 3.27213046e+04 3.31629433e+04 3.36105427e+04 + 3.40641834e+04 3.45239469e+04 3.49899158e+04 3.54621738e+04 3.59408060e+04 + 3.64258982e+04 3.69175376e+04 3.74158128e+04 3.79208131e+04 3.84326294e+04 + 3.89513537e+04 3.94770792e+04 4.00099004e+04 4.05499131e+04 4.10972143e+04 + 4.16519024e+04 4.22140771e+04 4.27838395e+04 4.33612920e+04 4.39465383e+04 + 4.45396837e+04 4.51408347e+04 4.57500995e+04 4.63675875e+04 4.69934097e+04 + 4.76276787e+04 4.82705083e+04 4.89220142e+04 4.95823135e+04 5.02515248e+04 + 5.09297684e+04 5.16171663e+04 5.23138419e+04 5.30199206e+04 5.37355292e+04 + 5.44607964e+04 5.51958524e+04 5.59408296e+04 5.66958616e+04 5.74610843e+04 + 5.82366352e+04 5.90226537e+04 5.98192810e+04 6.06266604e+04 6.14449370e+04 + 6.22742579e+04 6.31147720e+04 6.39666306e+04 6.48299867e+04 6.57049955e+04 + 6.65918142e+04 6.74906024e+04 6.84015214e+04 6.93247351e+04 7.02604094e+04 + 7.12087125e+04 7.21698148e+04 7.31438891e+04 7.41311104e+04 7.51316562e+04 + 7.61457064e+04 7.71734432e+04 7.82150513e+04 7.92707180e+04 8.03406330e+04 + 8.14249886e+04 8.25239797e+04 8.36378039e+04 8.47666613e+04 8.59107549e+04 + 8.70702904e+04 8.82454760e+04 8.94365231e+04 9.06436457e+04 9.18670608e+04 + 9.31069884e+04 9.43636512e+04 9.56372751e+04 9.69280891e+04 9.82363252e+04 + 9.95622186e+04 1.00906007e+05 1.02267933e+05 1.03648241e+05 1.05047179e+05 + 1.06464998e+05 1.07901954e+05 1.09358304e+05 1.10834311e+05 1.12330239e+05 + 1.13846357e+05 1.15382939e+05 1.16940259e+05 1.18518599e+05 1.20118242e+05 + 1.21739475e+05 1.23382590e+05 1.25047882e+05 1.26735650e+05 1.28446198e+05 + 1.30179833e+05 1.31936867e+05 1.33717616e+05 1.35522400e+05 1.37351542e+05 + 1.39205373e+05 1.41084224e+05 1.42988435e+05 1.44918346e+05 1.46874306e+05 + 1.48856665e+05 1.50865780e+05 1.52902011e+05 1.54965726e+05 1.57057295e+05 + 1.59177094e+05 1.61325503e+05 1.63502909e+05 1.65709704e+05 1.67946284e+05 + 1.70213051e+05 1.72510413e+05 1.74838782e+05 1.77198577e+05 1.79590222e+05 + 1.82014146e+05 1.84470787e+05 1.86960585e+05 1.89483987e+05 1.92041448e+05 + 1.94633427e+05 1.97260390e+05 1.99922809e+05 2.02621162e+05 2.05355935e+05 + 2.08127619e+05 2.10936713e+05 2.13783721e+05 2.16669154e+05 2.19593533e+05 + 2.22557381e+05 2.25561233e+05 2.28605628e+05 2.31691112e+05 2.34818242e+05 + 2.37987578e+05 2.41199691e+05 2.44455157e+05 2.47754563e+05 2.51098500e+05 + 2.54487570e+05 2.57922383e+05 2.61403555e+05 2.64931713e+05 2.68507490e+05 + 2.72131529e+05 2.75804482e+05 2.79527008e+05 2.83299778e+05 2.87123468e+05 + 2.90998767e+05 2.94926370e+05 2.98906984e+05 3.02941325e+05 3.07030117e+05 + 3.11174095e+05 3.15374004e+05 3.19630600e+05 3.23944646e+05 3.28316919e+05 + 3.32748205e+05 3.37239300e+05 3.41791010e+05 3.46404155e+05 3.51079564e+05 + 3.55818077e+05 3.60620545e+05 3.65487832e+05 3.70420812e+05 3.75420373e+05 + 3.80487413e+05 3.85622842e+05 3.90827585e+05 3.96102575e+05 4.01448762e+05 + 4.06867107e+05 4.12358582e+05 4.17924176e+05 4.23564889e+05 4.29281734e+05 + 4.35075740e+05 4.40947946e+05 4.46899410e+05 4.52931201e+05 4.59044403e+05 + 4.65240114e+05 4.71519449e+05 4.77883536e+05 4.84333518e+05 4.90870556e+05 + 4.97495824e+05 5.04210514e+05 5.11015831e+05 5.17912999e+05 5.24903259e+05 + 5.31987866e+05 5.39168093e+05 5.46445232e+05 5.53820590e+05 5.61295494e+05 + 5.68871286e+05 5.76549328e+05 5.84331000e+05 5.92217702e+05 6.00210850e+05 + 6.08311882e+05 6.16522253e+05 6.24843439e+05 6.33276936e+05 6.41824259e+05 + 6.50486946e+05 6.59266553e+05 6.68164658e+05 6.77182860e+05 6.86322781e+05 + 6.95586064e+05 7.04974372e+05 7.14489394e+05 7.24132841e+05 7.33906444e+05 + 7.43811962e+05 7.53851175e+05 7.64025886e+05 7.74337925e+05 7.84789146e+05 + 7.95381426e+05 8.06116670e+05 8.16996808e+05 8.28023794e+05 8.39199611e+05 + 8.50526269e+05 8.62005801e+05 8.73640273e+05 8.85431775e+05 8.97382427e+05 + 9.09494376e+05 9.21769800e+05 9.34210905e+05 9.46819927e+05 9.59599133e+05 + 9.72550820e+05 9.85677315e+05 9.98980978e+05 1.01246420e+06 1.02612941e+06 + 1.03997905e+06 1.05401562e+06 1.06824165e+06 1.08265968e+06 1.09727231e+06 + 1.11208217e+06 1.12709191e+06 1.14230425e+06 1.15772190e+06 1.17334765e+06 + 1.18918429e+06 1.20523468e+06 1.22150171e+06 1.23798829e+06 1.25469738e+06 + 1.27163201e+06 1.28879519e+06 1.30619003e+06 1.32381965e+06 1.34168721e+06 + 1.35979593e+06 1.37814906e+06 1.39674991e+06 1.41560181e+06 1.43470815e+06 + 1.45407237e+06 1.47369795e+06 1.49358842e+06 1.51374735e+06 1.53417836e+06 + 1.55488513e+06 1.57587137e+06 1.59714087e+06 1.61869744e+06 1.64054497e+06 + 1.66268736e+06 1.68512861e+06 1.70787275e+06 1.73092387e+06 1.75428611e+06 + 1.77796367e+06 1.80196080e+06 1.82628182e+06 1.85093111e+06 1.87591308e+06 + 1.90123223e+06 1.92689312e+06 1.95290035e+06 1.97925860e+06 2.00597261e+06 + 2.03304717e+06 2.06048716e+06 2.08829750e+06 2.11648321e+06 2.14504933e+06 + 2.17400101e+06 2.20334345e+06 2.23308192e+06 2.26322178e+06 2.29376843e+06 + 2.32472736e+06 2.35610415e+06 2.38790444e+06 2.42013393e+06 2.45279842e+06 + 2.48590378e+06 2.51945596e+06 2.55346100e+06 2.58792500e+06 2.62285416e+06 + 2.65825476e+06 2.69413316e+06 2.73049582e+06 2.76734925e+06 2.80470010e+06 + 2.84255507e+06 2.88092097e+06 2.91980469e+06 2.95921322e+06 2.99915365e+06 + 1.51514411e-06 1.53559398e-06 1.55631985e-06 1.57732546e-06 1.59861459e-06 + 1.62019105e-06 1.64205873e-06 1.66422156e-06 1.68668352e-06 1.70944864e-06 + 1.73252103e-06 1.75590483e-06 1.77960423e-06 1.80362351e-06 1.82796697e-06 + 1.85263900e-06 1.87764402e-06 1.90298654e-06 1.92867110e-06 1.95470233e-06 + 1.98108490e-06 2.00782356e-06 2.03492310e-06 2.06238841e-06 2.09022442e-06 + 2.11843613e-06 2.14702861e-06 2.17600701e-06 2.20537652e-06 2.23514243e-06 + 2.26531010e-06 2.29588494e-06 2.32687244e-06 2.35827818e-06 2.39010781e-06 + 2.42236703e-06 2.45506166e-06 2.48819757e-06 2.52178072e-06 2.55581713e-06 + 2.59031293e-06 2.62527433e-06 2.66070759e-06 2.69661910e-06 2.73301530e-06 + 2.76990274e-06 2.80728805e-06 2.84517795e-06 2.88357925e-06 2.92249885e-06 + 2.96194375e-06 3.00192104e-06 3.04243789e-06 3.08350160e-06 3.12511955e-06 + 3.16729922e-06 3.21004818e-06 3.25337412e-06 3.29728483e-06 3.34178821e-06 + 3.38689225e-06 3.43260505e-06 3.47893484e-06 3.52588994e-06 3.57347879e-06 + 3.62170995e-06 3.67059208e-06 3.72013398e-06 3.77034453e-06 3.82123279e-06 + 3.87280787e-06 3.92507907e-06 3.97805577e-06 4.03174749e-06 4.08616389e-06 + 4.14131475e-06 4.19720997e-06 4.25385962e-06 4.31127386e-06 4.36946302e-06 + 4.42843756e-06 4.48820807e-06 4.54878531e-06 4.61018016e-06 4.67240365e-06 + 4.73546697e-06 4.79938146e-06 4.86415859e-06 4.92981003e-06 4.99634755e-06 + 5.06378314e-06 5.13212890e-06 5.20139712e-06 5.27160025e-06 5.34275092e-06 + 5.41486190e-06 5.48794616e-06 5.56201684e-06 5.63708725e-06 5.71317088e-06 + 5.79028141e-06 5.86843270e-06 5.94763880e-06 6.02791394e-06 6.10927255e-06 + 6.19172925e-06 6.27529887e-06 6.35999643e-06 6.44583715e-06 6.53283646e-06 + 6.62101000e-06 6.71037362e-06 6.80094337e-06 6.89273554e-06 6.98576663e-06 + 7.08005335e-06 7.17561266e-06 7.27246174e-06 7.37061798e-06 7.47009904e-06 + 7.57092278e-06 7.67310735e-06 7.77667110e-06 7.88163264e-06 7.98801085e-06 + 8.09582484e-06 8.20509399e-06 8.31583795e-06 8.42807662e-06 8.54183017e-06 + 8.65711905e-06 8.77396398e-06 8.89238596e-06 9.01240628e-06 9.13404651e-06 + 9.25732852e-06 9.38227446e-06 9.50890680e-06 9.63724829e-06 9.76732200e-06 + 9.89915131e-06 1.00327599e-05 1.01681718e-05 1.03054114e-05 1.04445033e-05 + 1.05854725e-05 1.07283444e-05 1.08731446e-05 1.10198992e-05 1.11686345e-05 + 1.13193773e-05 1.14721546e-05 1.16269940e-05 1.17839233e-05 1.19429706e-05 + 1.21041646e-05 1.22675342e-05 1.24331089e-05 1.26009182e-05 1.27709925e-05 + 1.29433623e-05 1.31180586e-05 1.32951127e-05 1.34745565e-05 1.36564223e-05 + 1.38407427e-05 1.40275509e-05 1.42168804e-05 1.44087653e-05 1.46032400e-05 + 1.48003396e-05 1.50000995e-05 1.52025554e-05 1.54077440e-05 1.56157019e-05 + 1.58264667e-05 1.60400761e-05 1.62565686e-05 1.64759832e-05 1.66983591e-05 + 1.69237365e-05 1.71521557e-05 1.73836580e-05 1.76182848e-05 1.78560784e-05 + 1.80970814e-05 1.83413373e-05 1.85888899e-05 1.88397837e-05 1.90940638e-05 + 1.93517759e-05 1.96129664e-05 1.98776821e-05 2.01459707e-05 2.04178804e-05 + 2.06934601e-05 2.09727592e-05 2.12558280e-05 2.15427174e-05 2.18334790e-05 + 2.21281649e-05 2.24268282e-05 2.27295226e-05 2.30363024e-05 2.33472229e-05 + 2.36623398e-05 2.39817098e-05 2.43053904e-05 2.46334396e-05 2.49659166e-05 + 2.53028810e-05 2.56443934e-05 2.59905151e-05 2.63413085e-05 2.66968365e-05 + 2.70571631e-05 2.74223530e-05 2.77924718e-05 2.81675861e-05 2.85477634e-05 + 2.89330718e-05 2.93235808e-05 2.97193605e-05 3.01204820e-05 3.05270174e-05 + 3.09390399e-05 3.13566233e-05 3.17798429e-05 3.22087747e-05 3.26434958e-05 + 3.30840843e-05 3.35306194e-05 3.39831813e-05 3.44418515e-05 3.49067124e-05 + 3.53778474e-05 3.58553414e-05 3.63392801e-05 3.68297505e-05 3.73268407e-05 + 3.78306402e-05 3.83412395e-05 3.88587303e-05 3.93832056e-05 3.99147598e-05 + 4.04534884e-05 4.09994881e-05 4.15528573e-05 4.21136952e-05 4.26821027e-05 + 4.32581821e-05 4.38420367e-05 4.44337716e-05 4.50334932e-05 4.56413092e-05 + 4.62573288e-05 4.68816629e-05 4.75144236e-05 4.81557246e-05 4.88056813e-05 + 4.94644104e-05 5.01320304e-05 5.08086612e-05 5.14944245e-05 5.21894435e-05 + 5.28938432e-05 5.36077501e-05 5.43312927e-05 5.50646008e-05 5.58078064e-05 + 5.65610431e-05 5.73244461e-05 5.80981528e-05 5.88823022e-05 5.96770352e-05 + 6.04824947e-05 6.12988255e-05 6.21261743e-05 6.29646898e-05 6.38145227e-05 + 6.46758258e-05 6.55487539e-05 6.64334638e-05 6.73301147e-05 6.82388677e-05 + 6.91598861e-05 7.00933354e-05 7.10393835e-05 7.19982003e-05 7.29699583e-05 + 7.39548321e-05 7.49529987e-05 7.59646376e-05 7.69899305e-05 7.80290617e-05 + 7.90822181e-05 8.01495889e-05 8.12313660e-05 8.23277438e-05 8.34389194e-05 + 8.45650925e-05 8.57064656e-05 8.68632437e-05 8.80356348e-05 8.92238497e-05 + 9.04281018e-05 9.16486078e-05 9.28855869e-05 9.41392614e-05 9.54098568e-05 + 9.66976013e-05 9.80027266e-05 9.93254670e-05 1.00666060e-04 1.02024748e-04 + 1.03401773e-04 1.04797385e-04 1.06211833e-04 1.07645371e-04 1.09098258e-04 + 1.10570755e-04 1.12063126e-04 1.13575639e-04 1.15108567e-04 1.16662184e-04 + 1.18236771e-04 1.19832610e-04 1.21449988e-04 1.23089195e-04 1.24750527e-04 + 1.26434282e-04 1.28140763e-04 1.29870275e-04 1.31623131e-04 1.33399646e-04 + 1.35200138e-04 1.37024931e-04 1.38874353e-04 1.40748737e-04 1.42648419e-04 + 1.44573741e-04 1.46525050e-04 1.48502695e-04 1.50507032e-04 1.52538422e-04 + 1.54597229e-04 1.56683824e-04 1.58798582e-04 1.60941883e-04 1.63114112e-04 + 1.65315659e-04 1.67546920e-04 1.69808297e-04 1.72100196e-04 1.74423028e-04 + 1.76777212e-04 1.79163169e-04 1.81581330e-04 1.84032129e-04 1.86516007e-04 + 1.89033409e-04 1.91584788e-04 1.94170603e-04 1.96791319e-04 1.99447407e-04 + 2.02139344e-04 2.04867614e-04 2.07632707e-04 2.10435121e-04 2.13275359e-04 + 2.16153931e-04 2.19071356e-04 2.22028156e-04 2.25024865e-04 2.28062020e-04 + 2.31140168e-04 2.34259861e-04 2.37421661e-04 2.40626136e-04 2.43873861e-04 + 2.47165421e-04 2.50501406e-04 2.53882418e-04 2.57309063e-04 2.60781957e-04 + 2.64301725e-04 2.67868999e-04 2.71484421e-04 2.75148639e-04 2.78862314e-04 + 2.82626112e-04 2.86440710e-04 2.90306793e-04 2.94225057e-04 2.98196206e-04 + 3.02220953e-04 3.06300022e-04 3.10434146e-04 3.14624068e-04 3.18870542e-04 + 3.23174330e-04 3.27536206e-04 3.31956954e-04 3.36437370e-04 3.40978257e-04 + 3.45580432e-04 3.50244723e-04 3.54971968e-04 3.59763016e-04 3.64618729e-04 + 3.69539979e-04 3.74527651e-04 3.79582642e-04 3.84705860e-04 3.89898226e-04 + 3.95160673e-04 4.00494147e-04 4.05899607e-04 4.11378024e-04 4.16930384e-04 + 4.22557683e-04 4.28260934e-04 4.34041162e-04 4.39899405e-04 4.45836717e-04 + 4.51854164e-04 4.57952829e-04 4.64133808e-04 4.70398211e-04 4.76747164e-04 + 4.83181809e-04 4.89703302e-04 4.96312816e-04 5.03011539e-04 5.09800673e-04 + 5.16681441e-04 5.23655078e-04 5.30722838e-04 5.37885992e-04 5.45145826e-04 + 5.52503646e-04 5.59960775e-04 5.67518552e-04 5.75178336e-04 5.82941505e-04 + 5.90809452e-04 5.98783593e-04 6.06865361e-04 6.15056208e-04 6.23357607e-04 + 6.31771050e-04 6.40298049e-04 6.48940137e-04 6.57698866e-04 6.66575812e-04 + 6.75572570e-04 6.84690757e-04 6.93932012e-04 7.03297995e-04 7.12790392e-04 + 7.22410907e-04 7.32161269e-04 7.42043233e-04 7.52058572e-04 7.62209089e-04 + 7.72496607e-04 7.82922975e-04 7.93490068e-04 8.04199785e-04 8.15054050e-04 + 8.26054815e-04 8.37204057e-04 8.48503780e-04 8.59956016e-04 8.71562821e-04 + 8.83326284e-04 8.95248518e-04 9.07331666e-04 9.19577900e-04 9.31989421e-04 + 9.44568460e-04 9.57317278e-04 9.70238166e-04 9.83333448e-04 9.96605476e-04 + 1.01005664e-03 1.02368935e-03 1.03750606e-03 1.05150925e-03 1.06570145e-03 + 1.08008519e-03 1.09466308e-03 1.10943772e-03 1.12441177e-03 1.13958793e-03 + 1.15496892e-03 1.17055751e-03 1.18635650e-03 1.20236872e-03 1.21859707e-03 + 1.23504444e-03 1.25171381e-03 1.26860816e-03 1.28573053e-03 1.30308401e-03 + 1.32067170e-03 1.33849678e-03 1.35656243e-03 1.37487193e-03 1.39342854e-03 + 1.41223561e-03 1.43129652e-03 1.45061470e-03 1.47019361e-03 1.49003678e-03 + 1.51014777e-03 1.53053020e-03 1.55118773e-03 1.57212407e-03 1.59334299e-03 + 1.61484830e-03 1.63664387e-03 1.65873361e-03 1.68112150e-03 1.70381156e-03 + 1.72680786e-03 1.75011455e-03 1.77373580e-03 1.79767587e-03 1.82193906e-03 + 1.84652973e-03 1.87145230e-03 1.89671124e-03 1.92231111e-03 1.94825650e-03 + 1.97455207e-03 2.00120255e-03 2.02821273e-03 2.05558747e-03 2.08333169e-03 + 2.11145037e-03 2.13994856e-03 2.16883140e-03 2.19810406e-03 2.22777182e-03 + 2.25784000e-03 2.28831402e-03 2.31919934e-03 2.35050151e-03 2.38222618e-03 + 2.41437903e-03 2.44696584e-03 2.47999248e-03 2.51346488e-03 2.54738906e-03 + 2.58177111e-03 2.61661721e-03 2.65193363e-03 2.68772672e-03 2.72400290e-03 + 2.76076870e-03 2.79803073e-03 2.83579568e-03 2.87407035e-03 2.91286161e-03 + 2.95217643e-03 2.99202189e-03 3.03240514e-03 3.07333344e-03 3.11481415e-03 + 3.15685472e-03 3.19946271e-03 3.24264578e-03 3.28641170e-03 3.33076832e-03 + 3.37572362e-03 3.42128568e-03 3.46746269e-03 3.51426295e-03 3.56169487e-03 + 3.60976698e-03 3.65848792e-03 3.70786645e-03 3.75791143e-03 3.80863187e-03 + 3.86003689e-03 3.91213571e-03 3.96493772e-03 4.01845239e-03 4.07268934e-03 + 4.12765833e-03 4.18336924e-03 4.23983207e-03 4.29705699e-03 4.35505426e-03 + 4.41383433e-03 4.47340774e-03 4.53378522e-03 4.59497761e-03 4.65699591e-03 + 4.71985128e-03 4.78355500e-03 4.84811852e-03 4.91355347e-03 4.97987158e-03 + 5.04708479e-03 5.11520517e-03 5.18424497e-03 5.25421660e-03 5.32513264e-03 + 5.39700583e-03 5.46984909e-03 5.54367551e-03 5.61849837e-03 5.69433110e-03 + 5.77118736e-03 5.84908093e-03 5.92802584e-03 6.00803626e-03 6.08912659e-03 + 6.17131138e-03 6.25460542e-03 6.33902369e-03 6.42458134e-03 6.51129376e-03 + 6.59917653e-03 6.68824546e-03 6.77851655e-03 6.87000603e-03 6.96273034e-03 + 7.05670614e-03 7.15195034e-03 7.24848004e-03 7.34631260e-03 7.44546561e-03 + 7.54595688e-03 7.64780448e-03 7.75102672e-03 7.85564214e-03 7.96166955e-03 + 8.06912802e-03 8.17803685e-03 8.28841561e-03 8.40028416e-03 8.51366260e-03 + 8.62857130e-03 8.74503092e-03 8.86306239e-03 8.98268694e-03 9.10392605e-03 + 9.22680152e-03 9.35133544e-03 9.47755019e-03 9.60546846e-03 9.73511324e-03 + 9.86650783e-03 9.99967585e-03 1.01346412e-02 1.02714283e-02 1.04100615e-02 + 1.05505658e-02 1.06929666e-02 1.08372893e-02 1.09835599e-02 1.11318048e-02 + 1.12820505e-02 1.14343240e-02 1.15886528e-02 1.17450646e-02 1.19035875e-02 + 1.20642499e-02 1.22270808e-02 1.23921094e-02 1.25593654e-02 1.27288789e-02 + 1.29006802e-02 1.30748004e-02 1.32512707e-02 1.34301228e-02 1.36113888e-02 + 1.37951014e-02 1.39812936e-02 1.41699987e-02 1.43612509e-02 1.45550843e-02 + 1.47515340e-02 1.49506351e-02 1.51524234e-02 1.53569353e-02 1.55642075e-02 + 1.57742773e-02 1.59871823e-02 1.62029609e-02 1.64216519e-02 1.66432945e-02 + 1.68679287e-02 1.70955947e-02 1.73263336e-02 1.75601867e-02 1.77971961e-02 + 1.80374044e-02 1.82808548e-02 1.85275911e-02 1.87776576e-02 1.90310992e-02 + 1.92879614e-02 1.95482906e-02 1.98121334e-02 2.00795373e-02 2.03505503e-02 + 2.06252212e-02 2.09035994e-02 2.11857347e-02 2.14716781e-02 2.17614808e-02 + 2.20551950e-02 2.23528734e-02 2.26545697e-02 2.29603378e-02 2.32702330e-02 + 2.35843107e-02 2.39026276e-02 2.42252408e-02 2.45522083e-02 2.48835889e-02 + 2.52194421e-02 2.55598283e-02 2.59048087e-02 2.62544453e-02 2.66088009e-02 + 2.69679393e-02 2.73319249e-02 2.77008232e-02 2.80747006e-02 2.84536242e-02 + 2.88376620e-02 2.92268833e-02 2.96213578e-02 3.00211566e-02 3.04263514e-02 + 3.08370152e-02 3.12532216e-02 3.16750456e-02 3.21025629e-02 3.25358505e-02 + 3.29749861e-02 3.34200487e-02 3.38711183e-02 3.43282759e-02 3.47916039e-02 + 3.52611853e-02 3.57371047e-02 3.62194475e-02 3.67083006e-02 3.72037516e-02 + 3.77058898e-02 3.82148053e-02 3.87305896e-02 3.92533354e-02 3.97831368e-02 + 4.03200888e-02 4.08642881e-02 4.14158324e-02 4.19748209e-02 4.25413541e-02 + 4.31155337e-02 4.36974630e-02 4.42872467e-02 4.48849906e-02 4.54908022e-02 + 4.61047905e-02 4.67270657e-02 4.73577398e-02 4.79969261e-02 4.86447395e-02 + 4.93012964e-02 4.99667148e-02 5.06411144e-02 5.13246163e-02 5.20173434e-02 + 5.27194202e-02 5.34309730e-02 5.41521296e-02 5.48830196e-02 5.56237744e-02 + 5.63745271e-02 5.71354128e-02 5.79065681e-02 5.86881317e-02 5.94802440e-02 + 6.02830474e-02 6.10966863e-02 6.19213068e-02 6.27570572e-02 6.36040877e-02 + 6.44625506e-02 6.53326001e-02 6.62143926e-02 6.71080867e-02 6.80138429e-02 + 6.89318241e-02 6.98621953e-02 7.08051237e-02 7.17607788e-02 7.27293323e-02 + 7.37109584e-02 7.47058334e-02 7.57141363e-02 7.67360482e-02 7.77717528e-02 + 7.88214363e-02 7.98852873e-02 8.09634971e-02 8.20562595e-02 8.31637709e-02 + 8.42862303e-02 8.54238396e-02 8.65768031e-02 8.77453282e-02 8.89296248e-02 + 9.01299058e-02 9.13463870e-02 9.25792870e-02 9.38288274e-02 9.50952329e-02 + 9.63787310e-02 9.76795524e-02 9.89979310e-02 1.00334104e-01 1.01688311e-01 + 1.03060795e-01 1.04451805e-01 1.05861588e-01 1.07290399e-01 1.08738495e-01 + 1.10206136e-01 1.11693586e-01 1.13201111e-01 1.14728984e-01 1.16277479e-01 + 1.17846873e-01 1.19437449e-01 1.21049494e-01 1.22683296e-01 1.24339149e-01 + 1.26017352e-01 1.27718205e-01 1.29442015e-01 1.31189090e-01 1.32959747e-01 + 1.34754301e-01 1.36573077e-01 1.38416400e-01 1.40284603e-01 1.42178021e-01 + 1.44096994e-01 1.46041868e-01 1.48012992e-01 1.50010719e-01 1.52035411e-01 + 1.54087429e-01 1.56167143e-01 1.58274927e-01 1.60411160e-01 1.62576226e-01 + 1.64770513e-01 1.66994417e-01 1.69248337e-01 1.71532678e-01 1.73847850e-01 + 1.76194270e-01 1.78572360e-01 1.80982547e-01 1.83425264e-01 1.85900951e-01 + 1.88410051e-01 1.90953017e-01 1.93530306e-01 1.96142380e-01 1.98789709e-01 + 2.01472769e-01 2.04192042e-01 2.06948017e-01 2.09741189e-01 2.12572061e-01 + 2.15441141e-01 2.18348945e-01 2.21295996e-01 2.24282822e-01 2.27309962e-01 + 2.30377959e-01 2.33487365e-01 2.36638739e-01 2.39832646e-01 2.43069662e-01 + 2.46350367e-01 2.49675352e-01 2.53045214e-01 2.56460560e-01 2.59922002e-01 + 2.63430163e-01 2.66985673e-01 2.70589173e-01 2.74241308e-01 2.77942737e-01 + 2.81694123e-01 2.85496142e-01 2.89349477e-01 2.93254820e-01 2.97212873e-01 + 3.01224348e-01 3.05289966e-01 3.09410457e-01 3.13586563e-01 3.17819033e-01 + 3.22108629e-01 3.26456121e-01 3.30862292e-01 3.35327932e-01 3.39853846e-01 + 3.44440845e-01 3.49089755e-01 3.53801411e-01 3.58576660e-01 3.63416361e-01 + 3.68321383e-01 3.73292608e-01 3.78330929e-01 3.83437252e-01 3.88612496e-01 + 3.93857590e-01 3.99173476e-01 4.04561111e-01 4.10021463e-01 4.15555512e-01 + 4.21164255e-01 4.26848699e-01 4.32609866e-01 4.38448791e-01 4.44366524e-01 + 4.50364128e-01 4.56442682e-01 4.62603278e-01 4.68847024e-01 4.75175041e-01 + 4.81588467e-01 4.88088455e-01 4.94676173e-01 5.01352806e-01 5.08119553e-01 + 5.14977630e-01 5.21928271e-01 5.28972724e-01 5.36112257e-01 5.43348151e-01 + 5.50681708e-01 5.58114246e-01 5.65647101e-01 5.73281626e-01 5.81019194e-01 + 5.88861197e-01 5.96809042e-01 6.04864160e-01 6.13027997e-01 6.21302021e-01 + 6.29687720e-01 6.38186600e-01 6.46800189e-01 6.55530036e-01 6.64377709e-01 + 6.73344799e-01 6.82432918e-01 6.91643699e-01 7.00978797e-01 7.10439891e-01 + 7.20028682e-01 7.29746892e-01 7.39596268e-01 7.49578581e-01 7.59695625e-01 + 7.69949219e-01 7.80341205e-01 7.90873452e-01 8.01547852e-01 8.12366325e-01 + 8.23330813e-01 8.34443290e-01 8.45705751e-01 8.57120221e-01 8.68688753e-01 + 8.80413424e-01 8.92296343e-01 9.04339645e-01 9.16545496e-01 9.28916089e-01 + 9.41453647e-01 9.54160425e-01 9.67038705e-01 9.80090803e-01 9.93319066e-01 + 1.00672587e+00 1.02031362e+00 1.03408477e+00 1.04804179e+00 1.06218719e+00 + 1.07652350e+00 1.09105331e+00 1.10577923e+00 1.12070391e+00 1.13583002e+00 + 1.15116029e+00 1.16669748e+00 1.18244437e+00 1.19840379e+00 1.21457862e+00 + 1.23097175e+00 1.24758615e+00 1.26442479e+00 1.28149070e+00 1.29878695e+00 + 1.31631665e+00 1.33408294e+00 1.35208903e+00 1.37033814e+00 1.38883356e+00 + 1.40757862e+00 1.42657667e+00 1.44583114e+00 1.46534549e+00 1.48512323e+00 + 1.50516790e+00 1.52548311e+00 1.54607252e+00 1.56693983e+00 1.58808878e+00 + 1.60952317e+00 1.63124687e+00 1.65326377e+00 1.67557783e+00 1.69819306e+00 + 1.72111354e+00 1.74434336e+00 1.76788672e+00 1.79174785e+00 1.81593103e+00 + 1.84044061e+00 1.86528099e+00 1.89045664e+00 1.91597209e+00 1.94183192e+00 + 1.96804078e+00 1.99460338e+00 2.02152449e+00 2.04880896e+00 2.07646169e+00 + 2.10448764e+00 2.13289186e+00 2.16167945e+00 2.19085559e+00 2.22042551e+00 + 2.25039454e+00 2.28076806e+00 2.31155154e+00 2.34275049e+00 2.37437054e+00 + 2.40641736e+00 2.43889672e+00 2.47181445e+00 2.50517647e+00 2.53898878e+00 + 2.57325745e+00 2.60798864e+00 2.64318860e+00 2.67886366e+00 2.71502022e+00 + 2.75166478e+00 2.78880393e+00 2.82644435e+00 2.86459281e+00 2.90325615e+00 + 2.94244133e+00 2.98215539e+00 3.02240547e+00 3.06319880e+00 3.10454272e+00 + 3.14644466e+00 3.18891215e+00 3.23195282e+00 3.27557441e+00 3.31978476e+00 + 3.36459182e+00 3.41000363e+00 3.45602837e+00 3.50267430e+00 3.54994981e+00 + 3.59786340e+00 3.64642368e+00 3.69563937e+00 3.74551933e+00 3.79607251e+00 + 3.84730801e+00 3.89923504e+00 3.95186292e+00 4.00520112e+00 4.05925923e+00 + 4.11404695e+00 4.16957414e+00 4.22585079e+00 4.28288699e+00 4.34069302e+00 + 4.39927925e+00 4.45865622e+00 4.51883459e+00 4.57982520e+00 4.64163899e+00 + 4.70428708e+00 4.76778073e+00 4.83213135e+00 4.89735051e+00 4.96344994e+00 + 5.03044150e+00 5.09833725e+00 5.16714939e+00 5.23689028e+00 5.30757246e+00 + 5.37920864e+00 5.45181169e+00 5.52539466e+00 5.59997078e+00 5.67555346e+00 + 5.75215627e+00 5.82979298e+00 5.90847756e+00 5.98822414e+00 6.06904706e+00 + 6.15096084e+00 6.23398021e+00 6.31812010e+00 6.40339561e+00 6.48982209e+00 + 6.57741507e+00 6.66619028e+00 6.75616369e+00 6.84735147e+00 6.93977001e+00 + 7.03343592e+00 7.12836604e+00 7.22457742e+00 7.32208737e+00 7.42091341e+00 + 7.52107330e+00 7.62258505e+00 7.72546690e+00 7.82973734e+00 7.93541512e+00 + 8.04251923e+00 8.15106892e+00 8.26108370e+00 8.37258335e+00 8.48558791e+00 + 8.60011769e+00 8.71619327e+00 8.83383553e+00 8.95306559e+00 9.07390491e+00 + 9.19637518e+00 9.32049844e+00 9.44629699e+00 9.57379343e+00 9.70301069e+00 + 9.83397200e+00 9.96670088e+00 1.01012212e+01 1.02375571e+01 1.03757332e+01 + 1.05157742e+01 1.06577054e+01 1.08015522e+01 1.09473405e+01 1.10950965e+01 + 1.12448467e+01 1.13966182e+01 1.15504380e+01 1.17063340e+01 1.18643341e+01 + 1.20244668e+01 1.21867607e+01 1.23512451e+01 1.25179496e+01 1.26869041e+01 + 1.28581389e+01 1.30316849e+01 1.32075732e+01 1.33858355e+01 1.35665038e+01 + 1.37496106e+01 1.39351888e+01 1.41232717e+01 1.43138932e+01 1.45070874e+01 + 1.47028892e+01 1.49013338e+01 1.51024567e+01 1.53062942e+01 1.55128829e+01 + 1.57222599e+01 1.59344629e+01 1.61495300e+01 1.63674998e+01 1.65884115e+01 + 1.68123049e+01 1.70392202e+01 1.72691982e+01 1.75022801e+01 1.77385080e+01 + 1.79779242e+01 1.82205718e+01 1.84664944e+01 1.87157363e+01 1.89683421e+01 + 1.92243574e+01 1.94838281e+01 1.97468008e+01 2.00133229e+01 2.02834423e+01 + 2.05572074e+01 2.08346676e+01 2.11158726e+01 2.14008730e+01 2.16897201e+01 + 2.19824657e+01 2.22791625e+01 2.25798639e+01 2.28846237e+01 2.31934970e+01 + 2.35065390e+01 2.38238062e+01 2.41453556e+01 2.44712449e+01 2.48015327e+01 + 2.51362784e+01 2.54755421e+01 2.58193849e+01 2.61678685e+01 2.65210556e+01 + 2.68790097e+01 2.72417950e+01 2.76094769e+01 2.79821213e+01 2.83597954e+01 + 2.87425669e+01 2.91305046e+01 2.95236783e+01 2.99221587e+01 3.03260174e+01 + 3.07353269e+01 3.11501609e+01 3.15705939e+01 3.19967014e+01 3.24285601e+01 + 3.28662476e+01 3.33098426e+01 3.37594247e+01 3.42150749e+01 3.46768749e+01 + 3.51449079e+01 3.56192579e+01 3.61000102e+01 3.65872511e+01 3.70810684e+01 + 3.75815507e+01 3.80887880e+01 3.86028714e+01 3.91238935e+01 3.96519477e+01 + 4.01871291e+01 4.07295339e+01 4.12792594e+01 4.18364046e+01 4.24010695e+01 + 4.29733558e+01 4.35533661e+01 4.41412049e+01 4.47369777e+01 4.53407916e+01 + 4.59527552e+01 4.65729784e+01 4.72015728e+01 4.78386513e+01 4.84843284e+01 + 4.91387202e+01 4.98019444e+01 5.04741200e+01 5.11553680e+01 5.18458108e+01 + 5.25455725e+01 5.32547788e+01 5.39735573e+01 5.47020371e+01 5.54403492e+01 + 5.61886263e+01 5.69470028e+01 5.77156152e+01 5.84946015e+01 5.92841017e+01 + 6.00842578e+01 6.08952136e+01 6.17171149e+01 6.25501093e+01 6.33943466e+01 + 6.42499786e+01 6.51171590e+01 6.59960438e+01 6.68867908e+01 6.77895602e+01 + 6.87045143e+01 6.96318175e+01 7.05716365e+01 7.15241402e+01 7.24894998e+01 + 7.34678888e+01 7.44594832e+01 7.54644611e+01 7.64830031e+01 7.75152924e+01 + 7.85615144e+01 7.96218573e+01 8.06965116e+01 8.17856705e+01 8.28895297e+01 + 8.40082878e+01 8.51421456e+01 8.62913071e+01 8.74559788e+01 8.86363701e+01 + 8.98326931e+01 9.10451628e+01 9.22739972e+01 9.35194171e+01 9.47816465e+01 + 9.60609121e+01 9.73574439e+01 9.86714750e+01 1.00003242e+02 1.01352983e+02 + 1.02720942e+02 1.04107364e+02 1.05512498e+02 1.06936598e+02 1.08379919e+02 + 1.09842720e+02 1.11325265e+02 1.12827819e+02 1.14350653e+02 1.15894041e+02 + 1.17458261e+02 1.19043592e+02 1.20650320e+02 1.22278735e+02 1.23929128e+02 + 1.25601797e+02 1.27297041e+02 1.29015166e+02 1.30756481e+02 1.32521298e+02 + 1.34309935e+02 1.36122713e+02 1.37959958e+02 1.39822000e+02 1.41709174e+02 + 1.43621820e+02 1.45560280e+02 1.47524903e+02 1.49516044e+02 1.51534058e+02 + 1.53579310e+02 1.55652166e+02 1.57752999e+02 1.59882188e+02 1.62040114e+02 + 1.64227166e+02 1.66443736e+02 1.68690223e+02 1.70967031e+02 1.73274569e+02 + 1.75613251e+02 1.77983499e+02 1.80385738e+02 1.82820400e+02 1.85287923e+02 + 1.87788750e+02 1.90323330e+02 1.92892119e+02 1.95495580e+02 1.98134179e+02 + 2.00808391e+02 2.03518697e+02 2.06265584e+02 2.09049546e+02 2.11871083e+02 + 2.14730702e+02 2.17628917e+02 2.20566249e+02 2.23543226e+02 2.26560384e+02 + 2.29618264e+02 2.32717416e+02 2.35858398e+02 2.39041773e+02 2.42268114e+02 + 2.45538001e+02 2.48852022e+02 2.52210771e+02 2.55614854e+02 2.59064882e+02 + 2.62561474e+02 2.66105260e+02 2.69696877e+02 2.73336969e+02 2.77026192e+02 + 2.80765207e+02 2.84554689e+02 2.88395317e+02 2.92287781e+02 2.96232783e+02 + 3.00231029e+02 3.04283240e+02 3.08390144e+02 3.12552478e+02 3.16770992e+02 + 3.21046442e+02 3.25379599e+02 3.29771239e+02 3.34222154e+02 3.38733142e+02 + 3.43305015e+02 3.47938595e+02 3.52634714e+02 3.57394216e+02 3.62217957e+02 + 3.67106805e+02 3.72061636e+02 3.77083343e+02 3.82172828e+02 3.87331006e+02 + 3.92558803e+02 3.97857160e+02 4.03227029e+02 4.08669374e+02 4.14185175e+02 + 4.19775422e+02 4.25441121e+02 4.31183290e+02 4.37002961e+02 4.42901179e+02 + 4.48879006e+02 4.54937515e+02 4.61077796e+02 4.67300952e+02 4.73608102e+02 + 4.80000379e+02 4.86478933e+02 4.93044927e+02 4.99699543e+02 5.06443976e+02 + 5.13279438e+02 5.20207158e+02 5.27228382e+02 5.34344371e+02 5.41556404e+02 + 5.48865778e+02 5.56273806e+02 5.63781821e+02 5.71391170e+02 5.79103223e+02 + 5.86919366e+02 5.94841002e+02 6.02869557e+02 6.11006473e+02 6.19253213e+02 + 6.27611259e+02 6.36082113e+02 6.44667298e+02 6.53368357e+02 6.62186855e+02 + 6.71124375e+02 6.80182525e+02 6.89362932e+02 6.98667247e+02 7.08097142e+02 + 7.17654312e+02 7.27340476e+02 7.37157373e+02 7.47106768e+02 7.57190450e+02 + 7.67410232e+02 7.77767949e+02 7.88265465e+02 7.98904665e+02 8.09687462e+02 + 8.20615795e+02 8.31691626e+02 8.42916949e+02 8.54293779e+02 8.65824161e+02 + 8.77510169e+02 8.89353903e+02 9.01357492e+02 9.13523092e+02 9.25852892e+02 + 9.38349106e+02 9.51013982e+02 9.63849795e+02 9.76858852e+02 9.90043493e+02 + 1.00340609e+03 1.01694903e+03 1.03067477e+03 1.04458576e+03 1.05868451e+03 + 1.07297355e+03 1.08745545e+03 1.10213281e+03 1.11700827e+03 1.13208451e+03 + 1.14736422e+03 1.16285017e+03 1.17854513e+03 1.19445193e+03 1.21057342e+03 + 1.22691250e+03 1.24347211e+03 1.26025522e+03 1.27726485e+03 1.29450407e+03 + 1.31197596e+03 1.32968367e+03 1.34763038e+03 1.36581931e+03 1.38425374e+03 + 1.40293698e+03 1.42187239e+03 1.44106337e+03 1.46051336e+03 1.48022588e+03 + 1.50020445e+03 1.52045267e+03 1.54097419e+03 1.56177268e+03 1.58285189e+03 + 1.60421560e+03 1.62586766e+03 1.64781196e+03 1.67005244e+03 1.69259310e+03 + 1.71543799e+03 1.73859121e+03 1.76205693e+03 1.78583938e+03 1.80994281e+03 + 1.83437156e+03 1.85913003e+03 1.88422266e+03 1.90965397e+03 1.93542853e+03 + 1.96155096e+03 1.98802597e+03 2.01485831e+03 2.04205280e+03 2.06961434e+03 + 2.09754787e+03 2.12585843e+03 2.15455109e+03 2.18363101e+03 2.21310343e+03 + 2.24297363e+03 2.27324699e+03 2.30392895e+03 2.33502503e+03 2.36654081e+03 + 2.39848195e+03 2.43085420e+03 2.46366339e+03 2.49691539e+03 2.53061620e+03 + 2.56477187e+03 2.59938853e+03 2.63447242e+03 2.67002983e+03 2.70606716e+03 + 2.74259088e+03 2.77960756e+03 2.81712386e+03 2.85514651e+03 2.89368236e+03 + 2.93273832e+03 2.97232142e+03 3.01243877e+03 3.05309759e+03 3.09430517e+03 + 3.13606893e+03 3.17839638e+03 3.22129512e+03 3.26477287e+03 3.30883743e+03 + 3.35349673e+03 3.39875879e+03 3.44463176e+03 3.49112387e+03 3.53824349e+03 + 3.58599907e+03 3.63439922e+03 3.68345262e+03 3.73316809e+03 3.78355457e+03 + 3.83462112e+03 3.88637691e+03 3.93883124e+03 3.99199356e+03 4.04587340e+03 + 4.10048045e+03 4.15582454e+03 4.21191561e+03 4.26876373e+03 4.32637913e+03 + 4.38477217e+03 4.44395333e+03 4.50393327e+03 4.56472275e+03 4.62633270e+03 + 4.68877420e+03 4.75205848e+03 4.81619690e+03 4.88120099e+03 4.94708244e+03 + 5.01385310e+03 5.08152495e+03 5.15011018e+03 5.21962109e+03 5.29007019e+03 + 5.36147014e+03 5.43383378e+03 5.50717410e+03 5.58150430e+03 5.65683773e+03 + 5.73318793e+03 5.81056864e+03 5.88899374e+03 5.96847735e+03 6.04903375e+03 + 6.13067741e+03 6.21342302e+03 6.29728544e+03 6.38227975e+03 6.46842123e+03 + 6.55572536e+03 6.64420783e+03 6.73388454e+03 6.82477162e+03 6.91688540e+03 + 7.01024244e+03 7.10485951e+03 7.20075363e+03 7.29794203e+03 7.39644218e+03 + 7.49627178e+03 7.59744879e+03 7.69999137e+03 7.80391797e+03 7.90924727e+03 + 8.01599819e+03 8.12418992e+03 8.23384192e+03 8.34497389e+03 8.45760580e+03 + 8.57175791e+03 8.68745072e+03 8.80470504e+03 8.92354193e+03 9.04398276e+03 + 9.16604918e+03 9.28976313e+03 9.41514684e+03 9.54222285e+03 9.67101401e+03 + 9.80154345e+03 9.93383465e+03 1.00679114e+04 1.02037977e+04 1.03415182e+04 + 1.04810974e+04 1.06225605e+04 1.07659329e+04 1.09112405e+04 1.10585092e+04 + 1.12077657e+04 1.13590366e+04 1.15123493e+04 1.16677312e+04 1.18252103e+04 + 1.19848148e+04 1.21465736e+04 1.23105156e+04 1.24766704e+04 1.26450677e+04 + 1.28157379e+04 1.29887116e+04 1.31640199e+04 1.33416944e+04 1.35217669e+04 + 1.37042699e+04 1.38892361e+04 1.40766987e+04 1.42666916e+04 1.44592488e+04 + 1.46544049e+04 1.48521951e+04 1.50526548e+04 1.52558201e+04 1.54617276e+04 + 1.56704142e+04 1.58819174e+04 1.60962752e+04 1.63135263e+04 1.65337095e+04 + 1.67568646e+04 1.69830316e+04 1.72122512e+04 1.74445645e+04 1.76800134e+04 + 1.79186401e+04 1.81604876e+04 1.84055993e+04 1.86540192e+04 1.89057921e+04 + 1.91609631e+04 1.94195781e+04 1.96816837e+04 1.99473269e+04 2.02165555e+04 + 2.04894179e+04 2.07659631e+04 2.10462408e+04 2.13303014e+04 2.16181960e+04 + 2.19099763e+04 2.22056947e+04 2.25054044e+04 2.28091593e+04 2.31170140e+04 + 2.34290238e+04 2.37452448e+04 2.40657338e+04 2.43905484e+04 2.47197470e+04 + 2.50533889e+04 2.53915339e+04 2.57342428e+04 2.60815773e+04 2.64335997e+04 + 2.67903734e+04 2.71519624e+04 2.75184318e+04 2.78898474e+04 2.82662760e+04 + 2.86477853e+04 2.90344437e+04 2.94263209e+04 2.98234873e+04 3.02260142e+04 + 3.06339740e+04 3.10474400e+04 3.14664865e+04 3.18911890e+04 3.23216236e+04 + 3.27578678e+04 3.31999999e+04 3.36480995e+04 3.41022471e+04 3.45625243e+04 + 3.50290139e+04 3.55017997e+04 3.59809666e+04 3.64666009e+04 3.69587897e+04 + 3.74576216e+04 3.79631862e+04 3.84755745e+04 3.89948784e+04 3.95211913e+04 + 4.00546079e+04 4.05952240e+04 4.11431368e+04 4.16984447e+04 4.22612476e+04 + 4.28316467e+04 4.34097444e+04 4.39956447e+04 4.45894528e+04 4.51912756e+04 + 4.58012212e+04 4.64193992e+04 4.70459207e+04 4.76808984e+04 4.83244463e+04 + 4.89766802e+04 4.96377173e+04 5.03076764e+04 5.09866779e+04 5.16748439e+04 + 5.23722980e+04 5.30791657e+04 5.37955739e+04 5.45216515e+04 5.52575289e+04 + 5.60033385e+04 5.67592142e+04 5.75252919e+04 5.83017094e+04 5.90886062e+04 + 5.98861237e+04 6.06944053e+04 6.15135963e+04 6.23438438e+04 6.31852972e+04 + 6.40381076e+04 6.49024284e+04 6.57784150e+04 6.66662247e+04 6.75660171e+04 + 6.84779540e+04 6.94021994e+04 7.03389192e+04 7.12882819e+04 7.22504581e+04 + 7.32256209e+04 7.42139453e+04 7.52156092e+04 7.62307924e+04 7.72596776e+04 + 7.83024497e+04 7.93592960e+04 8.04304065e+04 8.15159738e+04 8.26161929e+04 + 8.37312617e+04 8.48613806e+04 8.60067526e+04 8.71675837e+04 8.83440825e+04 + 8.95364604e+04 9.07449319e+04 9.19697141e+04 9.32110271e+04 9.44690942e+04 + 9.57441413e+04 9.70363977e+04 9.83460956e+04 9.96734705e+04 1.01018761e+05 + 1.02382209e+05 1.03764059e+05 1.05164560e+05 1.06583964e+05 1.08022525e+05 + 1.09480502e+05 1.10958158e+05 1.12455758e+05 1.13973570e+05 1.15511869e+05 + 1.17070930e+05 1.18651033e+05 1.20252464e+05 1.21875508e+05 1.23520459e+05 + 1.25187612e+05 1.26877266e+05 1.28589725e+05 1.30325298e+05 1.32084295e+05 + 1.33867034e+05 1.35673834e+05 1.37505020e+05 1.39360922e+05 1.41241873e+05 + 1.43148212e+05 1.45080280e+05 1.47038425e+05 1.49022999e+05 1.51034359e+05 + 1.53072866e+05 1.55138887e+05 1.57232793e+05 1.59354960e+05 1.61505770e+05 + 1.63685609e+05 1.65894870e+05 1.68133949e+05 1.70403249e+05 1.72703178e+05 + 1.75034149e+05 1.77396580e+05 1.79790898e+05 1.82217531e+05 1.84676917e+05 + 1.87169497e+05 1.89695719e+05 1.92256038e+05 1.94850913e+05 1.97480811e+05 + 2.00146205e+05 2.02847573e+05 2.05585402e+05 2.08360183e+05 2.11172416e+05 + 2.14022605e+05 2.16911263e+05 2.19838909e+05 2.22806069e+05 2.25813278e+05 + 2.28861074e+05 2.31950007e+05 2.35080630e+05 2.38253508e+05 2.41469210e+05 + 2.44728314e+05 2.48031406e+05 2.51379080e+05 2.54771938e+05 2.58210588e+05 + 2.61695651e+05 2.65227751e+05 2.68807523e+05 2.72435612e+05 2.76112669e+05 + 2.79839355e+05 2.83616340e+05 2.87444303e+05 2.91323932e+05 2.95255924e+05 + 2.99240986e+05 3.03279835e+05 3.07373196e+05 3.11521804e+05 3.15726407e+05 + 3.19987758e+05 3.24306626e+05 3.28683784e+05 3.33120022e+05 3.37616135e+05 + 3.42172931e+05 3.46791231e+05 3.51471864e+05 3.56215672e+05 3.61023506e+05 + 3.65896232e+05 3.70834725e+05 3.75839872e+05 3.80912574e+05 3.86053742e+05 + 3.91264300e+05 3.96545185e+05 4.01897346e+05 4.07321745e+05 4.12819356e+05 + 4.18391169e+05 4.24038185e+05 4.29761418e+05 4.35561898e+05 4.41440667e+05 + 4.47398781e+05 4.53437311e+05 4.59557344e+05 4.65759979e+05 4.72046330e+05 + 4.78417528e+05 4.84874718e+05 4.91419060e+05 4.98051732e+05 5.04773924e+05 + 5.11586846e+05 5.18491721e+05 5.25489792e+05 5.32582315e+05 5.39770566e+05 + 5.47055836e+05 5.54439436e+05 5.61922691e+05 5.69506949e+05 5.77193570e+05 + 5.84983938e+05 5.92879453e+05 6.00881532e+05 6.08991616e+05 6.17211161e+05 + 6.25541646e+05 6.33984566e+05 6.42541441e+05 6.51213808e+05 6.60003225e+05 + 1.65580254e-01 1.65563515e-01 1.65546741e-01 1.65529929e-01 1.65513082e-01 + 1.65496198e-01 1.65479277e-01 1.65462319e-01 1.65445324e-01 1.65428292e-01 + 1.65411223e-01 1.65394117e-01 1.65376974e-01 1.65359793e-01 1.65342574e-01 + 1.65325318e-01 1.65308025e-01 1.65290693e-01 1.65273323e-01 1.65255915e-01 + 1.65238469e-01 1.65220985e-01 1.65203462e-01 1.65185901e-01 1.65168301e-01 + 1.65150662e-01 1.65132985e-01 1.65115268e-01 1.65097513e-01 1.65079718e-01 + 1.65061884e-01 1.65044011e-01 1.65026098e-01 1.65008145e-01 1.64990153e-01 + 1.64972120e-01 1.64954048e-01 1.64935936e-01 1.64917783e-01 1.64899591e-01 + 1.64881357e-01 1.64863083e-01 1.64844769e-01 1.64826414e-01 1.64808017e-01 + 1.64789580e-01 1.64771102e-01 1.64752582e-01 1.64734021e-01 1.64715418e-01 + 1.64696774e-01 1.64678088e-01 1.64659360e-01 1.64640590e-01 1.64621778e-01 + 1.64602924e-01 1.64584027e-01 1.64565088e-01 1.64546107e-01 1.64527082e-01 + 1.64508015e-01 1.64488905e-01 1.64469751e-01 1.64450555e-01 1.64431315e-01 + 1.64412031e-01 1.64392704e-01 1.64373334e-01 1.64353919e-01 1.64334460e-01 + 1.64314958e-01 1.64295411e-01 1.64275819e-01 1.64256183e-01 1.64236503e-01 + 1.64216777e-01 1.64197007e-01 1.64177192e-01 1.64157331e-01 1.64137425e-01 + 1.64117474e-01 1.64097477e-01 1.64077435e-01 1.64057346e-01 1.64037212e-01 + 1.64017032e-01 1.63996805e-01 1.63976532e-01 1.63956212e-01 1.63935846e-01 + 1.63915433e-01 1.63894973e-01 1.63874465e-01 1.63853911e-01 1.63833309e-01 + 1.63812660e-01 1.63791963e-01 1.63771218e-01 1.63750426e-01 1.63729585e-01 + 1.63708696e-01 1.63687759e-01 1.63666773e-01 1.63645738e-01 1.63624655e-01 + 1.63603523e-01 1.63582341e-01 1.63561111e-01 1.63539831e-01 1.63518501e-01 + 1.63497122e-01 1.63475693e-01 1.63454214e-01 1.63432685e-01 1.63411106e-01 + 1.63389476e-01 1.63367795e-01 1.63346064e-01 1.63324282e-01 1.63302449e-01 + 1.63280565e-01 1.63258629e-01 1.63236642e-01 1.63214603e-01 1.63192512e-01 + 1.63170369e-01 1.63148174e-01 1.63125927e-01 1.63103628e-01 1.63081275e-01 + 1.63058870e-01 1.63036412e-01 1.63013901e-01 1.62991337e-01 1.62968719e-01 + 1.62946048e-01 1.62923323e-01 1.62900544e-01 1.62877710e-01 1.62854823e-01 + 1.62831881e-01 1.62808885e-01 1.62785834e-01 1.62762728e-01 1.62739567e-01 + 1.62716350e-01 1.62693078e-01 1.62669751e-01 1.62646368e-01 1.62622929e-01 + 1.62599433e-01 1.62575882e-01 1.62552274e-01 1.62528609e-01 1.62504888e-01 + 1.62481109e-01 1.62457274e-01 1.62433381e-01 1.62409431e-01 1.62385423e-01 + 1.62361357e-01 1.62337233e-01 1.62313050e-01 1.62288810e-01 1.62264510e-01 + 1.62240152e-01 1.62215735e-01 1.62191259e-01 1.62166724e-01 1.62142129e-01 + 1.62117474e-01 1.62092759e-01 1.62067985e-01 1.62043150e-01 1.62018255e-01 + 1.61993299e-01 1.61968282e-01 1.61943204e-01 1.61918065e-01 1.61892865e-01 + 1.61867603e-01 1.61842279e-01 1.61816893e-01 1.61791445e-01 1.61765935e-01 + 1.61740362e-01 1.61714726e-01 1.61689028e-01 1.61663266e-01 1.61637441e-01 + 1.61611552e-01 1.61585600e-01 1.61559583e-01 1.61533503e-01 1.61507358e-01 + 1.61481148e-01 1.61454874e-01 1.61428535e-01 1.61402130e-01 1.61375660e-01 + 1.61349125e-01 1.61322523e-01 1.61295856e-01 1.61269123e-01 1.61242323e-01 + 1.61215456e-01 1.61188522e-01 1.61161522e-01 1.61134454e-01 1.61107319e-01 + 1.61080115e-01 1.61052844e-01 1.61025505e-01 1.60998098e-01 1.60970621e-01 + 1.60943076e-01 1.60915462e-01 1.60887779e-01 1.60860026e-01 1.60832204e-01 + 1.60804311e-01 1.60776349e-01 1.60748316e-01 1.60720212e-01 1.60692038e-01 + 1.60663792e-01 1.60635475e-01 1.60607087e-01 1.60578627e-01 1.60550095e-01 + 1.60521491e-01 1.60492814e-01 1.60464065e-01 1.60435242e-01 1.60406347e-01 + 1.60377378e-01 1.60348335e-01 1.60319219e-01 1.60290028e-01 1.60260764e-01 + 1.60231424e-01 1.60202010e-01 1.60172520e-01 1.60142955e-01 1.60113315e-01 + 1.60083599e-01 1.60053807e-01 1.60023938e-01 1.59993993e-01 1.59963971e-01 + 1.59933872e-01 1.59903696e-01 1.59873442e-01 1.59843110e-01 1.59812700e-01 + 1.59782212e-01 1.59751645e-01 1.59720999e-01 1.59690274e-01 1.59659470e-01 + 1.59628586e-01 1.59597622e-01 1.59566578e-01 1.59535454e-01 1.59504249e-01 + 1.59472963e-01 1.59441595e-01 1.59410146e-01 1.59378616e-01 1.59347003e-01 + 1.59315308e-01 1.59283531e-01 1.59251670e-01 1.59219726e-01 1.59187699e-01 + 1.59155589e-01 1.59123394e-01 1.59091115e-01 1.59058751e-01 1.59026303e-01 + 1.58993770e-01 1.58961151e-01 1.58928446e-01 1.58895656e-01 1.58862779e-01 + 1.58829816e-01 1.58796766e-01 1.58763628e-01 1.58730404e-01 1.58697092e-01 + 1.58663691e-01 1.58630203e-01 1.58596625e-01 1.58562959e-01 1.58529204e-01 + 1.58495359e-01 1.58461425e-01 1.58427400e-01 1.58393285e-01 1.58359079e-01 + 1.58324782e-01 1.58290394e-01 1.58255915e-01 1.58221343e-01 1.58186679e-01 + 1.58151923e-01 1.58117073e-01 1.58082131e-01 1.58047095e-01 1.58011965e-01 + 1.57976741e-01 1.57941422e-01 1.57906009e-01 1.57870501e-01 1.57834897e-01 + 1.57799197e-01 1.57763402e-01 1.57727510e-01 1.57691521e-01 1.57655435e-01 + 1.57619252e-01 1.57582971e-01 1.57546592e-01 1.57510115e-01 1.57473538e-01 + 1.57436863e-01 1.57400088e-01 1.57363214e-01 1.57326239e-01 1.57289164e-01 + 1.57251989e-01 1.57214712e-01 1.57177333e-01 1.57139853e-01 1.57102271e-01 + 1.57064586e-01 1.57026798e-01 1.56988907e-01 1.56950912e-01 1.56912813e-01 + 1.56874610e-01 1.56836302e-01 1.56797890e-01 1.56759371e-01 1.56720748e-01 + 1.56682017e-01 1.56643181e-01 1.56604237e-01 1.56565187e-01 1.56526028e-01 + 1.56486762e-01 1.56447387e-01 1.56407903e-01 1.56368311e-01 1.56328609e-01 + 1.56288796e-01 1.56248874e-01 1.56208841e-01 1.56168697e-01 1.56128441e-01 + 1.56088074e-01 1.56047594e-01 1.56007002e-01 1.55966297e-01 1.55925478e-01 + 1.55884546e-01 1.55843499e-01 1.55802338e-01 1.55761062e-01 1.55719670e-01 + 1.55678163e-01 1.55636539e-01 1.55594799e-01 1.55552941e-01 1.55510966e-01 + 1.55468873e-01 1.55426662e-01 1.55384333e-01 1.55341884e-01 1.55299315e-01 + 1.55256627e-01 1.55213818e-01 1.55170888e-01 1.55127838e-01 1.55084665e-01 + 1.55041370e-01 1.54997953e-01 1.54954413e-01 1.54910749e-01 1.54866961e-01 + 1.54823050e-01 1.54779013e-01 1.54734851e-01 1.54690564e-01 1.54646150e-01 + 1.54601610e-01 1.54556943e-01 1.54512149e-01 1.54467226e-01 1.54422176e-01 + 1.54376996e-01 1.54331687e-01 1.54286249e-01 1.54240680e-01 1.54194981e-01 + 1.54149150e-01 1.54103188e-01 1.54057094e-01 1.54010867e-01 1.53964507e-01 + 1.53918014e-01 1.53871386e-01 1.53824625e-01 1.53777728e-01 1.53730696e-01 + 1.53683527e-01 1.53636223e-01 1.53588781e-01 1.53541202e-01 1.53493486e-01 + 1.53445630e-01 1.53397636e-01 1.53349503e-01 1.53301229e-01 1.53252815e-01 + 1.53204260e-01 1.53155564e-01 1.53106726e-01 1.53057745e-01 1.53008621e-01 + 1.52959354e-01 1.52909943e-01 1.52860387e-01 1.52810686e-01 1.52760840e-01 + 1.52710847e-01 1.52660708e-01 1.52610421e-01 1.52559987e-01 1.52509404e-01 + 1.52458673e-01 1.52407792e-01 1.52356762e-01 1.52305580e-01 1.52254248e-01 + 1.52202764e-01 1.52151129e-01 1.52099340e-01 1.52047398e-01 1.51995302e-01 + 1.51943052e-01 1.51890647e-01 1.51838087e-01 1.51785370e-01 1.51732497e-01 + 1.51679467e-01 1.51626279e-01 1.51572932e-01 1.51519426e-01 1.51465761e-01 + 1.51411936e-01 1.51357950e-01 1.51303802e-01 1.51249493e-01 1.51195021e-01 + 1.51140386e-01 1.51085587e-01 1.51030624e-01 1.50975496e-01 1.50920202e-01 + 1.50864742e-01 1.50809116e-01 1.50753322e-01 1.50697360e-01 1.50641229e-01 + 1.50584929e-01 1.50528459e-01 1.50471818e-01 1.50415007e-01 1.50358023e-01 + 1.50300867e-01 1.50243538e-01 1.50186035e-01 1.50128358e-01 1.50070506e-01 + 1.50012478e-01 1.49954274e-01 1.49895893e-01 1.49837334e-01 1.49778596e-01 + 1.49719680e-01 1.49660584e-01 1.49601308e-01 1.49541850e-01 1.49482211e-01 + 1.49422390e-01 1.49362385e-01 1.49302197e-01 1.49241824e-01 1.49181266e-01 + 1.49120523e-01 1.49059593e-01 1.48998475e-01 1.48937170e-01 1.48875676e-01 + 1.48813992e-01 1.48752119e-01 1.48690055e-01 1.48627799e-01 1.48565351e-01 + 1.48502710e-01 1.48439876e-01 1.48376847e-01 1.48313623e-01 1.48250203e-01 + 1.48186586e-01 1.48122773e-01 1.48058761e-01 1.47994550e-01 1.47930139e-01 + 1.47865528e-01 1.47800717e-01 1.47735703e-01 1.47670486e-01 1.47605066e-01 + 1.47539442e-01 1.47473613e-01 1.47407579e-01 1.47341337e-01 1.47274889e-01 + 1.47208232e-01 1.47141367e-01 1.47074292e-01 1.47007006e-01 1.46939509e-01 + 1.46871800e-01 1.46803878e-01 1.46735743e-01 1.46667393e-01 1.46598827e-01 + 1.46530046e-01 1.46461047e-01 1.46391831e-01 1.46322396e-01 1.46252742e-01 + 1.46182867e-01 1.46112772e-01 1.46042454e-01 1.45971913e-01 1.45901149e-01 + 1.45830160e-01 1.45758946e-01 1.45687506e-01 1.45615839e-01 1.45543943e-01 + 1.45471819e-01 1.45399465e-01 1.45326880e-01 1.45254064e-01 1.45181016e-01 + 1.45107734e-01 1.45034218e-01 1.44960467e-01 1.44886480e-01 1.44812256e-01 + 1.44737795e-01 1.44663094e-01 1.44588154e-01 1.44512974e-01 1.44437552e-01 + 1.44361888e-01 1.44285981e-01 1.44209829e-01 1.44133432e-01 1.44056789e-01 + 1.43979899e-01 1.43902761e-01 1.43825374e-01 1.43747737e-01 1.43669849e-01 + 1.43591710e-01 1.43513317e-01 1.43434671e-01 1.43355770e-01 1.43276613e-01 + 1.43197200e-01 1.43117528e-01 1.43037599e-01 1.42957409e-01 1.42876959e-01 + 1.42796247e-01 1.42715272e-01 1.42634034e-01 1.42552530e-01 1.42470761e-01 + 1.42388726e-01 1.42306422e-01 1.42223850e-01 1.42141007e-01 1.42057894e-01 + 1.41974509e-01 1.41890851e-01 1.41806919e-01 1.41722711e-01 1.41638228e-01 + 1.41553467e-01 1.41468428e-01 1.41383109e-01 1.41297511e-01 1.41211630e-01 + 1.41125467e-01 1.41039020e-01 1.40952288e-01 1.40865271e-01 1.40777966e-01 + 1.40690373e-01 1.40602491e-01 1.40514319e-01 1.40425855e-01 1.40337099e-01 + 1.40248048e-01 1.40158703e-01 1.40069062e-01 1.39979124e-01 1.39888888e-01 + 1.39798352e-01 1.39707515e-01 1.39616377e-01 1.39524936e-01 1.39433191e-01 + 1.39341140e-01 1.39248784e-01 1.39156119e-01 1.39063146e-01 1.38969862e-01 + 1.38876268e-01 1.38782361e-01 1.38688141e-01 1.38593606e-01 1.38498755e-01 + 1.38403586e-01 1.38308099e-01 1.38212293e-01 1.38116166e-01 1.38019716e-01 + 1.37922943e-01 1.37825846e-01 1.37728423e-01 1.37630672e-01 1.37532594e-01 + 1.37434185e-01 1.37335446e-01 1.37236375e-01 1.37136970e-01 1.37037230e-01 + 1.36937155e-01 1.36836742e-01 1.36735991e-01 1.36634900e-01 1.36533467e-01 + 1.36431692e-01 1.36329574e-01 1.36227110e-01 1.36124300e-01 1.36021142e-01 + 1.35917635e-01 1.35813778e-01 1.35709568e-01 1.35605006e-01 1.35500089e-01 + 1.35394817e-01 1.35289187e-01 1.35183199e-01 1.35076851e-01 1.34970142e-01 + 1.34863070e-01 1.34755634e-01 1.34647833e-01 1.34539665e-01 1.34431128e-01 + 1.34322223e-01 1.34212946e-01 1.34103297e-01 1.33993274e-01 1.33882876e-01 + 1.33772101e-01 1.33660948e-01 1.33549416e-01 1.33437503e-01 1.33325207e-01 + 1.33212528e-01 1.33099463e-01 1.32986012e-01 1.32872172e-01 1.32757943e-01 + 1.32643323e-01 1.32528310e-01 1.32412904e-01 1.32297101e-01 1.32180902e-01 + 1.32064305e-01 1.31947307e-01 1.31829908e-01 1.31712106e-01 1.31593899e-01 + 1.31475287e-01 1.31356267e-01 1.31236838e-01 1.31116998e-01 1.30996746e-01 + 1.30876081e-01 1.30755001e-01 1.30633504e-01 1.30511588e-01 1.30389253e-01 + 1.30266497e-01 1.30143318e-01 1.30019714e-01 1.29895684e-01 1.29771227e-01 + 1.29646341e-01 1.29521024e-01 1.29395274e-01 1.29269091e-01 1.29142472e-01 + 1.29015417e-01 1.28887922e-01 1.28759987e-01 1.28631611e-01 1.28502791e-01 + 1.28373525e-01 1.28243813e-01 1.28113653e-01 1.27983043e-01 1.27851981e-01 + 1.27720466e-01 1.27588496e-01 1.27456070e-01 1.27323186e-01 1.27189841e-01 + 1.27056036e-01 1.26921767e-01 1.26787033e-01 1.26651833e-01 1.26516166e-01 + 1.26380028e-01 1.26243419e-01 1.26106337e-01 1.25968780e-01 1.25830747e-01 + 1.25692235e-01 1.25553244e-01 1.25413771e-01 1.25273815e-01 1.25133375e-01 + 1.24992448e-01 1.24851032e-01 1.24709127e-01 1.24566730e-01 1.24423839e-01 + 1.24280454e-01 1.24136571e-01 1.23992190e-01 1.23847309e-01 1.23701926e-01 + 1.23556040e-01 1.23409647e-01 1.23262748e-01 1.23115340e-01 1.22967422e-01 + 1.22818991e-01 1.22670046e-01 1.22520585e-01 1.22370607e-01 1.22220110e-01 + 1.22069091e-01 1.21917550e-01 1.21765484e-01 1.21612892e-01 1.21459773e-01 + 1.21306123e-01 1.21151942e-01 1.20997228e-01 1.20841979e-01 1.20686193e-01 + 1.20529869e-01 1.20373004e-01 1.20215598e-01 1.20057648e-01 1.19899152e-01 + 1.19740109e-01 1.19580518e-01 1.19420375e-01 1.19259680e-01 1.19098431e-01 + 1.18936626e-01 1.18774263e-01 1.18611341e-01 1.18447857e-01 1.18283810e-01 + 1.18119199e-01 1.17954021e-01 1.17788276e-01 1.17621960e-01 1.17455072e-01 + 1.17287611e-01 1.17119575e-01 1.16950961e-01 1.16781770e-01 1.16611997e-01 + 1.16441643e-01 1.16270705e-01 1.16099181e-01 1.15927070e-01 1.15754370e-01 + 1.15581079e-01 1.15407195e-01 1.15232718e-01 1.15057644e-01 1.14881973e-01 + 1.14705703e-01 1.14528831e-01 1.14351357e-01 1.14173279e-01 1.13994594e-01 + 1.13815302e-01 1.13635400e-01 1.13454887e-01 1.13273762e-01 1.13092022e-01 + 1.12909666e-01 1.12726692e-01 1.12543099e-01 1.12358884e-01 1.12174047e-01 + 1.11988586e-01 1.11802499e-01 1.11615785e-01 1.11428441e-01 1.11240467e-01 + 1.11051860e-01 1.10862619e-01 1.10672743e-01 1.10482230e-01 1.10291079e-01 + 1.10099287e-01 1.09906853e-01 1.09713777e-01 1.09520055e-01 1.09325688e-01 + 1.09130672e-01 1.08935008e-01 1.08738692e-01 1.08541725e-01 1.08344104e-01 + 1.08145827e-01 1.07946894e-01 1.07747304e-01 1.07547053e-01 1.07346142e-01 + 1.07144569e-01 1.06942333e-01 1.06739431e-01 1.06535863e-01 1.06331627e-01 + 1.06126723e-01 1.05921148e-01 1.05714902e-01 1.05507982e-01 1.05300389e-01 + 1.05092120e-01 1.04883175e-01 1.04673552e-01 1.04463250e-01 1.04252268e-01 + 1.04040604e-01 1.03828258e-01 1.03615228e-01 1.03401513e-01 1.03187113e-01 + 1.02972026e-01 1.02756250e-01 1.02539786e-01 1.02322631e-01 1.02104785e-01 + 1.01886248e-01 1.01667017e-01 1.01447092e-01 1.01226473e-01 1.01005158e-01 + 1.00783146e-01 1.00560436e-01 1.00337028e-01 1.00112922e-01 9.98881150e-02 + 9.96626076e-02 9.94363989e-02 9.92094881e-02 9.89818746e-02 9.87535577e-02 + 9.85245367e-02 9.82948112e-02 9.80643804e-02 9.78332440e-02 9.76014013e-02 + 9.73688518e-02 9.71355952e-02 9.69016310e-02 9.66669588e-02 9.64315783e-02 + 9.61954891e-02 9.59586908e-02 9.57211834e-02 9.54829664e-02 9.52440398e-02 + 9.50044033e-02 9.47640568e-02 9.45230003e-02 9.42812335e-02 9.40387567e-02 + 9.37955696e-02 9.35516725e-02 9.33070653e-02 9.30617482e-02 9.28157214e-02 + 9.25689850e-02 9.23215393e-02 9.20733846e-02 9.18245212e-02 9.15749495e-02 + 9.13246699e-02 9.10736827e-02 9.08219886e-02 9.05695880e-02 9.03164816e-02 + 9.00626699e-02 8.98081536e-02 8.95529334e-02 8.92970102e-02 8.90403847e-02 + 8.87830577e-02 8.85250303e-02 8.82663032e-02 8.80068776e-02 8.77467546e-02 + 8.74859351e-02 8.72244204e-02 8.69622117e-02 8.66993103e-02 8.64357174e-02 + 8.61714345e-02 8.59064630e-02 8.56408044e-02 8.53744602e-02 8.51074320e-02 + 8.48397215e-02 8.45713304e-02 8.43022605e-02 8.40325136e-02 8.37620916e-02 + 8.34909965e-02 8.32192302e-02 8.29467950e-02 8.26736929e-02 8.23999262e-02 + 8.21254970e-02 8.18504079e-02 8.15746611e-02 8.12982592e-02 8.10212047e-02 + 8.07435002e-02 8.04651484e-02 8.01861521e-02 7.99065141e-02 7.96262372e-02 + 7.93453246e-02 7.90637791e-02 7.87816039e-02 7.84988023e-02 7.82153774e-02 + 7.79313327e-02 7.76466715e-02 7.73613974e-02 7.70755139e-02 7.67890246e-02 + 7.65019334e-02 7.62142440e-02 7.59259604e-02 7.56370865e-02 7.53476263e-02 + 7.50575841e-02 7.47669641e-02 7.44757706e-02 7.41840079e-02 7.38916807e-02 + 7.35987934e-02 7.33053507e-02 7.30113575e-02 7.27168185e-02 7.24217387e-02 + 7.21261231e-02 7.18299768e-02 7.15333051e-02 7.12361133e-02 7.09384067e-02 + 7.06401909e-02 7.03414715e-02 7.00422541e-02 6.97425446e-02 6.94423488e-02 + 6.91416728e-02 6.88405225e-02 6.85389043e-02 6.82368244e-02 6.79342891e-02 + 6.76313050e-02 6.73278787e-02 6.70240169e-02 6.67197264e-02 6.64150140e-02 + 6.61098869e-02 6.58043520e-02 6.54984168e-02 6.51920884e-02 6.48853744e-02 + 6.45782823e-02 6.42708198e-02 6.39629946e-02 6.36548146e-02 6.33462879e-02 + 6.30374225e-02 6.27282267e-02 6.24187088e-02 6.21088773e-02 6.17987406e-02 + 6.14883076e-02 6.11775870e-02 6.08665877e-02 6.05553188e-02 6.02437893e-02 + 5.99320086e-02 5.96199860e-02 5.93077311e-02 5.89952534e-02 5.86825627e-02 + 5.83696689e-02 5.80565818e-02 5.77433118e-02 5.74298688e-02 5.71162634e-02 + 5.68025058e-02 5.64886069e-02 5.61745771e-02 5.58604274e-02 5.55461687e-02 + 5.52318121e-02 5.49173687e-02 5.46028499e-02 5.42882672e-02 5.39736321e-02 + 5.36589562e-02 5.33442514e-02 5.30295296e-02 5.27148029e-02 5.24000835e-02 + 5.20853836e-02 5.17707158e-02 5.14560924e-02 5.11415263e-02 5.08270302e-02 + 5.05126170e-02 5.01982998e-02 4.98840918e-02 4.95700061e-02 4.92560564e-02 + 4.89422560e-02 4.86286186e-02 4.83151580e-02 4.80018882e-02 4.76888231e-02 + 4.73759769e-02 4.70633638e-02 4.67509982e-02 4.64388946e-02 4.61270676e-02 + 4.58155320e-02 4.55043026e-02 4.51933944e-02 4.48828225e-02 4.45726020e-02 + 4.42627483e-02 4.39532767e-02 4.36442030e-02 4.33355426e-02 4.30273114e-02 + 4.27195253e-02 4.24122002e-02 4.21053521e-02 4.17989974e-02 4.14931524e-02 + 4.11878333e-02 4.08830568e-02 4.05788395e-02 4.02751981e-02 3.99721494e-02 + 3.96697104e-02 3.93678979e-02 3.90667293e-02 3.87662217e-02 3.84663923e-02 + 3.81672586e-02 3.78688381e-02 3.75711484e-02 3.72742070e-02 3.69780319e-02 + 3.66826407e-02 3.63880515e-02 3.60942822e-02 3.58013509e-02 3.55092758e-02 + 3.52180750e-02 3.49277670e-02 3.46383700e-02 3.43499026e-02 3.40623832e-02 + 3.37758304e-02 3.34902629e-02 3.32056994e-02 3.29221586e-02 3.26396593e-02 + 3.23582205e-02 3.20778611e-02 3.17986000e-02 3.15204562e-02 3.12434489e-02 + 3.09675972e-02 3.06929202e-02 3.04194370e-02 3.01471670e-02 2.98761294e-02 + 2.96063435e-02 2.93378286e-02 2.90706040e-02 2.88046891e-02 2.85401033e-02 + 2.82768660e-02 2.80149966e-02 2.77545145e-02 2.74954392e-02 2.72377901e-02 + 2.69815866e-02 2.67268481e-02 2.64735941e-02 2.62218441e-02 2.59716174e-02 + 2.57229334e-02 2.54758115e-02 2.52302711e-02 2.49863315e-02 2.47440120e-02 + 2.45033320e-02 2.42643105e-02 2.40269669e-02 2.37913204e-02 2.35573900e-02 + 2.33251949e-02 2.30947540e-02 2.28660864e-02 2.26392110e-02 2.24141466e-02 + 2.21909120e-02 2.19695260e-02 2.17500072e-02 2.15323742e-02 2.13166455e-02 + 2.11028396e-02 2.08909747e-02 2.06810691e-02 2.04731411e-02 2.02672086e-02 + 2.00632896e-02 1.98614019e-02 1.96615634e-02 1.94637917e-02 1.92681043e-02 + 1.90745186e-02 1.88830519e-02 1.86937213e-02 1.85065440e-02 1.83215368e-02 + 1.81387165e-02 1.79580998e-02 1.77797030e-02 1.76035426e-02 1.74296348e-02 + 1.72579956e-02 1.70886409e-02 1.69215864e-02 1.67568478e-02 1.65944402e-02 + 1.64343791e-02 1.62766795e-02 1.61213562e-02 1.59684240e-02 1.58178973e-02 + 1.56697904e-02 1.55241176e-02 1.53808927e-02 1.52401295e-02 1.51018416e-02 + 1.49660422e-02 1.48327446e-02 1.47019616e-02 1.45737059e-02 1.44479901e-02 + 1.43248264e-02 1.42042269e-02 1.40862035e-02 1.39707676e-02 1.38579308e-02 + 1.37477041e-02 1.36400985e-02 1.35351246e-02 1.34327929e-02 1.33331135e-02 + 1.32360964e-02 1.31417514e-02 1.30500877e-02 1.29611147e-02 1.28748412e-02 + 1.27912760e-02 1.27104274e-02 1.26323037e-02 1.25569127e-02 1.24842620e-02 + 1.24143590e-02 1.23472109e-02 1.22828243e-02 1.22212060e-02 1.21623621e-02 + 1.21062986e-02 1.20530213e-02 1.20025356e-02 1.19548467e-02 1.19099595e-02 + 1.18678785e-02 1.18286081e-02 1.17921522e-02 1.17585148e-02 1.17276991e-02 + 1.16997084e-02 1.16745455e-02 1.16522130e-02 1.16327133e-02 1.16160484e-02 + 1.16022198e-02 1.15912292e-02 1.15830776e-02 1.15777658e-02 1.15752944e-02 + 1.15756637e-02 1.15788736e-02 1.15849238e-02 1.15938137e-02 1.16055423e-02 + 1.16201084e-02 1.16375106e-02 1.16577471e-02 1.16808156e-02 1.17067140e-02 + 1.17354395e-02 1.17669892e-02 1.18013598e-02 1.18385478e-02 1.18785493e-02 + 1.19213604e-02 1.19669765e-02 1.20153931e-02 1.20666051e-02 1.21206073e-02 + 1.21773942e-02 1.22369601e-02 1.22992988e-02 1.23644040e-02 1.24322691e-02 + 1.25028871e-02 1.25762510e-02 1.26523533e-02 1.27311863e-02 1.28127420e-02 + 1.28970121e-02 1.29839883e-02 1.30736618e-02 1.31660235e-02 1.32610642e-02 + 1.33587744e-02 1.34591444e-02 1.35621641e-02 1.36678232e-02 1.37761113e-02 + 1.38870177e-02 1.40005314e-02 1.41166411e-02 1.42353355e-02 1.43566028e-02 + 1.44804312e-02 1.46068085e-02 1.47357225e-02 1.48671606e-02 1.50011099e-02 + 1.51375576e-02 1.52764904e-02 1.54178949e-02 1.55617576e-02 1.57080646e-02 + 1.58568020e-02 1.60079555e-02 1.61615108e-02 1.63174534e-02 1.64757685e-02 + 1.66364411e-02 1.67994562e-02 1.69647985e-02 1.71324525e-02 1.73024027e-02 + 1.74746333e-02 1.76491283e-02 1.78258717e-02 1.80048472e-02 1.81860385e-02 + 1.83694290e-02 1.85550020e-02 1.87427408e-02 1.89326284e-02 1.91246477e-02 + 1.93187815e-02 1.95150125e-02 1.97133233e-02 1.99136963e-02 2.01161138e-02 + 2.03205580e-02 2.05270111e-02 2.07354551e-02 2.09458718e-02 2.11582431e-02 + 2.13725507e-02 2.15887763e-02 2.18069014e-02 2.20269075e-02 2.22487759e-02 + 2.24724880e-02 2.26980251e-02 2.29253683e-02 2.31544988e-02 2.33853976e-02 + 2.36180458e-02 2.38524242e-02 2.40885138e-02 2.43262955e-02 2.45657500e-02 + 2.48068582e-02 2.50496007e-02 2.52939584e-02 2.55399119e-02 2.57874418e-02 + 2.60365287e-02 2.62871534e-02 2.65392963e-02 2.67929381e-02 2.70480593e-02 + 2.73046406e-02 2.75626624e-02 2.78221053e-02 2.80829500e-02 2.83451769e-02 + 2.86087667e-02 2.88736999e-02 2.91399572e-02 2.94075191e-02 2.96763664e-02 + 2.99464796e-02 3.02178395e-02 3.04904267e-02 3.07642221e-02 3.10392064e-02 + 3.13153605e-02 3.15926651e-02 3.18711011e-02 3.21506496e-02 3.24312916e-02 + 3.27130079e-02 3.29957798e-02 3.32795883e-02 3.35644146e-02 3.38502401e-02 + 3.41370460e-02 3.44248137e-02 3.47135246e-02 3.50031602e-02 3.52937021e-02 + 3.55851319e-02 3.58774314e-02 3.61705823e-02 3.64645665e-02 3.67593660e-02 + 3.70549627e-02 3.73513388e-02 3.76484764e-02 3.79463579e-02 3.82449655e-02 + 3.85442817e-02 3.88442891e-02 3.91449703e-02 3.94463079e-02 3.97482849e-02 + 4.00508841e-02 4.03540886e-02 4.06578813e-02 4.09622456e-02 4.12671648e-02 + 4.15726221e-02 4.18786013e-02 4.21850858e-02 4.24920594e-02 4.27995060e-02 + 4.31074094e-02 4.34157537e-02 4.37245230e-02 4.40337017e-02 4.43432741e-02 + 4.46532246e-02 4.49635380e-02 4.52741988e-02 4.55851920e-02 4.58965024e-02 + 4.62081152e-02 4.65200155e-02 4.68321886e-02 4.71446199e-02 4.74572950e-02 + 4.77701996e-02 4.80833192e-02 4.83966400e-02 4.87101479e-02 4.90238289e-02 + 4.93376695e-02 4.96516559e-02 4.99657746e-02 5.02800123e-02 5.05943557e-02 + 5.09087917e-02 5.12233073e-02 5.15378895e-02 5.18525256e-02 5.21672030e-02 + 5.24819092e-02 5.27966317e-02 5.31113583e-02 5.34260768e-02 5.37407752e-02 + 5.40554416e-02 5.43700642e-02 5.46846314e-02 5.49991317e-02 5.53135536e-02 + 5.56278858e-02 5.59421172e-02 5.62562368e-02 5.65702336e-02 5.68840968e-02 + 5.71978158e-02 5.75113800e-02 5.78247790e-02 5.81380025e-02 5.84510402e-02 + 5.87638822e-02 5.90765185e-02 5.93889392e-02 5.97011346e-02 6.00130952e-02 + 6.03248115e-02 6.06362741e-02 6.09474738e-02 6.12584015e-02 6.15690482e-02 + 6.18794050e-02 6.21894631e-02 6.24992140e-02 6.28086489e-02 6.31177596e-02 + 6.34265377e-02 6.37349751e-02 6.40430636e-02 6.43507952e-02 6.46581622e-02 + 6.49651567e-02 6.52717712e-02 6.55779981e-02 6.58838299e-02 6.61892594e-02 + 6.64942794e-02 6.67988828e-02 6.71030625e-02 6.74068117e-02 6.77101237e-02 + 6.80129917e-02 6.83154092e-02 6.86173697e-02 6.89188669e-02 6.92198944e-02 + 6.95204462e-02 6.98205161e-02 7.01200982e-02 7.04191867e-02 7.07177757e-02 + 7.10158596e-02 7.13134329e-02 7.16104900e-02 7.19070256e-02 7.22030344e-02 + 7.24985112e-02 7.27934509e-02 7.30878484e-02 7.33816990e-02 7.36749977e-02 + 7.39677398e-02 7.42599207e-02 7.45515358e-02 7.48425807e-02 7.51330509e-02 + 7.54229421e-02 7.57122502e-02 7.60009711e-02 7.62891006e-02 7.65766348e-02 + 7.68635699e-02 7.71499020e-02 7.74356274e-02 7.77207425e-02 7.80052438e-02 + 7.82891277e-02 7.85723908e-02 7.88550299e-02 7.91370416e-02 7.94184229e-02 + 7.96991705e-02 7.99792815e-02 8.02587530e-02 8.05375820e-02 8.08157657e-02 + 8.10933015e-02 8.13701866e-02 8.16464184e-02 8.19219944e-02 8.21969122e-02 + 8.24711693e-02 8.27447635e-02 8.30176924e-02 8.32899539e-02 8.35615458e-02 + 8.38324661e-02 8.41027128e-02 8.43722839e-02 8.46411775e-02 8.49093918e-02 + 8.51769250e-02 8.54437756e-02 8.57099417e-02 8.59754218e-02 8.62402144e-02 + 8.65043180e-02 8.67677312e-02 8.70304527e-02 8.72924810e-02 8.75538151e-02 + 8.78144536e-02 8.80743954e-02 8.83336395e-02 8.85921847e-02 8.88500302e-02 + 8.91071748e-02 8.93636178e-02 8.96193583e-02 8.98743956e-02 9.01287287e-02 + 9.03823571e-02 9.06352801e-02 9.08874971e-02 9.11390074e-02 9.13898107e-02 + 9.16399063e-02 9.18892939e-02 9.21379731e-02 9.23859434e-02 9.26332047e-02 + 9.28797566e-02 9.31255989e-02 9.33707315e-02 9.36151540e-02 9.38588666e-02 + 9.41018690e-02 9.43441612e-02 9.45857433e-02 9.48266152e-02 9.50667771e-02 + 9.53062290e-02 9.55449711e-02 9.57830036e-02 9.60203266e-02 9.62569405e-02 + 9.64928454e-02 9.67280417e-02 9.69625298e-02 9.71963100e-02 9.74293827e-02 + 9.76617483e-02 9.78934074e-02 9.81243603e-02 9.83546076e-02 9.85841499e-02 + 9.88129878e-02 9.90411218e-02 9.92685525e-02 9.94952807e-02 9.97213070e-02 + 9.99466321e-02 1.00171257e-01 1.00395182e-01 1.00618408e-01 1.00840936e-01 + 1.01062766e-01 1.01283901e-01 1.01504340e-01 1.01724084e-01 1.01943134e-01 + 1.02161492e-01 1.02379158e-01 1.02596133e-01 1.02812418e-01 1.03028014e-01 + 1.03242923e-01 1.03457145e-01 1.03670682e-01 1.03883534e-01 1.04095702e-01 + 1.04307189e-01 1.04517994e-01 1.04728119e-01 1.04937566e-01 1.05146335e-01 + 1.05354428e-01 1.05561846e-01 1.05768590e-01 1.05974662e-01 1.06180062e-01 + 1.06384793e-01 1.06588855e-01 1.06792249e-01 1.06994978e-01 1.07197042e-01 + 1.07398443e-01 1.07599182e-01 1.07799261e-01 1.07998680e-01 1.08197442e-01 + 1.08395548e-01 1.08592999e-01 1.08789797e-01 1.08985943e-01 1.09181439e-01 + 1.09376286e-01 1.09570485e-01 1.09764039e-01 1.09956948e-01 1.10149214e-01 + 1.10340840e-01 1.10531825e-01 1.10722172e-01 1.10911883e-01 1.11100959e-01 + 1.11289401e-01 1.11477211e-01 1.11664391e-01 1.11850942e-01 1.12036866e-01 + 1.12222165e-01 1.12406840e-01 1.12590892e-01 1.12774325e-01 1.12957138e-01 + 1.13139333e-01 1.13320913e-01 1.13501880e-01 1.13682233e-01 1.13861976e-01 + 1.14041111e-01 1.14219637e-01 1.14397559e-01 1.14574876e-01 1.14751591e-01 + 1.14927705e-01 1.15103221e-01 1.15278139e-01 1.15452462e-01 1.15626191e-01 + 1.15799328e-01 1.15971875e-01 1.16143834e-01 1.16315205e-01 1.16485991e-01 + 1.16656194e-01 1.16825815e-01 1.16994856e-01 1.17163320e-01 1.17331206e-01 + 1.17498518e-01 1.17665257e-01 1.17831424e-01 1.17997022e-01 1.18162053e-01 + 1.18326517e-01 1.18490417e-01 1.18653754e-01 1.18816531e-01 1.18978749e-01 + 1.19140409e-01 1.19301514e-01 1.19462065e-01 1.19622064e-01 1.19781513e-01 + 1.19940414e-01 1.20098767e-01 1.20256576e-01 1.20413841e-01 1.20570565e-01 + 1.20726749e-01 1.20882395e-01 1.21037505e-01 1.21192080e-01 1.21346123e-01 + 1.21499635e-01 1.21652617e-01 1.21805072e-01 1.21957001e-01 1.22108406e-01 + 1.22259289e-01 1.22409651e-01 1.22559495e-01 1.22708821e-01 1.22857632e-01 + 1.23005930e-01 1.23153715e-01 1.23300991e-01 1.23447758e-01 1.23594019e-01 + 1.23739774e-01 1.23885027e-01 1.24029777e-01 1.24174028e-01 1.24317781e-01 + 1.24461038e-01 1.24603800e-01 1.24746069e-01 1.24887847e-01 1.25029136e-01 + 1.25169936e-01 1.25310251e-01 1.25450081e-01 1.25589428e-01 1.25728294e-01 + 1.25866681e-01 1.26004590e-01 1.26142024e-01 1.26278983e-01 1.26415469e-01 + 1.26551484e-01 1.26687030e-01 1.26822109e-01 1.26956721e-01 1.27090870e-01 + 1.27224555e-01 1.27357780e-01 1.27490545e-01 1.27622852e-01 1.27754704e-01 + 1.27886101e-01 1.28017045e-01 1.28147538e-01 1.28277582e-01 1.28407177e-01 + 1.28536327e-01 1.28665031e-01 1.28793293e-01 1.28921113e-01 1.29048493e-01 + 1.29175435e-01 1.29301941e-01 1.29428011e-01 1.29553648e-01 1.29678853e-01 + 1.29803627e-01 1.29927973e-01 1.30051892e-01 1.30175385e-01 1.30298454e-01 + 1.30421101e-01 1.30543327e-01 1.30665133e-01 1.30786522e-01 1.30907494e-01 + 1.31028051e-01 1.31148196e-01 1.31267929e-01 1.31387251e-01 1.31506165e-01 + 1.31624672e-01 1.31742773e-01 1.31860470e-01 1.31977765e-01 1.32094658e-01 + 1.32211152e-01 1.32327248e-01 1.32442947e-01 1.32558252e-01 1.32673162e-01 + 1.32787680e-01 1.32901808e-01 1.33015546e-01 1.33128897e-01 1.33241861e-01 + 1.33354441e-01 1.33466637e-01 1.33578451e-01 1.33689884e-01 1.33800939e-01 + 1.33911615e-01 1.34021916e-01 1.34131841e-01 1.34241394e-01 1.34350574e-01 + 1.34459383e-01 1.34567824e-01 1.34675896e-01 1.34783602e-01 1.34890944e-01 + 1.34997921e-01 1.35104536e-01 1.35210791e-01 1.35316685e-01 1.35422222e-01 + 1.35527402e-01 1.35632226e-01 1.35736697e-01 1.35840814e-01 1.35944580e-01 + 1.36047997e-01 1.36151064e-01 1.36253784e-01 1.36356158e-01 1.36458187e-01 + 1.36559873e-01 1.36661216e-01 1.36762219e-01 1.36862882e-01 1.36963207e-01 + 1.37063195e-01 1.37162847e-01 1.37262165e-01 1.37361150e-01 1.37459803e-01 + 1.37558126e-01 1.37656119e-01 1.37753784e-01 1.37851123e-01 1.37948136e-01 + 1.38044824e-01 1.38141190e-01 1.38237233e-01 1.38332957e-01 1.38428361e-01 + 1.38523446e-01 1.38618215e-01 1.38712668e-01 1.38806807e-01 1.38900633e-01 + 1.38994146e-01 1.39087349e-01 1.39180241e-01 1.39272826e-01 1.39365103e-01 + 1.39457074e-01 1.39548740e-01 1.39640102e-01 1.39731162e-01 1.39821920e-01 + 1.39912378e-01 1.40002537e-01 1.40092398e-01 1.40181961e-01 1.40271230e-01 + 1.40360203e-01 1.40448884e-01 1.40537272e-01 1.40625368e-01 1.40713175e-01 + 1.40800693e-01 1.40887923e-01 1.40974866e-01 1.41061523e-01 1.41147896e-01 + 1.41233986e-01 1.41319793e-01 1.41405319e-01 1.41490565e-01 1.41575532e-01 + 1.41660220e-01 1.41744632e-01 1.41828768e-01 1.41912628e-01 1.41996216e-01 + 1.42079530e-01 1.42162572e-01 1.42245344e-01 1.42327847e-01 1.42410081e-01 + 1.42492047e-01 1.42573747e-01 1.42655181e-01 1.42736351e-01 1.42817257e-01 + 1.42897901e-01 1.42978283e-01 1.43058405e-01 1.43138268e-01 1.43217872e-01 + 1.43297218e-01 1.43376309e-01 1.43455143e-01 1.43533723e-01 1.43612050e-01 + 1.43690124e-01 1.43767947e-01 1.43845519e-01 1.43922841e-01 1.43999914e-01 + 1.44076740e-01 1.44153319e-01 1.44229652e-01 1.44305740e-01 1.44381584e-01 + 1.44457185e-01 1.44532544e-01 1.44607662e-01 1.44682539e-01 1.44757177e-01 + 1.44831577e-01 1.44905739e-01 1.44979665e-01 1.45053355e-01 1.45126809e-01 + 1.45200031e-01 1.45273019e-01 1.45345774e-01 1.45418299e-01 1.45490593e-01 + 1.45562658e-01 1.45634494e-01 1.45706102e-01 1.45777484e-01 1.45848639e-01 + 1.45919569e-01 1.45990275e-01 1.46060758e-01 1.46131018e-01 1.46201056e-01 + 1.46270873e-01 1.46340470e-01 1.46409848e-01 1.46479008e-01 1.46547950e-01 + 1.46616675e-01 1.46685184e-01 1.46753479e-01 1.46821558e-01 1.46889425e-01 + 1.46957079e-01 1.47024520e-01 1.47091751e-01 1.47158772e-01 1.47225583e-01 + 1.47292185e-01 1.47358580e-01 1.47424768e-01 1.47490749e-01 1.47556524e-01 + 1.47622095e-01 1.47687462e-01 1.47752626e-01 1.47817587e-01 1.47882347e-01 + 1.19316516e-02 1.17837661e-02 1.16368916e-02 1.14910312e-02 1.13461881e-02 + 1.12023652e-02 1.10595657e-02 1.09177924e-02 1.07770486e-02 1.06373371e-02 + 1.04986608e-02 1.03610229e-02 1.02244262e-02 1.00888736e-02 9.95436796e-03 + 9.82091227e-03 9.68850936e-03 9.55716205e-03 9.42687318e-03 9.29764555e-03 + 9.16948195e-03 9.04238514e-03 8.91635788e-03 8.79140288e-03 8.66752287e-03 + 8.54472052e-03 8.42299850e-03 8.30235947e-03 8.18280604e-03 8.06434082e-03 + 7.94696640e-03 7.83068535e-03 7.71550020e-03 7.60141348e-03 7.48842769e-03 + 7.37654531e-03 7.26576880e-03 7.15610060e-03 7.04754311e-03 6.94009874e-03 + 6.83376985e-03 6.72855879e-03 6.62446789e-03 6.52149946e-03 6.41965576e-03 + 6.31893907e-03 6.21935162e-03 6.12089562e-03 6.02357326e-03 5.92738670e-03 + 5.83233810e-03 5.73842957e-03 5.64566320e-03 5.55404108e-03 5.46356524e-03 + 5.37423772e-03 5.28606051e-03 5.19903560e-03 5.11316493e-03 5.02845043e-03 + 4.94489402e-03 4.86249756e-03 4.78126291e-03 4.70119191e-03 4.62228636e-03 + 4.54454803e-03 4.46797870e-03 4.39258007e-03 4.31835387e-03 4.24530177e-03 + 4.17342543e-03 4.10272646e-03 4.03320649e-03 3.96486708e-03 3.89770979e-03 + 3.83173614e-03 3.76694764e-03 3.70334576e-03 3.64093194e-03 3.57970760e-03 + 3.51967415e-03 3.46083296e-03 3.40318535e-03 3.34673266e-03 3.29147617e-03 + 3.23741715e-03 3.18455682e-03 3.13289641e-03 3.08243708e-03 3.03318001e-03 + 2.98512631e-03 2.93827709e-03 2.89263342e-03 2.84819635e-03 2.80496690e-03 + 2.76294607e-03 2.72213481e-03 2.68253407e-03 2.64414475e-03 2.60696775e-03 + 2.57100391e-03 2.53625406e-03 2.50271900e-03 2.47039951e-03 2.43929633e-03 + 2.40941017e-03 2.38074173e-03 2.35329167e-03 2.32706061e-03 2.30204917e-03 + 2.27825792e-03 2.25568742e-03 2.23433817e-03 2.21421068e-03 2.19530540e-03 + 2.17762279e-03 2.16116324e-03 2.14592713e-03 2.13191482e-03 2.11912664e-03 + 2.10756286e-03 2.09722378e-03 2.08810961e-03 2.08022058e-03 2.07355687e-03 + 2.06811863e-03 2.06390598e-03 2.06091903e-03 2.05915784e-03 2.05862245e-03 + 2.05931288e-03 2.06122911e-03 2.06437109e-03 2.06873876e-03 2.07433201e-03 + 2.08115071e-03 2.08919471e-03 2.09846382e-03 2.10895782e-03 2.12067647e-03 + 2.13361950e-03 2.14778662e-03 2.16317748e-03 2.17979175e-03 2.19762903e-03 + 2.21668892e-03 2.23697097e-03 2.25847471e-03 2.28119965e-03 2.30514526e-03 + 2.33031099e-03 2.35669626e-03 2.38430046e-03 2.41312296e-03 2.44316308e-03 + 2.47442014e-03 2.50689342e-03 2.54058217e-03 2.57548561e-03 2.61160294e-03 + 2.64893333e-03 2.68747592e-03 2.72722982e-03 2.76819412e-03 2.81036787e-03 + 2.85375012e-03 2.89833986e-03 2.94413606e-03 2.99113769e-03 3.03934365e-03 + 3.08875285e-03 3.13936416e-03 3.19117640e-03 3.24418841e-03 3.29839896e-03 + 3.35380682e-03 3.41041071e-03 3.46820936e-03 3.52720143e-03 3.58738558e-03 + 3.64876043e-03 3.71132460e-03 3.77507665e-03 3.84001514e-03 3.90613858e-03 + 3.97344547e-03 4.04193428e-03 4.11160346e-03 4.18245143e-03 4.25447658e-03 + 4.32767727e-03 4.40205185e-03 4.47759865e-03 4.55431593e-03 4.63220199e-03 + 4.71125505e-03 4.79147333e-03 4.87285502e-03 4.95539830e-03 5.03910129e-03 + 5.12396213e-03 5.20997890e-03 5.29714966e-03 5.38547247e-03 5.47494535e-03 + 5.56556628e-03 5.65733324e-03 5.75024419e-03 5.84429703e-03 5.93948968e-03 + 6.03582001e-03 6.13328588e-03 6.23188511e-03 6.33161551e-03 6.43247487e-03 + 6.53446095e-03 6.63757148e-03 6.74180419e-03 6.84715676e-03 6.95362687e-03 + 7.06121216e-03 7.16991026e-03 7.27971878e-03 7.39063530e-03 7.50265737e-03 + 7.61578255e-03 7.73000833e-03 7.84533223e-03 7.96175172e-03 8.07926424e-03 + 8.19786724e-03 8.31755813e-03 8.43833428e-03 8.56019309e-03 8.68313189e-03 + 8.80714802e-03 8.93223879e-03 9.05840148e-03 9.18563337e-03 9.31393170e-03 + 9.44329371e-03 9.57371661e-03 9.70519759e-03 9.83773382e-03 9.97132246e-03 + 1.01059606e-02 1.02416455e-02 1.03783741e-02 1.05161435e-02 1.06549508e-02 + 1.07947931e-02 1.09356673e-02 1.10775705e-02 1.12204997e-02 1.13644517e-02 + 1.15094237e-02 1.16554125e-02 1.18024151e-02 1.19504282e-02 1.20994490e-02 + 1.22494741e-02 1.24005005e-02 1.25525250e-02 1.27055444e-02 1.28595555e-02 + 1.30145552e-02 1.31705401e-02 1.33275071e-02 1.34854528e-02 1.36443741e-02 + 1.38042677e-02 1.39651301e-02 1.41269582e-02 1.42897485e-02 1.44534978e-02 + 1.46182027e-02 1.47838598e-02 1.49504657e-02 1.51180170e-02 1.52865103e-02 + 1.54559422e-02 1.56263093e-02 1.57976080e-02 1.59698349e-02 1.61429866e-02 + 1.63170596e-02 1.64920502e-02 1.66679551e-02 1.68447707e-02 1.70224935e-02 + 1.72011198e-02 1.73806462e-02 1.75610691e-02 1.77423848e-02 1.79245899e-02 + 1.81076806e-02 1.82916533e-02 1.84765045e-02 1.86622305e-02 1.88488276e-02 + 1.90362922e-02 1.92246206e-02 1.94138091e-02 1.96038541e-02 1.97947518e-02 + 1.99864985e-02 2.01790905e-02 2.03725242e-02 2.05667957e-02 2.07619013e-02 + 2.09578372e-02 2.11545998e-02 2.13521852e-02 2.15505896e-02 2.17498093e-02 + 2.19498405e-02 2.21506794e-02 2.23523222e-02 2.25547650e-02 2.27580040e-02 + 2.29620355e-02 2.31668555e-02 2.33724603e-02 2.35788460e-02 2.37860087e-02 + 2.39939446e-02 2.42026499e-02 2.44121205e-02 2.46223528e-02 2.48333427e-02 + 2.50450864e-02 2.52575801e-02 2.54708198e-02 2.56848016e-02 2.58995216e-02 + 2.61149759e-02 2.63311606e-02 2.65480717e-02 2.67657054e-02 2.69840578e-02 + 2.72031248e-02 2.74229026e-02 2.76433871e-02 2.78645746e-02 2.80864610e-02 + 2.83090425e-02 2.85323149e-02 2.87562745e-02 2.89809172e-02 2.92062390e-02 + 2.94322361e-02 2.96589045e-02 2.98862402e-02 3.01142392e-02 3.03428976e-02 + 3.05722114e-02 3.08021766e-02 3.10327893e-02 3.12640455e-02 3.14959413e-02 + 3.17284726e-02 3.19616355e-02 3.21954260e-02 3.24298402e-02 3.26648740e-02 + 3.29005236e-02 3.31367848e-02 3.33736539e-02 3.36111267e-02 3.38491993e-02 + 3.40878677e-02 3.43271281e-02 3.45669763e-02 3.48074084e-02 3.50484206e-02 + 3.52900087e-02 3.55321689e-02 3.57748971e-02 3.60181895e-02 3.62620420e-02 + 3.65064508e-02 3.67514117e-02 3.69969210e-02 3.72429746e-02 3.74895686e-02 + 3.77366991e-02 3.79843621e-02 3.82325537e-02 3.84812698e-02 3.87305067e-02 + 3.89802604e-02 3.92305269e-02 3.94813024e-02 3.97325829e-02 3.99843644e-02 + 4.02366431e-02 4.04894151e-02 4.07426765e-02 4.09964234e-02 4.12506518e-02 + 4.15053579e-02 4.17605378e-02 4.20161876e-02 4.22723034e-02 4.25288815e-02 + 4.27859178e-02 4.30434086e-02 4.33013499e-02 4.35597380e-02 4.38185689e-02 + 4.40778389e-02 4.43375441e-02 4.45976807e-02 4.48582449e-02 4.51192328e-02 + 4.53806406e-02 4.56424645e-02 4.59047007e-02 4.61673455e-02 4.64303950e-02 + 4.66938455e-02 4.69576932e-02 4.72219342e-02 4.74865650e-02 4.77515816e-02 + 4.80169804e-02 4.82827576e-02 4.85489095e-02 4.88154324e-02 4.90823225e-02 + 4.93495761e-02 4.96171896e-02 4.98851592e-02 5.01534812e-02 5.04221520e-02 + 5.06911679e-02 5.09605252e-02 5.12302202e-02 5.15002494e-02 5.17706091e-02 + 5.20412956e-02 5.23123054e-02 5.25836347e-02 5.28552801e-02 5.31272378e-02 + 5.33995044e-02 5.36720762e-02 5.39449496e-02 5.42181211e-02 5.44915872e-02 + 5.47653442e-02 5.50393887e-02 5.53137171e-02 5.55883259e-02 5.58632116e-02 + 5.61383707e-02 5.64137997e-02 5.66894951e-02 5.69654535e-02 5.72416713e-02 + 5.75181451e-02 5.77948716e-02 5.80718471e-02 5.83490684e-02 5.86265320e-02 + 5.89042345e-02 5.91821725e-02 5.94603427e-02 5.97387415e-02 6.00173658e-02 + 6.02962120e-02 6.05752770e-02 6.08545573e-02 6.11340496e-02 6.14137506e-02 + 6.16936570e-02 6.19737655e-02 6.22540729e-02 6.25345758e-02 6.28152709e-02 + 6.30961552e-02 6.33772252e-02 6.36584778e-02 6.39399097e-02 6.42215178e-02 + 6.45032988e-02 6.47852496e-02 6.50673669e-02 6.53496477e-02 6.56320887e-02 + 6.59146868e-02 6.61974389e-02 6.64803419e-02 6.67633926e-02 6.70465880e-02 + 6.73299249e-02 6.76134004e-02 6.78970112e-02 6.81807545e-02 6.84646270e-02 + 6.87486259e-02 6.90327480e-02 6.93169904e-02 6.96013501e-02 6.98858240e-02 + 7.01704093e-02 7.04551029e-02 7.07399019e-02 7.10248033e-02 7.13098043e-02 + 7.15949019e-02 7.18800932e-02 7.21653753e-02 7.24507453e-02 7.27362004e-02 + 7.30217377e-02 7.33073544e-02 7.35930475e-02 7.38788144e-02 7.41646521e-02 + 7.44505580e-02 7.47365291e-02 7.50225627e-02 7.53086561e-02 7.55948066e-02 + 7.58810112e-02 7.61672674e-02 7.64535724e-02 7.67399235e-02 7.70263181e-02 + 7.73127534e-02 7.75992267e-02 7.78857354e-02 7.81722770e-02 7.84588486e-02 + 7.87454477e-02 7.90320718e-02 7.93187181e-02 7.96053841e-02 7.98920673e-02 + 8.01787651e-02 8.04654749e-02 8.07521941e-02 8.10389204e-02 8.13256510e-02 + 8.16123836e-02 8.18991157e-02 8.21858447e-02 8.24725683e-02 8.27592839e-02 + 8.30459891e-02 8.33326815e-02 8.36193586e-02 8.39060181e-02 8.41926576e-02 + 8.44792746e-02 8.47658669e-02 8.50524319e-02 8.53389675e-02 8.56254713e-02 + 8.59119408e-02 8.61983740e-02 8.64847683e-02 8.67711216e-02 8.70574315e-02 + 8.73436959e-02 8.76299124e-02 8.79160788e-02 8.82021929e-02 8.84882524e-02 + 8.87742552e-02 8.90601991e-02 8.93460819e-02 8.96319014e-02 8.99176554e-02 + 9.02033419e-02 9.04889586e-02 9.07745035e-02 9.10599745e-02 9.13453694e-02 + 9.16306861e-02 9.19159227e-02 9.22010770e-02 9.24861469e-02 9.27711305e-02 + 9.30560257e-02 9.33408305e-02 9.36255428e-02 9.39101607e-02 9.41946823e-02 + 9.44791055e-02 9.47634283e-02 9.50476489e-02 9.53317653e-02 9.56157755e-02 + 9.58996777e-02 9.61834699e-02 9.64671503e-02 9.67507170e-02 9.70341681e-02 + 9.73175018e-02 9.76007161e-02 9.78838094e-02 9.81667797e-02 9.84496252e-02 + 9.87323442e-02 9.90149348e-02 9.92973954e-02 9.95797240e-02 9.98619190e-02 + 1.00143979e-01 1.00425901e-01 1.00707685e-01 1.00989328e-01 1.01270829e-01 + 1.01552185e-01 1.01833397e-01 1.02114461e-01 1.02395376e-01 1.02676140e-01 + 1.02956752e-01 1.03237211e-01 1.03517513e-01 1.03797659e-01 1.04077646e-01 + 1.04357473e-01 1.04637138e-01 1.04916640e-01 1.05195977e-01 1.05475147e-01 + 1.05754150e-01 1.06032982e-01 1.06311644e-01 1.06590134e-01 1.06868449e-01 + 1.07146589e-01 1.07424552e-01 1.07702336e-01 1.07979941e-01 1.08257365e-01 + 1.08534605e-01 1.08811662e-01 1.09088533e-01 1.09365218e-01 1.09641714e-01 + 1.09918020e-01 1.10194135e-01 1.10470058e-01 1.10745788e-01 1.11021322e-01 + 1.11296660e-01 1.11571800e-01 1.11846741e-01 1.12121482e-01 1.12396021e-01 + 1.12670358e-01 1.12944490e-01 1.13218418e-01 1.13492138e-01 1.13765651e-01 + 1.14038955e-01 1.14312048e-01 1.14584930e-01 1.14857599e-01 1.15130055e-01 + 1.15402295e-01 1.15674319e-01 1.15946126e-01 1.16217714e-01 1.16489083e-01 + 1.16760231e-01 1.17031157e-01 1.17301860e-01 1.17572339e-01 1.17842593e-01 + 1.18112620e-01 1.18382420e-01 1.18651992e-01 1.18921334e-01 1.19190445e-01 + 1.19459326e-01 1.19727973e-01 1.19996387e-01 1.20264566e-01 1.20532510e-01 + 1.20800216e-01 1.21067686e-01 1.21334917e-01 1.21601908e-01 1.21868658e-01 + 1.22135167e-01 1.22401434e-01 1.22667458e-01 1.22933237e-01 1.23198771e-01 + 1.23464058e-01 1.23729099e-01 1.23993892e-01 1.24258436e-01 1.24522731e-01 + 1.24786775e-01 1.25050567e-01 1.25314108e-01 1.25577395e-01 1.25840428e-01 + 1.26103207e-01 1.26365730e-01 1.26627997e-01 1.26890006e-01 1.27151758e-01 + 1.27413251e-01 1.27674484e-01 1.27935457e-01 1.28196169e-01 1.28456619e-01 + 1.28716807e-01 1.28976731e-01 1.29236391e-01 1.29495787e-01 1.29754917e-01 + 1.30013780e-01 1.30272377e-01 1.30530707e-01 1.30788768e-01 1.31046560e-01 + 1.31304083e-01 1.31561335e-01 1.31818316e-01 1.32075026e-01 1.32331463e-01 + 1.32587628e-01 1.32843519e-01 1.33099136e-01 1.33354479e-01 1.33609546e-01 + 1.33864337e-01 1.34118851e-01 1.34373088e-01 1.34627048e-01 1.34880730e-01 + 1.35134132e-01 1.35387255e-01 1.35640099e-01 1.35892661e-01 1.36144943e-01 + 1.36396943e-01 1.36648661e-01 1.36900097e-01 1.37151249e-01 1.37402118e-01 + 1.37652702e-01 1.37903003e-01 1.38153017e-01 1.38402747e-01 1.38652190e-01 + 1.38901347e-01 1.39150217e-01 1.39398799e-01 1.39647094e-01 1.39895100e-01 + 1.40142817e-01 1.40390246e-01 1.40637384e-01 1.40884233e-01 1.41130791e-01 + 1.41377059e-01 1.41623035e-01 1.41868719e-01 1.42114112e-01 1.42359212e-01 + 1.42604020e-01 1.42848534e-01 1.43092755e-01 1.43336681e-01 1.43580314e-01 + 1.43823652e-01 1.44066695e-01 1.44309444e-01 1.44551896e-01 1.44794053e-01 + 1.45035913e-01 1.45277477e-01 1.45518744e-01 1.45759714e-01 1.46000386e-01 + 1.46240761e-01 1.46480838e-01 1.46720616e-01 1.46960096e-01 1.47199277e-01 + 1.47438159e-01 1.47676742e-01 1.47915025e-01 1.48153009e-01 1.48390692e-01 + 1.48628075e-01 1.48865157e-01 1.49101939e-01 1.49338419e-01 1.49574598e-01 + 1.49810476e-01 1.50046052e-01 1.50281327e-01 1.50516299e-01 1.50750969e-01 + 1.50985337e-01 1.51219402e-01 1.51453164e-01 1.51686623e-01 1.51919779e-01 + 1.52152632e-01 1.52385181e-01 1.52617427e-01 1.52849368e-01 1.53081006e-01 + 1.53312340e-01 1.53543370e-01 1.53774095e-01 1.54004516e-01 1.54234632e-01 + 1.54464444e-01 1.54693950e-01 1.54923152e-01 1.55152049e-01 1.55380640e-01 + 1.55608926e-01 1.55836907e-01 1.56064583e-01 1.56291953e-01 1.56519017e-01 + 1.56745775e-01 1.56972228e-01 1.57198375e-01 1.57424216e-01 1.57649751e-01 + 1.57874980e-01 1.58099903e-01 1.58324520e-01 1.58548831e-01 1.58772835e-01 + 1.58996533e-01 1.59219925e-01 1.59443010e-01 1.59665790e-01 1.59888262e-01 + 1.60110429e-01 1.60332289e-01 1.60553842e-01 1.60775089e-01 1.60996030e-01 + 1.61216664e-01 1.61436992e-01 1.61657013e-01 1.61876728e-01 1.62096136e-01 + 1.62315238e-01 1.62534034e-01 1.62752523e-01 1.62970706e-01 1.63188582e-01 + 1.63406152e-01 1.63623416e-01 1.63840374e-01 1.64057026e-01 1.64273371e-01 + 1.64489411e-01 1.64705144e-01 1.64920571e-01 1.65135693e-01 1.65350508e-01 + 1.65565018e-01 1.65779222e-01 1.65993121e-01 1.66206714e-01 1.66420001e-01 + 1.66632983e-01 1.66845660e-01 1.67058031e-01 1.67270097e-01 1.67481858e-01 + 1.67693314e-01 1.67904465e-01 1.68115312e-01 1.68325854e-01 1.68536091e-01 + 1.68746023e-01 1.68955652e-01 1.69164976e-01 1.69373996e-01 1.69582712e-01 + 1.69791124e-01 1.69999232e-01 1.70207037e-01 1.70414538e-01 1.70621735e-01 + 1.70828630e-01 1.71035221e-01 1.71241510e-01 1.71447495e-01 1.71653178e-01 + 1.71858558e-01 1.72063636e-01 1.72268412e-01 1.72472886e-01 1.72677057e-01 + 1.72880927e-01 1.73084495e-01 1.73287762e-01 1.73490728e-01 1.73693392e-01 + 1.73895756e-01 1.74097819e-01 1.74299581e-01 1.74501043e-01 1.74702204e-01 + 1.74903066e-01 1.75103627e-01 1.75303889e-01 1.75503852e-01 1.75703515e-01 + 1.75902879e-01 1.76101944e-01 1.76300710e-01 1.76499178e-01 1.76697348e-01 + 1.76895219e-01 1.77092792e-01 1.77290068e-01 1.77487046e-01 1.77683727e-01 + 1.77880111e-01 1.78076198e-01 1.78271989e-01 1.78467483e-01 1.78662680e-01 + 1.78857582e-01 1.79052188e-01 1.79246498e-01 1.79440514e-01 1.79634234e-01 + 1.79827659e-01 1.80020789e-01 1.80213625e-01 1.80406167e-01 1.80598415e-01 + 1.80790370e-01 1.80982031e-01 1.81173398e-01 1.81364473e-01 1.81555255e-01 + 1.81745745e-01 1.81935942e-01 1.82125848e-01 1.82315462e-01 1.82504784e-01 + 1.82693815e-01 1.82882555e-01 1.83071004e-01 1.83259163e-01 1.83447032e-01 + 1.83634611e-01 1.83821900e-01 1.84008900e-01 1.84195611e-01 1.84382033e-01 + 1.84568166e-01 1.84754012e-01 1.84939569e-01 1.85124838e-01 1.85309820e-01 + 1.85494514e-01 1.85678922e-01 1.85863043e-01 1.86046878e-01 1.86230426e-01 + 1.86413689e-01 1.86596666e-01 1.86779358e-01 1.86961765e-01 1.87143887e-01 + 1.87325725e-01 1.87507279e-01 1.87688549e-01 1.87869536e-01 1.88050239e-01 + 1.88230659e-01 1.88410797e-01 1.88590653e-01 1.88770226e-01 1.88949518e-01 + 1.89128528e-01 1.89307257e-01 1.89485705e-01 1.89663873e-01 1.89841761e-01 + 1.90019368e-01 1.90196696e-01 1.90373745e-01 1.90550515e-01 1.90727005e-01 + 1.90903218e-01 1.91079153e-01 1.91254809e-01 1.91430189e-01 1.91605291e-01 + 1.91780116e-01 1.91954665e-01 1.92128937e-01 1.92302934e-01 1.92476655e-01 + 1.92650101e-01 1.92823272e-01 1.92996169e-01 1.93168791e-01 1.93341139e-01 + 1.93513213e-01 1.93685014e-01 1.93856543e-01 1.94027798e-01 1.94198781e-01 + 1.94369492e-01 1.94539932e-01 1.94710100e-01 1.94879997e-01 1.95049623e-01 + 1.95218979e-01 1.95388065e-01 1.95556881e-01 1.95725428e-01 1.95893706e-01 + 1.96061715e-01 1.96229455e-01 1.96396928e-01 1.96564133e-01 1.96731070e-01 + 1.96897741e-01 1.97064144e-01 1.97230282e-01 1.97396153e-01 1.97561758e-01 + 1.97727099e-01 1.97892174e-01 1.98056984e-01 1.98221530e-01 1.98385813e-01 + 1.98549831e-01 1.98713586e-01 1.98877078e-01 1.99040308e-01 1.99203275e-01 + 1.99365980e-01 1.99528424e-01 1.99690606e-01 1.99852528e-01 2.00014188e-01 + 2.00175589e-01 2.00336730e-01 2.00497611e-01 2.00658233e-01 2.00818596e-01 + 2.00978701e-01 2.01138547e-01 2.01298136e-01 2.01457467e-01 2.01616542e-01 + 2.01775359e-01 2.01933920e-01 2.02092225e-01 2.02250274e-01 2.02408068e-01 + 2.02565607e-01 2.02722891e-01 2.02879921e-01 2.03036697e-01 2.03193220e-01 + 2.03349489e-01 2.03505505e-01 2.03661269e-01 2.03816780e-01 2.03972040e-01 + 2.04127048e-01 2.04281805e-01 2.04436312e-01 2.04590568e-01 2.04744573e-01 + 2.04898329e-01 2.05051836e-01 2.05205094e-01 2.05358103e-01 2.05510864e-01 + 2.05663377e-01 2.05815642e-01 2.05967660e-01 2.06119432e-01 2.06270956e-01 + 2.06422235e-01 2.06573268e-01 2.06724055e-01 2.06874598e-01 2.07024895e-01 + 2.07174948e-01 2.07324757e-01 2.07474323e-01 2.07623645e-01 2.07772725e-01 + 2.07921561e-01 2.08070156e-01 2.08218508e-01 2.08366619e-01 2.08514489e-01 + 2.08662119e-01 2.08809507e-01 2.08956656e-01 2.09103565e-01 2.09250235e-01 + 2.09396665e-01 2.09542857e-01 2.09688811e-01 2.09834526e-01 2.09980005e-01 + 2.10125246e-01 2.10270250e-01 2.10415017e-01 2.10559549e-01 2.10703844e-01 + 2.10847905e-01 2.10991730e-01 2.11135320e-01 2.11278676e-01 2.11421799e-01 + 2.11564687e-01 2.11707342e-01 2.11849765e-01 2.11991955e-01 2.12133912e-01 + 2.12275638e-01 2.12417132e-01 2.12558395e-01 2.12699428e-01 2.12840230e-01 + 2.12980802e-01 2.13121144e-01 2.13261257e-01 2.13401141e-01 2.13540796e-01 + 2.13680223e-01 2.13819422e-01 2.13958394e-01 2.14097138e-01 2.14235656e-01 + 2.14373947e-01 2.14512011e-01 2.14649851e-01 2.14787464e-01 2.14924853e-01 + 2.15062017e-01 2.15198957e-01 2.15335672e-01 2.15472164e-01 2.15608433e-01 + 2.15744479e-01 2.15880302e-01 2.16015903e-01 2.16151282e-01 2.16286440e-01 + 2.16421376e-01 2.16556092e-01 2.16690587e-01 2.16824862e-01 2.16958918e-01 + 2.17092754e-01 2.17226371e-01 2.17359769e-01 2.17492949e-01 2.17625911e-01 + 2.17758656e-01 2.17891183e-01 2.18023493e-01 2.18155587e-01 2.18287464e-01 + 2.18419126e-01 2.18550572e-01 2.18681803e-01 2.18812819e-01 2.18943621e-01 + 2.19074208e-01 2.19204582e-01 2.19334742e-01 2.19464690e-01 2.19594424e-01 + 2.19723946e-01 2.19853257e-01 2.19982355e-01 2.20111242e-01 2.20239919e-01 + 2.20368384e-01 2.20496640e-01 2.20624685e-01 2.20752521e-01 2.20880148e-01 + 2.21007566e-01 2.21134775e-01 2.21261776e-01 2.21388569e-01 2.21515155e-01 + 2.21641533e-01 2.21767705e-01 2.21893670e-01 2.22019429e-01 2.22144983e-01 + 2.22270331e-01 2.22395473e-01 2.22520411e-01 2.22645145e-01 2.22769675e-01 + 2.22894000e-01 2.23018123e-01 2.23142042e-01 2.23265759e-01 2.23389273e-01 + 2.23512586e-01 2.23635696e-01 2.23758606e-01 2.23881314e-01 2.24003822e-01 + 2.24126129e-01 2.24248236e-01 2.24370144e-01 2.24491852e-01 2.24613362e-01 + 2.24734673e-01 2.24855785e-01 2.24976700e-01 2.25097417e-01 2.25217936e-01 + 2.25338259e-01 2.25458385e-01 2.25578315e-01 2.25698048e-01 2.25817587e-01 + 2.25936930e-01 2.26056078e-01 2.26175031e-01 2.26293790e-01 2.26412355e-01 + 2.26530727e-01 2.26648905e-01 2.26766890e-01 2.26884683e-01 2.27002283e-01 + 2.27119691e-01 2.27236908e-01 2.27353934e-01 2.27470768e-01 2.27587412e-01 + 2.27703865e-01 2.27820129e-01 2.27936203e-01 2.28052087e-01 2.28167783e-01 + 2.28283290e-01 2.28398608e-01 2.28513738e-01 2.28628681e-01 2.28743437e-01 + 2.28858005e-01 2.28972386e-01 2.29086581e-01 2.29200591e-01 2.29314414e-01 + 2.29428052e-01 2.29541504e-01 2.29654772e-01 2.29767856e-01 2.29880755e-01 + 2.29993470e-01 2.30106002e-01 2.30218351e-01 2.30330517e-01 2.30442500e-01 + 2.30554301e-01 2.30665921e-01 2.30777358e-01 2.30888614e-01 2.30999690e-01 + 2.31110584e-01 2.31221299e-01 2.31331833e-01 2.31442188e-01 2.31552363e-01 + 2.31662359e-01 2.31772176e-01 2.31881815e-01 2.31991276e-01 2.32100559e-01 + 2.32209665e-01 2.32318593e-01 2.32427344e-01 2.32535919e-01 2.32644318e-01 + 2.32752540e-01 2.32860587e-01 2.32968459e-01 2.33076155e-01 2.33183677e-01 + 2.33291025e-01 2.33398198e-01 2.33505198e-01 2.33612024e-01 2.33718676e-01 + 2.33825157e-01 2.33931464e-01 2.34037599e-01 2.34143562e-01 2.34249354e-01 + 2.34354974e-01 2.34460423e-01 2.34565702e-01 2.34670810e-01 2.34775748e-01 + 2.34880516e-01 2.34985114e-01 2.35089544e-01 2.35193804e-01 2.35297896e-01 + 2.35401819e-01 2.35505574e-01 2.35609162e-01 2.35712582e-01 2.35815835e-01 + 2.35918921e-01 2.36021841e-01 2.36124594e-01 2.36227182e-01 2.36329603e-01 + 2.36431860e-01 2.36533951e-01 2.36635878e-01 2.36737640e-01 2.36839238e-01 + 2.36940672e-01 2.37041942e-01 2.37143049e-01 2.37243994e-01 2.37344775e-01 + 2.37445394e-01 2.37545851e-01 2.37646146e-01 2.37746279e-01 2.37846251e-01 + 2.37946062e-01 2.38045713e-01 2.38145203e-01 2.38244533e-01 2.38343703e-01 + 2.38442713e-01 2.38541565e-01 2.38640257e-01 2.38738790e-01 2.38837166e-01 + 2.38935383e-01 2.39033442e-01 2.39131344e-01 2.39229088e-01 2.39326676e-01 + 2.39424106e-01 2.39521381e-01 2.39618499e-01 2.39715461e-01 2.39812268e-01 + 2.39908919e-01 2.40005416e-01 2.40101757e-01 2.40197944e-01 2.40293977e-01 + 2.40389856e-01 2.40485582e-01 2.40581154e-01 2.40676573e-01 2.40771839e-01 + 2.40866953e-01 2.40961914e-01 2.41056724e-01 2.41151382e-01 2.41245888e-01 + 2.41340243e-01 2.41434447e-01 2.41528501e-01 2.41622404e-01 2.41716158e-01 + 2.41809761e-01 2.41903215e-01 2.41996520e-01 2.42089675e-01 2.42182682e-01 + 2.42275541e-01 2.42368251e-01 2.42460813e-01 2.42553228e-01 2.42645496e-01 + 2.42737616e-01 2.42829589e-01 2.42921416e-01 2.43013097e-01 2.43104631e-01 + 2.43196020e-01 2.43287263e-01 2.43378361e-01 2.43469314e-01 2.43560122e-01 + 2.43650786e-01 2.43741306e-01 2.43831681e-01 2.43921913e-01 2.44012001e-01 + 2.44101947e-01 2.44191749e-01 2.44281409e-01 2.44370926e-01 2.44460302e-01 + 2.44549535e-01 2.44638627e-01 2.44727577e-01 2.44816386e-01 2.44905055e-01 + 2.44993583e-01 2.45081970e-01 2.45170218e-01 2.45258325e-01 2.45346293e-01 + 2.45434122e-01 2.45521812e-01 2.45609362e-01 2.45696775e-01 2.45784049e-01 + 2.45871185e-01 2.45958183e-01 2.46045043e-01 2.46131766e-01 2.46218353e-01 + 2.46304802e-01 2.46391115e-01 2.46477291e-01 2.46563332e-01 2.46649236e-01 + 2.46735006e-01 2.46820639e-01 2.46906138e-01 2.46991502e-01 2.47076731e-01 + 2.47161826e-01 2.47246787e-01 2.47331614e-01 2.47416307e-01 2.47500867e-01 + 2.47585294e-01 2.47669588e-01 2.47753749e-01 2.47837778e-01 2.47921675e-01 + 2.48005440e-01 2.48089073e-01 2.48172575e-01 2.48255945e-01 2.48339185e-01 + 2.48422294e-01 2.48505272e-01 2.48588120e-01 2.48670839e-01 2.48753427e-01 + 2.48835886e-01 2.48918215e-01 2.49000416e-01 2.49082487e-01 2.49164431e-01 + 2.49246245e-01 2.49327932e-01 2.49409490e-01 2.49490922e-01 2.49572225e-01 + 2.49653402e-01 2.49734451e-01 2.49815374e-01 2.49896170e-01 2.49976840e-01 + 2.50057384e-01 2.50137802e-01 2.50218094e-01 2.50298261e-01 2.50378303e-01 + 2.50458221e-01 2.50538013e-01 2.50617681e-01 2.50697225e-01 2.50776645e-01 + 2.50855941e-01 2.50935113e-01 2.51014162e-01 2.51093088e-01 2.51171892e-01 + 2.51250572e-01 2.51329130e-01 2.51407566e-01 2.51485880e-01 2.51564073e-01 + 2.51642143e-01 2.51720093e-01 2.51797921e-01 2.51875629e-01 2.51953216e-01 + 2.52030682e-01 2.52108028e-01 2.52185254e-01 2.52262361e-01 2.52339348e-01 + 2.52416215e-01 2.52492964e-01 2.52569593e-01 2.52646104e-01 2.52722497e-01 + 2.52798771e-01 2.52874927e-01 2.52950965e-01 2.53026886e-01 2.53102689e-01 + 2.53178375e-01 2.53253944e-01 2.53329397e-01 2.53404733e-01 2.53479952e-01 + 2.53555056e-01 2.53630043e-01 2.53704915e-01 2.53779671e-01 2.53854312e-01 + 2.53928839e-01 2.54003250e-01 2.54077546e-01 2.54151728e-01 2.54225796e-01 + 2.54299750e-01 2.54373590e-01 2.54447316e-01 2.54520930e-01 2.54594429e-01 + 2.54667816e-01 2.54741090e-01 2.54814252e-01 2.54887301e-01 2.54960238e-01 + 2.55033063e-01 2.55105776e-01 2.55178378e-01 2.55250868e-01 2.55323247e-01 + 2.55395516e-01 2.55467673e-01 2.55539720e-01 2.55611657e-01 2.55683483e-01 + 2.55755200e-01 2.55826806e-01 2.55898304e-01 2.55969692e-01 2.56040970e-01 + 2.56112140e-01 2.56183201e-01 2.56254154e-01 2.56324998e-01 2.56395734e-01 + 2.56466362e-01 2.56536882e-01 2.56607295e-01 2.56677600e-01 2.56747798e-01 + 2.56817889e-01 2.56887874e-01 2.56957752e-01 2.57027523e-01 2.57097188e-01 + 2.57166747e-01 2.57236200e-01 2.57305548e-01 2.57374790e-01 2.57443927e-01 + 2.57512959e-01 2.57581886e-01 2.57650709e-01 2.57719427e-01 2.57788040e-01 + 2.57856550e-01 2.57924955e-01 2.57993257e-01 2.58061455e-01 2.58129550e-01 + 2.58197542e-01 2.58265431e-01 2.58333217e-01 2.58400900e-01 2.58468481e-01 + 2.58535960e-01 2.58603336e-01 2.58670611e-01 2.58737784e-01 2.58804856e-01 + 2.58871826e-01 2.58938695e-01 2.59005463e-01 2.59072131e-01 2.59138697e-01 + 2.59205164e-01 2.59271530e-01 2.59337796e-01 2.59403962e-01 2.59470029e-01 + 2.59535996e-01 2.59601864e-01 2.59667633e-01 2.59733302e-01 2.59798873e-01 + 2.59864345e-01 2.59929719e-01 2.59994995e-01 2.60060172e-01 2.60125252e-01 + 2.60190234e-01 2.60255118e-01 2.60319905e-01 2.60384595e-01 2.60449188e-01 + 2.60513684e-01 2.60578083e-01 2.60642386e-01 2.60706593e-01 2.60770703e-01 + 2.60834718e-01 2.60898636e-01 2.60962459e-01 2.61026187e-01 2.61089819e-01 + 2.61153356e-01 2.61216799e-01 2.61280146e-01 2.61343399e-01 2.61406557e-01 + 2.61469622e-01 2.61532592e-01 2.61595468e-01 2.61658250e-01 2.61720939e-01 + 2.61783535e-01 2.61846037e-01 2.61908446e-01 2.61970763e-01 2.62032986e-01 + 2.62095117e-01 2.62157156e-01 2.62219102e-01 2.62280956e-01 2.62342719e-01 + 2.62404389e-01 2.62465968e-01 2.62527456e-01 2.62588852e-01 2.62650158e-01 + 2.62711372e-01 2.62772496e-01 2.62833529e-01 2.62894471e-01 2.62955324e-01 + 2.63016086e-01 2.63076758e-01 2.63137341e-01 2.63197833e-01 2.63258237e-01 + 2.63318551e-01 2.63378776e-01 2.63438912e-01 2.63498959e-01 2.63558918e-01 + 2.63618788e-01 2.63678569e-01 2.63738263e-01 2.63797868e-01 2.63857386e-01 + 2.63916816e-01 2.63976158e-01 2.64035413e-01 2.64094581e-01 2.64153661e-01 + 2.64212655e-01 2.64271562e-01 2.64330382e-01 2.64389116e-01 2.64447763e-01 + 2.64506324e-01 2.64564800e-01 2.64623189e-01 2.64681493e-01 2.64739711e-01 + 2.64797844e-01 2.64855892e-01 2.64913854e-01 2.64971732e-01 2.65029524e-01 + 2.65087233e-01 2.65144856e-01 2.65202396e-01 2.65259851e-01 2.65317222e-01 + 2.65374509e-01 2.65431713e-01 2.65488833e-01 2.65545869e-01 2.65602822e-01 + 2.65659692e-01 2.65716480e-01 2.65773184e-01 2.65829805e-01 2.65886344e-01 + 2.65942801e-01 2.65999175e-01 2.66055468e-01 2.66111678e-01 2.66167806e-01 + 2.66223853e-01 2.66279819e-01 2.66335703e-01 2.66391505e-01 2.66447227e-01 + 2.66502868e-01 2.66558427e-01 2.66613907e-01 2.66669305e-01 2.66724624e-01 + 2.66779862e-01 2.66835020e-01 2.66890098e-01 2.66945096e-01 2.67000015e-01 + 2.67054854e-01 2.67109613e-01 2.67164294e-01 2.67218895e-01 2.67273418e-01 + 2.67327861e-01 2.67382226e-01 2.67436512e-01 2.67490720e-01 2.67544850e-01 + 2.67598902e-01 2.67652875e-01 2.67706771e-01 2.67760589e-01 2.67814330e-01 + 2.67867993e-01 2.67921578e-01 2.67975087e-01 2.68028519e-01 2.68081873e-01 + 2.68135151e-01 2.68188352e-01 2.68241477e-01 2.68294526e-01 2.68347498e-01 + 2.68400394e-01 2.68453214e-01 2.68505959e-01 2.68558628e-01 2.68611221e-01 + 2.68663738e-01 2.68716181e-01 2.68768548e-01 2.68820841e-01 2.68873058e-01 + 2.68925201e-01 2.68977269e-01 2.69029263e-01 2.69081182e-01 2.69133027e-01 + 2.69184798e-01 2.69236495e-01 2.69288118e-01 2.69339668e-01 2.69391143e-01 + 2.69442546e-01 2.69493875e-01 2.69545131e-01 2.69596314e-01 2.69647424e-01 + 2.69698461e-01 2.69749425e-01 2.69800317e-01 2.69851137e-01 2.69901884e-01 + 2.69952559e-01 2.70003162e-01 2.70053693e-01 2.70104153e-01 2.70154540e-01 + 2.70204856e-01 2.70255101e-01 2.70305274e-01 2.70355377e-01 2.70405408e-01 + 2.70455368e-01 2.70505258e-01 2.70555077e-01 2.70604825e-01 2.70654503e-01 + 2.70704110e-01 2.70753648e-01 2.70803115e-01 2.70852513e-01 2.70901840e-01 + 2.70951098e-01 2.71000287e-01 2.71049406e-01 2.71098455e-01 2.71147436e-01 + 2.71196347e-01 2.71245190e-01 2.71293963e-01 2.71342668e-01 2.71391304e-01 + 2.71439872e-01 2.71488372e-01 2.71536803e-01 2.71585166e-01 2.71633461e-01 + 2.71681688e-01 2.71729848e-01 2.71777939e-01 2.71825964e-01 2.71873921e-01 + 2.71921810e-01 2.71969632e-01 2.72017388e-01 2.72065076e-01 2.72112698e-01 + 2.72160252e-01 2.72207741e-01 2.72255162e-01 2.72302518e-01 2.72349807e-01 + 2.72397030e-01 2.72444187e-01 2.72491278e-01 2.72538303e-01 2.72585263e-01 + 2.72632157e-01 2.72678985e-01 2.72725748e-01 2.72772446e-01 2.72819079e-01 + 2.72865647e-01 2.72912150e-01 2.72958588e-01 2.73004962e-01 2.73051271e-01 + 2.73097516e-01 2.73143696e-01 2.73189812e-01 2.73235864e-01 2.73281852e-01 + 2.73327776e-01 2.73373636e-01 2.73419432e-01 2.73465166e-01 2.73510835e-01 + 2.73556441e-01 2.73601984e-01 2.73647464e-01 2.73692881e-01 2.73738235e-01 + 2.73783526e-01 2.73828755e-01 2.73873921e-01 2.73919024e-01 2.73964065e-01 + 2.74009044e-01 2.74053961e-01 2.74098815e-01 2.74143608e-01 2.74188339e-01 + 2.74233008e-01 2.74277616e-01 2.74322162e-01 2.74366646e-01 2.74411070e-01 + 2.74455432e-01 2.74499733e-01 2.74543973e-01 2.74588152e-01 2.74632270e-01 + 2.74676328e-01 2.74720325e-01 2.74764262e-01 2.74808138e-01 2.74851954e-01 + 2.74895710e-01 2.74939406e-01 2.74983042e-01 2.75026618e-01 2.75070135e-01 + 2.75113591e-01 2.75156988e-01 2.75200326e-01 2.75243604e-01 2.75286824e-01 + 2.75329984e-01 2.75373085e-01 2.75416127e-01 2.75459110e-01 2.75502034e-01 + 2.75544900e-01 2.75587707e-01 2.75630456e-01 2.75673147e-01 2.75715779e-01 + 2.75758353e-01 2.75800869e-01 2.75843328e-01 2.75885728e-01 2.75928070e-01 + 2.75970355e-01 2.76012583e-01 2.76054753e-01 2.76096866e-01 2.76138921e-01 + 2.76180919e-01 2.76222860e-01 2.76264745e-01 2.76306572e-01 2.76348342e-01 + 2.76390056e-01 2.76431714e-01 2.76473315e-01 2.76514859e-01 2.76556347e-01 + 2.76597779e-01 2.76639155e-01 2.76680475e-01 2.76721739e-01 2.76762947e-01 + 2.76804100e-01 2.76845197e-01 2.76886238e-01 2.76927224e-01 2.76968154e-01 + 2.77009030e-01 2.77049850e-01 2.77090615e-01 2.77131325e-01 2.77171980e-01 + 2.77212581e-01 2.77253126e-01 2.77293617e-01 2.77334054e-01 2.77374436e-01 + 2.77414764e-01 2.77455038e-01 2.77495257e-01 2.77535423e-01 2.77575534e-01 + 2.77615592e-01 2.77655596e-01 2.77695546e-01 2.77735443e-01 2.77775286e-01 + 2.77815076e-01 2.77854812e-01 2.77894495e-01 2.77934125e-01 2.77973702e-01 + 2.78013226e-01 2.78052697e-01 2.78092115e-01 2.78131481e-01 2.78170794e-01 + 2.78210054e-01 2.78249262e-01 2.78288418e-01 2.78327521e-01 2.78366572e-01 + 2.78405571e-01 2.78444519e-01 2.78483414e-01 2.78522257e-01 2.78561049e-01 + 2.78599789e-01 2.78638477e-01 2.78677114e-01 2.78715700e-01 2.78754234e-01 + 2.78792717e-01 2.78831149e-01 2.78869530e-01 2.78907859e-01 2.78946138e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.19316516e-02 1.17837661e-02 1.16368916e-02 1.14910312e-02 1.13461881e-02 + 1.12023652e-02 1.10595657e-02 1.09177924e-02 1.07770486e-02 1.06373371e-02 + 1.04986608e-02 1.03610229e-02 1.02244262e-02 1.00888736e-02 9.95436796e-03 + 9.82091227e-03 9.68850936e-03 9.55716205e-03 9.42687318e-03 9.29764555e-03 + 9.16948195e-03 9.04238514e-03 8.91635788e-03 8.79140288e-03 8.66752287e-03 + 8.54472052e-03 8.42299850e-03 8.30235947e-03 8.18280604e-03 8.06434082e-03 + 7.94696640e-03 7.83068535e-03 7.71550020e-03 7.60141348e-03 7.48842769e-03 + 7.37654531e-03 7.26576880e-03 7.15610060e-03 7.04754311e-03 6.94009874e-03 + 6.83376985e-03 6.72855879e-03 6.62446789e-03 6.52149946e-03 6.41965576e-03 + 6.31893907e-03 6.21935162e-03 6.12089562e-03 6.02357326e-03 5.92738670e-03 + 5.83233810e-03 5.73842957e-03 5.64566320e-03 5.55404108e-03 5.46356524e-03 + 5.37423772e-03 5.28606051e-03 5.19903560e-03 5.11316493e-03 5.02845043e-03 + 4.94489402e-03 4.86249756e-03 4.78126291e-03 4.70119191e-03 4.62228636e-03 + 4.54454803e-03 4.46797870e-03 4.39258007e-03 4.31835387e-03 4.24530177e-03 + 4.17342543e-03 4.10272646e-03 4.03320649e-03 3.96486708e-03 3.89770979e-03 + 3.83173614e-03 3.76694764e-03 3.70334576e-03 3.64093194e-03 3.57970760e-03 + 3.51967415e-03 3.46083296e-03 3.40318535e-03 3.34673266e-03 3.29147617e-03 + 3.23741715e-03 3.18455682e-03 3.13289641e-03 3.08243708e-03 3.03318001e-03 + 2.98512631e-03 2.93827709e-03 2.89263342e-03 2.84819635e-03 2.80496690e-03 + 2.76294607e-03 2.72213481e-03 2.68253407e-03 2.64414475e-03 2.60696775e-03 + 2.57100391e-03 2.53625406e-03 2.50271900e-03 2.47039951e-03 2.43929633e-03 + 2.40941017e-03 2.38074173e-03 2.35329167e-03 2.32706061e-03 2.30204917e-03 + 2.27825792e-03 2.25568742e-03 2.23433817e-03 2.21421068e-03 2.19530540e-03 + 2.17762279e-03 2.16116324e-03 2.14592713e-03 2.13191482e-03 2.11912664e-03 + 2.10756286e-03 2.09722378e-03 2.08810961e-03 2.08022058e-03 2.07355687e-03 + 2.06811863e-03 2.06390598e-03 2.06091903e-03 2.05915784e-03 2.05862245e-03 + 2.05931288e-03 2.06122911e-03 2.06437109e-03 2.06873876e-03 2.07433201e-03 + 2.08115071e-03 2.08919471e-03 2.09846382e-03 2.10895782e-03 2.12067647e-03 + 2.13361950e-03 2.14778662e-03 2.16317748e-03 2.17979175e-03 2.19762903e-03 + 2.21668892e-03 2.23697097e-03 2.25847471e-03 2.28119965e-03 2.30514526e-03 + 2.33031099e-03 2.35669626e-03 2.38430046e-03 2.41312296e-03 2.44316308e-03 + 2.47442014e-03 2.50689342e-03 2.54058217e-03 2.57548561e-03 2.61160294e-03 + 2.64893333e-03 2.68747592e-03 2.72722982e-03 2.76819412e-03 2.81036787e-03 + 2.85375012e-03 2.89833986e-03 2.94413606e-03 2.99113769e-03 3.03934365e-03 + 3.08875285e-03 3.13936416e-03 3.19117640e-03 3.24418841e-03 3.29839896e-03 + 3.35380682e-03 3.41041071e-03 3.46820936e-03 3.52720143e-03 3.58738558e-03 + 3.64876043e-03 3.71132460e-03 3.77507665e-03 3.84001514e-03 3.90613858e-03 + 3.97344547e-03 4.04193428e-03 4.11160346e-03 4.18245143e-03 4.25447658e-03 + 4.32767727e-03 4.40205185e-03 4.47759865e-03 4.55431593e-03 4.63220199e-03 + 4.71125505e-03 4.79147333e-03 4.87285502e-03 4.95539830e-03 5.03910129e-03 + 5.12396213e-03 5.20997890e-03 5.29714966e-03 5.38547247e-03 5.47494535e-03 + 5.56556628e-03 5.65733324e-03 5.75024419e-03 5.84429703e-03 5.93948968e-03 + 6.03582001e-03 6.13328588e-03 6.23188511e-03 6.33161551e-03 6.43247487e-03 + 6.53446095e-03 6.63757148e-03 6.74180419e-03 6.84715676e-03 6.95362687e-03 + 7.06121216e-03 7.16991026e-03 7.27971878e-03 7.39063530e-03 7.50265737e-03 + 7.61578255e-03 7.73000833e-03 7.84533223e-03 7.96175172e-03 8.07926424e-03 + 8.19786724e-03 8.31755813e-03 8.43833428e-03 8.56019309e-03 8.68313189e-03 + 8.80714802e-03 8.93223879e-03 9.05840148e-03 9.18563337e-03 9.31393170e-03 + 9.44329371e-03 9.57371661e-03 9.70519759e-03 9.83773382e-03 9.97132246e-03 + 1.01059606e-02 1.02416455e-02 1.03783741e-02 1.05161435e-02 1.06549508e-02 + 1.07947931e-02 1.09356673e-02 1.10775705e-02 1.12204997e-02 1.13644517e-02 + 1.15094237e-02 1.16554125e-02 1.18024151e-02 1.19504282e-02 1.20994490e-02 + 1.22494741e-02 1.24005005e-02 1.25525250e-02 1.27055444e-02 1.28595555e-02 + 1.30145552e-02 1.31705401e-02 1.33275071e-02 1.34854528e-02 1.36443741e-02 + 1.38042677e-02 1.39651301e-02 1.41269582e-02 1.42897485e-02 1.44534978e-02 + 1.46182027e-02 1.47838598e-02 1.49504657e-02 1.51180170e-02 1.52865103e-02 + 1.54559422e-02 1.56263093e-02 1.57976080e-02 1.59698349e-02 1.61429866e-02 + 1.63170596e-02 1.64920502e-02 1.66679551e-02 1.68447707e-02 1.70224935e-02 + 1.72011198e-02 1.73806462e-02 1.75610691e-02 1.77423848e-02 1.79245899e-02 + 1.81076806e-02 1.82916533e-02 1.84765045e-02 1.86622305e-02 1.88488276e-02 + 1.90362922e-02 1.92246206e-02 1.94138091e-02 1.96038541e-02 1.97947518e-02 + 1.99864985e-02 2.01790905e-02 2.03725242e-02 2.05667957e-02 2.07619013e-02 + 2.09578372e-02 2.11545998e-02 2.13521852e-02 2.15505896e-02 2.17498093e-02 + 2.19498405e-02 2.21506794e-02 2.23523222e-02 2.25547650e-02 2.27580040e-02 + 2.29620355e-02 2.31668555e-02 2.33724603e-02 2.35788460e-02 2.37860087e-02 + 2.39939446e-02 2.42026499e-02 2.44121205e-02 2.46223528e-02 2.48333427e-02 + 2.50450864e-02 2.52575801e-02 2.54708198e-02 2.56848016e-02 2.58995216e-02 + 2.61149759e-02 2.63311606e-02 2.65480717e-02 2.67657054e-02 2.69840578e-02 + 2.72031248e-02 2.74229026e-02 2.76433871e-02 2.78645746e-02 2.80864610e-02 + 2.83090425e-02 2.85323149e-02 2.87562745e-02 2.89809172e-02 2.92062390e-02 + 2.94322361e-02 2.96589045e-02 2.98862402e-02 3.01142392e-02 3.03428976e-02 + 3.05722114e-02 3.08021766e-02 3.10327893e-02 3.12640455e-02 3.14959413e-02 + 3.17284726e-02 3.19616355e-02 3.21954260e-02 3.24298402e-02 3.26648740e-02 + 3.29005236e-02 3.31367848e-02 3.33736539e-02 3.36111267e-02 3.38491993e-02 + 3.40878677e-02 3.43271281e-02 3.45669763e-02 3.48074084e-02 3.50484206e-02 + 3.52900087e-02 3.55321689e-02 3.57748971e-02 3.60181895e-02 3.62620420e-02 + 3.65064508e-02 3.67514117e-02 3.69969210e-02 3.72429746e-02 3.74895686e-02 + 3.77366991e-02 3.79843621e-02 3.82325537e-02 3.84812698e-02 3.87305067e-02 + 3.89802604e-02 3.92305269e-02 3.94813024e-02 3.97325829e-02 3.99843644e-02 + 4.02366431e-02 4.04894151e-02 4.07426765e-02 4.09964234e-02 4.12506518e-02 + 4.15053579e-02 4.17605378e-02 4.20161876e-02 4.22723034e-02 4.25288815e-02 + 4.27859178e-02 4.30434086e-02 4.33013499e-02 4.35597380e-02 4.38185689e-02 + 4.40778389e-02 4.43375441e-02 4.45976807e-02 4.48582449e-02 4.51192328e-02 + 4.53806406e-02 4.56424645e-02 4.59047007e-02 4.61673455e-02 4.64303950e-02 + 4.66938455e-02 4.69576932e-02 4.72219342e-02 4.74865650e-02 4.77515816e-02 + 4.80169804e-02 4.82827576e-02 4.85489095e-02 4.88154324e-02 4.90823225e-02 + 4.93495761e-02 4.96171896e-02 4.98851592e-02 5.01534812e-02 5.04221520e-02 + 5.06911679e-02 5.09605252e-02 5.12302202e-02 5.15002494e-02 5.17706091e-02 + 5.20412956e-02 5.23123054e-02 5.25836347e-02 5.28552801e-02 5.31272378e-02 + 5.33995044e-02 5.36720762e-02 5.39449496e-02 5.42181211e-02 5.44915872e-02 + 5.47653442e-02 5.50393887e-02 5.53137171e-02 5.55883259e-02 5.58632116e-02 + 5.61383707e-02 5.64137997e-02 5.66894951e-02 5.69654535e-02 5.72416713e-02 + 5.75181451e-02 5.77948716e-02 5.80718471e-02 5.83490684e-02 5.86265320e-02 + 5.89042345e-02 5.91821725e-02 5.94603427e-02 5.97387415e-02 6.00173658e-02 + 6.02962120e-02 6.05752770e-02 6.08545573e-02 6.11340496e-02 6.14137506e-02 + 6.16936570e-02 6.19737655e-02 6.22540729e-02 6.25345758e-02 6.28152709e-02 + 6.30961552e-02 6.33772252e-02 6.36584778e-02 6.39399097e-02 6.42215178e-02 + 6.45032988e-02 6.47852496e-02 6.50673669e-02 6.53496477e-02 6.56320887e-02 + 6.59146868e-02 6.61974389e-02 6.64803419e-02 6.67633926e-02 6.70465880e-02 + 6.73299249e-02 6.76134004e-02 6.78970112e-02 6.81807545e-02 6.84646270e-02 + 6.87486259e-02 6.90327480e-02 6.93169904e-02 6.96013501e-02 6.98858240e-02 + 7.01704093e-02 7.04551029e-02 7.07399019e-02 7.10248033e-02 7.13098043e-02 + 7.15949019e-02 7.18800932e-02 7.21653753e-02 7.24507453e-02 7.27362004e-02 + 7.30217377e-02 7.33073544e-02 7.35930475e-02 7.38788144e-02 7.41646521e-02 + 7.44505580e-02 7.47365291e-02 7.50225627e-02 7.53086561e-02 7.55948066e-02 + 7.58810112e-02 7.61672674e-02 7.64535724e-02 7.67399235e-02 7.70263181e-02 + 7.73127534e-02 7.75992267e-02 7.78857354e-02 7.81722770e-02 7.84588486e-02 + 7.87454477e-02 7.90320718e-02 7.93187181e-02 7.96053841e-02 7.98920673e-02 + 8.01787651e-02 8.04654749e-02 8.07521941e-02 8.10389204e-02 8.13256510e-02 + 8.16123836e-02 8.18991157e-02 8.21858447e-02 8.24725683e-02 8.27592839e-02 + 8.30459891e-02 8.33326815e-02 8.36193586e-02 8.39060181e-02 8.41926576e-02 + 8.44792746e-02 8.47658669e-02 8.50524319e-02 8.53389675e-02 8.56254713e-02 + 8.59119408e-02 8.61983740e-02 8.64847683e-02 8.67711216e-02 8.70574315e-02 + 8.73436959e-02 8.76299124e-02 8.79160788e-02 8.82021929e-02 8.84882524e-02 + 8.87742552e-02 8.90601991e-02 8.93460819e-02 8.96319014e-02 8.99176554e-02 + 9.02033419e-02 9.04889586e-02 9.07745035e-02 9.10599745e-02 9.13453694e-02 + 9.16306861e-02 9.19159227e-02 9.22010770e-02 9.24861469e-02 9.27711305e-02 + 9.30560257e-02 9.33408305e-02 9.36255428e-02 9.39101607e-02 9.41946823e-02 + 9.44791055e-02 9.47634283e-02 9.50476489e-02 9.53317653e-02 9.56157755e-02 + 9.58996777e-02 9.61834699e-02 9.64671503e-02 9.67507170e-02 9.70341681e-02 + 9.73175018e-02 9.76007161e-02 9.78838094e-02 9.81667797e-02 9.84496252e-02 + 9.87323442e-02 9.90149348e-02 9.92973954e-02 9.95797240e-02 9.98619190e-02 + 1.00143979e-01 1.00425901e-01 1.00707685e-01 1.00989328e-01 1.01270829e-01 + 1.01552185e-01 1.01833397e-01 1.02114461e-01 1.02395376e-01 1.02676140e-01 + 1.02956752e-01 1.03237211e-01 1.03517513e-01 1.03797659e-01 1.04077646e-01 + 1.04357473e-01 1.04637138e-01 1.04916640e-01 1.05195977e-01 1.05475147e-01 + 1.05754150e-01 1.06032982e-01 1.06311644e-01 1.06590134e-01 1.06868449e-01 + 1.07146589e-01 1.07424552e-01 1.07702336e-01 1.07979941e-01 1.08257365e-01 + 1.08534605e-01 1.08811662e-01 1.09088533e-01 1.09365218e-01 1.09641714e-01 + 1.09918020e-01 1.10194135e-01 1.10470058e-01 1.10745788e-01 1.11021322e-01 + 1.11296660e-01 1.11571800e-01 1.11846741e-01 1.12121482e-01 1.12396021e-01 + 1.12670358e-01 1.12944490e-01 1.13218418e-01 1.13492138e-01 1.13765651e-01 + 1.14038955e-01 1.14312048e-01 1.14584930e-01 1.14857599e-01 1.15130055e-01 + 1.15402295e-01 1.15674319e-01 1.15946126e-01 1.16217714e-01 1.16489083e-01 + 1.16760231e-01 1.17031157e-01 1.17301860e-01 1.17572339e-01 1.17842593e-01 + 1.18112620e-01 1.18382420e-01 1.18651992e-01 1.18921334e-01 1.19190445e-01 + 1.19459326e-01 1.19727973e-01 1.19996387e-01 1.20264566e-01 1.20532510e-01 + 1.20800216e-01 1.21067686e-01 1.21334917e-01 1.21601908e-01 1.21868658e-01 + 1.22135167e-01 1.22401434e-01 1.22667458e-01 1.22933237e-01 1.23198771e-01 + 1.23464058e-01 1.23729099e-01 1.23993892e-01 1.24258436e-01 1.24522731e-01 + 1.24786775e-01 1.25050567e-01 1.25314108e-01 1.25577395e-01 1.25840428e-01 + 1.26103207e-01 1.26365730e-01 1.26627997e-01 1.26890006e-01 1.27151758e-01 + 1.27413251e-01 1.27674484e-01 1.27935457e-01 1.28196169e-01 1.28456619e-01 + 1.28716807e-01 1.28976731e-01 1.29236391e-01 1.29495787e-01 1.29754917e-01 + 1.30013780e-01 1.30272377e-01 1.30530707e-01 1.30788768e-01 1.31046560e-01 + 1.31304083e-01 1.31561335e-01 1.31818316e-01 1.32075026e-01 1.32331463e-01 + 1.32587628e-01 1.32843519e-01 1.33099136e-01 1.33354479e-01 1.33609546e-01 + 1.33864337e-01 1.34118851e-01 1.34373088e-01 1.34627048e-01 1.34880730e-01 + 1.35134132e-01 1.35387255e-01 1.35640099e-01 1.35892661e-01 1.36144943e-01 + 1.36396943e-01 1.36648661e-01 1.36900097e-01 1.37151249e-01 1.37402118e-01 + 1.37652702e-01 1.37903003e-01 1.38153017e-01 1.38402747e-01 1.38652190e-01 + 1.38901347e-01 1.39150217e-01 1.39398799e-01 1.39647094e-01 1.39895100e-01 + 1.40142817e-01 1.40390246e-01 1.40637384e-01 1.40884233e-01 1.41130791e-01 + 1.41377059e-01 1.41623035e-01 1.41868719e-01 1.42114112e-01 1.42359212e-01 + 1.42604020e-01 1.42848534e-01 1.43092755e-01 1.43336681e-01 1.43580314e-01 + 1.43823652e-01 1.44066695e-01 1.44309444e-01 1.44551896e-01 1.44794053e-01 + 1.45035913e-01 1.45277477e-01 1.45518744e-01 1.45759714e-01 1.46000386e-01 + 1.46240761e-01 1.46480838e-01 1.46720616e-01 1.46960096e-01 1.47199277e-01 + 1.47438159e-01 1.47676742e-01 1.47915025e-01 1.48153009e-01 1.48390692e-01 + 1.48628075e-01 1.48865157e-01 1.49101939e-01 1.49338419e-01 1.49574598e-01 + 1.49810476e-01 1.50046052e-01 1.50281327e-01 1.50516299e-01 1.50750969e-01 + 1.50985337e-01 1.51219402e-01 1.51453164e-01 1.51686623e-01 1.51919779e-01 + 1.52152632e-01 1.52385181e-01 1.52617427e-01 1.52849368e-01 1.53081006e-01 + 1.53312340e-01 1.53543370e-01 1.53774095e-01 1.54004516e-01 1.54234632e-01 + 1.54464444e-01 1.54693950e-01 1.54923152e-01 1.55152049e-01 1.55380640e-01 + 1.55608926e-01 1.55836907e-01 1.56064583e-01 1.56291953e-01 1.56519017e-01 + 1.56745775e-01 1.56972228e-01 1.57198375e-01 1.57424216e-01 1.57649751e-01 + 1.57874980e-01 1.58099903e-01 1.58324520e-01 1.58548831e-01 1.58772835e-01 + 1.58996533e-01 1.59219925e-01 1.59443010e-01 1.59665790e-01 1.59888262e-01 + 1.60110429e-01 1.60332289e-01 1.60553842e-01 1.60775089e-01 1.60996030e-01 + 1.61216664e-01 1.61436992e-01 1.61657013e-01 1.61876728e-01 1.62096136e-01 + 1.62315238e-01 1.62534034e-01 1.62752523e-01 1.62970706e-01 1.63188582e-01 + 1.63406152e-01 1.63623416e-01 1.63840374e-01 1.64057026e-01 1.64273371e-01 + 1.64489411e-01 1.64705144e-01 1.64920571e-01 1.65135693e-01 1.65350508e-01 + 1.65565018e-01 1.65779222e-01 1.65993121e-01 1.66206714e-01 1.66420001e-01 + 1.66632983e-01 1.66845660e-01 1.67058031e-01 1.67270097e-01 1.67481858e-01 + 1.67693314e-01 1.67904465e-01 1.68115312e-01 1.68325854e-01 1.68536091e-01 + 1.68746023e-01 1.68955652e-01 1.69164976e-01 1.69373996e-01 1.69582712e-01 + 1.69791124e-01 1.69999232e-01 1.70207037e-01 1.70414538e-01 1.70621735e-01 + 1.70828630e-01 1.71035221e-01 1.71241510e-01 1.71447495e-01 1.71653178e-01 + 1.71858558e-01 1.72063636e-01 1.72268412e-01 1.72472886e-01 1.72677057e-01 + 1.72880927e-01 1.73084495e-01 1.73287762e-01 1.73490728e-01 1.73693392e-01 + 1.73895756e-01 1.74097819e-01 1.74299581e-01 1.74501043e-01 1.74702204e-01 + 1.74903066e-01 1.75103627e-01 1.75303889e-01 1.75503852e-01 1.75703515e-01 + 1.75902879e-01 1.76101944e-01 1.76300710e-01 1.76499178e-01 1.76697348e-01 + 1.76895219e-01 1.77092792e-01 1.77290068e-01 1.77487046e-01 1.77683727e-01 + 1.77880111e-01 1.78076198e-01 1.78271989e-01 1.78467483e-01 1.78662680e-01 + 1.78857582e-01 1.79052188e-01 1.79246498e-01 1.79440514e-01 1.79634234e-01 + 1.79827659e-01 1.80020789e-01 1.80213625e-01 1.80406167e-01 1.80598415e-01 + 1.80790370e-01 1.80982031e-01 1.81173398e-01 1.81364473e-01 1.81555255e-01 + 1.81745745e-01 1.81935942e-01 1.82125848e-01 1.82315462e-01 1.82504784e-01 + 1.82693815e-01 1.82882555e-01 1.83071004e-01 1.83259163e-01 1.83447032e-01 + 1.83634611e-01 1.83821900e-01 1.84008900e-01 1.84195611e-01 1.84382033e-01 + 1.84568166e-01 1.84754012e-01 1.84939569e-01 1.85124838e-01 1.85309820e-01 + 1.85494514e-01 1.85678922e-01 1.85863043e-01 1.86046878e-01 1.86230426e-01 + 1.86413689e-01 1.86596666e-01 1.86779358e-01 1.86961765e-01 1.87143887e-01 + 1.87325725e-01 1.87507279e-01 1.87688549e-01 1.87869536e-01 1.88050239e-01 + 1.88230659e-01 1.88410797e-01 1.88590653e-01 1.88770226e-01 1.88949518e-01 + 1.89128528e-01 1.89307257e-01 1.89485705e-01 1.89663873e-01 1.89841761e-01 + 1.90019368e-01 1.90196696e-01 1.90373745e-01 1.90550515e-01 1.90727005e-01 + 1.90903218e-01 1.91079153e-01 1.91254809e-01 1.91430189e-01 1.91605291e-01 + 1.91780116e-01 1.91954665e-01 1.92128937e-01 1.92302934e-01 1.92476655e-01 + 1.92650101e-01 1.92823272e-01 1.92996169e-01 1.93168791e-01 1.93341139e-01 + 1.93513213e-01 1.93685014e-01 1.93856543e-01 1.94027798e-01 1.94198781e-01 + 1.94369492e-01 1.94539932e-01 1.94710100e-01 1.94879997e-01 1.95049623e-01 + 1.95218979e-01 1.95388065e-01 1.95556881e-01 1.95725428e-01 1.95893706e-01 + 1.96061715e-01 1.96229455e-01 1.96396928e-01 1.96564133e-01 1.96731070e-01 + 1.96897741e-01 1.97064144e-01 1.97230282e-01 1.97396153e-01 1.97561758e-01 + 1.97727099e-01 1.97892174e-01 1.98056984e-01 1.98221530e-01 1.98385813e-01 + 1.98549831e-01 1.98713586e-01 1.98877078e-01 1.99040308e-01 1.99203275e-01 + 1.99365980e-01 1.99528424e-01 1.99690606e-01 1.99852528e-01 2.00014188e-01 + 2.00175589e-01 2.00336730e-01 2.00497611e-01 2.00658233e-01 2.00818596e-01 + 2.00978701e-01 2.01138547e-01 2.01298136e-01 2.01457467e-01 2.01616542e-01 + 2.01775359e-01 2.01933920e-01 2.02092225e-01 2.02250274e-01 2.02408068e-01 + 2.02565607e-01 2.02722891e-01 2.02879921e-01 2.03036697e-01 2.03193220e-01 + 2.03349489e-01 2.03505505e-01 2.03661269e-01 2.03816780e-01 2.03972040e-01 + 2.04127048e-01 2.04281805e-01 2.04436312e-01 2.04590568e-01 2.04744573e-01 + 2.04898329e-01 2.05051836e-01 2.05205094e-01 2.05358103e-01 2.05510864e-01 + 2.05663377e-01 2.05815642e-01 2.05967660e-01 2.06119432e-01 2.06270956e-01 + 2.06422235e-01 2.06573268e-01 2.06724055e-01 2.06874598e-01 2.07024895e-01 + 2.07174948e-01 2.07324757e-01 2.07474323e-01 2.07623645e-01 2.07772725e-01 + 2.07921561e-01 2.08070156e-01 2.08218508e-01 2.08366619e-01 2.08514489e-01 + 2.08662119e-01 2.08809507e-01 2.08956656e-01 2.09103565e-01 2.09250235e-01 + 2.09396665e-01 2.09542857e-01 2.09688811e-01 2.09834526e-01 2.09980005e-01 + 2.10125246e-01 2.10270250e-01 2.10415017e-01 2.10559549e-01 2.10703844e-01 + 2.10847905e-01 2.10991730e-01 2.11135320e-01 2.11278676e-01 2.11421799e-01 + 2.11564687e-01 2.11707342e-01 2.11849765e-01 2.11991955e-01 2.12133912e-01 + 2.12275638e-01 2.12417132e-01 2.12558395e-01 2.12699428e-01 2.12840230e-01 + 2.12980802e-01 2.13121144e-01 2.13261257e-01 2.13401141e-01 2.13540796e-01 + 2.13680223e-01 2.13819422e-01 2.13958394e-01 2.14097138e-01 2.14235656e-01 + 2.14373947e-01 2.14512011e-01 2.14649851e-01 2.14787464e-01 2.14924853e-01 + 2.15062017e-01 2.15198957e-01 2.15335672e-01 2.15472164e-01 2.15608433e-01 + 2.15744479e-01 2.15880302e-01 2.16015903e-01 2.16151282e-01 2.16286440e-01 + 2.16421376e-01 2.16556092e-01 2.16690587e-01 2.16824862e-01 2.16958918e-01 + 2.17092754e-01 2.17226371e-01 2.17359769e-01 2.17492949e-01 2.17625911e-01 + 2.17758656e-01 2.17891183e-01 2.18023493e-01 2.18155587e-01 2.18287464e-01 + 2.18419126e-01 2.18550572e-01 2.18681803e-01 2.18812819e-01 2.18943621e-01 + 2.19074208e-01 2.19204582e-01 2.19334742e-01 2.19464690e-01 2.19594424e-01 + 2.19723946e-01 2.19853257e-01 2.19982355e-01 2.20111242e-01 2.20239919e-01 + 2.20368384e-01 2.20496640e-01 2.20624685e-01 2.20752521e-01 2.20880148e-01 + 2.21007566e-01 2.21134775e-01 2.21261776e-01 2.21388569e-01 2.21515155e-01 + 2.21641533e-01 2.21767705e-01 2.21893670e-01 2.22019429e-01 2.22144983e-01 + 2.22270331e-01 2.22395473e-01 2.22520411e-01 2.22645145e-01 2.22769675e-01 + 2.22894000e-01 2.23018123e-01 2.23142042e-01 2.23265759e-01 2.23389273e-01 + 2.23512586e-01 2.23635696e-01 2.23758606e-01 2.23881314e-01 2.24003822e-01 + 2.24126129e-01 2.24248236e-01 2.24370144e-01 2.24491852e-01 2.24613362e-01 + 2.24734673e-01 2.24855785e-01 2.24976700e-01 2.25097417e-01 2.25217936e-01 + 2.25338259e-01 2.25458385e-01 2.25578315e-01 2.25698048e-01 2.25817587e-01 + 2.25936930e-01 2.26056078e-01 2.26175031e-01 2.26293790e-01 2.26412355e-01 + 2.26530727e-01 2.26648905e-01 2.26766890e-01 2.26884683e-01 2.27002283e-01 + 2.27119691e-01 2.27236908e-01 2.27353934e-01 2.27470768e-01 2.27587412e-01 + 2.27703865e-01 2.27820129e-01 2.27936203e-01 2.28052087e-01 2.28167783e-01 + 2.28283290e-01 2.28398608e-01 2.28513738e-01 2.28628681e-01 2.28743437e-01 + 2.28858005e-01 2.28972386e-01 2.29086581e-01 2.29200591e-01 2.29314414e-01 + 2.29428052e-01 2.29541504e-01 2.29654772e-01 2.29767856e-01 2.29880755e-01 + 2.29993470e-01 2.30106002e-01 2.30218351e-01 2.30330517e-01 2.30442500e-01 + 2.30554301e-01 2.30665921e-01 2.30777358e-01 2.30888614e-01 2.30999690e-01 + 2.31110584e-01 2.31221299e-01 2.31331833e-01 2.31442188e-01 2.31552363e-01 + 2.31662359e-01 2.31772176e-01 2.31881815e-01 2.31991276e-01 2.32100559e-01 + 2.32209665e-01 2.32318593e-01 2.32427344e-01 2.32535919e-01 2.32644318e-01 + 2.32752540e-01 2.32860587e-01 2.32968459e-01 2.33076155e-01 2.33183677e-01 + 2.33291025e-01 2.33398198e-01 2.33505198e-01 2.33612024e-01 2.33718676e-01 + 2.33825157e-01 2.33931464e-01 2.34037599e-01 2.34143562e-01 2.34249354e-01 + 2.34354974e-01 2.34460423e-01 2.34565702e-01 2.34670810e-01 2.34775748e-01 + 2.34880516e-01 2.34985114e-01 2.35089544e-01 2.35193804e-01 2.35297896e-01 + 2.35401819e-01 2.35505574e-01 2.35609162e-01 2.35712582e-01 2.35815835e-01 + 2.35918921e-01 2.36021841e-01 2.36124594e-01 2.36227182e-01 2.36329603e-01 + 2.36431860e-01 2.36533951e-01 2.36635878e-01 2.36737640e-01 2.36839238e-01 + 2.36940672e-01 2.37041942e-01 2.37143049e-01 2.37243994e-01 2.37344775e-01 + 2.37445394e-01 2.37545851e-01 2.37646146e-01 2.37746279e-01 2.37846251e-01 + 2.37946062e-01 2.38045713e-01 2.38145203e-01 2.38244533e-01 2.38343703e-01 + 2.38442713e-01 2.38541565e-01 2.38640257e-01 2.38738790e-01 2.38837166e-01 + 2.38935383e-01 2.39033442e-01 2.39131344e-01 2.39229088e-01 2.39326676e-01 + 2.39424106e-01 2.39521381e-01 2.39618499e-01 2.39715461e-01 2.39812268e-01 + 2.39908919e-01 2.40005416e-01 2.40101757e-01 2.40197944e-01 2.40293977e-01 + 2.40389856e-01 2.40485582e-01 2.40581154e-01 2.40676573e-01 2.40771839e-01 + 2.40866953e-01 2.40961914e-01 2.41056724e-01 2.41151382e-01 2.41245888e-01 + 2.41340243e-01 2.41434447e-01 2.41528501e-01 2.41622404e-01 2.41716158e-01 + 2.41809761e-01 2.41903215e-01 2.41996520e-01 2.42089675e-01 2.42182682e-01 + 2.42275541e-01 2.42368251e-01 2.42460813e-01 2.42553228e-01 2.42645496e-01 + 2.42737616e-01 2.42829589e-01 2.42921416e-01 2.43013097e-01 2.43104631e-01 + 2.43196020e-01 2.43287263e-01 2.43378361e-01 2.43469314e-01 2.43560122e-01 + 2.43650786e-01 2.43741306e-01 2.43831681e-01 2.43921913e-01 2.44012001e-01 + 2.44101947e-01 2.44191749e-01 2.44281409e-01 2.44370926e-01 2.44460302e-01 + 2.44549535e-01 2.44638627e-01 2.44727577e-01 2.44816386e-01 2.44905055e-01 + 2.44993583e-01 2.45081970e-01 2.45170218e-01 2.45258325e-01 2.45346293e-01 + 2.45434122e-01 2.45521812e-01 2.45609362e-01 2.45696775e-01 2.45784049e-01 + 2.45871185e-01 2.45958183e-01 2.46045043e-01 2.46131766e-01 2.46218353e-01 + 2.46304802e-01 2.46391115e-01 2.46477291e-01 2.46563332e-01 2.46649236e-01 + 2.46735006e-01 2.46820639e-01 2.46906138e-01 2.46991502e-01 2.47076731e-01 + 2.47161826e-01 2.47246787e-01 2.47331614e-01 2.47416307e-01 2.47500867e-01 + 2.47585294e-01 2.47669588e-01 2.47753749e-01 2.47837778e-01 2.47921675e-01 + 2.48005440e-01 2.48089073e-01 2.48172575e-01 2.48255945e-01 2.48339185e-01 + 2.48422294e-01 2.48505272e-01 2.48588120e-01 2.48670839e-01 2.48753427e-01 + 2.48835886e-01 2.48918215e-01 2.49000416e-01 2.49082487e-01 2.49164431e-01 + 2.49246245e-01 2.49327932e-01 2.49409490e-01 2.49490922e-01 2.49572225e-01 + 2.49653402e-01 2.49734451e-01 2.49815374e-01 2.49896170e-01 2.49976840e-01 + 2.50057384e-01 2.50137802e-01 2.50218094e-01 2.50298261e-01 2.50378303e-01 + 2.50458221e-01 2.50538013e-01 2.50617681e-01 2.50697225e-01 2.50776645e-01 + 2.50855941e-01 2.50935113e-01 2.51014162e-01 2.51093088e-01 2.51171892e-01 + 2.51250572e-01 2.51329130e-01 2.51407566e-01 2.51485880e-01 2.51564073e-01 + 2.51642143e-01 2.51720093e-01 2.51797921e-01 2.51875629e-01 2.51953216e-01 + 2.52030682e-01 2.52108028e-01 2.52185254e-01 2.52262361e-01 2.52339348e-01 + 2.52416215e-01 2.52492964e-01 2.52569593e-01 2.52646104e-01 2.52722497e-01 + 2.52798771e-01 2.52874927e-01 2.52950965e-01 2.53026886e-01 2.53102689e-01 + 2.53178375e-01 2.53253944e-01 2.53329397e-01 2.53404733e-01 2.53479952e-01 + 2.53555056e-01 2.53630043e-01 2.53704915e-01 2.53779671e-01 2.53854312e-01 + 2.53928839e-01 2.54003250e-01 2.54077546e-01 2.54151728e-01 2.54225796e-01 + 2.54299750e-01 2.54373590e-01 2.54447316e-01 2.54520930e-01 2.54594429e-01 + 2.54667816e-01 2.54741090e-01 2.54814252e-01 2.54887301e-01 2.54960238e-01 + 2.55033063e-01 2.55105776e-01 2.55178378e-01 2.55250868e-01 2.55323247e-01 + 2.55395516e-01 2.55467673e-01 2.55539720e-01 2.55611657e-01 2.55683483e-01 + 2.55755200e-01 2.55826806e-01 2.55898304e-01 2.55969692e-01 2.56040970e-01 + 2.56112140e-01 2.56183201e-01 2.56254154e-01 2.56324998e-01 2.56395734e-01 + 2.56466362e-01 2.56536882e-01 2.56607295e-01 2.56677600e-01 2.56747798e-01 + 2.56817889e-01 2.56887874e-01 2.56957752e-01 2.57027523e-01 2.57097188e-01 + 2.57166747e-01 2.57236200e-01 2.57305548e-01 2.57374790e-01 2.57443927e-01 + 2.57512959e-01 2.57581886e-01 2.57650709e-01 2.57719427e-01 2.57788040e-01 + 2.57856550e-01 2.57924955e-01 2.57993257e-01 2.58061455e-01 2.58129550e-01 + 2.58197542e-01 2.58265431e-01 2.58333217e-01 2.58400900e-01 2.58468481e-01 + 2.58535960e-01 2.58603336e-01 2.58670611e-01 2.58737784e-01 2.58804856e-01 + 2.58871826e-01 2.58938695e-01 2.59005463e-01 2.59072131e-01 2.59138697e-01 + 2.59205164e-01 2.59271530e-01 2.59337796e-01 2.59403962e-01 2.59470029e-01 + 2.59535996e-01 2.59601864e-01 2.59667633e-01 2.59733302e-01 2.59798873e-01 + 2.59864345e-01 2.59929719e-01 2.59994995e-01 2.60060172e-01 2.60125252e-01 + 2.60190234e-01 2.60255118e-01 2.60319905e-01 2.60384595e-01 2.60449188e-01 + 2.60513684e-01 2.60578083e-01 2.60642386e-01 2.60706593e-01 2.60770703e-01 + 2.60834718e-01 2.60898636e-01 2.60962459e-01 2.61026187e-01 2.61089819e-01 + 2.61153356e-01 2.61216799e-01 2.61280146e-01 2.61343399e-01 2.61406557e-01 + 2.61469622e-01 2.61532592e-01 2.61595468e-01 2.61658250e-01 2.61720939e-01 + 2.61783535e-01 2.61846037e-01 2.61908446e-01 2.61970763e-01 2.62032986e-01 + 2.62095117e-01 2.62157156e-01 2.62219102e-01 2.62280956e-01 2.62342719e-01 + 2.62404389e-01 2.62465968e-01 2.62527456e-01 2.62588852e-01 2.62650158e-01 + 2.62711372e-01 2.62772496e-01 2.62833529e-01 2.62894471e-01 2.62955324e-01 + 2.63016086e-01 2.63076758e-01 2.63137341e-01 2.63197833e-01 2.63258237e-01 + 2.63318551e-01 2.63378776e-01 2.63438912e-01 2.63498959e-01 2.63558918e-01 + 2.63618788e-01 2.63678569e-01 2.63738263e-01 2.63797868e-01 2.63857386e-01 + 2.63916816e-01 2.63976158e-01 2.64035413e-01 2.64094581e-01 2.64153661e-01 + 2.64212655e-01 2.64271562e-01 2.64330382e-01 2.64389116e-01 2.64447763e-01 + 2.64506324e-01 2.64564800e-01 2.64623189e-01 2.64681493e-01 2.64739711e-01 + 2.64797844e-01 2.64855892e-01 2.64913854e-01 2.64971732e-01 2.65029524e-01 + 2.65087233e-01 2.65144856e-01 2.65202396e-01 2.65259851e-01 2.65317222e-01 + 2.65374509e-01 2.65431713e-01 2.65488833e-01 2.65545869e-01 2.65602822e-01 + 2.65659692e-01 2.65716480e-01 2.65773184e-01 2.65829805e-01 2.65886344e-01 + 2.65942801e-01 2.65999175e-01 2.66055468e-01 2.66111678e-01 2.66167806e-01 + 2.66223853e-01 2.66279819e-01 2.66335703e-01 2.66391505e-01 2.66447227e-01 + 2.66502868e-01 2.66558427e-01 2.66613907e-01 2.66669305e-01 2.66724624e-01 + 2.66779862e-01 2.66835020e-01 2.66890098e-01 2.66945096e-01 2.67000015e-01 + 2.67054854e-01 2.67109613e-01 2.67164294e-01 2.67218895e-01 2.67273418e-01 + 2.67327861e-01 2.67382226e-01 2.67436512e-01 2.67490720e-01 2.67544850e-01 + 2.67598902e-01 2.67652875e-01 2.67706771e-01 2.67760589e-01 2.67814330e-01 + 2.67867993e-01 2.67921578e-01 2.67975087e-01 2.68028519e-01 2.68081873e-01 + 2.68135151e-01 2.68188352e-01 2.68241477e-01 2.68294526e-01 2.68347498e-01 + 2.68400394e-01 2.68453214e-01 2.68505959e-01 2.68558628e-01 2.68611221e-01 + 2.68663738e-01 2.68716181e-01 2.68768548e-01 2.68820841e-01 2.68873058e-01 + 2.68925201e-01 2.68977269e-01 2.69029263e-01 2.69081182e-01 2.69133027e-01 + 2.69184798e-01 2.69236495e-01 2.69288118e-01 2.69339668e-01 2.69391143e-01 + 2.69442546e-01 2.69493875e-01 2.69545131e-01 2.69596314e-01 2.69647424e-01 + 2.69698461e-01 2.69749425e-01 2.69800317e-01 2.69851137e-01 2.69901884e-01 + 2.69952559e-01 2.70003162e-01 2.70053693e-01 2.70104153e-01 2.70154540e-01 + 2.70204856e-01 2.70255101e-01 2.70305274e-01 2.70355377e-01 2.70405408e-01 + 2.70455368e-01 2.70505258e-01 2.70555077e-01 2.70604825e-01 2.70654503e-01 + 2.70704110e-01 2.70753648e-01 2.70803115e-01 2.70852513e-01 2.70901840e-01 + 2.70951098e-01 2.71000287e-01 2.71049406e-01 2.71098455e-01 2.71147436e-01 + 2.71196347e-01 2.71245190e-01 2.71293963e-01 2.71342668e-01 2.71391304e-01 + 2.71439872e-01 2.71488372e-01 2.71536803e-01 2.71585166e-01 2.71633461e-01 + 2.71681688e-01 2.71729848e-01 2.71777939e-01 2.71825964e-01 2.71873921e-01 + 2.71921810e-01 2.71969632e-01 2.72017388e-01 2.72065076e-01 2.72112698e-01 + 2.72160252e-01 2.72207741e-01 2.72255162e-01 2.72302518e-01 2.72349807e-01 + 2.72397030e-01 2.72444187e-01 2.72491278e-01 2.72538303e-01 2.72585263e-01 + 2.72632157e-01 2.72678985e-01 2.72725748e-01 2.72772446e-01 2.72819079e-01 + 2.72865647e-01 2.72912150e-01 2.72958588e-01 2.73004962e-01 2.73051271e-01 + 2.73097516e-01 2.73143696e-01 2.73189812e-01 2.73235864e-01 2.73281852e-01 + 2.73327776e-01 2.73373636e-01 2.73419432e-01 2.73465166e-01 2.73510835e-01 + 2.73556441e-01 2.73601984e-01 2.73647464e-01 2.73692881e-01 2.73738235e-01 + 2.73783526e-01 2.73828755e-01 2.73873921e-01 2.73919024e-01 2.73964065e-01 + 2.74009044e-01 2.74053961e-01 2.74098815e-01 2.74143608e-01 2.74188339e-01 + 2.74233008e-01 2.74277616e-01 2.74322162e-01 2.74366646e-01 2.74411070e-01 + 2.74455432e-01 2.74499733e-01 2.74543973e-01 2.74588152e-01 2.74632270e-01 + 2.74676328e-01 2.74720325e-01 2.74764262e-01 2.74808138e-01 2.74851954e-01 + 2.74895710e-01 2.74939406e-01 2.74983042e-01 2.75026618e-01 2.75070135e-01 + 2.75113591e-01 2.75156988e-01 2.75200326e-01 2.75243604e-01 2.75286824e-01 + 2.75329984e-01 2.75373085e-01 2.75416127e-01 2.75459110e-01 2.75502034e-01 + 2.75544900e-01 2.75587707e-01 2.75630456e-01 2.75673147e-01 2.75715779e-01 + 2.75758353e-01 2.75800869e-01 2.75843328e-01 2.75885728e-01 2.75928070e-01 + 2.75970355e-01 2.76012583e-01 2.76054753e-01 2.76096866e-01 2.76138921e-01 + 2.76180919e-01 2.76222860e-01 2.76264745e-01 2.76306572e-01 2.76348342e-01 + 2.76390056e-01 2.76431714e-01 2.76473315e-01 2.76514859e-01 2.76556347e-01 + 2.76597779e-01 2.76639155e-01 2.76680475e-01 2.76721739e-01 2.76762947e-01 + 2.76804100e-01 2.76845197e-01 2.76886238e-01 2.76927224e-01 2.76968154e-01 + 2.77009030e-01 2.77049850e-01 2.77090615e-01 2.77131325e-01 2.77171980e-01 + 2.77212581e-01 2.77253126e-01 2.77293617e-01 2.77334054e-01 2.77374436e-01 + 2.77414764e-01 2.77455038e-01 2.77495257e-01 2.77535423e-01 2.77575534e-01 + 2.77615592e-01 2.77655596e-01 2.77695546e-01 2.77735443e-01 2.77775286e-01 + 2.77815076e-01 2.77854812e-01 2.77894495e-01 2.77934125e-01 2.77973702e-01 + 2.78013226e-01 2.78052697e-01 2.78092115e-01 2.78131481e-01 2.78170794e-01 + 2.78210054e-01 2.78249262e-01 2.78288418e-01 2.78327521e-01 2.78366572e-01 + 2.78405571e-01 2.78444519e-01 2.78483414e-01 2.78522257e-01 2.78561049e-01 + 2.78599789e-01 2.78638477e-01 2.78677114e-01 2.78715700e-01 2.78754234e-01 + 2.78792717e-01 2.78831149e-01 2.78869530e-01 2.78907859e-01 2.78946138e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.65580254e-01 1.65563515e-01 1.65546741e-01 1.65529929e-01 1.65513082e-01 + 1.65496198e-01 1.65479277e-01 1.65462319e-01 1.65445324e-01 1.65428292e-01 + 1.65411223e-01 1.65394117e-01 1.65376974e-01 1.65359793e-01 1.65342574e-01 + 1.65325318e-01 1.65308025e-01 1.65290693e-01 1.65273323e-01 1.65255915e-01 + 1.65238469e-01 1.65220985e-01 1.65203462e-01 1.65185901e-01 1.65168301e-01 + 1.65150662e-01 1.65132985e-01 1.65115268e-01 1.65097513e-01 1.65079718e-01 + 1.65061884e-01 1.65044011e-01 1.65026098e-01 1.65008145e-01 1.64990153e-01 + 1.64972120e-01 1.64954048e-01 1.64935936e-01 1.64917783e-01 1.64899591e-01 + 1.64881357e-01 1.64863083e-01 1.64844769e-01 1.64826414e-01 1.64808017e-01 + 1.64789580e-01 1.64771102e-01 1.64752582e-01 1.64734021e-01 1.64715418e-01 + 1.64696774e-01 1.64678088e-01 1.64659360e-01 1.64640590e-01 1.64621778e-01 + 1.64602924e-01 1.64584027e-01 1.64565088e-01 1.64546107e-01 1.64527082e-01 + 1.64508015e-01 1.64488905e-01 1.64469751e-01 1.64450555e-01 1.64431315e-01 + 1.64412031e-01 1.64392704e-01 1.64373334e-01 1.64353919e-01 1.64334460e-01 + 1.64314958e-01 1.64295411e-01 1.64275819e-01 1.64256183e-01 1.64236503e-01 + 1.64216777e-01 1.64197007e-01 1.64177192e-01 1.64157331e-01 1.64137425e-01 + 1.64117474e-01 1.64097477e-01 1.64077435e-01 1.64057346e-01 1.64037212e-01 + 1.64017032e-01 1.63996805e-01 1.63976532e-01 1.63956212e-01 1.63935846e-01 + 1.63915433e-01 1.63894973e-01 1.63874465e-01 1.63853911e-01 1.63833309e-01 + 1.63812660e-01 1.63791963e-01 1.63771218e-01 1.63750426e-01 1.63729585e-01 + 1.63708696e-01 1.63687759e-01 1.63666773e-01 1.63645738e-01 1.63624655e-01 + 1.63603523e-01 1.63582341e-01 1.63561111e-01 1.63539831e-01 1.63518501e-01 + 1.63497122e-01 1.63475693e-01 1.63454214e-01 1.63432685e-01 1.63411106e-01 + 1.63389476e-01 1.63367795e-01 1.63346064e-01 1.63324282e-01 1.63302449e-01 + 1.63280565e-01 1.63258629e-01 1.63236642e-01 1.63214603e-01 1.63192512e-01 + 1.63170369e-01 1.63148174e-01 1.63125927e-01 1.63103628e-01 1.63081275e-01 + 1.63058870e-01 1.63036412e-01 1.63013901e-01 1.62991337e-01 1.62968719e-01 + 1.62946048e-01 1.62923323e-01 1.62900544e-01 1.62877710e-01 1.62854823e-01 + 1.62831881e-01 1.62808885e-01 1.62785834e-01 1.62762728e-01 1.62739567e-01 + 1.62716350e-01 1.62693078e-01 1.62669751e-01 1.62646368e-01 1.62622929e-01 + 1.62599433e-01 1.62575882e-01 1.62552274e-01 1.62528609e-01 1.62504888e-01 + 1.62481109e-01 1.62457274e-01 1.62433381e-01 1.62409431e-01 1.62385423e-01 + 1.62361357e-01 1.62337233e-01 1.62313050e-01 1.62288810e-01 1.62264510e-01 + 1.62240152e-01 1.62215735e-01 1.62191259e-01 1.62166724e-01 1.62142129e-01 + 1.62117474e-01 1.62092759e-01 1.62067985e-01 1.62043150e-01 1.62018255e-01 + 1.61993299e-01 1.61968282e-01 1.61943204e-01 1.61918065e-01 1.61892865e-01 + 1.61867603e-01 1.61842279e-01 1.61816893e-01 1.61791445e-01 1.61765935e-01 + 1.61740362e-01 1.61714726e-01 1.61689028e-01 1.61663266e-01 1.61637441e-01 + 1.61611552e-01 1.61585600e-01 1.61559583e-01 1.61533503e-01 1.61507358e-01 + 1.61481148e-01 1.61454874e-01 1.61428535e-01 1.61402130e-01 1.61375660e-01 + 1.61349125e-01 1.61322523e-01 1.61295856e-01 1.61269123e-01 1.61242323e-01 + 1.61215456e-01 1.61188522e-01 1.61161522e-01 1.61134454e-01 1.61107319e-01 + 1.61080115e-01 1.61052844e-01 1.61025505e-01 1.60998098e-01 1.60970621e-01 + 1.60943076e-01 1.60915462e-01 1.60887779e-01 1.60860026e-01 1.60832204e-01 + 1.60804311e-01 1.60776349e-01 1.60748316e-01 1.60720212e-01 1.60692038e-01 + 1.60663792e-01 1.60635475e-01 1.60607087e-01 1.60578627e-01 1.60550095e-01 + 1.60521491e-01 1.60492814e-01 1.60464065e-01 1.60435242e-01 1.60406347e-01 + 1.60377378e-01 1.60348335e-01 1.60319219e-01 1.60290028e-01 1.60260764e-01 + 1.60231424e-01 1.60202010e-01 1.60172520e-01 1.60142955e-01 1.60113315e-01 + 1.60083599e-01 1.60053807e-01 1.60023938e-01 1.59993993e-01 1.59963971e-01 + 1.59933872e-01 1.59903696e-01 1.59873442e-01 1.59843110e-01 1.59812700e-01 + 1.59782212e-01 1.59751645e-01 1.59720999e-01 1.59690274e-01 1.59659470e-01 + 1.59628586e-01 1.59597622e-01 1.59566578e-01 1.59535454e-01 1.59504249e-01 + 1.59472963e-01 1.59441595e-01 1.59410146e-01 1.59378616e-01 1.59347003e-01 + 1.59315308e-01 1.59283531e-01 1.59251670e-01 1.59219726e-01 1.59187699e-01 + 1.59155589e-01 1.59123394e-01 1.59091115e-01 1.59058751e-01 1.59026303e-01 + 1.58993770e-01 1.58961151e-01 1.58928446e-01 1.58895656e-01 1.58862779e-01 + 1.58829816e-01 1.58796766e-01 1.58763628e-01 1.58730404e-01 1.58697092e-01 + 1.58663691e-01 1.58630203e-01 1.58596625e-01 1.58562959e-01 1.58529204e-01 + 1.58495359e-01 1.58461425e-01 1.58427400e-01 1.58393285e-01 1.58359079e-01 + 1.58324782e-01 1.58290394e-01 1.58255915e-01 1.58221343e-01 1.58186679e-01 + 1.58151923e-01 1.58117073e-01 1.58082131e-01 1.58047095e-01 1.58011965e-01 + 1.57976741e-01 1.57941422e-01 1.57906009e-01 1.57870501e-01 1.57834897e-01 + 1.57799197e-01 1.57763402e-01 1.57727510e-01 1.57691521e-01 1.57655435e-01 + 1.57619252e-01 1.57582971e-01 1.57546592e-01 1.57510115e-01 1.57473538e-01 + 1.57436863e-01 1.57400088e-01 1.57363214e-01 1.57326239e-01 1.57289164e-01 + 1.57251989e-01 1.57214712e-01 1.57177333e-01 1.57139853e-01 1.57102271e-01 + 1.57064586e-01 1.57026798e-01 1.56988907e-01 1.56950912e-01 1.56912813e-01 + 1.56874610e-01 1.56836302e-01 1.56797890e-01 1.56759371e-01 1.56720748e-01 + 1.56682017e-01 1.56643181e-01 1.56604237e-01 1.56565187e-01 1.56526028e-01 + 1.56486762e-01 1.56447387e-01 1.56407903e-01 1.56368311e-01 1.56328609e-01 + 1.56288796e-01 1.56248874e-01 1.56208841e-01 1.56168697e-01 1.56128441e-01 + 1.56088074e-01 1.56047594e-01 1.56007002e-01 1.55966297e-01 1.55925478e-01 + 1.55884546e-01 1.55843499e-01 1.55802338e-01 1.55761062e-01 1.55719670e-01 + 1.55678163e-01 1.55636539e-01 1.55594799e-01 1.55552941e-01 1.55510966e-01 + 1.55468873e-01 1.55426662e-01 1.55384333e-01 1.55341884e-01 1.55299315e-01 + 1.55256627e-01 1.55213818e-01 1.55170888e-01 1.55127838e-01 1.55084665e-01 + 1.55041370e-01 1.54997953e-01 1.54954413e-01 1.54910749e-01 1.54866961e-01 + 1.54823050e-01 1.54779013e-01 1.54734851e-01 1.54690564e-01 1.54646150e-01 + 1.54601610e-01 1.54556943e-01 1.54512149e-01 1.54467226e-01 1.54422176e-01 + 1.54376996e-01 1.54331687e-01 1.54286249e-01 1.54240680e-01 1.54194981e-01 + 1.54149150e-01 1.54103188e-01 1.54057094e-01 1.54010867e-01 1.53964507e-01 + 1.53918014e-01 1.53871386e-01 1.53824625e-01 1.53777728e-01 1.53730696e-01 + 1.53683527e-01 1.53636223e-01 1.53588781e-01 1.53541202e-01 1.53493486e-01 + 1.53445630e-01 1.53397636e-01 1.53349503e-01 1.53301229e-01 1.53252815e-01 + 1.53204260e-01 1.53155564e-01 1.53106726e-01 1.53057745e-01 1.53008621e-01 + 1.52959354e-01 1.52909943e-01 1.52860387e-01 1.52810686e-01 1.52760840e-01 + 1.52710847e-01 1.52660708e-01 1.52610421e-01 1.52559987e-01 1.52509404e-01 + 1.52458673e-01 1.52407792e-01 1.52356762e-01 1.52305580e-01 1.52254248e-01 + 1.52202764e-01 1.52151129e-01 1.52099340e-01 1.52047398e-01 1.51995302e-01 + 1.51943052e-01 1.51890647e-01 1.51838087e-01 1.51785370e-01 1.51732497e-01 + 1.51679467e-01 1.51626279e-01 1.51572932e-01 1.51519426e-01 1.51465761e-01 + 1.51411936e-01 1.51357950e-01 1.51303802e-01 1.51249493e-01 1.51195021e-01 + 1.51140386e-01 1.51085587e-01 1.51030624e-01 1.50975496e-01 1.50920202e-01 + 1.50864742e-01 1.50809116e-01 1.50753322e-01 1.50697360e-01 1.50641229e-01 + 1.50584929e-01 1.50528459e-01 1.50471818e-01 1.50415007e-01 1.50358023e-01 + 1.50300867e-01 1.50243538e-01 1.50186035e-01 1.50128358e-01 1.50070506e-01 + 1.50012478e-01 1.49954274e-01 1.49895893e-01 1.49837334e-01 1.49778596e-01 + 1.49719680e-01 1.49660584e-01 1.49601308e-01 1.49541850e-01 1.49482211e-01 + 1.49422390e-01 1.49362385e-01 1.49302197e-01 1.49241824e-01 1.49181266e-01 + 1.49120523e-01 1.49059593e-01 1.48998475e-01 1.48937170e-01 1.48875676e-01 + 1.48813992e-01 1.48752119e-01 1.48690055e-01 1.48627799e-01 1.48565351e-01 + 1.48502710e-01 1.48439876e-01 1.48376847e-01 1.48313623e-01 1.48250203e-01 + 1.48186586e-01 1.48122773e-01 1.48058761e-01 1.47994550e-01 1.47930139e-01 + 1.47865528e-01 1.47800717e-01 1.47735703e-01 1.47670486e-01 1.47605066e-01 + 1.47539442e-01 1.47473613e-01 1.47407579e-01 1.47341337e-01 1.47274889e-01 + 1.47208232e-01 1.47141367e-01 1.47074292e-01 1.47007006e-01 1.46939509e-01 + 1.46871800e-01 1.46803878e-01 1.46735743e-01 1.46667393e-01 1.46598827e-01 + 1.46530046e-01 1.46461047e-01 1.46391831e-01 1.46322396e-01 1.46252742e-01 + 1.46182867e-01 1.46112772e-01 1.46042454e-01 1.45971913e-01 1.45901149e-01 + 1.45830160e-01 1.45758946e-01 1.45687506e-01 1.45615839e-01 1.45543943e-01 + 1.45471819e-01 1.45399465e-01 1.45326880e-01 1.45254064e-01 1.45181016e-01 + 1.45107734e-01 1.45034218e-01 1.44960467e-01 1.44886480e-01 1.44812256e-01 + 1.44737795e-01 1.44663094e-01 1.44588154e-01 1.44512974e-01 1.44437552e-01 + 1.44361888e-01 1.44285981e-01 1.44209829e-01 1.44133432e-01 1.44056789e-01 + 1.43979899e-01 1.43902761e-01 1.43825374e-01 1.43747737e-01 1.43669849e-01 + 1.43591710e-01 1.43513317e-01 1.43434671e-01 1.43355770e-01 1.43276613e-01 + 1.43197200e-01 1.43117528e-01 1.43037599e-01 1.42957409e-01 1.42876959e-01 + 1.42796247e-01 1.42715272e-01 1.42634034e-01 1.42552530e-01 1.42470761e-01 + 1.42388726e-01 1.42306422e-01 1.42223850e-01 1.42141007e-01 1.42057894e-01 + 1.41974509e-01 1.41890851e-01 1.41806919e-01 1.41722711e-01 1.41638228e-01 + 1.41553467e-01 1.41468428e-01 1.41383109e-01 1.41297511e-01 1.41211630e-01 + 1.41125467e-01 1.41039020e-01 1.40952288e-01 1.40865271e-01 1.40777966e-01 + 1.40690373e-01 1.40602491e-01 1.40514319e-01 1.40425855e-01 1.40337099e-01 + 1.40248048e-01 1.40158703e-01 1.40069062e-01 1.39979124e-01 1.39888888e-01 + 1.39798352e-01 1.39707515e-01 1.39616377e-01 1.39524936e-01 1.39433191e-01 + 1.39341140e-01 1.39248784e-01 1.39156119e-01 1.39063146e-01 1.38969862e-01 + 1.38876268e-01 1.38782361e-01 1.38688141e-01 1.38593606e-01 1.38498755e-01 + 1.38403586e-01 1.38308099e-01 1.38212293e-01 1.38116166e-01 1.38019716e-01 + 1.37922943e-01 1.37825846e-01 1.37728423e-01 1.37630672e-01 1.37532594e-01 + 1.37434185e-01 1.37335446e-01 1.37236375e-01 1.37136970e-01 1.37037230e-01 + 1.36937155e-01 1.36836742e-01 1.36735991e-01 1.36634900e-01 1.36533467e-01 + 1.36431692e-01 1.36329574e-01 1.36227110e-01 1.36124300e-01 1.36021142e-01 + 1.35917635e-01 1.35813778e-01 1.35709568e-01 1.35605006e-01 1.35500089e-01 + 1.35394817e-01 1.35289187e-01 1.35183199e-01 1.35076851e-01 1.34970142e-01 + 1.34863070e-01 1.34755634e-01 1.34647833e-01 1.34539665e-01 1.34431128e-01 + 1.34322223e-01 1.34212946e-01 1.34103297e-01 1.33993274e-01 1.33882876e-01 + 1.33772101e-01 1.33660948e-01 1.33549416e-01 1.33437503e-01 1.33325207e-01 + 1.33212528e-01 1.33099463e-01 1.32986012e-01 1.32872172e-01 1.32757943e-01 + 1.32643323e-01 1.32528310e-01 1.32412904e-01 1.32297101e-01 1.32180902e-01 + 1.32064305e-01 1.31947307e-01 1.31829908e-01 1.31712106e-01 1.31593899e-01 + 1.31475287e-01 1.31356267e-01 1.31236838e-01 1.31116998e-01 1.30996746e-01 + 1.30876081e-01 1.30755001e-01 1.30633504e-01 1.30511588e-01 1.30389253e-01 + 1.30266497e-01 1.30143318e-01 1.30019714e-01 1.29895684e-01 1.29771227e-01 + 1.29646341e-01 1.29521024e-01 1.29395274e-01 1.29269091e-01 1.29142472e-01 + 1.29015417e-01 1.28887922e-01 1.28759987e-01 1.28631611e-01 1.28502791e-01 + 1.28373525e-01 1.28243813e-01 1.28113653e-01 1.27983043e-01 1.27851981e-01 + 1.27720466e-01 1.27588496e-01 1.27456070e-01 1.27323186e-01 1.27189841e-01 + 1.27056036e-01 1.26921767e-01 1.26787033e-01 1.26651833e-01 1.26516166e-01 + 1.26380028e-01 1.26243419e-01 1.26106337e-01 1.25968780e-01 1.25830747e-01 + 1.25692235e-01 1.25553244e-01 1.25413771e-01 1.25273815e-01 1.25133375e-01 + 1.24992448e-01 1.24851032e-01 1.24709127e-01 1.24566730e-01 1.24423839e-01 + 1.24280454e-01 1.24136571e-01 1.23992190e-01 1.23847309e-01 1.23701926e-01 + 1.23556040e-01 1.23409647e-01 1.23262748e-01 1.23115340e-01 1.22967422e-01 + 1.22818991e-01 1.22670046e-01 1.22520585e-01 1.22370607e-01 1.22220110e-01 + 1.22069091e-01 1.21917550e-01 1.21765484e-01 1.21612892e-01 1.21459773e-01 + 1.21306123e-01 1.21151942e-01 1.20997228e-01 1.20841979e-01 1.20686193e-01 + 1.20529869e-01 1.20373004e-01 1.20215598e-01 1.20057648e-01 1.19899152e-01 + 1.19740109e-01 1.19580518e-01 1.19420375e-01 1.19259680e-01 1.19098431e-01 + 1.18936626e-01 1.18774263e-01 1.18611341e-01 1.18447857e-01 1.18283810e-01 + 1.18119199e-01 1.17954021e-01 1.17788276e-01 1.17621960e-01 1.17455072e-01 + 1.17287611e-01 1.17119575e-01 1.16950961e-01 1.16781770e-01 1.16611997e-01 + 1.16441643e-01 1.16270705e-01 1.16099181e-01 1.15927070e-01 1.15754370e-01 + 1.15581079e-01 1.15407195e-01 1.15232718e-01 1.15057644e-01 1.14881973e-01 + 1.14705703e-01 1.14528831e-01 1.14351357e-01 1.14173279e-01 1.13994594e-01 + 1.13815302e-01 1.13635400e-01 1.13454887e-01 1.13273762e-01 1.13092022e-01 + 1.12909666e-01 1.12726692e-01 1.12543099e-01 1.12358884e-01 1.12174047e-01 + 1.11988586e-01 1.11802499e-01 1.11615785e-01 1.11428441e-01 1.11240467e-01 + 1.11051860e-01 1.10862619e-01 1.10672743e-01 1.10482230e-01 1.10291079e-01 + 1.10099287e-01 1.09906853e-01 1.09713777e-01 1.09520055e-01 1.09325688e-01 + 1.09130672e-01 1.08935008e-01 1.08738692e-01 1.08541725e-01 1.08344104e-01 + 1.08145827e-01 1.07946894e-01 1.07747304e-01 1.07547053e-01 1.07346142e-01 + 1.07144569e-01 1.06942333e-01 1.06739431e-01 1.06535863e-01 1.06331627e-01 + 1.06126723e-01 1.05921148e-01 1.05714902e-01 1.05507982e-01 1.05300389e-01 + 1.05092120e-01 1.04883175e-01 1.04673552e-01 1.04463250e-01 1.04252268e-01 + 1.04040604e-01 1.03828258e-01 1.03615228e-01 1.03401513e-01 1.03187113e-01 + 1.02972026e-01 1.02756250e-01 1.02539786e-01 1.02322631e-01 1.02104785e-01 + 1.01886248e-01 1.01667017e-01 1.01447092e-01 1.01226473e-01 1.01005158e-01 + 1.00783146e-01 1.00560436e-01 1.00337028e-01 1.00112922e-01 9.98881150e-02 + 9.96626076e-02 9.94363989e-02 9.92094881e-02 9.89818746e-02 9.87535577e-02 + 9.85245367e-02 9.82948112e-02 9.80643804e-02 9.78332440e-02 9.76014013e-02 + 9.73688518e-02 9.71355952e-02 9.69016310e-02 9.66669588e-02 9.64315783e-02 + 9.61954891e-02 9.59586908e-02 9.57211834e-02 9.54829664e-02 9.52440398e-02 + 9.50044033e-02 9.47640568e-02 9.45230003e-02 9.42812335e-02 9.40387567e-02 + 9.37955696e-02 9.35516725e-02 9.33070653e-02 9.30617482e-02 9.28157214e-02 + 9.25689850e-02 9.23215393e-02 9.20733846e-02 9.18245212e-02 9.15749495e-02 + 9.13246699e-02 9.10736827e-02 9.08219886e-02 9.05695880e-02 9.03164816e-02 + 9.00626699e-02 8.98081536e-02 8.95529334e-02 8.92970102e-02 8.90403847e-02 + 8.87830577e-02 8.85250303e-02 8.82663032e-02 8.80068776e-02 8.77467546e-02 + 8.74859351e-02 8.72244204e-02 8.69622117e-02 8.66993103e-02 8.64357174e-02 + 8.61714345e-02 8.59064630e-02 8.56408044e-02 8.53744602e-02 8.51074320e-02 + 8.48397215e-02 8.45713304e-02 8.43022605e-02 8.40325136e-02 8.37620916e-02 + 8.34909965e-02 8.32192302e-02 8.29467950e-02 8.26736929e-02 8.23999262e-02 + 8.21254970e-02 8.18504079e-02 8.15746611e-02 8.12982592e-02 8.10212047e-02 + 8.07435002e-02 8.04651484e-02 8.01861521e-02 7.99065141e-02 7.96262372e-02 + 7.93453246e-02 7.90637791e-02 7.87816039e-02 7.84988023e-02 7.82153774e-02 + 7.79313327e-02 7.76466715e-02 7.73613974e-02 7.70755139e-02 7.67890246e-02 + 7.65019334e-02 7.62142440e-02 7.59259604e-02 7.56370865e-02 7.53476263e-02 + 7.50575841e-02 7.47669641e-02 7.44757706e-02 7.41840079e-02 7.38916807e-02 + 7.35987934e-02 7.33053507e-02 7.30113575e-02 7.27168185e-02 7.24217387e-02 + 7.21261231e-02 7.18299768e-02 7.15333051e-02 7.12361133e-02 7.09384067e-02 + 7.06401909e-02 7.03414715e-02 7.00422541e-02 6.97425446e-02 6.94423488e-02 + 6.91416728e-02 6.88405225e-02 6.85389043e-02 6.82368244e-02 6.79342891e-02 + 6.76313050e-02 6.73278787e-02 6.70240169e-02 6.67197264e-02 6.64150140e-02 + 6.61098869e-02 6.58043520e-02 6.54984168e-02 6.51920884e-02 6.48853744e-02 + 6.45782823e-02 6.42708198e-02 6.39629946e-02 6.36548146e-02 6.33462879e-02 + 6.30374225e-02 6.27282267e-02 6.24187088e-02 6.21088773e-02 6.17987406e-02 + 6.14883076e-02 6.11775870e-02 6.08665877e-02 6.05553188e-02 6.02437893e-02 + 5.99320086e-02 5.96199860e-02 5.93077311e-02 5.89952534e-02 5.86825627e-02 + 5.83696689e-02 5.80565818e-02 5.77433118e-02 5.74298688e-02 5.71162634e-02 + 5.68025058e-02 5.64886069e-02 5.61745771e-02 5.58604274e-02 5.55461687e-02 + 5.52318121e-02 5.49173687e-02 5.46028499e-02 5.42882672e-02 5.39736321e-02 + 5.36589562e-02 5.33442514e-02 5.30295296e-02 5.27148029e-02 5.24000835e-02 + 5.20853836e-02 5.17707158e-02 5.14560924e-02 5.11415263e-02 5.08270302e-02 + 5.05126170e-02 5.01982998e-02 4.98840918e-02 4.95700061e-02 4.92560564e-02 + 4.89422560e-02 4.86286186e-02 4.83151580e-02 4.80018882e-02 4.76888231e-02 + 4.73759769e-02 4.70633638e-02 4.67509982e-02 4.64388946e-02 4.61270676e-02 + 4.58155320e-02 4.55043026e-02 4.51933944e-02 4.48828225e-02 4.45726020e-02 + 4.42627483e-02 4.39532767e-02 4.36442030e-02 4.33355426e-02 4.30273114e-02 + 4.27195253e-02 4.24122002e-02 4.21053521e-02 4.17989974e-02 4.14931524e-02 + 4.11878333e-02 4.08830568e-02 4.05788395e-02 4.02751981e-02 3.99721494e-02 + 3.96697104e-02 3.93678979e-02 3.90667293e-02 3.87662217e-02 3.84663923e-02 + 3.81672586e-02 3.78688381e-02 3.75711484e-02 3.72742070e-02 3.69780319e-02 + 3.66826407e-02 3.63880515e-02 3.60942822e-02 3.58013509e-02 3.55092758e-02 + 3.52180750e-02 3.49277670e-02 3.46383700e-02 3.43499026e-02 3.40623832e-02 + 3.37758304e-02 3.34902629e-02 3.32056994e-02 3.29221586e-02 3.26396593e-02 + 3.23582205e-02 3.20778611e-02 3.17986000e-02 3.15204562e-02 3.12434489e-02 + 3.09675972e-02 3.06929202e-02 3.04194370e-02 3.01471670e-02 2.98761294e-02 + 2.96063435e-02 2.93378286e-02 2.90706040e-02 2.88046891e-02 2.85401033e-02 + 2.82768660e-02 2.80149966e-02 2.77545145e-02 2.74954392e-02 2.72377901e-02 + 2.69815866e-02 2.67268481e-02 2.64735941e-02 2.62218441e-02 2.59716174e-02 + 2.57229334e-02 2.54758115e-02 2.52302711e-02 2.49863315e-02 2.47440120e-02 + 2.45033320e-02 2.42643105e-02 2.40269669e-02 2.37913204e-02 2.35573900e-02 + 2.33251949e-02 2.30947540e-02 2.28660864e-02 2.26392110e-02 2.24141466e-02 + 2.21909120e-02 2.19695260e-02 2.17500072e-02 2.15323742e-02 2.13166455e-02 + 2.11028396e-02 2.08909747e-02 2.06810691e-02 2.04731411e-02 2.02672086e-02 + 2.00632896e-02 1.98614019e-02 1.96615634e-02 1.94637917e-02 1.92681043e-02 + 1.90745186e-02 1.88830519e-02 1.86937213e-02 1.85065440e-02 1.83215368e-02 + 1.81387165e-02 1.79580998e-02 1.77797030e-02 1.76035426e-02 1.74296348e-02 + 1.72579956e-02 1.70886409e-02 1.69215864e-02 1.67568478e-02 1.65944402e-02 + 1.64343791e-02 1.62766795e-02 1.61213562e-02 1.59684240e-02 1.58178973e-02 + 1.56697904e-02 1.55241176e-02 1.53808927e-02 1.52401295e-02 1.51018416e-02 + 1.49660422e-02 1.48327446e-02 1.47019616e-02 1.45737059e-02 1.44479901e-02 + 1.43248264e-02 1.42042269e-02 1.40862035e-02 1.39707676e-02 1.38579308e-02 + 1.37477041e-02 1.36400985e-02 1.35351246e-02 1.34327929e-02 1.33331135e-02 + 1.32360964e-02 1.31417514e-02 1.30500877e-02 1.29611147e-02 1.28748412e-02 + 1.27912760e-02 1.27104274e-02 1.26323037e-02 1.25569127e-02 1.24842620e-02 + 1.24143590e-02 1.23472109e-02 1.22828243e-02 1.22212060e-02 1.21623621e-02 + 1.21062986e-02 1.20530213e-02 1.20025356e-02 1.19548467e-02 1.19099595e-02 + 1.18678785e-02 1.18286081e-02 1.17921522e-02 1.17585148e-02 1.17276991e-02 + 1.16997084e-02 1.16745455e-02 1.16522130e-02 1.16327133e-02 1.16160484e-02 + 1.16022198e-02 1.15912292e-02 1.15830776e-02 1.15777658e-02 1.15752944e-02 + 1.15756637e-02 1.15788736e-02 1.15849238e-02 1.15938137e-02 1.16055423e-02 + 1.16201084e-02 1.16375106e-02 1.16577471e-02 1.16808156e-02 1.17067140e-02 + 1.17354395e-02 1.17669892e-02 1.18013598e-02 1.18385478e-02 1.18785493e-02 + 1.19213604e-02 1.19669765e-02 1.20153931e-02 1.20666051e-02 1.21206073e-02 + 1.21773942e-02 1.22369601e-02 1.22992988e-02 1.23644040e-02 1.24322691e-02 + 1.25028871e-02 1.25762510e-02 1.26523533e-02 1.27311863e-02 1.28127420e-02 + 1.28970121e-02 1.29839883e-02 1.30736618e-02 1.31660235e-02 1.32610642e-02 + 1.33587744e-02 1.34591444e-02 1.35621641e-02 1.36678232e-02 1.37761113e-02 + 1.38870177e-02 1.40005314e-02 1.41166411e-02 1.42353355e-02 1.43566028e-02 + 1.44804312e-02 1.46068085e-02 1.47357225e-02 1.48671606e-02 1.50011099e-02 + 1.51375576e-02 1.52764904e-02 1.54178949e-02 1.55617576e-02 1.57080646e-02 + 1.58568020e-02 1.60079555e-02 1.61615108e-02 1.63174534e-02 1.64757685e-02 + 1.66364411e-02 1.67994562e-02 1.69647985e-02 1.71324525e-02 1.73024027e-02 + 1.74746333e-02 1.76491283e-02 1.78258717e-02 1.80048472e-02 1.81860385e-02 + 1.83694290e-02 1.85550020e-02 1.87427408e-02 1.89326284e-02 1.91246477e-02 + 1.93187815e-02 1.95150125e-02 1.97133233e-02 1.99136963e-02 2.01161138e-02 + 2.03205580e-02 2.05270111e-02 2.07354551e-02 2.09458718e-02 2.11582431e-02 + 2.13725507e-02 2.15887763e-02 2.18069014e-02 2.20269075e-02 2.22487759e-02 + 2.24724880e-02 2.26980251e-02 2.29253683e-02 2.31544988e-02 2.33853976e-02 + 2.36180458e-02 2.38524242e-02 2.40885138e-02 2.43262955e-02 2.45657500e-02 + 2.48068582e-02 2.50496007e-02 2.52939584e-02 2.55399119e-02 2.57874418e-02 + 2.60365287e-02 2.62871534e-02 2.65392963e-02 2.67929381e-02 2.70480593e-02 + 2.73046406e-02 2.75626624e-02 2.78221053e-02 2.80829500e-02 2.83451769e-02 + 2.86087667e-02 2.88736999e-02 2.91399572e-02 2.94075191e-02 2.96763664e-02 + 2.99464796e-02 3.02178395e-02 3.04904267e-02 3.07642221e-02 3.10392064e-02 + 3.13153605e-02 3.15926651e-02 3.18711011e-02 3.21506496e-02 3.24312916e-02 + 3.27130079e-02 3.29957798e-02 3.32795883e-02 3.35644146e-02 3.38502401e-02 + 3.41370460e-02 3.44248137e-02 3.47135246e-02 3.50031602e-02 3.52937021e-02 + 3.55851319e-02 3.58774314e-02 3.61705823e-02 3.64645665e-02 3.67593660e-02 + 3.70549627e-02 3.73513388e-02 3.76484764e-02 3.79463579e-02 3.82449655e-02 + 3.85442817e-02 3.88442891e-02 3.91449703e-02 3.94463079e-02 3.97482849e-02 + 4.00508841e-02 4.03540886e-02 4.06578813e-02 4.09622456e-02 4.12671648e-02 + 4.15726221e-02 4.18786013e-02 4.21850858e-02 4.24920594e-02 4.27995060e-02 + 4.31074094e-02 4.34157537e-02 4.37245230e-02 4.40337017e-02 4.43432741e-02 + 4.46532246e-02 4.49635380e-02 4.52741988e-02 4.55851920e-02 4.58965024e-02 + 4.62081152e-02 4.65200155e-02 4.68321886e-02 4.71446199e-02 4.74572950e-02 + 4.77701996e-02 4.80833192e-02 4.83966400e-02 4.87101479e-02 4.90238289e-02 + 4.93376695e-02 4.96516559e-02 4.99657746e-02 5.02800123e-02 5.05943557e-02 + 5.09087917e-02 5.12233073e-02 5.15378895e-02 5.18525256e-02 5.21672030e-02 + 5.24819092e-02 5.27966317e-02 5.31113583e-02 5.34260768e-02 5.37407752e-02 + 5.40554416e-02 5.43700642e-02 5.46846314e-02 5.49991317e-02 5.53135536e-02 + 5.56278858e-02 5.59421172e-02 5.62562368e-02 5.65702336e-02 5.68840968e-02 + 5.71978158e-02 5.75113800e-02 5.78247790e-02 5.81380025e-02 5.84510402e-02 + 5.87638822e-02 5.90765185e-02 5.93889392e-02 5.97011346e-02 6.00130952e-02 + 6.03248115e-02 6.06362741e-02 6.09474738e-02 6.12584015e-02 6.15690482e-02 + 6.18794050e-02 6.21894631e-02 6.24992140e-02 6.28086489e-02 6.31177596e-02 + 6.34265377e-02 6.37349751e-02 6.40430636e-02 6.43507952e-02 6.46581622e-02 + 6.49651567e-02 6.52717712e-02 6.55779981e-02 6.58838299e-02 6.61892594e-02 + 6.64942794e-02 6.67988828e-02 6.71030625e-02 6.74068117e-02 6.77101237e-02 + 6.80129917e-02 6.83154092e-02 6.86173697e-02 6.89188669e-02 6.92198944e-02 + 6.95204462e-02 6.98205161e-02 7.01200982e-02 7.04191867e-02 7.07177757e-02 + 7.10158596e-02 7.13134329e-02 7.16104900e-02 7.19070256e-02 7.22030344e-02 + 7.24985112e-02 7.27934509e-02 7.30878484e-02 7.33816990e-02 7.36749977e-02 + 7.39677398e-02 7.42599207e-02 7.45515358e-02 7.48425807e-02 7.51330509e-02 + 7.54229421e-02 7.57122502e-02 7.60009711e-02 7.62891006e-02 7.65766348e-02 + 7.68635699e-02 7.71499020e-02 7.74356274e-02 7.77207425e-02 7.80052438e-02 + 7.82891277e-02 7.85723908e-02 7.88550299e-02 7.91370416e-02 7.94184229e-02 + 7.96991705e-02 7.99792815e-02 8.02587530e-02 8.05375820e-02 8.08157657e-02 + 8.10933015e-02 8.13701866e-02 8.16464184e-02 8.19219944e-02 8.21969122e-02 + 8.24711693e-02 8.27447635e-02 8.30176924e-02 8.32899539e-02 8.35615458e-02 + 8.38324661e-02 8.41027128e-02 8.43722839e-02 8.46411775e-02 8.49093918e-02 + 8.51769250e-02 8.54437756e-02 8.57099417e-02 8.59754218e-02 8.62402144e-02 + 8.65043180e-02 8.67677312e-02 8.70304527e-02 8.72924810e-02 8.75538151e-02 + 8.78144536e-02 8.80743954e-02 8.83336395e-02 8.85921847e-02 8.88500302e-02 + 8.91071748e-02 8.93636178e-02 8.96193583e-02 8.98743956e-02 9.01287287e-02 + 9.03823571e-02 9.06352801e-02 9.08874971e-02 9.11390074e-02 9.13898107e-02 + 9.16399063e-02 9.18892939e-02 9.21379731e-02 9.23859434e-02 9.26332047e-02 + 9.28797566e-02 9.31255989e-02 9.33707315e-02 9.36151540e-02 9.38588666e-02 + 9.41018690e-02 9.43441612e-02 9.45857433e-02 9.48266152e-02 9.50667771e-02 + 9.53062290e-02 9.55449711e-02 9.57830036e-02 9.60203266e-02 9.62569405e-02 + 9.64928454e-02 9.67280417e-02 9.69625298e-02 9.71963100e-02 9.74293827e-02 + 9.76617483e-02 9.78934074e-02 9.81243603e-02 9.83546076e-02 9.85841499e-02 + 9.88129878e-02 9.90411218e-02 9.92685525e-02 9.94952807e-02 9.97213070e-02 + 9.99466321e-02 1.00171257e-01 1.00395182e-01 1.00618408e-01 1.00840936e-01 + 1.01062766e-01 1.01283901e-01 1.01504340e-01 1.01724084e-01 1.01943134e-01 + 1.02161492e-01 1.02379158e-01 1.02596133e-01 1.02812418e-01 1.03028014e-01 + 1.03242923e-01 1.03457145e-01 1.03670682e-01 1.03883534e-01 1.04095702e-01 + 1.04307189e-01 1.04517994e-01 1.04728119e-01 1.04937566e-01 1.05146335e-01 + 1.05354428e-01 1.05561846e-01 1.05768590e-01 1.05974662e-01 1.06180062e-01 + 1.06384793e-01 1.06588855e-01 1.06792249e-01 1.06994978e-01 1.07197042e-01 + 1.07398443e-01 1.07599182e-01 1.07799261e-01 1.07998680e-01 1.08197442e-01 + 1.08395548e-01 1.08592999e-01 1.08789797e-01 1.08985943e-01 1.09181439e-01 + 1.09376286e-01 1.09570485e-01 1.09764039e-01 1.09956948e-01 1.10149214e-01 + 1.10340840e-01 1.10531825e-01 1.10722172e-01 1.10911883e-01 1.11100959e-01 + 1.11289401e-01 1.11477211e-01 1.11664391e-01 1.11850942e-01 1.12036866e-01 + 1.12222165e-01 1.12406840e-01 1.12590892e-01 1.12774325e-01 1.12957138e-01 + 1.13139333e-01 1.13320913e-01 1.13501880e-01 1.13682233e-01 1.13861976e-01 + 1.14041111e-01 1.14219637e-01 1.14397559e-01 1.14574876e-01 1.14751591e-01 + 1.14927705e-01 1.15103221e-01 1.15278139e-01 1.15452462e-01 1.15626191e-01 + 1.15799328e-01 1.15971875e-01 1.16143834e-01 1.16315205e-01 1.16485991e-01 + 1.16656194e-01 1.16825815e-01 1.16994856e-01 1.17163320e-01 1.17331206e-01 + 1.17498518e-01 1.17665257e-01 1.17831424e-01 1.17997022e-01 1.18162053e-01 + 1.18326517e-01 1.18490417e-01 1.18653754e-01 1.18816531e-01 1.18978749e-01 + 1.19140409e-01 1.19301514e-01 1.19462065e-01 1.19622064e-01 1.19781513e-01 + 1.19940414e-01 1.20098767e-01 1.20256576e-01 1.20413841e-01 1.20570565e-01 + 1.20726749e-01 1.20882395e-01 1.21037505e-01 1.21192080e-01 1.21346123e-01 + 1.21499635e-01 1.21652617e-01 1.21805072e-01 1.21957001e-01 1.22108406e-01 + 1.22259289e-01 1.22409651e-01 1.22559495e-01 1.22708821e-01 1.22857632e-01 + 1.23005930e-01 1.23153715e-01 1.23300991e-01 1.23447758e-01 1.23594019e-01 + 1.23739774e-01 1.23885027e-01 1.24029777e-01 1.24174028e-01 1.24317781e-01 + 1.24461038e-01 1.24603800e-01 1.24746069e-01 1.24887847e-01 1.25029136e-01 + 1.25169936e-01 1.25310251e-01 1.25450081e-01 1.25589428e-01 1.25728294e-01 + 1.25866681e-01 1.26004590e-01 1.26142024e-01 1.26278983e-01 1.26415469e-01 + 1.26551484e-01 1.26687030e-01 1.26822109e-01 1.26956721e-01 1.27090870e-01 + 1.27224555e-01 1.27357780e-01 1.27490545e-01 1.27622852e-01 1.27754704e-01 + 1.27886101e-01 1.28017045e-01 1.28147538e-01 1.28277582e-01 1.28407177e-01 + 1.28536327e-01 1.28665031e-01 1.28793293e-01 1.28921113e-01 1.29048493e-01 + 1.29175435e-01 1.29301941e-01 1.29428011e-01 1.29553648e-01 1.29678853e-01 + 1.29803627e-01 1.29927973e-01 1.30051892e-01 1.30175385e-01 1.30298454e-01 + 1.30421101e-01 1.30543327e-01 1.30665133e-01 1.30786522e-01 1.30907494e-01 + 1.31028051e-01 1.31148196e-01 1.31267929e-01 1.31387251e-01 1.31506165e-01 + 1.31624672e-01 1.31742773e-01 1.31860470e-01 1.31977765e-01 1.32094658e-01 + 1.32211152e-01 1.32327248e-01 1.32442947e-01 1.32558252e-01 1.32673162e-01 + 1.32787680e-01 1.32901808e-01 1.33015546e-01 1.33128897e-01 1.33241861e-01 + 1.33354441e-01 1.33466637e-01 1.33578451e-01 1.33689884e-01 1.33800939e-01 + 1.33911615e-01 1.34021916e-01 1.34131841e-01 1.34241394e-01 1.34350574e-01 + 1.34459383e-01 1.34567824e-01 1.34675896e-01 1.34783602e-01 1.34890944e-01 + 1.34997921e-01 1.35104536e-01 1.35210791e-01 1.35316685e-01 1.35422222e-01 + 1.35527402e-01 1.35632226e-01 1.35736697e-01 1.35840814e-01 1.35944580e-01 + 1.36047997e-01 1.36151064e-01 1.36253784e-01 1.36356158e-01 1.36458187e-01 + 1.36559873e-01 1.36661216e-01 1.36762219e-01 1.36862882e-01 1.36963207e-01 + 1.37063195e-01 1.37162847e-01 1.37262165e-01 1.37361150e-01 1.37459803e-01 + 1.37558126e-01 1.37656119e-01 1.37753784e-01 1.37851123e-01 1.37948136e-01 + 1.38044824e-01 1.38141190e-01 1.38237233e-01 1.38332957e-01 1.38428361e-01 + 1.38523446e-01 1.38618215e-01 1.38712668e-01 1.38806807e-01 1.38900633e-01 + 1.38994146e-01 1.39087349e-01 1.39180241e-01 1.39272826e-01 1.39365103e-01 + 1.39457074e-01 1.39548740e-01 1.39640102e-01 1.39731162e-01 1.39821920e-01 + 1.39912378e-01 1.40002537e-01 1.40092398e-01 1.40181961e-01 1.40271230e-01 + 1.40360203e-01 1.40448884e-01 1.40537272e-01 1.40625368e-01 1.40713175e-01 + 1.40800693e-01 1.40887923e-01 1.40974866e-01 1.41061523e-01 1.41147896e-01 + 1.41233986e-01 1.41319793e-01 1.41405319e-01 1.41490565e-01 1.41575532e-01 + 1.41660220e-01 1.41744632e-01 1.41828768e-01 1.41912628e-01 1.41996216e-01 + 1.42079530e-01 1.42162572e-01 1.42245344e-01 1.42327847e-01 1.42410081e-01 + 1.42492047e-01 1.42573747e-01 1.42655181e-01 1.42736351e-01 1.42817257e-01 + 1.42897901e-01 1.42978283e-01 1.43058405e-01 1.43138268e-01 1.43217872e-01 + 1.43297218e-01 1.43376309e-01 1.43455143e-01 1.43533723e-01 1.43612050e-01 + 1.43690124e-01 1.43767947e-01 1.43845519e-01 1.43922841e-01 1.43999914e-01 + 1.44076740e-01 1.44153319e-01 1.44229652e-01 1.44305740e-01 1.44381584e-01 + 1.44457185e-01 1.44532544e-01 1.44607662e-01 1.44682539e-01 1.44757177e-01 + 1.44831577e-01 1.44905739e-01 1.44979665e-01 1.45053355e-01 1.45126809e-01 + 1.45200031e-01 1.45273019e-01 1.45345774e-01 1.45418299e-01 1.45490593e-01 + 1.45562658e-01 1.45634494e-01 1.45706102e-01 1.45777484e-01 1.45848639e-01 + 1.45919569e-01 1.45990275e-01 1.46060758e-01 1.46131018e-01 1.46201056e-01 + 1.46270873e-01 1.46340470e-01 1.46409848e-01 1.46479008e-01 1.46547950e-01 + 1.46616675e-01 1.46685184e-01 1.46753479e-01 1.46821558e-01 1.46889425e-01 + 1.46957079e-01 1.47024520e-01 1.47091751e-01 1.47158772e-01 1.47225583e-01 + 1.47292185e-01 1.47358580e-01 1.47424768e-01 1.47490749e-01 1.47556524e-01 + 1.47622095e-01 1.47687462e-01 1.47752626e-01 1.47817587e-01 1.47882347e-01 + 1.19316516e-02 1.17837661e-02 1.16368916e-02 1.14910312e-02 1.13461881e-02 + 1.12023652e-02 1.10595657e-02 1.09177924e-02 1.07770486e-02 1.06373371e-02 + 1.04986608e-02 1.03610229e-02 1.02244262e-02 1.00888736e-02 9.95436796e-03 + 9.82091227e-03 9.68850936e-03 9.55716205e-03 9.42687318e-03 9.29764555e-03 + 9.16948195e-03 9.04238514e-03 8.91635788e-03 8.79140288e-03 8.66752287e-03 + 8.54472052e-03 8.42299850e-03 8.30235947e-03 8.18280604e-03 8.06434082e-03 + 7.94696640e-03 7.83068535e-03 7.71550020e-03 7.60141348e-03 7.48842769e-03 + 7.37654531e-03 7.26576880e-03 7.15610060e-03 7.04754311e-03 6.94009874e-03 + 6.83376985e-03 6.72855879e-03 6.62446789e-03 6.52149946e-03 6.41965576e-03 + 6.31893907e-03 6.21935162e-03 6.12089562e-03 6.02357326e-03 5.92738670e-03 + 5.83233810e-03 5.73842957e-03 5.64566320e-03 5.55404108e-03 5.46356524e-03 + 5.37423772e-03 5.28606051e-03 5.19903560e-03 5.11316493e-03 5.02845043e-03 + 4.94489402e-03 4.86249756e-03 4.78126291e-03 4.70119191e-03 4.62228636e-03 + 4.54454803e-03 4.46797870e-03 4.39258007e-03 4.31835387e-03 4.24530177e-03 + 4.17342543e-03 4.10272646e-03 4.03320649e-03 3.96486708e-03 3.89770979e-03 + 3.83173614e-03 3.76694764e-03 3.70334576e-03 3.64093194e-03 3.57970760e-03 + 3.51967415e-03 3.46083296e-03 3.40318535e-03 3.34673266e-03 3.29147617e-03 + 3.23741715e-03 3.18455682e-03 3.13289641e-03 3.08243708e-03 3.03318001e-03 + 2.98512631e-03 2.93827709e-03 2.89263342e-03 2.84819635e-03 2.80496690e-03 + 2.76294607e-03 2.72213481e-03 2.68253407e-03 2.64414475e-03 2.60696775e-03 + 2.57100391e-03 2.53625406e-03 2.50271900e-03 2.47039951e-03 2.43929633e-03 + 2.40941017e-03 2.38074173e-03 2.35329167e-03 2.32706061e-03 2.30204917e-03 + 2.27825792e-03 2.25568742e-03 2.23433817e-03 2.21421068e-03 2.19530540e-03 + 2.17762279e-03 2.16116324e-03 2.14592713e-03 2.13191482e-03 2.11912664e-03 + 2.10756286e-03 2.09722378e-03 2.08810961e-03 2.08022058e-03 2.07355687e-03 + 2.06811863e-03 2.06390598e-03 2.06091903e-03 2.05915784e-03 2.05862245e-03 + 2.05931288e-03 2.06122911e-03 2.06437109e-03 2.06873876e-03 2.07433201e-03 + 2.08115071e-03 2.08919471e-03 2.09846382e-03 2.10895782e-03 2.12067647e-03 + 2.13361950e-03 2.14778662e-03 2.16317748e-03 2.17979175e-03 2.19762903e-03 + 2.21668892e-03 2.23697097e-03 2.25847471e-03 2.28119965e-03 2.30514526e-03 + 2.33031099e-03 2.35669626e-03 2.38430046e-03 2.41312296e-03 2.44316308e-03 + 2.47442014e-03 2.50689342e-03 2.54058217e-03 2.57548561e-03 2.61160294e-03 + 2.64893333e-03 2.68747592e-03 2.72722982e-03 2.76819412e-03 2.81036787e-03 + 2.85375012e-03 2.89833986e-03 2.94413606e-03 2.99113769e-03 3.03934365e-03 + 3.08875285e-03 3.13936416e-03 3.19117640e-03 3.24418841e-03 3.29839896e-03 + 3.35380682e-03 3.41041071e-03 3.46820936e-03 3.52720143e-03 3.58738558e-03 + 3.64876043e-03 3.71132460e-03 3.77507665e-03 3.84001514e-03 3.90613858e-03 + 3.97344547e-03 4.04193428e-03 4.11160346e-03 4.18245143e-03 4.25447658e-03 + 4.32767727e-03 4.40205185e-03 4.47759865e-03 4.55431593e-03 4.63220199e-03 + 4.71125505e-03 4.79147333e-03 4.87285502e-03 4.95539830e-03 5.03910129e-03 + 5.12396213e-03 5.20997890e-03 5.29714966e-03 5.38547247e-03 5.47494535e-03 + 5.56556628e-03 5.65733324e-03 5.75024419e-03 5.84429703e-03 5.93948968e-03 + 6.03582001e-03 6.13328588e-03 6.23188511e-03 6.33161551e-03 6.43247487e-03 + 6.53446095e-03 6.63757148e-03 6.74180419e-03 6.84715676e-03 6.95362687e-03 + 7.06121216e-03 7.16991026e-03 7.27971878e-03 7.39063530e-03 7.50265737e-03 + 7.61578255e-03 7.73000833e-03 7.84533223e-03 7.96175172e-03 8.07926424e-03 + 8.19786724e-03 8.31755813e-03 8.43833428e-03 8.56019309e-03 8.68313189e-03 + 8.80714802e-03 8.93223879e-03 9.05840148e-03 9.18563337e-03 9.31393170e-03 + 9.44329371e-03 9.57371661e-03 9.70519759e-03 9.83773382e-03 9.97132246e-03 + 1.01059606e-02 1.02416455e-02 1.03783741e-02 1.05161435e-02 1.06549508e-02 + 1.07947931e-02 1.09356673e-02 1.10775705e-02 1.12204997e-02 1.13644517e-02 + 1.15094237e-02 1.16554125e-02 1.18024151e-02 1.19504282e-02 1.20994490e-02 + 1.22494741e-02 1.24005005e-02 1.25525250e-02 1.27055444e-02 1.28595555e-02 + 1.30145552e-02 1.31705401e-02 1.33275071e-02 1.34854528e-02 1.36443741e-02 + 1.38042677e-02 1.39651301e-02 1.41269582e-02 1.42897485e-02 1.44534978e-02 + 1.46182027e-02 1.47838598e-02 1.49504657e-02 1.51180170e-02 1.52865103e-02 + 1.54559422e-02 1.56263093e-02 1.57976080e-02 1.59698349e-02 1.61429866e-02 + 1.63170596e-02 1.64920502e-02 1.66679551e-02 1.68447707e-02 1.70224935e-02 + 1.72011198e-02 1.73806462e-02 1.75610691e-02 1.77423848e-02 1.79245899e-02 + 1.81076806e-02 1.82916533e-02 1.84765045e-02 1.86622305e-02 1.88488276e-02 + 1.90362922e-02 1.92246206e-02 1.94138091e-02 1.96038541e-02 1.97947518e-02 + 1.99864985e-02 2.01790905e-02 2.03725242e-02 2.05667957e-02 2.07619013e-02 + 2.09578372e-02 2.11545998e-02 2.13521852e-02 2.15505896e-02 2.17498093e-02 + 2.19498405e-02 2.21506794e-02 2.23523222e-02 2.25547650e-02 2.27580040e-02 + 2.29620355e-02 2.31668555e-02 2.33724603e-02 2.35788460e-02 2.37860087e-02 + 2.39939446e-02 2.42026499e-02 2.44121205e-02 2.46223528e-02 2.48333427e-02 + 2.50450864e-02 2.52575801e-02 2.54708198e-02 2.56848016e-02 2.58995216e-02 + 2.61149759e-02 2.63311606e-02 2.65480717e-02 2.67657054e-02 2.69840578e-02 + 2.72031248e-02 2.74229026e-02 2.76433871e-02 2.78645746e-02 2.80864610e-02 + 2.83090425e-02 2.85323149e-02 2.87562745e-02 2.89809172e-02 2.92062390e-02 + 2.94322361e-02 2.96589045e-02 2.98862402e-02 3.01142392e-02 3.03428976e-02 + 3.05722114e-02 3.08021766e-02 3.10327893e-02 3.12640455e-02 3.14959413e-02 + 3.17284726e-02 3.19616355e-02 3.21954260e-02 3.24298402e-02 3.26648740e-02 + 3.29005236e-02 3.31367848e-02 3.33736539e-02 3.36111267e-02 3.38491993e-02 + 3.40878677e-02 3.43271281e-02 3.45669763e-02 3.48074084e-02 3.50484206e-02 + 3.52900087e-02 3.55321689e-02 3.57748971e-02 3.60181895e-02 3.62620420e-02 + 3.65064508e-02 3.67514117e-02 3.69969210e-02 3.72429746e-02 3.74895686e-02 + 3.77366991e-02 3.79843621e-02 3.82325537e-02 3.84812698e-02 3.87305067e-02 + 3.89802604e-02 3.92305269e-02 3.94813024e-02 3.97325829e-02 3.99843644e-02 + 4.02366431e-02 4.04894151e-02 4.07426765e-02 4.09964234e-02 4.12506518e-02 + 4.15053579e-02 4.17605378e-02 4.20161876e-02 4.22723034e-02 4.25288815e-02 + 4.27859178e-02 4.30434086e-02 4.33013499e-02 4.35597380e-02 4.38185689e-02 + 4.40778389e-02 4.43375441e-02 4.45976807e-02 4.48582449e-02 4.51192328e-02 + 4.53806406e-02 4.56424645e-02 4.59047007e-02 4.61673455e-02 4.64303950e-02 + 4.66938455e-02 4.69576932e-02 4.72219342e-02 4.74865650e-02 4.77515816e-02 + 4.80169804e-02 4.82827576e-02 4.85489095e-02 4.88154324e-02 4.90823225e-02 + 4.93495761e-02 4.96171896e-02 4.98851592e-02 5.01534812e-02 5.04221520e-02 + 5.06911679e-02 5.09605252e-02 5.12302202e-02 5.15002494e-02 5.17706091e-02 + 5.20412956e-02 5.23123054e-02 5.25836347e-02 5.28552801e-02 5.31272378e-02 + 5.33995044e-02 5.36720762e-02 5.39449496e-02 5.42181211e-02 5.44915872e-02 + 5.47653442e-02 5.50393887e-02 5.53137171e-02 5.55883259e-02 5.58632116e-02 + 5.61383707e-02 5.64137997e-02 5.66894951e-02 5.69654535e-02 5.72416713e-02 + 5.75181451e-02 5.77948716e-02 5.80718471e-02 5.83490684e-02 5.86265320e-02 + 5.89042345e-02 5.91821725e-02 5.94603427e-02 5.97387415e-02 6.00173658e-02 + 6.02962120e-02 6.05752770e-02 6.08545573e-02 6.11340496e-02 6.14137506e-02 + 6.16936570e-02 6.19737655e-02 6.22540729e-02 6.25345758e-02 6.28152709e-02 + 6.30961552e-02 6.33772252e-02 6.36584778e-02 6.39399097e-02 6.42215178e-02 + 6.45032988e-02 6.47852496e-02 6.50673669e-02 6.53496477e-02 6.56320887e-02 + 6.59146868e-02 6.61974389e-02 6.64803419e-02 6.67633926e-02 6.70465880e-02 + 6.73299249e-02 6.76134004e-02 6.78970112e-02 6.81807545e-02 6.84646270e-02 + 6.87486259e-02 6.90327480e-02 6.93169904e-02 6.96013501e-02 6.98858240e-02 + 7.01704093e-02 7.04551029e-02 7.07399019e-02 7.10248033e-02 7.13098043e-02 + 7.15949019e-02 7.18800932e-02 7.21653753e-02 7.24507453e-02 7.27362004e-02 + 7.30217377e-02 7.33073544e-02 7.35930475e-02 7.38788144e-02 7.41646521e-02 + 7.44505580e-02 7.47365291e-02 7.50225627e-02 7.53086561e-02 7.55948066e-02 + 7.58810112e-02 7.61672674e-02 7.64535724e-02 7.67399235e-02 7.70263181e-02 + 7.73127534e-02 7.75992267e-02 7.78857354e-02 7.81722770e-02 7.84588486e-02 + 7.87454477e-02 7.90320718e-02 7.93187181e-02 7.96053841e-02 7.98920673e-02 + 8.01787651e-02 8.04654749e-02 8.07521941e-02 8.10389204e-02 8.13256510e-02 + 8.16123836e-02 8.18991157e-02 8.21858447e-02 8.24725683e-02 8.27592839e-02 + 8.30459891e-02 8.33326815e-02 8.36193586e-02 8.39060181e-02 8.41926576e-02 + 8.44792746e-02 8.47658669e-02 8.50524319e-02 8.53389675e-02 8.56254713e-02 + 8.59119408e-02 8.61983740e-02 8.64847683e-02 8.67711216e-02 8.70574315e-02 + 8.73436959e-02 8.76299124e-02 8.79160788e-02 8.82021929e-02 8.84882524e-02 + 8.87742552e-02 8.90601991e-02 8.93460819e-02 8.96319014e-02 8.99176554e-02 + 9.02033419e-02 9.04889586e-02 9.07745035e-02 9.10599745e-02 9.13453694e-02 + 9.16306861e-02 9.19159227e-02 9.22010770e-02 9.24861469e-02 9.27711305e-02 + 9.30560257e-02 9.33408305e-02 9.36255428e-02 9.39101607e-02 9.41946823e-02 + 9.44791055e-02 9.47634283e-02 9.50476489e-02 9.53317653e-02 9.56157755e-02 + 9.58996777e-02 9.61834699e-02 9.64671503e-02 9.67507170e-02 9.70341681e-02 + 9.73175018e-02 9.76007161e-02 9.78838094e-02 9.81667797e-02 9.84496252e-02 + 9.87323442e-02 9.90149348e-02 9.92973954e-02 9.95797240e-02 9.98619190e-02 + 1.00143979e-01 1.00425901e-01 1.00707685e-01 1.00989328e-01 1.01270829e-01 + 1.01552185e-01 1.01833397e-01 1.02114461e-01 1.02395376e-01 1.02676140e-01 + 1.02956752e-01 1.03237211e-01 1.03517513e-01 1.03797659e-01 1.04077646e-01 + 1.04357473e-01 1.04637138e-01 1.04916640e-01 1.05195977e-01 1.05475147e-01 + 1.05754150e-01 1.06032982e-01 1.06311644e-01 1.06590134e-01 1.06868449e-01 + 1.07146589e-01 1.07424552e-01 1.07702336e-01 1.07979941e-01 1.08257365e-01 + 1.08534605e-01 1.08811662e-01 1.09088533e-01 1.09365218e-01 1.09641714e-01 + 1.09918020e-01 1.10194135e-01 1.10470058e-01 1.10745788e-01 1.11021322e-01 + 1.11296660e-01 1.11571800e-01 1.11846741e-01 1.12121482e-01 1.12396021e-01 + 1.12670358e-01 1.12944490e-01 1.13218418e-01 1.13492138e-01 1.13765651e-01 + 1.14038955e-01 1.14312048e-01 1.14584930e-01 1.14857599e-01 1.15130055e-01 + 1.15402295e-01 1.15674319e-01 1.15946126e-01 1.16217714e-01 1.16489083e-01 + 1.16760231e-01 1.17031157e-01 1.17301860e-01 1.17572339e-01 1.17842593e-01 + 1.18112620e-01 1.18382420e-01 1.18651992e-01 1.18921334e-01 1.19190445e-01 + 1.19459326e-01 1.19727973e-01 1.19996387e-01 1.20264566e-01 1.20532510e-01 + 1.20800216e-01 1.21067686e-01 1.21334917e-01 1.21601908e-01 1.21868658e-01 + 1.22135167e-01 1.22401434e-01 1.22667458e-01 1.22933237e-01 1.23198771e-01 + 1.23464058e-01 1.23729099e-01 1.23993892e-01 1.24258436e-01 1.24522731e-01 + 1.24786775e-01 1.25050567e-01 1.25314108e-01 1.25577395e-01 1.25840428e-01 + 1.26103207e-01 1.26365730e-01 1.26627997e-01 1.26890006e-01 1.27151758e-01 + 1.27413251e-01 1.27674484e-01 1.27935457e-01 1.28196169e-01 1.28456619e-01 + 1.28716807e-01 1.28976731e-01 1.29236391e-01 1.29495787e-01 1.29754917e-01 + 1.30013780e-01 1.30272377e-01 1.30530707e-01 1.30788768e-01 1.31046560e-01 + 1.31304083e-01 1.31561335e-01 1.31818316e-01 1.32075026e-01 1.32331463e-01 + 1.32587628e-01 1.32843519e-01 1.33099136e-01 1.33354479e-01 1.33609546e-01 + 1.33864337e-01 1.34118851e-01 1.34373088e-01 1.34627048e-01 1.34880730e-01 + 1.35134132e-01 1.35387255e-01 1.35640099e-01 1.35892661e-01 1.36144943e-01 + 1.36396943e-01 1.36648661e-01 1.36900097e-01 1.37151249e-01 1.37402118e-01 + 1.37652702e-01 1.37903003e-01 1.38153017e-01 1.38402747e-01 1.38652190e-01 + 1.38901347e-01 1.39150217e-01 1.39398799e-01 1.39647094e-01 1.39895100e-01 + 1.40142817e-01 1.40390246e-01 1.40637384e-01 1.40884233e-01 1.41130791e-01 + 1.41377059e-01 1.41623035e-01 1.41868719e-01 1.42114112e-01 1.42359212e-01 + 1.42604020e-01 1.42848534e-01 1.43092755e-01 1.43336681e-01 1.43580314e-01 + 1.43823652e-01 1.44066695e-01 1.44309444e-01 1.44551896e-01 1.44794053e-01 + 1.45035913e-01 1.45277477e-01 1.45518744e-01 1.45759714e-01 1.46000386e-01 + 1.46240761e-01 1.46480838e-01 1.46720616e-01 1.46960096e-01 1.47199277e-01 + 1.47438159e-01 1.47676742e-01 1.47915025e-01 1.48153009e-01 1.48390692e-01 + 1.48628075e-01 1.48865157e-01 1.49101939e-01 1.49338419e-01 1.49574598e-01 + 1.49810476e-01 1.50046052e-01 1.50281327e-01 1.50516299e-01 1.50750969e-01 + 1.50985337e-01 1.51219402e-01 1.51453164e-01 1.51686623e-01 1.51919779e-01 + 1.52152632e-01 1.52385181e-01 1.52617427e-01 1.52849368e-01 1.53081006e-01 + 1.53312340e-01 1.53543370e-01 1.53774095e-01 1.54004516e-01 1.54234632e-01 + 1.54464444e-01 1.54693950e-01 1.54923152e-01 1.55152049e-01 1.55380640e-01 + 1.55608926e-01 1.55836907e-01 1.56064583e-01 1.56291953e-01 1.56519017e-01 + 1.56745775e-01 1.56972228e-01 1.57198375e-01 1.57424216e-01 1.57649751e-01 + 1.57874980e-01 1.58099903e-01 1.58324520e-01 1.58548831e-01 1.58772835e-01 + 1.58996533e-01 1.59219925e-01 1.59443010e-01 1.59665790e-01 1.59888262e-01 + 1.60110429e-01 1.60332289e-01 1.60553842e-01 1.60775089e-01 1.60996030e-01 + 1.61216664e-01 1.61436992e-01 1.61657013e-01 1.61876728e-01 1.62096136e-01 + 1.62315238e-01 1.62534034e-01 1.62752523e-01 1.62970706e-01 1.63188582e-01 + 1.63406152e-01 1.63623416e-01 1.63840374e-01 1.64057026e-01 1.64273371e-01 + 1.64489411e-01 1.64705144e-01 1.64920571e-01 1.65135693e-01 1.65350508e-01 + 1.65565018e-01 1.65779222e-01 1.65993121e-01 1.66206714e-01 1.66420001e-01 + 1.66632983e-01 1.66845660e-01 1.67058031e-01 1.67270097e-01 1.67481858e-01 + 1.67693314e-01 1.67904465e-01 1.68115312e-01 1.68325854e-01 1.68536091e-01 + 1.68746023e-01 1.68955652e-01 1.69164976e-01 1.69373996e-01 1.69582712e-01 + 1.69791124e-01 1.69999232e-01 1.70207037e-01 1.70414538e-01 1.70621735e-01 + 1.70828630e-01 1.71035221e-01 1.71241510e-01 1.71447495e-01 1.71653178e-01 + 1.71858558e-01 1.72063636e-01 1.72268412e-01 1.72472886e-01 1.72677057e-01 + 1.72880927e-01 1.73084495e-01 1.73287762e-01 1.73490728e-01 1.73693392e-01 + 1.73895756e-01 1.74097819e-01 1.74299581e-01 1.74501043e-01 1.74702204e-01 + 1.74903066e-01 1.75103627e-01 1.75303889e-01 1.75503852e-01 1.75703515e-01 + 1.75902879e-01 1.76101944e-01 1.76300710e-01 1.76499178e-01 1.76697348e-01 + 1.76895219e-01 1.77092792e-01 1.77290068e-01 1.77487046e-01 1.77683727e-01 + 1.77880111e-01 1.78076198e-01 1.78271989e-01 1.78467483e-01 1.78662680e-01 + 1.78857582e-01 1.79052188e-01 1.79246498e-01 1.79440514e-01 1.79634234e-01 + 1.79827659e-01 1.80020789e-01 1.80213625e-01 1.80406167e-01 1.80598415e-01 + 1.80790370e-01 1.80982031e-01 1.81173398e-01 1.81364473e-01 1.81555255e-01 + 1.81745745e-01 1.81935942e-01 1.82125848e-01 1.82315462e-01 1.82504784e-01 + 1.82693815e-01 1.82882555e-01 1.83071004e-01 1.83259163e-01 1.83447032e-01 + 1.83634611e-01 1.83821900e-01 1.84008900e-01 1.84195611e-01 1.84382033e-01 + 1.84568166e-01 1.84754012e-01 1.84939569e-01 1.85124838e-01 1.85309820e-01 + 1.85494514e-01 1.85678922e-01 1.85863043e-01 1.86046878e-01 1.86230426e-01 + 1.86413689e-01 1.86596666e-01 1.86779358e-01 1.86961765e-01 1.87143887e-01 + 1.87325725e-01 1.87507279e-01 1.87688549e-01 1.87869536e-01 1.88050239e-01 + 1.88230659e-01 1.88410797e-01 1.88590653e-01 1.88770226e-01 1.88949518e-01 + 1.89128528e-01 1.89307257e-01 1.89485705e-01 1.89663873e-01 1.89841761e-01 + 1.90019368e-01 1.90196696e-01 1.90373745e-01 1.90550515e-01 1.90727005e-01 + 1.90903218e-01 1.91079153e-01 1.91254809e-01 1.91430189e-01 1.91605291e-01 + 1.91780116e-01 1.91954665e-01 1.92128937e-01 1.92302934e-01 1.92476655e-01 + 1.92650101e-01 1.92823272e-01 1.92996169e-01 1.93168791e-01 1.93341139e-01 + 1.93513213e-01 1.93685014e-01 1.93856543e-01 1.94027798e-01 1.94198781e-01 + 1.94369492e-01 1.94539932e-01 1.94710100e-01 1.94879997e-01 1.95049623e-01 + 1.95218979e-01 1.95388065e-01 1.95556881e-01 1.95725428e-01 1.95893706e-01 + 1.96061715e-01 1.96229455e-01 1.96396928e-01 1.96564133e-01 1.96731070e-01 + 1.96897741e-01 1.97064144e-01 1.97230282e-01 1.97396153e-01 1.97561758e-01 + 1.97727099e-01 1.97892174e-01 1.98056984e-01 1.98221530e-01 1.98385813e-01 + 1.98549831e-01 1.98713586e-01 1.98877078e-01 1.99040308e-01 1.99203275e-01 + 1.99365980e-01 1.99528424e-01 1.99690606e-01 1.99852528e-01 2.00014188e-01 + 2.00175589e-01 2.00336730e-01 2.00497611e-01 2.00658233e-01 2.00818596e-01 + 2.00978701e-01 2.01138547e-01 2.01298136e-01 2.01457467e-01 2.01616542e-01 + 2.01775359e-01 2.01933920e-01 2.02092225e-01 2.02250274e-01 2.02408068e-01 + 2.02565607e-01 2.02722891e-01 2.02879921e-01 2.03036697e-01 2.03193220e-01 + 2.03349489e-01 2.03505505e-01 2.03661269e-01 2.03816780e-01 2.03972040e-01 + 2.04127048e-01 2.04281805e-01 2.04436312e-01 2.04590568e-01 2.04744573e-01 + 2.04898329e-01 2.05051836e-01 2.05205094e-01 2.05358103e-01 2.05510864e-01 + 2.05663377e-01 2.05815642e-01 2.05967660e-01 2.06119432e-01 2.06270956e-01 + 2.06422235e-01 2.06573268e-01 2.06724055e-01 2.06874598e-01 2.07024895e-01 + 2.07174948e-01 2.07324757e-01 2.07474323e-01 2.07623645e-01 2.07772725e-01 + 2.07921561e-01 2.08070156e-01 2.08218508e-01 2.08366619e-01 2.08514489e-01 + 2.08662119e-01 2.08809507e-01 2.08956656e-01 2.09103565e-01 2.09250235e-01 + 2.09396665e-01 2.09542857e-01 2.09688811e-01 2.09834526e-01 2.09980005e-01 + 2.10125246e-01 2.10270250e-01 2.10415017e-01 2.10559549e-01 2.10703844e-01 + 2.10847905e-01 2.10991730e-01 2.11135320e-01 2.11278676e-01 2.11421799e-01 + 2.11564687e-01 2.11707342e-01 2.11849765e-01 2.11991955e-01 2.12133912e-01 + 2.12275638e-01 2.12417132e-01 2.12558395e-01 2.12699428e-01 2.12840230e-01 + 2.12980802e-01 2.13121144e-01 2.13261257e-01 2.13401141e-01 2.13540796e-01 + 2.13680223e-01 2.13819422e-01 2.13958394e-01 2.14097138e-01 2.14235656e-01 + 2.14373947e-01 2.14512011e-01 2.14649851e-01 2.14787464e-01 2.14924853e-01 + 2.15062017e-01 2.15198957e-01 2.15335672e-01 2.15472164e-01 2.15608433e-01 + 2.15744479e-01 2.15880302e-01 2.16015903e-01 2.16151282e-01 2.16286440e-01 + 2.16421376e-01 2.16556092e-01 2.16690587e-01 2.16824862e-01 2.16958918e-01 + 2.17092754e-01 2.17226371e-01 2.17359769e-01 2.17492949e-01 2.17625911e-01 + 2.17758656e-01 2.17891183e-01 2.18023493e-01 2.18155587e-01 2.18287464e-01 + 2.18419126e-01 2.18550572e-01 2.18681803e-01 2.18812819e-01 2.18943621e-01 + 2.19074208e-01 2.19204582e-01 2.19334742e-01 2.19464690e-01 2.19594424e-01 + 2.19723946e-01 2.19853257e-01 2.19982355e-01 2.20111242e-01 2.20239919e-01 + 2.20368384e-01 2.20496640e-01 2.20624685e-01 2.20752521e-01 2.20880148e-01 + 2.21007566e-01 2.21134775e-01 2.21261776e-01 2.21388569e-01 2.21515155e-01 + 2.21641533e-01 2.21767705e-01 2.21893670e-01 2.22019429e-01 2.22144983e-01 + 2.22270331e-01 2.22395473e-01 2.22520411e-01 2.22645145e-01 2.22769675e-01 + 2.22894000e-01 2.23018123e-01 2.23142042e-01 2.23265759e-01 2.23389273e-01 + 2.23512586e-01 2.23635696e-01 2.23758606e-01 2.23881314e-01 2.24003822e-01 + 2.24126129e-01 2.24248236e-01 2.24370144e-01 2.24491852e-01 2.24613362e-01 + 2.24734673e-01 2.24855785e-01 2.24976700e-01 2.25097417e-01 2.25217936e-01 + 2.25338259e-01 2.25458385e-01 2.25578315e-01 2.25698048e-01 2.25817587e-01 + 2.25936930e-01 2.26056078e-01 2.26175031e-01 2.26293790e-01 2.26412355e-01 + 2.26530727e-01 2.26648905e-01 2.26766890e-01 2.26884683e-01 2.27002283e-01 + 2.27119691e-01 2.27236908e-01 2.27353934e-01 2.27470768e-01 2.27587412e-01 + 2.27703865e-01 2.27820129e-01 2.27936203e-01 2.28052087e-01 2.28167783e-01 + 2.28283290e-01 2.28398608e-01 2.28513738e-01 2.28628681e-01 2.28743437e-01 + 2.28858005e-01 2.28972386e-01 2.29086581e-01 2.29200591e-01 2.29314414e-01 + 2.29428052e-01 2.29541504e-01 2.29654772e-01 2.29767856e-01 2.29880755e-01 + 2.29993470e-01 2.30106002e-01 2.30218351e-01 2.30330517e-01 2.30442500e-01 + 2.30554301e-01 2.30665921e-01 2.30777358e-01 2.30888614e-01 2.30999690e-01 + 2.31110584e-01 2.31221299e-01 2.31331833e-01 2.31442188e-01 2.31552363e-01 + 2.31662359e-01 2.31772176e-01 2.31881815e-01 2.31991276e-01 2.32100559e-01 + 2.32209665e-01 2.32318593e-01 2.32427344e-01 2.32535919e-01 2.32644318e-01 + 2.32752540e-01 2.32860587e-01 2.32968459e-01 2.33076155e-01 2.33183677e-01 + 2.33291025e-01 2.33398198e-01 2.33505198e-01 2.33612024e-01 2.33718676e-01 + 2.33825157e-01 2.33931464e-01 2.34037599e-01 2.34143562e-01 2.34249354e-01 + 2.34354974e-01 2.34460423e-01 2.34565702e-01 2.34670810e-01 2.34775748e-01 + 2.34880516e-01 2.34985114e-01 2.35089544e-01 2.35193804e-01 2.35297896e-01 + 2.35401819e-01 2.35505574e-01 2.35609162e-01 2.35712582e-01 2.35815835e-01 + 2.35918921e-01 2.36021841e-01 2.36124594e-01 2.36227182e-01 2.36329603e-01 + 2.36431860e-01 2.36533951e-01 2.36635878e-01 2.36737640e-01 2.36839238e-01 + 2.36940672e-01 2.37041942e-01 2.37143049e-01 2.37243994e-01 2.37344775e-01 + 2.37445394e-01 2.37545851e-01 2.37646146e-01 2.37746279e-01 2.37846251e-01 + 2.37946062e-01 2.38045713e-01 2.38145203e-01 2.38244533e-01 2.38343703e-01 + 2.38442713e-01 2.38541565e-01 2.38640257e-01 2.38738790e-01 2.38837166e-01 + 2.38935383e-01 2.39033442e-01 2.39131344e-01 2.39229088e-01 2.39326676e-01 + 2.39424106e-01 2.39521381e-01 2.39618499e-01 2.39715461e-01 2.39812268e-01 + 2.39908919e-01 2.40005416e-01 2.40101757e-01 2.40197944e-01 2.40293977e-01 + 2.40389856e-01 2.40485582e-01 2.40581154e-01 2.40676573e-01 2.40771839e-01 + 2.40866953e-01 2.40961914e-01 2.41056724e-01 2.41151382e-01 2.41245888e-01 + 2.41340243e-01 2.41434447e-01 2.41528501e-01 2.41622404e-01 2.41716158e-01 + 2.41809761e-01 2.41903215e-01 2.41996520e-01 2.42089675e-01 2.42182682e-01 + 2.42275541e-01 2.42368251e-01 2.42460813e-01 2.42553228e-01 2.42645496e-01 + 2.42737616e-01 2.42829589e-01 2.42921416e-01 2.43013097e-01 2.43104631e-01 + 2.43196020e-01 2.43287263e-01 2.43378361e-01 2.43469314e-01 2.43560122e-01 + 2.43650786e-01 2.43741306e-01 2.43831681e-01 2.43921913e-01 2.44012001e-01 + 2.44101947e-01 2.44191749e-01 2.44281409e-01 2.44370926e-01 2.44460302e-01 + 2.44549535e-01 2.44638627e-01 2.44727577e-01 2.44816386e-01 2.44905055e-01 + 2.44993583e-01 2.45081970e-01 2.45170218e-01 2.45258325e-01 2.45346293e-01 + 2.45434122e-01 2.45521812e-01 2.45609362e-01 2.45696775e-01 2.45784049e-01 + 2.45871185e-01 2.45958183e-01 2.46045043e-01 2.46131766e-01 2.46218353e-01 + 2.46304802e-01 2.46391115e-01 2.46477291e-01 2.46563332e-01 2.46649236e-01 + 2.46735006e-01 2.46820639e-01 2.46906138e-01 2.46991502e-01 2.47076731e-01 + 2.47161826e-01 2.47246787e-01 2.47331614e-01 2.47416307e-01 2.47500867e-01 + 2.47585294e-01 2.47669588e-01 2.47753749e-01 2.47837778e-01 2.47921675e-01 + 2.48005440e-01 2.48089073e-01 2.48172575e-01 2.48255945e-01 2.48339185e-01 + 2.48422294e-01 2.48505272e-01 2.48588120e-01 2.48670839e-01 2.48753427e-01 + 2.48835886e-01 2.48918215e-01 2.49000416e-01 2.49082487e-01 2.49164431e-01 + 2.49246245e-01 2.49327932e-01 2.49409490e-01 2.49490922e-01 2.49572225e-01 + 2.49653402e-01 2.49734451e-01 2.49815374e-01 2.49896170e-01 2.49976840e-01 + 2.50057384e-01 2.50137802e-01 2.50218094e-01 2.50298261e-01 2.50378303e-01 + 2.50458221e-01 2.50538013e-01 2.50617681e-01 2.50697225e-01 2.50776645e-01 + 2.50855941e-01 2.50935113e-01 2.51014162e-01 2.51093088e-01 2.51171892e-01 + 2.51250572e-01 2.51329130e-01 2.51407566e-01 2.51485880e-01 2.51564073e-01 + 2.51642143e-01 2.51720093e-01 2.51797921e-01 2.51875629e-01 2.51953216e-01 + 2.52030682e-01 2.52108028e-01 2.52185254e-01 2.52262361e-01 2.52339348e-01 + 2.52416215e-01 2.52492964e-01 2.52569593e-01 2.52646104e-01 2.52722497e-01 + 2.52798771e-01 2.52874927e-01 2.52950965e-01 2.53026886e-01 2.53102689e-01 + 2.53178375e-01 2.53253944e-01 2.53329397e-01 2.53404733e-01 2.53479952e-01 + 2.53555056e-01 2.53630043e-01 2.53704915e-01 2.53779671e-01 2.53854312e-01 + 2.53928839e-01 2.54003250e-01 2.54077546e-01 2.54151728e-01 2.54225796e-01 + 2.54299750e-01 2.54373590e-01 2.54447316e-01 2.54520930e-01 2.54594429e-01 + 2.54667816e-01 2.54741090e-01 2.54814252e-01 2.54887301e-01 2.54960238e-01 + 2.55033063e-01 2.55105776e-01 2.55178378e-01 2.55250868e-01 2.55323247e-01 + 2.55395516e-01 2.55467673e-01 2.55539720e-01 2.55611657e-01 2.55683483e-01 + 2.55755200e-01 2.55826806e-01 2.55898304e-01 2.55969692e-01 2.56040970e-01 + 2.56112140e-01 2.56183201e-01 2.56254154e-01 2.56324998e-01 2.56395734e-01 + 2.56466362e-01 2.56536882e-01 2.56607295e-01 2.56677600e-01 2.56747798e-01 + 2.56817889e-01 2.56887874e-01 2.56957752e-01 2.57027523e-01 2.57097188e-01 + 2.57166747e-01 2.57236200e-01 2.57305548e-01 2.57374790e-01 2.57443927e-01 + 2.57512959e-01 2.57581886e-01 2.57650709e-01 2.57719427e-01 2.57788040e-01 + 2.57856550e-01 2.57924955e-01 2.57993257e-01 2.58061455e-01 2.58129550e-01 + 2.58197542e-01 2.58265431e-01 2.58333217e-01 2.58400900e-01 2.58468481e-01 + 2.58535960e-01 2.58603336e-01 2.58670611e-01 2.58737784e-01 2.58804856e-01 + 2.58871826e-01 2.58938695e-01 2.59005463e-01 2.59072131e-01 2.59138697e-01 + 2.59205164e-01 2.59271530e-01 2.59337796e-01 2.59403962e-01 2.59470029e-01 + 2.59535996e-01 2.59601864e-01 2.59667633e-01 2.59733302e-01 2.59798873e-01 + 2.59864345e-01 2.59929719e-01 2.59994995e-01 2.60060172e-01 2.60125252e-01 + 2.60190234e-01 2.60255118e-01 2.60319905e-01 2.60384595e-01 2.60449188e-01 + 2.60513684e-01 2.60578083e-01 2.60642386e-01 2.60706593e-01 2.60770703e-01 + 2.60834718e-01 2.60898636e-01 2.60962459e-01 2.61026187e-01 2.61089819e-01 + 2.61153356e-01 2.61216799e-01 2.61280146e-01 2.61343399e-01 2.61406557e-01 + 2.61469622e-01 2.61532592e-01 2.61595468e-01 2.61658250e-01 2.61720939e-01 + 2.61783535e-01 2.61846037e-01 2.61908446e-01 2.61970763e-01 2.62032986e-01 + 2.62095117e-01 2.62157156e-01 2.62219102e-01 2.62280956e-01 2.62342719e-01 + 2.62404389e-01 2.62465968e-01 2.62527456e-01 2.62588852e-01 2.62650158e-01 + 2.62711372e-01 2.62772496e-01 2.62833529e-01 2.62894471e-01 2.62955324e-01 + 2.63016086e-01 2.63076758e-01 2.63137341e-01 2.63197833e-01 2.63258237e-01 + 2.63318551e-01 2.63378776e-01 2.63438912e-01 2.63498959e-01 2.63558918e-01 + 2.63618788e-01 2.63678569e-01 2.63738263e-01 2.63797868e-01 2.63857386e-01 + 2.63916816e-01 2.63976158e-01 2.64035413e-01 2.64094581e-01 2.64153661e-01 + 2.64212655e-01 2.64271562e-01 2.64330382e-01 2.64389116e-01 2.64447763e-01 + 2.64506324e-01 2.64564800e-01 2.64623189e-01 2.64681493e-01 2.64739711e-01 + 2.64797844e-01 2.64855892e-01 2.64913854e-01 2.64971732e-01 2.65029524e-01 + 2.65087233e-01 2.65144856e-01 2.65202396e-01 2.65259851e-01 2.65317222e-01 + 2.65374509e-01 2.65431713e-01 2.65488833e-01 2.65545869e-01 2.65602822e-01 + 2.65659692e-01 2.65716480e-01 2.65773184e-01 2.65829805e-01 2.65886344e-01 + 2.65942801e-01 2.65999175e-01 2.66055468e-01 2.66111678e-01 2.66167806e-01 + 2.66223853e-01 2.66279819e-01 2.66335703e-01 2.66391505e-01 2.66447227e-01 + 2.66502868e-01 2.66558427e-01 2.66613907e-01 2.66669305e-01 2.66724624e-01 + 2.66779862e-01 2.66835020e-01 2.66890098e-01 2.66945096e-01 2.67000015e-01 + 2.67054854e-01 2.67109613e-01 2.67164294e-01 2.67218895e-01 2.67273418e-01 + 2.67327861e-01 2.67382226e-01 2.67436512e-01 2.67490720e-01 2.67544850e-01 + 2.67598902e-01 2.67652875e-01 2.67706771e-01 2.67760589e-01 2.67814330e-01 + 2.67867993e-01 2.67921578e-01 2.67975087e-01 2.68028519e-01 2.68081873e-01 + 2.68135151e-01 2.68188352e-01 2.68241477e-01 2.68294526e-01 2.68347498e-01 + 2.68400394e-01 2.68453214e-01 2.68505959e-01 2.68558628e-01 2.68611221e-01 + 2.68663738e-01 2.68716181e-01 2.68768548e-01 2.68820841e-01 2.68873058e-01 + 2.68925201e-01 2.68977269e-01 2.69029263e-01 2.69081182e-01 2.69133027e-01 + 2.69184798e-01 2.69236495e-01 2.69288118e-01 2.69339668e-01 2.69391143e-01 + 2.69442546e-01 2.69493875e-01 2.69545131e-01 2.69596314e-01 2.69647424e-01 + 2.69698461e-01 2.69749425e-01 2.69800317e-01 2.69851137e-01 2.69901884e-01 + 2.69952559e-01 2.70003162e-01 2.70053693e-01 2.70104153e-01 2.70154540e-01 + 2.70204856e-01 2.70255101e-01 2.70305274e-01 2.70355377e-01 2.70405408e-01 + 2.70455368e-01 2.70505258e-01 2.70555077e-01 2.70604825e-01 2.70654503e-01 + 2.70704110e-01 2.70753648e-01 2.70803115e-01 2.70852513e-01 2.70901840e-01 + 2.70951098e-01 2.71000287e-01 2.71049406e-01 2.71098455e-01 2.71147436e-01 + 2.71196347e-01 2.71245190e-01 2.71293963e-01 2.71342668e-01 2.71391304e-01 + 2.71439872e-01 2.71488372e-01 2.71536803e-01 2.71585166e-01 2.71633461e-01 + 2.71681688e-01 2.71729848e-01 2.71777939e-01 2.71825964e-01 2.71873921e-01 + 2.71921810e-01 2.71969632e-01 2.72017388e-01 2.72065076e-01 2.72112698e-01 + 2.72160252e-01 2.72207741e-01 2.72255162e-01 2.72302518e-01 2.72349807e-01 + 2.72397030e-01 2.72444187e-01 2.72491278e-01 2.72538303e-01 2.72585263e-01 + 2.72632157e-01 2.72678985e-01 2.72725748e-01 2.72772446e-01 2.72819079e-01 + 2.72865647e-01 2.72912150e-01 2.72958588e-01 2.73004962e-01 2.73051271e-01 + 2.73097516e-01 2.73143696e-01 2.73189812e-01 2.73235864e-01 2.73281852e-01 + 2.73327776e-01 2.73373636e-01 2.73419432e-01 2.73465166e-01 2.73510835e-01 + 2.73556441e-01 2.73601984e-01 2.73647464e-01 2.73692881e-01 2.73738235e-01 + 2.73783526e-01 2.73828755e-01 2.73873921e-01 2.73919024e-01 2.73964065e-01 + 2.74009044e-01 2.74053961e-01 2.74098815e-01 2.74143608e-01 2.74188339e-01 + 2.74233008e-01 2.74277616e-01 2.74322162e-01 2.74366646e-01 2.74411070e-01 + 2.74455432e-01 2.74499733e-01 2.74543973e-01 2.74588152e-01 2.74632270e-01 + 2.74676328e-01 2.74720325e-01 2.74764262e-01 2.74808138e-01 2.74851954e-01 + 2.74895710e-01 2.74939406e-01 2.74983042e-01 2.75026618e-01 2.75070135e-01 + 2.75113591e-01 2.75156988e-01 2.75200326e-01 2.75243604e-01 2.75286824e-01 + 2.75329984e-01 2.75373085e-01 2.75416127e-01 2.75459110e-01 2.75502034e-01 + 2.75544900e-01 2.75587707e-01 2.75630456e-01 2.75673147e-01 2.75715779e-01 + 2.75758353e-01 2.75800869e-01 2.75843328e-01 2.75885728e-01 2.75928070e-01 + 2.75970355e-01 2.76012583e-01 2.76054753e-01 2.76096866e-01 2.76138921e-01 + 2.76180919e-01 2.76222860e-01 2.76264745e-01 2.76306572e-01 2.76348342e-01 + 2.76390056e-01 2.76431714e-01 2.76473315e-01 2.76514859e-01 2.76556347e-01 + 2.76597779e-01 2.76639155e-01 2.76680475e-01 2.76721739e-01 2.76762947e-01 + 2.76804100e-01 2.76845197e-01 2.76886238e-01 2.76927224e-01 2.76968154e-01 + 2.77009030e-01 2.77049850e-01 2.77090615e-01 2.77131325e-01 2.77171980e-01 + 2.77212581e-01 2.77253126e-01 2.77293617e-01 2.77334054e-01 2.77374436e-01 + 2.77414764e-01 2.77455038e-01 2.77495257e-01 2.77535423e-01 2.77575534e-01 + 2.77615592e-01 2.77655596e-01 2.77695546e-01 2.77735443e-01 2.77775286e-01 + 2.77815076e-01 2.77854812e-01 2.77894495e-01 2.77934125e-01 2.77973702e-01 + 2.78013226e-01 2.78052697e-01 2.78092115e-01 2.78131481e-01 2.78170794e-01 + 2.78210054e-01 2.78249262e-01 2.78288418e-01 2.78327521e-01 2.78366572e-01 + 2.78405571e-01 2.78444519e-01 2.78483414e-01 2.78522257e-01 2.78561049e-01 + 2.78599789e-01 2.78638477e-01 2.78677114e-01 2.78715700e-01 2.78754234e-01 + 2.78792717e-01 2.78831149e-01 2.78869530e-01 2.78907859e-01 2.78946138e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.19316516e-02 1.17837661e-02 1.16368916e-02 1.14910312e-02 1.13461881e-02 + 1.12023652e-02 1.10595657e-02 1.09177924e-02 1.07770486e-02 1.06373371e-02 + 1.04986608e-02 1.03610229e-02 1.02244262e-02 1.00888736e-02 9.95436796e-03 + 9.82091227e-03 9.68850936e-03 9.55716205e-03 9.42687318e-03 9.29764555e-03 + 9.16948195e-03 9.04238514e-03 8.91635788e-03 8.79140288e-03 8.66752287e-03 + 8.54472052e-03 8.42299850e-03 8.30235947e-03 8.18280604e-03 8.06434082e-03 + 7.94696640e-03 7.83068535e-03 7.71550020e-03 7.60141348e-03 7.48842769e-03 + 7.37654531e-03 7.26576880e-03 7.15610060e-03 7.04754311e-03 6.94009874e-03 + 6.83376985e-03 6.72855879e-03 6.62446789e-03 6.52149946e-03 6.41965576e-03 + 6.31893907e-03 6.21935162e-03 6.12089562e-03 6.02357326e-03 5.92738670e-03 + 5.83233810e-03 5.73842957e-03 5.64566320e-03 5.55404108e-03 5.46356524e-03 + 5.37423772e-03 5.28606051e-03 5.19903560e-03 5.11316493e-03 5.02845043e-03 + 4.94489402e-03 4.86249756e-03 4.78126291e-03 4.70119191e-03 4.62228636e-03 + 4.54454803e-03 4.46797870e-03 4.39258007e-03 4.31835387e-03 4.24530177e-03 + 4.17342543e-03 4.10272646e-03 4.03320649e-03 3.96486708e-03 3.89770979e-03 + 3.83173614e-03 3.76694764e-03 3.70334576e-03 3.64093194e-03 3.57970760e-03 + 3.51967415e-03 3.46083296e-03 3.40318535e-03 3.34673266e-03 3.29147617e-03 + 3.23741715e-03 3.18455682e-03 3.13289641e-03 3.08243708e-03 3.03318001e-03 + 2.98512631e-03 2.93827709e-03 2.89263342e-03 2.84819635e-03 2.80496690e-03 + 2.76294607e-03 2.72213481e-03 2.68253407e-03 2.64414475e-03 2.60696775e-03 + 2.57100391e-03 2.53625406e-03 2.50271900e-03 2.47039951e-03 2.43929633e-03 + 2.40941017e-03 2.38074173e-03 2.35329167e-03 2.32706061e-03 2.30204917e-03 + 2.27825792e-03 2.25568742e-03 2.23433817e-03 2.21421068e-03 2.19530540e-03 + 2.17762279e-03 2.16116324e-03 2.14592713e-03 2.13191482e-03 2.11912664e-03 + 2.10756286e-03 2.09722378e-03 2.08810961e-03 2.08022058e-03 2.07355687e-03 + 2.06811863e-03 2.06390598e-03 2.06091903e-03 2.05915784e-03 2.05862245e-03 + 2.05931288e-03 2.06122911e-03 2.06437109e-03 2.06873876e-03 2.07433201e-03 + 2.08115071e-03 2.08919471e-03 2.09846382e-03 2.10895782e-03 2.12067647e-03 + 2.13361950e-03 2.14778662e-03 2.16317748e-03 2.17979175e-03 2.19762903e-03 + 2.21668892e-03 2.23697097e-03 2.25847471e-03 2.28119965e-03 2.30514526e-03 + 2.33031099e-03 2.35669626e-03 2.38430046e-03 2.41312296e-03 2.44316308e-03 + 2.47442014e-03 2.50689342e-03 2.54058217e-03 2.57548561e-03 2.61160294e-03 + 2.64893333e-03 2.68747592e-03 2.72722982e-03 2.76819412e-03 2.81036787e-03 + 2.85375012e-03 2.89833986e-03 2.94413606e-03 2.99113769e-03 3.03934365e-03 + 3.08875285e-03 3.13936416e-03 3.19117640e-03 3.24418841e-03 3.29839896e-03 + 3.35380682e-03 3.41041071e-03 3.46820936e-03 3.52720143e-03 3.58738558e-03 + 3.64876043e-03 3.71132460e-03 3.77507665e-03 3.84001514e-03 3.90613858e-03 + 3.97344547e-03 4.04193428e-03 4.11160346e-03 4.18245143e-03 4.25447658e-03 + 4.32767727e-03 4.40205185e-03 4.47759865e-03 4.55431593e-03 4.63220199e-03 + 4.71125505e-03 4.79147333e-03 4.87285502e-03 4.95539830e-03 5.03910129e-03 + 5.12396213e-03 5.20997890e-03 5.29714966e-03 5.38547247e-03 5.47494535e-03 + 5.56556628e-03 5.65733324e-03 5.75024419e-03 5.84429703e-03 5.93948968e-03 + 6.03582001e-03 6.13328588e-03 6.23188511e-03 6.33161551e-03 6.43247487e-03 + 6.53446095e-03 6.63757148e-03 6.74180419e-03 6.84715676e-03 6.95362687e-03 + 7.06121216e-03 7.16991026e-03 7.27971878e-03 7.39063530e-03 7.50265737e-03 + 7.61578255e-03 7.73000833e-03 7.84533223e-03 7.96175172e-03 8.07926424e-03 + 8.19786724e-03 8.31755813e-03 8.43833428e-03 8.56019309e-03 8.68313189e-03 + 8.80714802e-03 8.93223879e-03 9.05840148e-03 9.18563337e-03 9.31393170e-03 + 9.44329371e-03 9.57371661e-03 9.70519759e-03 9.83773382e-03 9.97132246e-03 + 1.01059606e-02 1.02416455e-02 1.03783741e-02 1.05161435e-02 1.06549508e-02 + 1.07947931e-02 1.09356673e-02 1.10775705e-02 1.12204997e-02 1.13644517e-02 + 1.15094237e-02 1.16554125e-02 1.18024151e-02 1.19504282e-02 1.20994490e-02 + 1.22494741e-02 1.24005005e-02 1.25525250e-02 1.27055444e-02 1.28595555e-02 + 1.30145552e-02 1.31705401e-02 1.33275071e-02 1.34854528e-02 1.36443741e-02 + 1.38042677e-02 1.39651301e-02 1.41269582e-02 1.42897485e-02 1.44534978e-02 + 1.46182027e-02 1.47838598e-02 1.49504657e-02 1.51180170e-02 1.52865103e-02 + 1.54559422e-02 1.56263093e-02 1.57976080e-02 1.59698349e-02 1.61429866e-02 + 1.63170596e-02 1.64920502e-02 1.66679551e-02 1.68447707e-02 1.70224935e-02 + 1.72011198e-02 1.73806462e-02 1.75610691e-02 1.77423848e-02 1.79245899e-02 + 1.81076806e-02 1.82916533e-02 1.84765045e-02 1.86622305e-02 1.88488276e-02 + 1.90362922e-02 1.92246206e-02 1.94138091e-02 1.96038541e-02 1.97947518e-02 + 1.99864985e-02 2.01790905e-02 2.03725242e-02 2.05667957e-02 2.07619013e-02 + 2.09578372e-02 2.11545998e-02 2.13521852e-02 2.15505896e-02 2.17498093e-02 + 2.19498405e-02 2.21506794e-02 2.23523222e-02 2.25547650e-02 2.27580040e-02 + 2.29620355e-02 2.31668555e-02 2.33724603e-02 2.35788460e-02 2.37860087e-02 + 2.39939446e-02 2.42026499e-02 2.44121205e-02 2.46223528e-02 2.48333427e-02 + 2.50450864e-02 2.52575801e-02 2.54708198e-02 2.56848016e-02 2.58995216e-02 + 2.61149759e-02 2.63311606e-02 2.65480717e-02 2.67657054e-02 2.69840578e-02 + 2.72031248e-02 2.74229026e-02 2.76433871e-02 2.78645746e-02 2.80864610e-02 + 2.83090425e-02 2.85323149e-02 2.87562745e-02 2.89809172e-02 2.92062390e-02 + 2.94322361e-02 2.96589045e-02 2.98862402e-02 3.01142392e-02 3.03428976e-02 + 3.05722114e-02 3.08021766e-02 3.10327893e-02 3.12640455e-02 3.14959413e-02 + 3.17284726e-02 3.19616355e-02 3.21954260e-02 3.24298402e-02 3.26648740e-02 + 3.29005236e-02 3.31367848e-02 3.33736539e-02 3.36111267e-02 3.38491993e-02 + 3.40878677e-02 3.43271281e-02 3.45669763e-02 3.48074084e-02 3.50484206e-02 + 3.52900087e-02 3.55321689e-02 3.57748971e-02 3.60181895e-02 3.62620420e-02 + 3.65064508e-02 3.67514117e-02 3.69969210e-02 3.72429746e-02 3.74895686e-02 + 3.77366991e-02 3.79843621e-02 3.82325537e-02 3.84812698e-02 3.87305067e-02 + 3.89802604e-02 3.92305269e-02 3.94813024e-02 3.97325829e-02 3.99843644e-02 + 4.02366431e-02 4.04894151e-02 4.07426765e-02 4.09964234e-02 4.12506518e-02 + 4.15053579e-02 4.17605378e-02 4.20161876e-02 4.22723034e-02 4.25288815e-02 + 4.27859178e-02 4.30434086e-02 4.33013499e-02 4.35597380e-02 4.38185689e-02 + 4.40778389e-02 4.43375441e-02 4.45976807e-02 4.48582449e-02 4.51192328e-02 + 4.53806406e-02 4.56424645e-02 4.59047007e-02 4.61673455e-02 4.64303950e-02 + 4.66938455e-02 4.69576932e-02 4.72219342e-02 4.74865650e-02 4.77515816e-02 + 4.80169804e-02 4.82827576e-02 4.85489095e-02 4.88154324e-02 4.90823225e-02 + 4.93495761e-02 4.96171896e-02 4.98851592e-02 5.01534812e-02 5.04221520e-02 + 5.06911679e-02 5.09605252e-02 5.12302202e-02 5.15002494e-02 5.17706091e-02 + 5.20412956e-02 5.23123054e-02 5.25836347e-02 5.28552801e-02 5.31272378e-02 + 5.33995044e-02 5.36720762e-02 5.39449496e-02 5.42181211e-02 5.44915872e-02 + 5.47653442e-02 5.50393887e-02 5.53137171e-02 5.55883259e-02 5.58632116e-02 + 5.61383707e-02 5.64137997e-02 5.66894951e-02 5.69654535e-02 5.72416713e-02 + 5.75181451e-02 5.77948716e-02 5.80718471e-02 5.83490684e-02 5.86265320e-02 + 5.89042345e-02 5.91821725e-02 5.94603427e-02 5.97387415e-02 6.00173658e-02 + 6.02962120e-02 6.05752770e-02 6.08545573e-02 6.11340496e-02 6.14137506e-02 + 6.16936570e-02 6.19737655e-02 6.22540729e-02 6.25345758e-02 6.28152709e-02 + 6.30961552e-02 6.33772252e-02 6.36584778e-02 6.39399097e-02 6.42215178e-02 + 6.45032988e-02 6.47852496e-02 6.50673669e-02 6.53496477e-02 6.56320887e-02 + 6.59146868e-02 6.61974389e-02 6.64803419e-02 6.67633926e-02 6.70465880e-02 + 6.73299249e-02 6.76134004e-02 6.78970112e-02 6.81807545e-02 6.84646270e-02 + 6.87486259e-02 6.90327480e-02 6.93169904e-02 6.96013501e-02 6.98858240e-02 + 7.01704093e-02 7.04551029e-02 7.07399019e-02 7.10248033e-02 7.13098043e-02 + 7.15949019e-02 7.18800932e-02 7.21653753e-02 7.24507453e-02 7.27362004e-02 + 7.30217377e-02 7.33073544e-02 7.35930475e-02 7.38788144e-02 7.41646521e-02 + 7.44505580e-02 7.47365291e-02 7.50225627e-02 7.53086561e-02 7.55948066e-02 + 7.58810112e-02 7.61672674e-02 7.64535724e-02 7.67399235e-02 7.70263181e-02 + 7.73127534e-02 7.75992267e-02 7.78857354e-02 7.81722770e-02 7.84588486e-02 + 7.87454477e-02 7.90320718e-02 7.93187181e-02 7.96053841e-02 7.98920673e-02 + 8.01787651e-02 8.04654749e-02 8.07521941e-02 8.10389204e-02 8.13256510e-02 + 8.16123836e-02 8.18991157e-02 8.21858447e-02 8.24725683e-02 8.27592839e-02 + 8.30459891e-02 8.33326815e-02 8.36193586e-02 8.39060181e-02 8.41926576e-02 + 8.44792746e-02 8.47658669e-02 8.50524319e-02 8.53389675e-02 8.56254713e-02 + 8.59119408e-02 8.61983740e-02 8.64847683e-02 8.67711216e-02 8.70574315e-02 + 8.73436959e-02 8.76299124e-02 8.79160788e-02 8.82021929e-02 8.84882524e-02 + 8.87742552e-02 8.90601991e-02 8.93460819e-02 8.96319014e-02 8.99176554e-02 + 9.02033419e-02 9.04889586e-02 9.07745035e-02 9.10599745e-02 9.13453694e-02 + 9.16306861e-02 9.19159227e-02 9.22010770e-02 9.24861469e-02 9.27711305e-02 + 9.30560257e-02 9.33408305e-02 9.36255428e-02 9.39101607e-02 9.41946823e-02 + 9.44791055e-02 9.47634283e-02 9.50476489e-02 9.53317653e-02 9.56157755e-02 + 9.58996777e-02 9.61834699e-02 9.64671503e-02 9.67507170e-02 9.70341681e-02 + 9.73175018e-02 9.76007161e-02 9.78838094e-02 9.81667797e-02 9.84496252e-02 + 9.87323442e-02 9.90149348e-02 9.92973954e-02 9.95797240e-02 9.98619190e-02 + 1.00143979e-01 1.00425901e-01 1.00707685e-01 1.00989328e-01 1.01270829e-01 + 1.01552185e-01 1.01833397e-01 1.02114461e-01 1.02395376e-01 1.02676140e-01 + 1.02956752e-01 1.03237211e-01 1.03517513e-01 1.03797659e-01 1.04077646e-01 + 1.04357473e-01 1.04637138e-01 1.04916640e-01 1.05195977e-01 1.05475147e-01 + 1.05754150e-01 1.06032982e-01 1.06311644e-01 1.06590134e-01 1.06868449e-01 + 1.07146589e-01 1.07424552e-01 1.07702336e-01 1.07979941e-01 1.08257365e-01 + 1.08534605e-01 1.08811662e-01 1.09088533e-01 1.09365218e-01 1.09641714e-01 + 1.09918020e-01 1.10194135e-01 1.10470058e-01 1.10745788e-01 1.11021322e-01 + 1.11296660e-01 1.11571800e-01 1.11846741e-01 1.12121482e-01 1.12396021e-01 + 1.12670358e-01 1.12944490e-01 1.13218418e-01 1.13492138e-01 1.13765651e-01 + 1.14038955e-01 1.14312048e-01 1.14584930e-01 1.14857599e-01 1.15130055e-01 + 1.15402295e-01 1.15674319e-01 1.15946126e-01 1.16217714e-01 1.16489083e-01 + 1.16760231e-01 1.17031157e-01 1.17301860e-01 1.17572339e-01 1.17842593e-01 + 1.18112620e-01 1.18382420e-01 1.18651992e-01 1.18921334e-01 1.19190445e-01 + 1.19459326e-01 1.19727973e-01 1.19996387e-01 1.20264566e-01 1.20532510e-01 + 1.20800216e-01 1.21067686e-01 1.21334917e-01 1.21601908e-01 1.21868658e-01 + 1.22135167e-01 1.22401434e-01 1.22667458e-01 1.22933237e-01 1.23198771e-01 + 1.23464058e-01 1.23729099e-01 1.23993892e-01 1.24258436e-01 1.24522731e-01 + 1.24786775e-01 1.25050567e-01 1.25314108e-01 1.25577395e-01 1.25840428e-01 + 1.26103207e-01 1.26365730e-01 1.26627997e-01 1.26890006e-01 1.27151758e-01 + 1.27413251e-01 1.27674484e-01 1.27935457e-01 1.28196169e-01 1.28456619e-01 + 1.28716807e-01 1.28976731e-01 1.29236391e-01 1.29495787e-01 1.29754917e-01 + 1.30013780e-01 1.30272377e-01 1.30530707e-01 1.30788768e-01 1.31046560e-01 + 1.31304083e-01 1.31561335e-01 1.31818316e-01 1.32075026e-01 1.32331463e-01 + 1.32587628e-01 1.32843519e-01 1.33099136e-01 1.33354479e-01 1.33609546e-01 + 1.33864337e-01 1.34118851e-01 1.34373088e-01 1.34627048e-01 1.34880730e-01 + 1.35134132e-01 1.35387255e-01 1.35640099e-01 1.35892661e-01 1.36144943e-01 + 1.36396943e-01 1.36648661e-01 1.36900097e-01 1.37151249e-01 1.37402118e-01 + 1.37652702e-01 1.37903003e-01 1.38153017e-01 1.38402747e-01 1.38652190e-01 + 1.38901347e-01 1.39150217e-01 1.39398799e-01 1.39647094e-01 1.39895100e-01 + 1.40142817e-01 1.40390246e-01 1.40637384e-01 1.40884233e-01 1.41130791e-01 + 1.41377059e-01 1.41623035e-01 1.41868719e-01 1.42114112e-01 1.42359212e-01 + 1.42604020e-01 1.42848534e-01 1.43092755e-01 1.43336681e-01 1.43580314e-01 + 1.43823652e-01 1.44066695e-01 1.44309444e-01 1.44551896e-01 1.44794053e-01 + 1.45035913e-01 1.45277477e-01 1.45518744e-01 1.45759714e-01 1.46000386e-01 + 1.46240761e-01 1.46480838e-01 1.46720616e-01 1.46960096e-01 1.47199277e-01 + 1.47438159e-01 1.47676742e-01 1.47915025e-01 1.48153009e-01 1.48390692e-01 + 1.48628075e-01 1.48865157e-01 1.49101939e-01 1.49338419e-01 1.49574598e-01 + 1.49810476e-01 1.50046052e-01 1.50281327e-01 1.50516299e-01 1.50750969e-01 + 1.50985337e-01 1.51219402e-01 1.51453164e-01 1.51686623e-01 1.51919779e-01 + 1.52152632e-01 1.52385181e-01 1.52617427e-01 1.52849368e-01 1.53081006e-01 + 1.53312340e-01 1.53543370e-01 1.53774095e-01 1.54004516e-01 1.54234632e-01 + 1.54464444e-01 1.54693950e-01 1.54923152e-01 1.55152049e-01 1.55380640e-01 + 1.55608926e-01 1.55836907e-01 1.56064583e-01 1.56291953e-01 1.56519017e-01 + 1.56745775e-01 1.56972228e-01 1.57198375e-01 1.57424216e-01 1.57649751e-01 + 1.57874980e-01 1.58099903e-01 1.58324520e-01 1.58548831e-01 1.58772835e-01 + 1.58996533e-01 1.59219925e-01 1.59443010e-01 1.59665790e-01 1.59888262e-01 + 1.60110429e-01 1.60332289e-01 1.60553842e-01 1.60775089e-01 1.60996030e-01 + 1.61216664e-01 1.61436992e-01 1.61657013e-01 1.61876728e-01 1.62096136e-01 + 1.62315238e-01 1.62534034e-01 1.62752523e-01 1.62970706e-01 1.63188582e-01 + 1.63406152e-01 1.63623416e-01 1.63840374e-01 1.64057026e-01 1.64273371e-01 + 1.64489411e-01 1.64705144e-01 1.64920571e-01 1.65135693e-01 1.65350508e-01 + 1.65565018e-01 1.65779222e-01 1.65993121e-01 1.66206714e-01 1.66420001e-01 + 1.66632983e-01 1.66845660e-01 1.67058031e-01 1.67270097e-01 1.67481858e-01 + 1.67693314e-01 1.67904465e-01 1.68115312e-01 1.68325854e-01 1.68536091e-01 + 1.68746023e-01 1.68955652e-01 1.69164976e-01 1.69373996e-01 1.69582712e-01 + 1.69791124e-01 1.69999232e-01 1.70207037e-01 1.70414538e-01 1.70621735e-01 + 1.70828630e-01 1.71035221e-01 1.71241510e-01 1.71447495e-01 1.71653178e-01 + 1.71858558e-01 1.72063636e-01 1.72268412e-01 1.72472886e-01 1.72677057e-01 + 1.72880927e-01 1.73084495e-01 1.73287762e-01 1.73490728e-01 1.73693392e-01 + 1.73895756e-01 1.74097819e-01 1.74299581e-01 1.74501043e-01 1.74702204e-01 + 1.74903066e-01 1.75103627e-01 1.75303889e-01 1.75503852e-01 1.75703515e-01 + 1.75902879e-01 1.76101944e-01 1.76300710e-01 1.76499178e-01 1.76697348e-01 + 1.76895219e-01 1.77092792e-01 1.77290068e-01 1.77487046e-01 1.77683727e-01 + 1.77880111e-01 1.78076198e-01 1.78271989e-01 1.78467483e-01 1.78662680e-01 + 1.78857582e-01 1.79052188e-01 1.79246498e-01 1.79440514e-01 1.79634234e-01 + 1.79827659e-01 1.80020789e-01 1.80213625e-01 1.80406167e-01 1.80598415e-01 + 1.80790370e-01 1.80982031e-01 1.81173398e-01 1.81364473e-01 1.81555255e-01 + 1.81745745e-01 1.81935942e-01 1.82125848e-01 1.82315462e-01 1.82504784e-01 + 1.82693815e-01 1.82882555e-01 1.83071004e-01 1.83259163e-01 1.83447032e-01 + 1.83634611e-01 1.83821900e-01 1.84008900e-01 1.84195611e-01 1.84382033e-01 + 1.84568166e-01 1.84754012e-01 1.84939569e-01 1.85124838e-01 1.85309820e-01 + 1.85494514e-01 1.85678922e-01 1.85863043e-01 1.86046878e-01 1.86230426e-01 + 1.86413689e-01 1.86596666e-01 1.86779358e-01 1.86961765e-01 1.87143887e-01 + 1.87325725e-01 1.87507279e-01 1.87688549e-01 1.87869536e-01 1.88050239e-01 + 1.88230659e-01 1.88410797e-01 1.88590653e-01 1.88770226e-01 1.88949518e-01 + 1.89128528e-01 1.89307257e-01 1.89485705e-01 1.89663873e-01 1.89841761e-01 + 1.90019368e-01 1.90196696e-01 1.90373745e-01 1.90550515e-01 1.90727005e-01 + 1.90903218e-01 1.91079153e-01 1.91254809e-01 1.91430189e-01 1.91605291e-01 + 1.91780116e-01 1.91954665e-01 1.92128937e-01 1.92302934e-01 1.92476655e-01 + 1.92650101e-01 1.92823272e-01 1.92996169e-01 1.93168791e-01 1.93341139e-01 + 1.93513213e-01 1.93685014e-01 1.93856543e-01 1.94027798e-01 1.94198781e-01 + 1.94369492e-01 1.94539932e-01 1.94710100e-01 1.94879997e-01 1.95049623e-01 + 1.95218979e-01 1.95388065e-01 1.95556881e-01 1.95725428e-01 1.95893706e-01 + 1.96061715e-01 1.96229455e-01 1.96396928e-01 1.96564133e-01 1.96731070e-01 + 1.96897741e-01 1.97064144e-01 1.97230282e-01 1.97396153e-01 1.97561758e-01 + 1.97727099e-01 1.97892174e-01 1.98056984e-01 1.98221530e-01 1.98385813e-01 + 1.98549831e-01 1.98713586e-01 1.98877078e-01 1.99040308e-01 1.99203275e-01 + 1.99365980e-01 1.99528424e-01 1.99690606e-01 1.99852528e-01 2.00014188e-01 + 2.00175589e-01 2.00336730e-01 2.00497611e-01 2.00658233e-01 2.00818596e-01 + 2.00978701e-01 2.01138547e-01 2.01298136e-01 2.01457467e-01 2.01616542e-01 + 2.01775359e-01 2.01933920e-01 2.02092225e-01 2.02250274e-01 2.02408068e-01 + 2.02565607e-01 2.02722891e-01 2.02879921e-01 2.03036697e-01 2.03193220e-01 + 2.03349489e-01 2.03505505e-01 2.03661269e-01 2.03816780e-01 2.03972040e-01 + 2.04127048e-01 2.04281805e-01 2.04436312e-01 2.04590568e-01 2.04744573e-01 + 2.04898329e-01 2.05051836e-01 2.05205094e-01 2.05358103e-01 2.05510864e-01 + 2.05663377e-01 2.05815642e-01 2.05967660e-01 2.06119432e-01 2.06270956e-01 + 2.06422235e-01 2.06573268e-01 2.06724055e-01 2.06874598e-01 2.07024895e-01 + 2.07174948e-01 2.07324757e-01 2.07474323e-01 2.07623645e-01 2.07772725e-01 + 2.07921561e-01 2.08070156e-01 2.08218508e-01 2.08366619e-01 2.08514489e-01 + 2.08662119e-01 2.08809507e-01 2.08956656e-01 2.09103565e-01 2.09250235e-01 + 2.09396665e-01 2.09542857e-01 2.09688811e-01 2.09834526e-01 2.09980005e-01 + 2.10125246e-01 2.10270250e-01 2.10415017e-01 2.10559549e-01 2.10703844e-01 + 2.10847905e-01 2.10991730e-01 2.11135320e-01 2.11278676e-01 2.11421799e-01 + 2.11564687e-01 2.11707342e-01 2.11849765e-01 2.11991955e-01 2.12133912e-01 + 2.12275638e-01 2.12417132e-01 2.12558395e-01 2.12699428e-01 2.12840230e-01 + 2.12980802e-01 2.13121144e-01 2.13261257e-01 2.13401141e-01 2.13540796e-01 + 2.13680223e-01 2.13819422e-01 2.13958394e-01 2.14097138e-01 2.14235656e-01 + 2.14373947e-01 2.14512011e-01 2.14649851e-01 2.14787464e-01 2.14924853e-01 + 2.15062017e-01 2.15198957e-01 2.15335672e-01 2.15472164e-01 2.15608433e-01 + 2.15744479e-01 2.15880302e-01 2.16015903e-01 2.16151282e-01 2.16286440e-01 + 2.16421376e-01 2.16556092e-01 2.16690587e-01 2.16824862e-01 2.16958918e-01 + 2.17092754e-01 2.17226371e-01 2.17359769e-01 2.17492949e-01 2.17625911e-01 + 2.17758656e-01 2.17891183e-01 2.18023493e-01 2.18155587e-01 2.18287464e-01 + 2.18419126e-01 2.18550572e-01 2.18681803e-01 2.18812819e-01 2.18943621e-01 + 2.19074208e-01 2.19204582e-01 2.19334742e-01 2.19464690e-01 2.19594424e-01 + 2.19723946e-01 2.19853257e-01 2.19982355e-01 2.20111242e-01 2.20239919e-01 + 2.20368384e-01 2.20496640e-01 2.20624685e-01 2.20752521e-01 2.20880148e-01 + 2.21007566e-01 2.21134775e-01 2.21261776e-01 2.21388569e-01 2.21515155e-01 + 2.21641533e-01 2.21767705e-01 2.21893670e-01 2.22019429e-01 2.22144983e-01 + 2.22270331e-01 2.22395473e-01 2.22520411e-01 2.22645145e-01 2.22769675e-01 + 2.22894000e-01 2.23018123e-01 2.23142042e-01 2.23265759e-01 2.23389273e-01 + 2.23512586e-01 2.23635696e-01 2.23758606e-01 2.23881314e-01 2.24003822e-01 + 2.24126129e-01 2.24248236e-01 2.24370144e-01 2.24491852e-01 2.24613362e-01 + 2.24734673e-01 2.24855785e-01 2.24976700e-01 2.25097417e-01 2.25217936e-01 + 2.25338259e-01 2.25458385e-01 2.25578315e-01 2.25698048e-01 2.25817587e-01 + 2.25936930e-01 2.26056078e-01 2.26175031e-01 2.26293790e-01 2.26412355e-01 + 2.26530727e-01 2.26648905e-01 2.26766890e-01 2.26884683e-01 2.27002283e-01 + 2.27119691e-01 2.27236908e-01 2.27353934e-01 2.27470768e-01 2.27587412e-01 + 2.27703865e-01 2.27820129e-01 2.27936203e-01 2.28052087e-01 2.28167783e-01 + 2.28283290e-01 2.28398608e-01 2.28513738e-01 2.28628681e-01 2.28743437e-01 + 2.28858005e-01 2.28972386e-01 2.29086581e-01 2.29200591e-01 2.29314414e-01 + 2.29428052e-01 2.29541504e-01 2.29654772e-01 2.29767856e-01 2.29880755e-01 + 2.29993470e-01 2.30106002e-01 2.30218351e-01 2.30330517e-01 2.30442500e-01 + 2.30554301e-01 2.30665921e-01 2.30777358e-01 2.30888614e-01 2.30999690e-01 + 2.31110584e-01 2.31221299e-01 2.31331833e-01 2.31442188e-01 2.31552363e-01 + 2.31662359e-01 2.31772176e-01 2.31881815e-01 2.31991276e-01 2.32100559e-01 + 2.32209665e-01 2.32318593e-01 2.32427344e-01 2.32535919e-01 2.32644318e-01 + 2.32752540e-01 2.32860587e-01 2.32968459e-01 2.33076155e-01 2.33183677e-01 + 2.33291025e-01 2.33398198e-01 2.33505198e-01 2.33612024e-01 2.33718676e-01 + 2.33825157e-01 2.33931464e-01 2.34037599e-01 2.34143562e-01 2.34249354e-01 + 2.34354974e-01 2.34460423e-01 2.34565702e-01 2.34670810e-01 2.34775748e-01 + 2.34880516e-01 2.34985114e-01 2.35089544e-01 2.35193804e-01 2.35297896e-01 + 2.35401819e-01 2.35505574e-01 2.35609162e-01 2.35712582e-01 2.35815835e-01 + 2.35918921e-01 2.36021841e-01 2.36124594e-01 2.36227182e-01 2.36329603e-01 + 2.36431860e-01 2.36533951e-01 2.36635878e-01 2.36737640e-01 2.36839238e-01 + 2.36940672e-01 2.37041942e-01 2.37143049e-01 2.37243994e-01 2.37344775e-01 + 2.37445394e-01 2.37545851e-01 2.37646146e-01 2.37746279e-01 2.37846251e-01 + 2.37946062e-01 2.38045713e-01 2.38145203e-01 2.38244533e-01 2.38343703e-01 + 2.38442713e-01 2.38541565e-01 2.38640257e-01 2.38738790e-01 2.38837166e-01 + 2.38935383e-01 2.39033442e-01 2.39131344e-01 2.39229088e-01 2.39326676e-01 + 2.39424106e-01 2.39521381e-01 2.39618499e-01 2.39715461e-01 2.39812268e-01 + 2.39908919e-01 2.40005416e-01 2.40101757e-01 2.40197944e-01 2.40293977e-01 + 2.40389856e-01 2.40485582e-01 2.40581154e-01 2.40676573e-01 2.40771839e-01 + 2.40866953e-01 2.40961914e-01 2.41056724e-01 2.41151382e-01 2.41245888e-01 + 2.41340243e-01 2.41434447e-01 2.41528501e-01 2.41622404e-01 2.41716158e-01 + 2.41809761e-01 2.41903215e-01 2.41996520e-01 2.42089675e-01 2.42182682e-01 + 2.42275541e-01 2.42368251e-01 2.42460813e-01 2.42553228e-01 2.42645496e-01 + 2.42737616e-01 2.42829589e-01 2.42921416e-01 2.43013097e-01 2.43104631e-01 + 2.43196020e-01 2.43287263e-01 2.43378361e-01 2.43469314e-01 2.43560122e-01 + 2.43650786e-01 2.43741306e-01 2.43831681e-01 2.43921913e-01 2.44012001e-01 + 2.44101947e-01 2.44191749e-01 2.44281409e-01 2.44370926e-01 2.44460302e-01 + 2.44549535e-01 2.44638627e-01 2.44727577e-01 2.44816386e-01 2.44905055e-01 + 2.44993583e-01 2.45081970e-01 2.45170218e-01 2.45258325e-01 2.45346293e-01 + 2.45434122e-01 2.45521812e-01 2.45609362e-01 2.45696775e-01 2.45784049e-01 + 2.45871185e-01 2.45958183e-01 2.46045043e-01 2.46131766e-01 2.46218353e-01 + 2.46304802e-01 2.46391115e-01 2.46477291e-01 2.46563332e-01 2.46649236e-01 + 2.46735006e-01 2.46820639e-01 2.46906138e-01 2.46991502e-01 2.47076731e-01 + 2.47161826e-01 2.47246787e-01 2.47331614e-01 2.47416307e-01 2.47500867e-01 + 2.47585294e-01 2.47669588e-01 2.47753749e-01 2.47837778e-01 2.47921675e-01 + 2.48005440e-01 2.48089073e-01 2.48172575e-01 2.48255945e-01 2.48339185e-01 + 2.48422294e-01 2.48505272e-01 2.48588120e-01 2.48670839e-01 2.48753427e-01 + 2.48835886e-01 2.48918215e-01 2.49000416e-01 2.49082487e-01 2.49164431e-01 + 2.49246245e-01 2.49327932e-01 2.49409490e-01 2.49490922e-01 2.49572225e-01 + 2.49653402e-01 2.49734451e-01 2.49815374e-01 2.49896170e-01 2.49976840e-01 + 2.50057384e-01 2.50137802e-01 2.50218094e-01 2.50298261e-01 2.50378303e-01 + 2.50458221e-01 2.50538013e-01 2.50617681e-01 2.50697225e-01 2.50776645e-01 + 2.50855941e-01 2.50935113e-01 2.51014162e-01 2.51093088e-01 2.51171892e-01 + 2.51250572e-01 2.51329130e-01 2.51407566e-01 2.51485880e-01 2.51564073e-01 + 2.51642143e-01 2.51720093e-01 2.51797921e-01 2.51875629e-01 2.51953216e-01 + 2.52030682e-01 2.52108028e-01 2.52185254e-01 2.52262361e-01 2.52339348e-01 + 2.52416215e-01 2.52492964e-01 2.52569593e-01 2.52646104e-01 2.52722497e-01 + 2.52798771e-01 2.52874927e-01 2.52950965e-01 2.53026886e-01 2.53102689e-01 + 2.53178375e-01 2.53253944e-01 2.53329397e-01 2.53404733e-01 2.53479952e-01 + 2.53555056e-01 2.53630043e-01 2.53704915e-01 2.53779671e-01 2.53854312e-01 + 2.53928839e-01 2.54003250e-01 2.54077546e-01 2.54151728e-01 2.54225796e-01 + 2.54299750e-01 2.54373590e-01 2.54447316e-01 2.54520930e-01 2.54594429e-01 + 2.54667816e-01 2.54741090e-01 2.54814252e-01 2.54887301e-01 2.54960238e-01 + 2.55033063e-01 2.55105776e-01 2.55178378e-01 2.55250868e-01 2.55323247e-01 + 2.55395516e-01 2.55467673e-01 2.55539720e-01 2.55611657e-01 2.55683483e-01 + 2.55755200e-01 2.55826806e-01 2.55898304e-01 2.55969692e-01 2.56040970e-01 + 2.56112140e-01 2.56183201e-01 2.56254154e-01 2.56324998e-01 2.56395734e-01 + 2.56466362e-01 2.56536882e-01 2.56607295e-01 2.56677600e-01 2.56747798e-01 + 2.56817889e-01 2.56887874e-01 2.56957752e-01 2.57027523e-01 2.57097188e-01 + 2.57166747e-01 2.57236200e-01 2.57305548e-01 2.57374790e-01 2.57443927e-01 + 2.57512959e-01 2.57581886e-01 2.57650709e-01 2.57719427e-01 2.57788040e-01 + 2.57856550e-01 2.57924955e-01 2.57993257e-01 2.58061455e-01 2.58129550e-01 + 2.58197542e-01 2.58265431e-01 2.58333217e-01 2.58400900e-01 2.58468481e-01 + 2.58535960e-01 2.58603336e-01 2.58670611e-01 2.58737784e-01 2.58804856e-01 + 2.58871826e-01 2.58938695e-01 2.59005463e-01 2.59072131e-01 2.59138697e-01 + 2.59205164e-01 2.59271530e-01 2.59337796e-01 2.59403962e-01 2.59470029e-01 + 2.59535996e-01 2.59601864e-01 2.59667633e-01 2.59733302e-01 2.59798873e-01 + 2.59864345e-01 2.59929719e-01 2.59994995e-01 2.60060172e-01 2.60125252e-01 + 2.60190234e-01 2.60255118e-01 2.60319905e-01 2.60384595e-01 2.60449188e-01 + 2.60513684e-01 2.60578083e-01 2.60642386e-01 2.60706593e-01 2.60770703e-01 + 2.60834718e-01 2.60898636e-01 2.60962459e-01 2.61026187e-01 2.61089819e-01 + 2.61153356e-01 2.61216799e-01 2.61280146e-01 2.61343399e-01 2.61406557e-01 + 2.61469622e-01 2.61532592e-01 2.61595468e-01 2.61658250e-01 2.61720939e-01 + 2.61783535e-01 2.61846037e-01 2.61908446e-01 2.61970763e-01 2.62032986e-01 + 2.62095117e-01 2.62157156e-01 2.62219102e-01 2.62280956e-01 2.62342719e-01 + 2.62404389e-01 2.62465968e-01 2.62527456e-01 2.62588852e-01 2.62650158e-01 + 2.62711372e-01 2.62772496e-01 2.62833529e-01 2.62894471e-01 2.62955324e-01 + 2.63016086e-01 2.63076758e-01 2.63137341e-01 2.63197833e-01 2.63258237e-01 + 2.63318551e-01 2.63378776e-01 2.63438912e-01 2.63498959e-01 2.63558918e-01 + 2.63618788e-01 2.63678569e-01 2.63738263e-01 2.63797868e-01 2.63857386e-01 + 2.63916816e-01 2.63976158e-01 2.64035413e-01 2.64094581e-01 2.64153661e-01 + 2.64212655e-01 2.64271562e-01 2.64330382e-01 2.64389116e-01 2.64447763e-01 + 2.64506324e-01 2.64564800e-01 2.64623189e-01 2.64681493e-01 2.64739711e-01 + 2.64797844e-01 2.64855892e-01 2.64913854e-01 2.64971732e-01 2.65029524e-01 + 2.65087233e-01 2.65144856e-01 2.65202396e-01 2.65259851e-01 2.65317222e-01 + 2.65374509e-01 2.65431713e-01 2.65488833e-01 2.65545869e-01 2.65602822e-01 + 2.65659692e-01 2.65716480e-01 2.65773184e-01 2.65829805e-01 2.65886344e-01 + 2.65942801e-01 2.65999175e-01 2.66055468e-01 2.66111678e-01 2.66167806e-01 + 2.66223853e-01 2.66279819e-01 2.66335703e-01 2.66391505e-01 2.66447227e-01 + 2.66502868e-01 2.66558427e-01 2.66613907e-01 2.66669305e-01 2.66724624e-01 + 2.66779862e-01 2.66835020e-01 2.66890098e-01 2.66945096e-01 2.67000015e-01 + 2.67054854e-01 2.67109613e-01 2.67164294e-01 2.67218895e-01 2.67273418e-01 + 2.67327861e-01 2.67382226e-01 2.67436512e-01 2.67490720e-01 2.67544850e-01 + 2.67598902e-01 2.67652875e-01 2.67706771e-01 2.67760589e-01 2.67814330e-01 + 2.67867993e-01 2.67921578e-01 2.67975087e-01 2.68028519e-01 2.68081873e-01 + 2.68135151e-01 2.68188352e-01 2.68241477e-01 2.68294526e-01 2.68347498e-01 + 2.68400394e-01 2.68453214e-01 2.68505959e-01 2.68558628e-01 2.68611221e-01 + 2.68663738e-01 2.68716181e-01 2.68768548e-01 2.68820841e-01 2.68873058e-01 + 2.68925201e-01 2.68977269e-01 2.69029263e-01 2.69081182e-01 2.69133027e-01 + 2.69184798e-01 2.69236495e-01 2.69288118e-01 2.69339668e-01 2.69391143e-01 + 2.69442546e-01 2.69493875e-01 2.69545131e-01 2.69596314e-01 2.69647424e-01 + 2.69698461e-01 2.69749425e-01 2.69800317e-01 2.69851137e-01 2.69901884e-01 + 2.69952559e-01 2.70003162e-01 2.70053693e-01 2.70104153e-01 2.70154540e-01 + 2.70204856e-01 2.70255101e-01 2.70305274e-01 2.70355377e-01 2.70405408e-01 + 2.70455368e-01 2.70505258e-01 2.70555077e-01 2.70604825e-01 2.70654503e-01 + 2.70704110e-01 2.70753648e-01 2.70803115e-01 2.70852513e-01 2.70901840e-01 + 2.70951098e-01 2.71000287e-01 2.71049406e-01 2.71098455e-01 2.71147436e-01 + 2.71196347e-01 2.71245190e-01 2.71293963e-01 2.71342668e-01 2.71391304e-01 + 2.71439872e-01 2.71488372e-01 2.71536803e-01 2.71585166e-01 2.71633461e-01 + 2.71681688e-01 2.71729848e-01 2.71777939e-01 2.71825964e-01 2.71873921e-01 + 2.71921810e-01 2.71969632e-01 2.72017388e-01 2.72065076e-01 2.72112698e-01 + 2.72160252e-01 2.72207741e-01 2.72255162e-01 2.72302518e-01 2.72349807e-01 + 2.72397030e-01 2.72444187e-01 2.72491278e-01 2.72538303e-01 2.72585263e-01 + 2.72632157e-01 2.72678985e-01 2.72725748e-01 2.72772446e-01 2.72819079e-01 + 2.72865647e-01 2.72912150e-01 2.72958588e-01 2.73004962e-01 2.73051271e-01 + 2.73097516e-01 2.73143696e-01 2.73189812e-01 2.73235864e-01 2.73281852e-01 + 2.73327776e-01 2.73373636e-01 2.73419432e-01 2.73465166e-01 2.73510835e-01 + 2.73556441e-01 2.73601984e-01 2.73647464e-01 2.73692881e-01 2.73738235e-01 + 2.73783526e-01 2.73828755e-01 2.73873921e-01 2.73919024e-01 2.73964065e-01 + 2.74009044e-01 2.74053961e-01 2.74098815e-01 2.74143608e-01 2.74188339e-01 + 2.74233008e-01 2.74277616e-01 2.74322162e-01 2.74366646e-01 2.74411070e-01 + 2.74455432e-01 2.74499733e-01 2.74543973e-01 2.74588152e-01 2.74632270e-01 + 2.74676328e-01 2.74720325e-01 2.74764262e-01 2.74808138e-01 2.74851954e-01 + 2.74895710e-01 2.74939406e-01 2.74983042e-01 2.75026618e-01 2.75070135e-01 + 2.75113591e-01 2.75156988e-01 2.75200326e-01 2.75243604e-01 2.75286824e-01 + 2.75329984e-01 2.75373085e-01 2.75416127e-01 2.75459110e-01 2.75502034e-01 + 2.75544900e-01 2.75587707e-01 2.75630456e-01 2.75673147e-01 2.75715779e-01 + 2.75758353e-01 2.75800869e-01 2.75843328e-01 2.75885728e-01 2.75928070e-01 + 2.75970355e-01 2.76012583e-01 2.76054753e-01 2.76096866e-01 2.76138921e-01 + 2.76180919e-01 2.76222860e-01 2.76264745e-01 2.76306572e-01 2.76348342e-01 + 2.76390056e-01 2.76431714e-01 2.76473315e-01 2.76514859e-01 2.76556347e-01 + 2.76597779e-01 2.76639155e-01 2.76680475e-01 2.76721739e-01 2.76762947e-01 + 2.76804100e-01 2.76845197e-01 2.76886238e-01 2.76927224e-01 2.76968154e-01 + 2.77009030e-01 2.77049850e-01 2.77090615e-01 2.77131325e-01 2.77171980e-01 + 2.77212581e-01 2.77253126e-01 2.77293617e-01 2.77334054e-01 2.77374436e-01 + 2.77414764e-01 2.77455038e-01 2.77495257e-01 2.77535423e-01 2.77575534e-01 + 2.77615592e-01 2.77655596e-01 2.77695546e-01 2.77735443e-01 2.77775286e-01 + 2.77815076e-01 2.77854812e-01 2.77894495e-01 2.77934125e-01 2.77973702e-01 + 2.78013226e-01 2.78052697e-01 2.78092115e-01 2.78131481e-01 2.78170794e-01 + 2.78210054e-01 2.78249262e-01 2.78288418e-01 2.78327521e-01 2.78366572e-01 + 2.78405571e-01 2.78444519e-01 2.78483414e-01 2.78522257e-01 2.78561049e-01 + 2.78599789e-01 2.78638477e-01 2.78677114e-01 2.78715700e-01 2.78754234e-01 + 2.78792717e-01 2.78831149e-01 2.78869530e-01 2.78907859e-01 2.78946138e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.65580254e-01 1.65563515e-01 1.65546741e-01 1.65529929e-01 1.65513082e-01 + 1.65496198e-01 1.65479277e-01 1.65462319e-01 1.65445324e-01 1.65428292e-01 + 1.65411223e-01 1.65394117e-01 1.65376974e-01 1.65359793e-01 1.65342574e-01 + 1.65325318e-01 1.65308025e-01 1.65290693e-01 1.65273323e-01 1.65255915e-01 + 1.65238469e-01 1.65220985e-01 1.65203462e-01 1.65185901e-01 1.65168301e-01 + 1.65150662e-01 1.65132985e-01 1.65115268e-01 1.65097513e-01 1.65079718e-01 + 1.65061884e-01 1.65044011e-01 1.65026098e-01 1.65008145e-01 1.64990153e-01 + 1.64972120e-01 1.64954048e-01 1.64935936e-01 1.64917783e-01 1.64899591e-01 + 1.64881357e-01 1.64863083e-01 1.64844769e-01 1.64826414e-01 1.64808017e-01 + 1.64789580e-01 1.64771102e-01 1.64752582e-01 1.64734021e-01 1.64715418e-01 + 1.64696774e-01 1.64678088e-01 1.64659360e-01 1.64640590e-01 1.64621778e-01 + 1.64602924e-01 1.64584027e-01 1.64565088e-01 1.64546107e-01 1.64527082e-01 + 1.64508015e-01 1.64488905e-01 1.64469751e-01 1.64450555e-01 1.64431315e-01 + 1.64412031e-01 1.64392704e-01 1.64373334e-01 1.64353919e-01 1.64334460e-01 + 1.64314958e-01 1.64295411e-01 1.64275819e-01 1.64256183e-01 1.64236503e-01 + 1.64216777e-01 1.64197007e-01 1.64177192e-01 1.64157331e-01 1.64137425e-01 + 1.64117474e-01 1.64097477e-01 1.64077435e-01 1.64057346e-01 1.64037212e-01 + 1.64017032e-01 1.63996805e-01 1.63976532e-01 1.63956212e-01 1.63935846e-01 + 1.63915433e-01 1.63894973e-01 1.63874465e-01 1.63853911e-01 1.63833309e-01 + 1.63812660e-01 1.63791963e-01 1.63771218e-01 1.63750426e-01 1.63729585e-01 + 1.63708696e-01 1.63687759e-01 1.63666773e-01 1.63645738e-01 1.63624655e-01 + 1.63603523e-01 1.63582341e-01 1.63561111e-01 1.63539831e-01 1.63518501e-01 + 1.63497122e-01 1.63475693e-01 1.63454214e-01 1.63432685e-01 1.63411106e-01 + 1.63389476e-01 1.63367795e-01 1.63346064e-01 1.63324282e-01 1.63302449e-01 + 1.63280565e-01 1.63258629e-01 1.63236642e-01 1.63214603e-01 1.63192512e-01 + 1.63170369e-01 1.63148174e-01 1.63125927e-01 1.63103628e-01 1.63081275e-01 + 1.63058870e-01 1.63036412e-01 1.63013901e-01 1.62991337e-01 1.62968719e-01 + 1.62946048e-01 1.62923323e-01 1.62900544e-01 1.62877710e-01 1.62854823e-01 + 1.62831881e-01 1.62808885e-01 1.62785834e-01 1.62762728e-01 1.62739567e-01 + 1.62716350e-01 1.62693078e-01 1.62669751e-01 1.62646368e-01 1.62622929e-01 + 1.62599433e-01 1.62575882e-01 1.62552274e-01 1.62528609e-01 1.62504888e-01 + 1.62481109e-01 1.62457274e-01 1.62433381e-01 1.62409431e-01 1.62385423e-01 + 1.62361357e-01 1.62337233e-01 1.62313050e-01 1.62288810e-01 1.62264510e-01 + 1.62240152e-01 1.62215735e-01 1.62191259e-01 1.62166724e-01 1.62142129e-01 + 1.62117474e-01 1.62092759e-01 1.62067985e-01 1.62043150e-01 1.62018255e-01 + 1.61993299e-01 1.61968282e-01 1.61943204e-01 1.61918065e-01 1.61892865e-01 + 1.61867603e-01 1.61842279e-01 1.61816893e-01 1.61791445e-01 1.61765935e-01 + 1.61740362e-01 1.61714726e-01 1.61689028e-01 1.61663266e-01 1.61637441e-01 + 1.61611552e-01 1.61585600e-01 1.61559583e-01 1.61533503e-01 1.61507358e-01 + 1.61481148e-01 1.61454874e-01 1.61428535e-01 1.61402130e-01 1.61375660e-01 + 1.61349125e-01 1.61322523e-01 1.61295856e-01 1.61269123e-01 1.61242323e-01 + 1.61215456e-01 1.61188522e-01 1.61161522e-01 1.61134454e-01 1.61107319e-01 + 1.61080115e-01 1.61052844e-01 1.61025505e-01 1.60998098e-01 1.60970621e-01 + 1.60943076e-01 1.60915462e-01 1.60887779e-01 1.60860026e-01 1.60832204e-01 + 1.60804311e-01 1.60776349e-01 1.60748316e-01 1.60720212e-01 1.60692038e-01 + 1.60663792e-01 1.60635475e-01 1.60607087e-01 1.60578627e-01 1.60550095e-01 + 1.60521491e-01 1.60492814e-01 1.60464065e-01 1.60435242e-01 1.60406347e-01 + 1.60377378e-01 1.60348335e-01 1.60319219e-01 1.60290028e-01 1.60260764e-01 + 1.60231424e-01 1.60202010e-01 1.60172520e-01 1.60142955e-01 1.60113315e-01 + 1.60083599e-01 1.60053807e-01 1.60023938e-01 1.59993993e-01 1.59963971e-01 + 1.59933872e-01 1.59903696e-01 1.59873442e-01 1.59843110e-01 1.59812700e-01 + 1.59782212e-01 1.59751645e-01 1.59720999e-01 1.59690274e-01 1.59659470e-01 + 1.59628586e-01 1.59597622e-01 1.59566578e-01 1.59535454e-01 1.59504249e-01 + 1.59472963e-01 1.59441595e-01 1.59410146e-01 1.59378616e-01 1.59347003e-01 + 1.59315308e-01 1.59283531e-01 1.59251670e-01 1.59219726e-01 1.59187699e-01 + 1.59155589e-01 1.59123394e-01 1.59091115e-01 1.59058751e-01 1.59026303e-01 + 1.58993770e-01 1.58961151e-01 1.58928446e-01 1.58895656e-01 1.58862779e-01 + 1.58829816e-01 1.58796766e-01 1.58763628e-01 1.58730404e-01 1.58697092e-01 + 1.58663691e-01 1.58630203e-01 1.58596625e-01 1.58562959e-01 1.58529204e-01 + 1.58495359e-01 1.58461425e-01 1.58427400e-01 1.58393285e-01 1.58359079e-01 + 1.58324782e-01 1.58290394e-01 1.58255915e-01 1.58221343e-01 1.58186679e-01 + 1.58151923e-01 1.58117073e-01 1.58082131e-01 1.58047095e-01 1.58011965e-01 + 1.57976741e-01 1.57941422e-01 1.57906009e-01 1.57870501e-01 1.57834897e-01 + 1.57799197e-01 1.57763402e-01 1.57727510e-01 1.57691521e-01 1.57655435e-01 + 1.57619252e-01 1.57582971e-01 1.57546592e-01 1.57510115e-01 1.57473538e-01 + 1.57436863e-01 1.57400088e-01 1.57363214e-01 1.57326239e-01 1.57289164e-01 + 1.57251989e-01 1.57214712e-01 1.57177333e-01 1.57139853e-01 1.57102271e-01 + 1.57064586e-01 1.57026798e-01 1.56988907e-01 1.56950912e-01 1.56912813e-01 + 1.56874610e-01 1.56836302e-01 1.56797890e-01 1.56759371e-01 1.56720748e-01 + 1.56682017e-01 1.56643181e-01 1.56604237e-01 1.56565187e-01 1.56526028e-01 + 1.56486762e-01 1.56447387e-01 1.56407903e-01 1.56368311e-01 1.56328609e-01 + 1.56288796e-01 1.56248874e-01 1.56208841e-01 1.56168697e-01 1.56128441e-01 + 1.56088074e-01 1.56047594e-01 1.56007002e-01 1.55966297e-01 1.55925478e-01 + 1.55884546e-01 1.55843499e-01 1.55802338e-01 1.55761062e-01 1.55719670e-01 + 1.55678163e-01 1.55636539e-01 1.55594799e-01 1.55552941e-01 1.55510966e-01 + 1.55468873e-01 1.55426662e-01 1.55384333e-01 1.55341884e-01 1.55299315e-01 + 1.55256627e-01 1.55213818e-01 1.55170888e-01 1.55127838e-01 1.55084665e-01 + 1.55041370e-01 1.54997953e-01 1.54954413e-01 1.54910749e-01 1.54866961e-01 + 1.54823050e-01 1.54779013e-01 1.54734851e-01 1.54690564e-01 1.54646150e-01 + 1.54601610e-01 1.54556943e-01 1.54512149e-01 1.54467226e-01 1.54422176e-01 + 1.54376996e-01 1.54331687e-01 1.54286249e-01 1.54240680e-01 1.54194981e-01 + 1.54149150e-01 1.54103188e-01 1.54057094e-01 1.54010867e-01 1.53964507e-01 + 1.53918014e-01 1.53871386e-01 1.53824625e-01 1.53777728e-01 1.53730696e-01 + 1.53683527e-01 1.53636223e-01 1.53588781e-01 1.53541202e-01 1.53493486e-01 + 1.53445630e-01 1.53397636e-01 1.53349503e-01 1.53301229e-01 1.53252815e-01 + 1.53204260e-01 1.53155564e-01 1.53106726e-01 1.53057745e-01 1.53008621e-01 + 1.52959354e-01 1.52909943e-01 1.52860387e-01 1.52810686e-01 1.52760840e-01 + 1.52710847e-01 1.52660708e-01 1.52610421e-01 1.52559987e-01 1.52509404e-01 + 1.52458673e-01 1.52407792e-01 1.52356762e-01 1.52305580e-01 1.52254248e-01 + 1.52202764e-01 1.52151129e-01 1.52099340e-01 1.52047398e-01 1.51995302e-01 + 1.51943052e-01 1.51890647e-01 1.51838087e-01 1.51785370e-01 1.51732497e-01 + 1.51679467e-01 1.51626279e-01 1.51572932e-01 1.51519426e-01 1.51465761e-01 + 1.51411936e-01 1.51357950e-01 1.51303802e-01 1.51249493e-01 1.51195021e-01 + 1.51140386e-01 1.51085587e-01 1.51030624e-01 1.50975496e-01 1.50920202e-01 + 1.50864742e-01 1.50809116e-01 1.50753322e-01 1.50697360e-01 1.50641229e-01 + 1.50584929e-01 1.50528459e-01 1.50471818e-01 1.50415007e-01 1.50358023e-01 + 1.50300867e-01 1.50243538e-01 1.50186035e-01 1.50128358e-01 1.50070506e-01 + 1.50012478e-01 1.49954274e-01 1.49895893e-01 1.49837334e-01 1.49778596e-01 + 1.49719680e-01 1.49660584e-01 1.49601308e-01 1.49541850e-01 1.49482211e-01 + 1.49422390e-01 1.49362385e-01 1.49302197e-01 1.49241824e-01 1.49181266e-01 + 1.49120523e-01 1.49059593e-01 1.48998475e-01 1.48937170e-01 1.48875676e-01 + 1.48813992e-01 1.48752119e-01 1.48690055e-01 1.48627799e-01 1.48565351e-01 + 1.48502710e-01 1.48439876e-01 1.48376847e-01 1.48313623e-01 1.48250203e-01 + 1.48186586e-01 1.48122773e-01 1.48058761e-01 1.47994550e-01 1.47930139e-01 + 1.47865528e-01 1.47800717e-01 1.47735703e-01 1.47670486e-01 1.47605066e-01 + 1.47539442e-01 1.47473613e-01 1.47407579e-01 1.47341337e-01 1.47274889e-01 + 1.47208232e-01 1.47141367e-01 1.47074292e-01 1.47007006e-01 1.46939509e-01 + 1.46871800e-01 1.46803878e-01 1.46735743e-01 1.46667393e-01 1.46598827e-01 + 1.46530046e-01 1.46461047e-01 1.46391831e-01 1.46322396e-01 1.46252742e-01 + 1.46182867e-01 1.46112772e-01 1.46042454e-01 1.45971913e-01 1.45901149e-01 + 1.45830160e-01 1.45758946e-01 1.45687506e-01 1.45615839e-01 1.45543943e-01 + 1.45471819e-01 1.45399465e-01 1.45326880e-01 1.45254064e-01 1.45181016e-01 + 1.45107734e-01 1.45034218e-01 1.44960467e-01 1.44886480e-01 1.44812256e-01 + 1.44737795e-01 1.44663094e-01 1.44588154e-01 1.44512974e-01 1.44437552e-01 + 1.44361888e-01 1.44285981e-01 1.44209829e-01 1.44133432e-01 1.44056789e-01 + 1.43979899e-01 1.43902761e-01 1.43825374e-01 1.43747737e-01 1.43669849e-01 + 1.43591710e-01 1.43513317e-01 1.43434671e-01 1.43355770e-01 1.43276613e-01 + 1.43197200e-01 1.43117528e-01 1.43037599e-01 1.42957409e-01 1.42876959e-01 + 1.42796247e-01 1.42715272e-01 1.42634034e-01 1.42552530e-01 1.42470761e-01 + 1.42388726e-01 1.42306422e-01 1.42223850e-01 1.42141007e-01 1.42057894e-01 + 1.41974509e-01 1.41890851e-01 1.41806919e-01 1.41722711e-01 1.41638228e-01 + 1.41553467e-01 1.41468428e-01 1.41383109e-01 1.41297511e-01 1.41211630e-01 + 1.41125467e-01 1.41039020e-01 1.40952288e-01 1.40865271e-01 1.40777966e-01 + 1.40690373e-01 1.40602491e-01 1.40514319e-01 1.40425855e-01 1.40337099e-01 + 1.40248048e-01 1.40158703e-01 1.40069062e-01 1.39979124e-01 1.39888888e-01 + 1.39798352e-01 1.39707515e-01 1.39616377e-01 1.39524936e-01 1.39433191e-01 + 1.39341140e-01 1.39248784e-01 1.39156119e-01 1.39063146e-01 1.38969862e-01 + 1.38876268e-01 1.38782361e-01 1.38688141e-01 1.38593606e-01 1.38498755e-01 + 1.38403586e-01 1.38308099e-01 1.38212293e-01 1.38116166e-01 1.38019716e-01 + 1.37922943e-01 1.37825846e-01 1.37728423e-01 1.37630672e-01 1.37532594e-01 + 1.37434185e-01 1.37335446e-01 1.37236375e-01 1.37136970e-01 1.37037230e-01 + 1.36937155e-01 1.36836742e-01 1.36735991e-01 1.36634900e-01 1.36533467e-01 + 1.36431692e-01 1.36329574e-01 1.36227110e-01 1.36124300e-01 1.36021142e-01 + 1.35917635e-01 1.35813778e-01 1.35709568e-01 1.35605006e-01 1.35500089e-01 + 1.35394817e-01 1.35289187e-01 1.35183199e-01 1.35076851e-01 1.34970142e-01 + 1.34863070e-01 1.34755634e-01 1.34647833e-01 1.34539665e-01 1.34431128e-01 + 1.34322223e-01 1.34212946e-01 1.34103297e-01 1.33993274e-01 1.33882876e-01 + 1.33772101e-01 1.33660948e-01 1.33549416e-01 1.33437503e-01 1.33325207e-01 + 1.33212528e-01 1.33099463e-01 1.32986012e-01 1.32872172e-01 1.32757943e-01 + 1.32643323e-01 1.32528310e-01 1.32412904e-01 1.32297101e-01 1.32180902e-01 + 1.32064305e-01 1.31947307e-01 1.31829908e-01 1.31712106e-01 1.31593899e-01 + 1.31475287e-01 1.31356267e-01 1.31236838e-01 1.31116998e-01 1.30996746e-01 + 1.30876081e-01 1.30755001e-01 1.30633504e-01 1.30511588e-01 1.30389253e-01 + 1.30266497e-01 1.30143318e-01 1.30019714e-01 1.29895684e-01 1.29771227e-01 + 1.29646341e-01 1.29521024e-01 1.29395274e-01 1.29269091e-01 1.29142472e-01 + 1.29015417e-01 1.28887922e-01 1.28759987e-01 1.28631611e-01 1.28502791e-01 + 1.28373525e-01 1.28243813e-01 1.28113653e-01 1.27983043e-01 1.27851981e-01 + 1.27720466e-01 1.27588496e-01 1.27456070e-01 1.27323186e-01 1.27189841e-01 + 1.27056036e-01 1.26921767e-01 1.26787033e-01 1.26651833e-01 1.26516166e-01 + 1.26380028e-01 1.26243419e-01 1.26106337e-01 1.25968780e-01 1.25830747e-01 + 1.25692235e-01 1.25553244e-01 1.25413771e-01 1.25273815e-01 1.25133375e-01 + 1.24992448e-01 1.24851032e-01 1.24709127e-01 1.24566730e-01 1.24423839e-01 + 1.24280454e-01 1.24136571e-01 1.23992190e-01 1.23847309e-01 1.23701926e-01 + 1.23556040e-01 1.23409647e-01 1.23262748e-01 1.23115340e-01 1.22967422e-01 + 1.22818991e-01 1.22670046e-01 1.22520585e-01 1.22370607e-01 1.22220110e-01 + 1.22069091e-01 1.21917550e-01 1.21765484e-01 1.21612892e-01 1.21459773e-01 + 1.21306123e-01 1.21151942e-01 1.20997228e-01 1.20841979e-01 1.20686193e-01 + 1.20529869e-01 1.20373004e-01 1.20215598e-01 1.20057648e-01 1.19899152e-01 + 1.19740109e-01 1.19580518e-01 1.19420375e-01 1.19259680e-01 1.19098431e-01 + 1.18936626e-01 1.18774263e-01 1.18611341e-01 1.18447857e-01 1.18283810e-01 + 1.18119199e-01 1.17954021e-01 1.17788276e-01 1.17621960e-01 1.17455072e-01 + 1.17287611e-01 1.17119575e-01 1.16950961e-01 1.16781770e-01 1.16611997e-01 + 1.16441643e-01 1.16270705e-01 1.16099181e-01 1.15927070e-01 1.15754370e-01 + 1.15581079e-01 1.15407195e-01 1.15232718e-01 1.15057644e-01 1.14881973e-01 + 1.14705703e-01 1.14528831e-01 1.14351357e-01 1.14173279e-01 1.13994594e-01 + 1.13815302e-01 1.13635400e-01 1.13454887e-01 1.13273762e-01 1.13092022e-01 + 1.12909666e-01 1.12726692e-01 1.12543099e-01 1.12358884e-01 1.12174047e-01 + 1.11988586e-01 1.11802499e-01 1.11615785e-01 1.11428441e-01 1.11240467e-01 + 1.11051860e-01 1.10862619e-01 1.10672743e-01 1.10482230e-01 1.10291079e-01 + 1.10099287e-01 1.09906853e-01 1.09713777e-01 1.09520055e-01 1.09325688e-01 + 1.09130672e-01 1.08935008e-01 1.08738692e-01 1.08541725e-01 1.08344104e-01 + 1.08145827e-01 1.07946894e-01 1.07747304e-01 1.07547053e-01 1.07346142e-01 + 1.07144569e-01 1.06942333e-01 1.06739431e-01 1.06535863e-01 1.06331627e-01 + 1.06126723e-01 1.05921148e-01 1.05714902e-01 1.05507982e-01 1.05300389e-01 + 1.05092120e-01 1.04883175e-01 1.04673552e-01 1.04463250e-01 1.04252268e-01 + 1.04040604e-01 1.03828258e-01 1.03615228e-01 1.03401513e-01 1.03187113e-01 + 1.02972026e-01 1.02756250e-01 1.02539786e-01 1.02322631e-01 1.02104785e-01 + 1.01886248e-01 1.01667017e-01 1.01447092e-01 1.01226473e-01 1.01005158e-01 + 1.00783146e-01 1.00560436e-01 1.00337028e-01 1.00112922e-01 9.98881150e-02 + 9.96626076e-02 9.94363989e-02 9.92094881e-02 9.89818746e-02 9.87535577e-02 + 9.85245367e-02 9.82948112e-02 9.80643804e-02 9.78332440e-02 9.76014013e-02 + 9.73688518e-02 9.71355952e-02 9.69016310e-02 9.66669588e-02 9.64315783e-02 + 9.61954891e-02 9.59586908e-02 9.57211834e-02 9.54829664e-02 9.52440398e-02 + 9.50044033e-02 9.47640568e-02 9.45230003e-02 9.42812335e-02 9.40387567e-02 + 9.37955696e-02 9.35516725e-02 9.33070653e-02 9.30617482e-02 9.28157214e-02 + 9.25689850e-02 9.23215393e-02 9.20733846e-02 9.18245212e-02 9.15749495e-02 + 9.13246699e-02 9.10736827e-02 9.08219886e-02 9.05695880e-02 9.03164816e-02 + 9.00626699e-02 8.98081536e-02 8.95529334e-02 8.92970102e-02 8.90403847e-02 + 8.87830577e-02 8.85250303e-02 8.82663032e-02 8.80068776e-02 8.77467546e-02 + 8.74859351e-02 8.72244204e-02 8.69622117e-02 8.66993103e-02 8.64357174e-02 + 8.61714345e-02 8.59064630e-02 8.56408044e-02 8.53744602e-02 8.51074320e-02 + 8.48397215e-02 8.45713304e-02 8.43022605e-02 8.40325136e-02 8.37620916e-02 + 8.34909965e-02 8.32192302e-02 8.29467950e-02 8.26736929e-02 8.23999262e-02 + 8.21254970e-02 8.18504079e-02 8.15746611e-02 8.12982592e-02 8.10212047e-02 + 8.07435002e-02 8.04651484e-02 8.01861521e-02 7.99065141e-02 7.96262372e-02 + 7.93453246e-02 7.90637791e-02 7.87816039e-02 7.84988023e-02 7.82153774e-02 + 7.79313327e-02 7.76466715e-02 7.73613974e-02 7.70755139e-02 7.67890246e-02 + 7.65019334e-02 7.62142440e-02 7.59259604e-02 7.56370865e-02 7.53476263e-02 + 7.50575841e-02 7.47669641e-02 7.44757706e-02 7.41840079e-02 7.38916807e-02 + 7.35987934e-02 7.33053507e-02 7.30113575e-02 7.27168185e-02 7.24217387e-02 + 7.21261231e-02 7.18299768e-02 7.15333051e-02 7.12361133e-02 7.09384067e-02 + 7.06401909e-02 7.03414715e-02 7.00422541e-02 6.97425446e-02 6.94423488e-02 + 6.91416728e-02 6.88405225e-02 6.85389043e-02 6.82368244e-02 6.79342891e-02 + 6.76313050e-02 6.73278787e-02 6.70240169e-02 6.67197264e-02 6.64150140e-02 + 6.61098869e-02 6.58043520e-02 6.54984168e-02 6.51920884e-02 6.48853744e-02 + 6.45782823e-02 6.42708198e-02 6.39629946e-02 6.36548146e-02 6.33462879e-02 + 6.30374225e-02 6.27282267e-02 6.24187088e-02 6.21088773e-02 6.17987406e-02 + 6.14883076e-02 6.11775870e-02 6.08665877e-02 6.05553188e-02 6.02437893e-02 + 5.99320086e-02 5.96199860e-02 5.93077311e-02 5.89952534e-02 5.86825627e-02 + 5.83696689e-02 5.80565818e-02 5.77433118e-02 5.74298688e-02 5.71162634e-02 + 5.68025058e-02 5.64886069e-02 5.61745771e-02 5.58604274e-02 5.55461687e-02 + 5.52318121e-02 5.49173687e-02 5.46028499e-02 5.42882672e-02 5.39736321e-02 + 5.36589562e-02 5.33442514e-02 5.30295296e-02 5.27148029e-02 5.24000835e-02 + 5.20853836e-02 5.17707158e-02 5.14560924e-02 5.11415263e-02 5.08270302e-02 + 5.05126170e-02 5.01982998e-02 4.98840918e-02 4.95700061e-02 4.92560564e-02 + 4.89422560e-02 4.86286186e-02 4.83151580e-02 4.80018882e-02 4.76888231e-02 + 4.73759769e-02 4.70633638e-02 4.67509982e-02 4.64388946e-02 4.61270676e-02 + 4.58155320e-02 4.55043026e-02 4.51933944e-02 4.48828225e-02 4.45726020e-02 + 4.42627483e-02 4.39532767e-02 4.36442030e-02 4.33355426e-02 4.30273114e-02 + 4.27195253e-02 4.24122002e-02 4.21053521e-02 4.17989974e-02 4.14931524e-02 + 4.11878333e-02 4.08830568e-02 4.05788395e-02 4.02751981e-02 3.99721494e-02 + 3.96697104e-02 3.93678979e-02 3.90667293e-02 3.87662217e-02 3.84663923e-02 + 3.81672586e-02 3.78688381e-02 3.75711484e-02 3.72742070e-02 3.69780319e-02 + 3.66826407e-02 3.63880515e-02 3.60942822e-02 3.58013509e-02 3.55092758e-02 + 3.52180750e-02 3.49277670e-02 3.46383700e-02 3.43499026e-02 3.40623832e-02 + 3.37758304e-02 3.34902629e-02 3.32056994e-02 3.29221586e-02 3.26396593e-02 + 3.23582205e-02 3.20778611e-02 3.17986000e-02 3.15204562e-02 3.12434489e-02 + 3.09675972e-02 3.06929202e-02 3.04194370e-02 3.01471670e-02 2.98761294e-02 + 2.96063435e-02 2.93378286e-02 2.90706040e-02 2.88046891e-02 2.85401033e-02 + 2.82768660e-02 2.80149966e-02 2.77545145e-02 2.74954392e-02 2.72377901e-02 + 2.69815866e-02 2.67268481e-02 2.64735941e-02 2.62218441e-02 2.59716174e-02 + 2.57229334e-02 2.54758115e-02 2.52302711e-02 2.49863315e-02 2.47440120e-02 + 2.45033320e-02 2.42643105e-02 2.40269669e-02 2.37913204e-02 2.35573900e-02 + 2.33251949e-02 2.30947540e-02 2.28660864e-02 2.26392110e-02 2.24141466e-02 + 2.21909120e-02 2.19695260e-02 2.17500072e-02 2.15323742e-02 2.13166455e-02 + 2.11028396e-02 2.08909747e-02 2.06810691e-02 2.04731411e-02 2.02672086e-02 + 2.00632896e-02 1.98614019e-02 1.96615634e-02 1.94637917e-02 1.92681043e-02 + 1.90745186e-02 1.88830519e-02 1.86937213e-02 1.85065440e-02 1.83215368e-02 + 1.81387165e-02 1.79580998e-02 1.77797030e-02 1.76035426e-02 1.74296348e-02 + 1.72579956e-02 1.70886409e-02 1.69215864e-02 1.67568478e-02 1.65944402e-02 + 1.64343791e-02 1.62766795e-02 1.61213562e-02 1.59684240e-02 1.58178973e-02 + 1.56697904e-02 1.55241176e-02 1.53808927e-02 1.52401295e-02 1.51018416e-02 + 1.49660422e-02 1.48327446e-02 1.47019616e-02 1.45737059e-02 1.44479901e-02 + 1.43248264e-02 1.42042269e-02 1.40862035e-02 1.39707676e-02 1.38579308e-02 + 1.37477041e-02 1.36400985e-02 1.35351246e-02 1.34327929e-02 1.33331135e-02 + 1.32360964e-02 1.31417514e-02 1.30500877e-02 1.29611147e-02 1.28748412e-02 + 1.27912760e-02 1.27104274e-02 1.26323037e-02 1.25569127e-02 1.24842620e-02 + 1.24143590e-02 1.23472109e-02 1.22828243e-02 1.22212060e-02 1.21623621e-02 + 1.21062986e-02 1.20530213e-02 1.20025356e-02 1.19548467e-02 1.19099595e-02 + 1.18678785e-02 1.18286081e-02 1.17921522e-02 1.17585148e-02 1.17276991e-02 + 1.16997084e-02 1.16745455e-02 1.16522130e-02 1.16327133e-02 1.16160484e-02 + 1.16022198e-02 1.15912292e-02 1.15830776e-02 1.15777658e-02 1.15752944e-02 + 1.15756637e-02 1.15788736e-02 1.15849238e-02 1.15938137e-02 1.16055423e-02 + 1.16201084e-02 1.16375106e-02 1.16577471e-02 1.16808156e-02 1.17067140e-02 + 1.17354395e-02 1.17669892e-02 1.18013598e-02 1.18385478e-02 1.18785493e-02 + 1.19213604e-02 1.19669765e-02 1.20153931e-02 1.20666051e-02 1.21206073e-02 + 1.21773942e-02 1.22369601e-02 1.22992988e-02 1.23644040e-02 1.24322691e-02 + 1.25028871e-02 1.25762510e-02 1.26523533e-02 1.27311863e-02 1.28127420e-02 + 1.28970121e-02 1.29839883e-02 1.30736618e-02 1.31660235e-02 1.32610642e-02 + 1.33587744e-02 1.34591444e-02 1.35621641e-02 1.36678232e-02 1.37761113e-02 + 1.38870177e-02 1.40005314e-02 1.41166411e-02 1.42353355e-02 1.43566028e-02 + 1.44804312e-02 1.46068085e-02 1.47357225e-02 1.48671606e-02 1.50011099e-02 + 1.51375576e-02 1.52764904e-02 1.54178949e-02 1.55617576e-02 1.57080646e-02 + 1.58568020e-02 1.60079555e-02 1.61615108e-02 1.63174534e-02 1.64757685e-02 + 1.66364411e-02 1.67994562e-02 1.69647985e-02 1.71324525e-02 1.73024027e-02 + 1.74746333e-02 1.76491283e-02 1.78258717e-02 1.80048472e-02 1.81860385e-02 + 1.83694290e-02 1.85550020e-02 1.87427408e-02 1.89326284e-02 1.91246477e-02 + 1.93187815e-02 1.95150125e-02 1.97133233e-02 1.99136963e-02 2.01161138e-02 + 2.03205580e-02 2.05270111e-02 2.07354551e-02 2.09458718e-02 2.11582431e-02 + 2.13725507e-02 2.15887763e-02 2.18069014e-02 2.20269075e-02 2.22487759e-02 + 2.24724880e-02 2.26980251e-02 2.29253683e-02 2.31544988e-02 2.33853976e-02 + 2.36180458e-02 2.38524242e-02 2.40885138e-02 2.43262955e-02 2.45657500e-02 + 2.48068582e-02 2.50496007e-02 2.52939584e-02 2.55399119e-02 2.57874418e-02 + 2.60365287e-02 2.62871534e-02 2.65392963e-02 2.67929381e-02 2.70480593e-02 + 2.73046406e-02 2.75626624e-02 2.78221053e-02 2.80829500e-02 2.83451769e-02 + 2.86087667e-02 2.88736999e-02 2.91399572e-02 2.94075191e-02 2.96763664e-02 + 2.99464796e-02 3.02178395e-02 3.04904267e-02 3.07642221e-02 3.10392064e-02 + 3.13153605e-02 3.15926651e-02 3.18711011e-02 3.21506496e-02 3.24312916e-02 + 3.27130079e-02 3.29957798e-02 3.32795883e-02 3.35644146e-02 3.38502401e-02 + 3.41370460e-02 3.44248137e-02 3.47135246e-02 3.50031602e-02 3.52937021e-02 + 3.55851319e-02 3.58774314e-02 3.61705823e-02 3.64645665e-02 3.67593660e-02 + 3.70549627e-02 3.73513388e-02 3.76484764e-02 3.79463579e-02 3.82449655e-02 + 3.85442817e-02 3.88442891e-02 3.91449703e-02 3.94463079e-02 3.97482849e-02 + 4.00508841e-02 4.03540886e-02 4.06578813e-02 4.09622456e-02 4.12671648e-02 + 4.15726221e-02 4.18786013e-02 4.21850858e-02 4.24920594e-02 4.27995060e-02 + 4.31074094e-02 4.34157537e-02 4.37245230e-02 4.40337017e-02 4.43432741e-02 + 4.46532246e-02 4.49635380e-02 4.52741988e-02 4.55851920e-02 4.58965024e-02 + 4.62081152e-02 4.65200155e-02 4.68321886e-02 4.71446199e-02 4.74572950e-02 + 4.77701996e-02 4.80833192e-02 4.83966400e-02 4.87101479e-02 4.90238289e-02 + 4.93376695e-02 4.96516559e-02 4.99657746e-02 5.02800123e-02 5.05943557e-02 + 5.09087917e-02 5.12233073e-02 5.15378895e-02 5.18525256e-02 5.21672030e-02 + 5.24819092e-02 5.27966317e-02 5.31113583e-02 5.34260768e-02 5.37407752e-02 + 5.40554416e-02 5.43700642e-02 5.46846314e-02 5.49991317e-02 5.53135536e-02 + 5.56278858e-02 5.59421172e-02 5.62562368e-02 5.65702336e-02 5.68840968e-02 + 5.71978158e-02 5.75113800e-02 5.78247790e-02 5.81380025e-02 5.84510402e-02 + 5.87638822e-02 5.90765185e-02 5.93889392e-02 5.97011346e-02 6.00130952e-02 + 6.03248115e-02 6.06362741e-02 6.09474738e-02 6.12584015e-02 6.15690482e-02 + 6.18794050e-02 6.21894631e-02 6.24992140e-02 6.28086489e-02 6.31177596e-02 + 6.34265377e-02 6.37349751e-02 6.40430636e-02 6.43507952e-02 6.46581622e-02 + 6.49651567e-02 6.52717712e-02 6.55779981e-02 6.58838299e-02 6.61892594e-02 + 6.64942794e-02 6.67988828e-02 6.71030625e-02 6.74068117e-02 6.77101237e-02 + 6.80129917e-02 6.83154092e-02 6.86173697e-02 6.89188669e-02 6.92198944e-02 + 6.95204462e-02 6.98205161e-02 7.01200982e-02 7.04191867e-02 7.07177757e-02 + 7.10158596e-02 7.13134329e-02 7.16104900e-02 7.19070256e-02 7.22030344e-02 + 7.24985112e-02 7.27934509e-02 7.30878484e-02 7.33816990e-02 7.36749977e-02 + 7.39677398e-02 7.42599207e-02 7.45515358e-02 7.48425807e-02 7.51330509e-02 + 7.54229421e-02 7.57122502e-02 7.60009711e-02 7.62891006e-02 7.65766348e-02 + 7.68635699e-02 7.71499020e-02 7.74356274e-02 7.77207425e-02 7.80052438e-02 + 7.82891277e-02 7.85723908e-02 7.88550299e-02 7.91370416e-02 7.94184229e-02 + 7.96991705e-02 7.99792815e-02 8.02587530e-02 8.05375820e-02 8.08157657e-02 + 8.10933015e-02 8.13701866e-02 8.16464184e-02 8.19219944e-02 8.21969122e-02 + 8.24711693e-02 8.27447635e-02 8.30176924e-02 8.32899539e-02 8.35615458e-02 + 8.38324661e-02 8.41027128e-02 8.43722839e-02 8.46411775e-02 8.49093918e-02 + 8.51769250e-02 8.54437756e-02 8.57099417e-02 8.59754218e-02 8.62402144e-02 + 8.65043180e-02 8.67677312e-02 8.70304527e-02 8.72924810e-02 8.75538151e-02 + 8.78144536e-02 8.80743954e-02 8.83336395e-02 8.85921847e-02 8.88500302e-02 + 8.91071748e-02 8.93636178e-02 8.96193583e-02 8.98743956e-02 9.01287287e-02 + 9.03823571e-02 9.06352801e-02 9.08874971e-02 9.11390074e-02 9.13898107e-02 + 9.16399063e-02 9.18892939e-02 9.21379731e-02 9.23859434e-02 9.26332047e-02 + 9.28797566e-02 9.31255989e-02 9.33707315e-02 9.36151540e-02 9.38588666e-02 + 9.41018690e-02 9.43441612e-02 9.45857433e-02 9.48266152e-02 9.50667771e-02 + 9.53062290e-02 9.55449711e-02 9.57830036e-02 9.60203266e-02 9.62569405e-02 + 9.64928454e-02 9.67280417e-02 9.69625298e-02 9.71963100e-02 9.74293827e-02 + 9.76617483e-02 9.78934074e-02 9.81243603e-02 9.83546076e-02 9.85841499e-02 + 9.88129878e-02 9.90411218e-02 9.92685525e-02 9.94952807e-02 9.97213070e-02 + 9.99466321e-02 1.00171257e-01 1.00395182e-01 1.00618408e-01 1.00840936e-01 + 1.01062766e-01 1.01283901e-01 1.01504340e-01 1.01724084e-01 1.01943134e-01 + 1.02161492e-01 1.02379158e-01 1.02596133e-01 1.02812418e-01 1.03028014e-01 + 1.03242923e-01 1.03457145e-01 1.03670682e-01 1.03883534e-01 1.04095702e-01 + 1.04307189e-01 1.04517994e-01 1.04728119e-01 1.04937566e-01 1.05146335e-01 + 1.05354428e-01 1.05561846e-01 1.05768590e-01 1.05974662e-01 1.06180062e-01 + 1.06384793e-01 1.06588855e-01 1.06792249e-01 1.06994978e-01 1.07197042e-01 + 1.07398443e-01 1.07599182e-01 1.07799261e-01 1.07998680e-01 1.08197442e-01 + 1.08395548e-01 1.08592999e-01 1.08789797e-01 1.08985943e-01 1.09181439e-01 + 1.09376286e-01 1.09570485e-01 1.09764039e-01 1.09956948e-01 1.10149214e-01 + 1.10340840e-01 1.10531825e-01 1.10722172e-01 1.10911883e-01 1.11100959e-01 + 1.11289401e-01 1.11477211e-01 1.11664391e-01 1.11850942e-01 1.12036866e-01 + 1.12222165e-01 1.12406840e-01 1.12590892e-01 1.12774325e-01 1.12957138e-01 + 1.13139333e-01 1.13320913e-01 1.13501880e-01 1.13682233e-01 1.13861976e-01 + 1.14041111e-01 1.14219637e-01 1.14397559e-01 1.14574876e-01 1.14751591e-01 + 1.14927705e-01 1.15103221e-01 1.15278139e-01 1.15452462e-01 1.15626191e-01 + 1.15799328e-01 1.15971875e-01 1.16143834e-01 1.16315205e-01 1.16485991e-01 + 1.16656194e-01 1.16825815e-01 1.16994856e-01 1.17163320e-01 1.17331206e-01 + 1.17498518e-01 1.17665257e-01 1.17831424e-01 1.17997022e-01 1.18162053e-01 + 1.18326517e-01 1.18490417e-01 1.18653754e-01 1.18816531e-01 1.18978749e-01 + 1.19140409e-01 1.19301514e-01 1.19462065e-01 1.19622064e-01 1.19781513e-01 + 1.19940414e-01 1.20098767e-01 1.20256576e-01 1.20413841e-01 1.20570565e-01 + 1.20726749e-01 1.20882395e-01 1.21037505e-01 1.21192080e-01 1.21346123e-01 + 1.21499635e-01 1.21652617e-01 1.21805072e-01 1.21957001e-01 1.22108406e-01 + 1.22259289e-01 1.22409651e-01 1.22559495e-01 1.22708821e-01 1.22857632e-01 + 1.23005930e-01 1.23153715e-01 1.23300991e-01 1.23447758e-01 1.23594019e-01 + 1.23739774e-01 1.23885027e-01 1.24029777e-01 1.24174028e-01 1.24317781e-01 + 1.24461038e-01 1.24603800e-01 1.24746069e-01 1.24887847e-01 1.25029136e-01 + 1.25169936e-01 1.25310251e-01 1.25450081e-01 1.25589428e-01 1.25728294e-01 + 1.25866681e-01 1.26004590e-01 1.26142024e-01 1.26278983e-01 1.26415469e-01 + 1.26551484e-01 1.26687030e-01 1.26822109e-01 1.26956721e-01 1.27090870e-01 + 1.27224555e-01 1.27357780e-01 1.27490545e-01 1.27622852e-01 1.27754704e-01 + 1.27886101e-01 1.28017045e-01 1.28147538e-01 1.28277582e-01 1.28407177e-01 + 1.28536327e-01 1.28665031e-01 1.28793293e-01 1.28921113e-01 1.29048493e-01 + 1.29175435e-01 1.29301941e-01 1.29428011e-01 1.29553648e-01 1.29678853e-01 + 1.29803627e-01 1.29927973e-01 1.30051892e-01 1.30175385e-01 1.30298454e-01 + 1.30421101e-01 1.30543327e-01 1.30665133e-01 1.30786522e-01 1.30907494e-01 + 1.31028051e-01 1.31148196e-01 1.31267929e-01 1.31387251e-01 1.31506165e-01 + 1.31624672e-01 1.31742773e-01 1.31860470e-01 1.31977765e-01 1.32094658e-01 + 1.32211152e-01 1.32327248e-01 1.32442947e-01 1.32558252e-01 1.32673162e-01 + 1.32787680e-01 1.32901808e-01 1.33015546e-01 1.33128897e-01 1.33241861e-01 + 1.33354441e-01 1.33466637e-01 1.33578451e-01 1.33689884e-01 1.33800939e-01 + 1.33911615e-01 1.34021916e-01 1.34131841e-01 1.34241394e-01 1.34350574e-01 + 1.34459383e-01 1.34567824e-01 1.34675896e-01 1.34783602e-01 1.34890944e-01 + 1.34997921e-01 1.35104536e-01 1.35210791e-01 1.35316685e-01 1.35422222e-01 + 1.35527402e-01 1.35632226e-01 1.35736697e-01 1.35840814e-01 1.35944580e-01 + 1.36047997e-01 1.36151064e-01 1.36253784e-01 1.36356158e-01 1.36458187e-01 + 1.36559873e-01 1.36661216e-01 1.36762219e-01 1.36862882e-01 1.36963207e-01 + 1.37063195e-01 1.37162847e-01 1.37262165e-01 1.37361150e-01 1.37459803e-01 + 1.37558126e-01 1.37656119e-01 1.37753784e-01 1.37851123e-01 1.37948136e-01 + 1.38044824e-01 1.38141190e-01 1.38237233e-01 1.38332957e-01 1.38428361e-01 + 1.38523446e-01 1.38618215e-01 1.38712668e-01 1.38806807e-01 1.38900633e-01 + 1.38994146e-01 1.39087349e-01 1.39180241e-01 1.39272826e-01 1.39365103e-01 + 1.39457074e-01 1.39548740e-01 1.39640102e-01 1.39731162e-01 1.39821920e-01 + 1.39912378e-01 1.40002537e-01 1.40092398e-01 1.40181961e-01 1.40271230e-01 + 1.40360203e-01 1.40448884e-01 1.40537272e-01 1.40625368e-01 1.40713175e-01 + 1.40800693e-01 1.40887923e-01 1.40974866e-01 1.41061523e-01 1.41147896e-01 + 1.41233986e-01 1.41319793e-01 1.41405319e-01 1.41490565e-01 1.41575532e-01 + 1.41660220e-01 1.41744632e-01 1.41828768e-01 1.41912628e-01 1.41996216e-01 + 1.42079530e-01 1.42162572e-01 1.42245344e-01 1.42327847e-01 1.42410081e-01 + 1.42492047e-01 1.42573747e-01 1.42655181e-01 1.42736351e-01 1.42817257e-01 + 1.42897901e-01 1.42978283e-01 1.43058405e-01 1.43138268e-01 1.43217872e-01 + 1.43297218e-01 1.43376309e-01 1.43455143e-01 1.43533723e-01 1.43612050e-01 + 1.43690124e-01 1.43767947e-01 1.43845519e-01 1.43922841e-01 1.43999914e-01 + 1.44076740e-01 1.44153319e-01 1.44229652e-01 1.44305740e-01 1.44381584e-01 + 1.44457185e-01 1.44532544e-01 1.44607662e-01 1.44682539e-01 1.44757177e-01 + 1.44831577e-01 1.44905739e-01 1.44979665e-01 1.45053355e-01 1.45126809e-01 + 1.45200031e-01 1.45273019e-01 1.45345774e-01 1.45418299e-01 1.45490593e-01 + 1.45562658e-01 1.45634494e-01 1.45706102e-01 1.45777484e-01 1.45848639e-01 + 1.45919569e-01 1.45990275e-01 1.46060758e-01 1.46131018e-01 1.46201056e-01 + 1.46270873e-01 1.46340470e-01 1.46409848e-01 1.46479008e-01 1.46547950e-01 + 1.46616675e-01 1.46685184e-01 1.46753479e-01 1.46821558e-01 1.46889425e-01 + 1.46957079e-01 1.47024520e-01 1.47091751e-01 1.47158772e-01 1.47225583e-01 + 1.47292185e-01 1.47358580e-01 1.47424768e-01 1.47490749e-01 1.47556524e-01 + 1.47622095e-01 1.47687462e-01 1.47752626e-01 1.47817587e-01 1.47882347e-01 + 1.19316516e-02 1.17837661e-02 1.16368916e-02 1.14910312e-02 1.13461881e-02 + 1.12023652e-02 1.10595657e-02 1.09177924e-02 1.07770486e-02 1.06373371e-02 + 1.04986608e-02 1.03610229e-02 1.02244262e-02 1.00888736e-02 9.95436796e-03 + 9.82091227e-03 9.68850936e-03 9.55716205e-03 9.42687318e-03 9.29764555e-03 + 9.16948195e-03 9.04238514e-03 8.91635788e-03 8.79140288e-03 8.66752287e-03 + 8.54472052e-03 8.42299850e-03 8.30235947e-03 8.18280604e-03 8.06434082e-03 + 7.94696640e-03 7.83068535e-03 7.71550020e-03 7.60141348e-03 7.48842769e-03 + 7.37654531e-03 7.26576880e-03 7.15610060e-03 7.04754311e-03 6.94009874e-03 + 6.83376985e-03 6.72855879e-03 6.62446789e-03 6.52149946e-03 6.41965576e-03 + 6.31893907e-03 6.21935162e-03 6.12089562e-03 6.02357326e-03 5.92738670e-03 + 5.83233810e-03 5.73842957e-03 5.64566320e-03 5.55404108e-03 5.46356524e-03 + 5.37423772e-03 5.28606051e-03 5.19903560e-03 5.11316493e-03 5.02845043e-03 + 4.94489402e-03 4.86249756e-03 4.78126291e-03 4.70119191e-03 4.62228636e-03 + 4.54454803e-03 4.46797870e-03 4.39258007e-03 4.31835387e-03 4.24530177e-03 + 4.17342543e-03 4.10272646e-03 4.03320649e-03 3.96486708e-03 3.89770979e-03 + 3.83173614e-03 3.76694764e-03 3.70334576e-03 3.64093194e-03 3.57970760e-03 + 3.51967415e-03 3.46083296e-03 3.40318535e-03 3.34673266e-03 3.29147617e-03 + 3.23741715e-03 3.18455682e-03 3.13289641e-03 3.08243708e-03 3.03318001e-03 + 2.98512631e-03 2.93827709e-03 2.89263342e-03 2.84819635e-03 2.80496690e-03 + 2.76294607e-03 2.72213481e-03 2.68253407e-03 2.64414475e-03 2.60696775e-03 + 2.57100391e-03 2.53625406e-03 2.50271900e-03 2.47039951e-03 2.43929633e-03 + 2.40941017e-03 2.38074173e-03 2.35329167e-03 2.32706061e-03 2.30204917e-03 + 2.27825792e-03 2.25568742e-03 2.23433817e-03 2.21421068e-03 2.19530540e-03 + 2.17762279e-03 2.16116324e-03 2.14592713e-03 2.13191482e-03 2.11912664e-03 + 2.10756286e-03 2.09722378e-03 2.08810961e-03 2.08022058e-03 2.07355687e-03 + 2.06811863e-03 2.06390598e-03 2.06091903e-03 2.05915784e-03 2.05862245e-03 + 2.05931288e-03 2.06122911e-03 2.06437109e-03 2.06873876e-03 2.07433201e-03 + 2.08115071e-03 2.08919471e-03 2.09846382e-03 2.10895782e-03 2.12067647e-03 + 2.13361950e-03 2.14778662e-03 2.16317748e-03 2.17979175e-03 2.19762903e-03 + 2.21668892e-03 2.23697097e-03 2.25847471e-03 2.28119965e-03 2.30514526e-03 + 2.33031099e-03 2.35669626e-03 2.38430046e-03 2.41312296e-03 2.44316308e-03 + 2.47442014e-03 2.50689342e-03 2.54058217e-03 2.57548561e-03 2.61160294e-03 + 2.64893333e-03 2.68747592e-03 2.72722982e-03 2.76819412e-03 2.81036787e-03 + 2.85375012e-03 2.89833986e-03 2.94413606e-03 2.99113769e-03 3.03934365e-03 + 3.08875285e-03 3.13936416e-03 3.19117640e-03 3.24418841e-03 3.29839896e-03 + 3.35380682e-03 3.41041071e-03 3.46820936e-03 3.52720143e-03 3.58738558e-03 + 3.64876043e-03 3.71132460e-03 3.77507665e-03 3.84001514e-03 3.90613858e-03 + 3.97344547e-03 4.04193428e-03 4.11160346e-03 4.18245143e-03 4.25447658e-03 + 4.32767727e-03 4.40205185e-03 4.47759865e-03 4.55431593e-03 4.63220199e-03 + 4.71125505e-03 4.79147333e-03 4.87285502e-03 4.95539830e-03 5.03910129e-03 + 5.12396213e-03 5.20997890e-03 5.29714966e-03 5.38547247e-03 5.47494535e-03 + 5.56556628e-03 5.65733324e-03 5.75024419e-03 5.84429703e-03 5.93948968e-03 + 6.03582001e-03 6.13328588e-03 6.23188511e-03 6.33161551e-03 6.43247487e-03 + 6.53446095e-03 6.63757148e-03 6.74180419e-03 6.84715676e-03 6.95362687e-03 + 7.06121216e-03 7.16991026e-03 7.27971878e-03 7.39063530e-03 7.50265737e-03 + 7.61578255e-03 7.73000833e-03 7.84533223e-03 7.96175172e-03 8.07926424e-03 + 8.19786724e-03 8.31755813e-03 8.43833428e-03 8.56019309e-03 8.68313189e-03 + 8.80714802e-03 8.93223879e-03 9.05840148e-03 9.18563337e-03 9.31393170e-03 + 9.44329371e-03 9.57371661e-03 9.70519759e-03 9.83773382e-03 9.97132246e-03 + 1.01059606e-02 1.02416455e-02 1.03783741e-02 1.05161435e-02 1.06549508e-02 + 1.07947931e-02 1.09356673e-02 1.10775705e-02 1.12204997e-02 1.13644517e-02 + 1.15094237e-02 1.16554125e-02 1.18024151e-02 1.19504282e-02 1.20994490e-02 + 1.22494741e-02 1.24005005e-02 1.25525250e-02 1.27055444e-02 1.28595555e-02 + 1.30145552e-02 1.31705401e-02 1.33275071e-02 1.34854528e-02 1.36443741e-02 + 1.38042677e-02 1.39651301e-02 1.41269582e-02 1.42897485e-02 1.44534978e-02 + 1.46182027e-02 1.47838598e-02 1.49504657e-02 1.51180170e-02 1.52865103e-02 + 1.54559422e-02 1.56263093e-02 1.57976080e-02 1.59698349e-02 1.61429866e-02 + 1.63170596e-02 1.64920502e-02 1.66679551e-02 1.68447707e-02 1.70224935e-02 + 1.72011198e-02 1.73806462e-02 1.75610691e-02 1.77423848e-02 1.79245899e-02 + 1.81076806e-02 1.82916533e-02 1.84765045e-02 1.86622305e-02 1.88488276e-02 + 1.90362922e-02 1.92246206e-02 1.94138091e-02 1.96038541e-02 1.97947518e-02 + 1.99864985e-02 2.01790905e-02 2.03725242e-02 2.05667957e-02 2.07619013e-02 + 2.09578372e-02 2.11545998e-02 2.13521852e-02 2.15505896e-02 2.17498093e-02 + 2.19498405e-02 2.21506794e-02 2.23523222e-02 2.25547650e-02 2.27580040e-02 + 2.29620355e-02 2.31668555e-02 2.33724603e-02 2.35788460e-02 2.37860087e-02 + 2.39939446e-02 2.42026499e-02 2.44121205e-02 2.46223528e-02 2.48333427e-02 + 2.50450864e-02 2.52575801e-02 2.54708198e-02 2.56848016e-02 2.58995216e-02 + 2.61149759e-02 2.63311606e-02 2.65480717e-02 2.67657054e-02 2.69840578e-02 + 2.72031248e-02 2.74229026e-02 2.76433871e-02 2.78645746e-02 2.80864610e-02 + 2.83090425e-02 2.85323149e-02 2.87562745e-02 2.89809172e-02 2.92062390e-02 + 2.94322361e-02 2.96589045e-02 2.98862402e-02 3.01142392e-02 3.03428976e-02 + 3.05722114e-02 3.08021766e-02 3.10327893e-02 3.12640455e-02 3.14959413e-02 + 3.17284726e-02 3.19616355e-02 3.21954260e-02 3.24298402e-02 3.26648740e-02 + 3.29005236e-02 3.31367848e-02 3.33736539e-02 3.36111267e-02 3.38491993e-02 + 3.40878677e-02 3.43271281e-02 3.45669763e-02 3.48074084e-02 3.50484206e-02 + 3.52900087e-02 3.55321689e-02 3.57748971e-02 3.60181895e-02 3.62620420e-02 + 3.65064508e-02 3.67514117e-02 3.69969210e-02 3.72429746e-02 3.74895686e-02 + 3.77366991e-02 3.79843621e-02 3.82325537e-02 3.84812698e-02 3.87305067e-02 + 3.89802604e-02 3.92305269e-02 3.94813024e-02 3.97325829e-02 3.99843644e-02 + 4.02366431e-02 4.04894151e-02 4.07426765e-02 4.09964234e-02 4.12506518e-02 + 4.15053579e-02 4.17605378e-02 4.20161876e-02 4.22723034e-02 4.25288815e-02 + 4.27859178e-02 4.30434086e-02 4.33013499e-02 4.35597380e-02 4.38185689e-02 + 4.40778389e-02 4.43375441e-02 4.45976807e-02 4.48582449e-02 4.51192328e-02 + 4.53806406e-02 4.56424645e-02 4.59047007e-02 4.61673455e-02 4.64303950e-02 + 4.66938455e-02 4.69576932e-02 4.72219342e-02 4.74865650e-02 4.77515816e-02 + 4.80169804e-02 4.82827576e-02 4.85489095e-02 4.88154324e-02 4.90823225e-02 + 4.93495761e-02 4.96171896e-02 4.98851592e-02 5.01534812e-02 5.04221520e-02 + 5.06911679e-02 5.09605252e-02 5.12302202e-02 5.15002494e-02 5.17706091e-02 + 5.20412956e-02 5.23123054e-02 5.25836347e-02 5.28552801e-02 5.31272378e-02 + 5.33995044e-02 5.36720762e-02 5.39449496e-02 5.42181211e-02 5.44915872e-02 + 5.47653442e-02 5.50393887e-02 5.53137171e-02 5.55883259e-02 5.58632116e-02 + 5.61383707e-02 5.64137997e-02 5.66894951e-02 5.69654535e-02 5.72416713e-02 + 5.75181451e-02 5.77948716e-02 5.80718471e-02 5.83490684e-02 5.86265320e-02 + 5.89042345e-02 5.91821725e-02 5.94603427e-02 5.97387415e-02 6.00173658e-02 + 6.02962120e-02 6.05752770e-02 6.08545573e-02 6.11340496e-02 6.14137506e-02 + 6.16936570e-02 6.19737655e-02 6.22540729e-02 6.25345758e-02 6.28152709e-02 + 6.30961552e-02 6.33772252e-02 6.36584778e-02 6.39399097e-02 6.42215178e-02 + 6.45032988e-02 6.47852496e-02 6.50673669e-02 6.53496477e-02 6.56320887e-02 + 6.59146868e-02 6.61974389e-02 6.64803419e-02 6.67633926e-02 6.70465880e-02 + 6.73299249e-02 6.76134004e-02 6.78970112e-02 6.81807545e-02 6.84646270e-02 + 6.87486259e-02 6.90327480e-02 6.93169904e-02 6.96013501e-02 6.98858240e-02 + 7.01704093e-02 7.04551029e-02 7.07399019e-02 7.10248033e-02 7.13098043e-02 + 7.15949019e-02 7.18800932e-02 7.21653753e-02 7.24507453e-02 7.27362004e-02 + 7.30217377e-02 7.33073544e-02 7.35930475e-02 7.38788144e-02 7.41646521e-02 + 7.44505580e-02 7.47365291e-02 7.50225627e-02 7.53086561e-02 7.55948066e-02 + 7.58810112e-02 7.61672674e-02 7.64535724e-02 7.67399235e-02 7.70263181e-02 + 7.73127534e-02 7.75992267e-02 7.78857354e-02 7.81722770e-02 7.84588486e-02 + 7.87454477e-02 7.90320718e-02 7.93187181e-02 7.96053841e-02 7.98920673e-02 + 8.01787651e-02 8.04654749e-02 8.07521941e-02 8.10389204e-02 8.13256510e-02 + 8.16123836e-02 8.18991157e-02 8.21858447e-02 8.24725683e-02 8.27592839e-02 + 8.30459891e-02 8.33326815e-02 8.36193586e-02 8.39060181e-02 8.41926576e-02 + 8.44792746e-02 8.47658669e-02 8.50524319e-02 8.53389675e-02 8.56254713e-02 + 8.59119408e-02 8.61983740e-02 8.64847683e-02 8.67711216e-02 8.70574315e-02 + 8.73436959e-02 8.76299124e-02 8.79160788e-02 8.82021929e-02 8.84882524e-02 + 8.87742552e-02 8.90601991e-02 8.93460819e-02 8.96319014e-02 8.99176554e-02 + 9.02033419e-02 9.04889586e-02 9.07745035e-02 9.10599745e-02 9.13453694e-02 + 9.16306861e-02 9.19159227e-02 9.22010770e-02 9.24861469e-02 9.27711305e-02 + 9.30560257e-02 9.33408305e-02 9.36255428e-02 9.39101607e-02 9.41946823e-02 + 9.44791055e-02 9.47634283e-02 9.50476489e-02 9.53317653e-02 9.56157755e-02 + 9.58996777e-02 9.61834699e-02 9.64671503e-02 9.67507170e-02 9.70341681e-02 + 9.73175018e-02 9.76007161e-02 9.78838094e-02 9.81667797e-02 9.84496252e-02 + 9.87323442e-02 9.90149348e-02 9.92973954e-02 9.95797240e-02 9.98619190e-02 + 1.00143979e-01 1.00425901e-01 1.00707685e-01 1.00989328e-01 1.01270829e-01 + 1.01552185e-01 1.01833397e-01 1.02114461e-01 1.02395376e-01 1.02676140e-01 + 1.02956752e-01 1.03237211e-01 1.03517513e-01 1.03797659e-01 1.04077646e-01 + 1.04357473e-01 1.04637138e-01 1.04916640e-01 1.05195977e-01 1.05475147e-01 + 1.05754150e-01 1.06032982e-01 1.06311644e-01 1.06590134e-01 1.06868449e-01 + 1.07146589e-01 1.07424552e-01 1.07702336e-01 1.07979941e-01 1.08257365e-01 + 1.08534605e-01 1.08811662e-01 1.09088533e-01 1.09365218e-01 1.09641714e-01 + 1.09918020e-01 1.10194135e-01 1.10470058e-01 1.10745788e-01 1.11021322e-01 + 1.11296660e-01 1.11571800e-01 1.11846741e-01 1.12121482e-01 1.12396021e-01 + 1.12670358e-01 1.12944490e-01 1.13218418e-01 1.13492138e-01 1.13765651e-01 + 1.14038955e-01 1.14312048e-01 1.14584930e-01 1.14857599e-01 1.15130055e-01 + 1.15402295e-01 1.15674319e-01 1.15946126e-01 1.16217714e-01 1.16489083e-01 + 1.16760231e-01 1.17031157e-01 1.17301860e-01 1.17572339e-01 1.17842593e-01 + 1.18112620e-01 1.18382420e-01 1.18651992e-01 1.18921334e-01 1.19190445e-01 + 1.19459326e-01 1.19727973e-01 1.19996387e-01 1.20264566e-01 1.20532510e-01 + 1.20800216e-01 1.21067686e-01 1.21334917e-01 1.21601908e-01 1.21868658e-01 + 1.22135167e-01 1.22401434e-01 1.22667458e-01 1.22933237e-01 1.23198771e-01 + 1.23464058e-01 1.23729099e-01 1.23993892e-01 1.24258436e-01 1.24522731e-01 + 1.24786775e-01 1.25050567e-01 1.25314108e-01 1.25577395e-01 1.25840428e-01 + 1.26103207e-01 1.26365730e-01 1.26627997e-01 1.26890006e-01 1.27151758e-01 + 1.27413251e-01 1.27674484e-01 1.27935457e-01 1.28196169e-01 1.28456619e-01 + 1.28716807e-01 1.28976731e-01 1.29236391e-01 1.29495787e-01 1.29754917e-01 + 1.30013780e-01 1.30272377e-01 1.30530707e-01 1.30788768e-01 1.31046560e-01 + 1.31304083e-01 1.31561335e-01 1.31818316e-01 1.32075026e-01 1.32331463e-01 + 1.32587628e-01 1.32843519e-01 1.33099136e-01 1.33354479e-01 1.33609546e-01 + 1.33864337e-01 1.34118851e-01 1.34373088e-01 1.34627048e-01 1.34880730e-01 + 1.35134132e-01 1.35387255e-01 1.35640099e-01 1.35892661e-01 1.36144943e-01 + 1.36396943e-01 1.36648661e-01 1.36900097e-01 1.37151249e-01 1.37402118e-01 + 1.37652702e-01 1.37903003e-01 1.38153017e-01 1.38402747e-01 1.38652190e-01 + 1.38901347e-01 1.39150217e-01 1.39398799e-01 1.39647094e-01 1.39895100e-01 + 1.40142817e-01 1.40390246e-01 1.40637384e-01 1.40884233e-01 1.41130791e-01 + 1.41377059e-01 1.41623035e-01 1.41868719e-01 1.42114112e-01 1.42359212e-01 + 1.42604020e-01 1.42848534e-01 1.43092755e-01 1.43336681e-01 1.43580314e-01 + 1.43823652e-01 1.44066695e-01 1.44309444e-01 1.44551896e-01 1.44794053e-01 + 1.45035913e-01 1.45277477e-01 1.45518744e-01 1.45759714e-01 1.46000386e-01 + 1.46240761e-01 1.46480838e-01 1.46720616e-01 1.46960096e-01 1.47199277e-01 + 1.47438159e-01 1.47676742e-01 1.47915025e-01 1.48153009e-01 1.48390692e-01 + 1.48628075e-01 1.48865157e-01 1.49101939e-01 1.49338419e-01 1.49574598e-01 + 1.49810476e-01 1.50046052e-01 1.50281327e-01 1.50516299e-01 1.50750969e-01 + 1.50985337e-01 1.51219402e-01 1.51453164e-01 1.51686623e-01 1.51919779e-01 + 1.52152632e-01 1.52385181e-01 1.52617427e-01 1.52849368e-01 1.53081006e-01 + 1.53312340e-01 1.53543370e-01 1.53774095e-01 1.54004516e-01 1.54234632e-01 + 1.54464444e-01 1.54693950e-01 1.54923152e-01 1.55152049e-01 1.55380640e-01 + 1.55608926e-01 1.55836907e-01 1.56064583e-01 1.56291953e-01 1.56519017e-01 + 1.56745775e-01 1.56972228e-01 1.57198375e-01 1.57424216e-01 1.57649751e-01 + 1.57874980e-01 1.58099903e-01 1.58324520e-01 1.58548831e-01 1.58772835e-01 + 1.58996533e-01 1.59219925e-01 1.59443010e-01 1.59665790e-01 1.59888262e-01 + 1.60110429e-01 1.60332289e-01 1.60553842e-01 1.60775089e-01 1.60996030e-01 + 1.61216664e-01 1.61436992e-01 1.61657013e-01 1.61876728e-01 1.62096136e-01 + 1.62315238e-01 1.62534034e-01 1.62752523e-01 1.62970706e-01 1.63188582e-01 + 1.63406152e-01 1.63623416e-01 1.63840374e-01 1.64057026e-01 1.64273371e-01 + 1.64489411e-01 1.64705144e-01 1.64920571e-01 1.65135693e-01 1.65350508e-01 + 1.65565018e-01 1.65779222e-01 1.65993121e-01 1.66206714e-01 1.66420001e-01 + 1.66632983e-01 1.66845660e-01 1.67058031e-01 1.67270097e-01 1.67481858e-01 + 1.67693314e-01 1.67904465e-01 1.68115312e-01 1.68325854e-01 1.68536091e-01 + 1.68746023e-01 1.68955652e-01 1.69164976e-01 1.69373996e-01 1.69582712e-01 + 1.69791124e-01 1.69999232e-01 1.70207037e-01 1.70414538e-01 1.70621735e-01 + 1.70828630e-01 1.71035221e-01 1.71241510e-01 1.71447495e-01 1.71653178e-01 + 1.71858558e-01 1.72063636e-01 1.72268412e-01 1.72472886e-01 1.72677057e-01 + 1.72880927e-01 1.73084495e-01 1.73287762e-01 1.73490728e-01 1.73693392e-01 + 1.73895756e-01 1.74097819e-01 1.74299581e-01 1.74501043e-01 1.74702204e-01 + 1.74903066e-01 1.75103627e-01 1.75303889e-01 1.75503852e-01 1.75703515e-01 + 1.75902879e-01 1.76101944e-01 1.76300710e-01 1.76499178e-01 1.76697348e-01 + 1.76895219e-01 1.77092792e-01 1.77290068e-01 1.77487046e-01 1.77683727e-01 + 1.77880111e-01 1.78076198e-01 1.78271989e-01 1.78467483e-01 1.78662680e-01 + 1.78857582e-01 1.79052188e-01 1.79246498e-01 1.79440514e-01 1.79634234e-01 + 1.79827659e-01 1.80020789e-01 1.80213625e-01 1.80406167e-01 1.80598415e-01 + 1.80790370e-01 1.80982031e-01 1.81173398e-01 1.81364473e-01 1.81555255e-01 + 1.81745745e-01 1.81935942e-01 1.82125848e-01 1.82315462e-01 1.82504784e-01 + 1.82693815e-01 1.82882555e-01 1.83071004e-01 1.83259163e-01 1.83447032e-01 + 1.83634611e-01 1.83821900e-01 1.84008900e-01 1.84195611e-01 1.84382033e-01 + 1.84568166e-01 1.84754012e-01 1.84939569e-01 1.85124838e-01 1.85309820e-01 + 1.85494514e-01 1.85678922e-01 1.85863043e-01 1.86046878e-01 1.86230426e-01 + 1.86413689e-01 1.86596666e-01 1.86779358e-01 1.86961765e-01 1.87143887e-01 + 1.87325725e-01 1.87507279e-01 1.87688549e-01 1.87869536e-01 1.88050239e-01 + 1.88230659e-01 1.88410797e-01 1.88590653e-01 1.88770226e-01 1.88949518e-01 + 1.89128528e-01 1.89307257e-01 1.89485705e-01 1.89663873e-01 1.89841761e-01 + 1.90019368e-01 1.90196696e-01 1.90373745e-01 1.90550515e-01 1.90727005e-01 + 1.90903218e-01 1.91079153e-01 1.91254809e-01 1.91430189e-01 1.91605291e-01 + 1.91780116e-01 1.91954665e-01 1.92128937e-01 1.92302934e-01 1.92476655e-01 + 1.92650101e-01 1.92823272e-01 1.92996169e-01 1.93168791e-01 1.93341139e-01 + 1.93513213e-01 1.93685014e-01 1.93856543e-01 1.94027798e-01 1.94198781e-01 + 1.94369492e-01 1.94539932e-01 1.94710100e-01 1.94879997e-01 1.95049623e-01 + 1.95218979e-01 1.95388065e-01 1.95556881e-01 1.95725428e-01 1.95893706e-01 + 1.96061715e-01 1.96229455e-01 1.96396928e-01 1.96564133e-01 1.96731070e-01 + 1.96897741e-01 1.97064144e-01 1.97230282e-01 1.97396153e-01 1.97561758e-01 + 1.97727099e-01 1.97892174e-01 1.98056984e-01 1.98221530e-01 1.98385813e-01 + 1.98549831e-01 1.98713586e-01 1.98877078e-01 1.99040308e-01 1.99203275e-01 + 1.99365980e-01 1.99528424e-01 1.99690606e-01 1.99852528e-01 2.00014188e-01 + 2.00175589e-01 2.00336730e-01 2.00497611e-01 2.00658233e-01 2.00818596e-01 + 2.00978701e-01 2.01138547e-01 2.01298136e-01 2.01457467e-01 2.01616542e-01 + 2.01775359e-01 2.01933920e-01 2.02092225e-01 2.02250274e-01 2.02408068e-01 + 2.02565607e-01 2.02722891e-01 2.02879921e-01 2.03036697e-01 2.03193220e-01 + 2.03349489e-01 2.03505505e-01 2.03661269e-01 2.03816780e-01 2.03972040e-01 + 2.04127048e-01 2.04281805e-01 2.04436312e-01 2.04590568e-01 2.04744573e-01 + 2.04898329e-01 2.05051836e-01 2.05205094e-01 2.05358103e-01 2.05510864e-01 + 2.05663377e-01 2.05815642e-01 2.05967660e-01 2.06119432e-01 2.06270956e-01 + 2.06422235e-01 2.06573268e-01 2.06724055e-01 2.06874598e-01 2.07024895e-01 + 2.07174948e-01 2.07324757e-01 2.07474323e-01 2.07623645e-01 2.07772725e-01 + 2.07921561e-01 2.08070156e-01 2.08218508e-01 2.08366619e-01 2.08514489e-01 + 2.08662119e-01 2.08809507e-01 2.08956656e-01 2.09103565e-01 2.09250235e-01 + 2.09396665e-01 2.09542857e-01 2.09688811e-01 2.09834526e-01 2.09980005e-01 + 2.10125246e-01 2.10270250e-01 2.10415017e-01 2.10559549e-01 2.10703844e-01 + 2.10847905e-01 2.10991730e-01 2.11135320e-01 2.11278676e-01 2.11421799e-01 + 2.11564687e-01 2.11707342e-01 2.11849765e-01 2.11991955e-01 2.12133912e-01 + 2.12275638e-01 2.12417132e-01 2.12558395e-01 2.12699428e-01 2.12840230e-01 + 2.12980802e-01 2.13121144e-01 2.13261257e-01 2.13401141e-01 2.13540796e-01 + 2.13680223e-01 2.13819422e-01 2.13958394e-01 2.14097138e-01 2.14235656e-01 + 2.14373947e-01 2.14512011e-01 2.14649851e-01 2.14787464e-01 2.14924853e-01 + 2.15062017e-01 2.15198957e-01 2.15335672e-01 2.15472164e-01 2.15608433e-01 + 2.15744479e-01 2.15880302e-01 2.16015903e-01 2.16151282e-01 2.16286440e-01 + 2.16421376e-01 2.16556092e-01 2.16690587e-01 2.16824862e-01 2.16958918e-01 + 2.17092754e-01 2.17226371e-01 2.17359769e-01 2.17492949e-01 2.17625911e-01 + 2.17758656e-01 2.17891183e-01 2.18023493e-01 2.18155587e-01 2.18287464e-01 + 2.18419126e-01 2.18550572e-01 2.18681803e-01 2.18812819e-01 2.18943621e-01 + 2.19074208e-01 2.19204582e-01 2.19334742e-01 2.19464690e-01 2.19594424e-01 + 2.19723946e-01 2.19853257e-01 2.19982355e-01 2.20111242e-01 2.20239919e-01 + 2.20368384e-01 2.20496640e-01 2.20624685e-01 2.20752521e-01 2.20880148e-01 + 2.21007566e-01 2.21134775e-01 2.21261776e-01 2.21388569e-01 2.21515155e-01 + 2.21641533e-01 2.21767705e-01 2.21893670e-01 2.22019429e-01 2.22144983e-01 + 2.22270331e-01 2.22395473e-01 2.22520411e-01 2.22645145e-01 2.22769675e-01 + 2.22894000e-01 2.23018123e-01 2.23142042e-01 2.23265759e-01 2.23389273e-01 + 2.23512586e-01 2.23635696e-01 2.23758606e-01 2.23881314e-01 2.24003822e-01 + 2.24126129e-01 2.24248236e-01 2.24370144e-01 2.24491852e-01 2.24613362e-01 + 2.24734673e-01 2.24855785e-01 2.24976700e-01 2.25097417e-01 2.25217936e-01 + 2.25338259e-01 2.25458385e-01 2.25578315e-01 2.25698048e-01 2.25817587e-01 + 2.25936930e-01 2.26056078e-01 2.26175031e-01 2.26293790e-01 2.26412355e-01 + 2.26530727e-01 2.26648905e-01 2.26766890e-01 2.26884683e-01 2.27002283e-01 + 2.27119691e-01 2.27236908e-01 2.27353934e-01 2.27470768e-01 2.27587412e-01 + 2.27703865e-01 2.27820129e-01 2.27936203e-01 2.28052087e-01 2.28167783e-01 + 2.28283290e-01 2.28398608e-01 2.28513738e-01 2.28628681e-01 2.28743437e-01 + 2.28858005e-01 2.28972386e-01 2.29086581e-01 2.29200591e-01 2.29314414e-01 + 2.29428052e-01 2.29541504e-01 2.29654772e-01 2.29767856e-01 2.29880755e-01 + 2.29993470e-01 2.30106002e-01 2.30218351e-01 2.30330517e-01 2.30442500e-01 + 2.30554301e-01 2.30665921e-01 2.30777358e-01 2.30888614e-01 2.30999690e-01 + 2.31110584e-01 2.31221299e-01 2.31331833e-01 2.31442188e-01 2.31552363e-01 + 2.31662359e-01 2.31772176e-01 2.31881815e-01 2.31991276e-01 2.32100559e-01 + 2.32209665e-01 2.32318593e-01 2.32427344e-01 2.32535919e-01 2.32644318e-01 + 2.32752540e-01 2.32860587e-01 2.32968459e-01 2.33076155e-01 2.33183677e-01 + 2.33291025e-01 2.33398198e-01 2.33505198e-01 2.33612024e-01 2.33718676e-01 + 2.33825157e-01 2.33931464e-01 2.34037599e-01 2.34143562e-01 2.34249354e-01 + 2.34354974e-01 2.34460423e-01 2.34565702e-01 2.34670810e-01 2.34775748e-01 + 2.34880516e-01 2.34985114e-01 2.35089544e-01 2.35193804e-01 2.35297896e-01 + 2.35401819e-01 2.35505574e-01 2.35609162e-01 2.35712582e-01 2.35815835e-01 + 2.35918921e-01 2.36021841e-01 2.36124594e-01 2.36227182e-01 2.36329603e-01 + 2.36431860e-01 2.36533951e-01 2.36635878e-01 2.36737640e-01 2.36839238e-01 + 2.36940672e-01 2.37041942e-01 2.37143049e-01 2.37243994e-01 2.37344775e-01 + 2.37445394e-01 2.37545851e-01 2.37646146e-01 2.37746279e-01 2.37846251e-01 + 2.37946062e-01 2.38045713e-01 2.38145203e-01 2.38244533e-01 2.38343703e-01 + 2.38442713e-01 2.38541565e-01 2.38640257e-01 2.38738790e-01 2.38837166e-01 + 2.38935383e-01 2.39033442e-01 2.39131344e-01 2.39229088e-01 2.39326676e-01 + 2.39424106e-01 2.39521381e-01 2.39618499e-01 2.39715461e-01 2.39812268e-01 + 2.39908919e-01 2.40005416e-01 2.40101757e-01 2.40197944e-01 2.40293977e-01 + 2.40389856e-01 2.40485582e-01 2.40581154e-01 2.40676573e-01 2.40771839e-01 + 2.40866953e-01 2.40961914e-01 2.41056724e-01 2.41151382e-01 2.41245888e-01 + 2.41340243e-01 2.41434447e-01 2.41528501e-01 2.41622404e-01 2.41716158e-01 + 2.41809761e-01 2.41903215e-01 2.41996520e-01 2.42089675e-01 2.42182682e-01 + 2.42275541e-01 2.42368251e-01 2.42460813e-01 2.42553228e-01 2.42645496e-01 + 2.42737616e-01 2.42829589e-01 2.42921416e-01 2.43013097e-01 2.43104631e-01 + 2.43196020e-01 2.43287263e-01 2.43378361e-01 2.43469314e-01 2.43560122e-01 + 2.43650786e-01 2.43741306e-01 2.43831681e-01 2.43921913e-01 2.44012001e-01 + 2.44101947e-01 2.44191749e-01 2.44281409e-01 2.44370926e-01 2.44460302e-01 + 2.44549535e-01 2.44638627e-01 2.44727577e-01 2.44816386e-01 2.44905055e-01 + 2.44993583e-01 2.45081970e-01 2.45170218e-01 2.45258325e-01 2.45346293e-01 + 2.45434122e-01 2.45521812e-01 2.45609362e-01 2.45696775e-01 2.45784049e-01 + 2.45871185e-01 2.45958183e-01 2.46045043e-01 2.46131766e-01 2.46218353e-01 + 2.46304802e-01 2.46391115e-01 2.46477291e-01 2.46563332e-01 2.46649236e-01 + 2.46735006e-01 2.46820639e-01 2.46906138e-01 2.46991502e-01 2.47076731e-01 + 2.47161826e-01 2.47246787e-01 2.47331614e-01 2.47416307e-01 2.47500867e-01 + 2.47585294e-01 2.47669588e-01 2.47753749e-01 2.47837778e-01 2.47921675e-01 + 2.48005440e-01 2.48089073e-01 2.48172575e-01 2.48255945e-01 2.48339185e-01 + 2.48422294e-01 2.48505272e-01 2.48588120e-01 2.48670839e-01 2.48753427e-01 + 2.48835886e-01 2.48918215e-01 2.49000416e-01 2.49082487e-01 2.49164431e-01 + 2.49246245e-01 2.49327932e-01 2.49409490e-01 2.49490922e-01 2.49572225e-01 + 2.49653402e-01 2.49734451e-01 2.49815374e-01 2.49896170e-01 2.49976840e-01 + 2.50057384e-01 2.50137802e-01 2.50218094e-01 2.50298261e-01 2.50378303e-01 + 2.50458221e-01 2.50538013e-01 2.50617681e-01 2.50697225e-01 2.50776645e-01 + 2.50855941e-01 2.50935113e-01 2.51014162e-01 2.51093088e-01 2.51171892e-01 + 2.51250572e-01 2.51329130e-01 2.51407566e-01 2.51485880e-01 2.51564073e-01 + 2.51642143e-01 2.51720093e-01 2.51797921e-01 2.51875629e-01 2.51953216e-01 + 2.52030682e-01 2.52108028e-01 2.52185254e-01 2.52262361e-01 2.52339348e-01 + 2.52416215e-01 2.52492964e-01 2.52569593e-01 2.52646104e-01 2.52722497e-01 + 2.52798771e-01 2.52874927e-01 2.52950965e-01 2.53026886e-01 2.53102689e-01 + 2.53178375e-01 2.53253944e-01 2.53329397e-01 2.53404733e-01 2.53479952e-01 + 2.53555056e-01 2.53630043e-01 2.53704915e-01 2.53779671e-01 2.53854312e-01 + 2.53928839e-01 2.54003250e-01 2.54077546e-01 2.54151728e-01 2.54225796e-01 + 2.54299750e-01 2.54373590e-01 2.54447316e-01 2.54520930e-01 2.54594429e-01 + 2.54667816e-01 2.54741090e-01 2.54814252e-01 2.54887301e-01 2.54960238e-01 + 2.55033063e-01 2.55105776e-01 2.55178378e-01 2.55250868e-01 2.55323247e-01 + 2.55395516e-01 2.55467673e-01 2.55539720e-01 2.55611657e-01 2.55683483e-01 + 2.55755200e-01 2.55826806e-01 2.55898304e-01 2.55969692e-01 2.56040970e-01 + 2.56112140e-01 2.56183201e-01 2.56254154e-01 2.56324998e-01 2.56395734e-01 + 2.56466362e-01 2.56536882e-01 2.56607295e-01 2.56677600e-01 2.56747798e-01 + 2.56817889e-01 2.56887874e-01 2.56957752e-01 2.57027523e-01 2.57097188e-01 + 2.57166747e-01 2.57236200e-01 2.57305548e-01 2.57374790e-01 2.57443927e-01 + 2.57512959e-01 2.57581886e-01 2.57650709e-01 2.57719427e-01 2.57788040e-01 + 2.57856550e-01 2.57924955e-01 2.57993257e-01 2.58061455e-01 2.58129550e-01 + 2.58197542e-01 2.58265431e-01 2.58333217e-01 2.58400900e-01 2.58468481e-01 + 2.58535960e-01 2.58603336e-01 2.58670611e-01 2.58737784e-01 2.58804856e-01 + 2.58871826e-01 2.58938695e-01 2.59005463e-01 2.59072131e-01 2.59138697e-01 + 2.59205164e-01 2.59271530e-01 2.59337796e-01 2.59403962e-01 2.59470029e-01 + 2.59535996e-01 2.59601864e-01 2.59667633e-01 2.59733302e-01 2.59798873e-01 + 2.59864345e-01 2.59929719e-01 2.59994995e-01 2.60060172e-01 2.60125252e-01 + 2.60190234e-01 2.60255118e-01 2.60319905e-01 2.60384595e-01 2.60449188e-01 + 2.60513684e-01 2.60578083e-01 2.60642386e-01 2.60706593e-01 2.60770703e-01 + 2.60834718e-01 2.60898636e-01 2.60962459e-01 2.61026187e-01 2.61089819e-01 + 2.61153356e-01 2.61216799e-01 2.61280146e-01 2.61343399e-01 2.61406557e-01 + 2.61469622e-01 2.61532592e-01 2.61595468e-01 2.61658250e-01 2.61720939e-01 + 2.61783535e-01 2.61846037e-01 2.61908446e-01 2.61970763e-01 2.62032986e-01 + 2.62095117e-01 2.62157156e-01 2.62219102e-01 2.62280956e-01 2.62342719e-01 + 2.62404389e-01 2.62465968e-01 2.62527456e-01 2.62588852e-01 2.62650158e-01 + 2.62711372e-01 2.62772496e-01 2.62833529e-01 2.62894471e-01 2.62955324e-01 + 2.63016086e-01 2.63076758e-01 2.63137341e-01 2.63197833e-01 2.63258237e-01 + 2.63318551e-01 2.63378776e-01 2.63438912e-01 2.63498959e-01 2.63558918e-01 + 2.63618788e-01 2.63678569e-01 2.63738263e-01 2.63797868e-01 2.63857386e-01 + 2.63916816e-01 2.63976158e-01 2.64035413e-01 2.64094581e-01 2.64153661e-01 + 2.64212655e-01 2.64271562e-01 2.64330382e-01 2.64389116e-01 2.64447763e-01 + 2.64506324e-01 2.64564800e-01 2.64623189e-01 2.64681493e-01 2.64739711e-01 + 2.64797844e-01 2.64855892e-01 2.64913854e-01 2.64971732e-01 2.65029524e-01 + 2.65087233e-01 2.65144856e-01 2.65202396e-01 2.65259851e-01 2.65317222e-01 + 2.65374509e-01 2.65431713e-01 2.65488833e-01 2.65545869e-01 2.65602822e-01 + 2.65659692e-01 2.65716480e-01 2.65773184e-01 2.65829805e-01 2.65886344e-01 + 2.65942801e-01 2.65999175e-01 2.66055468e-01 2.66111678e-01 2.66167806e-01 + 2.66223853e-01 2.66279819e-01 2.66335703e-01 2.66391505e-01 2.66447227e-01 + 2.66502868e-01 2.66558427e-01 2.66613907e-01 2.66669305e-01 2.66724624e-01 + 2.66779862e-01 2.66835020e-01 2.66890098e-01 2.66945096e-01 2.67000015e-01 + 2.67054854e-01 2.67109613e-01 2.67164294e-01 2.67218895e-01 2.67273418e-01 + 2.67327861e-01 2.67382226e-01 2.67436512e-01 2.67490720e-01 2.67544850e-01 + 2.67598902e-01 2.67652875e-01 2.67706771e-01 2.67760589e-01 2.67814330e-01 + 2.67867993e-01 2.67921578e-01 2.67975087e-01 2.68028519e-01 2.68081873e-01 + 2.68135151e-01 2.68188352e-01 2.68241477e-01 2.68294526e-01 2.68347498e-01 + 2.68400394e-01 2.68453214e-01 2.68505959e-01 2.68558628e-01 2.68611221e-01 + 2.68663738e-01 2.68716181e-01 2.68768548e-01 2.68820841e-01 2.68873058e-01 + 2.68925201e-01 2.68977269e-01 2.69029263e-01 2.69081182e-01 2.69133027e-01 + 2.69184798e-01 2.69236495e-01 2.69288118e-01 2.69339668e-01 2.69391143e-01 + 2.69442546e-01 2.69493875e-01 2.69545131e-01 2.69596314e-01 2.69647424e-01 + 2.69698461e-01 2.69749425e-01 2.69800317e-01 2.69851137e-01 2.69901884e-01 + 2.69952559e-01 2.70003162e-01 2.70053693e-01 2.70104153e-01 2.70154540e-01 + 2.70204856e-01 2.70255101e-01 2.70305274e-01 2.70355377e-01 2.70405408e-01 + 2.70455368e-01 2.70505258e-01 2.70555077e-01 2.70604825e-01 2.70654503e-01 + 2.70704110e-01 2.70753648e-01 2.70803115e-01 2.70852513e-01 2.70901840e-01 + 2.70951098e-01 2.71000287e-01 2.71049406e-01 2.71098455e-01 2.71147436e-01 + 2.71196347e-01 2.71245190e-01 2.71293963e-01 2.71342668e-01 2.71391304e-01 + 2.71439872e-01 2.71488372e-01 2.71536803e-01 2.71585166e-01 2.71633461e-01 + 2.71681688e-01 2.71729848e-01 2.71777939e-01 2.71825964e-01 2.71873921e-01 + 2.71921810e-01 2.71969632e-01 2.72017388e-01 2.72065076e-01 2.72112698e-01 + 2.72160252e-01 2.72207741e-01 2.72255162e-01 2.72302518e-01 2.72349807e-01 + 2.72397030e-01 2.72444187e-01 2.72491278e-01 2.72538303e-01 2.72585263e-01 + 2.72632157e-01 2.72678985e-01 2.72725748e-01 2.72772446e-01 2.72819079e-01 + 2.72865647e-01 2.72912150e-01 2.72958588e-01 2.73004962e-01 2.73051271e-01 + 2.73097516e-01 2.73143696e-01 2.73189812e-01 2.73235864e-01 2.73281852e-01 + 2.73327776e-01 2.73373636e-01 2.73419432e-01 2.73465166e-01 2.73510835e-01 + 2.73556441e-01 2.73601984e-01 2.73647464e-01 2.73692881e-01 2.73738235e-01 + 2.73783526e-01 2.73828755e-01 2.73873921e-01 2.73919024e-01 2.73964065e-01 + 2.74009044e-01 2.74053961e-01 2.74098815e-01 2.74143608e-01 2.74188339e-01 + 2.74233008e-01 2.74277616e-01 2.74322162e-01 2.74366646e-01 2.74411070e-01 + 2.74455432e-01 2.74499733e-01 2.74543973e-01 2.74588152e-01 2.74632270e-01 + 2.74676328e-01 2.74720325e-01 2.74764262e-01 2.74808138e-01 2.74851954e-01 + 2.74895710e-01 2.74939406e-01 2.74983042e-01 2.75026618e-01 2.75070135e-01 + 2.75113591e-01 2.75156988e-01 2.75200326e-01 2.75243604e-01 2.75286824e-01 + 2.75329984e-01 2.75373085e-01 2.75416127e-01 2.75459110e-01 2.75502034e-01 + 2.75544900e-01 2.75587707e-01 2.75630456e-01 2.75673147e-01 2.75715779e-01 + 2.75758353e-01 2.75800869e-01 2.75843328e-01 2.75885728e-01 2.75928070e-01 + 2.75970355e-01 2.76012583e-01 2.76054753e-01 2.76096866e-01 2.76138921e-01 + 2.76180919e-01 2.76222860e-01 2.76264745e-01 2.76306572e-01 2.76348342e-01 + 2.76390056e-01 2.76431714e-01 2.76473315e-01 2.76514859e-01 2.76556347e-01 + 2.76597779e-01 2.76639155e-01 2.76680475e-01 2.76721739e-01 2.76762947e-01 + 2.76804100e-01 2.76845197e-01 2.76886238e-01 2.76927224e-01 2.76968154e-01 + 2.77009030e-01 2.77049850e-01 2.77090615e-01 2.77131325e-01 2.77171980e-01 + 2.77212581e-01 2.77253126e-01 2.77293617e-01 2.77334054e-01 2.77374436e-01 + 2.77414764e-01 2.77455038e-01 2.77495257e-01 2.77535423e-01 2.77575534e-01 + 2.77615592e-01 2.77655596e-01 2.77695546e-01 2.77735443e-01 2.77775286e-01 + 2.77815076e-01 2.77854812e-01 2.77894495e-01 2.77934125e-01 2.77973702e-01 + 2.78013226e-01 2.78052697e-01 2.78092115e-01 2.78131481e-01 2.78170794e-01 + 2.78210054e-01 2.78249262e-01 2.78288418e-01 2.78327521e-01 2.78366572e-01 + 2.78405571e-01 2.78444519e-01 2.78483414e-01 2.78522257e-01 2.78561049e-01 + 2.78599789e-01 2.78638477e-01 2.78677114e-01 2.78715700e-01 2.78754234e-01 + 2.78792717e-01 2.78831149e-01 2.78869530e-01 2.78907859e-01 2.78946138e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.19316516e-02 1.17837661e-02 1.16368916e-02 1.14910312e-02 1.13461881e-02 + 1.12023652e-02 1.10595657e-02 1.09177924e-02 1.07770486e-02 1.06373371e-02 + 1.04986608e-02 1.03610229e-02 1.02244262e-02 1.00888736e-02 9.95436796e-03 + 9.82091227e-03 9.68850936e-03 9.55716205e-03 9.42687318e-03 9.29764555e-03 + 9.16948195e-03 9.04238514e-03 8.91635788e-03 8.79140288e-03 8.66752287e-03 + 8.54472052e-03 8.42299850e-03 8.30235947e-03 8.18280604e-03 8.06434082e-03 + 7.94696640e-03 7.83068535e-03 7.71550020e-03 7.60141348e-03 7.48842769e-03 + 7.37654531e-03 7.26576880e-03 7.15610060e-03 7.04754311e-03 6.94009874e-03 + 6.83376985e-03 6.72855879e-03 6.62446789e-03 6.52149946e-03 6.41965576e-03 + 6.31893907e-03 6.21935162e-03 6.12089562e-03 6.02357326e-03 5.92738670e-03 + 5.83233810e-03 5.73842957e-03 5.64566320e-03 5.55404108e-03 5.46356524e-03 + 5.37423772e-03 5.28606051e-03 5.19903560e-03 5.11316493e-03 5.02845043e-03 + 4.94489402e-03 4.86249756e-03 4.78126291e-03 4.70119191e-03 4.62228636e-03 + 4.54454803e-03 4.46797870e-03 4.39258007e-03 4.31835387e-03 4.24530177e-03 + 4.17342543e-03 4.10272646e-03 4.03320649e-03 3.96486708e-03 3.89770979e-03 + 3.83173614e-03 3.76694764e-03 3.70334576e-03 3.64093194e-03 3.57970760e-03 + 3.51967415e-03 3.46083296e-03 3.40318535e-03 3.34673266e-03 3.29147617e-03 + 3.23741715e-03 3.18455682e-03 3.13289641e-03 3.08243708e-03 3.03318001e-03 + 2.98512631e-03 2.93827709e-03 2.89263342e-03 2.84819635e-03 2.80496690e-03 + 2.76294607e-03 2.72213481e-03 2.68253407e-03 2.64414475e-03 2.60696775e-03 + 2.57100391e-03 2.53625406e-03 2.50271900e-03 2.47039951e-03 2.43929633e-03 + 2.40941017e-03 2.38074173e-03 2.35329167e-03 2.32706061e-03 2.30204917e-03 + 2.27825792e-03 2.25568742e-03 2.23433817e-03 2.21421068e-03 2.19530540e-03 + 2.17762279e-03 2.16116324e-03 2.14592713e-03 2.13191482e-03 2.11912664e-03 + 2.10756286e-03 2.09722378e-03 2.08810961e-03 2.08022058e-03 2.07355687e-03 + 2.06811863e-03 2.06390598e-03 2.06091903e-03 2.05915784e-03 2.05862245e-03 + 2.05931288e-03 2.06122911e-03 2.06437109e-03 2.06873876e-03 2.07433201e-03 + 2.08115071e-03 2.08919471e-03 2.09846382e-03 2.10895782e-03 2.12067647e-03 + 2.13361950e-03 2.14778662e-03 2.16317748e-03 2.17979175e-03 2.19762903e-03 + 2.21668892e-03 2.23697097e-03 2.25847471e-03 2.28119965e-03 2.30514526e-03 + 2.33031099e-03 2.35669626e-03 2.38430046e-03 2.41312296e-03 2.44316308e-03 + 2.47442014e-03 2.50689342e-03 2.54058217e-03 2.57548561e-03 2.61160294e-03 + 2.64893333e-03 2.68747592e-03 2.72722982e-03 2.76819412e-03 2.81036787e-03 + 2.85375012e-03 2.89833986e-03 2.94413606e-03 2.99113769e-03 3.03934365e-03 + 3.08875285e-03 3.13936416e-03 3.19117640e-03 3.24418841e-03 3.29839896e-03 + 3.35380682e-03 3.41041071e-03 3.46820936e-03 3.52720143e-03 3.58738558e-03 + 3.64876043e-03 3.71132460e-03 3.77507665e-03 3.84001514e-03 3.90613858e-03 + 3.97344547e-03 4.04193428e-03 4.11160346e-03 4.18245143e-03 4.25447658e-03 + 4.32767727e-03 4.40205185e-03 4.47759865e-03 4.55431593e-03 4.63220199e-03 + 4.71125505e-03 4.79147333e-03 4.87285502e-03 4.95539830e-03 5.03910129e-03 + 5.12396213e-03 5.20997890e-03 5.29714966e-03 5.38547247e-03 5.47494535e-03 + 5.56556628e-03 5.65733324e-03 5.75024419e-03 5.84429703e-03 5.93948968e-03 + 6.03582001e-03 6.13328588e-03 6.23188511e-03 6.33161551e-03 6.43247487e-03 + 6.53446095e-03 6.63757148e-03 6.74180419e-03 6.84715676e-03 6.95362687e-03 + 7.06121216e-03 7.16991026e-03 7.27971878e-03 7.39063530e-03 7.50265737e-03 + 7.61578255e-03 7.73000833e-03 7.84533223e-03 7.96175172e-03 8.07926424e-03 + 8.19786724e-03 8.31755813e-03 8.43833428e-03 8.56019309e-03 8.68313189e-03 + 8.80714802e-03 8.93223879e-03 9.05840148e-03 9.18563337e-03 9.31393170e-03 + 9.44329371e-03 9.57371661e-03 9.70519759e-03 9.83773382e-03 9.97132246e-03 + 1.01059606e-02 1.02416455e-02 1.03783741e-02 1.05161435e-02 1.06549508e-02 + 1.07947931e-02 1.09356673e-02 1.10775705e-02 1.12204997e-02 1.13644517e-02 + 1.15094237e-02 1.16554125e-02 1.18024151e-02 1.19504282e-02 1.20994490e-02 + 1.22494741e-02 1.24005005e-02 1.25525250e-02 1.27055444e-02 1.28595555e-02 + 1.30145552e-02 1.31705401e-02 1.33275071e-02 1.34854528e-02 1.36443741e-02 + 1.38042677e-02 1.39651301e-02 1.41269582e-02 1.42897485e-02 1.44534978e-02 + 1.46182027e-02 1.47838598e-02 1.49504657e-02 1.51180170e-02 1.52865103e-02 + 1.54559422e-02 1.56263093e-02 1.57976080e-02 1.59698349e-02 1.61429866e-02 + 1.63170596e-02 1.64920502e-02 1.66679551e-02 1.68447707e-02 1.70224935e-02 + 1.72011198e-02 1.73806462e-02 1.75610691e-02 1.77423848e-02 1.79245899e-02 + 1.81076806e-02 1.82916533e-02 1.84765045e-02 1.86622305e-02 1.88488276e-02 + 1.90362922e-02 1.92246206e-02 1.94138091e-02 1.96038541e-02 1.97947518e-02 + 1.99864985e-02 2.01790905e-02 2.03725242e-02 2.05667957e-02 2.07619013e-02 + 2.09578372e-02 2.11545998e-02 2.13521852e-02 2.15505896e-02 2.17498093e-02 + 2.19498405e-02 2.21506794e-02 2.23523222e-02 2.25547650e-02 2.27580040e-02 + 2.29620355e-02 2.31668555e-02 2.33724603e-02 2.35788460e-02 2.37860087e-02 + 2.39939446e-02 2.42026499e-02 2.44121205e-02 2.46223528e-02 2.48333427e-02 + 2.50450864e-02 2.52575801e-02 2.54708198e-02 2.56848016e-02 2.58995216e-02 + 2.61149759e-02 2.63311606e-02 2.65480717e-02 2.67657054e-02 2.69840578e-02 + 2.72031248e-02 2.74229026e-02 2.76433871e-02 2.78645746e-02 2.80864610e-02 + 2.83090425e-02 2.85323149e-02 2.87562745e-02 2.89809172e-02 2.92062390e-02 + 2.94322361e-02 2.96589045e-02 2.98862402e-02 3.01142392e-02 3.03428976e-02 + 3.05722114e-02 3.08021766e-02 3.10327893e-02 3.12640455e-02 3.14959413e-02 + 3.17284726e-02 3.19616355e-02 3.21954260e-02 3.24298402e-02 3.26648740e-02 + 3.29005236e-02 3.31367848e-02 3.33736539e-02 3.36111267e-02 3.38491993e-02 + 3.40878677e-02 3.43271281e-02 3.45669763e-02 3.48074084e-02 3.50484206e-02 + 3.52900087e-02 3.55321689e-02 3.57748971e-02 3.60181895e-02 3.62620420e-02 + 3.65064508e-02 3.67514117e-02 3.69969210e-02 3.72429746e-02 3.74895686e-02 + 3.77366991e-02 3.79843621e-02 3.82325537e-02 3.84812698e-02 3.87305067e-02 + 3.89802604e-02 3.92305269e-02 3.94813024e-02 3.97325829e-02 3.99843644e-02 + 4.02366431e-02 4.04894151e-02 4.07426765e-02 4.09964234e-02 4.12506518e-02 + 4.15053579e-02 4.17605378e-02 4.20161876e-02 4.22723034e-02 4.25288815e-02 + 4.27859178e-02 4.30434086e-02 4.33013499e-02 4.35597380e-02 4.38185689e-02 + 4.40778389e-02 4.43375441e-02 4.45976807e-02 4.48582449e-02 4.51192328e-02 + 4.53806406e-02 4.56424645e-02 4.59047007e-02 4.61673455e-02 4.64303950e-02 + 4.66938455e-02 4.69576932e-02 4.72219342e-02 4.74865650e-02 4.77515816e-02 + 4.80169804e-02 4.82827576e-02 4.85489095e-02 4.88154324e-02 4.90823225e-02 + 4.93495761e-02 4.96171896e-02 4.98851592e-02 5.01534812e-02 5.04221520e-02 + 5.06911679e-02 5.09605252e-02 5.12302202e-02 5.15002494e-02 5.17706091e-02 + 5.20412956e-02 5.23123054e-02 5.25836347e-02 5.28552801e-02 5.31272378e-02 + 5.33995044e-02 5.36720762e-02 5.39449496e-02 5.42181211e-02 5.44915872e-02 + 5.47653442e-02 5.50393887e-02 5.53137171e-02 5.55883259e-02 5.58632116e-02 + 5.61383707e-02 5.64137997e-02 5.66894951e-02 5.69654535e-02 5.72416713e-02 + 5.75181451e-02 5.77948716e-02 5.80718471e-02 5.83490684e-02 5.86265320e-02 + 5.89042345e-02 5.91821725e-02 5.94603427e-02 5.97387415e-02 6.00173658e-02 + 6.02962120e-02 6.05752770e-02 6.08545573e-02 6.11340496e-02 6.14137506e-02 + 6.16936570e-02 6.19737655e-02 6.22540729e-02 6.25345758e-02 6.28152709e-02 + 6.30961552e-02 6.33772252e-02 6.36584778e-02 6.39399097e-02 6.42215178e-02 + 6.45032988e-02 6.47852496e-02 6.50673669e-02 6.53496477e-02 6.56320887e-02 + 6.59146868e-02 6.61974389e-02 6.64803419e-02 6.67633926e-02 6.70465880e-02 + 6.73299249e-02 6.76134004e-02 6.78970112e-02 6.81807545e-02 6.84646270e-02 + 6.87486259e-02 6.90327480e-02 6.93169904e-02 6.96013501e-02 6.98858240e-02 + 7.01704093e-02 7.04551029e-02 7.07399019e-02 7.10248033e-02 7.13098043e-02 + 7.15949019e-02 7.18800932e-02 7.21653753e-02 7.24507453e-02 7.27362004e-02 + 7.30217377e-02 7.33073544e-02 7.35930475e-02 7.38788144e-02 7.41646521e-02 + 7.44505580e-02 7.47365291e-02 7.50225627e-02 7.53086561e-02 7.55948066e-02 + 7.58810112e-02 7.61672674e-02 7.64535724e-02 7.67399235e-02 7.70263181e-02 + 7.73127534e-02 7.75992267e-02 7.78857354e-02 7.81722770e-02 7.84588486e-02 + 7.87454477e-02 7.90320718e-02 7.93187181e-02 7.96053841e-02 7.98920673e-02 + 8.01787651e-02 8.04654749e-02 8.07521941e-02 8.10389204e-02 8.13256510e-02 + 8.16123836e-02 8.18991157e-02 8.21858447e-02 8.24725683e-02 8.27592839e-02 + 8.30459891e-02 8.33326815e-02 8.36193586e-02 8.39060181e-02 8.41926576e-02 + 8.44792746e-02 8.47658669e-02 8.50524319e-02 8.53389675e-02 8.56254713e-02 + 8.59119408e-02 8.61983740e-02 8.64847683e-02 8.67711216e-02 8.70574315e-02 + 8.73436959e-02 8.76299124e-02 8.79160788e-02 8.82021929e-02 8.84882524e-02 + 8.87742552e-02 8.90601991e-02 8.93460819e-02 8.96319014e-02 8.99176554e-02 + 9.02033419e-02 9.04889586e-02 9.07745035e-02 9.10599745e-02 9.13453694e-02 + 9.16306861e-02 9.19159227e-02 9.22010770e-02 9.24861469e-02 9.27711305e-02 + 9.30560257e-02 9.33408305e-02 9.36255428e-02 9.39101607e-02 9.41946823e-02 + 9.44791055e-02 9.47634283e-02 9.50476489e-02 9.53317653e-02 9.56157755e-02 + 9.58996777e-02 9.61834699e-02 9.64671503e-02 9.67507170e-02 9.70341681e-02 + 9.73175018e-02 9.76007161e-02 9.78838094e-02 9.81667797e-02 9.84496252e-02 + 9.87323442e-02 9.90149348e-02 9.92973954e-02 9.95797240e-02 9.98619190e-02 + 1.00143979e-01 1.00425901e-01 1.00707685e-01 1.00989328e-01 1.01270829e-01 + 1.01552185e-01 1.01833397e-01 1.02114461e-01 1.02395376e-01 1.02676140e-01 + 1.02956752e-01 1.03237211e-01 1.03517513e-01 1.03797659e-01 1.04077646e-01 + 1.04357473e-01 1.04637138e-01 1.04916640e-01 1.05195977e-01 1.05475147e-01 + 1.05754150e-01 1.06032982e-01 1.06311644e-01 1.06590134e-01 1.06868449e-01 + 1.07146589e-01 1.07424552e-01 1.07702336e-01 1.07979941e-01 1.08257365e-01 + 1.08534605e-01 1.08811662e-01 1.09088533e-01 1.09365218e-01 1.09641714e-01 + 1.09918020e-01 1.10194135e-01 1.10470058e-01 1.10745788e-01 1.11021322e-01 + 1.11296660e-01 1.11571800e-01 1.11846741e-01 1.12121482e-01 1.12396021e-01 + 1.12670358e-01 1.12944490e-01 1.13218418e-01 1.13492138e-01 1.13765651e-01 + 1.14038955e-01 1.14312048e-01 1.14584930e-01 1.14857599e-01 1.15130055e-01 + 1.15402295e-01 1.15674319e-01 1.15946126e-01 1.16217714e-01 1.16489083e-01 + 1.16760231e-01 1.17031157e-01 1.17301860e-01 1.17572339e-01 1.17842593e-01 + 1.18112620e-01 1.18382420e-01 1.18651992e-01 1.18921334e-01 1.19190445e-01 + 1.19459326e-01 1.19727973e-01 1.19996387e-01 1.20264566e-01 1.20532510e-01 + 1.20800216e-01 1.21067686e-01 1.21334917e-01 1.21601908e-01 1.21868658e-01 + 1.22135167e-01 1.22401434e-01 1.22667458e-01 1.22933237e-01 1.23198771e-01 + 1.23464058e-01 1.23729099e-01 1.23993892e-01 1.24258436e-01 1.24522731e-01 + 1.24786775e-01 1.25050567e-01 1.25314108e-01 1.25577395e-01 1.25840428e-01 + 1.26103207e-01 1.26365730e-01 1.26627997e-01 1.26890006e-01 1.27151758e-01 + 1.27413251e-01 1.27674484e-01 1.27935457e-01 1.28196169e-01 1.28456619e-01 + 1.28716807e-01 1.28976731e-01 1.29236391e-01 1.29495787e-01 1.29754917e-01 + 1.30013780e-01 1.30272377e-01 1.30530707e-01 1.30788768e-01 1.31046560e-01 + 1.31304083e-01 1.31561335e-01 1.31818316e-01 1.32075026e-01 1.32331463e-01 + 1.32587628e-01 1.32843519e-01 1.33099136e-01 1.33354479e-01 1.33609546e-01 + 1.33864337e-01 1.34118851e-01 1.34373088e-01 1.34627048e-01 1.34880730e-01 + 1.35134132e-01 1.35387255e-01 1.35640099e-01 1.35892661e-01 1.36144943e-01 + 1.36396943e-01 1.36648661e-01 1.36900097e-01 1.37151249e-01 1.37402118e-01 + 1.37652702e-01 1.37903003e-01 1.38153017e-01 1.38402747e-01 1.38652190e-01 + 1.38901347e-01 1.39150217e-01 1.39398799e-01 1.39647094e-01 1.39895100e-01 + 1.40142817e-01 1.40390246e-01 1.40637384e-01 1.40884233e-01 1.41130791e-01 + 1.41377059e-01 1.41623035e-01 1.41868719e-01 1.42114112e-01 1.42359212e-01 + 1.42604020e-01 1.42848534e-01 1.43092755e-01 1.43336681e-01 1.43580314e-01 + 1.43823652e-01 1.44066695e-01 1.44309444e-01 1.44551896e-01 1.44794053e-01 + 1.45035913e-01 1.45277477e-01 1.45518744e-01 1.45759714e-01 1.46000386e-01 + 1.46240761e-01 1.46480838e-01 1.46720616e-01 1.46960096e-01 1.47199277e-01 + 1.47438159e-01 1.47676742e-01 1.47915025e-01 1.48153009e-01 1.48390692e-01 + 1.48628075e-01 1.48865157e-01 1.49101939e-01 1.49338419e-01 1.49574598e-01 + 1.49810476e-01 1.50046052e-01 1.50281327e-01 1.50516299e-01 1.50750969e-01 + 1.50985337e-01 1.51219402e-01 1.51453164e-01 1.51686623e-01 1.51919779e-01 + 1.52152632e-01 1.52385181e-01 1.52617427e-01 1.52849368e-01 1.53081006e-01 + 1.53312340e-01 1.53543370e-01 1.53774095e-01 1.54004516e-01 1.54234632e-01 + 1.54464444e-01 1.54693950e-01 1.54923152e-01 1.55152049e-01 1.55380640e-01 + 1.55608926e-01 1.55836907e-01 1.56064583e-01 1.56291953e-01 1.56519017e-01 + 1.56745775e-01 1.56972228e-01 1.57198375e-01 1.57424216e-01 1.57649751e-01 + 1.57874980e-01 1.58099903e-01 1.58324520e-01 1.58548831e-01 1.58772835e-01 + 1.58996533e-01 1.59219925e-01 1.59443010e-01 1.59665790e-01 1.59888262e-01 + 1.60110429e-01 1.60332289e-01 1.60553842e-01 1.60775089e-01 1.60996030e-01 + 1.61216664e-01 1.61436992e-01 1.61657013e-01 1.61876728e-01 1.62096136e-01 + 1.62315238e-01 1.62534034e-01 1.62752523e-01 1.62970706e-01 1.63188582e-01 + 1.63406152e-01 1.63623416e-01 1.63840374e-01 1.64057026e-01 1.64273371e-01 + 1.64489411e-01 1.64705144e-01 1.64920571e-01 1.65135693e-01 1.65350508e-01 + 1.65565018e-01 1.65779222e-01 1.65993121e-01 1.66206714e-01 1.66420001e-01 + 1.66632983e-01 1.66845660e-01 1.67058031e-01 1.67270097e-01 1.67481858e-01 + 1.67693314e-01 1.67904465e-01 1.68115312e-01 1.68325854e-01 1.68536091e-01 + 1.68746023e-01 1.68955652e-01 1.69164976e-01 1.69373996e-01 1.69582712e-01 + 1.69791124e-01 1.69999232e-01 1.70207037e-01 1.70414538e-01 1.70621735e-01 + 1.70828630e-01 1.71035221e-01 1.71241510e-01 1.71447495e-01 1.71653178e-01 + 1.71858558e-01 1.72063636e-01 1.72268412e-01 1.72472886e-01 1.72677057e-01 + 1.72880927e-01 1.73084495e-01 1.73287762e-01 1.73490728e-01 1.73693392e-01 + 1.73895756e-01 1.74097819e-01 1.74299581e-01 1.74501043e-01 1.74702204e-01 + 1.74903066e-01 1.75103627e-01 1.75303889e-01 1.75503852e-01 1.75703515e-01 + 1.75902879e-01 1.76101944e-01 1.76300710e-01 1.76499178e-01 1.76697348e-01 + 1.76895219e-01 1.77092792e-01 1.77290068e-01 1.77487046e-01 1.77683727e-01 + 1.77880111e-01 1.78076198e-01 1.78271989e-01 1.78467483e-01 1.78662680e-01 + 1.78857582e-01 1.79052188e-01 1.79246498e-01 1.79440514e-01 1.79634234e-01 + 1.79827659e-01 1.80020789e-01 1.80213625e-01 1.80406167e-01 1.80598415e-01 + 1.80790370e-01 1.80982031e-01 1.81173398e-01 1.81364473e-01 1.81555255e-01 + 1.81745745e-01 1.81935942e-01 1.82125848e-01 1.82315462e-01 1.82504784e-01 + 1.82693815e-01 1.82882555e-01 1.83071004e-01 1.83259163e-01 1.83447032e-01 + 1.83634611e-01 1.83821900e-01 1.84008900e-01 1.84195611e-01 1.84382033e-01 + 1.84568166e-01 1.84754012e-01 1.84939569e-01 1.85124838e-01 1.85309820e-01 + 1.85494514e-01 1.85678922e-01 1.85863043e-01 1.86046878e-01 1.86230426e-01 + 1.86413689e-01 1.86596666e-01 1.86779358e-01 1.86961765e-01 1.87143887e-01 + 1.87325725e-01 1.87507279e-01 1.87688549e-01 1.87869536e-01 1.88050239e-01 + 1.88230659e-01 1.88410797e-01 1.88590653e-01 1.88770226e-01 1.88949518e-01 + 1.89128528e-01 1.89307257e-01 1.89485705e-01 1.89663873e-01 1.89841761e-01 + 1.90019368e-01 1.90196696e-01 1.90373745e-01 1.90550515e-01 1.90727005e-01 + 1.90903218e-01 1.91079153e-01 1.91254809e-01 1.91430189e-01 1.91605291e-01 + 1.91780116e-01 1.91954665e-01 1.92128937e-01 1.92302934e-01 1.92476655e-01 + 1.92650101e-01 1.92823272e-01 1.92996169e-01 1.93168791e-01 1.93341139e-01 + 1.93513213e-01 1.93685014e-01 1.93856543e-01 1.94027798e-01 1.94198781e-01 + 1.94369492e-01 1.94539932e-01 1.94710100e-01 1.94879997e-01 1.95049623e-01 + 1.95218979e-01 1.95388065e-01 1.95556881e-01 1.95725428e-01 1.95893706e-01 + 1.96061715e-01 1.96229455e-01 1.96396928e-01 1.96564133e-01 1.96731070e-01 + 1.96897741e-01 1.97064144e-01 1.97230282e-01 1.97396153e-01 1.97561758e-01 + 1.97727099e-01 1.97892174e-01 1.98056984e-01 1.98221530e-01 1.98385813e-01 + 1.98549831e-01 1.98713586e-01 1.98877078e-01 1.99040308e-01 1.99203275e-01 + 1.99365980e-01 1.99528424e-01 1.99690606e-01 1.99852528e-01 2.00014188e-01 + 2.00175589e-01 2.00336730e-01 2.00497611e-01 2.00658233e-01 2.00818596e-01 + 2.00978701e-01 2.01138547e-01 2.01298136e-01 2.01457467e-01 2.01616542e-01 + 2.01775359e-01 2.01933920e-01 2.02092225e-01 2.02250274e-01 2.02408068e-01 + 2.02565607e-01 2.02722891e-01 2.02879921e-01 2.03036697e-01 2.03193220e-01 + 2.03349489e-01 2.03505505e-01 2.03661269e-01 2.03816780e-01 2.03972040e-01 + 2.04127048e-01 2.04281805e-01 2.04436312e-01 2.04590568e-01 2.04744573e-01 + 2.04898329e-01 2.05051836e-01 2.05205094e-01 2.05358103e-01 2.05510864e-01 + 2.05663377e-01 2.05815642e-01 2.05967660e-01 2.06119432e-01 2.06270956e-01 + 2.06422235e-01 2.06573268e-01 2.06724055e-01 2.06874598e-01 2.07024895e-01 + 2.07174948e-01 2.07324757e-01 2.07474323e-01 2.07623645e-01 2.07772725e-01 + 2.07921561e-01 2.08070156e-01 2.08218508e-01 2.08366619e-01 2.08514489e-01 + 2.08662119e-01 2.08809507e-01 2.08956656e-01 2.09103565e-01 2.09250235e-01 + 2.09396665e-01 2.09542857e-01 2.09688811e-01 2.09834526e-01 2.09980005e-01 + 2.10125246e-01 2.10270250e-01 2.10415017e-01 2.10559549e-01 2.10703844e-01 + 2.10847905e-01 2.10991730e-01 2.11135320e-01 2.11278676e-01 2.11421799e-01 + 2.11564687e-01 2.11707342e-01 2.11849765e-01 2.11991955e-01 2.12133912e-01 + 2.12275638e-01 2.12417132e-01 2.12558395e-01 2.12699428e-01 2.12840230e-01 + 2.12980802e-01 2.13121144e-01 2.13261257e-01 2.13401141e-01 2.13540796e-01 + 2.13680223e-01 2.13819422e-01 2.13958394e-01 2.14097138e-01 2.14235656e-01 + 2.14373947e-01 2.14512011e-01 2.14649851e-01 2.14787464e-01 2.14924853e-01 + 2.15062017e-01 2.15198957e-01 2.15335672e-01 2.15472164e-01 2.15608433e-01 + 2.15744479e-01 2.15880302e-01 2.16015903e-01 2.16151282e-01 2.16286440e-01 + 2.16421376e-01 2.16556092e-01 2.16690587e-01 2.16824862e-01 2.16958918e-01 + 2.17092754e-01 2.17226371e-01 2.17359769e-01 2.17492949e-01 2.17625911e-01 + 2.17758656e-01 2.17891183e-01 2.18023493e-01 2.18155587e-01 2.18287464e-01 + 2.18419126e-01 2.18550572e-01 2.18681803e-01 2.18812819e-01 2.18943621e-01 + 2.19074208e-01 2.19204582e-01 2.19334742e-01 2.19464690e-01 2.19594424e-01 + 2.19723946e-01 2.19853257e-01 2.19982355e-01 2.20111242e-01 2.20239919e-01 + 2.20368384e-01 2.20496640e-01 2.20624685e-01 2.20752521e-01 2.20880148e-01 + 2.21007566e-01 2.21134775e-01 2.21261776e-01 2.21388569e-01 2.21515155e-01 + 2.21641533e-01 2.21767705e-01 2.21893670e-01 2.22019429e-01 2.22144983e-01 + 2.22270331e-01 2.22395473e-01 2.22520411e-01 2.22645145e-01 2.22769675e-01 + 2.22894000e-01 2.23018123e-01 2.23142042e-01 2.23265759e-01 2.23389273e-01 + 2.23512586e-01 2.23635696e-01 2.23758606e-01 2.23881314e-01 2.24003822e-01 + 2.24126129e-01 2.24248236e-01 2.24370144e-01 2.24491852e-01 2.24613362e-01 + 2.24734673e-01 2.24855785e-01 2.24976700e-01 2.25097417e-01 2.25217936e-01 + 2.25338259e-01 2.25458385e-01 2.25578315e-01 2.25698048e-01 2.25817587e-01 + 2.25936930e-01 2.26056078e-01 2.26175031e-01 2.26293790e-01 2.26412355e-01 + 2.26530727e-01 2.26648905e-01 2.26766890e-01 2.26884683e-01 2.27002283e-01 + 2.27119691e-01 2.27236908e-01 2.27353934e-01 2.27470768e-01 2.27587412e-01 + 2.27703865e-01 2.27820129e-01 2.27936203e-01 2.28052087e-01 2.28167783e-01 + 2.28283290e-01 2.28398608e-01 2.28513738e-01 2.28628681e-01 2.28743437e-01 + 2.28858005e-01 2.28972386e-01 2.29086581e-01 2.29200591e-01 2.29314414e-01 + 2.29428052e-01 2.29541504e-01 2.29654772e-01 2.29767856e-01 2.29880755e-01 + 2.29993470e-01 2.30106002e-01 2.30218351e-01 2.30330517e-01 2.30442500e-01 + 2.30554301e-01 2.30665921e-01 2.30777358e-01 2.30888614e-01 2.30999690e-01 + 2.31110584e-01 2.31221299e-01 2.31331833e-01 2.31442188e-01 2.31552363e-01 + 2.31662359e-01 2.31772176e-01 2.31881815e-01 2.31991276e-01 2.32100559e-01 + 2.32209665e-01 2.32318593e-01 2.32427344e-01 2.32535919e-01 2.32644318e-01 + 2.32752540e-01 2.32860587e-01 2.32968459e-01 2.33076155e-01 2.33183677e-01 + 2.33291025e-01 2.33398198e-01 2.33505198e-01 2.33612024e-01 2.33718676e-01 + 2.33825157e-01 2.33931464e-01 2.34037599e-01 2.34143562e-01 2.34249354e-01 + 2.34354974e-01 2.34460423e-01 2.34565702e-01 2.34670810e-01 2.34775748e-01 + 2.34880516e-01 2.34985114e-01 2.35089544e-01 2.35193804e-01 2.35297896e-01 + 2.35401819e-01 2.35505574e-01 2.35609162e-01 2.35712582e-01 2.35815835e-01 + 2.35918921e-01 2.36021841e-01 2.36124594e-01 2.36227182e-01 2.36329603e-01 + 2.36431860e-01 2.36533951e-01 2.36635878e-01 2.36737640e-01 2.36839238e-01 + 2.36940672e-01 2.37041942e-01 2.37143049e-01 2.37243994e-01 2.37344775e-01 + 2.37445394e-01 2.37545851e-01 2.37646146e-01 2.37746279e-01 2.37846251e-01 + 2.37946062e-01 2.38045713e-01 2.38145203e-01 2.38244533e-01 2.38343703e-01 + 2.38442713e-01 2.38541565e-01 2.38640257e-01 2.38738790e-01 2.38837166e-01 + 2.38935383e-01 2.39033442e-01 2.39131344e-01 2.39229088e-01 2.39326676e-01 + 2.39424106e-01 2.39521381e-01 2.39618499e-01 2.39715461e-01 2.39812268e-01 + 2.39908919e-01 2.40005416e-01 2.40101757e-01 2.40197944e-01 2.40293977e-01 + 2.40389856e-01 2.40485582e-01 2.40581154e-01 2.40676573e-01 2.40771839e-01 + 2.40866953e-01 2.40961914e-01 2.41056724e-01 2.41151382e-01 2.41245888e-01 + 2.41340243e-01 2.41434447e-01 2.41528501e-01 2.41622404e-01 2.41716158e-01 + 2.41809761e-01 2.41903215e-01 2.41996520e-01 2.42089675e-01 2.42182682e-01 + 2.42275541e-01 2.42368251e-01 2.42460813e-01 2.42553228e-01 2.42645496e-01 + 2.42737616e-01 2.42829589e-01 2.42921416e-01 2.43013097e-01 2.43104631e-01 + 2.43196020e-01 2.43287263e-01 2.43378361e-01 2.43469314e-01 2.43560122e-01 + 2.43650786e-01 2.43741306e-01 2.43831681e-01 2.43921913e-01 2.44012001e-01 + 2.44101947e-01 2.44191749e-01 2.44281409e-01 2.44370926e-01 2.44460302e-01 + 2.44549535e-01 2.44638627e-01 2.44727577e-01 2.44816386e-01 2.44905055e-01 + 2.44993583e-01 2.45081970e-01 2.45170218e-01 2.45258325e-01 2.45346293e-01 + 2.45434122e-01 2.45521812e-01 2.45609362e-01 2.45696775e-01 2.45784049e-01 + 2.45871185e-01 2.45958183e-01 2.46045043e-01 2.46131766e-01 2.46218353e-01 + 2.46304802e-01 2.46391115e-01 2.46477291e-01 2.46563332e-01 2.46649236e-01 + 2.46735006e-01 2.46820639e-01 2.46906138e-01 2.46991502e-01 2.47076731e-01 + 2.47161826e-01 2.47246787e-01 2.47331614e-01 2.47416307e-01 2.47500867e-01 + 2.47585294e-01 2.47669588e-01 2.47753749e-01 2.47837778e-01 2.47921675e-01 + 2.48005440e-01 2.48089073e-01 2.48172575e-01 2.48255945e-01 2.48339185e-01 + 2.48422294e-01 2.48505272e-01 2.48588120e-01 2.48670839e-01 2.48753427e-01 + 2.48835886e-01 2.48918215e-01 2.49000416e-01 2.49082487e-01 2.49164431e-01 + 2.49246245e-01 2.49327932e-01 2.49409490e-01 2.49490922e-01 2.49572225e-01 + 2.49653402e-01 2.49734451e-01 2.49815374e-01 2.49896170e-01 2.49976840e-01 + 2.50057384e-01 2.50137802e-01 2.50218094e-01 2.50298261e-01 2.50378303e-01 + 2.50458221e-01 2.50538013e-01 2.50617681e-01 2.50697225e-01 2.50776645e-01 + 2.50855941e-01 2.50935113e-01 2.51014162e-01 2.51093088e-01 2.51171892e-01 + 2.51250572e-01 2.51329130e-01 2.51407566e-01 2.51485880e-01 2.51564073e-01 + 2.51642143e-01 2.51720093e-01 2.51797921e-01 2.51875629e-01 2.51953216e-01 + 2.52030682e-01 2.52108028e-01 2.52185254e-01 2.52262361e-01 2.52339348e-01 + 2.52416215e-01 2.52492964e-01 2.52569593e-01 2.52646104e-01 2.52722497e-01 + 2.52798771e-01 2.52874927e-01 2.52950965e-01 2.53026886e-01 2.53102689e-01 + 2.53178375e-01 2.53253944e-01 2.53329397e-01 2.53404733e-01 2.53479952e-01 + 2.53555056e-01 2.53630043e-01 2.53704915e-01 2.53779671e-01 2.53854312e-01 + 2.53928839e-01 2.54003250e-01 2.54077546e-01 2.54151728e-01 2.54225796e-01 + 2.54299750e-01 2.54373590e-01 2.54447316e-01 2.54520930e-01 2.54594429e-01 + 2.54667816e-01 2.54741090e-01 2.54814252e-01 2.54887301e-01 2.54960238e-01 + 2.55033063e-01 2.55105776e-01 2.55178378e-01 2.55250868e-01 2.55323247e-01 + 2.55395516e-01 2.55467673e-01 2.55539720e-01 2.55611657e-01 2.55683483e-01 + 2.55755200e-01 2.55826806e-01 2.55898304e-01 2.55969692e-01 2.56040970e-01 + 2.56112140e-01 2.56183201e-01 2.56254154e-01 2.56324998e-01 2.56395734e-01 + 2.56466362e-01 2.56536882e-01 2.56607295e-01 2.56677600e-01 2.56747798e-01 + 2.56817889e-01 2.56887874e-01 2.56957752e-01 2.57027523e-01 2.57097188e-01 + 2.57166747e-01 2.57236200e-01 2.57305548e-01 2.57374790e-01 2.57443927e-01 + 2.57512959e-01 2.57581886e-01 2.57650709e-01 2.57719427e-01 2.57788040e-01 + 2.57856550e-01 2.57924955e-01 2.57993257e-01 2.58061455e-01 2.58129550e-01 + 2.58197542e-01 2.58265431e-01 2.58333217e-01 2.58400900e-01 2.58468481e-01 + 2.58535960e-01 2.58603336e-01 2.58670611e-01 2.58737784e-01 2.58804856e-01 + 2.58871826e-01 2.58938695e-01 2.59005463e-01 2.59072131e-01 2.59138697e-01 + 2.59205164e-01 2.59271530e-01 2.59337796e-01 2.59403962e-01 2.59470029e-01 + 2.59535996e-01 2.59601864e-01 2.59667633e-01 2.59733302e-01 2.59798873e-01 + 2.59864345e-01 2.59929719e-01 2.59994995e-01 2.60060172e-01 2.60125252e-01 + 2.60190234e-01 2.60255118e-01 2.60319905e-01 2.60384595e-01 2.60449188e-01 + 2.60513684e-01 2.60578083e-01 2.60642386e-01 2.60706593e-01 2.60770703e-01 + 2.60834718e-01 2.60898636e-01 2.60962459e-01 2.61026187e-01 2.61089819e-01 + 2.61153356e-01 2.61216799e-01 2.61280146e-01 2.61343399e-01 2.61406557e-01 + 2.61469622e-01 2.61532592e-01 2.61595468e-01 2.61658250e-01 2.61720939e-01 + 2.61783535e-01 2.61846037e-01 2.61908446e-01 2.61970763e-01 2.62032986e-01 + 2.62095117e-01 2.62157156e-01 2.62219102e-01 2.62280956e-01 2.62342719e-01 + 2.62404389e-01 2.62465968e-01 2.62527456e-01 2.62588852e-01 2.62650158e-01 + 2.62711372e-01 2.62772496e-01 2.62833529e-01 2.62894471e-01 2.62955324e-01 + 2.63016086e-01 2.63076758e-01 2.63137341e-01 2.63197833e-01 2.63258237e-01 + 2.63318551e-01 2.63378776e-01 2.63438912e-01 2.63498959e-01 2.63558918e-01 + 2.63618788e-01 2.63678569e-01 2.63738263e-01 2.63797868e-01 2.63857386e-01 + 2.63916816e-01 2.63976158e-01 2.64035413e-01 2.64094581e-01 2.64153661e-01 + 2.64212655e-01 2.64271562e-01 2.64330382e-01 2.64389116e-01 2.64447763e-01 + 2.64506324e-01 2.64564800e-01 2.64623189e-01 2.64681493e-01 2.64739711e-01 + 2.64797844e-01 2.64855892e-01 2.64913854e-01 2.64971732e-01 2.65029524e-01 + 2.65087233e-01 2.65144856e-01 2.65202396e-01 2.65259851e-01 2.65317222e-01 + 2.65374509e-01 2.65431713e-01 2.65488833e-01 2.65545869e-01 2.65602822e-01 + 2.65659692e-01 2.65716480e-01 2.65773184e-01 2.65829805e-01 2.65886344e-01 + 2.65942801e-01 2.65999175e-01 2.66055468e-01 2.66111678e-01 2.66167806e-01 + 2.66223853e-01 2.66279819e-01 2.66335703e-01 2.66391505e-01 2.66447227e-01 + 2.66502868e-01 2.66558427e-01 2.66613907e-01 2.66669305e-01 2.66724624e-01 + 2.66779862e-01 2.66835020e-01 2.66890098e-01 2.66945096e-01 2.67000015e-01 + 2.67054854e-01 2.67109613e-01 2.67164294e-01 2.67218895e-01 2.67273418e-01 + 2.67327861e-01 2.67382226e-01 2.67436512e-01 2.67490720e-01 2.67544850e-01 + 2.67598902e-01 2.67652875e-01 2.67706771e-01 2.67760589e-01 2.67814330e-01 + 2.67867993e-01 2.67921578e-01 2.67975087e-01 2.68028519e-01 2.68081873e-01 + 2.68135151e-01 2.68188352e-01 2.68241477e-01 2.68294526e-01 2.68347498e-01 + 2.68400394e-01 2.68453214e-01 2.68505959e-01 2.68558628e-01 2.68611221e-01 + 2.68663738e-01 2.68716181e-01 2.68768548e-01 2.68820841e-01 2.68873058e-01 + 2.68925201e-01 2.68977269e-01 2.69029263e-01 2.69081182e-01 2.69133027e-01 + 2.69184798e-01 2.69236495e-01 2.69288118e-01 2.69339668e-01 2.69391143e-01 + 2.69442546e-01 2.69493875e-01 2.69545131e-01 2.69596314e-01 2.69647424e-01 + 2.69698461e-01 2.69749425e-01 2.69800317e-01 2.69851137e-01 2.69901884e-01 + 2.69952559e-01 2.70003162e-01 2.70053693e-01 2.70104153e-01 2.70154540e-01 + 2.70204856e-01 2.70255101e-01 2.70305274e-01 2.70355377e-01 2.70405408e-01 + 2.70455368e-01 2.70505258e-01 2.70555077e-01 2.70604825e-01 2.70654503e-01 + 2.70704110e-01 2.70753648e-01 2.70803115e-01 2.70852513e-01 2.70901840e-01 + 2.70951098e-01 2.71000287e-01 2.71049406e-01 2.71098455e-01 2.71147436e-01 + 2.71196347e-01 2.71245190e-01 2.71293963e-01 2.71342668e-01 2.71391304e-01 + 2.71439872e-01 2.71488372e-01 2.71536803e-01 2.71585166e-01 2.71633461e-01 + 2.71681688e-01 2.71729848e-01 2.71777939e-01 2.71825964e-01 2.71873921e-01 + 2.71921810e-01 2.71969632e-01 2.72017388e-01 2.72065076e-01 2.72112698e-01 + 2.72160252e-01 2.72207741e-01 2.72255162e-01 2.72302518e-01 2.72349807e-01 + 2.72397030e-01 2.72444187e-01 2.72491278e-01 2.72538303e-01 2.72585263e-01 + 2.72632157e-01 2.72678985e-01 2.72725748e-01 2.72772446e-01 2.72819079e-01 + 2.72865647e-01 2.72912150e-01 2.72958588e-01 2.73004962e-01 2.73051271e-01 + 2.73097516e-01 2.73143696e-01 2.73189812e-01 2.73235864e-01 2.73281852e-01 + 2.73327776e-01 2.73373636e-01 2.73419432e-01 2.73465166e-01 2.73510835e-01 + 2.73556441e-01 2.73601984e-01 2.73647464e-01 2.73692881e-01 2.73738235e-01 + 2.73783526e-01 2.73828755e-01 2.73873921e-01 2.73919024e-01 2.73964065e-01 + 2.74009044e-01 2.74053961e-01 2.74098815e-01 2.74143608e-01 2.74188339e-01 + 2.74233008e-01 2.74277616e-01 2.74322162e-01 2.74366646e-01 2.74411070e-01 + 2.74455432e-01 2.74499733e-01 2.74543973e-01 2.74588152e-01 2.74632270e-01 + 2.74676328e-01 2.74720325e-01 2.74764262e-01 2.74808138e-01 2.74851954e-01 + 2.74895710e-01 2.74939406e-01 2.74983042e-01 2.75026618e-01 2.75070135e-01 + 2.75113591e-01 2.75156988e-01 2.75200326e-01 2.75243604e-01 2.75286824e-01 + 2.75329984e-01 2.75373085e-01 2.75416127e-01 2.75459110e-01 2.75502034e-01 + 2.75544900e-01 2.75587707e-01 2.75630456e-01 2.75673147e-01 2.75715779e-01 + 2.75758353e-01 2.75800869e-01 2.75843328e-01 2.75885728e-01 2.75928070e-01 + 2.75970355e-01 2.76012583e-01 2.76054753e-01 2.76096866e-01 2.76138921e-01 + 2.76180919e-01 2.76222860e-01 2.76264745e-01 2.76306572e-01 2.76348342e-01 + 2.76390056e-01 2.76431714e-01 2.76473315e-01 2.76514859e-01 2.76556347e-01 + 2.76597779e-01 2.76639155e-01 2.76680475e-01 2.76721739e-01 2.76762947e-01 + 2.76804100e-01 2.76845197e-01 2.76886238e-01 2.76927224e-01 2.76968154e-01 + 2.77009030e-01 2.77049850e-01 2.77090615e-01 2.77131325e-01 2.77171980e-01 + 2.77212581e-01 2.77253126e-01 2.77293617e-01 2.77334054e-01 2.77374436e-01 + 2.77414764e-01 2.77455038e-01 2.77495257e-01 2.77535423e-01 2.77575534e-01 + 2.77615592e-01 2.77655596e-01 2.77695546e-01 2.77735443e-01 2.77775286e-01 + 2.77815076e-01 2.77854812e-01 2.77894495e-01 2.77934125e-01 2.77973702e-01 + 2.78013226e-01 2.78052697e-01 2.78092115e-01 2.78131481e-01 2.78170794e-01 + 2.78210054e-01 2.78249262e-01 2.78288418e-01 2.78327521e-01 2.78366572e-01 + 2.78405571e-01 2.78444519e-01 2.78483414e-01 2.78522257e-01 2.78561049e-01 + 2.78599789e-01 2.78638477e-01 2.78677114e-01 2.78715700e-01 2.78754234e-01 + 2.78792717e-01 2.78831149e-01 2.78869530e-01 2.78907859e-01 2.78946138e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 diff --git a/potentials/FeCH_BOP_II.poly b/potentials/FeCH_BOP_II.poly new file mode 100644 index 0000000000000000000000000000000000000000..ed0b771887b6ffe22e406dabefb3bf7adbf99043 --- /dev/null +++ b/potentials/FeCH_BOP_II.poly @@ -0,0 +1,33618 @@ +# DATE 2018-12-18 CONTRIBUTOR: X. W. Zhou, xzhou@sandia.gov CITATION: X. W. Zhou, +# M. E. Foster, J. A. Ronevich, and C. W San Marchi, J. Comp. Chem., 41, 1299 (2020). +# M. Muller, P. Erhart, and K. Albe, J. Phys.: Condens. Matter, 19, 326220 (2007). +# D. W. Brenner, Phys. Rev. B, 42, 9458 (1990). N. Juslin et al, J. Appl. Phys., +# 98, 123520 (2005). P. Kuopanportti et al, Comp. Mater. Sci., 111, 525 (2016). +# K. O. E. Hendriksson, C. Bjorkas, and K. Nordlund, J. Phys.: Condens. Matter, +# 25, 445401 (2013). + 3 3 + 26. 5.58500000e+01 Fe + 6. 1.20100000e+01 C + 1. 1.01000000e+00 H + 2000 2000 4000 2.00000000e+02 + 3.35000000e+00 1.00000000e+00 + 2.00000000e+00 1.00000000e+00 + 1.70000000e+00 1.00000000e+00 + 2.80000000e+00 1.00000000e+00 + 2.69660000e+00 1.00000000e+00 + 1.80000000e+00 1.00000000e+00 + 9.05461601e+06 5.36400429e+06 2.63461103e+06 1.72573643e+06 1.27196396e+06 + 1.00021130e+06 8.19451798e+05 6.90674672e+05 5.94375068e+05 5.19717409e+05 + 4.60200739e+05 4.11688423e+05 3.71423001e+05 3.37495720e+05 3.08543417e+05 + 2.83566642e+05 2.61815992e+05 2.42718557e+05 2.25828890e+05 2.10795455e+05 + 1.97337145e+05 1.85226505e+05 1.74277539e+05 1.64336688e+05 1.55276068e+05 + 1.46988336e+05 1.39382733e+05 1.32382007e+05 1.25920006e+05 1.19939754e+05 + 1.14391924e+05 1.09233599e+05 1.04427270e+05 9.99400149e+04 9.57428218e+04 + 9.18100283e+04 8.81188552e+04 8.46490156e+04 8.13823855e+04 7.83027252e+04 + 7.53954428e+04 7.26473922e+04 7.00467000e+04 6.75826165e+04 6.52453872e+04 + 6.30261416e+04 6.09167962e+04 5.89099701e+04 5.69989113e+04 5.51774319e+04 + 5.34398509e+04 5.17809444e+04 5.01959007e+04 4.86802814e+04 4.72299860e+04 + 4.58412213e+04 4.45104728e+04 4.32344809e+04 4.20102176e+04 4.08348673e+04 + 3.97058085e+04 3.86205977e+04 3.75769545e+04 3.65727491e+04 3.56059895e+04 + 3.46748114e+04 3.37774676e+04 3.29123197e+04 3.20778299e+04 3.12725529e+04 + 3.04951300e+04 2.97442821e+04 2.90188046e+04 2.83175618e+04 2.76394824e+04 + 2.69835548e+04 2.63488233e+04 2.57343842e+04 2.51393827e+04 2.45630092e+04 + 2.40044967e+04 2.34631182e+04 2.29381839e+04 2.24290391e+04 2.19350619e+04 + 2.14556614e+04 2.09902755e+04 2.05383695e+04 2.00994344e+04 1.96729855e+04 + 1.92585606e+04 1.88557194e+04 1.84640414e+04 1.80831257e+04 1.77125894e+04 + 1.73520664e+04 1.70012072e+04 1.66596774e+04 1.63271571e+04 1.60033402e+04 + 1.56879336e+04 1.53806565e+04 1.50812401e+04 1.47894263e+04 1.45049679e+04 + 1.42276276e+04 1.39571778e+04 1.36933997e+04 1.34360835e+04 1.31850274e+04 + 1.29400376e+04 1.27009275e+04 1.24675180e+04 1.22396366e+04 1.20171172e+04 + 1.17998000e+04 1.15875312e+04 1.13801624e+04 1.11775509e+04 1.09795589e+04 + 1.07860536e+04 1.05969071e+04 1.04119957e+04 1.02312003e+04 1.00544059e+04 + 9.88150120e+03 9.71237907e+03 9.54693582e+03 9.38507131e+03 9.22668873e+03 + 9.07169452e+03 8.91999818e+03 8.77151221e+03 8.62615193e+03 8.48383542e+03 + 8.34448337e+03 8.20801901e+03 8.07436802e+03 7.94345839e+03 7.81522038e+03 + 7.68958642e+03 7.56649102e+03 7.44587069e+03 7.32766388e+03 7.21181093e+03 + 7.09825393e+03 6.98693673e+03 6.87780486e+03 6.77080544e+03 6.66588714e+03 + 6.56300015e+03 6.46209609e+03 6.36312798e+03 6.26605019e+03 6.17081839e+03 + 6.07738950e+03 5.98572168e+03 5.89577424e+03 5.80750762e+03 5.72088339e+03 + 5.63586415e+03 5.55241353e+03 5.47049616e+03 5.39007764e+03 5.31112448e+03 + 5.23360410e+03 5.15748479e+03 5.08273568e+03 5.00932671e+03 4.93722863e+03 + 4.86641295e+03 4.79685190e+03 4.72851846e+03 4.66138630e+03 4.59542975e+03 + 4.53062382e+03 4.46694413e+03 4.40436693e+03 4.34286908e+03 4.28242800e+03 + 4.22302168e+03 4.16462866e+03 4.10722802e+03 4.05079934e+03 3.99532269e+03 + 3.94077867e+03 3.88714830e+03 3.83441308e+03 3.78255498e+03 3.73155636e+03 + 3.68140002e+03 3.63206918e+03 3.58354745e+03 3.53581881e+03 3.48886764e+03 + 3.44267867e+03 3.39723699e+03 3.35252804e+03 3.30853758e+03 3.26525173e+03 + 3.22265689e+03 3.18073979e+03 3.13948747e+03 3.09888724e+03 3.05892672e+03 + 3.01959379e+03 2.98087661e+03 2.94276360e+03 2.90524344e+03 2.86830507e+03 + 2.83193765e+03 2.79613060e+03 2.76087356e+03 2.72615640e+03 2.69196921e+03 + 2.65830228e+03 2.62514615e+03 2.59249151e+03 2.56032930e+03 2.52865060e+03 + 2.49744673e+03 2.46670917e+03 2.43642957e+03 2.40659978e+03 2.37721180e+03 + 2.34825782e+03 2.31973016e+03 2.29162133e+03 2.26392397e+03 2.23663090e+03 + 2.20973506e+03 2.18322956e+03 2.15710762e+03 2.13136263e+03 2.10598809e+03 + 2.08097764e+03 2.05632506e+03 2.03202423e+03 2.00806917e+03 1.98445402e+03 + 1.96117302e+03 1.93822056e+03 1.91559109e+03 1.89327921e+03 1.87127961e+03 + 1.84958709e+03 1.82819654e+03 1.80710296e+03 1.78630146e+03 1.76578720e+03 + 1.74555549e+03 1.72560169e+03 1.70592126e+03 1.68650975e+03 1.66736279e+03 + 1.64847611e+03 1.62984549e+03 1.61146682e+03 1.59333605e+03 1.57544921e+03 + 1.55780240e+03 1.54039180e+03 1.52321367e+03 1.50626431e+03 1.48954012e+03 + 1.47303755e+03 1.45675312e+03 1.44068341e+03 1.42482506e+03 1.40917478e+03 + 1.39372935e+03 1.37848557e+03 1.36344035e+03 1.34859060e+03 1.33393334e+03 + 1.31946560e+03 1.30518449e+03 1.29108716e+03 1.27717082e+03 1.26343271e+03 + 1.24987014e+03 1.23648046e+03 1.22326106e+03 1.21020939e+03 1.19732293e+03 + 1.18459921e+03 1.17203582e+03 1.15963035e+03 1.14738048e+03 1.13528390e+03 + 1.12333834e+03 1.11154159e+03 1.09989146e+03 1.08838579e+03 1.07702249e+03 + 1.06579947e+03 1.05471469e+03 1.04376616e+03 1.03295189e+03 1.02226995e+03 + 1.01171844e+03 1.00129547e+03 9.90999221e+02 9.80827866e+02 9.70779627e+02 + 9.60852753e+02 9.51045522e+02 9.41356240e+02 9.31783240e+02 9.22324884e+02 + 9.12979560e+02 9.03745682e+02 8.94621693e+02 8.85606056e+02 8.76697264e+02 + 8.67893832e+02 8.59194298e+02 8.50597227e+02 8.42101203e+02 8.33704837e+02 + 8.25406759e+02 8.17205622e+02 8.09100100e+02 8.01088890e+02 7.93170707e+02 + 7.85344289e+02 7.77608391e+02 7.69961790e+02 7.62403281e+02 7.54931679e+02 + 7.47545817e+02 7.40244545e+02 7.33026733e+02 7.25891267e+02 7.18837051e+02 + 7.11863007e+02 7.04968070e+02 6.98151197e+02 6.91411355e+02 6.84747531e+02 + 6.78158727e+02 6.71643958e+02 6.65202257e+02 6.58832668e+02 6.52534254e+02 + 6.46306089e+02 6.40147261e+02 6.34056873e+02 6.28034042e+02 6.22077896e+02 + 6.16187577e+02 6.10362242e+02 6.04601056e+02 5.98903202e+02 5.93267870e+02 + 5.87694264e+02 5.82181602e+02 5.76729110e+02 5.71336026e+02 5.66001601e+02 + 5.60725097e+02 5.55505783e+02 5.50342944e+02 5.45235871e+02 5.40183867e+02 + 5.35186247e+02 5.30242332e+02 5.25351455e+02 5.20512960e+02 5.15726197e+02 + 5.10990527e+02 5.06305322e+02 5.01669960e+02 4.97083829e+02 4.92546326e+02 + 4.88056856e+02 4.83614833e+02 4.79219679e+02 4.74870824e+02 4.70567705e+02 + 4.66309770e+02 4.62096471e+02 4.57927271e+02 4.53801637e+02 4.49719046e+02 + 4.45678982e+02 4.41680935e+02 4.37724403e+02 4.33808890e+02 4.29933908e+02 + 4.26098976e+02 4.22303617e+02 4.18547364e+02 4.14829753e+02 4.11150329e+02 + 4.07508641e+02 4.03904247e+02 4.00336708e+02 3.96805592e+02 3.93310474e+02 + 3.89850933e+02 3.86426555e+02 3.83036929e+02 3.79681654e+02 3.76360330e+02 + 3.73072565e+02 3.69817971e+02 3.66596165e+02 3.63406770e+02 3.60249413e+02 + 3.57123727e+02 3.54029350e+02 3.50965922e+02 3.47933091e+02 3.44930508e+02 + 3.41957830e+02 3.39014715e+02 3.36100830e+02 3.33215844e+02 3.30359429e+02 + 3.27531263e+02 3.24731029e+02 3.21958412e+02 3.19213102e+02 3.16494793e+02 + 3.13803184e+02 3.11137975e+02 3.08498872e+02 3.05885585e+02 3.03297826e+02 + 3.00735313e+02 2.98197764e+02 2.95684905e+02 2.93196463e+02 2.90732167e+02 + 2.88291753e+02 2.85874957e+02 2.83481521e+02 2.81111187e+02 2.78763704e+02 + 2.76438822e+02 2.74136293e+02 2.71855875e+02 2.69597327e+02 2.67360411e+02 + 2.65144894e+02 2.62950542e+02 2.60777127e+02 2.58624423e+02 2.56492207e+02 + 2.54380259e+02 2.52288359e+02 2.50216294e+02 2.48163850e+02 2.46130818e+02 + 2.44116990e+02 2.42122161e+02 2.40146129e+02 2.38188694e+02 2.36249657e+02 + 2.34328824e+02 2.32426002e+02 2.30541001e+02 2.28673631e+02 2.26823707e+02 + 2.24991045e+02 2.23175464e+02 2.21376784e+02 2.19594827e+02 2.17829418e+02 + 2.16080385e+02 2.14347555e+02 2.12630760e+02 2.10929833e+02 2.09244609e+02 + 2.07574923e+02 2.05920616e+02 2.04281526e+02 2.02657498e+02 2.01048375e+02 + 1.99454003e+02 1.97874230e+02 1.96308905e+02 1.94757881e+02 1.93221009e+02 + 1.91698145e+02 1.90189145e+02 1.88693868e+02 1.87212173e+02 1.85743920e+02 + 1.84288974e+02 1.82847199e+02 1.81418460e+02 1.80002626e+02 1.78599565e+02 + 1.77209147e+02 1.75831246e+02 1.74465733e+02 1.73112485e+02 1.71771377e+02 + 1.70442287e+02 1.69125095e+02 1.67819680e+02 1.66525924e+02 1.65243711e+02 + 1.63972925e+02 1.62713451e+02 1.61465177e+02 1.60227990e+02 1.59001781e+02 + 1.57786440e+02 1.56581858e+02 1.55387929e+02 1.54204547e+02 1.53031608e+02 + 1.51869008e+02 1.50716645e+02 1.49574417e+02 1.48442226e+02 1.47319971e+02 + 1.46207555e+02 1.45104882e+02 1.44011854e+02 1.42928379e+02 1.41854362e+02 + 1.40789710e+02 1.39734332e+02 1.38688137e+02 1.37651036e+02 1.36622940e+02 + 1.35603760e+02 1.34593412e+02 1.33591807e+02 1.32598863e+02 1.31614494e+02 + 1.30638617e+02 1.29671151e+02 1.28712014e+02 1.27761125e+02 1.26818405e+02 + 1.25883774e+02 1.24957157e+02 1.24038474e+02 1.23127650e+02 1.22224609e+02 + 1.21329277e+02 1.20441579e+02 1.19561443e+02 1.18688797e+02 1.17823568e+02 + 1.16965686e+02 1.16115081e+02 1.15271684e+02 1.14435425e+02 1.13606238e+02 + 1.12784054e+02 1.11968807e+02 1.11160433e+02 1.10358864e+02 1.09564038e+02 + 1.08775890e+02 1.07994357e+02 1.07219377e+02 1.06450888e+02 1.05688829e+02 + 1.04933139e+02 1.04183758e+02 1.03440628e+02 1.02703689e+02 1.01972884e+02 + 1.01248155e+02 1.00529444e+02 9.98166971e+01 9.91098568e+01 9.84088685e+01 + 9.77136777e+01 9.70242302e+01 9.63404726e+01 9.56623521e+01 9.49898161e+01 + 9.43228130e+01 9.36612913e+01 9.30052002e+01 9.23544895e+01 9.17091095e+01 + 9.10690107e+01 9.04341445e+01 8.98044625e+01 8.91799170e+01 8.85604607e+01 + 8.79460467e+01 8.73366286e+01 8.67321606e+01 8.61325973e+01 8.55378935e+01 + 8.49480049e+01 8.43628874e+01 8.37824972e+01 8.32067912e+01 8.26357266e+01 + 8.20692610e+01 8.15073526e+01 8.09499598e+01 8.03970415e+01 7.98485571e+01 + 7.93044662e+01 7.87647290e+01 7.82293059e+01 7.76981580e+01 7.71712464e+01 + 7.66485329e+01 7.61299794e+01 7.56155485e+01 7.51052029e+01 7.45989058e+01 + 7.40966207e+01 7.35983115e+01 7.31039424e+01 7.26134780e+01 7.21268833e+01 + 7.16441236e+01 7.11651643e+01 7.06899717e+01 7.02185118e+01 6.97507513e+01 + 6.92866573e+01 6.88261968e+01 6.83693376e+01 6.79160476e+01 6.74662949e+01 + 6.70200480e+01 6.65772759e+01 6.61379476e+01 6.57020326e+01 6.52695006e+01 + 6.48403216e+01 6.44144660e+01 6.39919043e+01 6.35726074e+01 6.31565465e+01 + 6.27436931e+01 6.23340188e+01 6.19274956e+01 6.15240959e+01 6.11237920e+01 + 6.07265569e+01 6.03323636e+01 5.99411853e+01 5.95529958e+01 5.91677686e+01 + 5.87854781e+01 5.84060984e+01 5.80296042e+01 5.76559702e+01 5.72851715e+01 + 5.69171834e+01 5.65519814e+01 5.61895413e+01 5.58298391e+01 5.54728509e+01 + 5.51185533e+01 5.47669228e+01 5.44179365e+01 5.40715713e+01 5.37278046e+01 + 5.33866140e+01 5.30479772e+01 5.27118722e+01 5.23782772e+01 5.20471704e+01 + 5.17185306e+01 5.13923365e+01 5.10685671e+01 5.07472016e+01 5.04282193e+01 + 5.01115998e+01 4.97973230e+01 4.94853687e+01 4.91757171e+01 4.88683486e+01 + 4.85632436e+01 4.82603829e+01 4.79597473e+01 4.76613179e+01 4.73650760e+01 + 4.70710029e+01 4.67790803e+01 4.64892899e+01 4.62016137e+01 4.59160336e+01 + 4.56325321e+01 4.53510916e+01 4.50716945e+01 4.47943238e+01 4.45189623e+01 + 4.42455931e+01 4.39741994e+01 4.37047647e+01 4.34372724e+01 4.31717063e+01 + 4.29080503e+01 4.26462882e+01 4.23864043e+01 4.21283829e+01 4.18722084e+01 + 4.16178654e+01 4.13653386e+01 4.11146129e+01 4.08656732e+01 4.06185049e+01 + 4.03730930e+01 4.01294231e+01 3.98874807e+01 3.96472515e+01 3.94087213e+01 + 3.91718761e+01 3.89367019e+01 3.87031849e+01 3.84713115e+01 3.82410682e+01 + 3.80124414e+01 3.77854180e+01 3.75599847e+01 3.73361285e+01 3.71138365e+01 + 3.68930959e+01 3.66738939e+01 3.64562179e+01 3.62400556e+01 3.60253946e+01 + 3.58122225e+01 3.56005273e+01 3.53902971e+01 3.51815197e+01 3.49741836e+01 + 3.47682769e+01 3.45637881e+01 3.43607057e+01 3.41590183e+01 3.39587147e+01 + 3.37597837e+01 3.35622142e+01 3.33659952e+01 3.31711159e+01 3.29775655e+01 + 3.27853334e+01 3.25944089e+01 3.24047816e+01 3.22164410e+01 3.20293769e+01 + 3.18435792e+01 3.16590376e+01 3.14757421e+01 3.12936829e+01 3.11128501e+01 + 3.09332339e+01 3.07548247e+01 3.05776129e+01 3.04015890e+01 3.02267437e+01 + 3.00530675e+01 2.98805512e+01 2.97091858e+01 2.95389621e+01 2.93698711e+01 + 2.92019039e+01 2.90350517e+01 2.88693057e+01 2.87046574e+01 2.85410979e+01 + 2.83786189e+01 2.82172119e+01 2.80568686e+01 2.78975805e+01 2.77393396e+01 + 2.75821376e+01 2.74259665e+01 2.72708183e+01 2.71166850e+01 2.69635588e+01 + 2.68114319e+01 2.66602966e+01 2.65101451e+01 2.63609700e+01 2.62127637e+01 + 2.60655187e+01 2.59192276e+01 2.57738831e+01 2.56294781e+01 2.54860051e+01 + 2.53434572e+01 2.52018273e+01 2.50611083e+01 2.49212933e+01 2.47823754e+01 + 2.46443478e+01 2.45072037e+01 2.43709365e+01 2.42355394e+01 2.41010058e+01 + 2.39673294e+01 2.38345034e+01 2.37025216e+01 2.35713776e+01 2.34410651e+01 + 2.33115778e+01 2.31829095e+01 2.30550541e+01 2.29280055e+01 2.28017576e+01 + 2.26763044e+01 2.25516401e+01 2.24277587e+01 2.23046545e+01 2.21823215e+01 + 2.20607542e+01 2.19399467e+01 2.18198935e+01 2.17005890e+01 2.15820277e+01 + 2.14642040e+01 2.13471125e+01 2.12307479e+01 2.11151047e+01 2.10001777e+01 + 2.08859616e+01 2.07724512e+01 2.06596413e+01 2.05475268e+01 2.04361027e+01 + 2.03253638e+01 2.02153052e+01 2.01059220e+01 1.99972092e+01 1.98891619e+01 + 1.97817754e+01 1.96750448e+01 1.95689655e+01 1.94635326e+01 1.93587416e+01 + 1.92545877e+01 1.91510665e+01 1.90481733e+01 1.89459038e+01 1.88442533e+01 + 1.87432174e+01 1.86427918e+01 1.85429721e+01 1.84437540e+01 1.83451332e+01 + 1.82471054e+01 1.81496665e+01 1.80528122e+01 1.79565384e+01 1.78608409e+01 + 1.77657158e+01 1.76711590e+01 1.75771664e+01 1.74837341e+01 1.73908582e+01 + 1.72985347e+01 1.72067597e+01 1.71155295e+01 1.70248401e+01 1.69346879e+01 + 1.68450691e+01 1.67559799e+01 1.66674167e+01 1.65793758e+01 1.64918535e+01 + 1.64048464e+01 1.63183507e+01 1.62323630e+01 1.61468798e+01 1.60618976e+01 + 1.59774129e+01 1.58934223e+01 1.58099224e+01 1.57269098e+01 1.56443812e+01 + 1.55623334e+01 1.54807629e+01 1.53996665e+01 1.53190411e+01 1.52388833e+01 + 1.51591901e+01 1.50799582e+01 1.50011845e+01 1.49228660e+01 1.48449995e+01 + 1.47675820e+01 1.46906104e+01 1.46140818e+01 1.45379931e+01 1.44623414e+01 + 1.43871239e+01 1.43123374e+01 1.42379793e+01 1.41640465e+01 1.40905364e+01 + 1.40174459e+01 1.39447724e+01 1.38725131e+01 1.38006652e+01 1.37292261e+01 + 1.36581928e+01 1.35875629e+01 1.35173336e+01 1.34475023e+01 1.33780664e+01 + 1.33090232e+01 1.32403701e+01 1.31721047e+01 1.31042244e+01 1.30367265e+01 + 1.29696088e+01 1.29028685e+01 1.28365034e+01 1.27705109e+01 1.27048887e+01 + 1.26396342e+01 1.25747452e+01 1.25102192e+01 1.24460540e+01 1.23822471e+01 + 1.23187962e+01 1.22556992e+01 1.21929536e+01 1.21305572e+01 1.20685078e+01 + 1.20068031e+01 1.19454410e+01 1.18844192e+01 1.18237356e+01 1.17633880e+01 + 1.17033742e+01 1.16436922e+01 1.15843398e+01 1.15253150e+01 1.14666156e+01 + 1.14082396e+01 1.13501849e+01 1.12924496e+01 1.12350315e+01 1.11779288e+01 + 1.11211393e+01 1.10646612e+01 1.10084925e+01 1.09526312e+01 1.08970754e+01 + 1.08418233e+01 1.07868728e+01 1.07322221e+01 1.06778695e+01 1.06238129e+01 + 1.05700505e+01 1.05165806e+01 1.04634013e+01 1.04105108e+01 1.03579073e+01 + 1.03055891e+01 1.02535544e+01 1.02018014e+01 1.01503283e+01 1.00991336e+01 + 1.00482155e+01 9.99757219e+00 9.94720209e+00 9.89710351e+00 9.84727478e+00 + 9.79771426e+00 9.74842031e+00 9.69939130e+00 9.65062562e+00 9.60212167e+00 + 9.55387786e+00 9.50589262e+00 9.45816438e+00 9.41069157e+00 9.36347267e+00 + 9.31650613e+00 9.26979044e+00 9.22332408e+00 9.17710556e+00 9.13113337e+00 + 9.08540606e+00 9.03992214e+00 8.99468017e+00 8.94967869e+00 8.90491626e+00 + 8.86039147e+00 8.81610289e+00 8.77204912e+00 8.72822876e+00 8.68464043e+00 + 8.64128274e+00 8.59815434e+00 8.55525386e+00 8.51257996e+00 8.47013129e+00 + 8.42790653e+00 8.38590436e+00 8.34412347e+00 8.30256256e+00 8.26122033e+00 + 8.22009551e+00 8.17918681e+00 8.13849297e+00 8.09801274e+00 8.05774487e+00 + 8.01768811e+00 7.97784124e+00 7.93820303e+00 7.89877228e+00 7.85954777e+00 + 7.82052831e+00 7.78171270e+00 7.74309977e+00 7.70468835e+00 7.66647727e+00 + 7.62846537e+00 7.59065151e+00 7.55303453e+00 7.51561332e+00 7.47838674e+00 + 7.44135367e+00 7.40451301e+00 7.36786365e+00 7.33140449e+00 7.29513445e+00 + 7.25905245e+00 7.22315741e+00 7.18744826e+00 7.15192396e+00 7.11658343e+00 + 7.08142564e+00 7.04644956e+00 7.01165414e+00 6.97703837e+00 6.94260122e+00 + 6.90834169e+00 6.87425877e+00 6.84035146e+00 6.80661878e+00 6.77305973e+00 + 6.73967334e+00 6.70645864e+00 6.67341467e+00 6.64054045e+00 6.60783505e+00 + 6.57529751e+00 6.54292690e+00 6.51072227e+00 6.47868271e+00 6.44680729e+00 + 6.41509509e+00 6.38354521e+00 6.35215673e+00 6.32092877e+00 6.28986042e+00 + 6.25895081e+00 6.22819905e+00 6.19760426e+00 6.16716558e+00 6.13688214e+00 + 6.10675309e+00 6.07677756e+00 6.04695472e+00 6.01728371e+00 5.98776371e+00 + 5.95839388e+00 5.92917339e+00 5.90010142e+00 5.87117717e+00 5.84239981e+00 + 5.81376854e+00 5.78528256e+00 5.75694108e+00 5.72874330e+00 5.70068845e+00 + 5.67277573e+00 5.64500437e+00 5.61737361e+00 5.58988267e+00 5.56253080e+00 + 5.53531723e+00 5.50824123e+00 5.48130203e+00 5.45449890e+00 5.42783110e+00 + 5.40129789e+00 5.37489855e+00 5.34863236e+00 5.32249859e+00 5.29649653e+00 + 5.27062546e+00 5.24488469e+00 5.21927350e+00 5.19379121e+00 5.16843711e+00 + 5.14321052e+00 5.11811076e+00 5.09313713e+00 5.06828897e+00 5.04356560e+00 + 5.01896636e+00 4.99449057e+00 4.97013759e+00 4.94590674e+00 4.92179739e+00 + 4.89780888e+00 4.87394056e+00 4.85019180e+00 4.82656195e+00 4.80305039e+00 + 4.77965649e+00 4.75637962e+00 4.73321916e+00 4.71017449e+00 4.68724499e+00 + 4.66443006e+00 4.64172909e+00 4.61914148e+00 4.59666662e+00 4.57430392e+00 + 4.55205278e+00 4.52991263e+00 4.50788286e+00 4.48596291e+00 4.46415218e+00 + 4.44245011e+00 4.42085612e+00 4.39936965e+00 4.37799012e+00 4.35671699e+00 + 4.33554968e+00 4.31448764e+00 4.29353033e+00 4.27267718e+00 4.25192766e+00 + 4.23128123e+00 4.21073734e+00 4.19029546e+00 4.16995505e+00 4.14971559e+00 + 4.12957654e+00 4.10953739e+00 4.08959761e+00 4.06975669e+00 4.05001410e+00 + 4.03036935e+00 4.01082191e+00 3.99137129e+00 3.97201698e+00 3.95275847e+00 + 3.93359529e+00 3.91452691e+00 3.89555287e+00 3.87667266e+00 3.85788581e+00 + 3.83919182e+00 3.82059022e+00 3.80208053e+00 3.78366227e+00 3.76533498e+00 + 3.74709818e+00 3.72895141e+00 3.71089420e+00 3.69292608e+00 3.67504661e+00 + 3.65725533e+00 3.63955177e+00 3.62193549e+00 3.60440604e+00 3.58696298e+00 + 3.56960585e+00 3.55233422e+00 3.53514766e+00 3.51804571e+00 3.50102796e+00 + 3.48409396e+00 3.46724329e+00 3.45047553e+00 3.43379024e+00 3.41718700e+00 + 3.40066541e+00 3.38422503e+00 3.36786545e+00 3.35158627e+00 3.33538707e+00 + 3.31926744e+00 3.30322698e+00 3.28726528e+00 3.27138194e+00 3.25557657e+00 + 3.23984876e+00 3.22419813e+00 3.20862427e+00 3.19312680e+00 3.17770533e+00 + 3.16235948e+00 3.14708885e+00 3.13189308e+00 3.11677177e+00 3.10172455e+00 + 3.08675105e+00 3.07185089e+00 3.05702370e+00 3.04226911e+00 3.02758675e+00 + 3.01297626e+00 2.99843728e+00 2.98396943e+00 2.96957237e+00 2.95524574e+00 + 2.94098917e+00 2.92680232e+00 2.91268483e+00 2.89863636e+00 2.88465656e+00 + 2.87074507e+00 2.85690156e+00 2.84312568e+00 2.82941710e+00 2.81577547e+00 + 2.80220045e+00 2.78869172e+00 2.77524894e+00 2.76187177e+00 2.74855989e+00 + 2.73531297e+00 2.72213068e+00 2.70901271e+00 2.69595871e+00 2.68296839e+00 + 2.67004141e+00 2.65717745e+00 2.64437621e+00 2.63163737e+00 2.61896061e+00 + 2.60634563e+00 2.59379211e+00 2.58129976e+00 2.56886825e+00 2.55649729e+00 + 2.54418658e+00 2.53193581e+00 2.51974468e+00 2.50761290e+00 2.49554018e+00 + 2.48352620e+00 2.47157070e+00 2.45967336e+00 2.44783390e+00 2.43605203e+00 + 2.42432747e+00 2.41265993e+00 2.40104912e+00 2.38949477e+00 2.37799659e+00 + 2.36655430e+00 2.35516763e+00 2.34383629e+00 2.33256002e+00 2.32133853e+00 + 2.31017156e+00 2.29905884e+00 2.28800009e+00 2.27699505e+00 2.26604346e+00 + 2.25514503e+00 2.24429952e+00 2.23350666e+00 2.22276619e+00 2.21207785e+00 + 2.20144138e+00 2.19085652e+00 2.18032302e+00 2.16984062e+00 2.15940907e+00 + 2.14902812e+00 2.13869751e+00 2.12841701e+00 2.11818636e+00 2.10800531e+00 + 2.09787362e+00 2.08779104e+00 2.07775734e+00 2.06777226e+00 2.05783558e+00 + 2.04794705e+00 2.03810643e+00 2.02831349e+00 2.01856799e+00 2.00886969e+00 + 1.99921838e+00 1.98961380e+00 1.98005574e+00 1.97054395e+00 1.96107823e+00 + 1.95165833e+00 1.94228403e+00 1.93295511e+00 1.92367134e+00 1.91443251e+00 + 1.90523838e+00 1.89608874e+00 1.88698338e+00 1.87792206e+00 1.86890459e+00 + 1.85993073e+00 1.85100028e+00 1.84211302e+00 1.83326875e+00 1.82446724e+00 + 1.81570829e+00 1.80699169e+00 1.79831723e+00 1.78968471e+00 1.78109391e+00 + 1.77254464e+00 1.76403669e+00 1.75556986e+00 1.74714394e+00 1.73875873e+00 + 1.73041405e+00 1.72210967e+00 1.71384542e+00 1.70562109e+00 1.69743648e+00 + 1.68929141e+00 1.68118567e+00 1.67311908e+00 1.66509145e+00 1.65710257e+00 + 1.64915227e+00 1.64124035e+00 1.63336663e+00 1.62553091e+00 1.61773302e+00 + 1.60997277e+00 1.60224997e+00 1.59456444e+00 1.58691600e+00 1.57930447e+00 + 1.57172966e+00 1.56419140e+00 1.55668951e+00 1.54922381e+00 1.54179412e+00 + 1.53440027e+00 1.52704208e+00 1.51971938e+00 1.51243200e+00 1.50517976e+00 + 1.49796249e+00 1.49078002e+00 1.48363218e+00 1.47651881e+00 1.46943972e+00 + 1.46239477e+00 1.45538377e+00 1.44840657e+00 1.44146299e+00 1.43455288e+00 + 1.42767608e+00 1.42083241e+00 1.41402172e+00 1.40724385e+00 1.40049863e+00 + 1.39378592e+00 1.38710554e+00 1.38045735e+00 1.37384119e+00 1.36725689e+00 + 1.36070431e+00 1.35418329e+00 1.34769367e+00 1.34123531e+00 1.33480805e+00 + 1.32841174e+00 1.32204623e+00 1.31571137e+00 1.30940702e+00 1.30313301e+00 + 1.29688921e+00 1.29067547e+00 1.28449163e+00 1.27833757e+00 1.27221313e+00 + 1.26611816e+00 1.26005253e+00 1.25401609e+00 1.24800870e+00 1.24203022e+00 + 1.23608051e+00 1.23015943e+00 1.22426684e+00 1.21840259e+00 1.21256657e+00 + 1.20675861e+00 1.20097860e+00 1.19522640e+00 1.18950186e+00 1.18380486e+00 + 1.17813526e+00 1.17249293e+00 1.16687773e+00 1.16128954e+00 1.15572823e+00 + 1.15019366e+00 1.14468570e+00 1.13920423e+00 1.13374911e+00 1.12832022e+00 + 1.12291743e+00 1.11754062e+00 1.11218966e+00 1.10686442e+00 1.10156477e+00 + 1.09629061e+00 1.09104179e+00 1.08581821e+00 1.08061973e+00 1.07544623e+00 + 1.07029760e+00 1.06517371e+00 1.06007445e+00 1.05499969e+00 1.04994931e+00 + 1.04492320e+00 1.03992125e+00 1.03494332e+00 1.02998931e+00 1.02505910e+00 + 1.02015258e+00 1.01526963e+00 1.01041014e+00 1.00557399e+00 1.00076107e+00 + 9.95971269e-01 9.91204474e-01 9.86460574e-01 9.81739459e-01 9.77041017e-01 + 9.72365141e-01 9.67711719e-01 9.63080644e-01 9.58471808e-01 9.53885103e-01 + 9.49320422e-01 9.44777659e-01 9.40256708e-01 9.35757463e-01 9.31279819e-01 + 9.26823673e-01 9.22388920e-01 9.17975456e-01 9.13583180e-01 9.09211987e-01 + 9.04861778e-01 9.00532450e-01 8.96223902e-01 8.91936035e-01 8.87668748e-01 + 8.83421941e-01 8.79195517e-01 8.74989376e-01 8.70803420e-01 8.66637553e-01 + 8.62491677e-01 8.58365695e-01 8.54259512e-01 8.50173032e-01 8.46106160e-01 + 8.42058801e-01 8.38030861e-01 8.34022246e-01 8.30032864e-01 8.26062621e-01 + 8.22111425e-01 8.18179184e-01 8.14265806e-01 8.10371202e-01 8.06495279e-01 + 8.02637948e-01 7.98799120e-01 7.94978705e-01 7.91176614e-01 7.87392758e-01 + 7.83627051e-01 7.79879404e-01 7.76149731e-01 7.72437944e-01 7.68743958e-01 + 7.65067686e-01 7.61409044e-01 7.57767945e-01 7.54144307e-01 7.50538044e-01 + 7.46949073e-01 7.43377311e-01 7.39822674e-01 7.36285080e-01 7.32764446e-01 + 7.29260693e-01 7.25773736e-01 7.22303497e-01 7.18849895e-01 7.15412848e-01 + 7.11992278e-01 7.08588105e-01 7.05200250e-01 7.01828635e-01 6.98473181e-01 + 6.95133811e-01 6.91810447e-01 6.88503011e-01 6.85211428e-01 6.81935621e-01 + 6.78675514e-01 6.75431031e-01 6.72202097e-01 6.68988638e-01 6.65790578e-01 + 6.62607844e-01 6.59440362e-01 6.56288059e-01 6.53150861e-01 6.50028696e-01 + 6.46921491e-01 6.43829174e-01 6.40751674e-01 6.37688920e-01 6.34640840e-01 + 6.31607364e-01 6.28588422e-01 6.25583943e-01 6.22593858e-01 6.19618099e-01 + 6.16656595e-01 6.13709278e-01 6.10776081e-01 6.07856935e-01 6.04951772e-01 + 6.02060526e-01 5.99183129e-01 5.96319515e-01 5.93469617e-01 5.90633370e-01 + 5.87810708e-01 5.85001566e-01 5.82205878e-01 5.79423580e-01 5.76654607e-01 + 5.73898896e-01 5.71156383e-01 5.68427004e-01 5.65710696e-01 5.63007396e-01 + 5.60317042e-01 5.57639571e-01 5.54974922e-01 5.52323033e-01 5.49683843e-01 + 5.47057290e-01 5.44443314e-01 5.41841854e-01 5.39252851e-01 5.36676244e-01 + 5.34111973e-01 5.31559981e-01 5.29020206e-01 5.26492592e-01 5.23977079e-01 + 5.21473609e-01 5.18982125e-01 5.16502568e-01 5.14034882e-01 5.11579010e-01 + 5.09134894e-01 5.06702479e-01 5.04281707e-01 5.01872524e-01 4.99474873e-01 + 4.97088699e-01 4.94713948e-01 4.92350563e-01 4.89998491e-01 4.87657677e-01 + 4.85328067e-01 4.83009607e-01 4.80702244e-01 4.78405925e-01 4.76120596e-01 + 4.73846204e-01 4.71582698e-01 4.69330025e-01 4.67088133e-01 4.64856970e-01 + 4.62636484e-01 4.60426625e-01 4.58227341e-01 4.56038581e-01 4.53860296e-01 + 4.51692435e-01 4.49534947e-01 4.47387783e-01 4.45250893e-01 4.43124229e-01 + 4.41007741e-01 4.38901379e-01 4.36805097e-01 4.34718844e-01 4.32642574e-01 + 4.30576237e-01 4.28519788e-01 4.26473177e-01 4.24436358e-01 4.22409284e-01 + 4.20391908e-01 4.18384183e-01 4.16386064e-01 4.14397504e-01 4.12418457e-01 + 4.10448878e-01 4.08488721e-01 4.06537941e-01 4.04596493e-01 4.02664332e-01 + 4.00741414e-01 3.98827694e-01 3.96923129e-01 3.95027674e-01 3.93141285e-01 + 3.91263920e-01 3.89395535e-01 3.87536086e-01 3.85685532e-01 3.83843828e-01 + 3.82010934e-01 3.80186806e-01 3.78371402e-01 3.76564682e-01 3.74766602e-01 + 3.72977122e-01 3.71196200e-01 3.69423796e-01 3.67659868e-01 3.65904377e-01 + 3.64157280e-01 3.62418539e-01 3.60688113e-01 3.58965962e-01 3.57252046e-01 + 3.55546327e-01 3.53848764e-01 3.52159319e-01 3.50477953e-01 3.48804627e-01 + 3.47139302e-01 3.45481941e-01 3.43832504e-01 3.42190955e-01 3.40557254e-01 + 3.38931366e-01 3.37313251e-01 3.35702873e-01 3.34100195e-01 3.32505179e-01 + 3.30917790e-01 3.29337990e-01 3.27765744e-01 3.26201014e-01 3.24643766e-01 + 3.23093962e-01 3.21551569e-01 3.20016548e-01 3.18488867e-01 3.16968489e-01 + 3.15455379e-01 3.13949503e-01 3.12450826e-01 3.10959314e-01 3.09474931e-01 + 3.07997645e-01 3.06527420e-01 3.05064224e-01 3.03608022e-01 3.02158781e-01 + 3.00716467e-01 2.99281048e-01 2.97852490e-01 2.96430761e-01 2.95015827e-01 + 2.93607657e-01 2.92206218e-01 2.90811477e-01 2.89423403e-01 2.88041963e-01 + 2.86667126e-01 2.85298860e-01 2.83937134e-01 2.82581916e-01 2.81233175e-01 + 2.79890881e-01 2.78555001e-01 2.77225507e-01 2.75902366e-01 2.74585549e-01 + 2.73275025e-01 2.71970764e-01 2.70672736e-01 2.69380912e-01 2.68095261e-01 + 2.66815754e-01 2.65542362e-01 2.64275055e-01 2.63013804e-01 2.61758580e-01 + 2.60509355e-01 2.59266099e-01 2.58028784e-01 2.56797382e-01 2.55571864e-01 + 2.54352202e-01 2.53138368e-01 2.51930334e-01 2.50728072e-01 2.49531555e-01 + 2.48340756e-01 2.47155646e-01 2.45976199e-01 2.44802387e-01 2.43634184e-01 + 2.42471562e-01 2.41314495e-01 2.40162957e-01 2.39016920e-01 2.37876359e-01 + 2.36741248e-01 2.35611559e-01 2.34487268e-01 2.33368348e-01 2.32254774e-01 + 2.31146520e-01 2.30043561e-01 2.28945871e-01 2.27853426e-01 2.26766199e-01 + 2.25684166e-01 2.24607302e-01 2.23535583e-01 2.22468984e-01 2.21407480e-01 + 2.20351047e-01 2.19299660e-01 2.18253296e-01 2.17211931e-01 2.16175540e-01 + 2.15144100e-01 2.14113243e-01 2.13069891e-01 2.12013376e-01 2.10943940e-01 + 2.09861825e-01 2.08767274e-01 2.07660532e-01 2.06541843e-01 2.05411450e-01 + 2.04269601e-01 2.03116539e-01 2.01952510e-01 2.00777762e-01 1.99592539e-01 + 1.98397087e-01 1.97191654e-01 1.95976486e-01 1.94751828e-01 1.93517927e-01 + 1.92275030e-01 1.91023382e-01 1.89763228e-01 1.88494815e-01 1.87218387e-01 + 1.85934189e-01 1.84642465e-01 1.83343460e-01 1.82037416e-01 1.80724576e-01 + 1.79405183e-01 1.78079478e-01 1.76747703e-01 1.75410096e-01 1.74066898e-01 + 1.72718347e-01 1.71364681e-01 1.70006137e-01 1.68642951e-01 1.67275357e-01 + 1.65903590e-01 1.64527883e-01 1.63148467e-01 1.61765573e-01 1.60379431e-01 + 1.58990269e-01 1.57598315e-01 1.56203794e-01 1.54806930e-01 1.53407948e-01 + 1.52007068e-01 1.50604512e-01 1.49200499e-01 1.47795247e-01 1.46388970e-01 + 1.44981885e-01 1.43574205e-01 1.42166140e-01 1.40757901e-01 1.39349697e-01 + 1.37941733e-01 1.36534215e-01 1.35127346e-01 1.33721328e-01 1.32316360e-01 + 1.30912641e-01 1.29510367e-01 1.28109732e-01 1.26710929e-01 1.25314148e-01 + 1.23919578e-01 1.22527407e-01 1.21137818e-01 1.19750996e-01 1.18367121e-01 + 1.16986372e-01 1.15608926e-01 1.14234958e-01 1.12864641e-01 1.11498147e-01 + 1.10135644e-01 1.08777298e-01 1.07423275e-01 1.06073737e-01 1.04728844e-01 + 1.03388755e-01 1.02053626e-01 1.00723611e-01 9.93988621e-02 9.80795283e-02 + 9.67657573e-02 9.54576944e-02 9.41554826e-02 9.28592628e-02 9.15691736e-02 + 9.02853512e-02 8.90079298e-02 8.77370413e-02 8.64728153e-02 8.52153791e-02 + 8.39648579e-02 8.27213744e-02 8.14850493e-02 8.02560007e-02 7.90343447e-02 + 7.78201951e-02 7.66136632e-02 7.54148582e-02 7.42238870e-02 7.30408542e-02 + 7.18658621e-02 7.06990106e-02 6.95403977e-02 6.83901186e-02 6.72482667e-02 + 6.61149327e-02 6.49902053e-02 6.38741708e-02 6.27669135e-02 6.16685149e-02 + 6.05790548e-02 5.94986105e-02 5.84272569e-02 5.73650669e-02 5.63121110e-02 + 5.52684577e-02 5.42341729e-02 5.32093207e-02 5.21939626e-02 5.11881582e-02 + 5.01919647e-02 4.92054373e-02 4.82286288e-02 4.72615900e-02 4.63043694e-02 + 4.53570136e-02 4.44195668e-02 4.34920712e-02 4.25745668e-02 4.16670917e-02 + 4.07696815e-02 3.98823701e-02 3.90051893e-02 3.81381685e-02 3.72813355e-02 + 3.64347158e-02 3.55983328e-02 3.47722083e-02 3.39563616e-02 3.31508103e-02 + 3.23555701e-02 3.15706545e-02 3.07960754e-02 3.00318424e-02 2.92779635e-02 + 2.85344447e-02 2.78012900e-02 2.70785019e-02 2.63660805e-02 2.56640247e-02 + 2.49723312e-02 2.42909949e-02 2.36200091e-02 2.29593653e-02 2.23090532e-02 + 2.16690608e-02 2.10393744e-02 2.04199786e-02 1.98108565e-02 1.92119892e-02 + 1.86233564e-02 1.80449363e-02 1.74767052e-02 1.69186380e-02 1.63707081e-02 + 1.58328873e-02 1.53051458e-02 1.47874523e-02 1.42797743e-02 1.37820775e-02 + 1.32943263e-02 1.28164837e-02 1.23485112e-02 1.18903690e-02 1.14420160e-02 + 1.10034096e-02 1.05745061e-02 1.01552602e-02 9.74562554e-03 9.34555446e-03 + 8.95499803e-03 8.57390613e-03 8.20222740e-03 7.83990935e-03 7.48689830e-03 + 7.14313944e-03 6.80857685e-03 6.48315351e-03 6.16681133e-03 5.85949117e-03 + 5.56113283e-03 5.27167514e-03 4.99105590e-03 4.71921196e-03 4.45607922e-03 + 4.20159263e-03 3.95568626e-03 3.71829328e-03 3.48934599e-03 3.26877583e-03 + 3.05651345e-03 2.85248865e-03 2.65663049e-03 2.46886724e-03 2.28912643e-03 + 2.11733486e-03 1.95341864e-03 1.79730319e-03 1.64891328e-03 1.50817302e-03 + 1.37500590e-03 1.24933483e-03 1.13108212e-03 1.02016951e-03 9.16518227e-04 + 8.20048948e-04 7.30681861e-04 6.48336671e-04 5.72932617e-04 5.04388498e-04 + 4.42622685e-04 3.87553146e-04 3.39097464e-04 2.97172855e-04 2.61696185e-04 + 2.32583995e-04 2.09752512e-04 1.93117675e-04 1.82595147e-04 1.78100339e-04 + 5.10303315e+05 5.10046225e+05 2.53097548e+05 1.67464388e+05 1.24659895e+05 + 9.89867038e+04 8.18790278e+04 6.96658180e+04 6.05115520e+04 5.33964966e+04 + 4.77088135e+04 4.30591523e+04 3.91879473e+04 3.59155003e+04 3.31134563e+04 + 3.06876893e+04 2.85676056e+04 2.66992224e+04 2.50405539e+04 2.35584542e+04 + 2.22264069e+04 2.10229471e+04 1.99305132e+04 1.89345980e+04 1.80231129e+04 + 1.71859038e+04 1.64143793e+04 1.57012210e+04 1.50401564e+04 1.44257787e+04 + 1.38534022e+04 1.33189460e+04 1.28188399e+04 1.23499464e+04 1.19094977e+04 + 1.14950424e+04 1.11044018e+04 1.07356328e+04 1.03869972e+04 1.00569354e+04 + 9.74404375e+03 9.44705580e+03 9.16482594e+03 8.89631528e+03 8.64057954e+03 + 8.39675857e+03 8.16406712e+03 7.94178697e+03 7.72925986e+03 7.52588141e+03 + 7.33109575e+03 7.14439069e+03 6.96529360e+03 6.79336763e+03 6.62820838e+03 + 6.46944099e+03 6.31671748e+03 6.16971439e+03 6.02813065e+03 5.89168572e+03 + 5.76011783e+03 5.63318249e+03 5.51065103e+03 5.39230941e+03 5.27795704e+03 + 5.16740574e+03 5.06047881e+03 4.95701018e+03 4.85684361e+03 4.75983198e+03 + 4.66583665e+03 4.57472683e+03 4.48637909e+03 4.40067679e+03 4.31750967e+03 + 4.23677339e+03 4.15836916e+03 4.08220338e+03 4.00818728e+03 3.93623666e+03 + 3.86627154e+03 3.79821596e+03 3.73199770e+03 3.66754806e+03 3.60480166e+03 + 3.54369622e+03 3.48417242e+03 3.42617367e+03 3.36964602e+03 3.31453796e+03 + 3.26080030e+03 3.20838606e+03 3.15725033e+03 3.10735015e+03 3.05864443e+03 + 3.01109383e+03 2.96466068e+03 2.91930891e+03 2.87500390e+03 2.83171251e+03 + 2.78940292e+03 2.74804459e+03 2.70760821e+03 2.66806564e+03 2.62938983e+03 + 2.59155479e+03 2.55453552e+03 2.51830799e+03 2.48284908e+03 2.44813652e+03 + 2.41414887e+03 2.38086551e+03 2.34826654e+03 2.31633280e+03 2.28504581e+03 + 2.25438775e+03 2.22434144e+03 2.19489029e+03 2.16601829e+03 2.13770999e+03 + 2.10995046e+03 2.08272529e+03 2.05602053e+03 2.02982273e+03 2.00411886e+03 + 1.97889633e+03 1.95414296e+03 1.92984697e+03 1.90599695e+03 1.88258187e+03 + 1.85959103e+03 1.83701408e+03 1.81484100e+03 1.79306205e+03 1.77166784e+03 + 1.75064922e+03 1.72999735e+03 1.70970364e+03 1.68975977e+03 1.67015765e+03 + 1.65088945e+03 1.63194756e+03 1.61332459e+03 1.59501336e+03 1.57700693e+03 + 1.55929851e+03 1.54188153e+03 1.52474960e+03 1.50789653e+03 1.49131626e+03 + 1.47500294e+03 1.45895085e+03 1.44315444e+03 1.42760833e+03 1.41230725e+03 + 1.39724609e+03 1.38241988e+03 1.36782377e+03 1.35345305e+03 1.33930313e+03 + 1.32536953e+03 1.31164791e+03 1.29813401e+03 1.28482370e+03 1.27171296e+03 + 1.25879786e+03 1.24607457e+03 1.23353935e+03 1.22118857e+03 1.20901868e+03 + 1.19702622e+03 1.18520781e+03 1.17356016e+03 1.16208005e+03 1.15076434e+03 + 1.13960999e+03 1.12861399e+03 1.11777342e+03 1.10708545e+03 1.09654729e+03 + 1.08615621e+03 1.07590958e+03 1.06580478e+03 1.05583930e+03 1.04601066e+03 + 1.03631643e+03 1.02675426e+03 1.01732183e+03 1.00801689e+03 9.98837223e+02 + 9.89780672e+02 9.80845126e+02 9.72028519e+02 9.63328832e+02 9.54744087e+02 + 9.46272351e+02 9.37911733e+02 9.29660381e+02 9.21516483e+02 9.13478267e+02 + 9.05543995e+02 8.97711969e+02 8.89980525e+02 8.82348035e+02 8.74812902e+02 + 8.67373564e+02 8.60028492e+02 8.52776186e+02 8.45615178e+02 8.38544029e+02 + 8.31561330e+02 8.24665699e+02 8.17855783e+02 8.11130255e+02 8.04487814e+02 + 7.97927187e+02 7.91447123e+02 7.85046396e+02 7.78723806e+02 7.72478175e+02 + 7.66308347e+02 7.60213188e+02 7.54191588e+02 7.48242457e+02 7.42364723e+02 + 7.36557340e+02 7.30819275e+02 7.25149520e+02 7.19547083e+02 7.14010990e+02 + 7.08540286e+02 7.03134035e+02 6.97791316e+02 6.92511225e+02 6.87292875e+02 + 6.82135395e+02 6.77037931e+02 6.71999642e+02 6.67019703e+02 6.62097305e+02 + 6.57231651e+02 6.52421960e+02 6.47667464e+02 6.42967409e+02 6.38321053e+02 + 6.33727668e+02 6.29186538e+02 6.24696960e+02 6.20258243e+02 6.15869708e+02 + 6.11530686e+02 6.07240521e+02 6.02998567e+02 5.98804191e+02 5.94656769e+02 + 5.90555686e+02 5.86500341e+02 5.82490139e+02 5.78524499e+02 5.74602845e+02 + 5.70724613e+02 5.66889250e+02 5.63096208e+02 5.59344950e+02 5.55634949e+02 + 5.51965684e+02 5.48336644e+02 5.44747325e+02 5.41197231e+02 5.37685877e+02 + 5.34212781e+02 5.30777471e+02 5.27379483e+02 5.24018359e+02 5.20693648e+02 + 5.17404908e+02 5.14151701e+02 5.10933598e+02 5.07750176e+02 5.04601017e+02 + 5.01485712e+02 4.98403856e+02 4.95355051e+02 4.92338905e+02 4.89355032e+02 + 4.86403051e+02 4.83482588e+02 4.80593273e+02 4.77734743e+02 4.74906640e+02 + 4.72108610e+02 4.69340305e+02 4.66601383e+02 4.63891506e+02 4.61210340e+02 + 4.58557558e+02 4.55932836e+02 4.53335856e+02 4.50766302e+02 4.48223866e+02 + 4.45708241e+02 4.43219127e+02 4.40756227e+02 4.38319248e+02 4.35907902e+02 + 4.33521903e+02 4.31160971e+02 4.28824829e+02 4.26513205e+02 4.24225829e+02 + 4.21962435e+02 4.19722762e+02 4.17506550e+02 4.15313545e+02 4.13143496e+02 + 4.10996155e+02 4.08871275e+02 4.06768616e+02 4.04687940e+02 4.02629011e+02 + 4.00591597e+02 3.98575469e+02 3.96580400e+02 3.94606168e+02 3.92652552e+02 + 3.90719335e+02 3.88806302e+02 3.86913240e+02 3.85039942e+02 3.83186199e+02 + 3.81351809e+02 3.79536569e+02 3.77740281e+02 3.75962749e+02 3.74203778e+02 + 3.72463176e+02 3.70740756e+02 3.69036329e+02 3.67349711e+02 3.65680719e+02 + 3.64029175e+02 3.62394898e+02 3.60777715e+02 3.59177450e+02 3.57593933e+02 + 3.56026994e+02 3.54476464e+02 3.52942179e+02 3.51423975e+02 3.49921689e+02 + 3.48435163e+02 3.46964237e+02 3.45508756e+02 3.44068565e+02 3.42643511e+02 + 3.41233444e+02 3.39838215e+02 3.38457674e+02 3.37091678e+02 3.35740081e+02 + 3.34402740e+02 3.33079515e+02 3.31770266e+02 3.30474855e+02 3.29193145e+02 + 3.27925002e+02 3.26670291e+02 3.25428880e+02 3.24200640e+02 3.22985439e+02 + 3.21783151e+02 3.20593649e+02 3.19416806e+02 3.18252500e+02 3.17100608e+02 + 3.15961007e+02 3.14833578e+02 3.13718202e+02 3.12614761e+02 3.11523138e+02 + 3.10443218e+02 3.09374887e+02 3.08318030e+02 3.07272538e+02 3.06238297e+02 + 3.05215199e+02 3.04203134e+02 3.03201996e+02 3.02211676e+02 3.01232070e+02 + 3.00263073e+02 2.99304581e+02 2.98356492e+02 2.97418703e+02 2.96491113e+02 + 2.95573624e+02 2.94666135e+02 2.93768550e+02 2.92880770e+02 2.92002699e+02 + 2.91134242e+02 2.90275304e+02 2.89425791e+02 2.88585611e+02 2.87754672e+02 + 2.86932882e+02 2.86120150e+02 2.85316386e+02 2.84521503e+02 2.83735411e+02 + 2.82958023e+02 2.82189252e+02 2.81429013e+02 2.80677219e+02 2.79933787e+02 + 2.79198632e+02 2.78471671e+02 2.77752821e+02 2.77042001e+02 2.76339129e+02 + 2.75644124e+02 2.74956907e+02 2.74277399e+02 2.73605519e+02 2.72941192e+02 + 2.72284337e+02 2.71634880e+02 2.70992743e+02 2.70357851e+02 2.69730128e+02 + 2.69109499e+02 2.68495891e+02 2.67889230e+02 2.67289443e+02 2.66696458e+02 + 2.66110201e+02 2.65530603e+02 2.64957592e+02 2.64391096e+02 2.63831048e+02 + 2.63277376e+02 2.62730013e+02 2.62188888e+02 2.61653935e+02 2.61125086e+02 + 2.60602273e+02 2.60085431e+02 2.59574492e+02 2.59069390e+02 2.58570061e+02 + 2.58076440e+02 2.57588462e+02 2.57106063e+02 2.56629179e+02 2.56157746e+02 + 2.55691703e+02 2.55230987e+02 2.54775535e+02 2.54325287e+02 2.53880179e+02 + 2.53440153e+02 2.53005147e+02 2.52575100e+02 2.52149954e+02 2.51729649e+02 + 2.51314126e+02 2.50903326e+02 2.50497191e+02 2.50095662e+02 2.49698683e+02 + 2.49306196e+02 2.48918144e+02 2.48534470e+02 2.48155118e+02 2.47780033e+02 + 2.47409158e+02 2.47042438e+02 2.46679819e+02 2.46321246e+02 2.45966664e+02 + 2.45616020e+02 2.45269260e+02 2.44926330e+02 2.44587178e+02 2.44251750e+02 + 2.43919995e+02 2.43591860e+02 2.43267294e+02 2.42946244e+02 2.42628660e+02 + 2.42314491e+02 2.42003686e+02 2.41696195e+02 2.41391967e+02 2.41090953e+02 + 2.40793105e+02 2.40498371e+02 2.40206704e+02 2.39918055e+02 2.39632375e+02 + 2.39349617e+02 2.39069733e+02 2.38792675e+02 2.38518396e+02 2.38246849e+02 + 2.37977988e+02 2.37711767e+02 2.37448138e+02 2.37187057e+02 2.36928477e+02 + 2.36672354e+02 2.36418643e+02 2.36167298e+02 2.35918276e+02 2.35671532e+02 + 2.35427023e+02 2.35184704e+02 2.34944533e+02 2.34706466e+02 2.34470460e+02 + 2.34236473e+02 2.34004463e+02 2.33774388e+02 2.33546205e+02 2.33319874e+02 + 2.33095353e+02 2.32872602e+02 2.32651579e+02 2.32432244e+02 2.32214558e+02 + 2.31998480e+02 2.31783971e+02 2.31570991e+02 2.31359501e+02 2.31149464e+02 + 2.30940839e+02 2.30733589e+02 2.30527677e+02 2.30323063e+02 2.30119712e+02 + 2.29917585e+02 2.29716646e+02 2.29516859e+02 2.29318186e+02 2.29120593e+02 + 2.28924042e+02 2.28728500e+02 2.28533929e+02 2.28340297e+02 2.28147567e+02 + 2.27955705e+02 2.27764678e+02 2.27574452e+02 2.27384992e+02 2.27196266e+02 + 2.27008241e+02 2.26820884e+02 2.26634163e+02 2.26448044e+02 2.26262498e+02 + 2.26077491e+02 2.25892993e+02 2.25708972e+02 2.25525399e+02 2.25342242e+02 + 2.25159470e+02 2.24977056e+02 2.24794968e+02 2.24613177e+02 2.24431655e+02 + 2.24250372e+02 2.24069301e+02 2.23888413e+02 2.23707679e+02 2.23527074e+02 + 2.23346568e+02 2.23166136e+02 2.22985751e+02 2.22805385e+02 2.22625013e+02 + 2.22444610e+02 2.22264149e+02 2.22083605e+02 2.21902954e+02 2.21722170e+02 + 2.21541230e+02 2.21360109e+02 2.21178783e+02 2.20997229e+02 2.20815424e+02 + 2.20633345e+02 2.20450968e+02 2.20268273e+02 2.20085237e+02 2.19901837e+02 + 2.19718053e+02 2.19533864e+02 2.19349248e+02 2.19164186e+02 2.18978656e+02 + 2.18792640e+02 2.18606116e+02 2.18419067e+02 2.18231472e+02 2.18043313e+02 + 2.17854572e+02 2.17665230e+02 2.17475270e+02 2.17284673e+02 2.17093423e+02 + 2.16901503e+02 2.16708895e+02 2.16515584e+02 2.16321553e+02 2.16126786e+02 + 2.15931269e+02 2.15734985e+02 2.15537919e+02 2.15340058e+02 2.15141386e+02 + 2.14941889e+02 2.14741555e+02 2.14540368e+02 2.14338316e+02 2.14135386e+02 + 2.13931566e+02 2.13726842e+02 2.13521203e+02 2.13314637e+02 2.13107133e+02 + 2.12898678e+02 2.12689263e+02 2.12478876e+02 2.12267508e+02 2.12055147e+02 + 2.11841784e+02 2.11627410e+02 2.11412015e+02 2.11195590e+02 2.10978127e+02 + 2.10759616e+02 2.10540050e+02 2.10319420e+02 2.10097719e+02 2.09874940e+02 + 2.09651076e+02 2.09426118e+02 2.09200061e+02 2.08972899e+02 2.08744625e+02 + 2.08515233e+02 2.08284718e+02 2.08053074e+02 2.07820297e+02 2.07586381e+02 + 2.07351321e+02 2.07115114e+02 2.06877755e+02 2.06639241e+02 2.06399567e+02 + 2.06158730e+02 2.05916728e+02 2.05673556e+02 2.05429214e+02 2.05183697e+02 + 2.04937004e+02 2.04689132e+02 2.04440081e+02 2.04189848e+02 2.03938432e+02 + 2.03685832e+02 2.03432047e+02 2.03177076e+02 2.02920920e+02 2.02663577e+02 + 2.02405047e+02 2.02145331e+02 2.01884430e+02 2.01622343e+02 2.01359072e+02 + 2.01094617e+02 2.00828980e+02 2.00562162e+02 2.00294164e+02 2.00024989e+02 + 1.99754638e+02 1.99483114e+02 1.99210418e+02 1.98936553e+02 1.98661523e+02 + 1.98385329e+02 1.98107975e+02 1.97829464e+02 1.97549799e+02 1.97268984e+02 + 1.96987023e+02 1.96703919e+02 1.96419677e+02 1.96134301e+02 1.95847795e+02 + 1.95560163e+02 1.95271410e+02 1.94981542e+02 1.94690563e+02 1.94398477e+02 + 1.94105292e+02 1.93811010e+02 1.93515640e+02 1.93219185e+02 1.92921652e+02 + 1.92623046e+02 1.92323374e+02 1.92022643e+02 1.91720857e+02 1.91418024e+02 + 1.91114151e+02 1.90809243e+02 1.90503308e+02 1.90196352e+02 1.89888383e+02 + 1.89579408e+02 1.89269434e+02 1.88958468e+02 1.88646517e+02 1.88333590e+02 + 1.88019694e+02 1.87704836e+02 1.87389025e+02 1.87072268e+02 1.86754573e+02 + 1.86435949e+02 1.86116403e+02 1.85795944e+02 1.85474580e+02 1.85152320e+02 + 1.84829171e+02 1.84505143e+02 1.84180245e+02 1.83854484e+02 1.83527870e+02 + 1.83200411e+02 1.82872117e+02 1.82542996e+02 1.82213057e+02 1.81882310e+02 + 1.81550763e+02 1.81218426e+02 1.80885308e+02 1.80551418e+02 1.80216766e+02 + 1.79881360e+02 1.79545211e+02 1.79208327e+02 1.78870719e+02 1.78532395e+02 + 1.78193366e+02 1.77853641e+02 1.77513229e+02 1.77172140e+02 1.76830384e+02 + 1.76487971e+02 1.76144911e+02 1.75801212e+02 1.75456885e+02 1.75111940e+02 + 1.74766387e+02 1.74420235e+02 1.74073494e+02 1.73726174e+02 1.73378285e+02 + 1.73029837e+02 1.72680840e+02 1.72331304e+02 1.71981238e+02 1.71630653e+02 + 1.71279558e+02 1.70927963e+02 1.70575879e+02 1.70223315e+02 1.69870281e+02 + 1.69516787e+02 1.69162843e+02 1.68808459e+02 1.68453644e+02 1.68098409e+02 + 1.67742764e+02 1.67386718e+02 1.67030281e+02 1.66673463e+02 1.66316274e+02 + 1.65958724e+02 1.65600822e+02 1.65242578e+02 1.64884002e+02 1.64525104e+02 + 1.64165893e+02 1.63806379e+02 1.63446572e+02 1.63086481e+02 1.62726115e+02 + 1.62365486e+02 1.62004601e+02 1.61643471e+02 1.61282104e+02 1.60920511e+02 + 1.60558701e+02 1.60196684e+02 1.59834467e+02 1.59472062e+02 1.59109477e+02 + 1.58746721e+02 1.58383804e+02 1.58020734e+02 1.57657521e+02 1.57294175e+02 + 1.56930703e+02 1.56567116e+02 1.56203421e+02 1.55839629e+02 1.55475747e+02 + 1.55111785e+02 1.54747751e+02 1.54383654e+02 1.54019504e+02 1.53655308e+02 + 1.53291075e+02 1.52926813e+02 1.52562532e+02 1.52198240e+02 1.51833945e+02 + 1.51469655e+02 1.51105379e+02 1.50741125e+02 1.50376902e+02 1.50012717e+02 + 1.49648578e+02 1.49284494e+02 1.48920473e+02 1.48556522e+02 1.48192650e+02 + 1.47828864e+02 1.47465173e+02 1.47101583e+02 1.46738103e+02 1.46374741e+02 + 1.46011503e+02 1.45648398e+02 1.45285432e+02 1.44922614e+02 1.44559950e+02 + 1.44197449e+02 1.43835116e+02 1.43472960e+02 1.43110988e+02 1.42749206e+02 + 1.42387622e+02 1.42026243e+02 1.41665075e+02 1.41304126e+02 1.40943402e+02 + 1.40582910e+02 1.40222657e+02 1.39862648e+02 1.39502892e+02 1.39143395e+02 + 1.38784162e+02 1.38425200e+02 1.38066516e+02 1.37708117e+02 1.37350007e+02 + 1.36992193e+02 1.36634682e+02 1.36277480e+02 1.35920592e+02 1.35564024e+02 + 1.35207783e+02 1.34851874e+02 1.34496303e+02 1.34141076e+02 1.33786198e+02 + 1.33431675e+02 1.33077512e+02 1.32723715e+02 1.32370290e+02 1.32017242e+02 + 1.31664575e+02 1.31312296e+02 1.30960410e+02 1.30608921e+02 1.30257835e+02 + 1.29907157e+02 1.29556892e+02 1.29207045e+02 1.28857620e+02 1.28508623e+02 + 1.28160058e+02 1.27811930e+02 1.27464243e+02 1.27117003e+02 1.26770214e+02 + 1.26423879e+02 1.26078005e+02 1.25732594e+02 1.25387652e+02 1.25043183e+02 + 1.24699190e+02 1.24355679e+02 1.24012652e+02 1.23670115e+02 1.23328071e+02 + 1.22986525e+02 1.22645479e+02 1.22304939e+02 1.21964907e+02 1.21625388e+02 + 1.21286385e+02 1.20947903e+02 1.20609943e+02 1.20272511e+02 1.19935610e+02 + 1.19599242e+02 1.19263412e+02 1.18928123e+02 1.18593378e+02 1.18259180e+02 + 1.17925533e+02 1.17592440e+02 1.17259904e+02 1.16927927e+02 1.16596514e+02 + 1.16265667e+02 1.15935389e+02 1.15605682e+02 1.15276550e+02 1.14947996e+02 + 1.14620022e+02 1.14292630e+02 1.13965825e+02 1.13639607e+02 1.13313981e+02 + 1.12988947e+02 1.12664510e+02 1.12340671e+02 1.12017432e+02 1.11694796e+02 + 1.11372766e+02 1.11051343e+02 1.10730530e+02 1.10410329e+02 1.10090743e+02 + 1.09771772e+02 1.09453420e+02 1.09135688e+02 1.08818579e+02 1.08502094e+02 + 1.08186235e+02 1.07871004e+02 1.07556404e+02 1.07242435e+02 1.06929099e+02 + 1.06616399e+02 1.06304336e+02 1.05992911e+02 1.05682126e+02 1.05371983e+02 + 1.05062483e+02 1.04753628e+02 1.04445420e+02 1.04137859e+02 1.03830947e+02 + 1.03524685e+02 1.03219075e+02 1.02914119e+02 1.02609816e+02 1.02306169e+02 + 1.02003179e+02 1.01700846e+02 1.01399173e+02 1.01098160e+02 1.00797808e+02 + 1.00498118e+02 1.00199091e+02 9.99007283e+01 9.96030307e+01 9.93059992e+01 + 9.90096345e+01 9.87139375e+01 9.84189091e+01 9.81245500e+01 9.78308609e+01 + 9.75378427e+01 9.72454959e+01 9.69538214e+01 9.66628197e+01 9.63724914e+01 + 9.60828371e+01 9.57938574e+01 9.55055529e+01 9.52179239e+01 9.49309711e+01 + 9.46446949e+01 9.43590956e+01 9.40741738e+01 9.37899297e+01 9.35063638e+01 + 9.32234763e+01 9.29412676e+01 9.26597379e+01 9.23788875e+01 9.20987167e+01 + 9.18192256e+01 9.15404144e+01 9.12622833e+01 9.09848325e+01 9.07080619e+01 + 9.04319719e+01 9.01565623e+01 8.98818333e+01 8.96077848e+01 8.93344170e+01 + 8.90617297e+01 8.87897230e+01 8.85183968e+01 8.82477510e+01 8.79777855e+01 + 8.77085002e+01 8.74398950e+01 8.71719697e+01 8.69047241e+01 8.66381581e+01 + 8.63722714e+01 8.61070638e+01 8.58425350e+01 8.55786849e+01 8.53155130e+01 + 8.50530192e+01 8.47912030e+01 8.45300641e+01 8.42696023e+01 8.40098170e+01 + 8.37507080e+01 8.34922748e+01 8.32345170e+01 8.29774342e+01 8.27210259e+01 + 8.24652916e+01 8.22102308e+01 8.19558432e+01 8.17021280e+01 8.14490849e+01 + 8.11967133e+01 8.09450125e+01 8.06939821e+01 8.04436215e+01 8.01939300e+01 + 7.99449070e+01 7.96965520e+01 7.94488642e+01 7.92018430e+01 7.89554878e+01 + 7.87097978e+01 7.84647724e+01 7.82204109e+01 7.79767125e+01 7.77336765e+01 + 7.74913023e+01 7.72495889e+01 7.70085357e+01 7.67681418e+01 7.65284066e+01 + 7.62893292e+01 7.60509087e+01 7.58131444e+01 7.55760354e+01 7.53395809e+01 + 7.51037800e+01 7.48686319e+01 7.46341358e+01 7.44002906e+01 7.41670955e+01 + 7.39345497e+01 7.37026521e+01 7.34714020e+01 7.32407983e+01 7.30108401e+01 + 7.27815265e+01 7.25528565e+01 7.23248291e+01 7.20974435e+01 7.18706985e+01 + 7.16445932e+01 7.14191266e+01 7.11942977e+01 7.09701055e+01 7.07465489e+01 + 7.05236270e+01 7.03013386e+01 7.00796828e+01 6.98586585e+01 6.96382647e+01 + 6.94185002e+01 6.91993640e+01 6.89808550e+01 6.87629722e+01 6.85457144e+01 + 6.83290806e+01 6.81130696e+01 6.78976804e+01 6.76829117e+01 6.74687626e+01 + 6.72552318e+01 6.70423183e+01 6.68300208e+01 6.66183384e+01 6.64072697e+01 + 6.61968136e+01 6.59869691e+01 6.57777348e+01 6.55691097e+01 6.53610926e+01 + 6.51536823e+01 6.49468776e+01 6.47406774e+01 6.45350803e+01 6.43300853e+01 + 6.41256912e+01 6.39218966e+01 6.37187005e+01 6.35161016e+01 6.33140987e+01 + 6.31126905e+01 6.29118759e+01 6.27116536e+01 6.25120224e+01 6.23129810e+01 + 6.21145283e+01 6.19166629e+01 6.17193836e+01 6.15226892e+01 6.13265785e+01 + 6.11310501e+01 6.09361028e+01 6.07417354e+01 6.05479465e+01 6.03547350e+01 + 6.01620996e+01 5.99700389e+01 5.97785518e+01 5.95876369e+01 5.93972930e+01 + 5.92075188e+01 5.90183130e+01 5.88296743e+01 5.86416014e+01 5.84540932e+01 + 5.82671481e+01 5.80807651e+01 5.78949427e+01 5.77096798e+01 5.75249749e+01 + 5.73408269e+01 5.71572343e+01 5.69741960e+01 5.67917105e+01 5.66097767e+01 + 5.64283931e+01 5.62475586e+01 5.60672718e+01 5.58875313e+01 5.57083359e+01 + 5.55296843e+01 5.53515752e+01 5.51740072e+01 5.49969790e+01 5.48204894e+01 + 5.46445370e+01 5.44691206e+01 5.42942387e+01 5.41198901e+01 5.39460735e+01 + 5.37727875e+01 5.36000309e+01 5.34278023e+01 5.32561004e+01 5.30849240e+01 + 5.29142716e+01 5.27441420e+01 5.25745339e+01 5.24054459e+01 5.22368767e+01 + 5.20688251e+01 5.19012896e+01 5.17342691e+01 5.15677621e+01 5.14017674e+01 + 5.12362836e+01 5.10713095e+01 5.09068437e+01 5.07428849e+01 5.05794318e+01 + 5.04164830e+01 5.02540374e+01 5.00920935e+01 4.99306501e+01 4.97697059e+01 + 4.96092595e+01 4.94493096e+01 4.92898550e+01 4.91308942e+01 4.89724261e+01 + 4.88144493e+01 4.86569626e+01 4.84999645e+01 4.83434539e+01 4.81874293e+01 + 4.80318896e+01 4.78768334e+01 4.77222594e+01 4.75681664e+01 4.74145529e+01 + 4.72614178e+01 4.71087598e+01 4.69565775e+01 4.68048696e+01 4.66536350e+01 + 4.65028722e+01 4.63525800e+01 4.62027572e+01 4.60534023e+01 4.59045143e+01 + 4.57560917e+01 4.56081333e+01 4.54606378e+01 4.53136040e+01 4.51670306e+01 + 4.50209162e+01 4.48752597e+01 4.47300597e+01 4.45853150e+01 4.44410244e+01 + 4.42971865e+01 4.41538001e+01 4.40108640e+01 4.38683768e+01 4.37263374e+01 + 4.35847444e+01 4.34435966e+01 4.33028929e+01 4.31626318e+01 4.30228122e+01 + 4.28834328e+01 4.27444924e+01 4.26059897e+01 4.24679235e+01 4.23302926e+01 + 4.21930956e+01 4.20563315e+01 4.19199989e+01 4.17840967e+01 4.16486235e+01 + 4.15135782e+01 4.13789595e+01 4.12447663e+01 4.11109973e+01 4.09776512e+01 + 4.08447269e+01 4.07122232e+01 4.05801387e+01 4.04484725e+01 4.03172231e+01 + 4.01863895e+01 4.00559704e+01 3.99259645e+01 3.97963709e+01 3.96671881e+01 + 3.95384150e+01 3.94100505e+01 3.92820933e+01 3.91545423e+01 3.90273962e+01 + 3.89006540e+01 3.87743143e+01 3.86483760e+01 3.85228381e+01 3.83976991e+01 + 3.82729581e+01 3.81486139e+01 3.80246652e+01 3.79011109e+01 3.77779498e+01 + 3.76551809e+01 3.75328028e+01 3.74108145e+01 3.72892149e+01 3.71680027e+01 + 3.70471769e+01 3.69267362e+01 3.68066795e+01 3.66870058e+01 3.65677138e+01 + 3.64488024e+01 3.63302705e+01 3.62121170e+01 3.60943407e+01 3.59769405e+01 + 3.58599153e+01 3.57432639e+01 3.56269853e+01 3.55110783e+01 3.53955418e+01 + 3.52803747e+01 3.51655759e+01 3.50511443e+01 3.49370788e+01 3.48233782e+01 + 3.47100416e+01 3.45970677e+01 3.44844555e+01 3.43722040e+01 3.42603119e+01 + 3.41487783e+01 3.40376020e+01 3.39267820e+01 3.38163172e+01 3.37062065e+01 + 3.35964488e+01 3.34870432e+01 3.33779884e+01 3.32692834e+01 3.31609272e+01 + 3.30529188e+01 3.29452570e+01 3.28379408e+01 3.27309691e+01 3.26243410e+01 + 3.25180553e+01 3.24121110e+01 3.23065071e+01 3.22012425e+01 3.20963161e+01 + 3.19917271e+01 3.18874742e+01 3.17835566e+01 3.16799731e+01 3.15767228e+01 + 3.14738046e+01 3.13712175e+01 3.12689604e+01 3.11670325e+01 3.10654326e+01 + 3.09641597e+01 3.08632129e+01 3.07625912e+01 3.06622934e+01 3.05623187e+01 + 3.04626661e+01 3.03633345e+01 3.02643230e+01 3.01656305e+01 3.00672562e+01 + 2.99691989e+01 2.98714578e+01 2.97740318e+01 2.96769199e+01 2.95801213e+01 + 2.94836349e+01 2.93874598e+01 2.92915949e+01 2.91960394e+01 2.91007922e+01 + 2.90058525e+01 2.89112192e+01 2.88168915e+01 2.87228682e+01 2.86291486e+01 + 2.85357317e+01 2.84426165e+01 2.83498020e+01 2.82572874e+01 2.81650717e+01 + 2.80731540e+01 2.79815334e+01 2.78902088e+01 2.77991795e+01 2.77084444e+01 + 2.76180027e+01 2.75278535e+01 2.74379957e+01 2.73484286e+01 2.72591511e+01 + 2.71701625e+01 2.70814617e+01 2.69930480e+01 2.69049203e+01 2.68170778e+01 + 2.67295196e+01 2.66422449e+01 2.65552526e+01 2.64685420e+01 2.63821121e+01 + 2.62959621e+01 2.62100910e+01 2.61244981e+01 2.60391824e+01 2.59541430e+01 + 2.58693792e+01 2.57848899e+01 2.57006744e+01 2.56167319e+01 2.55330613e+01 + 2.54496619e+01 2.53665329e+01 2.52836733e+01 2.52010823e+01 2.51187591e+01 + 2.50367028e+01 2.49549127e+01 2.48733877e+01 2.47921272e+01 2.47111302e+01 + 2.46303959e+01 2.45499236e+01 2.44697123e+01 2.43897613e+01 2.43100697e+01 + 2.42306367e+01 2.41514615e+01 2.40725433e+01 2.39938812e+01 2.39154744e+01 + 2.38373222e+01 2.37594237e+01 2.36817781e+01 2.36043846e+01 2.35272425e+01 + 2.34503509e+01 2.33737090e+01 2.32973160e+01 2.32211711e+01 2.31452736e+01 + 2.30696227e+01 2.29942176e+01 2.29190574e+01 2.28441415e+01 2.27694690e+01 + 2.26950391e+01 2.26208512e+01 2.25469044e+01 2.24731979e+01 2.23997310e+01 + 2.23265030e+01 2.22535130e+01 2.21807603e+01 2.21082441e+01 2.20359638e+01 + 2.19639185e+01 2.18921075e+01 2.18205300e+01 2.17491853e+01 2.16780727e+01 + 2.16071914e+01 2.15365407e+01 2.14661198e+01 2.13959280e+01 2.13259646e+01 + 2.12562288e+01 2.11867200e+01 2.11174373e+01 2.10483801e+01 2.09795476e+01 + 2.09109392e+01 2.08425541e+01 2.07743915e+01 2.07064508e+01 2.06387313e+01 + 2.05712323e+01 2.05039530e+01 2.04368928e+01 2.03700509e+01 2.03034266e+01 + 2.02370194e+01 2.01708283e+01 2.01048528e+01 2.00390922e+01 1.99735458e+01 + 1.99082129e+01 1.98430927e+01 1.97781847e+01 1.97134882e+01 1.96490024e+01 + 1.95847267e+01 1.95206604e+01 1.94568028e+01 1.93931533e+01 1.93297112e+01 + 1.92664759e+01 1.92034466e+01 1.91406227e+01 1.90780035e+01 1.90155885e+01 + 1.89533769e+01 1.88913680e+01 1.88295613e+01 1.87679561e+01 1.87065517e+01 + 1.86453474e+01 1.85843427e+01 1.85235369e+01 1.84629294e+01 1.84025194e+01 + 1.83423064e+01 1.82822898e+01 1.82224689e+01 1.81628431e+01 1.81034117e+01 + 1.80441741e+01 1.79851297e+01 1.79262779e+01 1.78676181e+01 1.78091496e+01 + 1.77508718e+01 1.76927841e+01 1.76348859e+01 1.75771766e+01 1.75196556e+01 + 1.74623222e+01 1.74051759e+01 1.73482160e+01 1.72914420e+01 1.72348532e+01 + 1.71784491e+01 1.71222290e+01 1.70661924e+01 1.70103386e+01 1.69546672e+01 + 1.68991774e+01 1.68438687e+01 1.67887405e+01 1.67337923e+01 1.66790234e+01 + 1.66244333e+01 1.65700214e+01 1.65157871e+01 1.64617298e+01 1.64078490e+01 + 1.63541441e+01 1.63006145e+01 1.62472597e+01 1.61940791e+01 1.61410721e+01 + 1.60882382e+01 1.60355768e+01 1.59830874e+01 1.59307693e+01 1.58786221e+01 + 1.58266452e+01 1.57748380e+01 1.57232000e+01 1.56717306e+01 1.56204294e+01 + 1.55692956e+01 1.55183289e+01 1.54675287e+01 1.54168943e+01 1.53664254e+01 + 1.53161213e+01 1.52659815e+01 1.52160055e+01 1.51661927e+01 1.51165427e+01 + 1.50670549e+01 1.50177287e+01 1.49685637e+01 1.49195593e+01 1.48707150e+01 + 1.48220303e+01 1.47735047e+01 1.47251376e+01 1.46769285e+01 1.46288769e+01 + 1.45809824e+01 1.45332444e+01 1.44856623e+01 1.44382358e+01 1.43909642e+01 + 1.43438471e+01 1.42968840e+01 1.42500743e+01 1.42034177e+01 1.41569135e+01 + 1.41105613e+01 1.40643606e+01 1.40183109e+01 1.39724117e+01 1.39266625e+01 + 1.38810629e+01 1.38356123e+01 1.37903103e+01 1.37451563e+01 1.37001500e+01 + 1.36552907e+01 1.36105781e+01 1.35660117e+01 1.35215910e+01 1.34773155e+01 + 1.34331847e+01 1.33891982e+01 1.33453555e+01 1.33016562e+01 1.32580997e+01 + 1.32146856e+01 1.31714135e+01 1.31282829e+01 1.30852932e+01 1.30424442e+01 + 1.29997352e+01 1.29571659e+01 1.29147358e+01 1.28724444e+01 1.28302914e+01 + 1.27882761e+01 1.27463983e+01 1.27046574e+01 1.26630530e+01 1.26215847e+01 + 1.25802519e+01 1.25390544e+01 1.24979916e+01 1.24570630e+01 1.24162684e+01 + 1.23756071e+01 1.23350789e+01 1.22946831e+01 1.22544196e+01 1.22142877e+01 + 1.21742870e+01 1.21344172e+01 1.20946778e+01 1.20550684e+01 1.20155886e+01 + 1.19762379e+01 1.19370159e+01 1.18979222e+01 1.18589564e+01 1.18201180e+01 + 1.17814067e+01 1.17428220e+01 1.17043636e+01 1.16660310e+01 1.16278237e+01 + 1.15897415e+01 1.15517839e+01 1.15139504e+01 1.14762407e+01 1.14386544e+01 + 1.14011910e+01 1.13638502e+01 1.13266316e+01 1.12895347e+01 1.12525593e+01 + 1.12157048e+01 1.11789708e+01 1.11423571e+01 1.11058632e+01 1.10694887e+01 + 1.10332332e+01 1.09970963e+01 1.09610777e+01 1.09251769e+01 1.08893936e+01 + 1.08537274e+01 1.08181779e+01 1.07827447e+01 1.07474275e+01 1.07122258e+01 + 1.06771394e+01 1.06421677e+01 1.06073105e+01 1.05725674e+01 1.05379379e+01 + 1.05034218e+01 1.04690187e+01 1.04347281e+01 1.04005498e+01 1.03664833e+01 + 1.03325283e+01 1.02986844e+01 1.02649513e+01 1.02313286e+01 1.01978159e+01 + 1.01644129e+01 1.01311193e+01 1.00979346e+01 1.00648585e+01 1.00318907e+01 + 9.99903076e+00 9.96627839e+00 9.93363322e+00 9.90109490e+00 9.86866308e+00 + 9.83614239e+00 9.80319678e+00 9.76982516e+00 9.73603257e+00 9.70182408e+00 + 9.66720477e+00 9.63217974e+00 9.59675413e+00 9.56093309e+00 9.52472178e+00 + 9.48812539e+00 9.45114912e+00 9.41379820e+00 9.37607786e+00 9.33799336e+00 + 9.29954996e+00 9.26075296e+00 9.22160764e+00 9.18211931e+00 9.14229331e+00 + 9.10213495e+00 9.06164959e+00 9.02084257e+00 8.97971926e+00 8.93828502e+00 + 8.89654524e+00 8.85450530e+00 8.81217059e+00 8.76954651e+00 8.72663845e+00 + 8.68345183e+00 8.63999205e+00 8.59626452e+00 8.55227466e+00 8.50802788e+00 + 8.46352960e+00 8.41878522e+00 8.37380017e+00 8.32857986e+00 8.28312970e+00 + 8.23745510e+00 8.19156147e+00 8.14545420e+00 8.09913868e+00 8.05262033e+00 + 8.00590451e+00 7.95899661e+00 7.91190200e+00 7.86462604e+00 7.81717409e+00 + 7.76955150e+00 7.72176361e+00 7.67381573e+00 7.62571320e+00 7.57746130e+00 + 7.52906535e+00 7.48053061e+00 7.43186235e+00 7.38306584e+00 7.33414631e+00 + 7.28510898e+00 7.23595907e+00 7.18670176e+00 7.13734225e+00 7.08788568e+00 + 7.03833721e+00 6.98870196e+00 6.93898503e+00 6.88919151e+00 6.83932648e+00 + 6.78939499e+00 6.73940205e+00 6.68935268e+00 6.63925187e+00 6.58910458e+00 + 6.53891575e+00 6.48869031e+00 6.43843314e+00 6.38814912e+00 6.33784310e+00 + 6.28751990e+00 6.23718433e+00 6.18684115e+00 6.13649511e+00 6.08615093e+00 + 6.03581331e+00 5.98548692e+00 5.93517639e+00 5.88488633e+00 5.83462134e+00 + 5.78438596e+00 5.73418472e+00 5.68402212e+00 5.63390262e+00 5.58383066e+00 + 5.53381065e+00 5.48384696e+00 5.43394394e+00 5.38410590e+00 5.33433712e+00 + 5.28464184e+00 5.23502429e+00 5.18548865e+00 5.13603907e+00 5.08667967e+00 + 5.03741453e+00 4.98824769e+00 4.93918318e+00 4.89022498e+00 4.84137703e+00 + 4.79264324e+00 4.74402749e+00 4.69553363e+00 4.64716544e+00 4.59892671e+00 + 4.55082117e+00 4.50285251e+00 4.45502439e+00 4.40734043e+00 4.35980422e+00 + 4.31241932e+00 4.26518921e+00 4.21811739e+00 4.17120729e+00 4.12446230e+00 + 4.07788579e+00 4.03148106e+00 3.98525142e+00 3.93920009e+00 3.89333028e+00 + 3.84764517e+00 3.80214787e+00 3.75684147e+00 3.71172903e+00 3.66681354e+00 + 3.62209799e+00 3.57758528e+00 3.53327833e+00 3.48917997e+00 3.44529302e+00 + 3.40162024e+00 3.35816437e+00 3.31492809e+00 3.27191405e+00 3.22912486e+00 + 3.18656308e+00 3.14423125e+00 3.10213185e+00 3.06026733e+00 3.01864009e+00 + 2.97725249e+00 2.93610687e+00 2.89520550e+00 2.85455062e+00 2.81414444e+00 + 2.77398912e+00 2.73408678e+00 2.69443950e+00 2.65504931e+00 2.61591822e+00 + 2.57704818e+00 2.53844110e+00 2.50009887e+00 2.46202332e+00 2.42421623e+00 + 2.38667938e+00 2.34941446e+00 2.31242315e+00 2.27570709e+00 2.23926786e+00 + 2.20310702e+00 2.16722608e+00 2.13162650e+00 2.09630973e+00 2.06127714e+00 + 2.02653009e+00 1.99206990e+00 1.95789783e+00 1.92401511e+00 1.89042294e+00 + 1.85712247e+00 1.82411481e+00 1.79140103e+00 1.75898217e+00 1.72685923e+00 + 1.69503316e+00 1.66350488e+00 1.63227527e+00 1.60134517e+00 1.57071538e+00 + 1.54038667e+00 1.51035976e+00 1.48063534e+00 1.45121406e+00 1.42209654e+00 + 1.39328335e+00 1.36477502e+00 1.33657207e+00 1.30867494e+00 1.28108408e+00 + 1.25379988e+00 1.22682267e+00 1.20015280e+00 1.17379052e+00 1.14773611e+00 + 1.12198975e+00 1.09655164e+00 1.07142191e+00 1.04660066e+00 1.02208796e+00 + 9.97883860e-01 9.73988350e-01 9.50401399e-01 9.27122941e-01 9.04152875e-01 + 8.81491067e-01 8.59137350e-01 8.37091523e-01 8.15353353e-01 7.93922575e-01 + 7.72798890e-01 7.51981967e-01 7.31471445e-01 7.11266929e-01 6.91367995e-01 + 6.71774185e-01 6.52485014e-01 6.33499962e-01 6.14818482e-01 5.96439995e-01 + 5.78363892e-01 5.60589536e-01 5.43116259e-01 5.25943365e-01 5.09070129e-01 + 4.92495797e-01 4.76219586e-01 4.60240687e-01 4.44558262e-01 4.29171445e-01 + 4.14079344e-01 3.99281039e-01 3.84775584e-01 3.70562007e-01 3.56639309e-01 + 3.43006466e-01 3.29662427e-01 3.16606118e-01 3.03836438e-01 2.91352263e-01 + 2.79152444e-01 2.67235806e-01 2.55601154e-01 2.44247267e-01 2.33172900e-01 + 2.22376787e-01 2.11857640e-01 2.01614145e-01 1.91644970e-01 1.81948759e-01 + 1.72524135e-01 1.63369700e-01 1.54484036e-01 1.45865702e-01 1.37513239e-01 + 1.29425168e-01 1.21599989e-01 1.14036184e-01 1.06732215e-01 9.96865252e-02 + 9.28975401e-02 8.63636667e-02 8.00832940e-02 7.40547937e-02 6.82765202e-02 + 6.27468109e-02 5.74639865e-02 5.24263517e-02 4.76321948e-02 4.30797886e-02 + 3.87673904e-02 3.46932424e-02 3.08555720e-02 2.72525920e-02 2.38825011e-02 + 2.07434841e-02 1.78337121e-02 1.51513430e-02 1.26945216e-02 1.04613800e-02 + 8.45003801e-03 6.65860321e-03 5.08517143e-03 3.72782701e-03 2.58464306e-03 + 1.65368178e-03 9.32994753e-04 4.20623265e-04 1.14598566e-04 1.29421836e-05 + 1.42532190e+04 1.42532190e+04 8.35034822e+03 5.54302535e+03 4.13949198e+03 + 3.29747342e+03 2.73621144e+03 2.33538110e+03 2.03481994e+03 1.80110437e+03 + 1.61418025e+03 1.46128584e+03 1.33391334e+03 1.22617273e+03 1.13385685e+03 + 1.05388046e+03 9.83929637e+02 9.22234903e+02 8.67420006e+02 8.18398433e+02 + 7.74300975e+02 7.34423991e+02 6.98191774e+02 6.65128743e+02 6.34838584e+02 + 6.06988393e+02 5.81296485e+02 5.57522906e+02 5.35461985e+02 5.14936419e+02 + 4.95792548e+02 4.77896540e+02 4.61131293e+02 4.45393901e+02 4.30593565e+02 + 4.16649865e+02 4.03491318e+02 3.91054168e+02 3.79281373e+02 3.68121742e+02 + 3.57529204e+02 3.47462184e+02 3.37883066e+02 3.28757736e+02 3.20055180e+02 + 3.11747144e+02 3.03807830e+02 2.96213636e+02 2.88942929e+02 2.81975842e+02 + 2.75294097e+02 2.68880852e+02 2.62720560e+02 2.56798848e+02 2.51102410e+02 + 2.45618906e+02 2.40336878e+02 2.35245675e+02 2.30335379e+02 2.25596746e+02 + 2.21021147e+02 2.16600522e+02 2.12327330e+02 2.08194509e+02 2.04195440e+02 + 2.00323909e+02 1.96574084e+02 1.92940476e+02 1.89417923e+02 1.86001562e+02 + 1.82686808e+02 1.79469334e+02 1.76345054e+02 1.73310107e+02 1.70360841e+02 + 1.67493798e+02 1.64705704e+02 1.61993454e+02 1.59354103e+02 1.56784856e+02 + 1.54283057e+02 1.51846183e+02 1.49471832e+02 1.47157720e+02 1.44901673e+02 + 1.42701615e+02 1.40555573e+02 1.38461660e+02 1.36418077e+02 1.34423107e+02 + 1.32475108e+02 1.30572512e+02 1.28713816e+02 1.26897587e+02 1.25122449e+02 + 1.23387086e+02 1.21690237e+02 1.20030692e+02 1.18407293e+02 1.16818927e+02 + 1.15264525e+02 1.13743063e+02 1.12253557e+02 1.10795059e+02 1.09366659e+02 + 1.07967484e+02 1.06596690e+02 1.05253468e+02 1.03937038e+02 1.02646649e+02 + 1.01381577e+02 1.00141124e+02 9.89246189e+01 9.77314125e+01 9.65608793e+01 + 9.54124160e+01 9.42854397e+01 9.31793879e+01 9.20937174e+01 9.10279032e+01 + 8.99814378e+01 8.89538311e+01 8.79446087e+01 8.69533121e+01 8.59794975e+01 + 8.50227355e+01 8.40826106e+01 8.31587203e+01 8.22506749e+01 8.13580969e+01 + 8.04806206e+01 7.96178913e+01 7.87695656e+01 7.79353102e+01 7.71148019e+01 + 7.63077273e+01 7.55137824e+01 7.47326719e+01 7.39641093e+01 7.32078166e+01 + 7.24635236e+01 7.17309679e+01 7.10098949e+01 7.03000567e+01 6.96012128e+01 + 6.89131293e+01 6.82355787e+01 6.75683399e+01 6.69111977e+01 6.62639431e+01 + 6.56263723e+01 6.49982874e+01 6.43794956e+01 6.37698091e+01 6.31690453e+01 + 6.25770263e+01 6.19935787e+01 6.14185338e+01 6.08517272e+01 6.02929986e+01 + 5.97421918e+01 5.91991547e+01 5.86637390e+01 5.81357998e+01 5.76151962e+01 + 5.71017906e+01 5.65954489e+01 5.60960400e+01 5.56034362e+01 5.51175129e+01 + 5.46381485e+01 5.41652242e+01 5.36986241e+01 5.32382349e+01 5.27839462e+01 + 5.23356501e+01 5.18932410e+01 5.14566160e+01 5.10256745e+01 5.06003182e+01 + 5.01804510e+01 4.97659789e+01 4.93568102e+01 4.89528552e+01 4.85540261e+01 + 4.81602371e+01 4.77714044e+01 4.73874459e+01 4.70082813e+01 4.66338322e+01 + 4.62640217e+01 4.58987746e+01 4.55380174e+01 4.51816782e+01 4.48296865e+01 + 4.44819732e+01 4.41384709e+01 4.37991135e+01 4.34638362e+01 4.31325757e+01 + 4.28052699e+01 4.24818579e+01 4.21622802e+01 4.18464784e+01 4.15343953e+01 + 4.12259749e+01 4.09211624e+01 4.06199038e+01 4.03221464e+01 4.00278386e+01 + 3.97369296e+01 3.94493698e+01 3.91651104e+01 3.88841037e+01 3.86063027e+01 + 3.83316615e+01 3.80601351e+01 3.77916792e+01 3.75262504e+01 3.72638062e+01 + 3.70043048e+01 3.67477053e+01 3.64939673e+01 3.62430514e+01 3.59949189e+01 + 3.57495317e+01 3.55068525e+01 3.52668446e+01 3.50294720e+01 3.47946994e+01 + 3.45624920e+01 3.43328158e+01 3.41056372e+01 3.38809233e+01 3.36586419e+01 + 3.34387612e+01 3.32212499e+01 3.30060774e+01 3.27932136e+01 3.25826288e+01 + 3.23742940e+01 3.21681806e+01 3.19642604e+01 3.17625057e+01 3.15628894e+01 + 3.13653847e+01 3.11699654e+01 3.09766056e+01 3.07852799e+01 3.05959632e+01 + 3.04086309e+01 3.02232588e+01 3.00398232e+01 2.98583005e+01 2.96786677e+01 + 2.95009021e+01 2.93249814e+01 2.91508835e+01 2.89785868e+01 2.88080701e+01 + 2.86393122e+01 2.84722926e+01 2.83069909e+01 2.81433870e+01 2.79814613e+01 + 2.78211942e+01 2.76625666e+01 2.75055597e+01 2.73501548e+01 2.71963336e+01 + 2.70440781e+01 2.68933704e+01 2.67441931e+01 2.65965287e+01 2.64503604e+01 + 2.63056711e+01 2.61624445e+01 2.60206641e+01 2.58803138e+01 2.57413777e+01 + 2.56038401e+01 2.54676856e+01 2.53328988e+01 2.51994647e+01 2.50673684e+01 + 2.49365953e+01 2.48071308e+01 2.46789607e+01 2.45520708e+01 2.44264471e+01 + 2.43020760e+01 2.41789438e+01 2.40570371e+01 2.39363426e+01 2.38168472e+01 + 2.36985380e+01 2.35814021e+01 2.34654270e+01 2.33506000e+01 2.32369090e+01 + 2.31243415e+01 2.30128857e+01 2.29025295e+01 2.27932611e+01 2.26850689e+01 + 2.25779413e+01 2.24718668e+01 2.23668342e+01 2.22628324e+01 2.21598501e+01 + 2.20578765e+01 2.19569007e+01 2.18569121e+01 2.17578999e+01 2.16598537e+01 + 2.15627630e+01 2.14666176e+01 2.13714072e+01 2.12771217e+01 2.11837511e+01 + 2.10912855e+01 2.09997150e+01 2.09090298e+01 2.08192204e+01 2.07302772e+01 + 2.06421906e+01 2.05549512e+01 2.04685498e+01 2.03829771e+01 2.02982239e+01 + 2.02142812e+01 2.01311398e+01 2.00487910e+01 1.99672258e+01 1.98864354e+01 + 1.98064111e+01 1.97271442e+01 1.96486262e+01 1.95708485e+01 1.94938027e+01 + 1.94174804e+01 1.93418732e+01 1.92669729e+01 1.91927713e+01 1.91192603e+01 + 1.90464316e+01 1.89742774e+01 1.89027897e+01 1.88319605e+01 1.87617819e+01 + 1.86922463e+01 1.86233458e+01 1.85550727e+01 1.84874195e+01 1.84203785e+01 + 1.83539421e+01 1.82881030e+01 1.82228537e+01 1.81581868e+01 1.80940949e+01 + 1.80305708e+01 1.79676074e+01 1.79051973e+01 1.78433334e+01 1.77820088e+01 + 1.77212163e+01 1.76609489e+01 1.76011998e+01 1.75419620e+01 1.74832287e+01 + 1.74249931e+01 1.73672484e+01 1.73099880e+01 1.72532052e+01 1.71968933e+01 + 1.71410459e+01 1.70856564e+01 1.70307183e+01 1.69762252e+01 1.69221707e+01 + 1.68685486e+01 1.68153525e+01 1.67625761e+01 1.67102134e+01 1.66582581e+01 + 1.66067041e+01 1.65555455e+01 1.65047762e+01 1.64543902e+01 1.64043816e+01 + 1.63547447e+01 1.63054735e+01 1.62565623e+01 1.62080053e+01 1.61597970e+01 + 1.61119317e+01 1.60644038e+01 1.60172077e+01 1.59703381e+01 1.59237895e+01 + 1.58775564e+01 1.58316337e+01 1.57860159e+01 1.57406980e+01 1.56956746e+01 + 1.56509407e+01 1.56064912e+01 1.55623210e+01 1.55184252e+01 1.54747989e+01 + 1.54314371e+01 1.53883351e+01 1.53454881e+01 1.53028914e+01 1.52605403e+01 + 1.52184302e+01 1.51765565e+01 1.51349148e+01 1.50935005e+01 1.50523092e+01 + 1.50113367e+01 1.49705786e+01 1.49300307e+01 1.48896888e+01 1.48495487e+01 + 1.48096064e+01 1.47698579e+01 1.47302991e+01 1.46909262e+01 1.46517353e+01 + 1.46127226e+01 1.45738843e+01 1.45352167e+01 1.44967163e+01 1.44583793e+01 + 1.44202022e+01 1.43821817e+01 1.43443142e+01 1.43065963e+01 1.42690248e+01 + 1.42315964e+01 1.41943079e+01 1.41571561e+01 1.41201380e+01 1.40832504e+01 + 1.40464903e+01 1.40098550e+01 1.39733414e+01 1.39369467e+01 1.39006681e+01 + 1.38645030e+01 1.38284486e+01 1.37925024e+01 1.37566617e+01 1.37209240e+01 + 1.36852870e+01 1.36497481e+01 1.36143050e+01 1.35789554e+01 1.35436970e+01 + 1.35085277e+01 1.34734452e+01 1.34384476e+01 1.34035326e+01 1.33686983e+01 + 1.33339428e+01 1.32992641e+01 1.32646604e+01 1.32301299e+01 1.31956707e+01 + 1.31612811e+01 1.31269596e+01 1.30927044e+01 1.30585140e+01 1.30243869e+01 + 1.29903215e+01 1.29563163e+01 1.29223701e+01 1.28884813e+01 1.28546488e+01 + 1.28208712e+01 1.27871473e+01 1.27534759e+01 1.27198558e+01 1.26862859e+01 + 1.26527651e+01 1.26192925e+01 1.25858669e+01 1.25524875e+01 1.25191534e+01 + 1.24858635e+01 1.24526171e+01 1.24194134e+01 1.23862516e+01 1.23531309e+01 + 1.23200507e+01 1.22870102e+01 1.22540087e+01 1.22210458e+01 1.21881208e+01 + 1.21552331e+01 1.21223823e+01 1.20895678e+01 1.20567892e+01 1.20240460e+01 + 1.19913379e+01 1.19586644e+01 1.19260252e+01 1.18934200e+01 1.18608486e+01 + 1.18283105e+01 1.17958056e+01 1.17633336e+01 1.17308944e+01 1.16984877e+01 + 1.16661134e+01 1.16337715e+01 1.16014616e+01 1.15691839e+01 1.15369381e+01 + 1.15047243e+01 1.14725424e+01 1.14403924e+01 1.14082743e+01 1.13761882e+01 + 1.13441340e+01 1.13121118e+01 1.12801217e+01 1.12481638e+01 1.12162382e+01 + 1.11843451e+01 1.11524844e+01 1.11206564e+01 1.10888613e+01 1.10570992e+01 + 1.10253702e+01 1.09936747e+01 1.09620128e+01 1.09303847e+01 1.08987906e+01 + 1.08672309e+01 1.08357056e+01 1.08042152e+01 1.07727598e+01 1.07413398e+01 + 1.07099554e+01 1.06786069e+01 1.06472947e+01 1.06160189e+01 1.05847800e+01 + 1.05535783e+01 1.05224140e+01 1.04912875e+01 1.04601992e+01 1.04291494e+01 + 1.03981385e+01 1.03671667e+01 1.03362344e+01 1.03053421e+01 1.02744901e+01 + 1.02436786e+01 1.02129082e+01 1.01821791e+01 1.01514918e+01 1.01208466e+01 + 1.00902439e+01 1.00596841e+01 1.00291676e+01 9.99869465e+00 9.96826576e+00 + 9.93788127e+00 9.90754156e+00 9.87724703e+00 9.84699806e+00 9.81679503e+00 + 9.78663832e+00 9.75652833e+00 9.72646541e+00 9.69644998e+00 9.66648239e+00 + 9.63656303e+00 9.60669228e+00 9.57687051e+00 9.54709811e+00 9.51737543e+00 + 9.48770285e+00 9.45808075e+00 9.42850948e+00 9.39898941e+00 9.36952091e+00 + 9.34010432e+00 9.31074002e+00 9.28142834e+00 9.25216964e+00 9.22296427e+00 + 9.19381257e+00 9.16471488e+00 9.13567154e+00 9.10668288e+00 9.07774924e+00 + 9.04887094e+00 9.02004831e+00 8.99128166e+00 8.96257131e+00 8.93391757e+00 + 8.90532075e+00 8.87678116e+00 8.84829910e+00 8.81987485e+00 8.79150872e+00 + 8.76320099e+00 8.73495195e+00 8.70676187e+00 8.67863103e+00 8.65055970e+00 + 8.62254815e+00 8.59459664e+00 8.56670543e+00 8.53887477e+00 8.51110492e+00 + 8.48339611e+00 8.45574859e+00 8.42816259e+00 8.40063835e+00 8.37317608e+00 + 8.34577603e+00 8.31843839e+00 8.29116339e+00 8.26395124e+00 8.23680214e+00 + 8.20971629e+00 8.18269388e+00 8.15573511e+00 8.12884017e+00 8.10200923e+00 + 8.07524248e+00 8.04854008e+00 8.02190221e+00 7.99532904e+00 7.96882072e+00 + 7.94237740e+00 7.91599925e+00 7.88968640e+00 7.86343901e+00 7.83725720e+00 + 7.81114112e+00 7.78509089e+00 7.75910664e+00 7.73318849e+00 7.70733656e+00 + 7.68155097e+00 7.65583181e+00 7.63017921e+00 7.60459325e+00 7.57907404e+00 + 7.55362167e+00 7.52823623e+00 7.50291780e+00 7.47766647e+00 7.45248231e+00 + 7.42736540e+00 7.40231580e+00 7.37733359e+00 7.35241882e+00 7.32757156e+00 + 7.30279186e+00 7.27807976e+00 7.25343533e+00 7.22885860e+00 7.20434961e+00 + 7.17990840e+00 7.15553501e+00 7.13122946e+00 7.10699178e+00 7.08282200e+00 + 7.05872014e+00 7.03468621e+00 7.01072022e+00 6.98682220e+00 6.96299214e+00 + 6.93923004e+00 6.91553592e+00 6.89190977e+00 6.86835159e+00 6.84486136e+00 + 6.82143907e+00 6.79808472e+00 6.77479828e+00 6.75157975e+00 6.72842908e+00 + 6.70534627e+00 6.68233128e+00 6.65938408e+00 6.63650464e+00 6.61369293e+00 + 6.59094890e+00 6.56827252e+00 6.54566374e+00 6.52312252e+00 6.50064881e+00 + 6.47824255e+00 6.45590371e+00 6.43363221e+00 6.41142801e+00 6.38929105e+00 + 6.36722125e+00 6.34521857e+00 6.32328293e+00 6.30141427e+00 6.27961251e+00 + 6.25787758e+00 6.23620941e+00 6.21460793e+00 6.19307305e+00 6.17160469e+00 + 6.15020277e+00 6.12886721e+00 6.10759793e+00 6.08639483e+00 6.06525782e+00 + 6.04418682e+00 6.02318173e+00 6.00224246e+00 5.98136891e+00 5.96056098e+00 + 5.93981858e+00 5.91914161e+00 5.89852995e+00 5.87798352e+00 5.85750219e+00 + 5.83708588e+00 5.81673446e+00 5.79644783e+00 5.77622588e+00 5.75606849e+00 + 5.73597556e+00 5.71594697e+00 5.69598259e+00 5.67608233e+00 5.65624605e+00 + 5.63647363e+00 5.61676497e+00 5.59711992e+00 5.57753838e+00 5.55802022e+00 + 5.53856531e+00 5.51917352e+00 5.49984474e+00 5.48057882e+00 5.46137565e+00 + 5.44223509e+00 5.42315701e+00 5.40414129e+00 5.38518777e+00 5.36629635e+00 + 5.34746687e+00 5.32869920e+00 5.30999322e+00 5.29134877e+00 5.27276573e+00 + 5.25424395e+00 5.23578330e+00 5.21738364e+00 5.19904482e+00 5.18076671e+00 + 5.16254917e+00 5.14439204e+00 5.12629520e+00 5.10825849e+00 5.09028177e+00 + 5.07236490e+00 5.05450773e+00 5.03671012e+00 5.01897192e+00 5.00129298e+00 + 4.98367316e+00 4.96611231e+00 4.94861028e+00 4.93116692e+00 4.91378209e+00 + 4.89645563e+00 4.87918740e+00 4.86197724e+00 4.84482501e+00 4.82773055e+00 + 4.81069372e+00 4.79371436e+00 4.77679233e+00 4.75992746e+00 4.74311961e+00 + 4.72636862e+00 4.70967435e+00 4.69303663e+00 4.67645533e+00 4.65993027e+00 + 4.64346132e+00 4.62704831e+00 4.61069110e+00 4.59438952e+00 4.57814343e+00 + 4.56195267e+00 4.54581708e+00 4.52973652e+00 4.51371082e+00 4.49773984e+00 + 4.48182341e+00 4.46596139e+00 4.45015361e+00 4.43439993e+00 4.41870018e+00 + 4.40305422e+00 4.38746188e+00 4.37192301e+00 4.35643746e+00 4.34100508e+00 + 4.32562570e+00 4.31029917e+00 4.29502534e+00 4.27980405e+00 4.26463514e+00 + 4.24951847e+00 4.23445387e+00 4.21944120e+00 4.20448029e+00 4.18957099e+00 + 4.17471315e+00 4.15990661e+00 4.14515122e+00 4.13044682e+00 4.11579326e+00 + 4.10119038e+00 4.08663804e+00 4.07213607e+00 4.05768433e+00 4.04328265e+00 + 4.02893089e+00 4.01462889e+00 4.00037650e+00 3.98617357e+00 3.97201993e+00 + 3.95791545e+00 3.94385997e+00 3.92985333e+00 3.91589538e+00 3.90198597e+00 + 3.88812495e+00 3.87431217e+00 3.86054747e+00 3.84683071e+00 3.83316173e+00 + 3.81954038e+00 3.80596652e+00 3.79243998e+00 3.77896063e+00 3.76552831e+00 + 3.75214287e+00 3.73880416e+00 3.72551204e+00 3.71226635e+00 3.69906694e+00 + 3.68591367e+00 3.67280639e+00 3.65974495e+00 3.64672921e+00 3.63375901e+00 + 3.62083421e+00 3.60795466e+00 3.59512021e+00 3.58233073e+00 3.56958605e+00 + 3.55688605e+00 3.54423056e+00 3.53161946e+00 3.51905258e+00 3.50652979e+00 + 3.49405095e+00 3.48161590e+00 3.46922451e+00 3.45687663e+00 3.44457213e+00 + 3.43231084e+00 3.42009264e+00 3.40791739e+00 3.39578493e+00 3.38369513e+00 + 3.37164785e+00 3.35964295e+00 3.34768028e+00 3.33575971e+00 3.32388109e+00 + 3.31204429e+00 3.30024917e+00 3.28849559e+00 3.27678341e+00 3.26511249e+00 + 3.25348269e+00 3.24189388e+00 3.23034592e+00 3.21883867e+00 3.20737200e+00 + 3.19594577e+00 3.18455984e+00 3.17321408e+00 3.16190835e+00 3.15064252e+00 + 3.13941646e+00 3.12823003e+00 3.11708309e+00 3.10597552e+00 3.09490717e+00 + 3.08387793e+00 3.07288764e+00 3.06193620e+00 3.05102345e+00 3.04014927e+00 + 3.02931353e+00 3.01851611e+00 3.00775685e+00 2.99703565e+00 2.98635237e+00 + 2.97570688e+00 2.96509904e+00 2.95452874e+00 2.94399585e+00 2.93350023e+00 + 2.92304176e+00 2.91262032e+00 2.90223577e+00 2.89188799e+00 2.88157685e+00 + 2.87130223e+00 2.86106401e+00 2.85086205e+00 2.84069624e+00 2.83056645e+00 + 2.82047255e+00 2.81041442e+00 2.80039195e+00 2.79040500e+00 2.78045345e+00 + 2.77053719e+00 2.76065609e+00 2.75081003e+00 2.74099889e+00 2.73122254e+00 + 2.72148088e+00 2.71177377e+00 2.70210110e+00 2.69246275e+00 2.68285861e+00 + 2.67328854e+00 2.66375244e+00 2.65425019e+00 2.64478167e+00 2.63534676e+00 + 2.62594535e+00 2.61657732e+00 2.60724255e+00 2.59794093e+00 2.58867235e+00 + 2.57943668e+00 2.57023382e+00 2.56106365e+00 2.55192606e+00 2.54282093e+00 + 2.53374816e+00 2.52470762e+00 2.51569920e+00 2.50672280e+00 2.49777830e+00 + 2.48886559e+00 2.47998457e+00 2.47113511e+00 2.46231711e+00 2.45353046e+00 + 2.44477506e+00 2.43605078e+00 2.42735752e+00 2.41869518e+00 2.41006365e+00 + 2.40146281e+00 2.39289257e+00 2.38435280e+00 2.37584342e+00 2.36736430e+00 + 2.35891535e+00 2.35049646e+00 2.34210752e+00 2.33374843e+00 2.32541909e+00 + 2.31711938e+00 2.30884921e+00 2.30060847e+00 2.29239706e+00 2.28421488e+00 + 2.27606182e+00 2.26793778e+00 2.25984266e+00 2.25177636e+00 2.24373877e+00 + 2.23572980e+00 2.22774934e+00 2.21979730e+00 2.21187357e+00 2.20397806e+00 + 2.19611066e+00 2.18827128e+00 2.18045982e+00 2.17267618e+00 2.16492026e+00 + 2.15719196e+00 2.14949119e+00 2.14181785e+00 2.13417184e+00 2.12655307e+00 + 2.11896144e+00 2.11139686e+00 2.10385922e+00 2.09634844e+00 2.08886442e+00 + 2.08140707e+00 2.07397629e+00 2.06657198e+00 2.05919406e+00 2.05184243e+00 + 2.04451700e+00 2.03721767e+00 2.02994436e+00 2.02269697e+00 2.01547541e+00 + 2.00827959e+00 2.00110941e+00 1.99396479e+00 1.98684564e+00 1.97975187e+00 + 1.97268338e+00 1.96564009e+00 1.95862191e+00 1.95162875e+00 1.94466051e+00 + 1.93771713e+00 1.93079849e+00 1.92390453e+00 1.91703514e+00 1.91019025e+00 + 1.90336976e+00 1.89657359e+00 1.88980166e+00 1.88305387e+00 1.87633015e+00 + 1.86963040e+00 1.86295454e+00 1.85630249e+00 1.84967417e+00 1.84306948e+00 + 1.83648835e+00 1.82993069e+00 1.82339642e+00 1.81688545e+00 1.81039771e+00 + 1.80393311e+00 1.79749156e+00 1.79107300e+00 1.78467732e+00 1.77830446e+00 + 1.77195434e+00 1.76562686e+00 1.75932196e+00 1.75303955e+00 1.74677955e+00 + 1.74054188e+00 1.73432647e+00 1.72813323e+00 1.72196208e+00 1.71581295e+00 + 1.70968576e+00 1.70358043e+00 1.69749689e+00 1.69143505e+00 1.68539483e+00 + 1.67937617e+00 1.67337899e+00 1.66740320e+00 1.66144874e+00 1.65551552e+00 + 1.64960347e+00 1.64371252e+00 1.63784260e+00 1.63199361e+00 1.62616550e+00 + 1.62035819e+00 1.61457160e+00 1.60880567e+00 1.60306030e+00 1.59733545e+00 + 1.59163102e+00 1.58594695e+00 1.58028317e+00 1.57463960e+00 1.56901617e+00 + 1.56341281e+00 1.55782945e+00 1.55226601e+00 1.54672244e+00 1.54119865e+00 + 1.53569457e+00 1.53021014e+00 1.52474528e+00 1.51929993e+00 1.51387402e+00 + 1.50846747e+00 1.50308023e+00 1.49771221e+00 1.49236335e+00 1.48703358e+00 + 1.48172284e+00 1.47643106e+00 1.47115816e+00 1.46590409e+00 1.46066878e+00 + 1.45545215e+00 1.45025414e+00 1.44507469e+00 1.43991373e+00 1.43477119e+00 + 1.42964701e+00 1.42454112e+00 1.41945346e+00 1.41438397e+00 1.40933257e+00 + 1.40429920e+00 1.39928380e+00 1.39428631e+00 1.38930666e+00 1.38434479e+00 + 1.37940063e+00 1.37447412e+00 1.36956521e+00 1.36467381e+00 1.35979988e+00 + 1.35494335e+00 1.35010416e+00 1.34528225e+00 1.34047755e+00 1.33569001e+00 + 1.33091956e+00 1.32616615e+00 1.32142970e+00 1.31671017e+00 1.31200748e+00 + 1.30732159e+00 1.30265243e+00 1.29799993e+00 1.29336405e+00 1.28874473e+00 + 1.28414189e+00 1.27955549e+00 1.27498547e+00 1.27043177e+00 1.26589432e+00 + 1.26137308e+00 1.25686798e+00 1.25237896e+00 1.24790598e+00 1.24344896e+00 + 1.23900786e+00 1.23458262e+00 1.23017318e+00 1.22577949e+00 1.22140148e+00 + 1.21703911e+00 1.21269231e+00 1.20836104e+00 1.20404523e+00 1.19974484e+00 + 1.19545980e+00 1.19119006e+00 1.18693557e+00 1.18269627e+00 1.17847210e+00 + 1.17426303e+00 1.17006898e+00 1.16588991e+00 1.16172576e+00 1.15757649e+00 + 1.15344203e+00 1.14932233e+00 1.14521735e+00 1.14112702e+00 1.13705130e+00 + 1.13299014e+00 1.12894348e+00 1.12491127e+00 1.12089346e+00 1.11689000e+00 + 1.11290083e+00 1.10892591e+00 1.10496519e+00 1.10101861e+00 1.09708612e+00 + 1.09316768e+00 1.08926323e+00 1.08537272e+00 1.08149611e+00 1.07763334e+00 + 1.07378437e+00 1.06994914e+00 1.06612761e+00 1.06231972e+00 1.05852544e+00 + 1.05474470e+00 1.05097747e+00 1.04722369e+00 1.04348332e+00 1.03975630e+00 + 1.03604260e+00 1.03234216e+00 1.02865493e+00 1.02498087e+00 1.02131993e+00 + 1.01767207e+00 1.01403724e+00 1.01041538e+00 1.00680646e+00 1.00321043e+00 + 9.99627246e-01 9.96056856e-01 9.92499216e-01 9.88954283e-01 9.85422010e-01 + 9.81902352e-01 9.78395264e-01 9.74900702e-01 9.71418620e-01 9.67948974e-01 + 9.64491719e-01 9.61046812e-01 9.57614208e-01 9.54193864e-01 9.50785735e-01 + 9.47389779e-01 9.44005950e-01 9.40634207e-01 9.37274506e-01 9.33926805e-01 + 9.30591059e-01 9.27267227e-01 9.23955266e-01 9.20655134e-01 9.17366788e-01 + 9.14090187e-01 9.10825288e-01 9.07572050e-01 9.04330430e-01 9.01100389e-01 + 8.97881883e-01 8.94674872e-01 8.91479316e-01 8.88295172e-01 8.85122401e-01 + 8.81960962e-01 8.78810814e-01 8.75671916e-01 8.72544230e-01 8.69427714e-01 + 8.66322329e-01 8.63228035e-01 8.60144793e-01 8.57072563e-01 8.54011306e-01 + 8.50960982e-01 8.47921552e-01 8.44892979e-01 8.41875222e-01 8.38868243e-01 + 8.35872004e-01 8.32886467e-01 8.29911592e-01 8.26947343e-01 8.23993681e-01 + 8.21050568e-01 8.18117967e-01 8.15195841e-01 8.12284151e-01 8.09382860e-01 + 8.06491932e-01 8.03611329e-01 8.00741015e-01 7.97880952e-01 7.95031104e-01 + 7.92191436e-01 7.89361909e-01 7.86542489e-01 7.83733138e-01 7.80932737e-01 + 7.78135481e-01 7.75340559e-01 7.72548015e-01 7.69757898e-01 7.66970253e-01 + 7.64185126e-01 7.61402562e-01 7.58622607e-01 7.55845306e-01 7.53070703e-01 + 7.50298843e-01 7.47529769e-01 7.44763525e-01 7.42000155e-01 7.39239702e-01 + 7.36482208e-01 7.33727716e-01 7.30976267e-01 7.28227905e-01 7.25482670e-01 + 7.22740604e-01 7.20001747e-01 7.17266140e-01 7.14533823e-01 7.11804837e-01 + 7.09079221e-01 7.06357014e-01 7.03638256e-01 7.00922986e-01 6.98211241e-01 + 6.95503060e-01 6.92798481e-01 6.90097542e-01 6.87400280e-01 6.84706731e-01 + 6.82016933e-01 6.79330922e-01 6.76648734e-01 6.73970405e-01 6.71295970e-01 + 6.68625464e-01 6.65958924e-01 6.63296382e-01 6.60637874e-01 6.57983434e-01 + 6.55333095e-01 6.52686890e-01 6.50044854e-01 6.47407019e-01 6.44773417e-01 + 6.42144081e-01 6.39519042e-01 6.36898334e-01 6.34281986e-01 6.31670031e-01 + 6.29062499e-01 6.26459420e-01 6.23860826e-01 6.21266746e-01 6.18677209e-01 + 6.16092246e-01 6.13511886e-01 6.10936157e-01 6.08365088e-01 6.05798708e-01 + 6.03237045e-01 6.00680126e-01 5.98127979e-01 5.95580631e-01 5.93038110e-01 + 5.90500441e-01 5.87967652e-01 5.85439769e-01 5.82916817e-01 5.80398823e-01 + 5.77885811e-01 5.75377807e-01 5.72874835e-01 5.70376921e-01 5.67884088e-01 + 5.65396360e-01 5.62913762e-01 5.60436316e-01 5.57964047e-01 5.55496977e-01 + 5.53035128e-01 5.50578524e-01 5.48127187e-01 5.45681138e-01 5.43240399e-01 + 5.40804991e-01 5.38374937e-01 5.35950256e-01 5.33530970e-01 5.31117099e-01 + 5.28708663e-01 5.26305682e-01 5.23908176e-01 5.21516164e-01 5.19129666e-01 + 5.16748699e-01 5.14373284e-01 5.12003438e-01 5.09639180e-01 5.07280528e-01 + 5.04927499e-01 5.02580111e-01 5.00238381e-01 4.97902326e-01 4.95571964e-01 + 4.93247309e-01 4.90928379e-01 4.88615190e-01 4.86307758e-01 4.84006098e-01 + 4.81710225e-01 4.79420155e-01 4.77135903e-01 4.74857483e-01 4.72584909e-01 + 4.70318196e-01 4.68057358e-01 4.65802409e-01 4.63553362e-01 4.61310230e-01 + 4.59073026e-01 4.56841764e-01 4.54616456e-01 4.52397114e-01 4.50183750e-01 + 4.47976377e-01 4.45775007e-01 4.43579650e-01 4.41390318e-01 4.39207022e-01 + 4.37029774e-01 4.34858583e-01 4.32693460e-01 4.30534416e-01 4.28381460e-01 + 4.26234603e-01 4.24093854e-01 4.21959222e-01 4.19830716e-01 4.17708346e-01 + 4.15592121e-01 4.13482048e-01 4.11378137e-01 4.09280395e-01 4.07188831e-01 + 4.05103452e-01 4.03024267e-01 4.00951281e-01 3.98884503e-01 3.96823939e-01 + 3.94769597e-01 3.92721483e-01 3.90679603e-01 3.88643963e-01 3.86614570e-01 + 3.84591429e-01 3.82574547e-01 3.80563928e-01 3.78559578e-01 3.76561502e-01 + 3.74569704e-01 3.72584190e-01 3.70604965e-01 3.68632031e-01 3.66665395e-01 + 3.64705058e-01 3.62751027e-01 3.60803303e-01 3.58861891e-01 3.56926793e-01 + 3.54998014e-01 3.53075555e-01 3.51159420e-01 3.49249611e-01 3.47346130e-01 + 3.45448981e-01 3.43558164e-01 3.41673682e-01 3.39795537e-01 3.37923729e-01 + 3.36058261e-01 3.34199134e-01 3.32346349e-01 3.30499906e-01 3.28659807e-01 + 3.26826052e-01 3.24998641e-01 3.23177575e-01 3.21362854e-01 3.19554477e-01 + 3.17752446e-01 3.15956758e-01 3.14167414e-01 3.12384413e-01 3.10607754e-01 + 3.08837437e-01 3.07073459e-01 3.05315821e-01 3.03564519e-01 3.01819554e-01 + 3.00080922e-01 2.98348623e-01 2.96622654e-01 2.94903013e-01 2.93189698e-01 + 2.91482706e-01 2.89782035e-01 2.88087682e-01 2.86399644e-01 2.84717918e-01 + 2.83042501e-01 2.81373389e-01 2.79710580e-01 2.78054070e-01 2.76403855e-01 + 2.74759931e-01 2.73122294e-01 2.71490940e-01 2.69865865e-01 2.68247065e-01 + 2.66634536e-01 2.65028271e-01 2.63428268e-01 2.61834520e-01 2.60247024e-01 + 2.58665773e-01 2.57090764e-01 2.55521989e-01 2.53959444e-01 2.52403124e-01 + 2.50853022e-01 2.49309133e-01 2.47771451e-01 2.46239969e-01 2.44714682e-01 + 2.43195584e-01 2.41682667e-01 2.40175925e-01 2.38675352e-01 2.37180941e-01 + 2.35692686e-01 2.34210578e-01 2.32734611e-01 2.31264778e-01 2.29801072e-01 + 2.28343485e-01 2.26892010e-01 2.25446638e-01 2.24007363e-01 2.22574177e-01 + 2.21147071e-01 2.19726037e-01 2.18311068e-01 2.16902156e-01 2.15499291e-01 + 2.14102466e-01 2.12711671e-01 2.11326899e-01 2.09948141e-01 2.08575387e-01 + 2.07208630e-01 2.05847859e-01 2.04493066e-01 2.03144242e-01 2.01801377e-01 + 2.00464463e-01 1.99133489e-01 1.97808446e-01 1.96489324e-01 1.95176114e-01 + 1.93868806e-01 1.92567391e-01 1.91271857e-01 1.89982196e-01 1.88698396e-01 + 1.87420448e-01 1.86148342e-01 1.84882066e-01 1.83621611e-01 1.82366967e-01 + 1.81118121e-01 1.79875065e-01 1.78637786e-01 1.77406275e-01 1.76180520e-01 + 1.74960510e-01 1.73746235e-01 1.72537682e-01 1.71334841e-01 1.70137701e-01 + 1.68946250e-01 1.67760477e-01 1.66580371e-01 1.65405919e-01 1.64237110e-01 + 1.63073933e-01 1.61916375e-01 1.60764425e-01 1.59618071e-01 1.58477302e-01 + 1.57342104e-01 1.56212466e-01 1.55088376e-01 1.53969822e-01 1.52856791e-01 + 1.51749271e-01 1.50647250e-01 1.49550715e-01 1.48459654e-01 1.47374054e-01 + 1.46293903e-01 1.45219188e-01 1.44149895e-01 1.43086014e-01 1.42027530e-01 + 1.40974430e-01 1.39926703e-01 1.38884334e-01 1.37847312e-01 1.36815622e-01 + 1.35789251e-01 1.34768187e-01 1.33752417e-01 1.32741926e-01 1.31736702e-01 + 1.30736731e-01 1.29742001e-01 1.28752496e-01 1.27768205e-01 1.26789113e-01 + 1.25815206e-01 1.24846472e-01 1.23882897e-01 1.22924466e-01 1.21971167e-01 + 1.21022984e-01 1.20079906e-01 1.19141916e-01 1.18209003e-01 1.17281151e-01 + 1.16358347e-01 1.15440577e-01 1.14527827e-01 1.13620082e-01 1.12717329e-01 + 1.11819553e-01 1.10926741e-01 1.10038877e-01 1.09155949e-01 1.08277940e-01 + 1.07404838e-01 1.06536628e-01 1.05673296e-01 1.04814826e-01 1.03961206e-01 + 1.03112419e-01 1.02268453e-01 1.01429291e-01 1.00594921e-01 9.97653261e-02 + 9.89404933e-02 9.81204076e-02 9.73050542e-02 9.64944186e-02 9.56884861e-02 + 9.48872421e-02 9.40906717e-02 9.32987602e-02 9.25114930e-02 9.17288552e-02 + 9.09508321e-02 9.01774088e-02 8.94085704e-02 8.86443023e-02 8.78845894e-02 + 8.71294169e-02 8.63787700e-02 8.56326336e-02 8.48909929e-02 8.41538330e-02 + 8.34211388e-02 8.26928954e-02 8.19690879e-02 8.12497011e-02 8.05347202e-02 + 7.98241301e-02 7.91179157e-02 7.84160621e-02 7.77185541e-02 7.70253768e-02 + 7.63365150e-02 7.56519536e-02 7.49716776e-02 7.42956719e-02 7.36239214e-02 + 7.29564109e-02 7.22931253e-02 7.16340496e-02 7.09791686e-02 7.03284671e-02 + 6.96819300e-02 6.90395422e-02 6.84012886e-02 6.77671539e-02 6.71371231e-02 + 6.65111809e-02 6.58893122e-02 6.52715019e-02 6.46577348e-02 6.40479958e-02 + 6.34422696e-02 6.28405411e-02 6.22427951e-02 6.16490165e-02 6.10591902e-02 + 6.04733010e-02 5.98913336e-02 5.93132730e-02 5.87391041e-02 5.81688116e-02 + 5.76023804e-02 5.70397954e-02 5.64810414e-02 5.59261034e-02 5.53749662e-02 + 5.48276146e-02 5.42840336e-02 5.37442081e-02 5.32081229e-02 5.26757629e-02 + 5.21471132e-02 5.16221585e-02 5.11008839e-02 5.05832742e-02 5.00693144e-02 + 4.95589895e-02 4.90522845e-02 4.85491842e-02 4.80496738e-02 4.75537381e-02 + 4.70613623e-02 4.65725312e-02 4.60872300e-02 4.56054437e-02 4.51271574e-02 + 4.46523560e-02 4.41810248e-02 4.37131487e-02 4.32487129e-02 4.27877026e-02 + 4.23301028e-02 4.18758987e-02 4.14250754e-02 4.09776182e-02 4.05335123e-02 + 4.00927428e-02 3.96552949e-02 3.92211540e-02 3.87903053e-02 3.83627340e-02 + 3.79384255e-02 3.75173650e-02 3.70995379e-02 3.66849296e-02 3.62735253e-02 + 3.58653105e-02 3.54602706e-02 3.50583911e-02 3.46596572e-02 3.42640546e-02 + 3.38715687e-02 3.34821850e-02 3.30958890e-02 3.27126662e-02 3.23325023e-02 + 3.19553828e-02 3.15812932e-02 3.12102194e-02 3.08421468e-02 3.04770612e-02 + 3.01149482e-02 2.97557936e-02 2.93995832e-02 2.90463026e-02 2.86959377e-02 + 2.83484743e-02 2.80038982e-02 2.76621952e-02 2.73233514e-02 2.69873525e-02 + 2.66541845e-02 2.63238333e-02 2.59962850e-02 2.56715256e-02 2.53495410e-02 + 2.50303174e-02 2.47138408e-02 2.44000974e-02 2.40890733e-02 2.37807546e-02 + 2.34751275e-02 2.31721784e-02 2.28718933e-02 2.25742587e-02 2.22792607e-02 + 2.19868858e-02 2.16971202e-02 2.14099505e-02 2.11253629e-02 2.08433439e-02 + 2.05638801e-02 2.02869579e-02 2.00125638e-02 1.97406844e-02 1.94713063e-02 + 1.92044162e-02 1.89400006e-02 1.86780462e-02 1.84185398e-02 1.81614681e-02 + 1.79068179e-02 1.76545759e-02 1.74047290e-02 1.71572641e-02 1.69121681e-02 + 1.66694279e-02 1.64290304e-02 1.61909626e-02 1.59552116e-02 1.57217644e-02 + 1.54906081e-02 1.52617298e-02 1.50351167e-02 1.48107559e-02 1.45886347e-02 + 1.43687403e-02 1.41510600e-02 1.39355811e-02 1.37222909e-02 1.35111769e-02 + 1.33022264e-02 1.30954269e-02 1.28907658e-02 1.26882308e-02 1.24878092e-02 + 1.22894888e-02 1.20932571e-02 1.18991017e-02 1.17070104e-02 1.15169709e-02 + 1.13289709e-02 1.11429983e-02 1.09590407e-02 1.07770862e-02 1.05971226e-02 + 1.04191377e-02 1.02431196e-02 1.00690563e-02 9.89693584e-03 9.72674620e-03 + 9.55847554e-03 9.39211199e-03 9.22764373e-03 9.06505895e-03 8.90434592e-03 + 8.74549290e-03 8.58848822e-03 8.43332023e-03 8.27997732e-03 8.12844792e-03 + 7.97872048e-03 7.83078350e-03 7.68462553e-03 7.54023512e-03 7.39760089e-03 + 7.25671149e-03 7.11755558e-03 6.98012189e-03 6.84439918e-03 6.71037622e-03 + 6.57804186e-03 6.44738496e-03 6.31839441e-03 6.19105916e-03 6.06536818e-03 + 5.94131048e-03 5.81887512e-03 5.69805119e-03 5.57882780e-03 5.46119412e-03 + 5.34513934e-03 5.23065272e-03 5.11772351e-03 5.00634104e-03 4.89649464e-03 + 4.78817372e-03 4.68136769e-03 4.57606601e-03 4.47225819e-03 4.36993376e-03 + 4.26908230e-03 4.16969342e-03 4.07175677e-03 3.97526205e-03 3.88019897e-03 + 3.78655730e-03 3.69432685e-03 3.60349746e-03 3.51405899e-03 3.42600138e-03 + 3.33931457e-03 3.25398856e-03 3.17001338e-03 3.08737909e-03 3.00607580e-03 + 2.92609366e-03 2.84742285e-03 2.77005359e-03 2.69397614e-03 2.61918079e-03 + 2.54565788e-03 2.47339778e-03 2.40239090e-03 2.33262770e-03 2.26409866e-03 + 2.19679431e-03 2.13070520e-03 2.06582195e-03 2.00213518e-03 1.93963558e-03 + 1.87831387e-03 1.81816080e-03 1.75916715e-03 1.70132377e-03 1.64462151e-03 + 1.58905129e-03 1.53460405e-03 1.48127077e-03 1.42904247e-03 1.37791021e-03 + 1.32786509e-03 1.27889824e-03 1.23100083e-03 1.18416408e-03 1.13837922e-03 + 1.09363756e-03 1.04993040e-03 1.00724912e-03 9.65585108e-04 9.24929807e-04 + 8.85274690e-04 8.46611271e-04 8.08931100e-04 7.72225766e-04 7.36486893e-04 + 7.01706146e-04 6.67875227e-04 6.34985873e-04 6.03029860e-04 5.71999004e-04 + 5.41885154e-04 5.12680200e-04 4.84376068e-04 4.56964721e-04 4.30438160e-04 + 4.04788423e-04 3.80007585e-04 3.56087759e-04 3.33021095e-04 3.10799778e-04 + 2.89416035e-04 2.68862124e-04 2.49130345e-04 2.30213031e-04 2.12102556e-04 + 1.94791327e-04 1.78271789e-04 1.62536427e-04 1.47577757e-04 1.33388336e-04 + 1.19960756e-04 1.07287646e-04 9.53616714e-05 8.41755336e-05 7.37219709e-05 + 6.39937580e-05 5.49837057e-05 4.66846611e-05 3.90895074e-05 3.21911642e-05 + 2.59825869e-05 2.04567671e-05 1.56067322e-05 1.14255457e-05 7.90630673e-06 + 5.04215042e-06 2.82624746e-06 1.25180428e-06 3.12062870e-07 0.00000000e+00 + 2.22608225e+06 1.58349819e+06 7.81810035e+05 5.14720588e+05 3.81277804e+05 + 3.01291353e+05 2.48031186e+05 2.10041621e+05 1.81594861e+05 1.59508832e+05 + 1.41874326e+05 1.27476419e+05 1.15505188e+05 1.05399940e+05 9.67601994e+04 + 8.92923040e+04 8.27760232e+04 7.70429606e+04 7.19621553e+04 6.74302297e+04 + 6.33644936e+04 5.96980178e+04 5.63760523e+04 5.33533778e+04 5.05923202e+04 + 4.80612410e+04 4.57333767e+04 4.35859354e+04 4.15993877e+04 3.97569038e+04 + 3.80439035e+04 3.64476930e+04 3.49571701e+04 3.35625831e+04 3.22553317e+04 + 3.10278024e+04 2.98732316e+04 2.87855905e+04 2.77594881e+04 2.67900896e+04 + 2.58730467e+04 2.50044379e+04 2.41807181e+04 2.33986745e+04 2.26553884e+04 + 2.19482032e+04 2.12746952e+04 2.06326489e+04 2.00200357e+04 1.94349939e+04 + 1.88758129e+04 1.83409177e+04 1.78288558e+04 1.73382861e+04 1.68679681e+04 + 1.64167529e+04 1.59835747e+04 1.55674439e+04 1.51674403e+04 1.47827070e+04 + 1.44124453e+04 1.40559100e+04 1.37124046e+04 1.33812782e+04 1.30619208e+04 + 1.27537613e+04 1.24562637e+04 1.21689247e+04 1.18912715e+04 1.16228592e+04 + 1.13632689e+04 1.11121063e+04 1.08689990e+04 1.06335961e+04 1.04055659e+04 + 1.01845949e+04 9.97038669e+03 9.76266069e+03 9.56115111e+03 9.36560607e+03 + 9.17578669e+03 8.99146627e+03 8.81242953e+03 8.63847193e+03 8.46939900e+03 + 8.30502576e+03 8.14517614e+03 7.98968245e+03 7.83838493e+03 7.69113127e+03 + 7.54777618e+03 7.40818102e+03 7.27221341e+03 7.13974691e+03 7.01066068e+03 + 6.88483917e+03 6.76217186e+03 6.64255298e+03 6.52588127e+03 6.41205975e+03 + 6.30099549e+03 6.19259938e+03 6.08678602e+03 5.98347343e+03 5.88258297e+03 + 5.78403912e+03 5.68776935e+03 5.59370398e+03 5.50177603e+03 5.41192111e+03 + 5.32407728e+03 5.23818495e+03 5.15418678e+03 5.07202755e+03 4.99165408e+03 + 4.91301515e+03 4.83606139e+03 4.76074521e+03 4.68702073e+03 4.61484368e+03 + 4.54417137e+03 4.47496258e+03 4.40717752e+03 4.34077778e+03 4.27572626e+03 + 4.21198709e+03 4.14952564e+03 4.08830841e+03 4.02830302e+03 3.96947815e+03 + 3.91180349e+03 3.85524973e+03 3.79978850e+03 3.74539232e+03 3.69203459e+03 + 3.63968956e+03 3.58833225e+03 3.53793850e+03 3.48848485e+03 3.43994858e+03 + 3.39230768e+03 3.34554075e+03 3.29962709e+03 3.25454659e+03 3.21027972e+03 + 3.16680755e+03 3.12411169e+03 3.08217429e+03 3.04097801e+03 3.00050601e+03 + 2.96074193e+03 2.92166985e+03 2.88327434e+03 2.84554037e+03 2.80845334e+03 + 2.77199904e+03 2.73616366e+03 2.70093376e+03 2.66629629e+03 2.63223850e+03 + 2.59874804e+03 2.56581284e+03 2.53342118e+03 2.50156163e+03 2.47022308e+03 + 2.43939468e+03 2.40906589e+03 2.37922642e+03 2.34986625e+03 2.32097563e+03 + 2.29254502e+03 2.26456516e+03 2.23702699e+03 2.20992170e+03 2.18324069e+03 + 2.15697556e+03 2.13111812e+03 2.10566040e+03 2.08059459e+03 2.05591310e+03 + 2.03160849e+03 2.00767354e+03 1.98410115e+03 1.96088443e+03 1.93801663e+03 + 1.91549116e+03 1.89330159e+03 1.87144164e+03 1.84990517e+03 1.82868617e+03 + 1.80777879e+03 1.78717729e+03 1.76687607e+03 1.74686967e+03 1.72715272e+03 + 1.70772001e+03 1.68856640e+03 1.66968690e+03 1.65107661e+03 1.63273076e+03 + 1.61464464e+03 1.59681369e+03 1.57923342e+03 1.56189944e+03 1.54480747e+03 + 1.52795329e+03 1.51133281e+03 1.49494199e+03 1.47877690e+03 1.46283367e+03 + 1.44710853e+03 1.43159778e+03 1.41629779e+03 1.40120502e+03 1.38631599e+03 + 1.37162730e+03 1.35713560e+03 1.34283764e+03 1.32873021e+03 1.31481016e+03 + 1.30107443e+03 1.28752000e+03 1.27414392e+03 1.26094329e+03 1.24791526e+03 + 1.23505706e+03 1.22236596e+03 1.20983928e+03 1.19747440e+03 1.18526874e+03 + 1.17321977e+03 1.16132503e+03 1.14958208e+03 1.13798854e+03 1.12654208e+03 + 1.11524039e+03 1.10408123e+03 1.09306240e+03 1.08218171e+03 1.07143706e+03 + 1.06082635e+03 1.05034752e+03 1.03999858e+03 1.02977755e+03 1.01968248e+03 + 1.00971148e+03 9.99862673e+02 9.90134232e+02 9.80524352e+02 9.71031265e+02 + 9.61653233e+02 9.52388550e+02 9.43235540e+02 9.34192556e+02 9.25257981e+02 + 9.16430226e+02 9.07707731e+02 8.99088962e+02 8.90572412e+02 8.82156601e+02 + 8.73840073e+02 8.65621398e+02 8.57499172e+02 8.49472013e+02 8.41538563e+02 + 8.33697489e+02 8.25947478e+02 8.18287242e+02 8.10715512e+02 8.03231042e+02 + 7.95832607e+02 7.88519002e+02 7.81289042e+02 7.74141562e+02 7.67075417e+02 + 7.60089480e+02 7.53182643e+02 7.46353816e+02 7.39601926e+02 7.32925920e+02 + 7.26324759e+02 7.19797425e+02 7.13342912e+02 7.06960233e+02 7.00648417e+02 + 6.94406507e+02 6.88233563e+02 6.82128659e+02 6.76090883e+02 6.70119341e+02 + 6.64213148e+02 6.58371437e+02 6.52593354e+02 6.46878057e+02 6.41224718e+02 + 6.35632522e+02 6.30100667e+02 6.24628363e+02 6.19214833e+02 6.13859311e+02 + 6.08561043e+02 6.03319287e+02 5.98133313e+02 5.93002401e+02 5.87925843e+02 + 5.82902941e+02 5.77933007e+02 5.73015366e+02 5.68149350e+02 5.63334303e+02 + 5.58569579e+02 5.53854542e+02 5.49188562e+02 5.44571024e+02 5.40001318e+02 + 5.35478844e+02 5.31003012e+02 5.26573240e+02 5.22188954e+02 5.17849590e+02 + 5.13554590e+02 5.09303406e+02 5.05095498e+02 5.00930333e+02 4.96807386e+02 + 4.92726140e+02 4.88686085e+02 4.84686718e+02 4.80727545e+02 4.76808077e+02 + 4.72927834e+02 4.69086341e+02 4.65283131e+02 4.61517743e+02 4.57789722e+02 + 4.54098622e+02 4.50444001e+02 4.46825423e+02 4.43242459e+02 4.39694687e+02 + 4.36181689e+02 4.32703055e+02 4.29258377e+02 4.25847258e+02 4.22469302e+02 + 4.19124121e+02 4.15811330e+02 4.12530553e+02 4.09281415e+02 4.06063550e+02 + 4.02876594e+02 3.99720190e+02 3.96593984e+02 3.93497629e+02 3.90430781e+02 + 3.87393101e+02 3.84384256e+02 3.81403915e+02 3.78451754e+02 3.75527452e+02 + 3.72630692e+02 3.69761162e+02 3.66918554e+02 3.64102564e+02 3.61312892e+02 + 3.58549243e+02 3.55811324e+02 3.53098846e+02 3.50411527e+02 3.47749085e+02 + 3.45111244e+02 3.42497730e+02 3.39908273e+02 3.37342608e+02 3.34800472e+02 + 3.32281605e+02 3.29785752e+02 3.27312661e+02 3.24862081e+02 3.22433768e+02 + 3.20027478e+02 3.17642971e+02 3.15280011e+02 3.12938364e+02 3.10617800e+02 + 3.08318091e+02 3.06039012e+02 3.03780341e+02 3.01541860e+02 2.99323352e+02 + 2.97124603e+02 2.94945402e+02 2.92785542e+02 2.90644817e+02 2.88523024e+02 + 2.86419962e+02 2.84335434e+02 2.82269244e+02 2.80221198e+02 2.78191108e+02 + 2.76178783e+02 2.74184039e+02 2.72206692e+02 2.70246559e+02 2.68303464e+02 + 2.66377228e+02 2.64467676e+02 2.62574637e+02 2.60697939e+02 2.58837415e+02 + 2.56992898e+02 2.55164224e+02 2.53351231e+02 2.51553757e+02 2.49771646e+02 + 2.48004741e+02 2.46252886e+02 2.44515930e+02 2.42793721e+02 2.41086110e+02 + 2.39392951e+02 2.37714098e+02 2.36049407e+02 2.34398736e+02 2.32761944e+02 + 2.31138894e+02 2.29529448e+02 2.27933471e+02 2.26350828e+02 2.24781389e+02 + 2.23225022e+02 2.21681598e+02 2.20150990e+02 2.18633071e+02 2.17127717e+02 + 2.15634805e+02 2.14154214e+02 2.12685822e+02 2.11229511e+02 2.09785165e+02 + 2.08352666e+02 2.06931899e+02 2.05522752e+02 2.04125113e+02 2.02738870e+02 + 2.01363914e+02 2.00000136e+02 1.98647431e+02 1.97305691e+02 1.95974813e+02 + 1.94654692e+02 1.93345228e+02 1.92046318e+02 1.90757863e+02 1.89479764e+02 + 1.88211924e+02 1.86954245e+02 1.85706633e+02 1.84468994e+02 1.83241234e+02 + 1.82023260e+02 1.80814982e+02 1.79616309e+02 1.78427153e+02 1.77247425e+02 + 1.76077038e+02 1.74915905e+02 1.73763943e+02 1.72621066e+02 1.71487191e+02 + 1.70362235e+02 1.69246118e+02 1.68138758e+02 1.67040077e+02 1.65949994e+02 + 1.64868433e+02 1.63795316e+02 1.62730567e+02 1.61674111e+02 1.60625872e+02 + 1.59585778e+02 1.58553755e+02 1.57529732e+02 1.56513636e+02 1.55505398e+02 + 1.54504947e+02 1.53512215e+02 1.52527133e+02 1.51549634e+02 1.50579651e+02 + 1.49617117e+02 1.48661968e+02 1.47714139e+02 1.46773566e+02 1.45840185e+02 + 1.44913934e+02 1.43994752e+02 1.43082576e+02 1.42177346e+02 1.41279003e+02 + 1.40387486e+02 1.39502738e+02 1.38624700e+02 1.37753314e+02 1.36888525e+02 + 1.36030275e+02 1.35178509e+02 1.34333173e+02 1.33494210e+02 1.32661569e+02 + 1.31835195e+02 1.31015035e+02 1.30201038e+02 1.29393152e+02 1.28591325e+02 + 1.27795507e+02 1.27005648e+02 1.26221699e+02 1.25443610e+02 1.24671333e+02 + 1.23904819e+02 1.23144023e+02 1.22388895e+02 1.21639390e+02 1.20895462e+02 + 1.20157066e+02 1.19424155e+02 1.18696686e+02 1.17974614e+02 1.17257895e+02 + 1.16546486e+02 1.15840345e+02 1.15139429e+02 1.14443696e+02 1.13753104e+02 + 1.13067612e+02 1.12387179e+02 1.11711766e+02 1.11041331e+02 1.10375837e+02 + 1.09715243e+02 1.09059510e+02 1.08408601e+02 1.07762478e+02 1.07121102e+02 + 1.06484437e+02 1.05852445e+02 1.05225091e+02 1.04602338e+02 1.03984150e+02 + 1.03370492e+02 1.02761329e+02 1.02156626e+02 1.01556348e+02 1.00960462e+02 + 1.00368933e+02 9.97817288e+01 9.91988155e+01 9.86201604e+01 9.80457312e+01 + 9.74754955e+01 9.69094215e+01 9.63474776e+01 9.57896324e+01 9.52358551e+01 + 9.46861147e+01 9.41403810e+01 9.35986237e+01 9.30608129e+01 9.25269190e+01 + 9.19969127e+01 9.14707649e+01 9.09484468e+01 9.04299298e+01 8.99151856e+01 + 8.94041860e+01 8.88969034e+01 8.83933101e+01 8.78933789e+01 8.73970825e+01 + 8.69043941e+01 8.64152872e+01 8.59297352e+01 8.54477121e+01 8.49691918e+01 + 8.44941486e+01 8.40225570e+01 8.35543915e+01 8.30896273e+01 8.26282392e+01 + 8.21702026e+01 8.17154929e+01 8.12640859e+01 8.08159575e+01 8.03710836e+01 + 7.99294406e+01 7.94910048e+01 7.90557528e+01 7.86236615e+01 7.81947079e+01 + 7.77688689e+01 7.73461220e+01 7.69264446e+01 7.65098144e+01 7.60962090e+01 + 7.56856065e+01 7.52779850e+01 7.48733228e+01 7.44715981e+01 7.40727897e+01 + 7.36768761e+01 7.32838363e+01 7.28936492e+01 7.25062939e+01 7.21217496e+01 + 7.17399959e+01 7.13610121e+01 7.09847779e+01 7.06112732e+01 7.02404777e+01 + 6.98723715e+01 6.95069348e+01 6.91441478e+01 6.87839908e+01 6.84264444e+01 + 6.80714892e+01 6.77191058e+01 6.73692750e+01 6.70219779e+01 6.66771953e+01 + 6.63349084e+01 6.59950985e+01 6.56577468e+01 6.53228348e+01 6.49903439e+01 + 6.46602559e+01 6.43325523e+01 6.40072149e+01 6.36842258e+01 6.33635667e+01 + 6.30452197e+01 6.27291670e+01 6.24153909e+01 6.21038734e+01 6.17945972e+01 + 6.14875446e+01 6.11826981e+01 6.08800404e+01 6.05795541e+01 6.02812221e+01 + 5.99850271e+01 5.96909520e+01 5.93989799e+01 5.91090938e+01 5.88212767e+01 + 5.85355120e+01 5.82517829e+01 5.79700727e+01 5.76903647e+01 5.74126425e+01 + 5.71368896e+01 5.68630897e+01 5.65912262e+01 5.63212831e+01 5.60532440e+01 + 5.57870929e+01 5.55228137e+01 5.52603904e+01 5.49998069e+01 5.47410475e+01 + 5.44840964e+01 5.42289376e+01 5.39755557e+01 5.37239350e+01 5.34740598e+01 + 5.32259147e+01 5.29794844e+01 5.27347533e+01 5.24917062e+01 5.22503279e+01 + 5.20106033e+01 5.17725171e+01 5.15360544e+01 5.13012002e+01 5.10679396e+01 + 5.08362578e+01 5.06061399e+01 5.03775714e+01 5.01505376e+01 4.99250240e+01 + 4.97010159e+01 4.94784991e+01 4.92574593e+01 4.90378820e+01 4.88197532e+01 + 4.86030588e+01 4.83877846e+01 4.81739168e+01 4.79614414e+01 4.77503447e+01 + 4.75406128e+01 4.73322323e+01 4.71251894e+01 4.69194707e+01 4.67150628e+01 + 4.65119524e+01 4.63101262e+01 4.61095712e+01 4.59102741e+01 4.57122221e+01 + 4.55154023e+01 4.53198019e+01 4.51254081e+01 4.49322083e+01 4.47401900e+01 + 4.45493409e+01 4.43596484e+01 4.41711005e+01 4.39836848e+01 4.37973895e+01 + 4.36122025e+01 4.34281120e+01 4.32451062e+01 4.30631734e+01 4.28823021e+01 + 4.27024809e+01 4.25236983e+01 4.23459432e+01 4.21692043e+01 4.19934706e+01 + 4.18187313e+01 4.16449754e+01 4.14721922e+01 4.13003711e+01 4.11295016e+01 + 4.09595733e+01 4.07905759e+01 4.06224991e+01 4.04553330e+01 4.02890674e+01 + 4.01236927e+01 3.99591990e+01 3.97955766e+01 3.96328161e+01 3.94709080e+01 + 3.93098430e+01 3.91496120e+01 3.89902058e+01 3.88316154e+01 3.86738321e+01 + 3.85168470e+01 3.83606515e+01 3.82052371e+01 3.80505954e+01 3.78967181e+01 + 3.77435969e+01 3.75912238e+01 3.74395909e+01 3.72886902e+01 3.71385140e+01 + 3.69890548e+01 3.68403049e+01 3.66922569e+01 3.65449035e+01 3.63982376e+01 + 3.62522520e+01 3.61069398e+01 3.59622940e+01 3.58183080e+01 3.56749750e+01 + 3.55322884e+01 3.53902419e+01 3.52488290e+01 3.51080436e+01 3.49678794e+01 + 3.48283304e+01 3.46893908e+01 3.45510545e+01 3.44133160e+01 3.42761695e+01 + 3.41396096e+01 3.40036306e+01 3.38682274e+01 3.37333946e+01 3.35991271e+01 + 3.34654197e+01 3.33322676e+01 3.31996658e+01 3.30676095e+01 3.29360940e+01 + 3.28051146e+01 3.26746669e+01 3.25447464e+01 3.24153486e+01 3.22864694e+01 + 3.21581045e+01 3.20302498e+01 3.19029013e+01 3.17760549e+01 3.16497068e+01 + 3.15238532e+01 3.13984903e+01 3.12736145e+01 3.11492222e+01 3.10253099e+01 + 3.09018741e+01 3.07789115e+01 3.06564187e+01 3.05343925e+01 3.04128297e+01 + 3.02917272e+01 3.01710820e+01 3.00508911e+01 2.99311516e+01 2.98118605e+01 + 2.96930151e+01 2.95746127e+01 2.94566505e+01 2.93391259e+01 2.92220364e+01 + 2.91053793e+01 2.89891523e+01 2.88733530e+01 2.87579788e+01 2.86430275e+01 + 2.85284969e+01 2.84143847e+01 2.83006887e+01 2.81874068e+01 2.80745368e+01 + 2.79620768e+01 2.78500247e+01 2.77383786e+01 2.76271364e+01 2.75162964e+01 + 2.74058566e+01 2.72958153e+01 2.71861707e+01 2.70769209e+01 2.69680644e+01 + 2.68595994e+01 2.67515242e+01 2.66438373e+01 2.65365371e+01 2.64296219e+01 + 2.63230904e+01 2.62169409e+01 2.61111720e+01 2.60057823e+01 2.59007703e+01 + 2.57961347e+01 2.56918740e+01 2.55879869e+01 2.54844721e+01 2.53813283e+01 + 2.52785542e+01 2.51761485e+01 2.50741101e+01 2.49724376e+01 2.48711298e+01 + 2.47701856e+01 2.46696038e+01 2.45693833e+01 2.44695229e+01 2.43700215e+01 + 2.42708779e+01 2.41720911e+01 2.40736601e+01 2.39755837e+01 2.38778609e+01 + 2.37804906e+01 2.36834719e+01 2.35868037e+01 2.34904850e+01 2.33945148e+01 + 2.32988921e+01 2.32036160e+01 2.31086854e+01 2.30140995e+01 2.29198573e+01 + 2.28259578e+01 2.27324001e+01 2.26391833e+01 2.25463065e+01 2.24537687e+01 + 2.23615691e+01 2.22697067e+01 2.21781807e+01 2.20869902e+01 2.19961343e+01 + 2.19056121e+01 2.18154227e+01 2.17255653e+01 2.16360390e+01 2.15468430e+01 + 2.14579763e+01 2.13694383e+01 2.12812279e+01 2.11933443e+01 2.11057868e+01 + 2.10185544e+01 2.09316464e+01 2.08450619e+01 2.07588000e+01 2.06728599e+01 + 2.05872409e+01 2.05019420e+01 2.04169624e+01 2.03323014e+01 2.02479581e+01 + 2.01639316e+01 2.00802212e+01 1.99968260e+01 1.99137452e+01 1.98309780e+01 + 1.97485236e+01 1.96663811e+01 1.95845497e+01 1.95030287e+01 1.94218171e+01 + 1.93409142e+01 1.92603192e+01 1.91800312e+01 1.91000494e+01 1.90203730e+01 + 1.89410012e+01 1.88619332e+01 1.87831681e+01 1.87047051e+01 1.86265434e+01 + 1.85486822e+01 1.84711207e+01 1.83938580e+01 1.83168933e+01 1.82402258e+01 + 1.81638547e+01 1.80877791e+01 1.80119982e+01 1.79365112e+01 1.78613173e+01 + 1.77864157e+01 1.77118054e+01 1.76374858e+01 1.75634559e+01 1.74897149e+01 + 1.74162620e+01 1.73430964e+01 1.72702173e+01 1.71976237e+01 1.71253149e+01 + 1.70532900e+01 1.69815482e+01 1.69100887e+01 1.68389107e+01 1.67680132e+01 + 1.66973955e+01 1.66270567e+01 1.65569960e+01 1.64872125e+01 1.64177054e+01 + 1.63484739e+01 1.62795171e+01 1.62108342e+01 1.61424243e+01 1.60742866e+01 + 1.60064203e+01 1.59388245e+01 1.58714984e+01 1.58044411e+01 1.57376518e+01 + 1.56711296e+01 1.56048737e+01 1.55388833e+01 1.54731575e+01 1.54076954e+01 + 1.53424963e+01 1.52775592e+01 1.52128833e+01 1.51484679e+01 1.50843120e+01 + 1.50204147e+01 1.49567753e+01 1.48933929e+01 1.48302667e+01 1.47673958e+01 + 1.47047793e+01 1.46424165e+01 1.45803065e+01 1.45184483e+01 1.44568413e+01 + 1.43954845e+01 1.43343772e+01 1.42735183e+01 1.42129073e+01 1.41525430e+01 + 1.40924249e+01 1.40325519e+01 1.39729232e+01 1.39135381e+01 1.38543957e+01 + 1.37954951e+01 1.37368355e+01 1.36784161e+01 1.36202360e+01 1.35622943e+01 + 1.35045904e+01 1.34471233e+01 1.33898921e+01 1.33328961e+01 1.32761345e+01 + 1.32196063e+01 1.31633108e+01 1.31072471e+01 1.30514145e+01 1.29958120e+01 + 1.29404389e+01 1.28852943e+01 1.28303774e+01 1.27756875e+01 1.27212235e+01 + 1.26669849e+01 1.26129706e+01 1.25591800e+01 1.25056122e+01 1.24522663e+01 + 1.23991416e+01 1.23462373e+01 1.22935525e+01 1.22410865e+01 1.21888384e+01 + 1.21368074e+01 1.20849927e+01 1.20333935e+01 1.19820090e+01 1.19308385e+01 + 1.18798810e+01 1.18291359e+01 1.17786023e+01 1.17282794e+01 1.16781664e+01 + 1.16282626e+01 1.15785671e+01 1.15290791e+01 1.14797980e+01 1.14307228e+01 + 1.13818529e+01 1.13331873e+01 1.12847254e+01 1.12364664e+01 1.11884095e+01 + 1.11405539e+01 1.10928988e+01 1.10454435e+01 1.09981872e+01 1.09511292e+01 + 1.09042686e+01 1.08576047e+01 1.08111368e+01 1.07648641e+01 1.07187858e+01 + 1.06729012e+01 1.06272095e+01 1.05817100e+01 1.05364019e+01 1.04912845e+01 + 1.04463570e+01 1.04016187e+01 1.03570688e+01 1.03127066e+01 1.02685315e+01 + 1.02245425e+01 1.01807390e+01 1.01371203e+01 1.00936857e+01 1.00504343e+01 + 1.00073655e+01 9.96447860e+00 9.92177282e+00 9.87924746e+00 9.83690179e+00 + 9.79473512e+00 9.75274671e+00 9.71093587e+00 9.66930188e+00 9.62784404e+00 + 9.58656164e+00 9.54545398e+00 9.50452035e+00 9.46376007e+00 9.42317244e+00 + 9.38275676e+00 9.34251233e+00 9.30243848e+00 9.26253451e+00 9.22279974e+00 + 9.18323348e+00 9.14383506e+00 9.10460379e+00 9.06553900e+00 9.02664002e+00 + 8.98790617e+00 8.94933678e+00 8.91093119e+00 8.87268873e+00 8.83460873e+00 + 8.79669054e+00 8.75893350e+00 8.72133695e+00 8.68390023e+00 8.64662269e+00 + 8.60950368e+00 8.57254256e+00 8.53573868e+00 8.49909140e+00 8.46260006e+00 + 8.42626405e+00 8.39008271e+00 8.35405541e+00 8.31818152e+00 8.28246041e+00 + 8.24689146e+00 8.21147403e+00 8.17620750e+00 8.14109126e+00 8.10612467e+00 + 8.07130713e+00 8.03663801e+00 8.00211672e+00 7.96774262e+00 7.93351513e+00 + 7.89943362e+00 7.86549750e+00 7.83170617e+00 7.79805902e+00 7.76455546e+00 + 7.73119489e+00 7.69797671e+00 7.66490035e+00 7.63196520e+00 7.59917068e+00 + 7.56651621e+00 7.53400121e+00 7.50162509e+00 7.46938727e+00 7.43728719e+00 + 7.40532426e+00 7.37349792e+00 7.34180759e+00 7.31025271e+00 7.27883270e+00 + 7.24754702e+00 7.21639510e+00 7.18537637e+00 7.15449029e+00 7.12373629e+00 + 7.09311383e+00 7.06262235e+00 7.03226130e+00 7.00203015e+00 6.97192833e+00 + 6.94195532e+00 6.91211058e+00 6.88239355e+00 6.85280371e+00 6.82334053e+00 + 6.79400347e+00 6.76479200e+00 6.73570560e+00 6.70674373e+00 6.67790588e+00 + 6.64919152e+00 6.62060013e+00 6.59213120e+00 6.56378421e+00 6.53555865e+00 + 6.50745400e+00 6.47946976e+00 6.45160541e+00 6.42386046e+00 6.39623439e+00 + 6.36872671e+00 6.34133692e+00 6.31406452e+00 6.28690901e+00 6.25986990e+00 + 6.23294670e+00 6.20613892e+00 6.17944607e+00 6.15286766e+00 6.12640322e+00 + 6.10005225e+00 6.07381428e+00 6.04768883e+00 6.02167542e+00 5.99577358e+00 + 5.96998284e+00 5.94430272e+00 5.91873277e+00 5.89327250e+00 5.86792145e+00 + 5.84267917e+00 5.81754519e+00 5.79251905e+00 5.76760030e+00 5.74278847e+00 + 5.71808312e+00 5.69348379e+00 5.66899003e+00 5.64460139e+00 5.62031743e+00 + 5.59613771e+00 5.57206177e+00 5.54808918e+00 5.52421950e+00 5.50045229e+00 + 5.47678712e+00 5.45322355e+00 5.42976115e+00 5.40639949e+00 5.38313814e+00 + 5.35997667e+00 5.33691466e+00 5.31395168e+00 5.29108732e+00 5.26832115e+00 + 5.24565275e+00 5.22308172e+00 5.20060762e+00 5.17823006e+00 5.15594861e+00 + 5.13376288e+00 5.11167245e+00 5.08967691e+00 5.06777586e+00 5.04596890e+00 + 5.02425562e+00 5.00263563e+00 4.98110853e+00 4.95967392e+00 4.93833141e+00 + 4.91708060e+00 4.89592111e+00 4.87485253e+00 4.85387449e+00 4.83298660e+00 + 4.81218848e+00 4.79147973e+00 4.77085998e+00 4.75032884e+00 4.72988595e+00 + 4.70953091e+00 4.68926337e+00 4.66908293e+00 4.64898924e+00 4.62898191e+00 + 4.60906059e+00 4.58922490e+00 4.56947447e+00 4.54980894e+00 4.53022796e+00 + 4.51073115e+00 4.49131815e+00 4.47198862e+00 4.45274218e+00 4.43357849e+00 + 4.41449719e+00 4.39549793e+00 4.37658036e+00 4.35774412e+00 4.33898888e+00 + 4.32031427e+00 4.30171997e+00 4.28320562e+00 4.26477088e+00 4.24641541e+00 + 4.22813887e+00 4.20994092e+00 4.19182123e+00 4.17377947e+00 4.15581528e+00 + 4.13792836e+00 4.12011835e+00 4.10238495e+00 4.08472780e+00 4.06714660e+00 + 4.04964101e+00 4.03221071e+00 4.01485537e+00 3.99757469e+00 3.98036832e+00 + 3.96323597e+00 3.94617730e+00 3.92919201e+00 3.91227977e+00 3.89544028e+00 + 3.87867323e+00 3.86197830e+00 3.84535518e+00 3.82880356e+00 3.81232315e+00 + 3.79591363e+00 3.77957470e+00 3.76330605e+00 3.74710739e+00 3.73097842e+00 + 3.71491883e+00 3.69892833e+00 3.68300662e+00 3.66715340e+00 3.65136839e+00 + 3.63565129e+00 3.62000181e+00 3.60441965e+00 3.58890454e+00 3.57345617e+00 + 3.55807427e+00 3.54275855e+00 3.52750872e+00 3.51232451e+00 3.49720562e+00 + 3.48215179e+00 3.46716273e+00 3.45223816e+00 3.43737780e+00 3.42258139e+00 + 3.40784864e+00 3.39317928e+00 3.37857305e+00 3.36402966e+00 3.34954885e+00 + 3.33513035e+00 3.32077389e+00 3.30647921e+00 3.29224604e+00 3.27807411e+00 + 3.26396317e+00 3.24991295e+00 3.23592318e+00 3.22199362e+00 3.20812400e+00 + 3.19431407e+00 3.18056356e+00 3.16687223e+00 3.15323981e+00 3.13966606e+00 + 3.12615072e+00 3.11269354e+00 3.09929428e+00 3.08595268e+00 3.07266849e+00 + 3.05944147e+00 3.04627137e+00 3.03315796e+00 3.02010097e+00 3.00710018e+00 + 2.99415534e+00 2.98126621e+00 2.96843255e+00 2.95565412e+00 2.94293069e+00 + 2.93026201e+00 2.91764786e+00 2.90508800e+00 2.89258219e+00 2.88013020e+00 + 2.86773181e+00 2.85538677e+00 2.84309487e+00 2.83085587e+00 2.81866954e+00 + 2.80653567e+00 2.79445401e+00 2.78242436e+00 2.77044648e+00 2.75852016e+00 + 2.74664516e+00 2.73482128e+00 2.72304828e+00 2.71132596e+00 2.69965409e+00 + 2.68803246e+00 2.67646085e+00 2.66493904e+00 2.65346683e+00 2.64204399e+00 + 2.63067032e+00 2.61934561e+00 2.60806964e+00 2.59684220e+00 2.58566308e+00 + 2.57453209e+00 2.56344901e+00 2.55241362e+00 2.54142574e+00 2.53048516e+00 + 2.51959166e+00 2.50874506e+00 2.49794514e+00 2.48719171e+00 2.47648456e+00 + 2.46582351e+00 2.45520834e+00 2.44463886e+00 2.43411488e+00 2.42363620e+00 + 2.41320262e+00 2.40281395e+00 2.39247000e+00 2.38217057e+00 2.37191548e+00 + 2.36170453e+00 2.35153754e+00 2.34141430e+00 2.33133465e+00 2.32129838e+00 + 2.31130531e+00 2.30135526e+00 2.29144803e+00 2.28158346e+00 2.27176134e+00 + 2.26198151e+00 2.25224377e+00 2.24254795e+00 2.23289387e+00 2.22328134e+00 + 2.21371020e+00 2.20418025e+00 2.19469132e+00 2.18524324e+00 2.17583583e+00 + 2.16646892e+00 2.15714233e+00 2.14785588e+00 2.13860941e+00 2.12940274e+00 + 2.12023571e+00 2.11110813e+00 2.10201985e+00 2.09297069e+00 2.08396048e+00 + 2.07498906e+00 2.06605626e+00 2.05716191e+00 2.04830585e+00 2.03948791e+00 + 2.03070793e+00 2.02196575e+00 2.01326120e+00 2.00459412e+00 1.99596435e+00 + 1.98737173e+00 1.97881609e+00 1.97029729e+00 1.96181516e+00 1.95336954e+00 + 1.94496028e+00 1.93658722e+00 1.92825021e+00 1.91994908e+00 1.91168369e+00 + 1.90345387e+00 1.89525949e+00 1.88710038e+00 1.87897640e+00 1.87088738e+00 + 1.86283319e+00 1.85481367e+00 1.84682867e+00 1.83887805e+00 1.83096166e+00 + 1.82307934e+00 1.81523095e+00 1.80741635e+00 1.79963539e+00 1.79188793e+00 + 1.78417382e+00 1.77649292e+00 1.76884508e+00 1.76123016e+00 1.75364803e+00 + 1.74609854e+00 1.73858154e+00 1.73109691e+00 1.72364450e+00 1.71622416e+00 + 1.70883578e+00 1.70147920e+00 1.69415428e+00 1.68686090e+00 1.67959892e+00 + 1.67236820e+00 1.66516861e+00 1.65800001e+00 1.65086227e+00 1.64375526e+00 + 1.63667885e+00 1.62963289e+00 1.62261727e+00 1.61563185e+00 1.60867651e+00 + 1.60175110e+00 1.59485551e+00 1.58798960e+00 1.58115326e+00 1.57434634e+00 + 1.56756872e+00 1.56082028e+00 1.55410090e+00 1.54741044e+00 1.54074878e+00 + 1.53411580e+00 1.52751137e+00 1.52093538e+00 1.51438770e+00 1.50786820e+00 + 1.50137677e+00 1.49491329e+00 1.48847763e+00 1.48206967e+00 1.47568930e+00 + 1.46933640e+00 1.46301085e+00 1.45671253e+00 1.45044132e+00 1.44419711e+00 + 1.43797979e+00 1.43178922e+00 1.42562531e+00 1.41948793e+00 1.41337698e+00 + 1.40729233e+00 1.40123388e+00 1.39520150e+00 1.38919510e+00 1.38321456e+00 + 1.37725976e+00 1.37133059e+00 1.36542696e+00 1.35954873e+00 1.35369581e+00 + 1.34786809e+00 1.34206546e+00 1.33628781e+00 1.33053503e+00 1.32480701e+00 + 1.31910366e+00 1.31342486e+00 1.30777050e+00 1.30214049e+00 1.29653472e+00 + 1.29095307e+00 1.28539546e+00 1.27986177e+00 1.27435191e+00 1.26886576e+00 + 1.26340323e+00 1.25796422e+00 1.25254863e+00 1.24715635e+00 1.24178728e+00 + 1.23644132e+00 1.23111838e+00 1.22581836e+00 1.22054115e+00 1.21528666e+00 + 1.21005479e+00 1.20484545e+00 1.19965853e+00 1.19449394e+00 1.18935159e+00 + 1.18423137e+00 1.17913319e+00 1.17405697e+00 1.16900259e+00 1.16396998e+00 + 1.15895903e+00 1.15396965e+00 1.14900176e+00 1.14405525e+00 1.13913003e+00 + 1.13422602e+00 1.12934312e+00 1.12448124e+00 1.11964029e+00 1.11482018e+00 + 1.11002083e+00 1.10524213e+00 1.10048401e+00 1.09574637e+00 1.09102912e+00 + 1.08633219e+00 1.08165547e+00 1.07699889e+00 1.07236235e+00 1.06774578e+00 + 1.06314908e+00 1.05857217e+00 1.05401496e+00 1.04947737e+00 1.04495932e+00 + 1.04046071e+00 1.03598147e+00 1.03152152e+00 1.02708077e+00 1.02265913e+00 + 1.01825653e+00 1.01387288e+00 1.00950811e+00 1.00516212e+00 1.00083485e+00 + 9.96526200e-01 9.92236102e-01 9.87964474e-01 9.83711235e-01 9.79476307e-01 + 9.75259610e-01 9.71061066e-01 9.66880597e-01 9.62718125e-01 9.58573573e-01 + 9.54446863e-01 9.50337919e-01 9.46246665e-01 9.42173023e-01 9.38116918e-01 + 9.34078275e-01 9.30057019e-01 9.26053075e-01 9.22066367e-01 9.18096823e-01 + 9.14144367e-01 9.10208927e-01 9.06290430e-01 9.02388801e-01 8.98503970e-01 + 8.94635863e-01 8.90784408e-01 8.86949534e-01 8.83131169e-01 8.79329242e-01 + 8.75543683e-01 8.71774421e-01 8.68021386e-01 8.64284508e-01 8.60563717e-01 + 8.56858944e-01 8.53170121e-01 8.49497178e-01 8.45840048e-01 8.42198661e-01 + 8.38572951e-01 8.34962850e-01 8.31368290e-01 8.27789206e-01 8.24225529e-01 + 8.20677194e-01 8.17144135e-01 8.13626286e-01 8.10123581e-01 8.06635956e-01 + 8.03163345e-01 7.99705684e-01 7.96262909e-01 7.92834954e-01 7.89421757e-01 + 7.86023255e-01 7.82639383e-01 7.79270078e-01 7.75915279e-01 7.72574922e-01 + 7.69248946e-01 7.65937288e-01 7.62639887e-01 7.59356682e-01 7.56087611e-01 + 7.52832613e-01 7.49591629e-01 7.46364597e-01 7.43151457e-01 7.39952150e-01 + 7.36766617e-01 7.33594797e-01 7.30436632e-01 7.27292064e-01 7.24161032e-01 + 7.21043481e-01 7.17939350e-01 7.14848583e-01 7.11771121e-01 7.08706909e-01 + 7.05655887e-01 7.02618001e-01 6.99593193e-01 6.96581407e-01 6.93582587e-01 + 6.90596677e-01 6.87623621e-01 6.84663365e-01 6.81715852e-01 6.78781029e-01 + 6.75858841e-01 6.72949232e-01 6.70052150e-01 6.67167540e-01 6.64295348e-01 + 6.61435521e-01 6.58588006e-01 6.55752749e-01 6.52929699e-01 6.50118801e-01 + 6.47320005e-01 6.44533258e-01 6.41758508e-01 6.38995703e-01 6.36238507e-01 + 6.33458395e-01 6.30652264e-01 6.27820565e-01 6.24963747e-01 6.22082260e-01 + 6.19176555e-01 6.16247082e-01 6.13294291e-01 6.10318634e-01 6.07320561e-01 + 6.04300524e-01 6.01258971e-01 5.98196355e-01 5.95113124e-01 5.92009729e-01 + 5.88886619e-01 5.85744243e-01 5.82583049e-01 5.79403486e-01 5.76206000e-01 + 5.72991037e-01 5.69759044e-01 5.66510466e-01 5.63245747e-01 5.59965329e-01 + 5.56669655e-01 5.53359166e-01 5.50034303e-01 5.46695503e-01 5.43343205e-01 + 5.39977845e-01 5.36599858e-01 5.33209679e-01 5.29807738e-01 5.26394469e-01 + 5.22970298e-01 5.19535655e-01 5.16090966e-01 5.12636655e-01 5.09173146e-01 + 5.05700858e-01 5.02220212e-01 4.98731626e-01 4.95235513e-01 4.91732289e-01 + 4.88222365e-01 4.84706151e-01 4.81184053e-01 4.77656479e-01 4.74123830e-01 + 4.70586509e-01 4.67044914e-01 4.63499441e-01 4.59950486e-01 4.56398440e-01 + 4.52843693e-01 4.49286632e-01 4.45727643e-01 4.42167106e-01 4.38605403e-01 + 4.35042911e-01 4.31480003e-01 4.27917053e-01 4.24354430e-01 4.20792500e-01 + 4.17231628e-01 4.13672175e-01 4.10114499e-01 4.06558956e-01 4.03005900e-01 + 3.99455680e-01 3.95908643e-01 3.92365134e-01 3.88825495e-01 3.85290063e-01 + 3.81759174e-01 3.78233160e-01 3.74712352e-01 3.71197075e-01 3.67687654e-01 + 3.64184407e-01 3.60687652e-01 3.57197704e-01 3.53714873e-01 3.50239466e-01 + 3.46771790e-01 3.43312144e-01 3.39860827e-01 3.36418134e-01 3.32984356e-01 + 3.29559782e-01 3.26144697e-01 3.22739384e-01 3.19344119e-01 3.15959180e-01 + 3.12584837e-01 3.09221359e-01 3.05869011e-01 3.02528056e-01 2.99198751e-01 + 2.95881353e-01 2.92576112e-01 2.89283277e-01 2.86003093e-01 2.82735801e-01 + 2.79481640e-01 2.76240845e-01 2.73013646e-01 2.69800271e-01 2.66600946e-01 + 2.63415890e-01 2.60245322e-01 2.57089455e-01 2.53948501e-01 2.50822666e-01 + 2.47712155e-01 2.44617167e-01 2.41537899e-01 2.38474546e-01 2.35427297e-01 + 2.32396338e-01 2.29381852e-01 2.26384020e-01 2.23403018e-01 2.20439018e-01 + 2.17492189e-01 2.14562698e-01 2.11650708e-01 2.08756376e-01 2.05879860e-01 + 2.03021310e-01 2.00180877e-01 1.97358705e-01 1.94554938e-01 1.91769712e-01 + 1.89003164e-01 1.86255427e-01 1.83526627e-01 1.80816892e-01 1.78126342e-01 + 1.75455096e-01 1.72803270e-01 1.70170976e-01 1.67558322e-01 1.64965415e-01 + 1.62392355e-01 1.59839242e-01 1.57306173e-01 1.54793238e-01 1.52300528e-01 + 1.49828128e-01 1.47376122e-01 1.44944589e-01 1.42533605e-01 1.40143244e-01 + 1.37773576e-01 1.35424669e-01 1.33096586e-01 1.30789388e-01 1.28503133e-01 + 1.26237876e-01 1.23993669e-01 1.21770561e-01 1.19568597e-01 1.17387819e-01 + 1.15228269e-01 1.13089983e-01 1.10972994e-01 1.08877334e-01 1.06803032e-01 + 1.04750111e-01 1.02718596e-01 1.00708504e-01 9.87198546e-02 9.67526601e-02 + 9.48069321e-02 9.28826793e-02 9.09799074e-02 8.90986195e-02 8.72388160e-02 + 8.54004947e-02 8.35836507e-02 8.17882765e-02 8.00143621e-02 7.82618946e-02 + 7.65308589e-02 7.48212373e-02 7.31330096e-02 7.14661528e-02 6.98206420e-02 + 6.81964494e-02 6.65935450e-02 6.50118964e-02 6.34514687e-02 6.19122249e-02 + 6.03941255e-02 5.88971287e-02 5.74211906e-02 5.59662647e-02 5.45323028e-02 + 5.31192541e-02 5.17270657e-02 5.03556826e-02 4.90050478e-02 4.76751021e-02 + 4.63657840e-02 4.50770304e-02 4.38087758e-02 4.25609529e-02 4.13334924e-02 + 4.01263230e-02 3.89393716e-02 3.77725629e-02 3.66258202e-02 3.54990645e-02 + 3.43922153e-02 3.33051902e-02 3.22379050e-02 3.11902738e-02 3.01622089e-02 + 2.91536210e-02 2.81644191e-02 2.71945107e-02 2.62438014e-02 2.53121954e-02 + 2.43995955e-02 2.35059025e-02 2.26310161e-02 2.17748345e-02 2.09372541e-02 + 2.01181702e-02 1.93174766e-02 1.85350657e-02 1.77708286e-02 1.70246549e-02 + 1.62964331e-02 1.55860503e-02 1.48933924e-02 1.42183441e-02 1.35607888e-02 + 1.29206088e-02 1.22976853e-02 1.16918981e-02 1.11031263e-02 1.05312477e-02 + 9.97613897e-03 9.43767596e-03 8.91573339e-03 8.41018504e-03 7.92090374e-03 + 7.44776140e-03 6.99062900e-03 6.54937668e-03 6.12387372e-03 5.71398855e-03 + 5.31958883e-03 4.94054141e-03 4.57671242e-03 4.22796722e-03 3.89417050e-03 + 3.57518626e-03 3.27087781e-03 2.98110787e-03 2.70573852e-03 2.44463127e-03 + 2.19764704e-03 1.96464623e-03 1.74548872e-03 1.54003390e-03 1.34814065e-03 + 1.16966746e-03 1.00447234e-03 8.52412931e-04 7.13346467e-04 5.87129835e-04 + 4.73619582e-04 3.72671936e-04 2.84142832e-04 2.07887934e-04 1.43762651e-04 + 9.16221633e-05 5.13214436e-05 2.27152755e-05 5.65827573e-06 0.00000000e+00 + 3.71505131e+05 2.74649258e+05 1.35893225e+05 8.96579686e+04 6.65526070e+04 + 5.26989696e+04 4.34710050e+04 3.68861241e+04 3.19530360e+04 2.81210268e+04 + 2.50596707e+04 2.25586996e+04 2.04779367e+04 1.87203386e+04 1.72165903e+04 + 1.59158625e+04 1.47800346e+04 1.37799571e+04 1.28929591e+04 1.21011439e+04 + 1.13901951e+04 1.07485244e+04 1.01666510e+04 9.63674408e+03 9.15227864e+03 + 8.70777443e+03 8.29859499e+03 7.92079138e+03 7.57097941e+03 7.24624224e+03 + 6.94405245e+03 6.66220928e+03 6.39878750e+03 6.15209569e+03 5.92064187e+03 + 5.70310492e+03 5.49831093e+03 5.30521323e+03 5.12287567e+03 4.95045842e+03 + 4.78720594e+03 4.63243671e+03 4.48553435e+03 4.34594011e+03 4.21314626e+03 + 4.08669044e+03 3.96615071e+03 3.85114128e+03 3.74130867e+03 3.63632847e+03 + 3.53590240e+03 3.43975576e+03 3.34763513e+03 3.25930639e+03 3.17455290e+03 + 3.09317393e+03 3.01498322e+03 2.93980772e+03 2.86748644e+03 2.79786941e+03 + 2.73081680e+03 2.66619804e+03 2.60389110e+03 2.54378179e+03 2.48576316e+03 + 2.42973494e+03 2.37560302e+03 2.32327899e+03 2.27267973e+03 2.22372701e+03 + 2.17634716e+03 2.13047071e+03 2.08603215e+03 2.04296960e+03 2.00122459e+03 + 1.96074185e+03 1.92146906e+03 1.88335668e+03 1.84635776e+03 1.81042780e+03 + 1.77552455e+03 1.74160791e+03 1.70863977e+03 1.67658393e+03 1.64540592e+03 + 1.61507295e+03 1.58555380e+03 1.55681872e+03 1.52883936e+03 1.50158865e+03 + 1.47504079e+03 1.44917112e+03 1.42395612e+03 1.39937327e+03 1.37540106e+03 + 1.35201892e+03 1.32920716e+03 1.30694691e+03 1.28522013e+03 1.26400950e+03 + 1.24329844e+03 1.22307103e+03 1.20331203e+03 1.18400677e+03 1.16514119e+03 + 1.14670178e+03 1.12867557e+03 1.11105008e+03 1.09381330e+03 1.07695372e+03 + 1.06046021e+03 1.04432210e+03 1.02852909e+03 1.01307129e+03 9.97939129e+02 + 9.83123423e+02 9.68615298e+02 9.54406200e+02 9.40487878e+02 9.26852371e+02 + 9.13491996e+02 9.00399335e+02 8.87567225e+02 8.74988744e+02 8.62657207e+02 + 8.50566152e+02 8.38709332e+02 8.27080706e+02 8.15674431e+02 8.04484854e+02 + 7.93506505e+02 7.82734090e+02 7.72162481e+02 7.61786715e+02 7.51601983e+02 + 7.41603627e+02 7.31787132e+02 7.22148123e+02 7.12682357e+02 7.03385720e+02 + 6.94254225e+02 6.85283999e+02 6.76471287e+02 6.67812446e+02 6.59303936e+02 + 6.50942324e+02 6.42724275e+02 6.34646548e+02 6.26705997e+02 6.18899565e+02 + 6.11224280e+02 6.03677253e+02 5.96255678e+02 5.88956824e+02 5.81778037e+02 + 5.74716734e+02 5.67770403e+02 5.60936600e+02 5.54212947e+02 5.47597127e+02 + 5.41086888e+02 5.34680034e+02 5.28374430e+02 5.22167994e+02 5.16058699e+02 + 5.10044569e+02 5.04123681e+02 4.98294159e+02 4.92554175e+02 4.86901947e+02 + 4.81335739e+02 4.75853855e+02 4.70454645e+02 4.65136496e+02 4.59897836e+02 + 4.54737133e+02 4.49652890e+02 4.44643646e+02 4.39707976e+02 4.34844488e+02 + 4.30051824e+02 4.25328659e+02 4.20673696e+02 4.16085670e+02 4.11563347e+02 + 4.07105518e+02 4.02711005e+02 3.98378656e+02 3.94107344e+02 3.89895969e+02 + 3.85743454e+02 3.81648749e+02 3.77610825e+02 3.73628677e+02 3.69701321e+02 + 3.65827796e+02 3.62007162e+02 3.58238498e+02 3.54520905e+02 3.50853501e+02 + 3.47235425e+02 3.43665834e+02 3.40143902e+02 3.36668821e+02 3.33239801e+02 + 3.29856066e+02 3.26516860e+02 3.23221438e+02 3.19969076e+02 3.16759059e+02 + 3.13590692e+02 3.10463290e+02 3.07376184e+02 3.04328720e+02 3.01320253e+02 + 2.98350154e+02 2.95417807e+02 2.92522606e+02 2.89663958e+02 2.86841283e+02 + 2.84054011e+02 2.81301582e+02 2.78583450e+02 2.75899078e+02 2.73247937e+02 + 2.70629513e+02 2.68043298e+02 2.65488794e+02 2.62965516e+02 2.60472984e+02 + 2.58010728e+02 2.55578289e+02 2.53175214e+02 2.50801060e+02 2.48455392e+02 + 2.46137782e+02 2.43847811e+02 2.41585068e+02 2.39349147e+02 2.37139654e+02 + 2.34956196e+02 2.32798393e+02 2.30665869e+02 2.28558254e+02 2.26475186e+02 + 2.24416310e+02 2.22381275e+02 2.20369739e+02 2.18381363e+02 2.16415817e+02 + 2.14472775e+02 2.12551916e+02 2.10652927e+02 2.08775497e+02 2.06919325e+02 + 2.05084110e+02 2.03269560e+02 2.01475387e+02 1.99701306e+02 1.97947040e+02 + 1.96212314e+02 1.94496858e+02 1.92800409e+02 1.91122705e+02 1.89463490e+02 + 1.87822514e+02 1.86199527e+02 1.84594287e+02 1.83006553e+02 1.81436090e+02 + 1.79882667e+02 1.78346055e+02 1.76826030e+02 1.75322370e+02 1.73834860e+02 + 1.72363285e+02 1.70907435e+02 1.69467104e+02 1.68042086e+02 1.66632183e+02 + 1.65237197e+02 1.63856933e+02 1.62491201e+02 1.61139813e+02 1.59802583e+02 + 1.58479330e+02 1.57169873e+02 1.55874037e+02 1.54591647e+02 1.53322532e+02 + 1.52066524e+02 1.50823456e+02 1.49593165e+02 1.48375490e+02 1.47170273e+02 + 1.45977356e+02 1.44796588e+02 1.43627815e+02 1.42470889e+02 1.41325662e+02 + 1.40191991e+02 1.39069732e+02 1.37958744e+02 1.36858890e+02 1.35770033e+02 + 1.34692038e+02 1.33624774e+02 1.32568109e+02 1.31521915e+02 1.30486065e+02 + 1.29460434e+02 1.28444900e+02 1.27439341e+02 1.26443637e+02 1.25457671e+02 + 1.24481326e+02 1.23514488e+02 1.22557044e+02 1.21608883e+02 1.20669895e+02 + 1.19739973e+02 1.18819008e+02 1.17906897e+02 1.17003536e+02 1.16108822e+02 + 1.15222655e+02 1.14344935e+02 1.13475565e+02 1.12614448e+02 1.11761488e+02 + 1.10916591e+02 1.10079666e+02 1.09250620e+02 1.08429363e+02 1.07615807e+02 + 1.06809864e+02 1.06011446e+02 1.05220470e+02 1.04436850e+02 1.03660504e+02 + 1.02891350e+02 1.02129306e+02 1.01374294e+02 1.00626234e+02 9.98850490e+01 + 9.91506621e+01 9.84229978e+01 9.77019815e+01 9.69875397e+01 9.62795998e+01 + 9.55780899e+01 9.48829395e+01 9.41940788e+01 9.35114387e+01 9.28349515e+01 + 9.21645498e+01 9.15001676e+01 9.08417394e+01 9.01892007e+01 8.95424878e+01 + 8.89015379e+01 8.82662888e+01 8.76366793e+01 8.70126489e+01 8.63941379e+01 + 8.57810873e+01 8.51734390e+01 8.45711354e+01 8.39741198e+01 8.33823362e+01 + 8.27957293e+01 8.22142444e+01 8.16378276e+01 8.10664257e+01 8.04999861e+01 + 7.99384568e+01 7.93817865e+01 7.88299247e+01 7.82828212e+01 7.77404266e+01 + 7.72026922e+01 7.66695698e+01 7.61410118e+01 7.56169711e+01 7.50974014e+01 + 7.45822568e+01 7.40714918e+01 7.35650619e+01 7.30629228e+01 7.25650308e+01 + 7.20713427e+01 7.15818160e+01 7.10964085e+01 7.06150787e+01 7.01377854e+01 + 6.96644881e+01 6.91951466e+01 6.87297212e+01 6.82681729e+01 6.78104629e+01 + 6.73565530e+01 6.69064053e+01 6.64599827e+01 6.60172481e+01 6.55781651e+01 + 6.51426977e+01 6.47108103e+01 6.42824677e+01 6.38576352e+01 6.34362783e+01 + 6.30183631e+01 6.26038561e+01 6.21927241e+01 6.17849342e+01 6.13804542e+01 + 6.09792519e+01 6.05812957e+01 6.01865543e+01 5.97949967e+01 5.94065925e+01 + 5.90213113e+01 5.86391234e+01 5.82599991e+01 5.78839092e+01 5.75108250e+01 + 5.71407179e+01 5.67735596e+01 5.64093223e+01 5.60479784e+01 5.56895007e+01 + 5.53338621e+01 5.49810362e+01 5.46309964e+01 5.42837169e+01 5.39391717e+01 + 5.35973355e+01 5.32581831e+01 5.29216896e+01 5.25878303e+01 5.22565810e+01 + 5.19279175e+01 5.16018161e+01 5.12782532e+01 5.09572056e+01 5.06386501e+01 + 5.03225641e+01 5.00089251e+01 4.96977108e+01 4.93888991e+01 4.90824683e+01 + 4.87783969e+01 4.84766635e+01 4.81772471e+01 4.78801269e+01 4.75852822e+01 + 4.72926927e+01 4.70023383e+01 4.67141989e+01 4.64282548e+01 4.61444866e+01 + 4.58628749e+01 4.55834007e+01 4.53060451e+01 4.50307894e+01 4.47576150e+01 + 4.44865039e+01 4.42174378e+01 4.39503989e+01 4.36853695e+01 4.34223320e+01 + 4.31612692e+01 4.29021640e+01 4.26449994e+01 4.23897586e+01 4.21364250e+01 + 4.18849823e+01 4.16354141e+01 4.13877045e+01 4.11418375e+01 4.08977974e+01 + 4.06555686e+01 4.04151358e+01 4.01764837e+01 3.99395973e+01 3.97044616e+01 + 3.94710618e+01 3.92393834e+01 3.90094120e+01 3.87811332e+01 3.85545328e+01 + 3.83295969e+01 3.81063117e+01 3.78846634e+01 3.76646384e+01 3.74462233e+01 + 3.72294049e+01 3.70141699e+01 3.68005054e+01 3.65883986e+01 3.63778365e+01 + 3.61688067e+01 3.59612967e+01 3.57552940e+01 3.55507865e+01 3.53477621e+01 + 3.51462088e+01 3.49461146e+01 3.47474680e+01 3.45502573e+01 3.43544709e+01 + 3.41600975e+01 3.39671259e+01 3.37755448e+01 3.35853433e+01 3.33965104e+01 + 3.32090353e+01 3.30229073e+01 3.28381158e+01 3.26546502e+01 3.24725003e+01 + 3.22916557e+01 3.21121062e+01 3.19338418e+01 3.17568524e+01 3.15811282e+01 + 3.14066595e+01 3.12334364e+01 3.10614495e+01 3.08906892e+01 3.07211461e+01 + 3.05528109e+01 3.03856744e+01 3.02197274e+01 3.00549609e+01 2.98913659e+01 + 2.97289337e+01 2.95676552e+01 2.94075220e+01 2.92485253e+01 2.90906567e+01 + 2.89339075e+01 2.87782696e+01 2.86237345e+01 2.84702941e+01 2.83179402e+01 + 2.81666647e+01 2.80164597e+01 2.78673172e+01 2.77192294e+01 2.75721884e+01 + 2.74261867e+01 2.72812164e+01 2.71372702e+01 2.69943404e+01 2.68524196e+01 + 2.67115005e+01 2.65715758e+01 2.64326381e+01 2.62946804e+01 2.61576954e+01 + 2.60216762e+01 2.58866157e+01 2.57525070e+01 2.56193432e+01 2.54871175e+01 + 2.53558231e+01 2.52254532e+01 2.50960012e+01 2.49674605e+01 2.48398246e+01 + 2.47130868e+01 2.45872407e+01 2.44622800e+01 2.43381982e+01 2.42149890e+01 + 2.40926461e+01 2.39711634e+01 2.38505345e+01 2.37307534e+01 2.36118139e+01 + 2.34937099e+01 2.33764355e+01 2.32599847e+01 2.31443514e+01 2.30295297e+01 + 2.29155138e+01 2.28022979e+01 2.26898760e+01 2.25782423e+01 2.24673913e+01 + 2.23573170e+01 2.22480138e+01 2.21394760e+01 2.20316979e+01 2.19246741e+01 + 2.18183987e+01 2.17128663e+01 2.16080713e+01 2.15040081e+01 2.14006713e+01 + 2.12980553e+01 2.11961547e+01 2.10949639e+01 2.09944776e+01 2.08946903e+01 + 2.07955965e+01 2.06971909e+01 2.05994680e+01 2.05024225e+01 2.04060489e+01 + 2.03103419e+01 2.02152961e+01 2.01209062e+01 2.00271667e+01 1.99340723e+01 + 1.98416176e+01 1.97497974e+01 1.96586061e+01 1.95680384e+01 1.94780891e+01 + 1.93887526e+01 1.93000236e+01 1.92118968e+01 1.91243667e+01 1.90374279e+01 + 1.89510751e+01 1.88653027e+01 1.87801054e+01 1.86954777e+01 1.86114142e+01 + 1.85279093e+01 1.84449576e+01 1.83625536e+01 1.82806917e+01 1.81993664e+01 + 1.81185722e+01 1.80383034e+01 1.79585544e+01 1.78793197e+01 1.78005935e+01 + 1.77223703e+01 1.76446442e+01 1.75674096e+01 1.74906608e+01 1.74143919e+01 + 1.73385972e+01 1.72632708e+01 1.71884069e+01 1.71139997e+01 1.70400432e+01 + 1.69665314e+01 1.68934585e+01 1.68208185e+01 1.67486053e+01 1.66768129e+01 + 1.66054352e+01 1.65344662e+01 1.64638996e+01 1.63937295e+01 1.63239495e+01 + 1.62545536e+01 1.61855354e+01 1.61168888e+01 1.60486074e+01 1.59806849e+01 + 1.59131152e+01 1.58458917e+01 1.57790082e+01 1.57124583e+01 1.56462356e+01 + 1.55803337e+01 1.55147462e+01 1.54494667e+01 1.53844886e+01 1.53198057e+01 + 1.52554114e+01 1.51912992e+01 1.51274628e+01 1.50638956e+01 1.50005912e+01 + 1.49375432e+01 1.48747451e+01 1.48121904e+01 1.47498729e+01 1.46877860e+01 + 1.46259234e+01 1.45642788e+01 1.45028458e+01 1.44416180e+01 1.43805894e+01 + 1.43197535e+01 1.42591043e+01 1.41986356e+01 1.41383412e+01 1.40782152e+01 + 1.40182515e+01 1.39584442e+01 1.38987874e+01 1.38392754e+01 1.37799023e+01 + 1.37206626e+01 1.36615506e+01 1.36025608e+01 1.35436879e+01 1.34849265e+01 + 1.34262714e+01 1.33677175e+01 1.33092596e+01 1.32508930e+01 1.31926128e+01 + 1.31344143e+01 1.30762930e+01 1.30182443e+01 1.29602640e+01 1.29023479e+01 + 1.28444919e+01 1.27866920e+01 1.27289446e+01 1.26712459e+01 1.26135925e+01 + 1.25559810e+01 1.24984082e+01 1.24408710e+01 1.23833667e+01 1.23258924e+01 + 1.22684456e+01 1.22110239e+01 1.21536251e+01 1.20962470e+01 1.20388879e+01 + 1.19815458e+01 1.19242194e+01 1.18669071e+01 1.18096078e+01 1.17523204e+01 + 1.16950440e+01 1.16377779e+01 1.15805216e+01 1.15232746e+01 1.14660369e+01 + 1.14088083e+01 1.13515889e+01 1.12943791e+01 1.12371794e+01 1.11799903e+01 + 1.11228126e+01 1.10656472e+01 1.10084953e+01 1.09513580e+01 1.08942368e+01 + 1.08371332e+01 1.07800489e+01 1.07229856e+01 1.06659454e+01 1.06089302e+01 + 1.05519423e+01 1.04949840e+01 1.04380578e+01 1.03811662e+01 1.03243118e+01 + 1.02674975e+01 1.02107262e+01 1.01540007e+01 1.00973241e+01 1.00406996e+01 + 9.98413044e+00 9.92761985e+00 9.87117124e+00 9.81478802e+00 9.75847371e+00 + 9.70223184e+00 9.64606603e+00 9.58997992e+00 9.53397719e+00 9.47806158e+00 + 9.42223684e+00 9.36650675e+00 9.31087511e+00 9.25534574e+00 9.19992248e+00 + 9.14460916e+00 9.08940962e+00 9.03432771e+00 8.97936725e+00 8.92453207e+00 + 8.86982599e+00 8.81525279e+00 8.76081624e+00 8.70652009e+00 8.65236805e+00 + 8.59836381e+00 8.54451101e+00 8.49081326e+00 8.43727413e+00 8.38389714e+00 + 8.33068575e+00 8.27764339e+00 8.22477343e+00 8.17207918e+00 8.11956390e+00 + 8.06723078e+00 8.01508296e+00 7.96312350e+00 7.91135542e+00 7.85978164e+00 + 7.80840505e+00 7.75722843e+00 7.70625452e+00 7.65548598e+00 7.60492538e+00 + 7.55457525e+00 7.50443802e+00 7.45451604e+00 7.40481162e+00 7.35532695e+00 + 7.30606417e+00 7.25702534e+00 7.20821245e+00 7.15962739e+00 7.11127200e+00 + 7.06314804e+00 7.01525718e+00 6.96760102e+00 6.92018109e+00 6.87299885e+00 + 6.82605568e+00 6.77935288e+00 6.73289168e+00 6.68667325e+00 6.64069867e+00 + 6.59496898e+00 6.54948512e+00 6.50424797e+00 6.45925834e+00 6.41451700e+00 + 6.37002461e+00 6.32578181e+00 6.28178913e+00 6.23804709e+00 6.19455611e+00 + 6.15131656e+00 6.10832876e+00 6.06559296e+00 6.02310937e+00 5.98087813e+00 + 5.93889933e+00 5.89717300e+00 5.85569914e+00 5.81447769e+00 5.77350853e+00 + 5.73279150e+00 5.69232639e+00 5.65211296e+00 5.61215092e+00 5.57243991e+00 + 5.53297956e+00 5.49376946e+00 5.45480915e+00 5.41609812e+00 5.37763584e+00 + 5.33942175e+00 5.30145525e+00 5.26373568e+00 5.22626240e+00 5.18903469e+00 + 5.15205182e+00 5.11531304e+00 5.07881756e+00 5.04256457e+00 5.00655322e+00 + 4.97078266e+00 4.93525199e+00 4.89996030e+00 4.86490667e+00 4.83009013e+00 + 4.79550971e+00 4.76116442e+00 4.72705324e+00 4.69317516e+00 4.65952911e+00 + 4.62611405e+00 4.59292889e+00 4.55997254e+00 4.52724390e+00 4.49474186e+00 + 4.46246527e+00 4.43041301e+00 4.39858391e+00 4.36697683e+00 4.33559058e+00 + 4.30442399e+00 4.27347587e+00 4.24274502e+00 4.21223025e+00 4.18193034e+00 + 4.15184408e+00 4.12197025e+00 4.09230762e+00 4.06285497e+00 4.03361105e+00 + 4.00457465e+00 3.97574451e+00 3.94711939e+00 3.91869805e+00 3.89047924e+00 + 3.86246171e+00 3.83464422e+00 3.80702552e+00 3.77960436e+00 3.75237948e+00 + 3.72534965e+00 3.69851361e+00 3.67187011e+00 3.64541790e+00 3.61915576e+00 + 3.59308242e+00 3.56719665e+00 3.54149722e+00 3.51598288e+00 3.49065241e+00 + 3.46550458e+00 3.44053815e+00 3.41575191e+00 3.39114464e+00 3.36671512e+00 + 3.34246213e+00 3.31838448e+00 3.29448096e+00 3.27075038e+00 3.24719152e+00 + 3.22380322e+00 3.20058428e+00 3.17753353e+00 3.15464979e+00 3.13193188e+00 + 3.10937866e+00 3.08698896e+00 3.06476163e+00 3.04269551e+00 3.02078948e+00 + 2.99904239e+00 2.97745312e+00 2.95602054e+00 2.93474353e+00 2.91362099e+00 + 2.89265181e+00 2.87183488e+00 2.85116912e+00 2.83065343e+00 2.81028675e+00 + 2.79006799e+00 2.76999609e+00 2.75006998e+00 2.73028861e+00 2.71065093e+00 + 2.69115591e+00 2.67180250e+00 2.65258967e+00 2.63351641e+00 2.61458169e+00 + 2.59578452e+00 2.57712388e+00 2.55859877e+00 2.54020822e+00 2.52195123e+00 + 2.50382683e+00 2.48583406e+00 2.46797193e+00 2.45023951e+00 2.43263583e+00 + 2.41515996e+00 2.39781095e+00 2.38058788e+00 2.36348981e+00 2.34651584e+00 + 2.32966505e+00 2.31293654e+00 2.29632940e+00 2.27984274e+00 2.26347568e+00 + 2.24722733e+00 2.23109683e+00 2.21508330e+00 2.19918589e+00 2.18340374e+00 + 2.16773599e+00 2.15218181e+00 2.13674036e+00 2.12141081e+00 2.10619234e+00 + 2.09108412e+00 2.07608534e+00 2.06119520e+00 2.04641290e+00 2.03173764e+00 + 2.01716864e+00 2.00270510e+00 1.98834625e+00 1.97409133e+00 1.95993956e+00 + 1.94589018e+00 1.93194245e+00 1.91809560e+00 1.90434891e+00 1.89070162e+00 + 1.87715301e+00 1.86370236e+00 1.85034893e+00 1.83709202e+00 1.82393091e+00 + 1.81086490e+00 1.79789329e+00 1.78501538e+00 1.77223049e+00 1.75953793e+00 + 1.74693701e+00 1.73442708e+00 1.72200745e+00 1.70967747e+00 1.69743647e+00 + 1.68528380e+00 1.67321882e+00 1.66124088e+00 1.64934933e+00 1.63754355e+00 + 1.62582290e+00 1.61418677e+00 1.60263452e+00 1.59116555e+00 1.57977925e+00 + 1.56847500e+00 1.55725221e+00 1.54611027e+00 1.53504861e+00 1.52406662e+00 + 1.51316373e+00 1.50233935e+00 1.49159292e+00 1.48092386e+00 1.47033160e+00 + 1.45981558e+00 1.44937525e+00 1.43901005e+00 1.42871943e+00 1.41850285e+00 + 1.40835976e+00 1.39828964e+00 1.38829194e+00 1.37836613e+00 1.36851170e+00 + 1.35872813e+00 1.34901488e+00 1.33937146e+00 1.32979735e+00 1.32029205e+00 + 1.31085505e+00 1.30148586e+00 1.29218399e+00 1.28294893e+00 1.27378022e+00 + 1.26467735e+00 1.25563986e+00 1.24666727e+00 1.23775911e+00 1.22891490e+00 + 1.22013419e+00 1.21141650e+00 1.20276139e+00 1.19416839e+00 1.18563706e+00 + 1.17716695e+00 1.16875761e+00 1.16040861e+00 1.15211950e+00 1.14388985e+00 + 1.13571922e+00 1.12760720e+00 1.11955335e+00 1.11155725e+00 1.10361848e+00 + 1.09573664e+00 1.08791130e+00 1.08014205e+00 1.07242850e+00 1.06477023e+00 + 1.05716685e+00 1.04961796e+00 1.04212316e+00 1.03468206e+00 1.02729427e+00 + 1.01995942e+00 1.01267711e+00 1.00544696e+00 9.98268607e-01 9.91141664e-01 + 9.84065763e-01 9.77040534e-01 9.70065612e-01 9.63140634e-01 9.56265238e-01 + 9.49439067e-01 9.42661765e-01 9.35932979e-01 9.29252359e-01 9.22619557e-01 + 9.16034229e-01 9.09496031e-01 9.03004625e-01 8.96559671e-01 8.90160836e-01 + 8.83807786e-01 8.77500192e-01 8.71237727e-01 8.65020063e-01 8.58846880e-01 + 8.52717856e-01 8.46632673e-01 8.40591016e-01 8.34592571e-01 8.28637027e-01 + 8.22724074e-01 8.16853407e-01 8.11024721e-01 8.05237713e-01 7.99492085e-01 + 7.93787537e-01 7.88123775e-01 7.82500506e-01 7.76917437e-01 7.71374280e-01 + 7.65870748e-01 7.60406556e-01 7.54981421e-01 7.49595063e-01 7.44247202e-01 + 7.38937563e-01 7.33665869e-01 7.28431850e-01 7.23235234e-01 7.18075752e-01 + 7.12953138e-01 7.07867127e-01 7.02817456e-01 6.97803864e-01 6.92826092e-01 + 6.87883884e-01 6.82976983e-01 6.78105137e-01 6.73268093e-01 6.68465603e-01 + 6.63697417e-01 6.58963291e-01 6.54262979e-01 6.49596240e-01 6.44962832e-01 + 6.40362516e-01 6.35795055e-01 6.31260213e-01 6.26757758e-01 6.22287455e-01 + 6.17849075e-01 6.13442390e-01 6.09067171e-01 6.04723193e-01 6.00410233e-01 + 5.96128068e-01 5.91876478e-01 5.87655243e-01 5.83464146e-01 5.79302972e-01 + 5.75171505e-01 5.71069533e-01 5.66996845e-01 5.62953230e-01 5.58938482e-01 + 5.54952393e-01 5.50994758e-01 5.47065373e-01 5.43164035e-01 5.39290546e-01 + 5.35444703e-01 5.31626311e-01 5.27835173e-01 5.24071092e-01 5.20333877e-01 + 5.16623334e-01 5.12939273e-01 5.09281504e-01 5.05649839e-01 5.02044091e-01 + 4.98464075e-01 4.94909607e-01 4.91380505e-01 4.87876585e-01 4.84397670e-01 + 4.80943579e-01 4.77514135e-01 4.74109162e-01 4.70728485e-01 4.67371930e-01 + 4.64039325e-01 4.60730498e-01 4.57445280e-01 4.54183502e-01 4.50944995e-01 + 4.47729594e-01 4.44537134e-01 4.41367451e-01 4.38220381e-01 4.35095763e-01 + 4.31993437e-01 4.28913243e-01 4.25855024e-01 4.22818621e-01 4.19803880e-01 + 4.16810646e-01 4.13838764e-01 4.10888082e-01 4.07958449e-01 4.05049714e-01 + 4.02161729e-01 3.99294344e-01 3.96447413e-01 3.93620789e-01 3.90814328e-01 + 3.88027885e-01 3.85261318e-01 3.82514484e-01 3.79787243e-01 3.77079454e-01 + 3.74390979e-01 3.71721680e-01 3.69071419e-01 3.66440061e-01 3.63827471e-01 + 3.61233515e-01 3.58658059e-01 3.56100972e-01 3.53562123e-01 3.51041381e-01 + 3.48538617e-01 3.46053702e-01 3.43586510e-01 3.41136913e-01 3.38704786e-01 + 3.36290004e-01 3.33892444e-01 3.31511982e-01 3.29148497e-01 3.26801867e-01 + 3.24471972e-01 3.22158693e-01 3.19861910e-01 3.17581506e-01 3.15317365e-01 + 3.13069370e-01 3.10837405e-01 3.08621358e-01 3.06421113e-01 3.04236558e-01 + 3.02067581e-01 2.99914071e-01 2.97775918e-01 2.95653012e-01 2.93545243e-01 + 2.91452505e-01 2.89374690e-01 2.87311691e-01 2.85263403e-01 2.83229721e-01 + 2.81210540e-01 2.79205757e-01 2.77215269e-01 2.75238974e-01 2.73276772e-01 + 2.71328561e-01 2.69394241e-01 2.67473714e-01 2.65566881e-01 2.63673644e-01 + 2.61793907e-01 2.59927573e-01 2.58074546e-01 2.56234732e-01 2.54408036e-01 + 2.52594364e-01 2.50793624e-01 2.49005724e-01 2.47230572e-01 2.45468077e-01 + 2.43718148e-01 2.41980696e-01 2.40255632e-01 2.38542868e-01 2.36842316e-01 + 2.35153889e-01 2.33477499e-01 2.31813063e-01 2.30160493e-01 2.28519706e-01 + 2.26890618e-01 2.25273144e-01 2.23667203e-01 2.22072711e-01 2.20489588e-01 + 2.18917752e-01 2.17357123e-01 2.15807620e-01 2.14269165e-01 2.12741679e-01 + 2.11225083e-01 2.09719299e-01 2.08224251e-01 2.06739862e-01 2.05266056e-01 + 2.03802758e-01 2.02349892e-01 2.00907384e-01 1.99475161e-01 1.98053148e-01 + 1.96641274e-01 1.95239466e-01 1.93847651e-01 1.92465759e-01 1.91093720e-01 + 1.89731462e-01 1.88378916e-01 1.87036013e-01 1.85702683e-01 1.84378860e-01 + 1.83064474e-01 1.81759459e-01 1.80463748e-01 1.79177274e-01 1.77899972e-01 + 1.76631776e-01 1.75372621e-01 1.74122443e-01 1.72881178e-01 1.71648762e-01 + 1.70425132e-01 1.69210225e-01 1.68003980e-01 1.66806334e-01 1.65617226e-01 + 1.64436595e-01 1.63264382e-01 1.62100525e-01 1.60944965e-01 1.59797644e-01 + 1.58658502e-01 1.57527480e-01 1.56404522e-01 1.55289570e-01 1.54182566e-01 + 1.53083453e-01 1.51992177e-01 1.50908680e-01 1.49832907e-01 1.48764803e-01 + 1.47704314e-01 1.46651386e-01 1.45605963e-01 1.44567993e-01 1.43537423e-01 + 1.42514199e-01 1.41498271e-01 1.40489584e-01 1.39488089e-01 1.38493732e-01 + 1.37506465e-01 1.36526236e-01 1.35552995e-01 1.34586691e-01 1.33627277e-01 + 1.32674702e-01 1.31728917e-01 1.30789875e-01 1.29857528e-01 1.28931827e-01 + 1.28012725e-01 1.27100175e-01 1.26194131e-01 1.25294545e-01 1.24401373e-01 + 1.23514568e-01 1.22634084e-01 1.21759878e-01 1.20891903e-01 1.20030116e-01 + 1.19174473e-01 1.18324929e-01 1.17481442e-01 1.16643967e-01 1.15812463e-01 + 1.14986886e-01 1.14167195e-01 1.13353347e-01 1.12545300e-01 1.11743014e-01 + 1.10946447e-01 1.10155559e-01 1.09370309e-01 1.08590657e-01 1.07816562e-01 + 1.07047986e-01 1.06284889e-01 1.05527232e-01 1.04774975e-01 1.04028082e-01 + 1.03286513e-01 1.02550230e-01 1.01819196e-01 1.01093373e-01 1.00372724e-01 + 9.96572130e-02 9.89468023e-02 9.82414559e-02 9.75411377e-02 9.68458118e-02 + 9.61554427e-02 9.54699950e-02 9.47894335e-02 9.41137236e-02 9.34428306e-02 + 9.27767201e-02 9.21153581e-02 9.14587107e-02 9.08067443e-02 9.01594255e-02 + 8.95167213e-02 8.88785986e-02 8.82450249e-02 8.76159677e-02 8.69913948e-02 + 8.63712742e-02 8.57555743e-02 8.51442634e-02 8.45373104e-02 8.39346840e-02 + 8.33363536e-02 8.27422884e-02 8.21524581e-02 8.15668325e-02 8.09853815e-02 + 8.04080755e-02 7.98348848e-02 7.92657803e-02 7.87007326e-02 7.81397129e-02 + 7.75826925e-02 7.70296429e-02 7.64805357e-02 7.59353429e-02 7.53940365e-02 + 7.48565889e-02 7.43229725e-02 7.37931601e-02 7.32671244e-02 7.27448387e-02 + 7.22262761e-02 7.17114101e-02 7.12002144e-02 7.06926628e-02 7.01887293e-02 + 6.96883881e-02 6.91916136e-02 6.86983804e-02 6.82086633e-02 6.77224371e-02 + 6.72396770e-02 6.67603584e-02 6.62844565e-02 6.58119472e-02 6.53428062e-02 + 6.48770095e-02 6.44145332e-02 6.39553537e-02 6.34994475e-02 6.30467913e-02 + 6.25973618e-02 6.21511361e-02 6.17080914e-02 6.12682049e-02 6.08314542e-02 + 6.03978168e-02 5.99672707e-02 5.95397938e-02 5.91153641e-02 5.86939600e-02 + 5.82755599e-02 5.78601423e-02 5.74476861e-02 5.70381701e-02 5.66315734e-02 + 5.62278751e-02 5.58270545e-02 5.54290913e-02 5.50339649e-02 5.46416552e-02 + 5.42521421e-02 5.38654056e-02 5.34814260e-02 5.31001837e-02 5.27216590e-02 + 5.23458326e-02 5.19726854e-02 5.16021981e-02 5.12343518e-02 5.08691278e-02 + 5.05065072e-02 5.01464716e-02 4.97890026e-02 4.94340817e-02 4.90816910e-02 + 4.87318122e-02 4.83844276e-02 4.80395193e-02 4.76970697e-02 4.73570612e-02 + 4.70194765e-02 4.66842983e-02 4.63515094e-02 4.60210928e-02 4.56930316e-02 + 4.53673090e-02 4.50439082e-02 4.47228129e-02 4.44040065e-02 4.40874727e-02 + 4.37731953e-02 4.34611583e-02 4.31513456e-02 4.28437414e-02 4.25383300e-02 + 4.22350957e-02 4.19340230e-02 4.16350965e-02 4.13383009e-02 4.10436211e-02 + 4.07510418e-02 4.04605482e-02 4.01721254e-02 3.98857586e-02 3.96014332e-02 + 3.93191346e-02 3.90388484e-02 3.87605602e-02 3.84842558e-02 3.82099210e-02 + 3.79375418e-02 3.76671043e-02 3.73985946e-02 3.71319989e-02 3.68673037e-02 + 3.66044954e-02 3.63435605e-02 3.60844856e-02 3.58272576e-02 3.55718633e-02 + 3.53182895e-02 3.50665233e-02 3.48165518e-02 3.45683623e-02 3.43219420e-02 + 3.40772783e-02 3.38343586e-02 3.35931707e-02 3.33537020e-02 3.31159404e-02 + 3.28798737e-02 3.26454897e-02 3.24127766e-02 3.21817224e-02 3.19523153e-02 + 3.17245434e-02 3.14983953e-02 3.12738592e-02 3.10509238e-02 3.08295775e-02 + 3.06098091e-02 3.03916074e-02 3.01749610e-02 2.99598591e-02 2.97462905e-02 + 2.95342443e-02 2.93237097e-02 2.91146759e-02 2.89071322e-02 2.87010679e-02 + 2.84964726e-02 2.82933358e-02 2.80916470e-02 2.78913959e-02 2.76925724e-02 + 2.74951661e-02 2.72991671e-02 2.71045652e-02 2.69113506e-02 2.67195132e-02 + 2.65290434e-02 2.63399314e-02 2.61521674e-02 2.59657420e-02 2.57806454e-02 + 2.55968683e-02 2.54144013e-02 2.52332350e-02 2.50533601e-02 2.48747675e-02 + 2.46974479e-02 2.45213924e-02 2.43465919e-02 2.41730374e-02 2.40007202e-02 + 2.38296313e-02 2.36597620e-02 2.34911036e-02 2.33236475e-02 2.31573851e-02 + 2.29923079e-02 2.28284075e-02 2.26656754e-02 2.25041034e-02 2.23436831e-02 + 2.21844064e-02 2.20262651e-02 2.18692510e-02 2.17133563e-02 2.15585729e-02 + 2.14048928e-02 2.12523082e-02 2.11008114e-02 2.09503945e-02 2.08010498e-02 + 2.06527697e-02 2.05055467e-02 2.03593731e-02 2.02142415e-02 2.00701445e-02 + 1.99270747e-02 1.97850247e-02 1.96439874e-02 1.95039554e-02 1.93649217e-02 + 1.92268790e-02 1.90898204e-02 1.89537388e-02 1.88186273e-02 1.86844789e-02 + 1.85512868e-02 1.84190442e-02 1.82877442e-02 1.81573802e-02 1.80279455e-02 + 1.78994335e-02 1.77718376e-02 1.76451512e-02 1.75193680e-02 1.73944813e-02 + 1.72704850e-02 1.71473725e-02 1.70251376e-02 1.69037741e-02 1.67832757e-02 + 1.66636363e-02 1.65448498e-02 1.64269100e-02 1.63098110e-02 1.61935467e-02 + 1.60781111e-02 1.59634985e-02 1.58497029e-02 1.57367184e-02 1.56245394e-02 + 1.55131600e-02 1.54025746e-02 1.52927776e-02 1.51837632e-02 1.50755259e-02 + 1.49680602e-02 1.48613605e-02 1.47554215e-02 1.46502376e-02 1.45458035e-02 + 1.44421139e-02 1.43391635e-02 1.42369469e-02 1.41354590e-02 1.40346945e-02 + 1.39346484e-02 1.38353154e-02 1.37366905e-02 1.36387686e-02 1.35415448e-02 + 1.34450141e-02 1.33491714e-02 1.32540120e-02 1.31595309e-02 1.30657234e-02 + 1.29725845e-02 1.28801096e-02 1.27882939e-02 1.26971327e-02 1.26063151e-02 + 1.25154436e-02 1.24245269e-02 1.23335755e-02 1.22425997e-02 1.21516097e-02 + 1.20606156e-02 1.19696276e-02 1.18786553e-02 1.17877088e-02 1.16967975e-02 + 1.16059312e-02 1.15151193e-02 1.14243711e-02 1.13336959e-02 1.12431028e-02 + 1.11526008e-02 1.10621990e-02 1.09719059e-02 1.08817305e-02 1.07916812e-02 + 1.07017665e-02 1.06119947e-02 1.05223742e-02 1.04329131e-02 1.03436193e-02 + 1.02545008e-02 1.01655655e-02 1.00768209e-02 9.98827475e-03 9.89993445e-03 + 9.81180737e-03 9.72390078e-03 9.63622180e-03 9.54877749e-03 9.46157475e-03 + 9.37462041e-03 9.28792117e-03 9.20148363e-03 9.11531428e-03 9.02941949e-03 + 8.94380554e-03 8.85847859e-03 8.77344469e-03 8.68870981e-03 8.60427978e-03 + 8.52016033e-03 8.43635711e-03 8.35287563e-03 8.26972131e-03 8.18689948e-03 + 8.10441534e-03 8.02227400e-03 7.94048046e-03 7.85903964e-03 7.77795632e-03 + 7.69723520e-03 7.61688088e-03 7.53689786e-03 7.45729054e-03 7.37806320e-03 + 7.29922004e-03 7.22076516e-03 7.14270257e-03 7.06503616e-03 6.98776974e-03 + 6.91090701e-03 6.83445160e-03 6.75840702e-03 6.68277668e-03 6.60756394e-03 + 6.53277201e-03 6.45840404e-03 6.38446310e-03 6.31095212e-03 6.23787400e-03 + 6.16523150e-03 6.09302732e-03 6.02126407e-03 5.94994425e-03 5.87907029e-03 + 5.80864453e-03 5.73866924e-03 5.66914657e-03 5.60007862e-03 5.53146739e-03 + 5.46331479e-03 5.39562266e-03 5.32839276e-03 5.26162676e-03 5.19532625e-03 + 5.12949276e-03 5.06412771e-03 4.99923247e-03 4.93480832e-03 4.87085646e-03 + 4.80737803e-03 4.74437407e-03 4.68184557e-03 4.61979344e-03 4.55821851e-03 + 4.49712154e-03 4.43650324e-03 4.37636421e-03 4.31670502e-03 4.25752614e-03 + 4.19882800e-03 4.14061094e-03 4.08287524e-03 4.02562113e-03 3.96884876e-03 + 3.91255821e-03 3.85674951e-03 3.80142263e-03 3.74657745e-03 3.69221384e-03 + 3.63833156e-03 3.58493033e-03 3.53200982e-03 3.47956964e-03 3.42760932e-03 + 3.37612837e-03 3.32512621e-03 3.27460223e-03 3.22455576e-03 3.17498607e-03 + 3.12589238e-03 3.07727386e-03 3.02912963e-03 2.98145877e-03 2.93426028e-03 + 2.88753314e-03 2.84127627e-03 2.79548856e-03 2.75016882e-03 2.70531585e-03 + 2.66092838e-03 2.61700511e-03 2.57354469e-03 2.53054574e-03 2.48800680e-03 + 2.44592643e-03 2.40430309e-03 2.36313524e-03 2.32242128e-03 2.28215958e-03 + 2.24234848e-03 2.20298627e-03 2.16407120e-03 2.12560150e-03 2.08757536e-03 + 2.04999094e-03 2.01284635e-03 1.97613968e-03 1.93986899e-03 1.90403230e-03 + 1.86862762e-03 1.83365289e-03 1.79910607e-03 1.76498506e-03 1.73128773e-03 + 1.69801194e-03 1.66515551e-03 1.63271624e-03 1.60069191e-03 1.56908027e-03 + 1.53787904e-03 1.50708593e-03 1.47669860e-03 1.44671473e-03 1.41713194e-03 + 1.38794786e-03 1.35916007e-03 1.33076615e-03 1.30276366e-03 1.27515013e-03 + 1.24792309e-03 1.22108002e-03 1.19461843e-03 1.16853578e-03 1.14282952e-03 + 1.11749709e-03 1.09253592e-03 1.06794342e-03 1.04371697e-03 1.01985397e-03 + 9.96351789e-04 9.73207785e-04 9.50419307e-04 9.27983692e-04 9.05898268e-04 + 8.84160354e-04 8.62767259e-04 8.41716282e-04 8.21004715e-04 8.00629843e-04 + 7.80588942e-04 7.60879284e-04 7.41498133e-04 7.22442746e-04 7.03710377e-04 + 6.85298275e-04 6.67203682e-04 6.49423839e-04 6.31955983e-04 6.14797347e-04 + 5.97945161e-04 5.81396654e-04 5.65149053e-04 5.49199583e-04 5.33545470e-04 + 5.18183936e-04 5.03112205e-04 4.88327503e-04 4.73827052e-04 4.59608080e-04 + 4.45667814e-04 4.32003482e-04 4.18612315e-04 4.05491548e-04 3.92638416e-04 + 3.80050161e-04 3.67724024e-04 3.55657254e-04 3.43847102e-04 3.32290824e-04 + 3.20985682e-04 3.09928942e-04 2.99117876e-04 2.88549763e-04 2.78221885e-04 + 2.68131534e-04 2.58276007e-04 2.48652609e-04 2.39258651e-04 2.30091454e-04 + 2.21148345e-04 2.12426659e-04 2.03923742e-04 1.95636945e-04 1.87563631e-04 + 1.79701172e-04 1.72046947e-04 1.64598349e-04 1.57352776e-04 1.50307641e-04 + 1.43460364e-04 1.36808378e-04 1.30349125e-04 1.24080059e-04 1.17998647e-04 + 1.12102364e-04 1.06388699e-04 1.00855154e-04 9.54992401e-05 9.03184837e-05 + 8.53104220e-05 8.04726054e-05 7.58025972e-05 7.12979737e-05 6.69563244e-05 + 6.27752523e-05 5.87523737e-05 5.48853189e-05 5.11717319e-05 4.76092706e-05 + 4.41956073e-05 4.09284284e-05 3.78054347e-05 3.48243416e-05 3.19828792e-05 + 2.92787923e-05 2.67098408e-05 2.42737994e-05 2.19684581e-05 1.97916221e-05 + 1.77411120e-05 1.58147637e-05 1.40104289e-05 1.23259747e-05 1.07592841e-05 + 9.30825580e-06 7.97080453e-06 6.74486090e-06 5.62837161e-06 4.61929948e-06 + 3.71562352e-06 2.91533901e-06 2.21645756e-06 1.61700713e-06 1.11503215e-06 + 7.08593517e-07 3.95768671e-07 1.74651632e-07 4.33530448e-08 0.00000000e+00 + 8.54089214e+04 8.54089214e+04 4.71851341e+04 3.12780768e+04 2.33258140e+04 + 1.85554559e+04 1.53760394e+04 1.31057232e+04 1.14035870e+04 1.00802305e+04 + 9.02201376e+03 8.15662046e+03 7.43583982e+03 6.82629521e+03 6.30414625e+03 + 5.85191002e+03 5.45647442e+03 5.10781256e+03 4.79812582e+03 4.52125743e+03 + 4.27228201e+03 4.04721238e+03 3.84278633e+03 3.65630905e+03 3.48553486e+03 + 3.32857745e+03 3.18384071e+03 3.04996505e+03 2.92578509e+03 2.81029625e+03 + 2.70262791e+03 2.60202179e+03 2.50781443e+03 2.41942281e+03 2.33633252e+03 + 2.25808794e+03 2.18428413e+03 2.11455989e+03 2.04859210e+03 1.98609078e+03 + 1.92679496e+03 1.87046914e+03 1.81690028e+03 1.76589516e+03 1.71727813e+03 + 1.67088917e+03 1.62658219e+03 1.58422355e+03 1.54369075e+03 1.50487129e+03 + 1.46766169e+03 1.43196661e+03 1.39769802e+03 1.36477457e+03 1.33312095e+03 + 1.30266729e+03 1.27334878e+03 1.24510512e+03 1.21788020e+03 1.19162171e+03 + 1.16628084e+03 1.14181198e+03 1.11817248e+03 1.09532240e+03 1.07322430e+03 + 1.05184306e+03 1.03114567e+03 1.01110113e+03 9.91680241e+02 9.72855519e+02 + 9.54601047e+02 9.36892379e+02 9.19706428e+02 9.03021378e+02 8.86816598e+02 + 8.71072562e+02 8.55770773e+02 8.40893704e+02 8.26424727e+02 8.12348062e+02 + 7.98648722e+02 7.85312464e+02 7.72325742e+02 7.59675669e+02 7.47349973e+02 + 7.35336964e+02 7.23625501e+02 7.12204954e+02 7.01065184e+02 6.90196508e+02 + 6.79589678e+02 6.69235854e+02 6.59126586e+02 6.49253787e+02 6.39609720e+02 + 6.30186973e+02 6.20978448e+02 6.11977343e+02 6.03177134e+02 5.94571564e+02 + 5.86154629e+02 5.77920564e+02 5.69863834e+02 5.61979120e+02 5.54261311e+02 + 5.46705492e+02 5.39306934e+02 5.32061090e+02 5.24963582e+02 5.18010194e+02 + 5.11196866e+02 5.04519685e+02 4.97974882e+02 4.91558820e+02 4.85267995e+02 + 4.79099023e+02 4.73048641e+02 4.67113699e+02 4.61291153e+02 4.55578065e+02 + 4.49971597e+02 4.44469004e+02 4.39067634e+02 4.33764924e+02 4.28558392e+02 + 4.23445639e+02 4.18424343e+02 4.13492256e+02 4.08647203e+02 4.03887075e+02 + 3.99209833e+02 3.94613497e+02 3.90096152e+02 3.85655939e+02 3.81291059e+02 + 3.76999763e+02 3.72780358e+02 3.68631201e+02 3.64550696e+02 3.60537296e+02 + 3.56589497e+02 3.52705842e+02 3.48884912e+02 3.45125332e+02 3.41425764e+02 + 3.37784909e+02 3.34201504e+02 3.30674322e+02 3.27202169e+02 3.23783884e+02 + 3.20418339e+02 3.17104435e+02 3.13841105e+02 3.10627308e+02 3.07462032e+02 + 3.04344294e+02 3.01273133e+02 2.98247616e+02 2.95266833e+02 2.92329900e+02 + 2.89435952e+02 2.86584149e+02 2.83773672e+02 2.81003722e+02 2.78273520e+02 + 2.75582308e+02 2.72929346e+02 2.70313911e+02 2.67735301e+02 2.65192828e+02 + 2.62685823e+02 2.60213632e+02 2.57775617e+02 2.55371156e+02 2.52999641e+02 + 2.50660479e+02 2.48353090e+02 2.46076909e+02 2.43831384e+02 2.41615975e+02 + 2.39430155e+02 2.37273410e+02 2.35145235e+02 2.33045140e+02 2.30972644e+02 + 2.28927278e+02 2.26908581e+02 2.24916107e+02 2.22949415e+02 2.21008077e+02 + 2.19091672e+02 2.17199792e+02 2.15332033e+02 2.13488004e+02 2.11667319e+02 + 2.09869604e+02 2.08094489e+02 2.06341616e+02 2.04610631e+02 2.02901189e+02 + 2.01212953e+02 1.99545592e+02 1.97898782e+02 1.96272206e+02 1.94665554e+02 + 1.93078520e+02 1.91510808e+02 1.89962126e+02 1.88432186e+02 1.86920710e+02 + 1.85427423e+02 1.83952055e+02 1.82494343e+02 1.81054029e+02 1.79630858e+02 + 1.78224583e+02 1.76834961e+02 1.75461751e+02 1.74104720e+02 1.72763638e+02 + 1.71438281e+02 1.70128427e+02 1.68833859e+02 1.67554365e+02 1.66289736e+02 + 1.65039768e+02 1.63804259e+02 1.62583012e+02 1.61375835e+02 1.60182536e+02 + 1.59002930e+02 1.57836834e+02 1.56684068e+02 1.55544455e+02 1.54417822e+02 + 1.53304000e+02 1.52202820e+02 1.51114119e+02 1.50037736e+02 1.48973511e+02 + 1.47921291e+02 1.46880920e+02 1.45852251e+02 1.44835133e+02 1.43829423e+02 + 1.42834978e+02 1.41851657e+02 1.40879323e+02 1.39917840e+02 1.38967075e+02 + 1.38026896e+02 1.37097174e+02 1.36177784e+02 1.35268599e+02 1.34369498e+02 + 1.33480360e+02 1.32601065e+02 1.31731497e+02 1.30871541e+02 1.30021083e+02 + 1.29180012e+02 1.28348219e+02 1.27525595e+02 1.26712033e+02 1.25907430e+02 + 1.25111682e+02 1.24324686e+02 1.23546344e+02 1.22776556e+02 1.22015225e+02 + 1.21262256e+02 1.20517553e+02 1.19781025e+02 1.19052579e+02 1.18332124e+02 + 1.17619573e+02 1.16914836e+02 1.16217827e+02 1.15528460e+02 1.14846652e+02 + 1.14172318e+02 1.13505378e+02 1.12845749e+02 1.12193352e+02 1.11548107e+02 + 1.10909938e+02 1.10278766e+02 1.09654517e+02 1.09037114e+02 1.08426484e+02 + 1.07822554e+02 1.07225250e+02 1.06634503e+02 1.06050240e+02 1.05472393e+02 + 1.04900892e+02 1.04335670e+02 1.03776657e+02 1.03223789e+02 1.02676999e+02 + 1.02136221e+02 1.01601391e+02 1.01072445e+02 1.00549321e+02 1.00031955e+02 + 9.95202850e+01 9.90142506e+01 9.85137906e+01 9.80188451e+01 9.75293545e+01 + 9.70452599e+01 9.65665028e+01 9.60930254e+01 9.56247704e+01 9.51616810e+01 + 9.47037009e+01 9.42507742e+01 9.38028458e+01 9.33598606e+01 9.29217644e+01 + 9.24885033e+01 9.20600236e+01 9.16362725e+01 9.12171972e+01 9.08027455e+01 + 9.03928657e+01 8.99875063e+01 8.95866163e+01 8.91901451e+01 8.87980424e+01 + 8.84102583e+01 8.80267434e+01 8.76474484e+01 8.72723244e+01 8.69013231e+01 + 8.65343963e+01 8.61714961e+01 8.58125750e+01 8.54575859e+01 8.51064819e+01 + 8.47592164e+01 8.44157432e+01 8.40760164e+01 8.37399902e+01 8.34076193e+01 + 8.30788587e+01 8.27536636e+01 8.24319894e+01 8.21137919e+01 8.17990272e+01 + 8.14876516e+01 8.11796217e+01 8.08748944e+01 8.05734267e+01 8.02751761e+01 + 7.99801003e+01 7.96881571e+01 7.93993048e+01 7.91135019e+01 7.88307069e+01 + 7.85508789e+01 7.82739771e+01 7.79999609e+01 7.77287902e+01 7.74604249e+01 + 7.71948253e+01 7.69319518e+01 7.66717652e+01 7.64142266e+01 7.61592973e+01 + 7.59069387e+01 7.56571128e+01 7.54097815e+01 7.51649071e+01 7.49224524e+01 + 7.46823800e+01 7.44446532e+01 7.42092353e+01 7.39760900e+01 7.37451811e+01 + 7.35164730e+01 7.32899300e+01 7.30655169e+01 7.28431986e+01 7.26229406e+01 + 7.24047084e+01 7.21884677e+01 7.19741848e+01 7.17618261e+01 7.15513583e+01 + 7.13427483e+01 7.11359635e+01 7.09309715e+01 7.07277401e+01 7.05262375e+01 + 7.03264321e+01 7.01282928e+01 6.99317885e+01 6.97368888e+01 6.95435632e+01 + 6.93517818e+01 6.91615148e+01 6.89727329e+01 6.87854070e+01 6.85995083e+01 + 6.84150084e+01 6.82318792e+01 6.80500928e+01 6.78696219e+01 6.76904391e+01 + 6.75125177e+01 6.73358312e+01 6.71603534e+01 6.69860584e+01 6.68129207e+01 + 6.66409151e+01 6.64700167e+01 6.63002010e+01 6.61314439e+01 6.59637213e+01 + 6.57970099e+01 6.56312863e+01 6.54665278e+01 6.53027117e+01 6.51398160e+01 + 6.49778186e+01 6.48166982e+01 6.46564335e+01 6.44970036e+01 6.43383881e+01 + 6.41805668e+01 6.40235197e+01 6.38672274e+01 6.37116708e+01 6.35568308e+01 + 6.34026891e+01 6.32492275e+01 6.30964280e+01 6.29442732e+01 6.27927459e+01 + 6.26418291e+01 6.24915063e+01 6.23417613e+01 6.21925783e+01 6.20439415e+01 + 6.18958357e+01 6.17482461e+01 6.16011579e+01 6.14545569e+01 6.13084290e+01 + 6.11627605e+01 6.10175380e+01 6.08727484e+01 6.07283791e+01 6.05844173e+01 + 6.04408511e+01 6.02976684e+01 6.01548577e+01 6.00124076e+01 5.98703072e+01 + 5.97285456e+01 5.95871125e+01 5.94459976e+01 5.93051910e+01 5.91646830e+01 + 5.90244644e+01 5.88845260e+01 5.87448589e+01 5.86054545e+01 5.84663047e+01 + 5.83274012e+01 5.81887362e+01 5.80503022e+01 5.79120918e+01 5.77740979e+01 + 5.76363137e+01 5.74987325e+01 5.73613480e+01 5.72241539e+01 5.70871444e+01 + 5.69503136e+01 5.68136560e+01 5.66771664e+01 5.65408396e+01 5.64046708e+01 + 5.62686552e+01 5.61327884e+01 5.59970660e+01 5.58614839e+01 5.57260382e+01 + 5.55907252e+01 5.54555412e+01 5.53204830e+01 5.51855472e+01 5.50507308e+01 + 5.49160309e+01 5.47814449e+01 5.46469700e+01 5.45126041e+01 5.43783446e+01 + 5.42441897e+01 5.41101372e+01 5.39761853e+01 5.38423325e+01 5.37085770e+01 + 5.35749175e+01 5.34413527e+01 5.33078815e+01 5.31745027e+01 5.30412154e+01 + 5.29080189e+01 5.27749124e+01 5.26418952e+01 5.25089671e+01 5.23761274e+01 + 5.22433760e+01 5.21107127e+01 5.19781374e+01 5.18456500e+01 5.17132507e+01 + 5.15809395e+01 5.14487169e+01 5.13165831e+01 5.11845384e+01 5.10525835e+01 + 5.09207189e+01 5.07889451e+01 5.06572630e+01 5.05256731e+01 5.03941765e+01 + 5.02627739e+01 5.01314663e+01 5.00002547e+01 4.98691402e+01 4.97381238e+01 + 4.96072067e+01 4.94763901e+01 4.93456753e+01 4.92150635e+01 4.90845560e+01 + 4.89541543e+01 4.88238597e+01 4.86936737e+01 4.85635977e+01 4.84336333e+01 + 4.83037819e+01 4.81740452e+01 4.80444247e+01 4.79149220e+01 4.77855388e+01 + 4.76562768e+01 4.75271375e+01 4.73981228e+01 4.72692343e+01 4.71404737e+01 + 4.70118428e+01 4.68833434e+01 4.67549771e+01 4.66267459e+01 4.64986515e+01 + 4.63706956e+01 4.62428801e+01 4.61152068e+01 4.59876775e+01 4.58602941e+01 + 4.57330582e+01 4.56059719e+01 4.54790368e+01 4.53522548e+01 4.52256277e+01 + 4.50991574e+01 4.49728457e+01 4.48466943e+01 4.47207051e+01 4.45948799e+01 + 4.44692205e+01 4.43437286e+01 4.42184061e+01 4.40932546e+01 4.39682761e+01 + 4.38434722e+01 4.37188447e+01 4.35943953e+01 4.34701257e+01 4.33460377e+01 + 4.32221329e+01 4.30984131e+01 4.29748798e+01 4.28515348e+01 4.27283798e+01 + 4.26054162e+01 4.24826459e+01 4.23600702e+01 4.22376909e+01 4.21155096e+01 + 4.19935276e+01 4.18717467e+01 4.17501683e+01 4.16287939e+01 4.15076250e+01 + 4.13866631e+01 4.12659096e+01 4.11453659e+01 4.10250336e+01 4.09049138e+01 + 4.07850081e+01 4.06653178e+01 4.05458443e+01 4.04265888e+01 4.03075526e+01 + 4.01887371e+01 4.00701435e+01 3.99517730e+01 3.98336269e+01 3.97157064e+01 + 3.95980126e+01 3.94805467e+01 3.93633099e+01 3.92463033e+01 3.91295280e+01 + 3.90129851e+01 3.88966757e+01 3.87806007e+01 3.86647613e+01 3.85491584e+01 + 3.84337931e+01 3.83186662e+01 3.82037788e+01 3.80891318e+01 3.79747260e+01 + 3.78605625e+01 3.77466420e+01 3.76329654e+01 3.75195335e+01 3.74063472e+01 + 3.72934073e+01 3.71807145e+01 3.70682695e+01 3.69560733e+01 3.68441263e+01 + 3.67324294e+01 3.66209833e+01 3.65097885e+01 3.63988459e+01 3.62881559e+01 + 3.61777192e+01 3.60675364e+01 3.59576080e+01 3.58479347e+01 3.57385170e+01 + 3.56293554e+01 3.55204504e+01 3.54118025e+01 3.53034122e+01 3.51952799e+01 + 3.50874060e+01 3.49797911e+01 3.48724355e+01 3.47653396e+01 3.46585038e+01 + 3.45519285e+01 3.44456139e+01 3.43395604e+01 3.42337684e+01 3.41282382e+01 + 3.40229699e+01 3.39179640e+01 3.38132206e+01 3.37087400e+01 3.36045224e+01 + 3.35005681e+01 3.33968772e+01 3.32934500e+01 3.31902865e+01 3.30873870e+01 + 3.29847516e+01 3.28823804e+01 3.27802736e+01 3.26784313e+01 3.25768535e+01 + 3.24755403e+01 3.23744918e+01 3.22737081e+01 3.21731893e+01 3.20729352e+01 + 3.19729460e+01 3.18732217e+01 3.17737623e+01 3.16745677e+01 3.15756379e+01 + 3.14769730e+01 3.13785728e+01 3.12804372e+01 3.11825664e+01 3.10849600e+01 + 3.09876181e+01 3.08905406e+01 3.07937274e+01 3.06971783e+01 3.06008932e+01 + 3.05048719e+01 3.04091144e+01 3.03136205e+01 3.02183900e+01 3.01234227e+01 + 3.00287185e+01 2.99342772e+01 2.98400985e+01 2.97461823e+01 2.96525283e+01 + 2.95591363e+01 2.94660061e+01 2.93731375e+01 2.92805302e+01 2.91881839e+01 + 2.90960984e+01 2.90042734e+01 2.89127086e+01 2.88214038e+01 2.87303587e+01 + 2.86395729e+01 2.85490462e+01 2.84587782e+01 2.83687687e+01 2.82790172e+01 + 2.81895236e+01 2.81002873e+01 2.80113082e+01 2.79225858e+01 2.78341198e+01 + 2.77459099e+01 2.76579556e+01 2.75702566e+01 2.74828125e+01 2.73956229e+01 + 2.73086875e+01 2.72220059e+01 2.71355776e+01 2.70494022e+01 2.69634795e+01 + 2.68778088e+01 2.67923899e+01 2.67072223e+01 2.66223055e+01 2.65376392e+01 + 2.64532230e+01 2.63690562e+01 2.62851387e+01 2.62014698e+01 2.61180491e+01 + 2.60348762e+01 2.59519507e+01 2.58692720e+01 2.57868397e+01 2.57046534e+01 + 2.56227125e+01 2.55410166e+01 2.54595652e+01 2.53783578e+01 2.52973940e+01 + 2.52166733e+01 2.51361951e+01 2.50559589e+01 2.49759644e+01 2.48962109e+01 + 2.48166980e+01 2.47374252e+01 2.46583919e+01 2.45795977e+01 2.45010421e+01 + 2.44227245e+01 2.43446444e+01 2.42668013e+01 2.41891946e+01 2.41118240e+01 + 2.40346888e+01 2.39577884e+01 2.38811225e+01 2.38046904e+01 2.37284917e+01 + 2.36525257e+01 2.35767919e+01 2.35012899e+01 2.34260191e+01 2.33509789e+01 + 2.32761688e+01 2.32015882e+01 2.31272367e+01 2.30531136e+01 2.29792185e+01 + 2.29055507e+01 2.28321097e+01 2.27588950e+01 2.26859061e+01 2.26131423e+01 + 2.25406031e+01 2.24682880e+01 2.23961964e+01 2.23243277e+01 2.22526815e+01 + 2.21812571e+01 2.21100539e+01 2.20390715e+01 2.19683093e+01 2.18977666e+01 + 2.18274430e+01 2.17573379e+01 2.16874508e+01 2.16177809e+01 2.15483279e+01 + 2.14790911e+01 2.14100700e+01 2.13412640e+01 2.12726726e+01 2.12042951e+01 + 2.11361311e+01 2.10681799e+01 2.10004410e+01 2.09329138e+01 2.08655978e+01 + 2.07984924e+01 2.07315971e+01 2.06649112e+01 2.05984342e+01 2.05321655e+01 + 2.04661046e+01 2.04002510e+01 2.03346039e+01 2.02691630e+01 2.02039276e+01 + 2.01388971e+01 2.00740711e+01 2.00094488e+01 1.99450298e+01 1.98808136e+01 + 1.98167994e+01 1.97529869e+01 1.96893754e+01 1.96259643e+01 1.95627531e+01 + 1.94997413e+01 1.94369282e+01 1.93743134e+01 1.93118962e+01 1.92496761e+01 + 1.91876525e+01 1.91258250e+01 1.90641928e+01 1.90027555e+01 1.89415126e+01 + 1.88804634e+01 1.88196074e+01 1.87589440e+01 1.86984728e+01 1.86381931e+01 + 1.85781044e+01 1.85182061e+01 1.84584977e+01 1.83989787e+01 1.83396484e+01 + 1.82805064e+01 1.82215521e+01 1.81627849e+01 1.81042044e+01 1.80458099e+01 + 1.79876009e+01 1.79295769e+01 1.78717373e+01 1.78140817e+01 1.77566093e+01 + 1.76993198e+01 1.76422125e+01 1.75852870e+01 1.75285426e+01 1.74719789e+01 + 1.74155954e+01 1.73593914e+01 1.73033665e+01 1.72475200e+01 1.71918516e+01 + 1.71363607e+01 1.70810466e+01 1.70259090e+01 1.69709472e+01 1.69161608e+01 + 1.68615492e+01 1.68071119e+01 1.67528484e+01 1.66987581e+01 1.66448405e+01 + 1.65910952e+01 1.65375215e+01 1.64841190e+01 1.64308872e+01 1.63778255e+01 + 1.63249334e+01 1.62722105e+01 1.62196561e+01 1.61672698e+01 1.61150511e+01 + 1.60629994e+01 1.60111143e+01 1.59593953e+01 1.59078418e+01 1.58564533e+01 + 1.58052293e+01 1.57541694e+01 1.57032730e+01 1.56525397e+01 1.56019688e+01 + 1.55515600e+01 1.55013128e+01 1.54512266e+01 1.54013009e+01 1.53515352e+01 + 1.53019291e+01 1.52524821e+01 1.52031937e+01 1.51540633e+01 1.51050906e+01 + 1.50562750e+01 1.50076159e+01 1.49591131e+01 1.49107659e+01 1.48625738e+01 + 1.48145365e+01 1.47666534e+01 1.47189241e+01 1.46713480e+01 1.46239246e+01 + 1.45766536e+01 1.45295345e+01 1.44825667e+01 1.44357498e+01 1.43890834e+01 + 1.43425669e+01 1.42961999e+01 1.42499819e+01 1.42039125e+01 1.41579912e+01 + 1.41122175e+01 1.40665910e+01 1.40211112e+01 1.39757777e+01 1.39305900e+01 + 1.38855476e+01 1.38406501e+01 1.37958971e+01 1.37512880e+01 1.37068225e+01 + 1.36625000e+01 1.36183202e+01 1.35742825e+01 1.35303866e+01 1.34866320e+01 + 1.34430183e+01 1.33995449e+01 1.33562115e+01 1.33130177e+01 1.32699629e+01 + 1.32270467e+01 1.31842688e+01 1.31416287e+01 1.30991259e+01 1.30567600e+01 + 1.30145306e+01 1.29724372e+01 1.29304794e+01 1.28886568e+01 1.28469690e+01 + 1.28054156e+01 1.27639960e+01 1.27227099e+01 1.26815569e+01 1.26405365e+01 + 1.25996484e+01 1.25588920e+01 1.25182671e+01 1.24777731e+01 1.24374097e+01 + 1.23971764e+01 1.23570729e+01 1.23170986e+01 1.22772533e+01 1.22375365e+01 + 1.21979477e+01 1.21584867e+01 1.21191529e+01 1.20799461e+01 1.20408656e+01 + 1.20019113e+01 1.19630826e+01 1.19243792e+01 1.18858007e+01 1.18473466e+01 + 1.18090166e+01 1.17708103e+01 1.17327273e+01 1.16947672e+01 1.16569296e+01 + 1.16192141e+01 1.15816204e+01 1.15441480e+01 1.15067965e+01 1.14695656e+01 + 1.14324549e+01 1.13954640e+01 1.13585925e+01 1.13218400e+01 1.12852062e+01 + 1.12486906e+01 1.12122930e+01 1.11760129e+01 1.11398499e+01 1.11038037e+01 + 1.10678739e+01 1.10320602e+01 1.09963621e+01 1.09607793e+01 1.09253114e+01 + 1.08899580e+01 1.08547189e+01 1.08195935e+01 1.07845816e+01 1.07496829e+01 + 1.07148968e+01 1.06802231e+01 1.06456614e+01 1.06112114e+01 1.05768727e+01 + 1.05426449e+01 1.05085277e+01 1.04745207e+01 1.04406236e+01 1.04068360e+01 + 1.03731576e+01 1.03395880e+01 1.03061269e+01 1.02727739e+01 1.02395287e+01 + 1.02063909e+01 1.01733603e+01 1.01404363e+01 1.01076188e+01 1.00749073e+01 + 1.00423016e+01 1.00098012e+01 9.97740586e+00 9.94511523e+00 9.91292898e+00 + 9.88084676e+00 9.84886825e+00 9.81699310e+00 9.78522099e+00 9.75355158e+00 + 9.72198455e+00 9.69051957e+00 9.65915630e+00 9.62789442e+00 9.59673361e+00 + 9.56567354e+00 9.53471389e+00 9.50385433e+00 9.47309455e+00 9.44243421e+00 + 9.41187301e+00 9.38141062e+00 9.35104672e+00 9.32078101e+00 9.29061315e+00 + 9.26054285e+00 9.23056977e+00 9.20069362e+00 9.17091408e+00 9.14123084e+00 + 9.11164358e+00 9.08215200e+00 9.05275580e+00 9.02345465e+00 8.99424827e+00 + 8.96513634e+00 8.93611856e+00 8.90719462e+00 8.87836423e+00 8.84962708e+00 + 8.82098287e+00 8.79243131e+00 8.76397209e+00 8.73560491e+00 8.70732949e+00 + 8.67914552e+00 8.65105271e+00 8.62305076e+00 8.59513939e+00 8.56731831e+00 + 8.53958721e+00 8.51194581e+00 8.48439382e+00 8.45693096e+00 8.42955693e+00 + 8.40227145e+00 8.37507424e+00 8.34796500e+00 8.32094347e+00 8.29400934e+00 + 8.26716234e+00 8.24040220e+00 8.21372862e+00 8.18714134e+00 8.16064006e+00 + 8.13422453e+00 8.10789445e+00 8.08164955e+00 8.05548956e+00 8.02941421e+00 + 8.00342321e+00 7.97751631e+00 7.95169322e+00 7.92595368e+00 7.90029741e+00 + 7.87472416e+00 7.84923364e+00 7.82382560e+00 7.79849977e+00 7.77325588e+00 + 7.74809366e+00 7.72301286e+00 7.69801321e+00 7.67309445e+00 7.64825632e+00 + 7.62349856e+00 7.59882090e+00 7.57422310e+00 7.54970489e+00 7.52526601e+00 + 7.50090621e+00 7.47662523e+00 7.45242282e+00 7.42829873e+00 7.40425270e+00 + 7.38028448e+00 7.35639382e+00 7.33258046e+00 7.30884417e+00 7.28518468e+00 + 7.26160176e+00 7.23809515e+00 7.21466461e+00 7.19130989e+00 7.16803075e+00 + 7.14482694e+00 7.12169822e+00 7.09864435e+00 7.07566508e+00 7.05276018e+00 + 7.02992940e+00 7.00717250e+00 6.98448925e+00 6.96187941e+00 6.93934274e+00 + 6.91687900e+00 6.89448796e+00 6.87216939e+00 6.84992304e+00 6.82774869e+00 + 6.80564610e+00 6.78361505e+00 6.76165529e+00 6.73976661e+00 6.71794876e+00 + 6.69620152e+00 6.67452467e+00 6.65291797e+00 6.63138120e+00 6.60991414e+00 + 6.58851655e+00 6.56718821e+00 6.54592890e+00 6.52473840e+00 6.50361648e+00 + 6.48256292e+00 6.46157750e+00 6.44066000e+00 6.41981020e+00 6.39902789e+00 + 6.37831283e+00 6.35766483e+00 6.33708365e+00 6.31656908e+00 6.29612092e+00 + 6.27573893e+00 6.25542292e+00 6.23517266e+00 6.21498794e+00 6.19486855e+00 + 6.17481429e+00 6.15482493e+00 6.13490027e+00 6.11504011e+00 6.09524422e+00 + 6.07551241e+00 6.05584446e+00 6.03624018e+00 6.01669935e+00 5.99722177e+00 + 5.97780723e+00 5.95845553e+00 5.93916647e+00 5.91993984e+00 5.90077545e+00 + 5.88167309e+00 5.86263256e+00 5.84365365e+00 5.82473619e+00 5.80587995e+00 + 5.78708475e+00 5.76835038e+00 5.74967666e+00 5.73106338e+00 5.71251035e+00 + 5.69401737e+00 5.67558425e+00 5.65721080e+00 5.63889682e+00 5.62064212e+00 + 5.60244651e+00 5.58430980e+00 5.56623179e+00 5.54821231e+00 5.53025115e+00 + 5.51234812e+00 5.49450305e+00 5.47671575e+00 5.45898602e+00 5.44131368e+00 + 5.42369855e+00 5.40614043e+00 5.38863915e+00 5.37119452e+00 5.35380636e+00 + 5.33647449e+00 5.31919872e+00 5.30197887e+00 5.28481476e+00 5.26770621e+00 + 5.25065305e+00 5.23365508e+00 5.21671214e+00 5.19982404e+00 5.18299061e+00 + 5.16621167e+00 5.14948704e+00 5.13281656e+00 5.11620003e+00 5.09963730e+00 + 5.08312818e+00 5.06667250e+00 5.05027009e+00 5.03392077e+00 5.01762438e+00 + 5.00138074e+00 4.98518969e+00 4.96905104e+00 4.95296464e+00 4.93693031e+00 + 4.92094789e+00 4.90501720e+00 4.88913808e+00 4.87331037e+00 4.85753389e+00 + 4.84180848e+00 4.82613398e+00 4.81051021e+00 4.79493703e+00 4.77941425e+00 + 4.76394173e+00 4.74851929e+00 4.73314678e+00 4.71782403e+00 4.70255088e+00 + 4.68732717e+00 4.67215275e+00 4.65702744e+00 4.64195110e+00 4.62692357e+00 + 4.61194468e+00 4.59701428e+00 4.58213221e+00 4.56729832e+00 4.55251245e+00 + 4.53777444e+00 4.52308415e+00 4.50844141e+00 4.49384606e+00 4.47929797e+00 + 4.46479697e+00 4.45034292e+00 4.43593566e+00 4.42157503e+00 4.40726089e+00 + 4.39299310e+00 4.37877148e+00 4.36459591e+00 4.35046623e+00 4.33638229e+00 + 4.32234394e+00 4.30835103e+00 4.29440343e+00 4.28050097e+00 4.26664352e+00 + 4.25283093e+00 4.23906306e+00 4.22533975e+00 4.21166087e+00 4.19802627e+00 + 4.18443581e+00 4.17088935e+00 4.15738674e+00 4.14392784e+00 4.13051251e+00 + 4.11714061e+00 4.10381200e+00 4.09052653e+00 4.07728407e+00 4.06408449e+00 + 4.05092763e+00 4.03781337e+00 4.02474156e+00 4.01171206e+00 3.99872475e+00 + 3.98577948e+00 3.97287611e+00 3.96001452e+00 3.94719457e+00 3.93441611e+00 + 3.92167903e+00 3.90898318e+00 3.89632842e+00 3.88371464e+00 3.87114168e+00 + 3.85860944e+00 3.84611776e+00 3.83366652e+00 3.82125558e+00 3.80888483e+00 + 3.79655412e+00 3.78426333e+00 3.77201234e+00 3.75980100e+00 3.74762919e+00 + 3.73549678e+00 3.72340365e+00 3.71134967e+00 3.69933472e+00 3.68735866e+00 + 3.67542137e+00 3.66352272e+00 3.65166259e+00 3.63984086e+00 3.62805740e+00 + 3.61631208e+00 3.60460479e+00 3.59293540e+00 3.58130378e+00 3.56970982e+00 + 3.55815340e+00 3.54663438e+00 3.53515266e+00 3.52370810e+00 3.51230060e+00 + 3.50093002e+00 3.48959626e+00 3.47829918e+00 3.46703868e+00 3.45581463e+00 + 3.44462692e+00 3.43347542e+00 3.42236003e+00 3.41128062e+00 3.40023708e+00 + 3.38922929e+00 3.37825713e+00 3.36732050e+00 3.35641927e+00 3.34555333e+00 + 3.33472257e+00 3.32392687e+00 3.31316612e+00 3.30244021e+00 3.29174901e+00 + 3.28109243e+00 3.27047035e+00 3.25988266e+00 3.24932924e+00 3.23880999e+00 + 3.22832479e+00 3.21787353e+00 3.20745611e+00 3.19707242e+00 3.18672234e+00 + 3.17640576e+00 3.16612258e+00 3.15587270e+00 3.14565599e+00 3.13547237e+00 + 3.12532170e+00 3.11520390e+00 3.10511886e+00 3.09506646e+00 3.08504661e+00 + 3.07505919e+00 3.06510411e+00 3.05518125e+00 3.04529052e+00 3.03543181e+00 + 3.02560501e+00 3.01581003e+00 3.00604676e+00 2.99631509e+00 2.98661493e+00 + 2.97694617e+00 2.96730871e+00 2.95770245e+00 2.94812729e+00 2.93858313e+00 + 2.92906986e+00 2.91958740e+00 2.91013563e+00 2.90071446e+00 2.89132379e+00 + 2.88196352e+00 2.87263355e+00 2.86333379e+00 2.85406413e+00 2.84482448e+00 + 2.83561475e+00 2.82643483e+00 2.81728463e+00 2.80816405e+00 2.79907299e+00 + 2.79001137e+00 2.78097909e+00 2.77197604e+00 2.76300214e+00 2.75405559e+00 + 2.74510554e+00 2.73614077e+00 2.72716164e+00 2.71816846e+00 2.70916157e+00 + 2.70014130e+00 2.69110798e+00 2.68206194e+00 2.67300350e+00 2.66393299e+00 + 2.65485073e+00 2.64575705e+00 2.63665226e+00 2.62753670e+00 2.61841067e+00 + 2.60927450e+00 2.60012851e+00 2.59097300e+00 2.58180831e+00 2.57263473e+00 + 2.56345258e+00 2.55426218e+00 2.54506383e+00 2.53585784e+00 2.52664452e+00 + 2.51742418e+00 2.50819712e+00 2.49896364e+00 2.48972406e+00 2.48047866e+00 + 2.47122774e+00 2.46197162e+00 2.45271058e+00 2.44344492e+00 2.43417494e+00 + 2.42490093e+00 2.41562317e+00 2.40634197e+00 2.39705762e+00 2.38777039e+00 + 2.37848057e+00 2.36918847e+00 2.35989434e+00 2.35059849e+00 2.34130118e+00 + 2.33200271e+00 2.32270335e+00 2.31340337e+00 2.30410306e+00 2.29480269e+00 + 2.28550252e+00 2.27620284e+00 2.26690392e+00 2.25760601e+00 2.24830940e+00 + 2.23901434e+00 2.22972110e+00 2.22042995e+00 2.21114115e+00 2.20185495e+00 + 2.19257162e+00 2.18329142e+00 2.17401459e+00 2.16474141e+00 2.15547211e+00 + 2.14620696e+00 2.13694620e+00 2.12769008e+00 2.11843885e+00 2.10919276e+00 + 2.09995205e+00 2.09071696e+00 2.08148774e+00 2.07226463e+00 2.06304787e+00 + 2.05383769e+00 2.04463433e+00 2.03543803e+00 2.02624901e+00 2.01706752e+00 + 2.00789378e+00 1.99872802e+00 1.98957047e+00 1.98042135e+00 1.97128090e+00 + 1.96214932e+00 1.95302685e+00 1.94391370e+00 1.93481009e+00 1.92571625e+00 + 1.91663238e+00 1.90755870e+00 1.89849542e+00 1.88944276e+00 1.88040092e+00 + 1.87137011e+00 1.86235054e+00 1.85334242e+00 1.84434594e+00 1.83536132e+00 + 1.82638875e+00 1.81742843e+00 1.80848057e+00 1.79954534e+00 1.79062296e+00 + 1.78171362e+00 1.77281750e+00 1.76393481e+00 1.75506572e+00 1.74621042e+00 + 1.73736911e+00 1.72854196e+00 1.71972916e+00 1.71093090e+00 1.70214734e+00 + 1.69337868e+00 1.68462508e+00 1.67588673e+00 1.66716380e+00 1.65845646e+00 + 1.64976489e+00 1.64108925e+00 1.63242971e+00 1.62378644e+00 1.61515960e+00 + 1.60654936e+00 1.59795589e+00 1.58937934e+00 1.58081988e+00 1.57227765e+00 + 1.56375283e+00 1.55524556e+00 1.54675599e+00 1.53828429e+00 1.52983061e+00 + 1.52139508e+00 1.51297787e+00 1.50457911e+00 1.49619895e+00 1.48783755e+00 + 1.47949503e+00 1.47117154e+00 1.46286723e+00 1.45458222e+00 1.44631666e+00 + 1.43807068e+00 1.42984441e+00 1.42163800e+00 1.41345156e+00 1.40528523e+00 + 1.39713914e+00 1.38901341e+00 1.38090818e+00 1.37282356e+00 1.36475967e+00 + 1.35671664e+00 1.34869460e+00 1.34069364e+00 1.33271391e+00 1.32475550e+00 + 1.31681854e+00 1.30890314e+00 1.30100940e+00 1.29313745e+00 1.28528739e+00 + 1.27745932e+00 1.26965336e+00 1.26186960e+00 1.25410815e+00 1.24636912e+00 + 1.23865261e+00 1.23095871e+00 1.22328752e+00 1.21563914e+00 1.20801367e+00 + 1.20041119e+00 1.19283181e+00 1.18527561e+00 1.17774269e+00 1.17023313e+00 + 1.16274702e+00 1.15528445e+00 1.14784550e+00 1.14043025e+00 1.13303880e+00 + 1.12567121e+00 1.11832758e+00 1.11100797e+00 1.10371247e+00 1.09644115e+00 + 1.08919409e+00 1.08197135e+00 1.07477302e+00 1.06759917e+00 1.06044985e+00 + 1.05332515e+00 1.04622513e+00 1.03914985e+00 1.03209938e+00 1.02507379e+00 + 1.01807313e+00 1.01109747e+00 1.00414687e+00 9.97221386e-01 9.90321073e-01 + 9.83445990e-01 9.76596193e-01 9.69771734e-01 9.62972667e-01 9.56199044e-01 + 9.49450914e-01 9.42728328e-01 9.36031332e-01 9.29359975e-01 9.22714301e-01 + 9.16094356e-01 9.09500183e-01 9.02931824e-01 8.96389320e-01 8.89872712e-01 + 8.83382038e-01 8.76917335e-01 8.70478642e-01 8.64065993e-01 8.57679422e-01 + 8.51318963e-01 8.44984649e-01 8.38676510e-01 8.32394576e-01 8.26138877e-01 + 8.19909440e-01 8.13706292e-01 8.07529459e-01 8.01378965e-01 7.95254834e-01 + 7.89157089e-01 7.83085752e-01 7.77040841e-01 7.71022378e-01 7.65030381e-01 + 7.59064866e-01 7.53125850e-01 7.47213349e-01 7.41327376e-01 7.35467946e-01 + 7.29635070e-01 7.23828760e-01 7.18049026e-01 7.12295878e-01 7.06569323e-01 + 7.00869370e-01 6.95196024e-01 6.89549291e-01 6.83929175e-01 6.78335681e-01 + 6.72768810e-01 6.67228564e-01 6.61714945e-01 6.56227951e-01 6.50767581e-01 + 6.45333835e-01 6.39926707e-01 6.34546195e-01 6.29192295e-01 6.23864999e-01 + 6.18564301e-01 6.13290195e-01 6.08042671e-01 6.02821721e-01 5.97627334e-01 + 5.92459499e-01 5.87318204e-01 5.82203438e-01 5.77115185e-01 5.72053432e-01 + 5.67018163e-01 5.62009363e-01 5.57027014e-01 5.52071099e-01 5.47141599e-01 + 5.42238495e-01 5.37361766e-01 5.32511392e-01 5.27687351e-01 5.22889620e-01 + 5.18118177e-01 5.13372996e-01 5.08654052e-01 5.03961322e-01 4.99294776e-01 + 4.94654390e-01 4.90040134e-01 4.85451980e-01 4.80889899e-01 4.76353860e-01 + 4.71843832e-01 4.67359785e-01 4.62901684e-01 4.58469498e-01 4.54063193e-01 + 4.49682734e-01 4.45328086e-01 4.40999213e-01 4.36696079e-01 4.32418646e-01 + 4.28166876e-01 4.23940731e-01 4.19740172e-01 4.15565159e-01 4.11415650e-01 + 4.07291606e-01 4.03192983e-01 3.99119741e-01 3.95071834e-01 3.91049220e-01 + 3.87051855e-01 3.83079693e-01 3.79132688e-01 3.75210796e-01 3.71313967e-01 + 3.67442156e-01 3.63595315e-01 3.59773394e-01 3.55976344e-01 3.52204117e-01 + 3.48456661e-01 3.44733925e-01 3.41035859e-01 3.37362410e-01 3.33713525e-01 + 3.30089152e-01 3.26489237e-01 3.22913726e-01 3.19362564e-01 3.15835697e-01 + 3.12333067e-01 3.08854620e-01 3.05400297e-01 3.01970043e-01 2.98563800e-01 + 2.95181508e-01 2.91823110e-01 2.88488547e-01 2.85177758e-01 2.81890683e-01 + 2.78627263e-01 2.75387435e-01 2.72171139e-01 2.68978312e-01 2.65808892e-01 + 2.62662816e-01 2.59540022e-01 2.56440444e-01 2.53364020e-01 2.50310684e-01 + 2.47280372e-01 2.44273018e-01 2.41288556e-01 2.38326921e-01 2.35388045e-01 + 2.32471862e-01 2.29578304e-01 2.26707304e-01 2.23858794e-01 2.21032705e-01 + 2.18228967e-01 2.15447513e-01 2.12688273e-01 2.09951176e-01 2.07236152e-01 + 2.04543131e-01 2.01872042e-01 1.99222813e-01 1.96595373e-01 1.93989650e-01 + 1.91405572e-01 1.88843066e-01 1.86302060e-01 1.83782479e-01 1.81284252e-01 + 1.78807303e-01 1.76351559e-01 1.73916946e-01 1.71503389e-01 1.69110813e-01 + 1.66739143e-01 1.64388303e-01 1.62058219e-01 1.59748813e-01 1.57460009e-01 + 1.55191732e-01 1.52943905e-01 1.50716450e-01 1.48509290e-01 1.46322348e-01 + 1.44155547e-01 1.42008808e-01 1.39882053e-01 1.37775205e-01 1.35688184e-01 + 1.33620912e-01 1.31573309e-01 1.29545298e-01 1.27536798e-01 1.25547730e-01 + 1.23578015e-01 1.21627572e-01 1.19696321e-01 1.17784183e-01 1.15891077e-01 + 1.14016921e-01 1.12161637e-01 1.10325142e-01 1.08507356e-01 1.06708197e-01 + 1.04927585e-01 1.03165437e-01 1.01421673e-01 9.96962103e-02 9.79889672e-02 + 9.62998618e-02 9.46288120e-02 9.29757356e-02 9.13405503e-02 8.97231736e-02 + 8.81235231e-02 8.65415161e-02 8.49770698e-02 8.34301014e-02 8.19005281e-02 + 8.03882668e-02 7.88932345e-02 7.74153479e-02 7.59545239e-02 7.45106790e-02 + 7.30837300e-02 7.16735935e-02 7.02801858e-02 6.89034235e-02 6.75432228e-02 + 6.61995003e-02 6.48721721e-02 6.35611545e-02 6.22663637e-02 6.09877158e-02 + 5.97251271e-02 5.84785135e-02 5.72477913e-02 5.60328764e-02 5.48336849e-02 + 5.36501328e-02 5.24821361e-02 5.13296109e-02 5.01924730e-02 4.90706386e-02 + 4.79640236e-02 4.68725440e-02 4.57961157e-02 4.47346549e-02 4.36880775e-02 + 4.26562996e-02 4.16392373e-02 4.06368065e-02 3.96489235e-02 3.86755044e-02 + 3.77164653e-02 3.67717225e-02 3.58411921e-02 3.49247905e-02 3.40224340e-02 + 3.31340390e-02 3.22595219e-02 3.13987991e-02 3.05517872e-02 2.97184028e-02 + 2.88985626e-02 2.80921832e-02 2.72991814e-02 2.65194740e-02 2.57529781e-02 + 2.49996105e-02 2.42592885e-02 2.35319290e-02 2.28174494e-02 2.21157669e-02 + 2.14267990e-02 2.07504632e-02 2.00866771e-02 1.94353583e-02 1.87964247e-02 + 1.81697941e-02 1.75553845e-02 1.69531141e-02 1.63629010e-02 1.57846636e-02 + 1.52183202e-02 1.46637895e-02 1.41209901e-02 1.35898408e-02 1.30702605e-02 + 1.25621682e-02 1.20654832e-02 1.15801246e-02 1.11060119e-02 1.06430648e-02 + 1.01912028e-02 9.75034577e-03 9.32041377e-03 8.90132688e-03 8.49300538e-03 + 8.09536966e-03 7.70834030e-03 7.33183802e-03 6.96578368e-03 6.61009831e-03 + 6.26470310e-03 5.92951939e-03 5.60446868e-03 5.28947266e-03 4.98445316e-03 + 4.68933218e-03 4.40403190e-03 4.12847467e-03 3.86258301e-03 3.60627963e-03 + 3.35948739e-03 3.12212936e-03 2.89412876e-03 2.67540903e-03 2.46589377e-03 + 2.26550676e-03 2.07417199e-03 1.89181364e-03 1.71835606e-03 1.55372381e-03 + 1.39784164e-03 1.25063451e-03 1.11202756e-03 9.81946133e-04 8.60315789e-04 + 7.47062278e-04 6.42111559e-04 5.45389798e-04 4.56823367e-04 3.76338850e-04 + 3.03863043e-04 2.39322951e-04 1.82645796e-04 1.33759016e-04 9.25902631e-05 + 5.90674105e-05 3.31185502e-05 1.46719954e-05 3.65628182e-06 0.00000000e+00 + 4.06412796e+00 4.06783653e+00 4.07704324e+00 4.08626532e+00 4.09550275e+00 + 4.10475551e+00 4.11402360e+00 4.12330700e+00 4.13260568e+00 4.14191965e+00 + 4.15124888e+00 4.16059336e+00 4.16995307e+00 4.17932799e+00 4.18871811e+00 + 4.19812340e+00 4.20754387e+00 4.21697947e+00 4.22643020e+00 4.23589604e+00 + 4.24537696e+00 4.25487296e+00 4.26438400e+00 4.27391007e+00 4.28345115e+00 + 4.29300721e+00 4.30257824e+00 4.31216421e+00 4.32176511e+00 4.33138090e+00 + 4.34101157e+00 4.35065709e+00 4.36031744e+00 4.36999260e+00 4.37968253e+00 + 4.38938722e+00 4.39910664e+00 4.40884076e+00 4.41858956e+00 4.42835301e+00 + 4.43813109e+00 4.44792376e+00 4.45773100e+00 4.46755278e+00 4.47738908e+00 + 4.48723985e+00 4.49710508e+00 4.50698473e+00 4.51687878e+00 4.52678718e+00 + 4.53670992e+00 4.54664696e+00 4.55659826e+00 4.56656380e+00 4.57654353e+00 + 4.58653744e+00 4.59654548e+00 4.60656761e+00 4.61660382e+00 4.62665405e+00 + 4.63671827e+00 4.64679645e+00 4.65688855e+00 4.66699453e+00 4.67711435e+00 + 4.68724799e+00 4.69739539e+00 4.70755652e+00 4.71773133e+00 4.72791980e+00 + 4.73812188e+00 4.74833752e+00 4.75856669e+00 4.76880934e+00 4.77906544e+00 + 4.78933493e+00 4.79961778e+00 4.80991393e+00 4.82022336e+00 4.83054600e+00 + 4.84088182e+00 4.85123077e+00 4.86159280e+00 4.87196787e+00 4.88235592e+00 + 4.89275691e+00 4.90317080e+00 4.91359752e+00 4.92403704e+00 4.93448930e+00 + 4.94495425e+00 4.95543184e+00 4.96592201e+00 4.97642472e+00 4.98693991e+00 + 4.99746754e+00 5.00800753e+00 5.01855985e+00 5.02912442e+00 5.03970121e+00 + 5.05029015e+00 5.06089119e+00 5.07150426e+00 5.08212932e+00 5.09276629e+00 + 5.10341513e+00 5.11407577e+00 5.12474815e+00 5.13543222e+00 5.14612790e+00 + 5.15683515e+00 5.16755389e+00 5.17828406e+00 5.18902560e+00 5.19977844e+00 + 5.21054252e+00 5.22131778e+00 5.23210415e+00 5.24290155e+00 5.25370993e+00 + 5.26452922e+00 5.27535934e+00 5.28620023e+00 5.29705182e+00 5.30791404e+00 + 5.31878681e+00 5.32967007e+00 5.34056375e+00 5.35146776e+00 5.36238204e+00 + 5.37330652e+00 5.38424111e+00 5.39518574e+00 5.40614035e+00 5.41710484e+00 + 5.42807915e+00 5.43906319e+00 5.45005689e+00 5.46106017e+00 5.47207294e+00 + 5.48309514e+00 5.49412667e+00 5.50516746e+00 5.51621742e+00 5.52727647e+00 + 5.53834452e+00 5.54942150e+00 5.56050732e+00 5.57160189e+00 5.58270512e+00 + 5.59381693e+00 5.60493724e+00 5.61606594e+00 5.62720297e+00 5.63834821e+00 + 5.64950159e+00 5.66066301e+00 5.67183239e+00 5.68300962e+00 5.69419463e+00 + 5.70538730e+00 5.71658756e+00 5.72779530e+00 5.73901042e+00 5.75023284e+00 + 5.76146246e+00 5.77269917e+00 5.78394289e+00 5.79519350e+00 5.80645092e+00 + 5.81771503e+00 5.82898575e+00 5.84026296e+00 5.85154657e+00 5.86283647e+00 + 5.87413256e+00 5.88543473e+00 5.89674289e+00 5.90805691e+00 5.91937670e+00 + 5.93070215e+00 5.94203316e+00 5.95336960e+00 5.96471138e+00 5.97605838e+00 + 5.98741049e+00 5.99876760e+00 6.01012960e+00 6.02149638e+00 6.03286782e+00 + 6.04424380e+00 6.05562422e+00 6.06700896e+00 6.07839789e+00 6.08979091e+00 + 6.10118790e+00 6.11258873e+00 6.12399329e+00 6.13540145e+00 6.14681311e+00 + 6.15822813e+00 6.16964639e+00 6.18106777e+00 6.19249215e+00 6.20391941e+00 + 6.21534941e+00 6.22678203e+00 6.23821715e+00 6.24965464e+00 6.26109436e+00 + 6.27253621e+00 6.28398003e+00 6.29542571e+00 6.30687311e+00 6.31832210e+00 + 6.32977255e+00 6.34122433e+00 6.35267730e+00 6.36413133e+00 6.37558628e+00 + 6.38704202e+00 6.39849842e+00 6.40995532e+00 6.42141261e+00 6.43287013e+00 + 6.44432776e+00 6.45578534e+00 6.46724275e+00 6.47869983e+00 6.49015644e+00 + 6.50161246e+00 6.51306772e+00 6.52452208e+00 6.53597541e+00 6.54742756e+00 + 6.55887837e+00 6.57032771e+00 6.58177542e+00 6.59322136e+00 6.60466538e+00 + 6.61610733e+00 6.62754705e+00 6.63898441e+00 6.65041923e+00 6.66185139e+00 + 6.67328071e+00 6.68470705e+00 6.69613025e+00 6.70755016e+00 6.71896662e+00 + 6.73037948e+00 6.74178857e+00 6.75319375e+00 6.76459484e+00 6.77599170e+00 + 6.78738417e+00 6.79877207e+00 6.81015526e+00 6.82153357e+00 6.83290684e+00 + 6.84427490e+00 6.85563759e+00 6.86699475e+00 6.87834621e+00 6.88969181e+00 + 6.90103138e+00 6.91236475e+00 6.92369176e+00 6.93501224e+00 6.94632601e+00 + 6.95763292e+00 6.96893279e+00 6.98022544e+00 6.99151072e+00 7.00278844e+00 + 7.01405843e+00 7.02532053e+00 7.03657455e+00 7.04782033e+00 7.05905769e+00 + 7.07028644e+00 7.08150643e+00 7.09271747e+00 7.10391938e+00 7.11511199e+00 + 7.12629511e+00 7.13746858e+00 7.14863220e+00 7.15978581e+00 7.17092921e+00 + 7.18206223e+00 7.19318469e+00 7.20429640e+00 7.21539719e+00 7.22648686e+00 + 7.23756524e+00 7.24863215e+00 7.25968738e+00 7.27073077e+00 7.28176213e+00 + 7.29278126e+00 7.30378798e+00 7.31478212e+00 7.32576346e+00 7.33673184e+00 + 7.34768706e+00 7.35862893e+00 7.36955726e+00 7.38047187e+00 7.39137255e+00 + 7.40225913e+00 7.41313140e+00 7.42398918e+00 7.43483228e+00 7.44566050e+00 + 7.45647365e+00 7.46727153e+00 7.47805396e+00 7.48882073e+00 7.49957166e+00 + 7.51030654e+00 7.52102519e+00 7.53172740e+00 7.54241298e+00 7.55308173e+00 + 7.56373346e+00 7.57436797e+00 7.58498506e+00 7.59558453e+00 7.60616619e+00 + 7.61672984e+00 7.62727527e+00 7.63780229e+00 7.64831069e+00 7.65880029e+00 + 7.66927087e+00 7.67972224e+00 7.69015420e+00 7.70056655e+00 7.71095908e+00 + 7.72133159e+00 7.73168388e+00 7.74201575e+00 7.75232700e+00 7.76261742e+00 + 7.77288682e+00 7.78313498e+00 7.79336172e+00 7.80356681e+00 7.81375006e+00 + 7.82391127e+00 7.83405023e+00 7.84416673e+00 7.85426058e+00 7.86433157e+00 + 7.87437949e+00 7.88440415e+00 7.89440533e+00 7.90438283e+00 7.91433644e+00 + 7.92426597e+00 7.93417120e+00 7.94405193e+00 7.95390796e+00 7.96373908e+00 + 7.97354509e+00 7.98332577e+00 7.99308093e+00 8.00281035e+00 8.01251384e+00 + 8.02219119e+00 8.03184219e+00 8.04146664e+00 8.05106433e+00 8.06063505e+00 + 8.07017861e+00 8.07969479e+00 8.08918339e+00 8.09864421e+00 8.10807704e+00 + 8.11748167e+00 8.12685791e+00 8.13620553e+00 8.14552435e+00 8.15481416e+00 + 8.16407475e+00 8.17330592e+00 8.18250746e+00 8.19167916e+00 8.20082084e+00 + 8.20993228e+00 8.21901327e+00 8.22806362e+00 8.23708313e+00 8.24607158e+00 + 8.25502879e+00 8.26395453e+00 8.27284862e+00 8.28171085e+00 8.29054102e+00 + 8.29933893e+00 8.30810438e+00 8.31683717e+00 8.32553709e+00 8.33420394e+00 + 8.34283754e+00 8.35143767e+00 8.36000414e+00 8.36853676e+00 8.37703531e+00 + 8.38549961e+00 8.39392946e+00 8.40232465e+00 8.41068500e+00 8.41901031e+00 + 8.42730037e+00 8.43555501e+00 8.44377401e+00 8.45195719e+00 8.46010436e+00 + 8.46821531e+00 8.47628987e+00 8.48432782e+00 8.49232899e+00 8.50029318e+00 + 8.50822020e+00 8.51610986e+00 8.52396198e+00 8.53177635e+00 8.53955280e+00 + 8.54729113e+00 8.55499116e+00 8.56265270e+00 8.57027557e+00 8.57785958e+00 + 8.58540454e+00 8.59291028e+00 8.60037660e+00 8.60780333e+00 8.61519028e+00 + 8.62253727e+00 8.62984412e+00 8.63711066e+00 8.64433670e+00 8.65152206e+00 + 8.65866656e+00 8.66577004e+00 8.67283231e+00 8.67985319e+00 8.68683252e+00 + 8.69377012e+00 8.70066582e+00 8.70751944e+00 8.71433081e+00 8.72109977e+00 + 8.72782614e+00 8.73450975e+00 8.74115044e+00 8.74774804e+00 8.75430239e+00 + 8.76081331e+00 8.76728065e+00 8.77370424e+00 8.78008391e+00 8.78641952e+00 + 8.79271089e+00 8.79895787e+00 8.80516030e+00 8.81131803e+00 8.81743088e+00 + 8.82349872e+00 8.82952138e+00 8.83549872e+00 8.84143057e+00 8.84731680e+00 + 8.85315724e+00 8.85895175e+00 8.86470018e+00 8.87040239e+00 8.87605822e+00 + 8.88166754e+00 8.88723019e+00 8.89274604e+00 8.89821495e+00 8.90363677e+00 + 8.90901137e+00 8.91433860e+00 8.91961834e+00 8.92485044e+00 8.93003477e+00 + 8.93517119e+00 8.94025959e+00 8.94529981e+00 8.95029174e+00 8.95523525e+00 + 8.96013020e+00 8.96497648e+00 8.96977395e+00 8.97452250e+00 8.97922200e+00 + 8.98387233e+00 8.98847338e+00 8.99302501e+00 8.99752712e+00 9.00197960e+00 + 9.00638231e+00 9.01073516e+00 9.01503803e+00 9.01929081e+00 9.02349339e+00 + 9.02764567e+00 9.03174753e+00 9.03579887e+00 9.03979959e+00 9.04374958e+00 + 9.04764875e+00 9.05149699e+00 9.05529422e+00 9.05904032e+00 9.06273520e+00 + 9.06637878e+00 9.06997095e+00 9.07351163e+00 9.07700073e+00 9.08043816e+00 + 9.08382383e+00 9.08715765e+00 9.09043955e+00 9.09366944e+00 9.09684724e+00 + 9.09997287e+00 9.10304626e+00 9.10606732e+00 9.10903597e+00 9.11195216e+00 + 9.11481580e+00 9.11762683e+00 9.12038517e+00 9.12309076e+00 9.12574353e+00 + 9.12834342e+00 9.13089036e+00 9.13338430e+00 9.13582517e+00 9.13821291e+00 + 9.14054747e+00 9.14282880e+00 9.14505683e+00 9.14723152e+00 9.14935282e+00 + 9.15142067e+00 9.15343503e+00 9.15539586e+00 9.15730311e+00 9.15915673e+00 + 9.16095669e+00 9.16270294e+00 9.16439545e+00 9.16603418e+00 9.16761910e+00 + 9.16915017e+00 9.17062736e+00 9.17205064e+00 9.17341998e+00 9.17473536e+00 + 9.17599674e+00 9.17720412e+00 9.17835745e+00 9.17945673e+00 9.18050193e+00 + 9.18149304e+00 9.18243003e+00 9.18331291e+00 9.18414165e+00 9.18491623e+00 + 9.18563667e+00 9.18630293e+00 9.18691503e+00 9.18747295e+00 9.18797669e+00 + 9.18842625e+00 9.18882163e+00 9.18916283e+00 9.18944985e+00 9.18968271e+00 + 9.18986140e+00 9.18998593e+00 9.19005632e+00 9.19007257e+00 9.19003470e+00 + 9.18994273e+00 9.18979666e+00 9.18959652e+00 9.18934232e+00 9.18903409e+00 + 9.18867185e+00 9.18825562e+00 9.18778542e+00 9.18726130e+00 9.18668327e+00 + 9.18605136e+00 9.18536561e+00 9.18462604e+00 9.18383270e+00 9.18298563e+00 + 9.18208485e+00 9.18113041e+00 9.18012235e+00 9.17906071e+00 9.17794554e+00 + 9.17677688e+00 9.17555479e+00 9.17427930e+00 9.17295047e+00 9.17156835e+00 + 9.17013299e+00 9.16864446e+00 9.16710280e+00 9.16550808e+00 9.16386035e+00 + 9.16215967e+00 9.16040612e+00 9.15859974e+00 9.15674061e+00 9.15482879e+00 + 9.15286435e+00 9.15084737e+00 9.14877791e+00 9.14665604e+00 9.14448185e+00 + 9.14225540e+00 9.13997677e+00 9.13764605e+00 9.13526330e+00 9.13282862e+00 + 9.13034209e+00 9.12780378e+00 9.12521379e+00 9.12257220e+00 9.11987911e+00 + 9.11713459e+00 9.11433875e+00 9.11149167e+00 9.10859345e+00 9.10564418e+00 + 9.10264397e+00 9.09959290e+00 9.09649108e+00 9.09333860e+00 9.09013558e+00 + 9.08688211e+00 9.08357830e+00 9.08022426e+00 9.07682008e+00 9.07336589e+00 + 9.06986178e+00 9.06630788e+00 9.06270429e+00 9.05905112e+00 9.05534850e+00 + 9.05159653e+00 9.04779534e+00 9.04394504e+00 9.04004575e+00 9.03609759e+00 + 9.03210069e+00 9.02805517e+00 9.02396116e+00 9.01981877e+00 9.01562814e+00 + 9.01138939e+00 9.00710265e+00 9.00276806e+00 8.99838574e+00 8.99395583e+00 + 8.98947846e+00 8.98495376e+00 8.98038187e+00 8.97576293e+00 8.97109708e+00 + 8.96638445e+00 8.96162519e+00 8.95681943e+00 8.95196732e+00 8.94706900e+00 + 8.94212462e+00 8.93713431e+00 8.93209824e+00 8.92701653e+00 8.92188935e+00 + 8.91671684e+00 8.91149915e+00 8.90623643e+00 8.90092884e+00 8.89557652e+00 + 8.89017964e+00 8.88473834e+00 8.87925278e+00 8.87372312e+00 8.86814952e+00 + 8.86253212e+00 8.85687110e+00 8.85116662e+00 8.84541882e+00 8.83962789e+00 + 8.83379397e+00 8.82791723e+00 8.82199783e+00 8.81603595e+00 8.81003174e+00 + 8.80398538e+00 8.79789702e+00 8.79176684e+00 8.78559501e+00 8.77938169e+00 + 8.77312706e+00 8.76683129e+00 8.76049454e+00 8.75411700e+00 8.74769883e+00 + 8.74124020e+00 8.73474130e+00 8.72820229e+00 8.72162336e+00 8.71500467e+00 + 8.70834641e+00 8.70164876e+00 8.69491188e+00 8.68813596e+00 8.68132118e+00 + 8.67446772e+00 8.66757576e+00 8.66064548e+00 8.65367706e+00 8.64667068e+00 + 8.63962653e+00 8.63254478e+00 8.62542563e+00 8.61826925e+00 8.61107584e+00 + 8.60384557e+00 8.59657863e+00 8.58927521e+00 8.58193549e+00 8.57455966e+00 + 8.56714790e+00 8.55970041e+00 8.55221737e+00 8.54469898e+00 8.53714541e+00 + 8.52955686e+00 8.52193351e+00 8.51427557e+00 8.50658321e+00 8.49885663e+00 + 8.49109602e+00 8.48330156e+00 8.47547346e+00 8.46761190e+00 8.45971708e+00 + 8.45178918e+00 8.44382840e+00 8.43583493e+00 8.42780897e+00 8.41975070e+00 + 8.41166033e+00 8.40353804e+00 8.39538403e+00 8.38719849e+00 8.37898162e+00 + 8.37073361e+00 8.36245465e+00 8.35414495e+00 8.34580469e+00 8.33743407e+00 + 8.32903329e+00 8.32060254e+00 8.31214201e+00 8.30365190e+00 8.29513241e+00 + 8.28658374e+00 8.27800607e+00 8.26939960e+00 8.26076454e+00 8.25210107e+00 + 8.24340939e+00 8.23468970e+00 8.22594219e+00 8.21716706e+00 8.20836451e+00 + 8.19953473e+00 8.19067791e+00 8.18179426e+00 8.17288396e+00 8.16394722e+00 + 8.15498424e+00 8.14599519e+00 8.13698029e+00 8.12793973e+00 8.11887370e+00 + 8.10978240e+00 8.10066603e+00 8.09152477e+00 8.08235883e+00 8.07316840e+00 + 8.06395367e+00 8.05471485e+00 8.04545211e+00 8.03616567e+00 8.02685571e+00 + 8.01752243e+00 8.00816601e+00 7.99878667e+00 7.98938458e+00 7.97995994e+00 + 7.97051296e+00 7.96104381e+00 7.95155269e+00 7.94203979e+00 7.93250532e+00 + 7.92294945e+00 7.91337238e+00 7.90377431e+00 7.89415542e+00 7.88451590e+00 + 7.87485596e+00 7.86517577e+00 7.85547552e+00 7.84575542e+00 7.83601564e+00 + 7.82625638e+00 7.81647783e+00 7.80668017e+00 7.79686359e+00 7.78702829e+00 + 7.77717445e+00 7.76730225e+00 7.75741189e+00 7.74750355e+00 7.73757742e+00 + 7.72763369e+00 7.71767253e+00 7.70769414e+00 7.69769870e+00 7.68768640e+00 + 7.67765742e+00 7.66761194e+00 7.65755015e+00 7.64747223e+00 7.63737837e+00 + 7.62726874e+00 7.61714352e+00 7.60700291e+00 7.59684708e+00 7.58667621e+00 + 7.57649048e+00 7.56629007e+00 7.55607516e+00 7.54584593e+00 7.53560256e+00 + 7.52534522e+00 7.51507410e+00 7.50478936e+00 7.49449120e+00 7.48417977e+00 + 7.47385527e+00 7.46351786e+00 7.45316771e+00 7.44280501e+00 7.43242993e+00 + 7.42204263e+00 7.41164329e+00 7.40123209e+00 7.39080920e+00 7.38037478e+00 + 7.36992901e+00 7.35947205e+00 7.34900408e+00 7.33852527e+00 7.32803578e+00 + 7.31753578e+00 7.30702545e+00 7.29650493e+00 7.28597442e+00 7.27543405e+00 + 7.26488402e+00 7.25432447e+00 7.24375557e+00 7.23317749e+00 7.22259039e+00 + 7.21199442e+00 7.20138976e+00 7.19077657e+00 7.18015500e+00 7.16952521e+00 + 7.15888737e+00 7.14824163e+00 7.13758815e+00 7.12692709e+00 7.11625861e+00 + 7.10558286e+00 7.09490000e+00 7.08421018e+00 7.07351356e+00 7.06281029e+00 + 7.05210053e+00 7.04138443e+00 7.03066215e+00 7.01993382e+00 7.00919961e+00 + 6.99845967e+00 6.98771414e+00 6.97696317e+00 6.96620692e+00 6.95544553e+00 + 6.94467914e+00 6.93390791e+00 6.92313198e+00 6.91235150e+00 6.90156661e+00 + 6.89077746e+00 6.87998418e+00 6.86918693e+00 6.85838585e+00 6.84758107e+00 + 6.83677273e+00 6.82596099e+00 6.81514597e+00 6.80432782e+00 6.79350668e+00 + 6.78268268e+00 6.77185596e+00 6.76102665e+00 6.75019490e+00 6.73936084e+00 + 6.72852461e+00 6.71768633e+00 6.70684614e+00 6.69600417e+00 6.68516056e+00 + 6.67431544e+00 6.66346894e+00 6.65262118e+00 6.64177230e+00 6.63092243e+00 + 6.62007169e+00 6.60922022e+00 6.59836813e+00 6.58751556e+00 6.57666263e+00 + 6.56580946e+00 6.55495619e+00 6.54410293e+00 6.53324981e+00 6.52239695e+00 + 6.51154446e+00 6.50069248e+00 6.48984112e+00 6.47899051e+00 6.46814075e+00 + 6.45729198e+00 6.44644430e+00 6.43559784e+00 6.42475271e+00 6.41390903e+00 + 6.40306690e+00 6.39222646e+00 6.38138781e+00 6.37055106e+00 6.35971632e+00 + 6.34888372e+00 6.33805335e+00 6.32722534e+00 6.31639979e+00 6.30557680e+00 + 6.29475650e+00 6.28393898e+00 6.27312436e+00 6.26231274e+00 6.25150422e+00 + 6.24069892e+00 6.22989694e+00 6.21909838e+00 6.20830334e+00 6.19751193e+00 + 6.18672426e+00 6.17594041e+00 6.16516051e+00 6.15438463e+00 6.14361289e+00 + 6.13284538e+00 6.12208221e+00 6.11132347e+00 6.10056925e+00 6.08981965e+00 + 6.07907478e+00 6.06833472e+00 6.05759958e+00 6.04686943e+00 6.03614439e+00 + 6.02542453e+00 6.01470996e+00 6.00400077e+00 5.99329704e+00 5.98259887e+00 + 5.97190634e+00 5.96121955e+00 5.95053859e+00 5.93986353e+00 5.92919448e+00 + 5.91853152e+00 5.90787472e+00 5.89722419e+00 5.88658000e+00 5.87594224e+00 + 5.86531099e+00 5.85468634e+00 5.84406836e+00 5.83345715e+00 5.82285277e+00 + 5.81225532e+00 5.80166487e+00 5.79108151e+00 5.78050530e+00 5.76993634e+00 + 5.75937469e+00 5.74882044e+00 5.73827366e+00 5.72773443e+00 5.71720283e+00 + 5.70667892e+00 5.69616279e+00 5.68565450e+00 5.67515414e+00 5.66466177e+00 + 5.65417746e+00 5.64370130e+00 5.63323334e+00 5.62277366e+00 5.61232233e+00 + 5.60187942e+00 5.59144500e+00 5.58101913e+00 5.57060189e+00 5.56019334e+00 + 5.54979355e+00 5.53940258e+00 5.52902050e+00 5.51864737e+00 5.50828327e+00 + 5.49792824e+00 5.48758237e+00 5.47724570e+00 5.46691830e+00 5.45660024e+00 + 5.44629158e+00 5.43599237e+00 5.42570267e+00 5.41542255e+00 5.40515207e+00 + 5.39489128e+00 5.38464024e+00 5.37439902e+00 5.36416766e+00 5.35394622e+00 + 5.34373477e+00 5.33353335e+00 5.32334202e+00 5.31316083e+00 5.30298985e+00 + 5.29282912e+00 5.28267869e+00 5.27253863e+00 5.26240898e+00 5.25228979e+00 + 5.24218111e+00 5.23208300e+00 5.22199550e+00 5.21191867e+00 5.20185256e+00 + 5.19179721e+00 5.18175267e+00 5.17171899e+00 5.16169621e+00 5.15168439e+00 + 5.14168357e+00 5.13169380e+00 5.12171512e+00 5.11174758e+00 5.10179121e+00 + 5.09184608e+00 5.08191221e+00 5.07198966e+00 5.06207846e+00 5.05217866e+00 + 5.04229030e+00 5.03241343e+00 5.02254807e+00 5.01269428e+00 5.00285209e+00 + 4.99302155e+00 4.98320269e+00 4.97339555e+00 4.96360017e+00 4.95381659e+00 + 4.94404484e+00 4.93428497e+00 4.92453700e+00 4.91480098e+00 4.90507695e+00 + 4.89536493e+00 4.88566496e+00 4.87597708e+00 4.86630132e+00 4.85663772e+00 + 4.84698631e+00 4.83734712e+00 4.82772018e+00 4.81810553e+00 4.80850320e+00 + 4.79891322e+00 4.78933562e+00 4.77977044e+00 4.77021769e+00 4.76067742e+00 + 4.75114965e+00 4.74163441e+00 4.73213174e+00 4.72264165e+00 4.71316418e+00 + 4.70369935e+00 4.69424719e+00 4.68480774e+00 4.67538100e+00 4.66596702e+00 + 4.65656582e+00 4.64717742e+00 4.63780185e+00 4.62843913e+00 4.61908929e+00 + 4.60975235e+00 4.60042833e+00 4.59111726e+00 4.58181917e+00 4.57253407e+00 + 4.56326198e+00 4.55400294e+00 4.54475695e+00 4.53552405e+00 4.52630425e+00 + 4.51709757e+00 4.50790404e+00 4.49872367e+00 4.48955648e+00 4.48040250e+00 + 4.47126174e+00 4.46213422e+00 4.45301995e+00 4.44391897e+00 4.43483128e+00 + 4.42575690e+00 4.41669585e+00 4.40764815e+00 4.39861381e+00 4.38959285e+00 + 4.38058529e+00 4.37159113e+00 4.36261041e+00 4.35364312e+00 4.34468929e+00 + 4.33574893e+00 4.32682205e+00 4.31790867e+00 4.30900881e+00 4.30012247e+00 + 4.29124966e+00 4.28239041e+00 4.27354472e+00 4.26471261e+00 4.25589408e+00 + 4.24708916e+00 4.23829784e+00 4.22952014e+00 4.22075608e+00 4.21200566e+00 + 4.20326889e+00 4.19454579e+00 4.18583635e+00 4.17714060e+00 4.16845854e+00 + 4.15979019e+00 4.15113553e+00 4.14249460e+00 4.13386739e+00 4.12525392e+00 + 4.11665419e+00 4.10806820e+00 4.09949597e+00 4.09093751e+00 4.08239281e+00 + 4.07386189e+00 4.06534475e+00 4.05684139e+00 4.04835184e+00 4.03987608e+00 + 4.03141412e+00 4.02296598e+00 4.01453165e+00 4.00611113e+00 3.99770444e+00 + 3.98931158e+00 3.98093255e+00 3.97256735e+00 3.96421600e+00 3.95587848e+00 + 3.94755481e+00 3.93924499e+00 3.93094901e+00 3.92266689e+00 3.91439862e+00 + 3.90614421e+00 3.89790366e+00 3.88967697e+00 3.88146413e+00 3.87326516e+00 + 3.86508006e+00 3.85690881e+00 3.84875144e+00 3.84060792e+00 3.83247827e+00 + 3.82436249e+00 3.81626057e+00 3.80817252e+00 3.80009833e+00 3.79203800e+00 + 3.78399153e+00 3.77595892e+00 3.76794018e+00 3.75993529e+00 3.75194425e+00 + 3.74396707e+00 3.73600375e+00 3.72805427e+00 3.72011864e+00 3.71219685e+00 + 3.70428890e+00 3.69639480e+00 3.68851453e+00 3.68064809e+00 3.67279548e+00 + 3.66495669e+00 3.65713173e+00 3.64932058e+00 3.64152325e+00 3.63373972e+00 + 3.62597000e+00 3.61821408e+00 3.61047196e+00 3.60274362e+00 3.59502907e+00 + 3.58732830e+00 3.57964131e+00 3.57196808e+00 3.56430861e+00 3.55666291e+00 + 3.54903095e+00 3.54141274e+00 3.53380827e+00 3.52621753e+00 3.51864051e+00 + 3.51107722e+00 3.50352763e+00 3.49599176e+00 3.48846958e+00 3.48096109e+00 + 3.47346628e+00 3.46598515e+00 3.45851769e+00 3.45106389e+00 3.44362374e+00 + 3.43619724e+00 3.42878437e+00 3.42138513e+00 3.41399951e+00 3.40662750e+00 + 3.39926909e+00 3.39192428e+00 3.38459305e+00 3.37727539e+00 3.36997131e+00 + 3.36268077e+00 3.35540379e+00 3.34814034e+00 3.34089043e+00 3.33365403e+00 + 3.32643114e+00 3.31922175e+00 3.31202584e+00 3.30484342e+00 3.29767446e+00 + 3.29051896e+00 3.28337691e+00 3.27624829e+00 3.26913310e+00 3.26203132e+00 + 3.25494295e+00 3.24786797e+00 3.24080638e+00 3.23375815e+00 3.22672328e+00 + 3.21970176e+00 3.21269357e+00 3.20569871e+00 3.19871717e+00 3.19174892e+00 + 3.18479396e+00 3.17785228e+00 3.17092386e+00 3.16400870e+00 3.15710677e+00 + 3.15021808e+00 3.14334260e+00 3.13648032e+00 3.12963123e+00 3.12279532e+00 + 3.11597257e+00 3.10916298e+00 3.10236652e+00 3.09558319e+00 3.08881297e+00 + 3.08205585e+00 3.07531182e+00 3.06858086e+00 3.06186296e+00 3.05515810e+00 + 3.04846628e+00 3.04178747e+00 3.03512167e+00 3.02846886e+00 3.02182902e+00 + 3.01520215e+00 3.00858823e+00 3.00198724e+00 2.99539917e+00 2.98882400e+00 + 2.98226173e+00 2.97571234e+00 2.96917581e+00 2.96265212e+00 2.95614127e+00 + 2.94964324e+00 2.94315802e+00 2.93668558e+00 2.93022592e+00 2.92377902e+00 + 2.91734486e+00 2.91092343e+00 2.90451471e+00 2.89811870e+00 2.89173537e+00 + 2.88536471e+00 2.87900670e+00 2.87266133e+00 2.86632858e+00 2.86000844e+00 + 2.85370090e+00 2.84740593e+00 2.84112351e+00 2.83485365e+00 2.82859631e+00 + 2.82235149e+00 2.81611916e+00 2.80989931e+00 2.80369193e+00 2.79749700e+00 + 2.79131451e+00 2.78514443e+00 2.77898675e+00 2.77284146e+00 2.76670853e+00 + 2.76058796e+00 2.75447972e+00 2.74838381e+00 2.74230020e+00 2.73622887e+00 + 2.73016982e+00 2.72412302e+00 2.71808845e+00 2.71206611e+00 2.70605597e+00 + 2.70005802e+00 2.69407224e+00 2.68809862e+00 2.68213713e+00 2.67618776e+00 + 2.67025050e+00 2.66432532e+00 2.65841221e+00 2.65251116e+00 2.64662214e+00 + 2.64074514e+00 2.63488014e+00 2.62902713e+00 2.62318608e+00 2.61735698e+00 + 2.61153982e+00 2.60573457e+00 2.59994122e+00 2.59415976e+00 2.58839016e+00 + 2.58263240e+00 2.57688647e+00 2.57115236e+00 2.56543004e+00 2.55971950e+00 + 2.55402071e+00 2.54833367e+00 2.54265836e+00 2.53699475e+00 2.53134283e+00 + 2.52570258e+00 2.52007399e+00 2.51445704e+00 2.50885170e+00 2.50325797e+00 + 2.49767582e+00 2.49210523e+00 2.48654620e+00 2.48099869e+00 2.47546270e+00 + 2.46993821e+00 2.46442519e+00 2.45892363e+00 2.45343351e+00 2.44795481e+00 + 2.44248753e+00 2.43703163e+00 2.43158710e+00 2.42615392e+00 2.42073208e+00 + 2.41532155e+00 2.40992232e+00 2.40453438e+00 2.39915769e+00 2.39379225e+00 + 2.38843804e+00 2.38309504e+00 2.37776322e+00 2.37244258e+00 2.36713309e+00 + 2.36183474e+00 2.35654751e+00 2.35127138e+00 2.34600633e+00 2.34075234e+00 + 2.33550940e+00 2.33027749e+00 2.32505659e+00 2.31984668e+00 2.31464774e+00 + 2.30945976e+00 2.30428272e+00 2.29911659e+00 2.29396137e+00 2.28881702e+00 + 2.28368355e+00 2.27856091e+00 2.27344911e+00 2.26834812e+00 2.26325792e+00 + 2.25817849e+00 2.25310982e+00 2.24805188e+00 2.24300466e+00 2.23796815e+00 + 2.23294231e+00 2.22792715e+00 2.22292262e+00 2.21792873e+00 2.21294544e+00 + 2.20797275e+00 2.20301063e+00 2.19805906e+00 2.19311803e+00 2.18818752e+00 + 2.18326751e+00 2.17835798e+00 2.17345892e+00 2.16857030e+00 2.16369211e+00 + 2.15882433e+00 2.15396694e+00 2.14911992e+00 2.14428325e+00 2.13945693e+00 + 2.13464092e+00 2.12983521e+00 2.12503978e+00 2.12025462e+00 2.11547970e+00 + 2.11071501e+00 2.10596053e+00 2.10121624e+00 2.09648213e+00 2.09175816e+00 + 2.08704434e+00 2.08234063e+00 2.07764702e+00 2.07296350e+00 2.06829004e+00 + 2.06362662e+00 2.05897323e+00 2.05432985e+00 2.04969647e+00 2.04507305e+00 + 2.04045960e+00 2.03585608e+00 2.03126247e+00 2.02667877e+00 2.02210496e+00 + 2.01754101e+00 2.01298690e+00 2.00844262e+00 2.00390816e+00 1.99938349e+00 + 1.99486859e+00 1.99036345e+00 1.98586805e+00 1.98138237e+00 1.97690639e+00 + 1.97244010e+00 1.96798348e+00 1.96353650e+00 1.95909916e+00 1.95467143e+00 + 1.95025330e+00 1.94584474e+00 1.94144574e+00 1.93705629e+00 1.93267636e+00 + 1.92830594e+00 1.92394500e+00 1.91959354e+00 1.91525153e+00 1.91091895e+00 + 1.90659579e+00 1.90228203e+00 1.89797766e+00 1.89368264e+00 1.88939698e+00 + 1.88512064e+00 1.88085361e+00 1.87659588e+00 1.87234743e+00 1.86810823e+00 + 1.86387827e+00 1.85965754e+00 1.85544601e+00 1.85124367e+00 1.84705050e+00 + 1.84286648e+00 1.83869160e+00 1.83452583e+00 1.83036917e+00 1.82622159e+00 + 1.82208307e+00 1.81795360e+00 1.81383316e+00 1.80972174e+00 1.80561931e+00 + 1.80152586e+00 1.79744137e+00 1.79336582e+00 1.78929920e+00 1.78524149e+00 + 1.78119267e+00 1.77715272e+00 1.77312163e+00 1.76909939e+00 1.76508596e+00 + 1.76108134e+00 1.75708551e+00 1.75309844e+00 1.74912014e+00 1.74515057e+00 + 1.74118972e+00 1.73723757e+00 1.73329410e+00 1.72935931e+00 1.72543317e+00 + 1.72151566e+00 1.71760676e+00 1.71370647e+00 1.70981477e+00 1.70593162e+00 + 1.70205703e+00 1.69819097e+00 1.69433343e+00 1.69048438e+00 1.68664382e+00 + 1.68281172e+00 1.67898807e+00 1.67517286e+00 1.67136605e+00 1.66756765e+00 + 1.66377762e+00 1.65999597e+00 1.65622265e+00 1.65245767e+00 1.64870101e+00 + 1.64495264e+00 1.64121256e+00 1.63748074e+00 1.63375716e+00 1.63004182e+00 + 1.62633470e+00 1.62263577e+00 1.61894502e+00 1.61526245e+00 1.61158802e+00 + 1.60792172e+00 1.60426354e+00 1.60061346e+00 1.59697146e+00 1.59333753e+00 + 1.58971165e+00 1.58609381e+00 1.58248399e+00 1.57888216e+00 1.57528833e+00 + 1.57170246e+00 1.56812455e+00 1.56455458e+00 1.56099252e+00 1.55743837e+00 + 1.55389211e+00 1.55035373e+00 1.54682320e+00 1.54330051e+00 1.53978565e+00 + 1.53627860e+00 1.53277934e+00 1.52928786e+00 1.52580413e+00 1.52232816e+00 + 1.51885991e+00 1.51539938e+00 1.51194655e+00 1.50850139e+00 1.50506391e+00 + 1.50163407e+00 1.49821187e+00 1.49479729e+00 1.49139031e+00 1.48799092e+00 + 1.48459910e+00 1.48121484e+00 1.47783812e+00 1.47446893e+00 1.47110724e+00 + 1.46775305e+00 1.46440634e+00 1.46106709e+00 1.45773529e+00 1.45441092e+00 + 1.45109397e+00 1.44778442e+00 1.44448226e+00 1.44118747e+00 1.43790003e+00 + 1.43461994e+00 1.43134717e+00 1.42808171e+00 1.42482354e+00 1.42157265e+00 + 1.41832903e+00 1.41509266e+00 1.41186352e+00 1.40864160e+00 1.40542689e+00 + 1.40221936e+00 1.39901901e+00 1.39582581e+00 1.39263976e+00 1.38946084e+00 + 1.38628904e+00 1.38312433e+00 1.37996670e+00 1.37681615e+00 1.37367265e+00 + 1.37053619e+00 1.36740676e+00 1.36428433e+00 1.36116890e+00 1.35806045e+00 + 1.35495897e+00 1.35186444e+00 1.34877684e+00 1.34569617e+00 1.34262240e+00 + 1.33955553e+00 1.33649554e+00 1.33344241e+00 1.33039613e+00 1.32735668e+00 + 1.32432406e+00 1.32129824e+00 1.31827921e+00 1.31526696e+00 1.31226147e+00 + 1.30926273e+00 1.30627073e+00 1.30328544e+00 1.30030687e+00 1.29733498e+00 + 1.29436977e+00 1.29141122e+00 1.28845932e+00 1.28551406e+00 1.28257542e+00 + 1.27964338e+00 1.27671794e+00 1.27379907e+00 1.27088677e+00 1.26798102e+00 + 1.26508181e+00 1.26218912e+00 1.25930293e+00 1.25642325e+00 1.25355004e+00 + 1.25068330e+00 1.24782302e+00 1.24496917e+00 1.24212175e+00 1.23928074e+00 + 1.23644613e+00 1.23361790e+00 1.23079605e+00 1.22798055e+00 1.22517139e+00 + 1.22236857e+00 1.21957206e+00 1.21678186e+00 1.21399794e+00 1.21122030e+00 + 1.20844892e+00 1.20568379e+00 1.20292490e+00 1.20017223e+00 1.19742577e+00 + 1.19468550e+00 1.19195141e+00 1.18922350e+00 1.18650174e+00 1.18378612e+00 + 1.18107663e+00 1.17837325e+00 1.17567598e+00 1.17298479e+00 1.17029969e+00 + 1.16762064e+00 1.16492387e+00 1.16213751e+00 1.15925731e+00 1.15628397e+00 + 1.15321822e+00 1.15006080e+00 1.14681247e+00 1.14347399e+00 1.14004614e+00 + 1.13652972e+00 1.13292553e+00 1.12923439e+00 1.12545713e+00 1.12159460e+00 + 1.11764764e+00 1.11361712e+00 1.10950393e+00 1.10530894e+00 1.10103307e+00 + 1.09667722e+00 1.09224230e+00 1.08772926e+00 1.08313904e+00 1.07847259e+00 + 1.07373086e+00 1.06891483e+00 1.06402548e+00 1.05906380e+00 1.05403079e+00 + 1.04892746e+00 1.04375481e+00 1.03851388e+00 1.03320569e+00 1.02783129e+00 + 1.02239172e+00 1.01688803e+00 1.01132129e+00 1.00569257e+00 1.00000294e+00 + 9.94253473e-01 9.88445268e-01 9.82579415e-01 9.76657013e-01 9.70679167e-01 + 9.64646985e-01 9.58561585e-01 9.52424084e-01 9.46235609e-01 9.39997288e-01 + 9.33710253e-01 9.27375643e-01 9.20994598e-01 9.14568262e-01 9.08097783e-01 + 9.01584312e-01 8.95029002e-01 8.88433010e-01 8.81797494e-01 8.75123616e-01 + 8.68412537e-01 8.61665423e-01 8.54883440e-01 8.48067755e-01 8.41219538e-01 + 8.34339956e-01 8.27430181e-01 8.20491384e-01 8.13524734e-01 8.06531404e-01 + 7.99512564e-01 7.92469384e-01 7.85403035e-01 7.78314685e-01 7.71205503e-01 + 7.64076656e-01 7.56929308e-01 7.49764624e-01 7.42583767e-01 7.35387895e-01 + 7.28178168e-01 7.20955740e-01 7.13721765e-01 7.06477392e-01 6.99223769e-01 + 6.91962040e-01 6.84693345e-01 6.77418822e-01 6.70139603e-01 6.62856818e-01 + 6.55571593e-01 6.48285047e-01 6.40998299e-01 6.33712459e-01 6.26428635e-01 + 6.19147929e-01 6.11871437e-01 6.04600250e-01 5.97335456e-01 5.90078134e-01 + 5.82829357e-01 5.75590196e-01 5.68361711e-01 5.61144959e-01 5.53940989e-01 + 5.46750843e-01 5.39575557e-01 5.32416160e-01 5.25273674e-01 5.18149112e-01 + 5.11043482e-01 5.03957784e-01 4.96893007e-01 4.89850137e-01 4.82830149e-01 + 4.75834011e-01 4.68862681e-01 4.61917111e-01 4.54998243e-01 4.48107011e-01 + 4.41244339e-01 4.34411143e-01 4.27608330e-01 4.20836798e-01 4.14097435e-01 + 4.07391119e-01 4.00718721e-01 3.94081100e-01 3.87479106e-01 3.80913579e-01 + 3.74385350e-01 3.67895238e-01 3.61444053e-01 3.55032596e-01 3.48661655e-01 + 3.42332009e-01 3.36044427e-01 3.29799666e-01 3.23598473e-01 3.17441585e-01 + 3.11329726e-01 3.05263611e-01 2.99243943e-01 2.93271414e-01 2.87346706e-01 + 2.81470487e-01 2.75643416e-01 2.69866139e-01 2.64139293e-01 2.58463501e-01 + 2.52839376e-01 2.47267517e-01 2.41748515e-01 2.36282946e-01 2.30871375e-01 + 2.25514356e-01 2.20212432e-01 2.14966130e-01 2.09775970e-01 2.04642457e-01 + 1.99566084e-01 1.94547333e-01 1.89586674e-01 1.84684564e-01 1.79841448e-01 + 1.75057759e-01 1.70333918e-01 1.65670332e-01 1.61067399e-01 1.56525503e-01 + 1.52045014e-01 1.47626293e-01 1.43269686e-01 1.38975529e-01 1.34744143e-01 + 1.30575839e-01 1.26470915e-01 1.22429656e-01 1.18452335e-01 1.14539213e-01 + 1.10690539e-01 1.06906550e-01 1.03187468e-01 9.95335069e-02 9.59448653e-02 + 9.24217306e-02 8.89642782e-02 8.55726710e-02 8.22470599e-02 7.89875836e-02 + 7.57943689e-02 7.26675303e-02 6.96071705e-02 6.66133801e-02 6.36862378e-02 + 6.08258104e-02 5.80321528e-02 5.53053081e-02 5.26453077e-02 5.00521712e-02 + 4.75259065e-02 4.50665099e-02 4.26739664e-02 4.03482489e-02 3.80893195e-02 + 3.58971284e-02 3.37716148e-02 3.17127063e-02 2.97203197e-02 2.77943602e-02 + 2.59347223e-02 2.41412894e-02 2.24139337e-02 2.07525169e-02 1.91568897e-02 + 1.76268922e-02 1.61623537e-02 1.47630931e-02 1.34289187e-02 1.21596286e-02 + 1.09550102e-02 9.81484109e-03 8.73888848e-03 7.72690959e-03 6.77865166e-03 + 5.89385204e-03 5.07223831e-03 4.31352836e-03 3.61743045e-03 2.98364337e-03 + 2.41185648e-03 1.90174984e-03 1.45299430e-03 1.06525159e-03 7.38174448e-04 + 4.71406686e-04 2.64583325e-04 1.17330685e-04 2.92664954e-05 0.00000000e+00 + 1.14636847e+01 1.14637147e+01 1.15240318e+01 1.15846601e+01 1.16456011e+01 + 1.17068565e+01 1.17684277e+01 1.18303164e+01 1.18925239e+01 1.19550520e+01 + 1.20179021e+01 1.20810759e+01 1.21445749e+01 1.22084007e+01 1.22725549e+01 + 1.23370391e+01 1.24018548e+01 1.24670037e+01 1.25324875e+01 1.25983076e+01 + 1.26644659e+01 1.27309638e+01 1.27978031e+01 1.28649853e+01 1.29325122e+01 + 1.30003854e+01 1.30686065e+01 1.31371773e+01 1.32060994e+01 1.32753745e+01 + 1.33450043e+01 1.34149905e+01 1.34853349e+01 1.35560390e+01 1.36271047e+01 + 1.36985337e+01 1.37703277e+01 1.38424884e+01 1.39150176e+01 1.39879171e+01 + 1.40611886e+01 1.41348338e+01 1.42088546e+01 1.42832528e+01 1.43580300e+01 + 1.44331882e+01 1.45087290e+01 1.45846544e+01 1.46609661e+01 1.47376660e+01 + 1.48147558e+01 1.48922374e+01 1.49701127e+01 1.50483835e+01 1.51270516e+01 + 1.52061190e+01 1.52855874e+01 1.53654587e+01 1.54457349e+01 1.55264178e+01 + 1.56075093e+01 1.56890113e+01 1.57709257e+01 1.58532545e+01 1.59359994e+01 + 1.60191626e+01 1.61027458e+01 1.61867511e+01 1.62711803e+01 1.63560355e+01 + 1.64413185e+01 1.65270315e+01 1.66131762e+01 1.66997547e+01 1.67867690e+01 + 1.68742211e+01 1.69621130e+01 1.70504466e+01 1.71392240e+01 1.72284472e+01 + 1.73181182e+01 1.74082391e+01 1.74988118e+01 1.75898384e+01 1.76813210e+01 + 1.77732616e+01 1.78656623e+01 1.79585251e+01 1.80518522e+01 1.81456455e+01 + 1.82399071e+01 1.83346392e+01 1.84298439e+01 1.85255232e+01 1.86216793e+01 + 1.87183142e+01 1.88154301e+01 1.89130291e+01 1.90111134e+01 1.91096850e+01 + 1.92087462e+01 1.93082990e+01 1.94083456e+01 1.95088881e+01 1.96099288e+01 + 1.97114699e+01 1.98135133e+01 1.99160615e+01 2.00191164e+01 2.01226804e+01 + 2.02267556e+01 2.03313443e+01 2.04364485e+01 2.05420707e+01 2.06482128e+01 + 2.07548773e+01 2.08620662e+01 2.09697819e+01 2.10780265e+01 2.11868023e+01 + 2.12961116e+01 2.14059566e+01 2.15163395e+01 2.16272627e+01 2.17387283e+01 + 2.18507387e+01 2.19632961e+01 2.20764027e+01 2.21900610e+01 2.23042731e+01 + 2.24190413e+01 2.25343679e+01 2.26502553e+01 2.27667057e+01 2.28837215e+01 + 2.30013049e+01 2.31194582e+01 2.32381838e+01 2.33574839e+01 2.34773610e+01 + 2.35978172e+01 2.37188550e+01 2.38404767e+01 2.39626846e+01 2.40854811e+01 + 2.42088684e+01 2.43328489e+01 2.44574250e+01 2.45825991e+01 2.47083733e+01 + 2.48347502e+01 2.49617321e+01 2.50893212e+01 2.52175201e+01 2.53463309e+01 + 2.54757562e+01 2.56057981e+01 2.57364592e+01 2.58677418e+01 2.59996482e+01 + 2.61321808e+01 2.62653420e+01 2.63991341e+01 2.65335596e+01 2.66686207e+01 + 2.68043198e+01 2.69406594e+01 2.70776417e+01 2.72152692e+01 2.73535442e+01 + 2.74924691e+01 2.76320462e+01 2.77722780e+01 2.79131668e+01 2.80547149e+01 + 2.81969248e+01 2.83397987e+01 2.84833391e+01 2.86275483e+01 2.87724286e+01 + 2.89179825e+01 2.90642123e+01 2.92111203e+01 2.93587088e+01 2.95069803e+01 + 2.96559371e+01 2.98055815e+01 2.99559159e+01 3.01069425e+01 3.02586638e+01 + 3.04110820e+01 3.05641996e+01 3.07180187e+01 3.08725417e+01 3.10277709e+01 + 3.11837087e+01 3.13403573e+01 3.14977190e+01 3.16557962e+01 3.18145911e+01 + 3.19741059e+01 3.21343430e+01 3.22953047e+01 3.24569931e+01 3.26194106e+01 + 3.27825594e+01 3.29464417e+01 3.31110597e+01 3.32764158e+01 3.34425121e+01 + 3.36093508e+01 3.37769341e+01 3.39452642e+01 3.41143433e+01 3.42841736e+01 + 3.44547572e+01 3.46260964e+01 3.47981931e+01 3.49710496e+01 3.51446681e+01 + 3.53190505e+01 3.54941990e+01 3.56701158e+01 3.58468028e+01 3.60242622e+01 + 3.62024960e+01 3.63815062e+01 3.65612949e+01 3.67418641e+01 3.69232158e+01 + 3.71053520e+01 3.72882746e+01 3.74719857e+01 3.76564872e+01 3.78417809e+01 + 3.80278689e+01 3.82147530e+01 3.84024351e+01 3.85909171e+01 3.87802007e+01 + 3.89702880e+01 3.91611806e+01 3.93528804e+01 3.95453892e+01 3.97387086e+01 + 3.99328406e+01 4.01277867e+01 4.03235487e+01 4.05201283e+01 4.07175271e+01 + 4.09157468e+01 4.11147890e+01 4.13146553e+01 4.15153472e+01 4.17168665e+01 + 4.19192145e+01 4.21223928e+01 4.23264028e+01 4.25312461e+01 4.27369241e+01 + 4.29434382e+01 4.31507898e+01 4.33589802e+01 4.35680108e+01 4.37778828e+01 + 4.39885977e+01 4.42001566e+01 4.44125608e+01 4.46258114e+01 4.48399097e+01 + 4.50548568e+01 4.52706538e+01 4.54873017e+01 4.57048017e+01 4.59231548e+01 + 4.61423619e+01 4.63624241e+01 4.65833421e+01 4.68051170e+01 4.70277497e+01 + 4.72512408e+01 4.74755912e+01 4.77008018e+01 4.79268731e+01 4.81538059e+01 + 4.83816009e+01 4.86102586e+01 4.88397796e+01 4.90701646e+01 4.93014139e+01 + 4.95335280e+01 4.97665074e+01 5.00003524e+01 5.02350634e+01 5.04706407e+01 + 5.07070845e+01 5.09443951e+01 5.11825727e+01 5.14216173e+01 5.16615291e+01 + 5.19023081e+01 5.21439543e+01 5.23864676e+01 5.26298480e+01 5.28740954e+01 + 5.31192095e+01 5.33651902e+01 5.36120371e+01 5.38597499e+01 5.41083282e+01 + 5.43577717e+01 5.46080798e+01 5.48592520e+01 5.51112877e+01 5.53641863e+01 + 5.56179471e+01 5.58725694e+01 5.61280524e+01 5.63843952e+01 5.66415969e+01 + 5.68996567e+01 5.71585734e+01 5.74183459e+01 5.76789733e+01 5.79404543e+01 + 5.82027876e+01 5.84659719e+01 5.87300059e+01 5.89948882e+01 5.92606173e+01 + 5.95271916e+01 5.97946095e+01 6.00628694e+01 6.03319696e+01 6.06019081e+01 + 6.08726832e+01 6.11442930e+01 6.14167355e+01 6.16900085e+01 6.19641100e+01 + 6.22390378e+01 6.25147896e+01 6.27913631e+01 6.30687559e+01 6.33469656e+01 + 6.36259895e+01 6.39058251e+01 6.41864697e+01 6.44679206e+01 6.47501749e+01 + 6.50332297e+01 6.53170821e+01 6.56017290e+01 6.58871673e+01 6.61733938e+01 + 6.64604052e+01 6.67481982e+01 6.70367693e+01 6.73261150e+01 6.76162318e+01 + 6.79071160e+01 6.81987638e+01 6.84911715e+01 6.87843350e+01 6.90782505e+01 + 6.93729139e+01 6.96683210e+01 6.99644676e+01 7.02613493e+01 7.05589619e+01 + 7.08573007e+01 7.11563612e+01 7.14561389e+01 7.17566288e+01 7.20578263e+01 + 7.23597263e+01 7.26623240e+01 7.29656142e+01 7.32695917e+01 7.35742513e+01 + 7.38795876e+01 7.41855952e+01 7.44922686e+01 7.47996021e+01 7.51075900e+01 + 7.54162265e+01 7.57255057e+01 7.60354217e+01 7.63459683e+01 7.66571394e+01 + 7.69689287e+01 7.72813299e+01 7.75943364e+01 7.79079418e+01 7.82221395e+01 + 7.85369226e+01 7.88522843e+01 7.91682178e+01 7.94847160e+01 7.98017717e+01 + 8.01193779e+01 8.04375271e+01 8.07562119e+01 8.10754249e+01 8.13951584e+01 + 8.17154048e+01 8.20361563e+01 8.23574049e+01 8.26791427e+01 8.30013615e+01 + 8.33240533e+01 8.36472097e+01 8.39708223e+01 8.42948827e+01 8.46193822e+01 + 8.49443123e+01 8.52696640e+01 8.55954286e+01 8.59215971e+01 8.62481604e+01 + 8.65751093e+01 8.69024346e+01 8.72301269e+01 8.75581767e+01 8.78865745e+01 + 8.82153106e+01 8.85443752e+01 8.88737586e+01 8.92034507e+01 8.95334414e+01 + 8.98637208e+01 9.01942784e+01 9.05251039e+01 9.08561870e+01 9.11875170e+01 + 9.15190834e+01 9.18508754e+01 9.21828822e+01 9.25150929e+01 9.28474964e+01 + 9.31800817e+01 9.35128376e+01 9.38457526e+01 9.41788156e+01 9.45120150e+01 + 9.48453391e+01 9.51787764e+01 9.55123152e+01 9.58459434e+01 9.61796493e+01 + 9.65134208e+01 9.68472458e+01 9.71811120e+01 9.75150072e+01 9.78489190e+01 + 9.81828350e+01 9.85167426e+01 9.88506292e+01 9.91844820e+01 9.95182882e+01 + 9.98520351e+01 1.00185710e+02 1.00519299e+02 1.00852789e+02 1.01186168e+02 + 1.01519421e+02 1.01852537e+02 1.02185500e+02 1.02518298e+02 1.02850918e+02 + 1.03183344e+02 1.03515565e+02 1.03847565e+02 1.04179331e+02 1.04510850e+02 + 1.04842106e+02 1.05173087e+02 1.05503777e+02 1.05834164e+02 1.06164231e+02 + 1.06493966e+02 1.06823354e+02 1.07152380e+02 1.07481029e+02 1.07809288e+02 + 1.08137142e+02 1.08464575e+02 1.08791574e+02 1.09118124e+02 1.09444209e+02 + 1.09769815e+02 1.10094926e+02 1.10419529e+02 1.10743608e+02 1.11067148e+02 + 1.11390133e+02 1.11712550e+02 1.12034382e+02 1.12355614e+02 1.12676232e+02 + 1.12996219e+02 1.13315562e+02 1.13634243e+02 1.13952249e+02 1.14269563e+02 + 1.14586171e+02 1.14902056e+02 1.15217204e+02 1.15531599e+02 1.15845226e+02 + 1.16158068e+02 1.16470111e+02 1.16781340e+02 1.17091737e+02 1.17401289e+02 + 1.17709980e+02 1.18017793e+02 1.18324714e+02 1.18630727e+02 1.18935817e+02 + 1.19239967e+02 1.19543163e+02 1.19845389e+02 1.20146630e+02 1.20446869e+02 + 1.20746092e+02 1.21044283e+02 1.21341427e+02 1.21637508e+02 1.21932512e+02 + 1.22226421e+02 1.22519222e+02 1.22810899e+02 1.23101437e+02 1.23390820e+02 + 1.23679033e+02 1.23966062e+02 1.24251891e+02 1.24536504e+02 1.24819888e+02 + 1.25102026e+02 1.25382904e+02 1.25662508e+02 1.25940822e+02 1.26217831e+02 + 1.26493521e+02 1.26767877e+02 1.27040885e+02 1.27312529e+02 1.27582796e+02 + 1.27851672e+02 1.28119141e+02 1.28385189e+02 1.28649803e+02 1.28912968e+02 + 1.29174670e+02 1.29434895e+02 1.29693630e+02 1.29950860e+02 1.30206572e+02 + 1.30460752e+02 1.30713387e+02 1.30964463e+02 1.31213966e+02 1.31461885e+02 + 1.31708205e+02 1.31952913e+02 1.32195997e+02 1.32437443e+02 1.32677239e+02 + 1.32915372e+02 1.33151830e+02 1.33386601e+02 1.33619671e+02 1.33851029e+02 + 1.34080662e+02 1.34308560e+02 1.34534709e+02 1.34759099e+02 1.34981717e+02 + 1.35202552e+02 1.35421593e+02 1.35638829e+02 1.35854248e+02 1.36067840e+02 + 1.36279593e+02 1.36489498e+02 1.36697543e+02 1.36903718e+02 1.37108013e+02 + 1.37310417e+02 1.37510922e+02 1.37709516e+02 1.37906191e+02 1.38100936e+02 + 1.38293742e+02 1.38484600e+02 1.38673502e+02 1.38860437e+02 1.39045397e+02 + 1.39228374e+02 1.39409359e+02 1.39588343e+02 1.39765319e+02 1.39940278e+02 + 1.40113213e+02 1.40284116e+02 1.40452979e+02 1.40619796e+02 1.40784558e+02 + 1.40947259e+02 1.41107891e+02 1.41266449e+02 1.41422926e+02 1.41577314e+02 + 1.41729609e+02 1.41879804e+02 1.42027892e+02 1.42173869e+02 1.42317729e+02 + 1.42459467e+02 1.42599077e+02 1.42736554e+02 1.42871893e+02 1.43005090e+02 + 1.43136140e+02 1.43265040e+02 1.43391784e+02 1.43516369e+02 1.43638790e+02 + 1.43759046e+02 1.43877131e+02 1.43993042e+02 1.44106777e+02 1.44218333e+02 + 1.44327706e+02 1.44434895e+02 1.44539897e+02 1.44642709e+02 1.44743329e+02 + 1.44841757e+02 1.44937989e+02 1.45032025e+02 1.45123862e+02 1.45213501e+02 + 1.45300939e+02 1.45386177e+02 1.45469212e+02 1.45550046e+02 1.45628677e+02 + 1.45705106e+02 1.45779332e+02 1.45851355e+02 1.45921177e+02 1.45988797e+02 + 1.46054216e+02 1.46117435e+02 1.46178455e+02 1.46237278e+02 1.46293904e+02 + 1.46348336e+02 1.46400574e+02 1.46450622e+02 1.46498480e+02 1.46544151e+02 + 1.46587637e+02 1.46628941e+02 1.46668066e+02 1.46705014e+02 1.46739788e+02 + 1.46772392e+02 1.46802828e+02 1.46831101e+02 1.46857213e+02 1.46881169e+02 + 1.46902973e+02 1.46922628e+02 1.46940138e+02 1.46955509e+02 1.46968744e+02 + 1.46979849e+02 1.46988827e+02 1.46995684e+02 1.47000426e+02 1.47003056e+02 + 1.47003581e+02 1.47002006e+02 1.46998336e+02 1.46992578e+02 1.46984737e+02 + 1.46974819e+02 1.46962831e+02 1.46948778e+02 1.46932668e+02 1.46914506e+02 + 1.46894299e+02 1.46872054e+02 1.46847778e+02 1.46821478e+02 1.46793161e+02 + 1.46762834e+02 1.46730505e+02 1.46696181e+02 1.46659869e+02 1.46621578e+02 + 1.46581315e+02 1.46539088e+02 1.46494906e+02 1.46448775e+02 1.46400705e+02 + 1.46350703e+02 1.46298779e+02 1.46244940e+02 1.46189196e+02 1.46131554e+02 + 1.46072025e+02 1.46010616e+02 1.45947336e+02 1.45882196e+02 1.45815203e+02 + 1.45746367e+02 1.45675697e+02 1.45603203e+02 1.45528895e+02 1.45452781e+02 + 1.45374871e+02 1.45295176e+02 1.45213704e+02 1.45130467e+02 1.45045472e+02 + 1.44958732e+02 1.44870254e+02 1.44780051e+02 1.44688131e+02 1.44594506e+02 + 1.44499185e+02 1.44402178e+02 1.44303497e+02 1.44203151e+02 1.44101151e+02 + 1.43997508e+02 1.43892232e+02 1.43785334e+02 1.43676825e+02 1.43566715e+02 + 1.43455014e+02 1.43341735e+02 1.43226888e+02 1.43110483e+02 1.42992531e+02 + 1.42873045e+02 1.42752034e+02 1.42629509e+02 1.42505482e+02 1.42379964e+02 + 1.42252966e+02 1.42124499e+02 1.41994574e+02 1.41863202e+02 1.41730395e+02 + 1.41596164e+02 1.41460520e+02 1.41323475e+02 1.41185039e+02 1.41045224e+02 + 1.40904041e+02 1.40761503e+02 1.40617619e+02 1.40472401e+02 1.40325861e+02 + 1.40178011e+02 1.40028860e+02 1.39878422e+02 1.39726706e+02 1.39573726e+02 + 1.39419491e+02 1.39264013e+02 1.39107304e+02 1.38949376e+02 1.38790238e+02 + 1.38629904e+02 1.38468384e+02 1.38305689e+02 1.38141831e+02 1.37976821e+02 + 1.37810671e+02 1.37643391e+02 1.37474994e+02 1.37305490e+02 1.37134890e+02 + 1.36963207e+02 1.36790450e+02 1.36616632e+02 1.36441764e+02 1.36265856e+02 + 1.36088919e+02 1.35910966e+02 1.35732007e+02 1.35552053e+02 1.35371115e+02 + 1.35189204e+02 1.35006331e+02 1.34822508e+02 1.34637745e+02 1.34452052e+02 + 1.34265442e+02 1.34077924e+02 1.33889510e+02 1.33700211e+02 1.33510036e+02 + 1.33318997e+02 1.33127105e+02 1.32934370e+02 1.32740803e+02 1.32546414e+02 + 1.32351214e+02 1.32155213e+02 1.31958423e+02 1.31760852e+02 1.31562512e+02 + 1.31363414e+02 1.31163566e+02 1.30962981e+02 1.30761667e+02 1.30559635e+02 + 1.30356895e+02 1.30153458e+02 1.29949332e+02 1.29744529e+02 1.29539058e+02 + 1.29332930e+02 1.29126153e+02 1.28918738e+02 1.28710695e+02 1.28502033e+02 + 1.28292762e+02 1.28082892e+02 1.27872431e+02 1.27661391e+02 1.27449780e+02 + 1.27237607e+02 1.27024882e+02 1.26811615e+02 1.26597815e+02 1.26383490e+02 + 1.26168650e+02 1.25953305e+02 1.25737462e+02 1.25521132e+02 1.25304323e+02 + 1.25087045e+02 1.24869305e+02 1.24651113e+02 1.24432478e+02 1.24213408e+02 + 1.23993912e+02 1.23773999e+02 1.23553677e+02 1.23332954e+02 1.23111839e+02 + 1.22890341e+02 1.22668468e+02 1.22446227e+02 1.22223628e+02 1.22000678e+02 + 1.21777386e+02 1.21553760e+02 1.21329807e+02 1.21105535e+02 1.20880953e+02 + 1.20656068e+02 1.20430889e+02 1.20205422e+02 1.19979676e+02 1.19753657e+02 + 1.19527375e+02 1.19300835e+02 1.19074046e+02 1.18847015e+02 1.18619750e+02 + 1.18392257e+02 1.18164544e+02 1.17936618e+02 1.17708486e+02 1.17480156e+02 + 1.17251634e+02 1.17022927e+02 1.16794042e+02 1.16564986e+02 1.16335766e+02 + 1.16106388e+02 1.15876860e+02 1.15647187e+02 1.15417377e+02 1.15187436e+02 + 1.14957370e+02 1.14727186e+02 1.14496890e+02 1.14266489e+02 1.14035988e+02 + 1.13805395e+02 1.13574714e+02 1.13343953e+02 1.13113117e+02 1.12882212e+02 + 1.12651245e+02 1.12420220e+02 1.12189145e+02 1.11958024e+02 1.11726863e+02 + 1.11495669e+02 1.11264446e+02 1.11033201e+02 1.10801938e+02 1.10570664e+02 + 1.10339384e+02 1.10108102e+02 1.09876825e+02 1.09645558e+02 1.09414306e+02 + 1.09183074e+02 1.08951867e+02 1.08720690e+02 1.08489549e+02 1.08258447e+02 + 1.08027392e+02 1.07796386e+02 1.07565435e+02 1.07334544e+02 1.07103717e+02 + 1.06872960e+02 1.06642276e+02 1.06411671e+02 1.06181148e+02 1.05950713e+02 + 1.05720370e+02 1.05490123e+02 1.05259977e+02 1.05029936e+02 1.04800004e+02 + 1.04570186e+02 1.04340485e+02 1.04110906e+02 1.03881453e+02 1.03652130e+02 + 1.03422940e+02 1.03193889e+02 1.02964980e+02 1.02736216e+02 1.02507602e+02 + 1.02279141e+02 1.02050837e+02 1.01822694e+02 1.01594715e+02 1.01366905e+02 + 1.01139266e+02 1.00911802e+02 1.00684517e+02 1.00457414e+02 1.00230497e+02 + 1.00003768e+02 9.97772321e+01 9.95508915e+01 9.93247499e+01 9.90988103e+01 + 9.88730759e+01 9.86475500e+01 9.84222355e+01 9.81971356e+01 9.79722534e+01 + 9.77475917e+01 9.75231536e+01 9.72989420e+01 9.70749597e+01 9.68512097e+01 + 9.66276947e+01 9.64044174e+01 9.61813808e+01 9.59585873e+01 9.57360398e+01 + 9.55137409e+01 9.52916930e+01 9.50698990e+01 9.48483611e+01 9.46270821e+01 + 9.44060642e+01 9.41853100e+01 9.39648219e+01 9.37446022e+01 9.35246532e+01 + 9.33049773e+01 9.30855768e+01 9.28664538e+01 9.26476106e+01 9.24290493e+01 + 9.22107722e+01 9.19927813e+01 9.17750786e+01 9.15576664e+01 9.13405465e+01 + 9.11237210e+01 9.09071919e+01 9.06909610e+01 9.04750303e+01 9.02594017e+01 + 9.00440770e+01 8.98290581e+01 8.96143467e+01 8.93999446e+01 8.91858535e+01 + 8.89720752e+01 8.87586114e+01 8.85454636e+01 8.83326336e+01 8.81201229e+01 + 8.79079332e+01 8.76960659e+01 8.74845226e+01 8.72733048e+01 8.70624140e+01 + 8.68518516e+01 8.66416191e+01 8.64317178e+01 8.62221492e+01 8.60129146e+01 + 8.58040153e+01 8.55954526e+01 8.53872279e+01 8.51793423e+01 8.49717971e+01 + 8.47645936e+01 8.45577329e+01 8.43512162e+01 8.41450446e+01 8.39392193e+01 + 8.37337413e+01 8.35286118e+01 8.33238319e+01 8.31194024e+01 8.29153246e+01 + 8.27115993e+01 8.25082275e+01 8.23052103e+01 8.21025484e+01 8.19002430e+01 + 8.16982948e+01 8.14967047e+01 8.12954737e+01 8.10946024e+01 8.08940918e+01 + 8.06939427e+01 8.04941558e+01 8.02947318e+01 8.00956717e+01 7.98969760e+01 + 7.96986455e+01 7.95006808e+01 7.93030827e+01 7.91058518e+01 7.89089888e+01 + 7.87124942e+01 7.85163688e+01 7.83206129e+01 7.81252274e+01 7.79302126e+01 + 7.77355691e+01 7.75412975e+01 7.73473983e+01 7.71538720e+01 7.69607190e+01 + 7.67679398e+01 7.65755348e+01 7.63835046e+01 7.61918494e+01 7.60005698e+01 + 7.58096660e+01 7.56191385e+01 7.54289877e+01 7.52392138e+01 7.50498172e+01 + 7.48607982e+01 7.46721572e+01 7.44838943e+01 7.42960100e+01 7.41085045e+01 + 7.39213779e+01 7.37346306e+01 7.35482627e+01 7.33622746e+01 7.31766663e+01 + 7.29914382e+01 7.28065902e+01 7.26221227e+01 7.24380357e+01 7.22543295e+01 + 7.20710041e+01 7.18880596e+01 7.17054962e+01 7.15233140e+01 7.13415130e+01 + 7.11600933e+01 7.09790550e+01 7.07983980e+01 7.06181226e+01 7.04382286e+01 + 7.02587162e+01 7.00795852e+01 6.99008358e+01 6.97224679e+01 6.95444815e+01 + 6.93668765e+01 6.91896529e+01 6.90128107e+01 6.88363498e+01 6.86602702e+01 + 6.84845716e+01 6.83092542e+01 6.81343177e+01 6.79597621e+01 6.77855872e+01 + 6.76117930e+01 6.74383792e+01 6.72653459e+01 6.70926927e+01 6.69204196e+01 + 6.67485263e+01 6.65770128e+01 6.64058788e+01 6.62351242e+01 6.60647487e+01 + 6.58947522e+01 6.57251344e+01 6.55558951e+01 6.53870341e+01 6.52185512e+01 + 6.50504461e+01 6.48827185e+01 6.47153683e+01 6.45483951e+01 6.43817987e+01 + 6.42155788e+01 6.40497352e+01 6.38842675e+01 6.37191754e+01 6.35544587e+01 + 6.33901170e+01 6.32261501e+01 6.30625575e+01 6.28993390e+01 6.27364943e+01 + 6.25740230e+01 6.24119248e+01 6.22501992e+01 6.20888461e+01 6.19278649e+01 + 6.17672554e+01 6.16070172e+01 6.14471498e+01 6.12876529e+01 6.11285262e+01 + 6.09697692e+01 6.08113816e+01 6.06533628e+01 6.04957126e+01 6.03384305e+01 + 6.01815161e+01 6.00249690e+01 5.98687888e+01 5.97129749e+01 5.95575271e+01 + 5.94024448e+01 5.92477276e+01 5.90933750e+01 5.89393867e+01 5.87857621e+01 + 5.86325008e+01 5.84796024e+01 5.83270662e+01 5.81748920e+01 5.80230792e+01 + 5.78716273e+01 5.77205359e+01 5.75698044e+01 5.74194325e+01 5.72694194e+01 + 5.71197649e+01 5.69704684e+01 5.68215293e+01 5.66729472e+01 5.65247215e+01 + 5.63768518e+01 5.62293375e+01 5.60821782e+01 5.59353732e+01 5.57889220e+01 + 5.56428242e+01 5.54970792e+01 5.53516865e+01 5.52066455e+01 5.50619556e+01 + 5.49176164e+01 5.47736273e+01 5.46299878e+01 5.44866972e+01 5.43437551e+01 + 5.42011609e+01 5.40589140e+01 5.39170138e+01 5.37754599e+01 5.36342516e+01 + 5.34933884e+01 5.33528697e+01 5.32126949e+01 5.30728635e+01 5.29333749e+01 + 5.27942284e+01 5.26554236e+01 5.25169599e+01 5.23788366e+01 5.22410531e+01 + 5.21036090e+01 5.19665035e+01 5.18297362e+01 5.16933064e+01 5.15572135e+01 + 5.14214569e+01 5.12860360e+01 5.11509503e+01 5.10161991e+01 5.08817818e+01 + 5.07476979e+01 5.06139466e+01 5.04805275e+01 5.03474399e+01 5.02146831e+01 + 5.00822567e+01 4.99501599e+01 4.98183922e+01 4.96869529e+01 4.95558415e+01 + 4.94250573e+01 4.92945997e+01 4.91644680e+01 4.90346617e+01 4.89051802e+01 + 4.87760228e+01 4.86471889e+01 4.85186778e+01 4.83904890e+01 4.82626219e+01 + 4.81350757e+01 4.80078499e+01 4.78809439e+01 4.77543570e+01 4.76280885e+01 + 4.75021379e+01 4.73765046e+01 4.72511879e+01 4.71261871e+01 4.70015017e+01 + 4.68771310e+01 4.67530743e+01 4.66293311e+01 4.65059007e+01 4.63827825e+01 + 4.62599758e+01 4.61374800e+01 4.60152945e+01 4.58934186e+01 4.57718517e+01 + 4.56505932e+01 4.55296424e+01 4.54089987e+01 4.52886614e+01 4.51686299e+01 + 4.50489036e+01 4.49294819e+01 4.48103640e+01 4.46915494e+01 4.45730374e+01 + 4.44548274e+01 4.43369187e+01 4.42193108e+01 4.41020029e+01 4.39849944e+01 + 4.38682847e+01 4.37518731e+01 4.36357591e+01 4.35199419e+01 4.34044210e+01 + 4.32891956e+01 4.31742652e+01 4.30596292e+01 4.29452868e+01 4.28312374e+01 + 4.27174804e+01 4.26040152e+01 4.24908411e+01 4.23779575e+01 4.22653637e+01 + 4.21530592e+01 4.20410432e+01 4.19293152e+01 4.18178744e+01 4.17067204e+01 + 4.15958523e+01 4.14852696e+01 4.13749717e+01 4.12649579e+01 4.11552276e+01 + 4.10457802e+01 4.09366150e+01 4.08277313e+01 4.07191286e+01 4.06108062e+01 + 4.05027635e+01 4.03949999e+01 4.02875147e+01 4.01803072e+01 4.00733770e+01 + 3.99667232e+01 3.98603454e+01 3.97542428e+01 3.96484149e+01 3.95428610e+01 + 3.94375804e+01 3.93325727e+01 3.92278370e+01 3.91233729e+01 3.90191797e+01 + 3.89152567e+01 3.88116033e+01 3.87082190e+01 3.86051031e+01 3.85022549e+01 + 3.83996738e+01 3.82973593e+01 3.81953107e+01 3.80935274e+01 3.79920087e+01 + 3.78907541e+01 3.77897629e+01 3.76890345e+01 3.75885683e+01 3.74883637e+01 + 3.73884200e+01 3.72887367e+01 3.71893131e+01 3.70901487e+01 3.69912428e+01 + 3.68925948e+01 3.67942040e+01 3.66960700e+01 3.65981920e+01 3.65005695e+01 + 3.64032018e+01 3.63060884e+01 3.62092287e+01 3.61126219e+01 3.60162677e+01 + 3.59201652e+01 3.58243140e+01 3.57287134e+01 3.56333628e+01 3.55382617e+01 + 3.54434094e+01 3.53488054e+01 3.52544489e+01 3.51603395e+01 3.50664766e+01 + 3.49728595e+01 3.48794877e+01 3.47863605e+01 3.46934774e+01 3.46008377e+01 + 3.45084410e+01 3.44162866e+01 3.43243738e+01 3.42327022e+01 3.41412712e+01 + 3.40500801e+01 3.39591283e+01 3.38684154e+01 3.37779406e+01 3.36877035e+01 + 3.35977034e+01 3.35079398e+01 3.34184120e+01 3.33291196e+01 3.32400618e+01 + 3.31512383e+01 3.30626483e+01 3.29742913e+01 3.28861667e+01 3.27982740e+01 + 3.27106125e+01 3.26231818e+01 3.25359813e+01 3.24490103e+01 3.23622683e+01 + 3.22757548e+01 3.21894691e+01 3.21034108e+01 3.20175792e+01 3.19319738e+01 + 3.18465940e+01 3.17614393e+01 3.16765091e+01 3.15918029e+01 3.15073200e+01 + 3.14230600e+01 3.13390223e+01 3.12552063e+01 3.11716115e+01 3.10882373e+01 + 3.10050832e+01 3.09221486e+01 3.08394330e+01 3.07569358e+01 3.06746565e+01 + 3.05925945e+01 3.05107493e+01 3.04291204e+01 3.03477071e+01 3.02665091e+01 + 3.01855256e+01 3.01047563e+01 3.00242005e+01 2.99438576e+01 2.98637273e+01 + 2.97838089e+01 2.97041019e+01 2.96246058e+01 2.95453200e+01 2.94662440e+01 + 2.93873773e+01 2.93087194e+01 2.92302697e+01 2.91520276e+01 2.90739928e+01 + 2.89961646e+01 2.89185425e+01 2.88411260e+01 2.87639145e+01 2.86869077e+01 + 2.86101048e+01 2.85335055e+01 2.84571092e+01 2.83809154e+01 2.83049236e+01 + 2.82291332e+01 2.81535438e+01 2.80781548e+01 2.80029657e+01 2.79279760e+01 + 2.78531853e+01 2.77785929e+01 2.77041985e+01 2.76300014e+01 2.75560012e+01 + 2.74821974e+01 2.74085895e+01 2.73351769e+01 2.72619592e+01 2.71889360e+01 + 2.71161065e+01 2.70434705e+01 2.69710274e+01 2.68987766e+01 2.68267178e+01 + 2.67548504e+01 2.66831739e+01 2.66116878e+01 2.65403917e+01 2.64692850e+01 + 2.63983673e+01 2.63276380e+01 2.62570968e+01 2.61867431e+01 2.61165764e+01 + 2.60465962e+01 2.59768021e+01 2.59071936e+01 2.58377702e+01 2.57685315e+01 + 2.56994769e+01 2.56306059e+01 2.55619182e+01 2.54934132e+01 2.54250905e+01 + 2.53569496e+01 2.52889900e+01 2.52212112e+01 2.51536129e+01 2.50861944e+01 + 2.50189554e+01 2.49518954e+01 2.48850139e+01 2.48183105e+01 2.47517847e+01 + 2.46854360e+01 2.46192641e+01 2.45532683e+01 2.44874483e+01 2.44218036e+01 + 2.43563338e+01 2.42910384e+01 2.42259169e+01 2.41609689e+01 2.40961940e+01 + 2.40315917e+01 2.39671615e+01 2.39029030e+01 2.38388158e+01 2.37748994e+01 + 2.37111533e+01 2.36475772e+01 2.35841706e+01 2.35209330e+01 2.34578640e+01 + 2.33949631e+01 2.33322300e+01 2.32696641e+01 2.32072651e+01 2.31450326e+01 + 2.30829659e+01 2.30210649e+01 2.29593289e+01 2.28977577e+01 2.28363507e+01 + 2.27751075e+01 2.27140277e+01 2.26531109e+01 2.25923566e+01 2.25317644e+01 + 2.24713339e+01 2.24110647e+01 2.23509564e+01 2.22910085e+01 2.22312206e+01 + 2.21715922e+01 2.21121231e+01 2.20528127e+01 2.19936606e+01 2.19346665e+01 + 2.18758299e+01 2.18171503e+01 2.17586275e+01 2.17002609e+01 2.16420503e+01 + 2.15839950e+01 2.15260948e+01 2.14683493e+01 2.14107580e+01 2.13533205e+01 + 2.12960364e+01 2.12389054e+01 2.11819270e+01 2.11251008e+01 2.10684265e+01 + 2.10119035e+01 2.09555316e+01 2.08993103e+01 2.08432393e+01 2.07873181e+01 + 2.07315463e+01 2.06759236e+01 2.06204495e+01 2.05651237e+01 2.05099458e+01 + 2.04549154e+01 2.04000321e+01 2.03452954e+01 2.02907052e+01 2.02362608e+01 + 2.01819620e+01 2.01278084e+01 2.00737995e+01 2.00199351e+01 1.99662147e+01 + 1.99126380e+01 1.98592045e+01 1.98059139e+01 1.97527658e+01 1.96997599e+01 + 1.96468957e+01 1.95941729e+01 1.95415912e+01 1.94891500e+01 1.94368492e+01 + 1.93846882e+01 1.93326668e+01 1.92807846e+01 1.92290411e+01 1.91774361e+01 + 1.91259691e+01 1.90746398e+01 1.90234479e+01 1.89723930e+01 1.89214746e+01 + 1.88706925e+01 1.88200463e+01 1.87695356e+01 1.87191601e+01 1.86689194e+01 + 1.86188132e+01 1.85688411e+01 1.85190027e+01 1.84692977e+01 1.84197257e+01 + 1.83702865e+01 1.83209796e+01 1.82718046e+01 1.82227613e+01 1.81738493e+01 + 1.81250682e+01 1.80764177e+01 1.80278975e+01 1.79795071e+01 1.79312463e+01 + 1.78831148e+01 1.78351121e+01 1.77872379e+01 1.77394919e+01 1.76918738e+01 + 1.76443832e+01 1.75970197e+01 1.75497831e+01 1.75026730e+01 1.74556891e+01 + 1.74088310e+01 1.73620983e+01 1.73154909e+01 1.72690082e+01 1.72226501e+01 + 1.71764161e+01 1.71303060e+01 1.70843194e+01 1.70384560e+01 1.69927154e+01 + 1.69470973e+01 1.69016015e+01 1.68562275e+01 1.68109751e+01 1.67658439e+01 + 1.67208336e+01 1.66759439e+01 1.66311745e+01 1.65865250e+01 1.65419952e+01 + 1.64975846e+01 1.64532931e+01 1.64091202e+01 1.63650657e+01 1.63211293e+01 + 1.62773106e+01 1.62336093e+01 1.61900251e+01 1.61465577e+01 1.61032068e+01 + 1.60599721e+01 1.60168532e+01 1.59738499e+01 1.59309619e+01 1.58881887e+01 + 1.58455303e+01 1.58029861e+01 1.57605560e+01 1.57182397e+01 1.56760367e+01 + 1.56339469e+01 1.55919699e+01 1.55501054e+01 1.55083531e+01 1.54667128e+01 + 1.54251840e+01 1.53837666e+01 1.53424603e+01 1.53012646e+01 1.52601794e+01 + 1.52192044e+01 1.51783392e+01 1.51375835e+01 1.50969371e+01 1.50563997e+01 + 1.50159710e+01 1.49756507e+01 1.49354385e+01 1.48953341e+01 1.48553372e+01 + 1.48154476e+01 1.47756649e+01 1.47359889e+01 1.46964193e+01 1.46569558e+01 + 1.46175982e+01 1.45783460e+01 1.45391992e+01 1.45001573e+01 1.44612201e+01 + 1.44221013e+01 1.43823077e+01 1.43418365e+01 1.43006939e+01 1.42588863e+01 + 1.42164199e+01 1.41733013e+01 1.41295367e+01 1.40851327e+01 1.40400959e+01 + 1.39944327e+01 1.39481499e+01 1.39012541e+01 1.38537520e+01 1.38056503e+01 + 1.37569558e+01 1.37076754e+01 1.36578159e+01 1.36073842e+01 1.35563871e+01 + 1.35048318e+01 1.34527252e+01 1.34000743e+01 1.33468861e+01 1.32931679e+01 + 1.32389266e+01 1.31841694e+01 1.31289036e+01 1.30731363e+01 1.30168747e+01 + 1.29601261e+01 1.29028978e+01 1.28451971e+01 1.27870312e+01 1.27284076e+01 + 1.26693335e+01 1.26098164e+01 1.25498637e+01 1.24894827e+01 1.24286808e+01 + 1.23674656e+01 1.23058445e+01 1.22438250e+01 1.21814144e+01 1.21186203e+01 + 1.20554503e+01 1.19919118e+01 1.19280122e+01 1.18637593e+01 1.17991604e+01 + 1.17342231e+01 1.16689549e+01 1.16033634e+01 1.15374562e+01 1.14712406e+01 + 1.14047244e+01 1.13379151e+01 1.12708201e+01 1.12034471e+01 1.11358035e+01 + 1.10678969e+01 1.09997348e+01 1.09313248e+01 1.08626743e+01 1.07937909e+01 + 1.07246820e+01 1.06553552e+01 1.05858180e+01 1.05160777e+01 1.04461419e+01 + 1.03760180e+01 1.03057134e+01 1.02352356e+01 1.01645919e+01 1.00937898e+01 + 1.00228366e+01 9.95173971e+00 9.88050638e+00 9.80914398e+00 9.73765979e+00 + 9.66606109e+00 9.59435515e+00 9.52254919e+00 9.45065043e+00 9.37866605e+00 + 9.30660322e+00 9.23446907e+00 9.16227073e+00 9.09001528e+00 9.01770977e+00 + 8.94536125e+00 8.87297672e+00 8.80056316e+00 8.72812750e+00 8.65567668e+00 + 8.58321756e+00 8.51075702e+00 8.43830186e+00 8.36585889e+00 8.29343485e+00 + 8.22103646e+00 8.14867042e+00 8.07634337e+00 8.00406193e+00 7.93183268e+00 + 7.85966216e+00 7.78755688e+00 7.71552329e+00 7.64356784e+00 7.57169690e+00 + 7.49991683e+00 7.42823393e+00 7.35665448e+00 7.28518468e+00 7.21383074e+00 + 7.14259879e+00 7.07149492e+00 7.00052520e+00 6.92969562e+00 6.85901217e+00 + 6.78848076e+00 6.71810726e+00 6.64789751e+00 6.57785729e+00 6.50799234e+00 + 6.43830834e+00 6.36881094e+00 6.29950573e+00 6.23039827e+00 6.16149404e+00 + 6.09279849e+00 6.02431702e+00 5.95605499e+00 5.88801768e+00 5.82021035e+00 + 5.75263820e+00 5.68530636e+00 5.61821994e+00 5.55138397e+00 5.48480344e+00 + 5.41848329e+00 5.35242840e+00 5.28664361e+00 5.22113368e+00 5.15590335e+00 + 5.09095728e+00 5.02630009e+00 4.96193633e+00 4.89787051e+00 4.83410709e+00 + 4.77065045e+00 4.70750493e+00 4.64467483e+00 4.58216436e+00 4.51997769e+00 + 4.45811895e+00 4.39659218e+00 4.33540140e+00 4.27455054e+00 4.21404350e+00 + 4.15388409e+00 4.09407611e+00 4.03462325e+00 3.97552918e+00 3.91679750e+00 + 3.85843175e+00 3.80043541e+00 3.74281191e+00 3.68556461e+00 3.62869683e+00 + 3.57221182e+00 3.51611277e+00 3.46040280e+00 3.40508500e+00 3.35016239e+00 + 3.29563791e+00 3.24151448e+00 3.18779492e+00 3.13448202e+00 3.08157850e+00 + 3.02908703e+00 2.97701021e+00 2.92535059e+00 2.87411065e+00 2.82329282e+00 + 2.77289947e+00 2.72293291e+00 2.67339540e+00 2.62428912e+00 2.57561621e+00 + 2.52737875e+00 2.47957875e+00 2.43221817e+00 2.38529892e+00 2.33882283e+00 + 2.29279169e+00 2.24720723e+00 2.20207111e+00 2.15738494e+00 2.11315028e+00 + 2.06936862e+00 2.02604139e+00 1.98316998e+00 1.94075571e+00 1.89879985e+00 + 1.85730359e+00 1.81626811e+00 1.77569447e+00 1.73558374e+00 1.69593688e+00 + 1.65675483e+00 1.61803846e+00 1.57978857e+00 1.54200593e+00 1.50469123e+00 + 1.46784514e+00 1.43146824e+00 1.39556106e+00 1.36012410e+00 1.32515778e+00 + 1.29066248e+00 1.25663851e+00 1.22308616e+00 1.19000563e+00 1.15739708e+00 + 1.12526062e+00 1.09359631e+00 1.06240415e+00 1.03168410e+00 1.00143606e+00 + 9.71659862e-01 9.42355321e-01 9.13522177e-01 8.85160127e-01 8.57268818e-01 + 8.29847844e-01 8.02896752e-01 7.76415039e-01 7.50402153e-01 7.24857492e-01 + 6.99780408e-01 6.75170202e-01 6.51026130e-01 6.27347399e-01 6.04133170e-01 + 5.81382555e-01 5.59094623e-01 5.37268394e-01 5.15902844e-01 4.94996902e-01 + 4.74549455e-01 4.54559343e-01 4.35025362e-01 4.15946264e-01 3.97320759e-01 + 3.79147513e-01 3.61425148e-01 3.44152245e-01 3.27327344e-01 3.10948942e-01 + 2.95015494e-01 2.79525416e-01 2.64477082e-01 2.49868829e-01 2.35698950e-01 + 2.21965702e-01 2.08667302e-01 1.95801929e-01 1.83367724e-01 1.71362791e-01 + 1.59785195e-01 1.48632967e-01 1.37904098e-01 1.27596548e-01 1.17708236e-01 + 1.08237051e-01 9.91808451e-02 9.05374353e-02 8.23046065e-02 7.44801094e-02 + 6.70616623e-02 6.00469508e-02 5.34336286e-02 4.72193177e-02 4.14016091e-02 + 3.59780630e-02 3.09462095e-02 2.63035487e-02 2.20475516e-02 1.81756600e-02 + 1.46852874e-02 1.15738194e-02 8.83861364e-03 6.47700104e-03 4.48628566e-03 + 2.86374536e-03 1.60663225e-03 7.12173109e-04 1.77569856e-04 0.00000000e+00 + 1.65968286e-01 1.65968286e-01 1.67501954e-01 1.69381845e-01 1.71282685e-01 + 1.73204702e-01 1.75148130e-01 1.77113201e-01 1.79100155e-01 1.81109230e-01 + 1.83140669e-01 1.85194716e-01 1.87271619e-01 1.89371627e-01 1.91494994e-01 + 1.93641974e-01 1.95812825e-01 1.98007809e-01 2.00227187e-01 2.02471227e-01 + 2.04740197e-01 2.07034369e-01 2.09354018e-01 2.11699420e-01 2.14070856e-01 + 2.16468609e-01 2.18892965e-01 2.21344213e-01 2.23822646e-01 2.26328558e-01 + 2.28862247e-01 2.31424015e-01 2.34014167e-01 2.36633008e-01 2.39280850e-01 + 2.41958008e-01 2.44664796e-01 2.47401537e-01 2.50168554e-01 2.52966173e-01 + 2.55794724e-01 2.58654541e-01 2.61545961e-01 2.64469325e-01 2.67424975e-01 + 2.70413260e-01 2.73434529e-01 2.76489138e-01 2.79577445e-01 2.82699810e-01 + 2.85856598e-01 2.89048180e-01 2.92274926e-01 2.95537214e-01 2.98835423e-01 + 3.02169937e-01 3.05541143e-01 3.08949433e-01 3.12395202e-01 3.15878849e-01 + 3.19400778e-01 3.22961395e-01 3.26561111e-01 3.30200343e-01 3.33879508e-01 + 3.37599030e-01 3.41359337e-01 3.45160859e-01 3.49004034e-01 3.52889300e-01 + 3.56817102e-01 3.60787889e-01 3.64802114e-01 3.68860232e-01 3.72962707e-01 + 3.77110004e-01 3.81302594e-01 3.85540951e-01 3.89825554e-01 3.94156889e-01 + 3.98535442e-01 4.02961708e-01 4.07436184e-01 4.11959373e-01 4.16531781e-01 + 4.21153920e-01 4.25826307e-01 4.30549463e-01 4.35323915e-01 4.40150193e-01 + 4.45028834e-01 4.49960377e-01 4.54945369e-01 4.59984360e-01 4.65077907e-01 + 4.70226569e-01 4.75430912e-01 4.80691507e-01 4.86008931e-01 4.91383763e-01 + 4.96816591e-01 5.02308005e-01 5.07858602e-01 5.13468983e-01 5.19139757e-01 + 5.24871535e-01 5.30664934e-01 5.36520578e-01 5.42439096e-01 5.48421119e-01 + 5.54467289e-01 5.60578249e-01 5.66754649e-01 5.72997145e-01 5.79306397e-01 + 5.85683073e-01 5.92127843e-01 5.98641385e-01 6.05224382e-01 6.11877524e-01 + 6.18601503e-01 6.25397020e-01 6.32264781e-01 6.39205495e-01 6.46219881e-01 + 6.53308659e-01 6.60472559e-01 6.67712313e-01 6.75028662e-01 6.82422349e-01 + 6.89894127e-01 6.97444750e-01 7.05074982e-01 7.12785590e-01 7.20577348e-01 + 7.28451035e-01 7.36407436e-01 7.44447341e-01 7.52571547e-01 7.60780856e-01 + 7.69076076e-01 7.77458020e-01 7.85927507e-01 7.94485362e-01 8.03132416e-01 + 8.11869504e-01 8.20697469e-01 8.29617157e-01 8.38629421e-01 8.47735121e-01 + 8.56935119e-01 8.66230285e-01 8.75621495e-01 8.85109628e-01 8.94695572e-01 + 9.04380216e-01 9.14164458e-01 9.24049199e-01 9.34035347e-01 9.44123815e-01 + 9.54315519e-01 9.64611384e-01 9.75012336e-01 9.85519310e-01 9.96133242e-01 + 1.00685508e+00 1.01768576e+00 1.02862625e+00 1.03967749e+00 1.05084046e+00 + 1.06211612e+00 1.07350544e+00 1.08500939e+00 1.09662896e+00 1.10836513e+00 + 1.12021890e+00 1.13219124e+00 1.14428316e+00 1.15649566e+00 1.16882975e+00 + 1.18128643e+00 1.19386672e+00 1.20657163e+00 1.21940218e+00 1.23235939e+00 + 1.24544429e+00 1.25865790e+00 1.27200127e+00 1.28547542e+00 1.29908139e+00 + 1.31282021e+00 1.32669294e+00 1.34070062e+00 1.35484429e+00 1.36912500e+00 + 1.38354380e+00 1.39810174e+00 1.41279987e+00 1.42763926e+00 1.44262095e+00 + 1.45774600e+00 1.47301546e+00 1.48843041e+00 1.50399188e+00 1.51970095e+00 + 1.53555866e+00 1.55156608e+00 1.56772426e+00 1.58403426e+00 1.60049713e+00 + 1.61711393e+00 1.63388570e+00 1.65081351e+00 1.66789840e+00 1.68514141e+00 + 1.70254358e+00 1.72010597e+00 1.73782961e+00 1.75571552e+00 1.77376475e+00 + 1.79197832e+00 1.81035726e+00 1.82890257e+00 1.84761528e+00 1.86649640e+00 + 1.88554692e+00 1.90476784e+00 1.92416016e+00 1.94372486e+00 1.96346292e+00 + 1.98337531e+00 2.00346299e+00 2.02372692e+00 2.04416804e+00 2.06478730e+00 + 2.08558562e+00 2.10656392e+00 2.12772312e+00 2.14906411e+00 2.17058779e+00 + 2.19229503e+00 2.21418670e+00 2.23626366e+00 2.25852674e+00 2.28097679e+00 + 2.30361461e+00 2.32644102e+00 2.34945680e+00 2.37266272e+00 2.39605955e+00 + 2.41964804e+00 2.44342891e+00 2.46740287e+00 2.49157062e+00 2.51593285e+00 + 2.54049020e+00 2.56524333e+00 2.59019286e+00 2.61533938e+00 2.64068350e+00 + 2.66622577e+00 2.69196673e+00 2.71790690e+00 2.74404680e+00 2.77038689e+00 + 2.79692763e+00 2.82366945e+00 2.85061275e+00 2.87775793e+00 2.90510534e+00 + 2.93265530e+00 2.96040813e+00 2.98836411e+00 3.01652347e+00 3.04488646e+00 + 3.07345326e+00 3.10222404e+00 3.13119894e+00 3.16037805e+00 3.18976147e+00 + 3.21934922e+00 3.24914133e+00 3.27913778e+00 3.30933850e+00 3.33974343e+00 + 3.37035242e+00 3.40116534e+00 3.43218198e+00 3.46340213e+00 3.49482552e+00 + 3.52645185e+00 3.55828079e+00 3.59031197e+00 3.62254496e+00 3.65497933e+00 + 3.68761457e+00 3.72045016e+00 3.75348554e+00 3.78672008e+00 3.82015313e+00 + 3.85378401e+00 3.88761196e+00 3.92163622e+00 3.95585596e+00 3.99027032e+00 + 4.02487837e+00 4.05967918e+00 4.09467173e+00 4.12985498e+00 4.16522784e+00 + 4.20078917e+00 4.23653779e+00 4.27247247e+00 4.30859194e+00 4.34489485e+00 + 4.38137985e+00 4.41804551e+00 4.45489037e+00 4.49191289e+00 4.52911153e+00 + 4.56648465e+00 4.60403061e+00 4.64174767e+00 4.67963408e+00 4.71768803e+00 + 4.75590765e+00 4.79429103e+00 4.83283620e+00 4.87154114e+00 4.91040381e+00 + 4.94942207e+00 4.98859378e+00 5.02791670e+00 5.06738858e+00 5.10700710e+00 + 5.14676990e+00 5.18667457e+00 5.22671863e+00 5.26689957e+00 5.30721483e+00 + 5.34766180e+00 5.38823781e+00 5.42894016e+00 5.46976609e+00 5.51071278e+00 + 5.55177738e+00 5.59295700e+00 5.63424868e+00 5.67564943e+00 5.71715620e+00 + 5.75876591e+00 5.80047542e+00 5.84228156e+00 5.88418111e+00 5.92617080e+00 + 5.96824732e+00 6.01040733e+00 6.05264743e+00 6.09496419e+00 6.13735413e+00 + 6.17981376e+00 6.22233950e+00 6.26492779e+00 6.30757498e+00 6.35027743e+00 + 6.39303142e+00 6.43583324e+00 6.47867912e+00 6.52156525e+00 6.56448781e+00 + 6.60744295e+00 6.65042676e+00 6.69343534e+00 6.73646474e+00 6.77951098e+00 + 6.82257007e+00 6.86563800e+00 6.90871071e+00 6.95178414e+00 6.99485420e+00 + 7.03791679e+00 7.08096779e+00 7.12400304e+00 7.16701841e+00 7.21000970e+00 + 7.25297275e+00 7.29590336e+00 7.33879731e+00 7.38165039e+00 7.42445838e+00 + 7.46721705e+00 7.50992216e+00 7.55256947e+00 7.59515474e+00 7.63767373e+00 + 7.68012218e+00 7.72249588e+00 7.76479056e+00 7.80700201e+00 7.84912598e+00 + 7.89115827e+00 7.93309466e+00 7.97493094e+00 8.01666293e+00 8.05828645e+00 + 8.09979734e+00 8.14119143e+00 8.18246462e+00 8.22361278e+00 8.26463181e+00 + 8.30551766e+00 8.34626626e+00 8.38687359e+00 8.42733566e+00 8.46764848e+00 + 8.50780811e+00 8.54781063e+00 8.58765216e+00 8.62732884e+00 8.66683685e+00 + 8.70617239e+00 8.74533171e+00 8.78431109e+00 8.82310687e+00 8.86171538e+00 + 8.90013304e+00 8.93835627e+00 8.97638157e+00 9.01420545e+00 9.05182449e+00 + 9.08923530e+00 9.12643453e+00 9.16341889e+00 9.20018514e+00 9.23673009e+00 + 9.27305057e+00 9.30914350e+00 9.34500584e+00 9.38063458e+00 9.41602679e+00 + 9.45117958e+00 9.48609012e+00 9.52075564e+00 9.55517340e+00 9.58934075e+00 + 9.62325508e+00 9.65691384e+00 9.69031453e+00 9.72345472e+00 9.75633204e+00 + 9.78894416e+00 9.82128884e+00 9.85336387e+00 9.88516712e+00 9.91669651e+00 + 9.94795003e+00 9.97892573e+00 1.00096217e+01 1.00400361e+01 1.00701673e+01 + 1.01000134e+01 1.01295728e+01 1.01588440e+01 1.01878254e+01 1.02165155e+01 + 1.02449131e+01 1.02730167e+01 1.03008250e+01 1.03283369e+01 1.03555512e+01 + 1.03824668e+01 1.04090827e+01 1.04353979e+01 1.04614115e+01 1.04871227e+01 + 1.05125307e+01 1.05376347e+01 1.05624341e+01 1.05869282e+01 1.06111166e+01 + 1.06349988e+01 1.06585742e+01 1.06818426e+01 1.07048035e+01 1.07274568e+01 + 1.07498023e+01 1.07718397e+01 1.07935690e+01 1.08149902e+01 1.08361032e+01 + 1.08569082e+01 1.08774051e+01 1.08975943e+01 1.09174759e+01 1.09370501e+01 + 1.09563174e+01 1.09752780e+01 1.09939325e+01 1.10122811e+01 1.10303246e+01 + 1.10480633e+01 1.10654980e+01 1.10826292e+01 1.10994577e+01 1.11159841e+01 + 1.11322093e+01 1.11481341e+01 1.11637593e+01 1.11790858e+01 1.11941146e+01 + 1.12088466e+01 1.12232829e+01 1.12374245e+01 1.12512725e+01 1.12648279e+01 + 1.12780921e+01 1.12910660e+01 1.13037511e+01 1.13161484e+01 1.13282594e+01 + 1.13400853e+01 1.13516274e+01 1.13628872e+01 1.13738660e+01 1.13845653e+01 + 1.13949865e+01 1.14051310e+01 1.14150005e+01 1.14245965e+01 1.14339203e+01 + 1.14429738e+01 1.14517584e+01 1.14602758e+01 1.14685276e+01 1.14765154e+01 + 1.14842410e+01 1.14917060e+01 1.14989121e+01 1.15058611e+01 1.15125547e+01 + 1.15189947e+01 1.15251829e+01 1.15311209e+01 1.15368107e+01 1.15422540e+01 + 1.15474527e+01 1.15524086e+01 1.15571235e+01 1.15615993e+01 1.15658378e+01 + 1.15698410e+01 1.15736107e+01 1.15771488e+01 1.15804572e+01 1.15835378e+01 + 1.15863925e+01 1.15890232e+01 1.15914318e+01 1.15936202e+01 1.15955905e+01 + 1.15973444e+01 1.15988840e+01 1.16002111e+01 1.16013277e+01 1.16022357e+01 + 1.16029371e+01 1.16034338e+01 1.16037276e+01 1.16038207e+01 1.16037148e+01 + 1.16034120e+01 1.16029141e+01 1.16022230e+01 1.16013408e+01 1.16002692e+01 + 1.15990103e+01 1.15975659e+01 1.15959380e+01 1.15941284e+01 1.15921390e+01 + 1.15899718e+01 1.15876286e+01 1.15851113e+01 1.15824217e+01 1.15795618e+01 + 1.15765334e+01 1.15733384e+01 1.15699786e+01 1.15664558e+01 1.15627718e+01 + 1.15589286e+01 1.15549279e+01 1.15507715e+01 1.15464612e+01 1.15419987e+01 + 1.15373860e+01 1.15326247e+01 1.15277166e+01 1.15226635e+01 1.15174671e+01 + 1.15121291e+01 1.15066512e+01 1.15010352e+01 1.14952827e+01 1.14893955e+01 + 1.14833752e+01 1.14772235e+01 1.14709421e+01 1.14645325e+01 1.14579965e+01 + 1.14513356e+01 1.14445514e+01 1.14376456e+01 1.14306198e+01 1.14234754e+01 + 1.14162142e+01 1.14088375e+01 1.14013471e+01 1.13937443e+01 1.13860308e+01 + 1.13782080e+01 1.13702775e+01 1.13622406e+01 1.13540989e+01 1.13458538e+01 + 1.13375068e+01 1.13290592e+01 1.13205127e+01 1.13118684e+01 1.13031278e+01 + 1.12942924e+01 1.12853635e+01 1.12763423e+01 1.12672304e+01 1.12580290e+01 + 1.12487394e+01 1.12393630e+01 1.12299010e+01 1.12203547e+01 1.12107255e+01 + 1.12010145e+01 1.11912231e+01 1.11813524e+01 1.11714036e+01 1.11613781e+01 + 1.11512770e+01 1.11411014e+01 1.11308526e+01 1.11205317e+01 1.11101399e+01 + 1.10996784e+01 1.10891481e+01 1.10785504e+01 1.10678862e+01 1.10571567e+01 + 1.10463630e+01 1.10355060e+01 1.10245870e+01 1.10136069e+01 1.10025668e+01 + 1.09914677e+01 1.09803106e+01 1.09690966e+01 1.09578266e+01 1.09465015e+01 + 1.09351225e+01 1.09236904e+01 1.09122062e+01 1.09006708e+01 1.08890852e+01 + 1.08774503e+01 1.08657669e+01 1.08540361e+01 1.08422586e+01 1.08304354e+01 + 1.08185673e+01 1.08066552e+01 1.07947000e+01 1.07827024e+01 1.07706633e+01 + 1.07585835e+01 1.07464638e+01 1.07343051e+01 1.07221081e+01 1.07098735e+01 + 1.06976023e+01 1.06852951e+01 1.06729526e+01 1.06605757e+01 1.06481651e+01 + 1.06357214e+01 1.06232455e+01 1.06107379e+01 1.05981995e+01 1.05856309e+01 + 1.05730327e+01 1.05604057e+01 1.05477506e+01 1.05350679e+01 1.05223583e+01 + 1.05096226e+01 1.04968612e+01 1.04840748e+01 1.04712641e+01 1.04584297e+01 + 1.04455721e+01 1.04326919e+01 1.04197898e+01 1.04068663e+01 1.03939220e+01 + 1.03809575e+01 1.03679732e+01 1.03549698e+01 1.03419478e+01 1.03289077e+01 + 1.03158501e+01 1.03027754e+01 1.02896843e+01 1.02765771e+01 1.02634544e+01 + 1.02503168e+01 1.02371646e+01 1.02239984e+01 1.02108186e+01 1.01976257e+01 + 1.01844202e+01 1.01712025e+01 1.01579730e+01 1.01447323e+01 1.01314808e+01 + 1.01182188e+01 1.01049468e+01 1.00916652e+01 1.00783745e+01 1.00650751e+01 + 1.00517673e+01 1.00384515e+01 1.00251282e+01 1.00117977e+01 9.99846039e+00 + 9.98511668e+00 9.97176692e+00 9.95841148e+00 9.94505072e+00 9.93168499e+00 + 9.91831464e+00 9.90494002e+00 9.89156146e+00 9.87817931e+00 9.86479389e+00 + 9.85140552e+00 9.83801454e+00 9.82462125e+00 9.81122596e+00 9.79782899e+00 + 9.78443064e+00 9.77103121e+00 9.75763099e+00 9.74423026e+00 9.73082933e+00 + 9.71742846e+00 9.70402794e+00 9.69062803e+00 9.67722902e+00 9.66383116e+00 + 9.65043471e+00 9.63703994e+00 9.62364710e+00 9.61025643e+00 9.59686819e+00 + 9.58348261e+00 9.57009994e+00 9.55672041e+00 9.54334426e+00 9.52997170e+00 + 9.51660298e+00 9.50323830e+00 9.48987788e+00 9.47652195e+00 9.46317071e+00 + 9.44982438e+00 9.43648315e+00 9.42314723e+00 9.40981681e+00 9.39649211e+00 + 9.38317329e+00 9.36986057e+00 9.35655411e+00 9.34325412e+00 9.32996076e+00 + 9.31667422e+00 9.30339467e+00 9.29012228e+00 9.27685723e+00 9.26359969e+00 + 9.25034980e+00 9.23710775e+00 9.22387369e+00 9.21064777e+00 9.19743015e+00 + 9.18422098e+00 9.17102040e+00 9.15782858e+00 9.14464565e+00 9.13147175e+00 + 9.11830703e+00 9.10515161e+00 9.09200565e+00 9.07886926e+00 9.06574258e+00 + 9.05262574e+00 9.03951887e+00 9.02642209e+00 9.01333552e+00 9.00025928e+00 + 8.98719349e+00 8.97413827e+00 8.96109373e+00 8.94805998e+00 8.93503713e+00 + 8.92202530e+00 8.90902459e+00 8.89603510e+00 8.88305693e+00 8.87009019e+00 + 8.85713498e+00 8.84419139e+00 8.83125952e+00 8.81833946e+00 8.80543131e+00 + 8.79253516e+00 8.77965109e+00 8.76677920e+00 8.75391957e+00 8.74107228e+00 + 8.72823741e+00 8.71541505e+00 8.70260529e+00 8.68980818e+00 8.67702382e+00 + 8.66425228e+00 8.65149363e+00 8.63874794e+00 8.62601529e+00 8.61329575e+00 + 8.60058938e+00 8.58789625e+00 8.57521642e+00 8.56254997e+00 8.54989695e+00 + 8.53725743e+00 8.52463147e+00 8.51201913e+00 8.49942046e+00 8.48683552e+00 + 8.47426437e+00 8.46170706e+00 8.44916365e+00 8.43663420e+00 8.42411874e+00 + 8.41161733e+00 8.39913003e+00 8.38665687e+00 8.37419791e+00 8.36175319e+00 + 8.34932276e+00 8.33690667e+00 8.32450494e+00 8.31211764e+00 8.29974479e+00 + 8.28738645e+00 8.27504264e+00 8.26271341e+00 8.25039879e+00 8.23809882e+00 + 8.22581354e+00 8.21354298e+00 8.20128718e+00 8.18904617e+00 8.17681998e+00 + 8.16460864e+00 8.15241219e+00 8.14023065e+00 8.12806405e+00 8.11591243e+00 + 8.10377580e+00 8.09165420e+00 8.07954766e+00 8.06745619e+00 8.05537982e+00 + 8.04331859e+00 8.03127250e+00 8.01924158e+00 8.00722586e+00 7.99522536e+00 + 7.98324009e+00 7.97127008e+00 7.95931535e+00 7.94737591e+00 7.93545178e+00 + 7.92354299e+00 7.91164954e+00 7.89977146e+00 7.88790876e+00 7.87606145e+00 + 7.86422956e+00 7.85241308e+00 7.84061205e+00 7.82882646e+00 7.81705634e+00 + 7.80530170e+00 7.79356254e+00 7.78183887e+00 7.77013072e+00 7.75843808e+00 + 7.74676097e+00 7.73509939e+00 7.72345336e+00 7.71182288e+00 7.70020796e+00 + 7.68860861e+00 7.67702484e+00 7.66545664e+00 7.65390403e+00 7.64236701e+00 + 7.63084558e+00 7.61933976e+00 7.60784954e+00 7.59637493e+00 7.58491593e+00 + 7.57347255e+00 7.56204478e+00 7.55063263e+00 7.53923611e+00 7.52785521e+00 + 7.51648993e+00 7.50514027e+00 7.49380625e+00 7.48248784e+00 7.47118506e+00 + 7.45989791e+00 7.44862638e+00 7.43737047e+00 7.42613019e+00 7.41490552e+00 + 7.40369647e+00 7.39250303e+00 7.38132520e+00 7.37016298e+00 7.35901637e+00 + 7.34788536e+00 7.33676995e+00 7.32567012e+00 7.31458589e+00 7.30351724e+00 + 7.29246417e+00 7.28142668e+00 7.27040475e+00 7.25939839e+00 7.24840758e+00 + 7.23743232e+00 7.22647260e+00 7.21552843e+00 7.20459978e+00 7.19368666e+00 + 7.18278905e+00 7.17190695e+00 7.16104035e+00 7.15018924e+00 7.13935361e+00 + 7.12853346e+00 7.11772878e+00 7.10693956e+00 7.09616578e+00 7.08540745e+00 + 7.07466454e+00 7.06393706e+00 7.05322498e+00 7.04252831e+00 7.03184703e+00 + 7.02118113e+00 7.01053060e+00 6.99989543e+00 6.98927560e+00 6.97867112e+00 + 6.96808196e+00 6.95750811e+00 6.94694957e+00 6.93640632e+00 6.92587836e+00 + 6.91536566e+00 6.90486821e+00 6.89438602e+00 6.88391905e+00 6.87346730e+00 + 6.86303076e+00 6.85260942e+00 6.84220325e+00 6.83181225e+00 6.82143641e+00 + 6.81107571e+00 6.80073014e+00 6.79039969e+00 6.78008434e+00 6.76978407e+00 + 6.75949888e+00 6.74922875e+00 6.73897367e+00 6.72873362e+00 6.71850858e+00 + 6.70829855e+00 6.69810351e+00 6.68792344e+00 6.67775834e+00 6.66760818e+00 + 6.65747295e+00 6.64735264e+00 6.63724722e+00 6.62715669e+00 6.61708104e+00 + 6.60702024e+00 6.59697427e+00 6.58694314e+00 6.57692681e+00 6.56692528e+00 + 6.55693852e+00 6.54696653e+00 6.53700928e+00 6.52706676e+00 6.51713896e+00 + 6.50722585e+00 6.49732743e+00 6.48744368e+00 6.47757458e+00 6.46772011e+00 + 6.45788025e+00 6.44805500e+00 6.43824434e+00 6.42844824e+00 6.41866669e+00 + 6.40889968e+00 6.39914719e+00 6.38940920e+00 6.37968570e+00 6.36997666e+00 + 6.36028208e+00 6.35060193e+00 6.34093620e+00 6.33128487e+00 6.32164792e+00 + 6.31202534e+00 6.30241711e+00 6.29282321e+00 6.28324363e+00 6.27367834e+00 + 6.26412734e+00 6.25459059e+00 6.24506810e+00 6.23555983e+00 6.22606577e+00 + 6.21658591e+00 6.20712022e+00 6.19766869e+00 6.18823131e+00 6.17880804e+00 + 6.16939888e+00 6.16000381e+00 6.15062281e+00 6.14125587e+00 6.13190295e+00 + 6.12256406e+00 6.11323916e+00 6.10392825e+00 6.09463130e+00 6.08534829e+00 + 6.07607921e+00 6.06682405e+00 6.05758277e+00 6.04835537e+00 6.03914183e+00 + 6.02994212e+00 6.02075624e+00 6.01158416e+00 6.00242586e+00 5.99328133e+00 + 5.98415054e+00 5.97503349e+00 5.96593015e+00 5.95684050e+00 5.94776453e+00 + 5.93870221e+00 5.92965354e+00 5.92061849e+00 5.91159704e+00 5.90258917e+00 + 5.89359488e+00 5.88461413e+00 5.87564691e+00 5.86669320e+00 5.85775299e+00 + 5.84882626e+00 5.83991298e+00 5.83101314e+00 5.82212673e+00 5.81325371e+00 + 5.80439408e+00 5.79554782e+00 5.78671491e+00 5.77789533e+00 5.76908906e+00 + 5.76029608e+00 5.75151638e+00 5.74274993e+00 5.73399672e+00 5.72525674e+00 + 5.71652996e+00 5.70781636e+00 5.69911593e+00 5.69042864e+00 5.68175449e+00 + 5.67309344e+00 5.66444549e+00 5.65581061e+00 5.64718879e+00 5.63858001e+00 + 5.62998425e+00 5.62140149e+00 5.61283171e+00 5.60427490e+00 5.59573104e+00 + 5.58720011e+00 5.57868208e+00 5.57017695e+00 5.56168469e+00 5.55320529e+00 + 5.54473873e+00 5.53628499e+00 5.52784405e+00 5.51941589e+00 5.51100050e+00 + 5.50259785e+00 5.49420794e+00 5.48583073e+00 5.47746622e+00 5.46911438e+00 + 5.46077521e+00 5.45244866e+00 5.44413474e+00 5.43583343e+00 5.42754469e+00 + 5.41926853e+00 5.41100491e+00 5.40275382e+00 5.39451524e+00 5.38628916e+00 + 5.37807556e+00 5.36987441e+00 5.36168571e+00 5.35350943e+00 5.34534555e+00 + 5.33719406e+00 5.32905493e+00 5.32092816e+00 5.31281372e+00 5.30471160e+00 + 5.29662178e+00 5.28854423e+00 5.28047895e+00 5.27242591e+00 5.26438509e+00 + 5.25635649e+00 5.24834007e+00 5.24033583e+00 5.23234374e+00 5.22436379e+00 + 5.21639596e+00 5.20844023e+00 5.20049659e+00 5.19256501e+00 5.18464548e+00 + 5.17673799e+00 5.16884250e+00 5.16095902e+00 5.15308751e+00 5.14522796e+00 + 5.13738036e+00 5.12954468e+00 5.12172091e+00 5.11390904e+00 5.10610903e+00 + 5.09832088e+00 5.09054457e+00 5.08278008e+00 5.07502740e+00 5.06728650e+00 + 5.05955737e+00 5.05184000e+00 5.04413435e+00 5.03644043e+00 5.02875820e+00 + 5.02108766e+00 5.01342878e+00 5.00578155e+00 4.99814595e+00 4.99052196e+00 + 4.98290957e+00 4.97530876e+00 4.96771951e+00 4.96014181e+00 4.95257563e+00 + 4.94502096e+00 4.93747779e+00 4.92994610e+00 4.92242586e+00 4.91491707e+00 + 4.90741970e+00 4.89993374e+00 4.89245917e+00 4.88499598e+00 4.87754414e+00 + 4.87010365e+00 4.86267447e+00 4.85525661e+00 4.84785004e+00 4.84045474e+00 + 4.83307069e+00 4.82569789e+00 4.81833631e+00 4.81098593e+00 4.80364675e+00 + 4.79631873e+00 4.78900188e+00 4.78169616e+00 4.77440157e+00 4.76711808e+00 + 4.75984568e+00 4.75258436e+00 4.74533409e+00 4.73809486e+00 4.73086666e+00 + 4.72364946e+00 4.71644325e+00 4.70924802e+00 4.70206374e+00 4.69489041e+00 + 4.68772800e+00 4.68057649e+00 4.67343589e+00 4.66630615e+00 4.65918728e+00 + 4.65207925e+00 4.64498204e+00 4.63789565e+00 4.63082005e+00 4.62375523e+00 + 4.61670117e+00 4.60965786e+00 4.60262527e+00 4.59560340e+00 4.58859223e+00 + 4.58159174e+00 4.57460191e+00 4.56762274e+00 4.56065419e+00 4.55369627e+00 + 4.54674894e+00 4.53981220e+00 4.53288603e+00 4.52597042e+00 4.51906534e+00 + 4.51217078e+00 4.50528673e+00 4.49841317e+00 4.49155008e+00 4.48469745e+00 + 4.47785527e+00 4.47102351e+00 4.46420216e+00 4.45739121e+00 4.45059063e+00 + 4.44380043e+00 4.43702057e+00 4.43025104e+00 4.42349183e+00 4.41674292e+00 + 4.41000430e+00 4.40327595e+00 4.39655786e+00 4.38985000e+00 4.38315237e+00 + 4.37646495e+00 4.36978772e+00 4.36312067e+00 4.35646378e+00 4.34981100e+00 + 4.34313007e+00 4.33641641e+00 4.32967019e+00 4.32289160e+00 4.31608082e+00 + 4.30923804e+00 4.30236343e+00 4.29545719e+00 4.28851949e+00 4.28155052e+00 + 4.27455047e+00 4.26751952e+00 4.26045786e+00 4.25336567e+00 4.24624314e+00 + 4.23909045e+00 4.23190779e+00 4.22469535e+00 4.21745331e+00 4.21018186e+00 + 4.20288119e+00 4.19555148e+00 4.18819292e+00 4.18080570e+00 4.17339000e+00 + 4.16594602e+00 4.15847393e+00 4.15097394e+00 4.14344622e+00 4.13589097e+00 + 4.12830837e+00 4.12069861e+00 4.11306189e+00 4.10539838e+00 4.09770828e+00 + 4.08999178e+00 4.08224906e+00 4.07448032e+00 4.06668575e+00 4.05886552e+00 + 4.05101984e+00 4.04314890e+00 4.03525287e+00 4.02733196e+00 4.01938635e+00 + 4.01141623e+00 4.00342179e+00 3.99540322e+00 3.98736072e+00 3.97929446e+00 + 3.97120464e+00 3.96309146e+00 3.95495510e+00 3.94679575e+00 3.93861359e+00 + 3.93040883e+00 3.92218166e+00 3.91393225e+00 3.90566080e+00 3.89736751e+00 + 3.88905256e+00 3.88071614e+00 3.87235844e+00 3.86397966e+00 3.85557998e+00 + 3.84715959e+00 3.83871868e+00 3.83025744e+00 3.82177607e+00 3.81327475e+00 + 3.80475367e+00 3.79621303e+00 3.78765300e+00 3.77907379e+00 3.77047558e+00 + 3.76185855e+00 3.75322291e+00 3.74456884e+00 3.73589653e+00 3.72720616e+00 + 3.71849793e+00 3.70977203e+00 3.70102864e+00 3.69226796e+00 3.68349016e+00 + 3.67469545e+00 3.66588401e+00 3.65705603e+00 3.64821169e+00 3.63935119e+00 + 3.63047471e+00 3.62158245e+00 3.61267458e+00 3.60375129e+00 3.59481278e+00 + 3.58585923e+00 3.57689083e+00 3.56790776e+00 3.55891022e+00 3.54989838e+00 + 3.54087244e+00 3.53183258e+00 3.52277899e+00 3.51371185e+00 3.50463135e+00 + 3.49553767e+00 3.48643101e+00 3.47731154e+00 3.46817945e+00 3.45903493e+00 + 3.44987815e+00 3.44070932e+00 3.43152860e+00 3.42233618e+00 3.41313225e+00 + 3.40391699e+00 3.39469059e+00 3.38545322e+00 3.37620507e+00 3.36694632e+00 + 3.35767716e+00 3.34839776e+00 3.33910832e+00 3.32980900e+00 3.32050000e+00 + 3.31118149e+00 3.30185365e+00 3.29251667e+00 3.28317072e+00 3.27381599e+00 + 3.26445265e+00 3.25508089e+00 3.24570088e+00 3.23631281e+00 3.22691684e+00 + 3.21751317e+00 3.20810196e+00 3.19868340e+00 3.18925766e+00 3.17982493e+00 + 3.17038537e+00 3.16093916e+00 3.15148649e+00 3.14202752e+00 3.13256244e+00 + 3.12309141e+00 3.11361462e+00 3.10413223e+00 3.09464443e+00 3.08515138e+00 + 3.07565326e+00 3.06615024e+00 3.05664250e+00 3.04713021e+00 3.03761354e+00 + 3.02809266e+00 3.01856774e+00 3.00903897e+00 2.99950650e+00 2.98997050e+00 + 2.98043116e+00 2.97088863e+00 2.96134309e+00 2.95179470e+00 2.94224364e+00 + 2.93269008e+00 2.92313417e+00 2.91357609e+00 2.90401601e+00 2.89445409e+00 + 2.88489050e+00 2.87532541e+00 2.86575898e+00 2.85619137e+00 2.84662275e+00 + 2.83705329e+00 2.82748315e+00 2.81791249e+00 2.80834148e+00 2.79877027e+00 + 2.78919904e+00 2.77962794e+00 2.77005714e+00 2.76048679e+00 2.75091706e+00 + 2.74134810e+00 2.73178009e+00 2.72221316e+00 2.71264750e+00 2.70308325e+00 + 2.69352056e+00 2.68395961e+00 2.67440055e+00 2.66484352e+00 2.65528870e+00 + 2.64573623e+00 2.63618628e+00 2.62663899e+00 2.61709452e+00 2.60755302e+00 + 2.59801465e+00 2.58847956e+00 2.57894791e+00 2.56941984e+00 2.55989551e+00 + 2.55037507e+00 2.54085867e+00 2.53134646e+00 2.52183858e+00 2.51233520e+00 + 2.50283645e+00 2.49334249e+00 2.48385347e+00 2.47436952e+00 2.46489080e+00 + 2.45541746e+00 2.44594964e+00 2.43648748e+00 2.42703114e+00 2.41758075e+00 + 2.40813646e+00 2.39869841e+00 2.38926675e+00 2.37984161e+00 2.37042314e+00 + 2.36101149e+00 2.35160679e+00 2.34220918e+00 2.33281880e+00 2.32343580e+00 + 2.31406030e+00 2.30469245e+00 2.29533239e+00 2.28598026e+00 2.27663618e+00 + 2.26730030e+00 2.25797276e+00 2.24865368e+00 2.23934320e+00 2.23004146e+00 + 2.22074859e+00 2.21146472e+00 2.20218999e+00 2.19292452e+00 2.18366846e+00 + 2.17442192e+00 2.16518504e+00 2.15595795e+00 2.14674078e+00 2.13753366e+00 + 2.12833672e+00 2.11915008e+00 2.10997386e+00 2.10080821e+00 2.09165324e+00 + 2.08250907e+00 2.07337585e+00 2.06425367e+00 2.05514268e+00 2.04604299e+00 + 2.03695473e+00 2.02787802e+00 2.01881298e+00 2.00975974e+00 2.00071840e+00 + 1.99168910e+00 1.98267194e+00 1.97366706e+00 1.96467456e+00 1.95569457e+00 + 1.94672720e+00 1.93777257e+00 1.92883080e+00 1.91990200e+00 1.91098628e+00 + 1.90208375e+00 1.89319455e+00 1.88431876e+00 1.87545652e+00 1.86660792e+00 + 1.85777308e+00 1.84895212e+00 1.84014514e+00 1.83135225e+00 1.82257356e+00 + 1.81380917e+00 1.80505921e+00 1.79632376e+00 1.78760295e+00 1.77889687e+00 + 1.77020564e+00 1.76152935e+00 1.75286811e+00 1.74422202e+00 1.73559119e+00 + 1.72697573e+00 1.71837572e+00 1.70979128e+00 1.70122250e+00 1.69266948e+00 + 1.68413233e+00 1.67561114e+00 1.66710601e+00 1.65861704e+00 1.65014433e+00 + 1.64168796e+00 1.63324805e+00 1.62482468e+00 1.61641795e+00 1.60802795e+00 + 1.59965478e+00 1.59129852e+00 1.58295928e+00 1.57463714e+00 1.56633220e+00 + 1.55804454e+00 1.54977426e+00 1.54152144e+00 1.53328618e+00 1.52506856e+00 + 1.51686867e+00 1.50868660e+00 1.50052243e+00 1.49237625e+00 1.48424814e+00 + 1.47613819e+00 1.46804649e+00 1.45997311e+00 1.45191814e+00 1.44388167e+00 + 1.43586376e+00 1.42786452e+00 1.41988400e+00 1.41192230e+00 1.40397950e+00 + 1.39605567e+00 1.38815089e+00 1.38026524e+00 1.37239879e+00 1.36455162e+00 + 1.35672382e+00 1.34891544e+00 1.34112657e+00 1.33335728e+00 1.32560765e+00 + 1.31787774e+00 1.31016763e+00 1.30247739e+00 1.29480709e+00 1.28715681e+00 + 1.27952660e+00 1.27191655e+00 1.26432671e+00 1.25675716e+00 1.24920796e+00 + 1.24167918e+00 1.23417089e+00 1.22668316e+00 1.21921604e+00 1.21176960e+00 + 1.20434390e+00 1.19693902e+00 1.18955500e+00 1.18219192e+00 1.17484983e+00 + 1.16752879e+00 1.16022887e+00 1.15295013e+00 1.14569262e+00 1.13845640e+00 + 1.13124153e+00 1.12404806e+00 1.11687606e+00 1.10972558e+00 1.10259667e+00 + 1.09548940e+00 1.08840380e+00 1.08133995e+00 1.07429788e+00 1.06727766e+00 + 1.06027933e+00 1.05330295e+00 1.04634857e+00 1.03941623e+00 1.03250599e+00 + 1.02561789e+00 1.01875199e+00 1.01190833e+00 1.00508696e+00 9.98287921e-01 + 9.91511267e-01 9.84757040e-01 9.78025284e-01 9.71316045e-01 9.64629366e-01 + 9.57965290e-01 9.51323860e-01 9.44705117e-01 9.38109103e-01 9.31535860e-01 + 9.24985426e-01 9.18457843e-01 9.11953148e-01 9.05471382e-01 8.99012580e-01 + 8.92576782e-01 8.86164024e-01 8.79774342e-01 8.73407772e-01 8.67064349e-01 + 8.60744107e-01 8.54447081e-01 8.48173305e-01 8.41922810e-01 8.35695630e-01 + 8.29491795e-01 8.23311338e-01 8.17154289e-01 8.11020678e-01 8.04910535e-01 + 7.98823888e-01 7.92760766e-01 7.86721197e-01 7.80705208e-01 7.74712826e-01 + 7.68744078e-01 7.62798988e-01 7.56877582e-01 7.50979884e-01 7.45105919e-01 + 7.39255710e-01 7.33429280e-01 7.27626651e-01 7.21847845e-01 7.16092884e-01 + 7.10361787e-01 7.04654576e-01 6.98971271e-01 6.93311889e-01 6.87676450e-01 + 6.82064972e-01 6.76477473e-01 6.70913968e-01 6.65374476e-01 6.59859012e-01 + 6.54367590e-01 6.48900227e-01 6.43456936e-01 6.38037732e-01 6.32642627e-01 + 6.27271635e-01 6.21924767e-01 6.16602035e-01 6.11303451e-01 6.06029026e-01 + 6.00778769e-01 5.95552690e-01 5.90350798e-01 5.85173102e-01 5.80019611e-01 + 5.74890331e-01 5.69785270e-01 5.64704434e-01 5.59647830e-01 5.54615462e-01 + 5.49607337e-01 5.44623459e-01 5.39663832e-01 5.34728459e-01 5.29817343e-01 + 5.24930488e-01 5.20067895e-01 5.15229565e-01 5.10415501e-01 5.05625702e-01 + 5.00860168e-01 4.96118900e-01 4.91401897e-01 4.86709156e-01 4.82040676e-01 + 4.77396456e-01 4.72776492e-01 4.68180780e-01 4.63609318e-01 4.59062100e-01 + 4.54539123e-01 4.50040381e-01 4.45565868e-01 4.41115579e-01 4.36689506e-01 + 4.32287643e-01 4.27909982e-01 4.23556515e-01 4.19227234e-01 4.14922129e-01 + 4.10641192e-01 4.06384413e-01 4.02151780e-01 3.97943285e-01 3.93758914e-01 + 3.89598658e-01 3.85462502e-01 3.81350436e-01 3.77262446e-01 3.73198519e-01 + 3.69158640e-01 3.65142795e-01 3.61150970e-01 3.57183150e-01 3.53239318e-01 + 3.49319459e-01 3.45423556e-01 3.41551592e-01 3.37703549e-01 3.33879411e-01 + 3.30079158e-01 3.26302772e-01 3.22550234e-01 3.18821524e-01 3.15116623e-01 + 3.11435510e-01 3.07778164e-01 3.04144564e-01 3.00534688e-01 2.96948515e-01 + 2.93386021e-01 2.89847185e-01 2.86331983e-01 2.82840390e-01 2.79372384e-01 + 2.75927939e-01 2.72507030e-01 2.69109633e-01 2.65735722e-01 2.62385270e-01 + 2.59058252e-01 2.55754640e-01 2.52474406e-01 2.49217524e-01 2.45983966e-01 + 2.42773702e-01 2.39586704e-01 2.36422943e-01 2.33282390e-01 2.30165013e-01 + 2.27070784e-01 2.23999671e-01 2.20951643e-01 2.17926669e-01 2.14924717e-01 + 2.11945755e-01 2.08989749e-01 2.06056668e-01 2.03146478e-01 2.00259146e-01 + 1.97394636e-01 1.94552916e-01 1.91733949e-01 1.88937702e-01 1.86164139e-01 + 1.83413223e-01 1.80684919e-01 1.77979190e-01 1.75296000e-01 1.72635311e-01 + 1.69997086e-01 1.67381287e-01 1.64787875e-01 1.62216813e-01 1.59668060e-01 + 1.57141579e-01 1.54637330e-01 1.52155272e-01 1.49695366e-01 1.47257571e-01 + 1.44841846e-01 1.42448150e-01 1.40076442e-01 1.37726679e-01 1.35398821e-01 + 1.33092823e-01 1.30808644e-01 1.28546240e-01 1.26305568e-01 1.24086585e-01 + 1.21889246e-01 1.19713507e-01 1.17559324e-01 1.15426652e-01 1.13315445e-01 + 1.11225658e-01 1.09157245e-01 1.07110161e-01 1.05084359e-01 1.03079791e-01 + 1.01096412e-01 9.91341744e-02 9.71930301e-02 9.52729316e-02 9.33738308e-02 + 9.14956795e-02 8.96384290e-02 8.78020304e-02 8.59864346e-02 8.41915922e-02 + 8.24174533e-02 8.06639682e-02 7.89310865e-02 7.72187578e-02 7.55269312e-02 + 7.38555559e-02 7.22045805e-02 7.05739536e-02 6.89636232e-02 6.73735375e-02 + 6.58036440e-02 6.42538904e-02 6.27242238e-02 6.12145912e-02 5.97249393e-02 + 5.82552147e-02 5.68053636e-02 5.53753320e-02 5.39650657e-02 5.25745103e-02 + 5.12036111e-02 4.98523131e-02 4.85205613e-02 4.72083003e-02 4.59154745e-02 + 4.46420281e-02 4.33879051e-02 4.21530492e-02 4.09374040e-02 3.97409128e-02 + 3.85635187e-02 3.74051646e-02 3.62657932e-02 3.51453469e-02 3.40437682e-02 + 3.29609990e-02 3.18969812e-02 3.08516564e-02 2.98249663e-02 2.88168520e-02 + 2.78272546e-02 2.68561150e-02 2.59033739e-02 2.49689719e-02 2.40528492e-02 + 2.31549461e-02 2.22752024e-02 2.14135579e-02 2.05699522e-02 1.97443248e-02 + 1.89366149e-02 1.81467615e-02 1.73747036e-02 1.66203799e-02 1.58837289e-02 + 1.51646890e-02 1.44631985e-02 1.37791954e-02 1.31126175e-02 1.24634028e-02 + 1.18314886e-02 1.12168125e-02 1.06193117e-02 1.00389234e-02 9.47558447e-03 + 8.92923178e-03 8.39980199e-03 7.88723163e-03 7.39145708e-03 6.91241458e-03 + 6.45004024e-03 6.00427002e-03 5.57503974e-03 5.16228511e-03 4.76594168e-03 + 4.38594487e-03 4.02222999e-03 3.67473222e-03 3.34338659e-03 3.02812803e-03 + 2.72889134e-03 2.44561121e-03 2.17822219e-03 1.92665872e-03 1.69085514e-03 + 1.47074567e-03 1.26626440e-03 1.07734534e-03 9.03922361e-04 7.45929254e-04 + 6.03299692e-04 4.75967247e-04 3.63865391e-04 2.66927494e-04 1.85086832e-04 + 1.18276582e-04 6.64298274e-05 2.94795605e-05 7.35868100e-06 0.00000000e+00 + 1.63504040e-02 1.64018897e-02 1.65831418e-02 1.67663967e-02 1.69516765e-02 + 1.71390036e-02 1.73284007e-02 1.75198905e-02 1.77134962e-02 1.79092413e-02 + 1.81071492e-02 1.83072440e-02 1.85095497e-02 1.87140908e-02 1.89208921e-02 + 1.91299784e-02 1.93413750e-02 1.95551074e-02 1.97712014e-02 1.99896832e-02 + 2.02105791e-02 2.04339157e-02 2.06597201e-02 2.08880195e-02 2.11188414e-02 + 2.13522138e-02 2.15881647e-02 2.18267227e-02 2.20679166e-02 2.23117755e-02 + 2.25583288e-02 2.28076063e-02 2.30596381e-02 2.33144546e-02 2.35720866e-02 + 2.38325651e-02 2.40959217e-02 2.43621881e-02 2.46313964e-02 2.49035791e-02 + 2.51787692e-02 2.54569998e-02 2.57383044e-02 2.60227172e-02 2.63102723e-02 + 2.66010045e-02 2.68949488e-02 2.71921409e-02 2.74926164e-02 2.77964118e-02 + 2.81035636e-02 2.84141090e-02 2.87280854e-02 2.90455306e-02 2.93664831e-02 + 2.96909816e-02 3.00190652e-02 3.03507735e-02 3.06861465e-02 3.10252247e-02 + 3.13680491e-02 3.17146610e-02 3.20651022e-02 3.24194151e-02 3.27776423e-02 + 3.31398271e-02 3.35060133e-02 3.38762449e-02 3.42505667e-02 3.46290239e-02 + 3.50116620e-02 3.53985274e-02 3.57896665e-02 3.61851268e-02 3.65849557e-02 + 3.69892017e-02 3.73979135e-02 3.78111403e-02 3.82289321e-02 3.86513391e-02 + 3.90784125e-02 3.95102037e-02 3.99467649e-02 4.03881486e-02 4.08344081e-02 + 4.12855972e-02 4.17417704e-02 4.22029828e-02 4.26692898e-02 4.31407479e-02 + 4.36174138e-02 4.40993450e-02 4.45865997e-02 4.50792366e-02 4.55773152e-02 + 4.60808954e-02 4.65900382e-02 4.71048048e-02 4.76252573e-02 4.81514585e-02 + 4.86834719e-02 4.92213615e-02 4.97651924e-02 5.03150299e-02 5.08709405e-02 + 5.14329912e-02 5.20012497e-02 5.25757846e-02 5.31566651e-02 5.37439612e-02 + 5.43377438e-02 5.49380844e-02 5.55450555e-02 5.61587301e-02 5.67791823e-02 + 5.74064868e-02 5.80407193e-02 5.86819562e-02 5.93302748e-02 5.99857533e-02 + 6.06484706e-02 6.13185066e-02 6.19959420e-02 6.26808586e-02 6.33733388e-02 + 6.40734660e-02 6.47813248e-02 6.54970002e-02 6.62205787e-02 6.69521473e-02 + 6.76917942e-02 6.84396085e-02 6.91956803e-02 6.99601006e-02 7.07329617e-02 + 7.15143565e-02 7.23043792e-02 7.31031250e-02 7.39106900e-02 7.47271715e-02 + 7.55526679e-02 7.63872785e-02 7.72311040e-02 7.80842458e-02 7.89468067e-02 + 7.98188906e-02 8.07006024e-02 8.15920484e-02 8.24933359e-02 8.34045733e-02 + 8.43258704e-02 8.52573380e-02 8.61990883e-02 8.71512346e-02 8.81138916e-02 + 8.90871750e-02 9.00712021e-02 9.10660912e-02 9.20719620e-02 9.30889356e-02 + 9.41171343e-02 9.51566819e-02 9.62077033e-02 9.72703251e-02 9.83446751e-02 + 9.94308824e-02 1.00529078e-01 1.01639393e-01 1.02761962e-01 1.03896920e-01 + 1.05044403e-01 1.06204549e-01 1.07377497e-01 1.08563390e-01 1.09762368e-01 + 1.10974576e-01 1.12200161e-01 1.13439268e-01 1.14692048e-01 1.15958651e-01 + 1.17239229e-01 1.18533935e-01 1.19842926e-01 1.21166358e-01 1.22504391e-01 + 1.23857185e-01 1.25224903e-01 1.26607709e-01 1.28005770e-01 1.29419252e-01 + 1.30848326e-01 1.32293163e-01 1.33753937e-01 1.35230823e-01 1.36723998e-01 + 1.38233642e-01 1.39759936e-01 1.41303062e-01 1.42863207e-01 1.44440557e-01 + 1.46035301e-01 1.47647630e-01 1.49277739e-01 1.50925822e-01 1.52592078e-01 + 1.54276705e-01 1.55979907e-01 1.57701886e-01 1.59442850e-01 1.61203007e-01 + 1.62982568e-01 1.64781746e-01 1.66600758e-01 1.68439819e-01 1.70299152e-01 + 1.72178979e-01 1.74079524e-01 1.76001016e-01 1.77943684e-01 1.79907761e-01 + 1.81893482e-01 1.83901085e-01 1.85930809e-01 1.87982898e-01 1.90057598e-01 + 1.92155156e-01 1.94275823e-01 1.96419852e-01 1.98587501e-01 2.00779028e-01 + 2.02994696e-01 2.05234768e-01 2.07499513e-01 2.09789201e-01 2.12104105e-01 + 2.14444503e-01 2.16810673e-01 2.19202899e-01 2.21621465e-01 2.24066661e-01 + 2.26538777e-01 2.29038110e-01 2.31564957e-01 2.34119619e-01 2.36702402e-01 + 2.39313613e-01 2.41953563e-01 2.44622567e-01 2.47320943e-01 2.50049013e-01 + 2.52807102e-01 2.55595537e-01 2.58414651e-01 2.61264780e-01 2.64146262e-01 + 2.67059441e-01 2.70004664e-01 2.72982279e-01 2.75992643e-01 2.79036111e-01 + 2.82113047e-01 2.85223816e-01 2.88368787e-01 2.91548334e-01 2.94762834e-01 + 2.98012670e-01 3.01298226e-01 3.04619893e-01 3.07978065e-01 3.11373140e-01 + 3.14805520e-01 3.18275613e-01 3.21783830e-01 3.25330585e-01 3.28916301e-01 + 3.32541400e-01 3.36206312e-01 3.39911471e-01 3.43657315e-01 3.47444287e-01 + 3.51272835e-01 3.55143411e-01 3.59056473e-01 3.63012483e-01 3.67011909e-01 + 3.71055221e-01 3.75142898e-01 3.79275422e-01 3.83453280e-01 3.87676964e-01 + 3.91946972e-01 3.96263808e-01 4.00627980e-01 4.05040001e-01 4.09500391e-01 + 4.14009675e-01 4.18568382e-01 4.23177049e-01 4.27836217e-01 4.32546434e-01 + 4.37308252e-01 4.42122230e-01 4.46988934e-01 4.51908933e-01 4.56882804e-01 + 4.61911131e-01 4.66994503e-01 4.72133513e-01 4.77328764e-01 4.82580863e-01 + 4.87890425e-01 4.93258069e-01 4.98684422e-01 5.04170119e-01 5.09715799e-01 + 5.15322109e-01 5.20989702e-01 5.26719239e-01 5.32511387e-01 5.38366819e-01 + 5.44286219e-01 5.50270272e-01 5.56319675e-01 5.62435131e-01 5.68617349e-01 + 5.74867046e-01 5.81184947e-01 5.87571784e-01 5.94028296e-01 6.00555231e-01 + 6.07153344e-01 6.13823397e-01 6.20566161e-01 6.27382414e-01 6.34272942e-01 + 6.41238540e-01 6.48280011e-01 6.55398166e-01 6.62593822e-01 6.69867808e-01 + 6.77220959e-01 6.84654120e-01 6.92168143e-01 6.99763890e-01 7.07442231e-01 + 7.15204044e-01 7.23050219e-01 7.30981650e-01 7.38999246e-01 7.47103919e-01 + 7.55296595e-01 7.63578206e-01 7.71949696e-01 7.80412016e-01 7.88966128e-01 + 7.97613003e-01 8.06353622e-01 8.15188976e-01 8.24120065e-01 8.33147899e-01 + 8.42273499e-01 8.51497895e-01 8.60822127e-01 8.70247246e-01 8.79774313e-01 + 8.89404400e-01 8.99138588e-01 9.08977970e-01 9.18923649e-01 9.28976738e-01 + 9.39138363e-01 9.49409658e-01 9.59791770e-01 9.70285857e-01 9.80893086e-01 + 9.91614639e-01 1.00245171e+00 1.01340549e+00 1.02447720e+00 1.03566807e+00 + 1.04697933e+00 1.05841224e+00 1.06996804e+00 1.08164802e+00 1.09345346e+00 + 1.10538566e+00 1.11744592e+00 1.12963556e+00 1.14195593e+00 1.15440835e+00 + 1.16699420e+00 1.17971484e+00 1.19257165e+00 1.20556603e+00 1.21869939e+00 + 1.23197314e+00 1.24538873e+00 1.25894760e+00 1.27265121e+00 1.28650104e+00 + 1.30049856e+00 1.31464528e+00 1.32894271e+00 1.34339238e+00 1.35799582e+00 + 1.37275460e+00 1.38767027e+00 1.40274442e+00 1.41797865e+00 1.43337455e+00 + 1.44893375e+00 1.46465790e+00 1.48054862e+00 1.49660760e+00 1.51283651e+00 + 1.52923704e+00 1.54581089e+00 1.56255979e+00 1.57948548e+00 1.59658969e+00 + 1.61387419e+00 1.63134077e+00 1.64899121e+00 1.66682733e+00 1.68485093e+00 + 1.70306386e+00 1.72146797e+00 1.74006512e+00 1.75885719e+00 1.77784608e+00 + 1.79703369e+00 1.81642195e+00 1.83601280e+00 1.85580819e+00 1.87581009e+00 + 1.89602048e+00 1.91644135e+00 1.93707473e+00 1.95792263e+00 1.97898710e+00 + 2.00027019e+00 2.02177398e+00 2.04350055e+00 2.06545200e+00 2.08763045e+00 + 2.11003801e+00 2.13267685e+00 2.15554911e+00 2.17865698e+00 2.20200263e+00 + 2.22558826e+00 2.24941610e+00 2.27348838e+00 2.29780733e+00 2.32237521e+00 + 2.34719430e+00 2.37226689e+00 2.39759526e+00 2.42318174e+00 2.44902865e+00 + 2.47513834e+00 2.50151315e+00 2.52815545e+00 2.55506762e+00 2.58225206e+00 + 2.60971116e+00 2.63744735e+00 2.66546305e+00 2.69376072e+00 2.72234279e+00 + 2.75121174e+00 2.78037005e+00 2.80982021e+00 2.83956470e+00 2.86960606e+00 + 2.89994679e+00 2.93058943e+00 2.96153652e+00 2.99279062e+00 3.02435428e+00 + 3.05623008e+00 3.08842060e+00 3.12092843e+00 3.15375616e+00 3.18690640e+00 + 3.22038177e+00 3.25418489e+00 3.28831837e+00 3.32278487e+00 3.35758701e+00 + 3.39272745e+00 3.42820884e+00 3.46403383e+00 3.50020509e+00 3.53672528e+00 + 3.57359708e+00 3.61082314e+00 3.64840616e+00 3.68634881e+00 3.72465376e+00 + 3.76332370e+00 3.80236131e+00 3.84176927e+00 3.88155025e+00 3.92170694e+00 + 3.96224202e+00 4.00315816e+00 4.04445802e+00 4.08614428e+00 4.12821960e+00 + 4.17068664e+00 4.21354806e+00 4.25680648e+00 4.30046456e+00 4.34452492e+00 + 4.38899019e+00 4.43386296e+00 4.47914586e+00 4.52484145e+00 4.57095233e+00 + 4.61748105e+00 4.66443016e+00 4.71180220e+00 4.75959968e+00 4.80782510e+00 + 4.85648096e+00 4.90556971e+00 4.95509379e+00 5.00505564e+00 5.05545765e+00 + 5.10630220e+00 5.15759165e+00 5.20932831e+00 5.26151451e+00 5.31415250e+00 + 5.36724454e+00 5.42079284e+00 5.47479959e+00 5.52926693e+00 5.58419699e+00 + 5.63959185e+00 5.69545356e+00 5.75178411e+00 5.80858549e+00 5.86585963e+00 + 5.92360840e+00 5.98183366e+00 6.04053721e+00 6.09972079e+00 6.15938611e+00 + 6.21953483e+00 6.28016856e+00 6.34128885e+00 6.40289720e+00 6.46499505e+00 + 6.52758380e+00 6.59066476e+00 6.65423922e+00 6.71830838e+00 6.78287339e+00 + 6.84793531e+00 6.91349517e+00 6.97955391e+00 7.04611241e+00 7.11317146e+00 + 7.18073180e+00 7.24879407e+00 7.31735886e+00 7.38642666e+00 7.45599788e+00 + 7.52607287e+00 7.59665186e+00 7.66773503e+00 7.73932244e+00 7.81141409e+00 + 7.88400986e+00 7.95710956e+00 8.03071290e+00 8.10481947e+00 8.17942878e+00 + 8.25454026e+00 8.33015318e+00 8.40626677e+00 8.48288011e+00 8.55999218e+00 + 8.63760187e+00 8.71570793e+00 8.79430901e+00 8.87340364e+00 8.95299024e+00 + 9.03306711e+00 9.11363242e+00 9.19468422e+00 9.27622044e+00 9.35823888e+00 + 9.44073721e+00 9.52371298e+00 9.60716359e+00 9.69108633e+00 9.77547834e+00 + 9.86033663e+00 9.94565806e+00 1.00314394e+01 1.01176771e+01 1.02043678e+01 + 1.02915077e+01 1.03790930e+01 1.04671196e+01 1.05555835e+01 1.06444803e+01 + 1.07338057e+01 1.08235550e+01 1.09137235e+01 1.10043062e+01 1.10952983e+01 + 1.11866943e+01 1.12784891e+01 1.13706770e+01 1.14632524e+01 1.15562095e+01 + 1.16495422e+01 1.17432444e+01 1.18373098e+01 1.19317319e+01 1.20265041e+01 + 1.21216196e+01 1.22170714e+01 1.23128523e+01 1.24089552e+01 1.25053726e+01 + 1.26020968e+01 1.26991201e+01 1.27964345e+01 1.28940320e+01 1.29919044e+01 + 1.30900431e+01 1.31884397e+01 1.32870854e+01 1.33859713e+01 1.34850885e+01 + 1.35844276e+01 1.36839794e+01 1.37837343e+01 1.38836827e+01 1.39838149e+01 + 1.40841207e+01 1.41845903e+01 1.42852132e+01 1.43859792e+01 1.44868777e+01 + 1.45878980e+01 1.46890294e+01 1.47902609e+01 1.48915815e+01 1.49929800e+01 + 1.50944450e+01 1.51959651e+01 1.52975288e+01 1.53991244e+01 1.55007401e+01 + 1.56023640e+01 1.57039840e+01 1.58055882e+01 1.59071642e+01 1.60086998e+01 + 1.61101825e+01 1.62116000e+01 1.63129394e+01 1.64141884e+01 1.65153340e+01 + 1.66163635e+01 1.67172641e+01 1.68180227e+01 1.69186264e+01 1.70190621e+01 + 1.71193167e+01 1.72193771e+01 1.73192300e+01 1.74188623e+01 1.75182606e+01 + 1.76174118e+01 1.77163024e+01 1.78149192e+01 1.79132487e+01 1.80112778e+01 + 1.81089930e+01 1.82063809e+01 1.83034283e+01 1.84001219e+01 1.84964482e+01 + 1.85923942e+01 1.86879464e+01 1.87830918e+01 1.88778172e+01 1.89721094e+01 + 1.90659553e+01 1.91593421e+01 1.92522566e+01 1.93446861e+01 1.94366178e+01 + 1.95280389e+01 1.96189368e+01 1.97092990e+01 1.97991129e+01 1.98883663e+01 + 1.99770470e+01 2.00651426e+01 2.01526413e+01 2.02395312e+01 2.03258004e+01 + 2.04114374e+01 2.04964306e+01 2.05807686e+01 2.06644403e+01 2.07474345e+01 + 2.08297404e+01 2.09113471e+01 2.09922441e+01 2.10724209e+01 2.11518673e+01 + 2.12305732e+01 2.13085287e+01 2.13857240e+01 2.14621496e+01 2.15377961e+01 + 2.16126544e+01 2.16867156e+01 2.17599708e+01 2.18324115e+01 2.19040294e+01 + 2.19748162e+01 2.20447641e+01 2.21138653e+01 2.21821123e+01 2.22494979e+01 + 2.23160149e+01 2.23816566e+01 2.24464162e+01 2.25102874e+01 2.25732640e+01 + 2.26353400e+01 2.26965099e+01 2.27567680e+01 2.28161091e+01 2.28745282e+01 + 2.29320206e+01 2.29885816e+01 2.30442069e+01 2.30988925e+01 2.31526346e+01 + 2.32054295e+01 2.32572738e+01 2.33081644e+01 2.33580984e+01 2.34070731e+01 + 2.34550860e+01 2.35021351e+01 2.35482182e+01 2.35933337e+01 2.36374799e+01 + 2.36806558e+01 2.37228600e+01 2.37640920e+01 2.38043509e+01 2.38436364e+01 + 2.38819484e+01 2.39192869e+01 2.39556521e+01 2.39910445e+01 2.40254649e+01 + 2.40589140e+01 2.40913931e+01 2.41229033e+01 2.41534463e+01 2.41830236e+01 + 2.42116373e+01 2.42392894e+01 2.42659822e+01 2.42917181e+01 2.43164999e+01 + 2.43403303e+01 2.43632125e+01 2.43851494e+01 2.44061447e+01 2.44262016e+01 + 2.44453241e+01 2.44635158e+01 2.44807810e+01 2.44971236e+01 2.45125481e+01 + 2.45270589e+01 2.45406606e+01 2.45533580e+01 2.45651561e+01 2.45760597e+01 + 2.45860741e+01 2.45952047e+01 2.46034567e+01 2.46108357e+01 2.46173474e+01 + 2.46229976e+01 2.46277920e+01 2.46317367e+01 2.46348378e+01 2.46371015e+01 + 2.46385339e+01 2.46391415e+01 2.46389307e+01 2.46379081e+01 2.46360803e+01 + 2.46334539e+01 2.46300357e+01 2.46258327e+01 2.46208515e+01 2.46150994e+01 + 2.46085832e+01 2.46013100e+01 2.45932871e+01 2.45845215e+01 2.45750206e+01 + 2.45647916e+01 2.45538418e+01 2.45421787e+01 2.45298095e+01 2.45167418e+01 + 2.45029829e+01 2.44885405e+01 2.44734220e+01 2.44576348e+01 2.44411867e+01 + 2.44240852e+01 2.44063377e+01 2.43879520e+01 2.43689357e+01 2.43492963e+01 + 2.43290414e+01 2.43081788e+01 2.42867159e+01 2.42646603e+01 2.42420198e+01 + 2.42188019e+01 2.41950141e+01 2.41706641e+01 2.41457594e+01 2.41203075e+01 + 2.40943160e+01 2.40677924e+01 2.40407441e+01 2.40131787e+01 2.39851036e+01 + 2.39565261e+01 2.39274536e+01 2.38978936e+01 2.38678533e+01 2.38373400e+01 + 2.38063610e+01 2.37749235e+01 2.37430347e+01 2.37107017e+01 2.36779316e+01 + 2.36447316e+01 2.36111085e+01 2.35770695e+01 2.35426214e+01 2.35077712e+01 + 2.34725257e+01 2.34368916e+01 2.34008758e+01 2.33644850e+01 2.33277258e+01 + 2.32906049e+01 2.32531287e+01 2.32153039e+01 2.31771368e+01 2.31386339e+01 + 2.30998016e+01 2.30606460e+01 2.30211736e+01 2.29813904e+01 2.29413026e+01 + 2.29009163e+01 2.28602376e+01 2.28192723e+01 2.27780264e+01 2.27365058e+01 + 2.26947163e+01 2.26526636e+01 2.26103534e+01 2.25677914e+01 2.25249831e+01 + 2.24819340e+01 2.24386496e+01 2.23951354e+01 2.23513966e+01 2.23074385e+01 + 2.22632664e+01 2.22188855e+01 2.21743008e+01 2.21295175e+01 2.20845404e+01 + 2.20393747e+01 2.19940251e+01 2.19484965e+01 2.19027936e+01 2.18569212e+01 + 2.18108840e+01 2.17646864e+01 2.17183332e+01 2.16718287e+01 2.16251775e+01 + 2.15783838e+01 2.15314521e+01 2.14843865e+01 2.14371913e+01 2.13898707e+01 + 2.13424287e+01 2.12948694e+01 2.12471969e+01 2.11994150e+01 2.11515276e+01 + 2.11035386e+01 2.10554518e+01 2.10072709e+01 2.09589996e+01 2.09106416e+01 + 2.08622003e+01 2.08136794e+01 2.07650822e+01 2.07164124e+01 2.06676732e+01 + 2.06188679e+01 2.05699999e+01 2.05210724e+01 2.04720886e+01 2.04230515e+01 + 2.03739645e+01 2.03248304e+01 2.02756522e+01 2.02264330e+01 2.01771757e+01 + 2.01278830e+01 2.00785580e+01 2.00292032e+01 1.99798215e+01 1.99304156e+01 + 1.98809881e+01 1.98315416e+01 1.97820787e+01 1.97326019e+01 1.96831137e+01 + 1.96336166e+01 1.95841129e+01 1.95346051e+01 1.94850955e+01 1.94355863e+01 + 1.93860798e+01 1.93365782e+01 1.92870838e+01 1.92375986e+01 1.91881247e+01 + 1.91386643e+01 1.90892193e+01 1.90397918e+01 1.89903837e+01 1.89409969e+01 + 1.88916334e+01 1.88422950e+01 1.87929836e+01 1.87437009e+01 1.86944486e+01 + 1.86452287e+01 1.85960426e+01 1.85468922e+01 1.84977791e+01 1.84487048e+01 + 1.83996709e+01 1.83506791e+01 1.83017308e+01 1.82528275e+01 1.82039707e+01 + 1.81551618e+01 1.81064023e+01 1.80576934e+01 1.80090367e+01 1.79604334e+01 + 1.79118848e+01 1.78633921e+01 1.78149568e+01 1.77665799e+01 1.77182627e+01 + 1.76700064e+01 1.76218121e+01 1.75736809e+01 1.75256141e+01 1.74776126e+01 + 1.74296775e+01 1.73818098e+01 1.73340107e+01 1.72862810e+01 1.72386219e+01 + 1.71910341e+01 1.71435187e+01 1.70960765e+01 1.70487086e+01 1.70014157e+01 + 1.69541986e+01 1.69070584e+01 1.68599957e+01 1.68130113e+01 1.67661061e+01 + 1.67192808e+01 1.66725362e+01 1.66258729e+01 1.65792917e+01 1.65327934e+01 + 1.64863785e+01 1.64400477e+01 1.63938017e+01 1.63476411e+01 1.63015666e+01 + 1.62555786e+01 1.62096779e+01 1.61638649e+01 1.61181402e+01 1.60725044e+01 + 1.60269580e+01 1.59815015e+01 1.59361354e+01 1.58908602e+01 1.58456763e+01 + 1.58005842e+01 1.57555844e+01 1.57106773e+01 1.56658633e+01 1.56211427e+01 + 1.55765161e+01 1.55319838e+01 1.54875461e+01 1.54432035e+01 1.53989562e+01 + 1.53548046e+01 1.53107491e+01 1.52667899e+01 1.52229273e+01 1.51791617e+01 + 1.51354933e+01 1.50919224e+01 1.50484493e+01 1.50050742e+01 1.49617974e+01 + 1.49186190e+01 1.48755394e+01 1.48325588e+01 1.47896772e+01 1.47468951e+01 + 1.47042125e+01 1.46616296e+01 1.46191466e+01 1.45767637e+01 1.45344810e+01 + 1.44922987e+01 1.44502169e+01 1.44082357e+01 1.43663553e+01 1.43245758e+01 + 1.42828974e+01 1.42413200e+01 1.41998439e+01 1.41584690e+01 1.41171956e+01 + 1.40760236e+01 1.40349532e+01 1.39939844e+01 1.39531172e+01 1.39123518e+01 + 1.38716881e+01 1.38311263e+01 1.37906663e+01 1.37503081e+01 1.37100519e+01 + 1.36698975e+01 1.36298452e+01 1.35898947e+01 1.35500462e+01 1.35102996e+01 + 1.34706550e+01 1.34311123e+01 1.33916715e+01 1.33523325e+01 1.33130954e+01 + 1.32739602e+01 1.32349267e+01 1.31959950e+01 1.31571650e+01 1.31184367e+01 + 1.30798100e+01 1.30412848e+01 1.30028611e+01 1.29645389e+01 1.29263180e+01 + 1.28881984e+01 1.28501800e+01 1.28122627e+01 1.27744466e+01 1.27367313e+01 + 1.26991170e+01 1.26616034e+01 1.26241906e+01 1.25868783e+01 1.25496665e+01 + 1.25125551e+01 1.24755440e+01 1.24386331e+01 1.24018222e+01 1.23651113e+01 + 1.23285002e+01 1.22919888e+01 1.22555770e+01 1.22192646e+01 1.21830515e+01 + 1.21469377e+01 1.21109229e+01 1.20750070e+01 1.20391899e+01 1.20034714e+01 + 1.19678515e+01 1.19323299e+01 1.18969065e+01 1.18615812e+01 1.18263537e+01 + 1.17912241e+01 1.17561920e+01 1.17212574e+01 1.16864200e+01 1.16516798e+01 + 1.16170365e+01 1.15824901e+01 1.15480403e+01 1.15136869e+01 1.14794298e+01 + 1.14452689e+01 1.14112039e+01 1.13772347e+01 1.13433612e+01 1.13095830e+01 + 1.12759001e+01 1.12423123e+01 1.12088194e+01 1.11754212e+01 1.11421175e+01 + 1.11089082e+01 1.10757931e+01 1.10427719e+01 1.10098445e+01 1.09770108e+01 + 1.09442704e+01 1.09116233e+01 1.08790693e+01 1.08466080e+01 1.08142395e+01 + 1.07819634e+01 1.07497795e+01 1.07176878e+01 1.06856879e+01 1.06537797e+01 + 1.06219629e+01 1.05902375e+01 1.05586031e+01 1.05270597e+01 1.04956069e+01 + 1.04642446e+01 1.04329726e+01 1.04017907e+01 1.03706986e+01 1.03396963e+01 + 1.03087834e+01 1.02779597e+01 1.02472252e+01 1.02165795e+01 1.01860224e+01 + 1.01555538e+01 1.01251735e+01 1.00948812e+01 1.00646767e+01 1.00345598e+01 + 1.00045304e+01 9.97458814e+00 9.94473290e+00 9.91496445e+00 9.88528258e+00 + 9.85568708e+00 9.82617774e+00 9.79675435e+00 9.76741671e+00 9.73816461e+00 + 9.70899782e+00 9.67991615e+00 9.65091938e+00 9.62200731e+00 9.59317971e+00 + 9.56443639e+00 9.53577712e+00 9.50720171e+00 9.47870993e+00 9.45030158e+00 + 9.42197644e+00 9.39373431e+00 9.36557497e+00 9.33749821e+00 9.30950383e+00 + 9.28159160e+00 9.25376132e+00 9.22601278e+00 9.19834576e+00 9.17076006e+00 + 9.14325546e+00 9.11583176e+00 9.08848873e+00 9.06122618e+00 9.03404388e+00 + 9.00694164e+00 8.97991924e+00 8.95297646e+00 8.92611310e+00 8.89932895e+00 + 8.87262380e+00 8.84599744e+00 8.81944966e+00 8.79298024e+00 8.76658899e+00 + 8.74027568e+00 8.71404012e+00 8.68788209e+00 8.66180139e+00 8.63579780e+00 + 8.60987112e+00 8.58402115e+00 8.55824766e+00 8.53255046e+00 8.50692933e+00 + 8.48138408e+00 8.45591449e+00 8.43052036e+00 8.40520148e+00 8.37995765e+00 + 8.35478866e+00 8.32969430e+00 8.30467437e+00 8.27972866e+00 8.25485698e+00 + 8.23005911e+00 8.20533485e+00 8.18068400e+00 8.15610636e+00 8.13160172e+00 + 8.10716987e+00 8.08281063e+00 8.05852378e+00 8.03430912e+00 8.01016645e+00 + 7.98609558e+00 7.96209630e+00 7.93816840e+00 7.91431170e+00 7.89052598e+00 + 7.86681106e+00 7.84316673e+00 7.81959279e+00 7.79608904e+00 7.77265530e+00 + 7.74929135e+00 7.72599701e+00 7.70277207e+00 7.67961634e+00 7.65652962e+00 + 7.63351172e+00 7.61056245e+00 7.58768160e+00 7.56486899e+00 7.54212441e+00 + 7.51944768e+00 7.49683860e+00 7.47429699e+00 7.45182263e+00 7.42941536e+00 + 7.40707496e+00 7.38480126e+00 7.36259406e+00 7.34045317e+00 7.31837840e+00 + 7.29636956e+00 7.27442647e+00 7.25254892e+00 7.23073674e+00 7.20898973e+00 + 7.18730772e+00 7.16569050e+00 7.14413790e+00 7.12264973e+00 7.10122580e+00 + 7.07986593e+00 7.05856993e+00 7.03733762e+00 7.01616881e+00 6.99506332e+00 + 6.97402096e+00 6.95304156e+00 6.93212493e+00 6.91127089e+00 6.89047925e+00 + 6.86974984e+00 6.84908248e+00 6.82847698e+00 6.80793316e+00 6.78745085e+00 + 6.76702986e+00 6.74667003e+00 6.72637116e+00 6.70613308e+00 6.68595562e+00 + 6.66583859e+00 6.64578183e+00 6.62578515e+00 6.60584838e+00 6.58597135e+00 + 6.56615387e+00 6.54639578e+00 6.52669691e+00 6.50705707e+00 6.48747609e+00 + 6.46795381e+00 6.44849005e+00 6.42908464e+00 6.40973740e+00 6.39044818e+00 + 6.37121679e+00 6.35204307e+00 6.33292684e+00 6.31386795e+00 6.29486621e+00 + 6.27592147e+00 6.25703355e+00 6.23820229e+00 6.21942752e+00 6.20070907e+00 + 6.18204679e+00 6.16344049e+00 6.14489002e+00 6.12639522e+00 6.10795591e+00 + 6.08957194e+00 6.07124314e+00 6.05296935e+00 6.03475041e+00 6.01658615e+00 + 5.99847642e+00 5.98042104e+00 5.96241987e+00 5.94447274e+00 5.92657949e+00 + 5.90873996e+00 5.89095400e+00 5.87322144e+00 5.85554212e+00 5.83791590e+00 + 5.82034260e+00 5.80282208e+00 5.78535418e+00 5.76793874e+00 5.75057561e+00 + 5.73326463e+00 5.71600564e+00 5.69879850e+00 5.68164305e+00 5.66453913e+00 + 5.64748659e+00 5.63048529e+00 5.61353506e+00 5.59663576e+00 5.57978723e+00 + 5.56298932e+00 5.54624189e+00 5.52954479e+00 5.51289785e+00 5.49630094e+00 + 5.47975391e+00 5.46325661e+00 5.44680888e+00 5.43041059e+00 5.41406158e+00 + 5.39776171e+00 5.38151083e+00 5.36530879e+00 5.34915546e+00 5.33305068e+00 + 5.31699432e+00 5.30098622e+00 5.28502624e+00 5.26911424e+00 5.25325008e+00 + 5.23743361e+00 5.22166470e+00 5.20594319e+00 5.19026895e+00 5.17464184e+00 + 5.15906171e+00 5.14352844e+00 5.12804187e+00 5.11260186e+00 5.09720829e+00 + 5.08186100e+00 5.06655986e+00 5.05130474e+00 5.03609550e+00 5.02093199e+00 + 5.00581409e+00 4.99074165e+00 4.97571455e+00 4.96073264e+00 4.94579579e+00 + 4.93090386e+00 4.91605673e+00 4.90125425e+00 4.88649630e+00 4.87178274e+00 + 4.85711343e+00 4.84248825e+00 4.82790707e+00 4.81336974e+00 4.79887615e+00 + 4.78442616e+00 4.77001963e+00 4.75565645e+00 4.74133647e+00 4.72705958e+00 + 4.71282564e+00 4.69863452e+00 4.68448609e+00 4.67038023e+00 4.65631681e+00 + 4.64229571e+00 4.62831678e+00 4.61437992e+00 4.60048499e+00 4.58663187e+00 + 4.57282043e+00 4.55905055e+00 4.54532210e+00 4.53163497e+00 4.51798901e+00 + 4.50438412e+00 4.49082017e+00 4.47729703e+00 4.46381458e+00 4.45037271e+00 + 4.43697129e+00 4.42361020e+00 4.41028931e+00 4.39700851e+00 4.38376768e+00 + 4.37056670e+00 4.35740544e+00 4.34428380e+00 4.33120164e+00 4.31815885e+00 + 4.30515532e+00 4.29219093e+00 4.27926555e+00 4.26637907e+00 4.25353138e+00 + 4.24072235e+00 4.22795188e+00 4.21521984e+00 4.20252613e+00 4.18987062e+00 + 4.17725320e+00 4.16467376e+00 4.15213218e+00 4.13962835e+00 4.12716216e+00 + 4.11473349e+00 4.10234223e+00 4.08998827e+00 4.07767150e+00 4.06539180e+00 + 4.05314906e+00 4.04094318e+00 4.02877403e+00 4.01664152e+00 4.00454553e+00 + 3.99248595e+00 3.98046268e+00 3.96847559e+00 3.95652460e+00 3.94460957e+00 + 3.93273042e+00 3.92088702e+00 3.90907928e+00 3.89730709e+00 3.88557033e+00 + 3.87386891e+00 3.86220271e+00 3.85057163e+00 3.83897557e+00 3.82741442e+00 + 3.81588807e+00 3.80439643e+00 3.79293938e+00 3.78151682e+00 3.77012865e+00 + 3.75877476e+00 3.74745506e+00 3.73616944e+00 3.72491779e+00 3.71370002e+00 + 3.70251602e+00 3.69136569e+00 3.68024894e+00 3.66916565e+00 3.65811573e+00 + 3.64709908e+00 3.63611560e+00 3.62516518e+00 3.61424774e+00 3.60336317e+00 + 3.59251136e+00 3.58169223e+00 3.57090568e+00 3.56015160e+00 3.54942990e+00 + 3.53874049e+00 3.52808325e+00 3.51745811e+00 3.50686495e+00 3.49630370e+00 + 3.48577424e+00 3.47527648e+00 3.46481033e+00 3.45437570e+00 3.44397248e+00 + 3.43360059e+00 3.42325993e+00 3.41295040e+00 3.40267192e+00 3.39242438e+00 + 3.38220770e+00 3.37202179e+00 3.36186654e+00 3.35174187e+00 3.34164769e+00 + 3.33158390e+00 3.32155042e+00 3.31154714e+00 3.30157399e+00 3.29163087e+00 + 3.28171769e+00 3.27183436e+00 3.26198078e+00 3.25215688e+00 3.24236256e+00 + 3.23259774e+00 3.22286231e+00 3.21315620e+00 3.20347932e+00 3.19383158e+00 + 3.18421289e+00 3.17462316e+00 3.16506231e+00 3.15553025e+00 3.14602689e+00 + 3.13655215e+00 3.12710594e+00 3.11768818e+00 3.10829878e+00 3.09893764e+00 + 3.08960470e+00 3.08029986e+00 3.07102305e+00 3.06177416e+00 3.05255313e+00 + 3.04335987e+00 3.03419429e+00 3.02505631e+00 3.01594584e+00 3.00686282e+00 + 2.99780714e+00 2.98877873e+00 2.97977752e+00 2.97080340e+00 2.96185631e+00 + 2.95293617e+00 2.94404288e+00 2.93517638e+00 2.92633658e+00 2.91752340e+00 + 2.90873676e+00 2.89997657e+00 2.89124277e+00 2.88253527e+00 2.87385399e+00 + 2.86519886e+00 2.85656979e+00 2.84796670e+00 2.83938952e+00 2.83083817e+00 + 2.82231258e+00 2.81381265e+00 2.80533833e+00 2.79688952e+00 2.78846616e+00 + 2.78006816e+00 2.77169546e+00 2.76334797e+00 2.75502561e+00 2.74672832e+00 + 2.73845602e+00 2.73020863e+00 2.72198607e+00 2.71378828e+00 2.70561518e+00 + 2.69746668e+00 2.68934273e+00 2.68124324e+00 2.67316815e+00 2.66511737e+00 + 2.65709084e+00 2.64908848e+00 2.64111022e+00 2.63315598e+00 2.62522570e+00 + 2.61731930e+00 2.60943672e+00 2.60157787e+00 2.59374268e+00 2.58593110e+00 + 2.57814304e+00 2.57037843e+00 2.56263721e+00 2.55491930e+00 2.54722463e+00 + 2.53955314e+00 2.53190474e+00 2.52427939e+00 2.51667699e+00 2.50909749e+00 + 2.50154082e+00 2.49400691e+00 2.48649568e+00 2.47900708e+00 2.47154102e+00 + 2.46409745e+00 2.45667630e+00 2.44927750e+00 2.44190098e+00 2.43454668e+00 + 2.42721452e+00 2.41990444e+00 2.41261638e+00 2.40535027e+00 2.39810604e+00 + 2.39088363e+00 2.38368297e+00 2.37650400e+00 2.36934664e+00 2.36221084e+00 + 2.35509653e+00 2.34800365e+00 2.34093212e+00 2.33388190e+00 2.32685290e+00 + 2.31984508e+00 2.31285835e+00 2.30589268e+00 2.29894797e+00 2.29202419e+00 + 2.28512125e+00 2.27823911e+00 2.27137769e+00 2.26453693e+00 2.25771678e+00 + 2.25091717e+00 2.24413803e+00 2.23737931e+00 2.23064095e+00 2.22392288e+00 + 2.21722504e+00 2.21054737e+00 2.20388982e+00 2.19725231e+00 2.19063479e+00 + 2.18403721e+00 2.17745949e+00 2.17090158e+00 2.16436343e+00 2.15784496e+00 + 2.15134613e+00 2.14486686e+00 2.13840711e+00 2.13196682e+00 2.12554592e+00 + 2.11914436e+00 2.11276208e+00 2.10639902e+00 2.10005512e+00 2.09373033e+00 + 2.08742458e+00 2.08113783e+00 2.07487001e+00 2.06862107e+00 2.06239095e+00 + 2.05617959e+00 2.04998693e+00 2.04381293e+00 2.03765752e+00 2.03150058e+00 + 2.02525094e+00 2.01889835e+00 2.01244387e+00 2.00588860e+00 1.99923363e+00 + 1.99248005e+00 1.98562896e+00 1.97868149e+00 1.97163875e+00 1.96450186e+00 + 1.95727197e+00 1.94995020e+00 1.94253771e+00 1.93503564e+00 1.92744516e+00 + 1.91976742e+00 1.91200360e+00 1.90415486e+00 1.89622239e+00 1.88820736e+00 + 1.88011098e+00 1.87193441e+00 1.86367888e+00 1.85534557e+00 1.84693568e+00 + 1.83845044e+00 1.82989104e+00 1.82125871e+00 1.81255466e+00 1.80378012e+00 + 1.79493630e+00 1.78602444e+00 1.77704576e+00 1.76800150e+00 1.75889289e+00 + 1.74972116e+00 1.74048755e+00 1.73119331e+00 1.72183966e+00 1.71242786e+00 + 1.70295915e+00 1.69343476e+00 1.68385594e+00 1.67422395e+00 1.66454001e+00 + 1.65480539e+00 1.64502132e+00 1.63518905e+00 1.62530982e+00 1.61538488e+00 + 1.60541547e+00 1.59540285e+00 1.58534824e+00 1.57525289e+00 1.56511804e+00 + 1.55494493e+00 1.54473479e+00 1.53448887e+00 1.52420839e+00 1.51389459e+00 + 1.50354870e+00 1.49317194e+00 1.48276553e+00 1.47233071e+00 1.46186869e+00 + 1.45138068e+00 1.44086791e+00 1.43033157e+00 1.41977288e+00 1.40919304e+00 + 1.39859326e+00 1.38797471e+00 1.37733861e+00 1.36668614e+00 1.35601847e+00 + 1.34533680e+00 1.33464230e+00 1.32393613e+00 1.31321947e+00 1.30249348e+00 + 1.29175931e+00 1.28101811e+00 1.27027104e+00 1.25951922e+00 1.24876381e+00 + 1.23800593e+00 1.22724670e+00 1.21648724e+00 1.20572867e+00 1.19497209e+00 + 1.18421861e+00 1.17346932e+00 1.16272530e+00 1.15198765e+00 1.14125743e+00 + 1.13053572e+00 1.11982358e+00 1.10912207e+00 1.09843223e+00 1.08775510e+00 + 1.07709172e+00 1.06644313e+00 1.05581033e+00 1.04519434e+00 1.03459617e+00 + 1.02401681e+00 1.01345726e+00 1.00291849e+00 9.92401492e-01 9.81907221e-01 + 9.71436639e-01 9.60990696e-01 9.50570336e-01 9.40176493e-01 9.29810093e-01 + 9.19472056e-01 9.09163289e-01 8.98884695e-01 8.88637166e-01 8.78421586e-01 + 8.68238831e-01 8.58089766e-01 8.47975250e-01 8.37896131e-01 8.27853250e-01 + 8.17847437e-01 8.07879515e-01 7.97950295e-01 7.88060583e-01 7.78211172e-01 + 7.68402847e-01 7.58636385e-01 7.48912551e-01 7.39232104e-01 7.29595791e-01 + 7.20004351e-01 7.10458511e-01 7.00958991e-01 6.91506501e-01 6.82101741e-01 + 6.72745401e-01 6.63438161e-01 6.54180693e-01 6.44973658e-01 6.35817706e-01 + 6.26713480e-01 6.17661611e-01 6.08662720e-01 5.99717420e-01 5.90826313e-01 + 5.81989990e-01 5.73209034e-01 5.64484016e-01 5.55815499e-01 5.47204035e-01 + 5.38650166e-01 5.30154423e-01 5.21717329e-01 5.13339396e-01 5.05021126e-01 + 4.96763010e-01 4.88565529e-01 4.80429157e-01 4.72354354e-01 4.64341571e-01 + 4.56391251e-01 4.48503824e-01 4.40679712e-01 4.32919326e-01 4.25223066e-01 + 4.17591324e-01 4.10024482e-01 4.02522909e-01 3.95086967e-01 3.87717007e-01 + 3.80413369e-01 3.73176384e-01 3.66006374e-01 3.58903648e-01 3.51868509e-01 + 3.44901247e-01 3.38002144e-01 3.31171470e-01 3.24409487e-01 3.17716446e-01 + 3.11092590e-01 3.04538150e-01 2.98053348e-01 2.91638397e-01 2.85293500e-01 + 2.79018849e-01 2.72814628e-01 2.66681011e-01 2.60618162e-01 2.54626235e-01 + 2.48705377e-01 2.42855722e-01 2.37077396e-01 2.31370518e-01 2.25735193e-01 + 2.20171521e-01 2.14679590e-01 2.09259479e-01 2.03911260e-01 1.98634994e-01 + 1.93430733e-01 1.88298520e-01 1.83238389e-01 1.78250365e-01 1.73334466e-01 + 1.68490697e-01 1.63719059e-01 1.59019540e-01 1.54392122e-01 1.49836778e-01 + 1.45353470e-01 1.40942156e-01 1.36602781e-01 1.32335284e-01 1.28139595e-01 + 1.24015636e-01 1.19963320e-01 1.15982553e-01 1.12073231e-01 1.08235245e-01 + 1.04468474e-01 1.00772792e-01 9.71480639e-02 9.35941475e-02 9.01108922e-02 + 8.66981398e-02 8.33557246e-02 8.00834733e-02 7.68812050e-02 7.37487314e-02 + 7.06858571e-02 6.76923789e-02 6.47680867e-02 6.19127631e-02 5.91261838e-02 + 5.64081173e-02 5.37583251e-02 5.11765620e-02 4.86625757e-02 4.62161076e-02 + 4.38368919e-02 4.15246567e-02 3.92791232e-02 3.71000065e-02 3.49870149e-02 + 3.29398508e-02 3.09582101e-02 2.90417828e-02 2.71902526e-02 2.54032973e-02 + 2.36805888e-02 2.20217931e-02 2.04265704e-02 1.88945754e-02 1.74254570e-02 + 1.60188586e-02 1.46744181e-02 1.33917682e-02 1.21705362e-02 1.10103441e-02 + 9.91080879e-03 8.87154218e-03 7.89215113e-03 6.97223762e-03 6.11139877e-03 + 5.30922700e-03 4.56531002e-03 3.87923100e-03 3.25056856e-03 2.67889694e-03 + 2.16378599e-03 1.70480133e-03 1.30150438e-03 9.53452457e-04 6.60198872e-04 + 4.21292975e-04 2.36280265e-04 1.04702458e-04 2.60975699e-05 0.00000000e+00 + 2.04047571e-06 2.05095161e-06 2.09195486e-06 2.13377786e-06 2.17643701e-06 + 2.21994900e-06 2.26433090e-06 2.30960010e-06 2.35577433e-06 2.40287169e-06 + 2.45091064e-06 2.49991000e-06 2.54988896e-06 2.60086712e-06 2.65286446e-06 + 2.70590133e-06 2.75999854e-06 2.81517728e-06 2.87145916e-06 2.92886625e-06 + 2.98742104e-06 3.04714647e-06 3.10806596e-06 3.17020336e-06 3.23358303e-06 + 3.29822981e-06 3.36416903e-06 3.43142652e-06 3.50002865e-06 3.57000228e-06 + 3.64137486e-06 3.71417433e-06 3.78842924e-06 3.86416867e-06 3.94142230e-06 + 4.02022042e-06 4.10059389e-06 4.18257420e-06 4.26619350e-06 4.35148453e-06 + 4.43848073e-06 4.52721619e-06 4.61772567e-06 4.71004464e-06 4.80420928e-06 + 4.90025648e-06 4.99822390e-06 5.09814990e-06 5.20007365e-06 5.30403510e-06 + 5.41007497e-06 5.51823482e-06 5.62855704e-06 5.74108485e-06 5.85586235e-06 + 5.97293451e-06 6.09234722e-06 6.21414726e-06 6.33838236e-06 6.46510120e-06 + 6.59435345e-06 6.72618974e-06 6.86066175e-06 6.99782215e-06 7.13772471e-06 + 7.28042424e-06 7.42597666e-06 7.57443900e-06 7.72586945e-06 7.88032734e-06 + 8.03787319e-06 8.19856875e-06 8.36247698e-06 8.52966210e-06 8.70018965e-06 + 8.87412642e-06 9.05154059e-06 9.23250167e-06 9.41708058e-06 9.60534964e-06 + 9.79738263e-06 9.99325479e-06 1.01930429e-05 1.03968252e-05 1.06046816e-05 + 1.08166935e-05 1.10329440e-05 1.12535179e-05 1.14785015e-05 1.17079831e-05 + 1.19420525e-05 1.21808015e-05 1.24243236e-05 1.26727143e-05 1.29260709e-05 + 1.31844927e-05 1.34480809e-05 1.37169388e-05 1.39911718e-05 1.42708873e-05 + 1.45561950e-05 1.48472067e-05 1.51440363e-05 1.54468002e-05 1.57556170e-05 + 1.60706078e-05 1.63918960e-05 1.67196075e-05 1.70538706e-05 1.73948164e-05 + 1.77425785e-05 1.80972932e-05 1.84590994e-05 1.88281389e-05 1.92045563e-05 + 1.95884992e-05 1.99801179e-05 2.03795660e-05 2.07869999e-05 2.12025794e-05 + 2.16264672e-05 2.20588295e-05 2.24998357e-05 2.29496586e-05 2.34084745e-05 + 2.38764631e-05 2.43538078e-05 2.48406958e-05 2.53373177e-05 2.58438682e-05 + 2.63605457e-05 2.68875528e-05 2.74250960e-05 2.79733858e-05 2.85326371e-05 + 2.91030692e-05 2.96849054e-05 3.02783738e-05 3.08837069e-05 3.15011420e-05 + 3.21309210e-05 3.27732907e-05 3.34285027e-05 3.40968139e-05 3.47784861e-05 + 3.54737864e-05 3.61829873e-05 3.69063666e-05 3.76442079e-05 3.83968003e-05 + 3.91644386e-05 3.99474237e-05 4.07460623e-05 4.15606675e-05 4.23915584e-05 + 4.32390606e-05 4.41035062e-05 4.49852339e-05 4.58845893e-05 4.68019247e-05 + 4.77375996e-05 4.86919807e-05 4.96654419e-05 5.06583647e-05 5.16711381e-05 + 5.27041590e-05 5.37578322e-05 5.48325706e-05 5.59287953e-05 5.70469358e-05 + 5.81874303e-05 5.93507257e-05 6.05372778e-05 6.17475516e-05 6.29820212e-05 + 6.42411705e-05 6.55254929e-05 6.68354915e-05 6.81716797e-05 6.95345810e-05 + 7.09247296e-05 7.23426700e-05 7.37889581e-05 7.52641604e-05 7.67688550e-05 + 7.83036314e-05 7.98690912e-05 8.14658477e-05 8.30945266e-05 8.47557661e-05 + 8.64502170e-05 8.81785434e-05 8.99414225e-05 9.17395450e-05 9.35736156e-05 + 9.54443528e-05 9.73524898e-05 9.92987741e-05 1.01283968e-04 1.03308851e-04 + 1.05374214e-04 1.07480868e-04 1.09629638e-04 1.11821367e-04 1.14056912e-04 + 1.16337149e-04 1.18662973e-04 1.21035295e-04 1.23455043e-04 1.25923167e-04 + 1.28440634e-04 1.31008428e-04 1.33627558e-04 1.36299049e-04 1.39023948e-04 + 1.41803323e-04 1.44638262e-04 1.47529876e-04 1.50479299e-04 1.53487686e-04 + 1.56556216e-04 1.59686091e-04 1.62878538e-04 1.66134807e-04 1.69456174e-04 + 1.72843941e-04 1.76299435e-04 1.79824010e-04 1.83419046e-04 1.87085954e-04 + 1.90826168e-04 1.94641156e-04 1.98532411e-04 2.02501458e-04 2.06549852e-04 + 2.10679180e-04 2.14891059e-04 2.19187140e-04 2.23569105e-04 2.28038673e-04 + 2.32597593e-04 2.37247653e-04 2.41990673e-04 2.46828513e-04 2.51763068e-04 + 2.56796271e-04 2.61930094e-04 2.67166549e-04 2.72507687e-04 2.77955601e-04 + 2.83512425e-04 2.89180337e-04 2.94961556e-04 3.00858349e-04 3.06873025e-04 + 3.13007940e-04 3.19265499e-04 3.25648153e-04 3.32158403e-04 3.38798798e-04 + 3.45571942e-04 3.52480486e-04 3.59527138e-04 3.66714659e-04 3.74045863e-04 + 3.81523625e-04 3.89150872e-04 3.96930593e-04 4.04865836e-04 4.12959709e-04 + 4.21215383e-04 4.29636094e-04 4.38225138e-04 4.46985881e-04 4.55921756e-04 + 4.65036262e-04 4.74332970e-04 4.83815523e-04 4.93487634e-04 5.03353093e-04 + 5.13415764e-04 5.23679589e-04 5.34148588e-04 5.44826864e-04 5.55718598e-04 + 5.66828057e-04 5.78159592e-04 5.89717643e-04 6.01506737e-04 6.13531492e-04 + 6.25796617e-04 6.38306917e-04 6.51067293e-04 6.64082741e-04 6.77358361e-04 + 6.90899352e-04 7.04711018e-04 7.18798769e-04 7.33168121e-04 7.47824704e-04 + 7.62774258e-04 7.78022638e-04 7.93575816e-04 8.09439883e-04 8.25621052e-04 + 8.42125661e-04 8.58960174e-04 8.76131183e-04 8.93645413e-04 9.11509723e-04 + 9.29731109e-04 9.48316707e-04 9.67273794e-04 9.86609795e-04 1.00633228e-03 + 1.02644898e-03 1.04696776e-03 1.06789666e-03 1.08924387e-03 1.11101776e-03 + 1.13322685e-03 1.15587984e-03 1.17898559e-03 1.20255316e-03 1.22659177e-03 + 1.25111082e-03 1.27611993e-03 1.30162888e-03 1.32764766e-03 1.35418646e-03 + 1.38125566e-03 1.40886586e-03 1.43702787e-03 1.46575272e-03 1.49505165e-03 + 1.52493613e-03 1.55541785e-03 1.58650875e-03 1.61822099e-03 1.65056700e-03 + 1.68355942e-03 1.71721118e-03 1.75153544e-03 1.78654563e-03 1.82225546e-03 + 1.85867890e-03 1.89583021e-03 1.93372392e-03 1.97237487e-03 2.01179817e-03 + 2.05200925e-03 2.09302385e-03 2.13485800e-03 2.17752809e-03 2.22105080e-03 + 2.26544317e-03 2.31072255e-03 2.35690665e-03 2.40401356e-03 2.45206169e-03 + 2.50106983e-03 2.55105716e-03 2.60204323e-03 2.65404797e-03 2.70709172e-03 + 2.76119524e-03 2.81637966e-03 2.87266659e-03 2.93007801e-03 2.98863639e-03 + 3.04836461e-03 3.10928602e-03 3.17142445e-03 3.23480418e-03 3.29944999e-03 + 3.36538715e-03 3.43264142e-03 3.50123910e-03 3.57120699e-03 3.64257244e-03 + 3.71536332e-03 3.78960809e-03 3.86533575e-03 3.94257589e-03 4.02135868e-03 + 4.10171490e-03 4.18367594e-03 4.26727380e-03 4.35254115e-03 4.43951127e-03 + 4.52821813e-03 4.61869637e-03 4.71098131e-03 4.80510898e-03 4.90111612e-03 + 4.99904022e-03 5.09891950e-03 5.20079293e-03 5.30470026e-03 5.41068205e-03 + 5.51877965e-03 5.62903523e-03 5.74149179e-03 5.85619321e-03 5.97318421e-03 + 6.09251043e-03 6.21421839e-03 6.33835555e-03 6.46497030e-03 6.59411200e-03 + 6.72583098e-03 6.86017857e-03 6.99720713e-03 7.13697005e-03 7.27952178e-03 + 7.42491784e-03 7.57321486e-03 7.72447059e-03 7.87874393e-03 8.03609494e-03 + 8.19658487e-03 8.36027618e-03 8.52723257e-03 8.69751901e-03 8.87120173e-03 + 9.04834830e-03 9.22902762e-03 9.41330992e-03 9.60126687e-03 9.79297152e-03 + 9.98849837e-03 1.01879234e-02 1.03913241e-02 1.05987794e-02 1.08103700e-02 + 1.10261779e-02 1.12462870e-02 1.14707827e-02 1.16997521e-02 1.19332840e-02 + 1.21714690e-02 1.24143995e-02 1.26621696e-02 1.29148754e-02 1.31726148e-02 + 1.34354876e-02 1.37035958e-02 1.39770430e-02 1.42559352e-02 1.45403802e-02 + 1.48304882e-02 1.51263713e-02 1.54281440e-02 1.57359229e-02 1.60498269e-02 + 1.63699774e-02 1.66964980e-02 1.70295147e-02 1.73691561e-02 1.77155533e-02 + 1.80688398e-02 1.84291520e-02 1.87966285e-02 1.91714111e-02 1.95536442e-02 + 1.99434748e-02 2.03410530e-02 2.07465318e-02 2.11600670e-02 2.15818178e-02 + 2.20119461e-02 2.24506171e-02 2.28979992e-02 2.33542642e-02 2.38195870e-02 + 2.42941460e-02 2.47781231e-02 2.52717037e-02 2.57750767e-02 2.62884346e-02 + 2.68119739e-02 2.73458947e-02 2.78904008e-02 2.84457003e-02 2.90120049e-02 + 2.95895307e-02 3.01784978e-02 3.07791305e-02 3.13916574e-02 3.20163116e-02 + 3.26533305e-02 3.33029562e-02 3.39654353e-02 3.46410192e-02 3.53299639e-02 + 3.60325306e-02 3.67489851e-02 3.74795985e-02 3.82246470e-02 3.89844119e-02 + 3.97591800e-02 4.05492435e-02 4.13549000e-02 4.21764528e-02 4.30142108e-02 + 4.38684889e-02 4.47396078e-02 4.56278942e-02 4.65336809e-02 4.74573070e-02 + 4.83991179e-02 4.93594654e-02 5.03387080e-02 5.13372105e-02 5.23553449e-02 + 5.33934898e-02 5.44520309e-02 5.55313610e-02 5.66318801e-02 5.77539956e-02 + 5.88981224e-02 6.00646830e-02 6.12541074e-02 6.24668337e-02 6.37033078e-02 + 6.49639840e-02 6.62493243e-02 6.75597995e-02 6.88958888e-02 7.02580798e-02 + 7.16468690e-02 7.30627619e-02 7.45062728e-02 7.59779252e-02 7.74782520e-02 + 7.90077955e-02 8.05671075e-02 8.21567496e-02 8.37772930e-02 8.54293193e-02 + 8.71134198e-02 8.88301965e-02 9.05802615e-02 9.23642375e-02 9.41827581e-02 + 9.60364675e-02 9.79260210e-02 9.98520852e-02 1.01815338e-01 1.03816468e-01 + 1.05856176e-01 1.07935174e-01 1.10054188e-01 1.12213953e-01 1.14415217e-01 + 1.16658742e-01 1.18945300e-01 1.21275677e-01 1.23650671e-01 1.26071094e-01 + 1.28537770e-01 1.31051536e-01 1.33613243e-01 1.36223754e-01 1.38883946e-01 + 1.41594711e-01 1.44356954e-01 1.47171591e-01 1.50039557e-01 1.52961797e-01 + 1.55939273e-01 1.58972958e-01 1.62063842e-01 1.65212929e-01 1.68421236e-01 + 1.71689797e-01 1.75019659e-01 1.78411885e-01 1.81867550e-01 1.85387748e-01 + 1.88973584e-01 1.92626180e-01 1.96346674e-01 2.00136216e-01 2.03995974e-01 + 2.07927128e-01 2.11930876e-01 2.16008430e-01 2.20161015e-01 2.24389873e-01 + 2.28696261e-01 2.33081449e-01 2.37546724e-01 2.42093385e-01 2.46722749e-01 + 2.51436143e-01 2.56234912e-01 2.61120413e-01 2.66094017e-01 2.71157111e-01 + 2.76311093e-01 2.81557374e-01 2.86897380e-01 2.92332550e-01 2.97864332e-01 + 3.03494190e-01 3.09223599e-01 3.15054044e-01 3.20987022e-01 3.27024041e-01 + 3.33166619e-01 3.39416285e-01 3.45774574e-01 3.52243033e-01 3.58823217e-01 + 3.65516687e-01 3.72325013e-01 3.79249770e-01 3.86292540e-01 3.93454910e-01 + 4.00738470e-01 4.08144814e-01 4.15675541e-01 4.23332251e-01 4.31116542e-01 + 4.39030017e-01 4.47074276e-01 4.55250916e-01 4.63561533e-01 4.72007720e-01 + 4.80591063e-01 4.89313143e-01 4.98175533e-01 5.07179799e-01 5.16327497e-01 + 5.25620170e-01 5.35059350e-01 5.44646556e-01 5.54383291e-01 5.64271040e-01 + 5.74311272e-01 5.84505434e-01 5.94854953e-01 6.05361233e-01 6.16025651e-01 + 6.26849561e-01 6.37834285e-01 6.48981116e-01 6.60291318e-01 6.71766115e-01 + 6.83406701e-01 6.95214229e-01 7.07189811e-01 7.19334521e-01 7.31649384e-01 + 7.44135384e-01 7.56793451e-01 7.69624469e-01 7.82629267e-01 7.95808620e-01 + 8.09163245e-01 8.22693799e-01 8.36400879e-01 8.50285015e-01 8.64346674e-01 + 8.78586252e-01 8.93004073e-01 9.07600389e-01 9.22375377e-01 9.37329134e-01 + 9.52461677e-01 9.67772941e-01 9.83262776e-01 9.98930942e-01 1.01477711e+00 + 1.03080087e+00 1.04700170e+00 1.06337899e+00 1.07993204e+00 1.09666004e+00 + 1.11356207e+00 1.13063713e+00 1.14788410e+00 1.16530174e+00 1.18288873e+00 + 1.20064361e+00 1.21856482e+00 1.23665070e+00 1.25489945e+00 1.27330916e+00 + 1.29187782e+00 1.31060328e+00 1.32948329e+00 1.34851546e+00 1.36769729e+00 + 1.38702617e+00 1.40649935e+00 1.42611396e+00 1.44586702e+00 1.46575542e+00 + 1.48577594e+00 1.50592523e+00 1.52619982e+00 1.54659613e+00 1.56711045e+00 + 1.58773895e+00 1.60847772e+00 1.62932269e+00 1.65026971e+00 1.67131450e+00 + 1.69245268e+00 1.71367978e+00 1.73499120e+00 1.75638226e+00 1.77784817e+00 + 1.79938405e+00 1.82098493e+00 1.84264575e+00 1.86436137e+00 1.88612657e+00 + 1.90793604e+00 1.92978441e+00 1.95166624e+00 1.97357603e+00 1.99550821e+00 + 2.01745715e+00 2.03941720e+00 2.06138263e+00 2.08334768e+00 2.10530657e+00 + 2.12725347e+00 2.14918254e+00 2.17108791e+00 2.19296369e+00 2.21480400e+00 + 2.23660295e+00 2.25835463e+00 2.28005318e+00 2.30169271e+00 2.32326738e+00 + 2.34477136e+00 2.36619884e+00 2.38754407e+00 2.40880133e+00 2.42996492e+00 + 2.45102924e+00 2.47198870e+00 2.49283781e+00 2.51357111e+00 2.53418325e+00 + 2.55466891e+00 2.57502290e+00 2.59524008e+00 2.61531541e+00 2.63524395e+00 + 2.65502086e+00 2.67464139e+00 2.69410090e+00 2.71339486e+00 2.73251886e+00 + 2.75146860e+00 2.77023990e+00 2.78882870e+00 2.80723106e+00 2.82544319e+00 + 2.84346139e+00 2.86128213e+00 2.87890199e+00 2.89631769e+00 2.91352609e+00 + 2.93052419e+00 2.94730912e+00 2.96387815e+00 2.98022870e+00 2.99635831e+00 + 3.01226468e+00 3.02794565e+00 3.04339918e+00 3.05862340e+00 3.07361655e+00 + 3.08837703e+00 3.10290336e+00 3.11719422e+00 3.13124840e+00 3.14506485e+00 + 3.15864262e+00 3.17198093e+00 3.18507910e+00 3.19793658e+00 3.21055297e+00 + 3.22292797e+00 3.23506140e+00 3.24695322e+00 3.25860348e+00 3.27001236e+00 + 3.28118016e+00 3.29210726e+00 3.30279418e+00 3.31324151e+00 3.32344997e+00 + 3.33342036e+00 3.34315358e+00 3.35265062e+00 3.36191256e+00 3.37094056e+00 + 3.37973589e+00 3.38829985e+00 3.39663387e+00 3.40473941e+00 3.41261803e+00 + 3.42027135e+00 3.42770104e+00 3.43490886e+00 3.44189660e+00 3.44866613e+00 + 3.45521936e+00 3.46155824e+00 3.46768480e+00 3.47360108e+00 3.47930919e+00 + 3.48481125e+00 3.49010944e+00 3.49520597e+00 3.50010308e+00 3.50480303e+00 + 3.50930811e+00 3.51362065e+00 3.51774299e+00 3.52167748e+00 3.52542650e+00 + 3.52899245e+00 3.53237772e+00 3.53558474e+00 3.53861594e+00 3.54147374e+00 + 3.54416059e+00 3.54667892e+00 3.54903119e+00 3.55121984e+00 3.55324732e+00 + 3.55511606e+00 3.55682850e+00 3.55838708e+00 3.55979422e+00 3.56105233e+00 + 3.56216384e+00 3.56313112e+00 3.56395658e+00 3.56464257e+00 3.56519147e+00 + 3.56560561e+00 3.56588732e+00 3.56603892e+00 3.56606270e+00 3.56596093e+00 + 3.56573588e+00 3.56538979e+00 3.56492486e+00 3.56434331e+00 3.56364730e+00 + 3.56283899e+00 3.56192051e+00 3.56089397e+00 3.55976147e+00 3.55852505e+00 + 3.55718677e+00 3.55574864e+00 3.55421264e+00 3.55258076e+00 3.55085491e+00 + 3.54903704e+00 3.54712902e+00 3.54513272e+00 3.54304999e+00 3.54088264e+00 + 3.53863246e+00 3.53630122e+00 3.53389065e+00 3.53140248e+00 3.52883839e+00 + 3.52620004e+00 3.52348907e+00 3.52070710e+00 3.51785572e+00 3.51493648e+00 + 3.51195092e+00 3.50890056e+00 3.50578689e+00 3.50261136e+00 3.49937543e+00 + 3.49608051e+00 3.49272798e+00 3.48931922e+00 3.48585557e+00 3.48233835e+00 + 3.47876886e+00 3.47514837e+00 3.47147815e+00 3.46775941e+00 3.46399337e+00 + 3.46018121e+00 3.45632410e+00 3.45242318e+00 3.44847957e+00 3.44449438e+00 + 3.44046868e+00 3.43640354e+00 3.43229999e+00 3.42815906e+00 3.42398175e+00 + 3.41976903e+00 3.41552187e+00 3.41124122e+00 3.40692800e+00 3.40258311e+00 + 3.39820746e+00 3.39380190e+00 3.38936729e+00 3.38490448e+00 3.38041427e+00 + 3.37589748e+00 3.37135489e+00 3.36678728e+00 3.36219540e+00 3.35757999e+00 + 3.35294177e+00 3.34828146e+00 3.34359975e+00 3.33889733e+00 3.33417485e+00 + 3.32943298e+00 3.32467235e+00 3.31989358e+00 3.31509730e+00 3.31028410e+00 + 3.30545456e+00 3.30060926e+00 3.29574877e+00 3.29087362e+00 3.28598437e+00 + 3.28108153e+00 3.27616563e+00 3.27123716e+00 3.26629662e+00 3.26134448e+00 + 3.25638123e+00 3.25140733e+00 3.24642321e+00 3.24142933e+00 3.23642612e+00 + 3.23141399e+00 3.22639337e+00 3.22136464e+00 3.21632821e+00 3.21128447e+00 + 3.20623378e+00 3.20117652e+00 3.19611304e+00 3.19104371e+00 3.18596885e+00 + 3.18088881e+00 3.17580392e+00 3.17071449e+00 3.16562085e+00 3.16052328e+00 + 3.15542211e+00 3.15031760e+00 3.14521006e+00 3.14009976e+00 3.13498697e+00 + 3.12987197e+00 3.12475499e+00 3.11963632e+00 3.11451618e+00 3.10939482e+00 + 3.10427248e+00 3.09914938e+00 3.09402576e+00 3.08890183e+00 3.08377781e+00 + 3.07865391e+00 3.07353033e+00 3.06840726e+00 3.06328491e+00 3.05816347e+00 + 3.05304312e+00 3.04792404e+00 3.04280640e+00 3.03769039e+00 3.03257616e+00 + 3.02746388e+00 3.02235372e+00 3.01724582e+00 3.01214034e+00 3.00703743e+00 + 3.00193723e+00 2.99683988e+00 2.99174552e+00 2.98665429e+00 2.98156632e+00 + 2.97648172e+00 2.97140063e+00 2.96632317e+00 2.96124945e+00 2.95617960e+00 + 2.95111371e+00 2.94605191e+00 2.94099429e+00 2.93594097e+00 2.93089203e+00 + 2.92584759e+00 2.92080773e+00 2.91577254e+00 2.91074213e+00 2.90571657e+00 + 2.90069596e+00 2.89568037e+00 2.89066989e+00 2.88566460e+00 2.88066457e+00 + 2.87566987e+00 2.87068059e+00 2.86569679e+00 2.86071855e+00 2.85574592e+00 + 2.85077897e+00 2.84581777e+00 2.84086238e+00 2.83591285e+00 2.83096925e+00 + 2.82603163e+00 2.82110005e+00 2.81617456e+00 2.81125521e+00 2.80634205e+00 + 2.80143513e+00 2.79653450e+00 2.79164020e+00 2.78675227e+00 2.78187077e+00 + 2.77699573e+00 2.77212719e+00 2.76726520e+00 2.76240978e+00 2.75756098e+00 + 2.75271883e+00 2.74788336e+00 2.74305462e+00 2.73823262e+00 2.73341741e+00 + 2.72860901e+00 2.72380745e+00 2.71901276e+00 2.71422497e+00 2.70944410e+00 + 2.70467018e+00 2.69990323e+00 2.69514328e+00 2.69039035e+00 2.68564445e+00 + 2.68090562e+00 2.67617386e+00 2.67144921e+00 2.66673167e+00 2.66202127e+00 + 2.65731803e+00 2.65262195e+00 2.64793306e+00 2.64325137e+00 2.63857689e+00 + 2.63390964e+00 2.62924963e+00 2.62459688e+00 2.61995139e+00 2.61531318e+00 + 2.61068225e+00 2.60605863e+00 2.60144230e+00 2.59683330e+00 2.59223161e+00 + 2.58763726e+00 2.58305025e+00 2.57847059e+00 2.57389828e+00 2.56933332e+00 + 2.56477573e+00 2.56022551e+00 2.55568267e+00 2.55114720e+00 2.54661911e+00 + 2.54209841e+00 2.53758510e+00 2.53307918e+00 2.52858066e+00 2.52408953e+00 + 2.51960579e+00 2.51512946e+00 2.51066052e+00 2.50619899e+00 2.50174486e+00 + 2.49729812e+00 2.49285879e+00 2.48842685e+00 2.48400232e+00 2.47958518e+00 + 2.47517543e+00 2.47077309e+00 2.46637813e+00 2.46199056e+00 2.45761038e+00 + 2.45323759e+00 2.44887217e+00 2.44451414e+00 2.44016348e+00 2.43582019e+00 + 2.43148426e+00 2.42715571e+00 2.42283451e+00 2.41852066e+00 2.41421416e+00 + 2.40991501e+00 2.40562320e+00 2.40133873e+00 2.39706158e+00 2.39279176e+00 + 2.38852925e+00 2.38427406e+00 2.38002617e+00 2.37578559e+00 2.37155229e+00 + 2.36732629e+00 2.36310756e+00 2.35889611e+00 2.35469192e+00 2.35049500e+00 + 2.34630533e+00 2.34212290e+00 2.33794771e+00 2.33377975e+00 2.32961902e+00 + 2.32546550e+00 2.32131918e+00 2.31718007e+00 2.31304815e+00 2.30892341e+00 + 2.30480585e+00 2.30069545e+00 2.29659221e+00 2.29249613e+00 2.28840718e+00 + 2.28432536e+00 2.28025067e+00 2.27618310e+00 2.27212263e+00 2.26806926e+00 + 2.26402298e+00 2.25998377e+00 2.25595164e+00 2.25192657e+00 2.24790854e+00 + 2.24389756e+00 2.23989362e+00 2.23589669e+00 2.23190679e+00 2.22792388e+00 + 2.22394797e+00 2.21997904e+00 2.21601709e+00 2.21206211e+00 2.20811408e+00 + 2.20417300e+00 2.20023885e+00 2.19631163e+00 2.19239132e+00 2.18847792e+00 + 2.18457142e+00 2.18067180e+00 2.17677906e+00 2.17289318e+00 2.16901416e+00 + 2.16514198e+00 2.16127664e+00 2.15741813e+00 2.15356642e+00 2.14972153e+00 + 2.14588342e+00 2.14205210e+00 2.13822755e+00 2.13440977e+00 2.13059873e+00 + 2.12679444e+00 2.12299688e+00 2.11920604e+00 2.11542191e+00 2.11164448e+00 + 2.10787374e+00 2.10410968e+00 2.10035229e+00 2.09660155e+00 2.09285746e+00 + 2.08912001e+00 2.08538918e+00 2.08166497e+00 2.07794736e+00 2.07423635e+00 + 2.07053191e+00 2.06683406e+00 2.06314276e+00 2.05945801e+00 2.05577981e+00 + 2.05210813e+00 2.04844298e+00 2.04478433e+00 2.04113218e+00 2.03748651e+00 + 2.03384733e+00 2.03021461e+00 2.02658834e+00 2.02296852e+00 2.01935513e+00 + 2.01574817e+00 2.01214761e+00 2.00855346e+00 2.00496570e+00 2.00138432e+00 + 1.99780931e+00 1.99424066e+00 1.99067835e+00 1.98712239e+00 1.98357275e+00 + 1.98002942e+00 1.97649240e+00 1.97296168e+00 1.96943724e+00 1.96591907e+00 + 1.96240717e+00 1.95890152e+00 1.95540211e+00 1.95190893e+00 1.94842197e+00 + 1.94494122e+00 1.94146667e+00 1.93799831e+00 1.93453613e+00 1.93108011e+00 + 1.92763025e+00 1.92418654e+00 1.92074896e+00 1.91731750e+00 1.91389217e+00 + 1.91047293e+00 1.90705979e+00 1.90365273e+00 1.90025175e+00 1.89685682e+00 + 1.89346795e+00 1.89008512e+00 1.88670832e+00 1.88333754e+00 1.87997276e+00 + 1.87661399e+00 1.87326121e+00 1.86991440e+00 1.86657357e+00 1.86323869e+00 + 1.85990976e+00 1.85658676e+00 1.85326969e+00 1.84995854e+00 1.84665329e+00 + 1.84335394e+00 1.84006048e+00 1.83677289e+00 1.83349116e+00 1.83021529e+00 + 1.82694527e+00 1.82368107e+00 1.82042271e+00 1.81717015e+00 1.81392340e+00 + 1.81068244e+00 1.80744727e+00 1.80421786e+00 1.80099422e+00 1.79777634e+00 + 1.79456419e+00 1.79135778e+00 1.78815710e+00 1.78496212e+00 1.78177285e+00 + 1.77858926e+00 1.77541136e+00 1.77223914e+00 1.76907257e+00 1.76591166e+00 + 1.76275639e+00 1.75960675e+00 1.75646274e+00 1.75332434e+00 1.75019154e+00 + 1.74706433e+00 1.74394271e+00 1.74082665e+00 1.73771617e+00 1.73461123e+00 + 1.73151184e+00 1.72841799e+00 1.72532965e+00 1.72224683e+00 1.71916952e+00 + 1.71609770e+00 1.71303137e+00 1.70997051e+00 1.70691511e+00 1.70386518e+00 + 1.70082068e+00 1.69778163e+00 1.69474800e+00 1.69171979e+00 1.68869699e+00 + 1.68567958e+00 1.68266757e+00 1.67966093e+00 1.67665967e+00 1.67366376e+00 + 1.67067320e+00 1.66768799e+00 1.66470810e+00 1.66173354e+00 1.65876429e+00 + 1.65580034e+00 1.65284169e+00 1.64988832e+00 1.64694023e+00 1.64399740e+00 + 1.64105983e+00 1.63812751e+00 1.63520042e+00 1.63227856e+00 1.62936192e+00 + 1.62645049e+00 1.62354426e+00 1.62064322e+00 1.61774737e+00 1.61485669e+00 + 1.61197117e+00 1.60909080e+00 1.60621558e+00 1.60334550e+00 1.60048054e+00 + 1.59762070e+00 1.59476597e+00 1.59191634e+00 1.58907180e+00 1.58623234e+00 + 1.58339795e+00 1.58056863e+00 1.57774436e+00 1.57492513e+00 1.57211094e+00 + 1.56930178e+00 1.56649764e+00 1.56369851e+00 1.56090438e+00 1.55811524e+00 + 1.55533108e+00 1.55255190e+00 1.54977768e+00 1.54700842e+00 1.54424410e+00 + 1.54148473e+00 1.53873028e+00 1.53598076e+00 1.53323614e+00 1.53049643e+00 + 1.52776162e+00 1.52503169e+00 1.52230664e+00 1.51958646e+00 1.51687113e+00 + 1.51416066e+00 1.51145503e+00 1.50875424e+00 1.50605826e+00 1.50336711e+00 + 1.50068077e+00 1.49799922e+00 1.49532247e+00 1.49265049e+00 1.48998329e+00 + 1.48732086e+00 1.48466319e+00 1.48201026e+00 1.47936207e+00 1.47671861e+00 + 1.47407988e+00 1.47144586e+00 1.46881655e+00 1.46619193e+00 1.46357201e+00 + 1.46095676e+00 1.45834619e+00 1.45574029e+00 1.45313903e+00 1.45054243e+00 + 1.44795047e+00 1.44536313e+00 1.44278042e+00 1.44020233e+00 1.43762884e+00 + 1.43505995e+00 1.43249565e+00 1.42993593e+00 1.42738079e+00 1.42483021e+00 + 1.42228418e+00 1.41974271e+00 1.41720578e+00 1.41467338e+00 1.41214550e+00 + 1.40962214e+00 1.40710330e+00 1.40458895e+00 1.40207909e+00 1.39957372e+00 + 1.39707283e+00 1.39457640e+00 1.39208443e+00 1.38959692e+00 1.38711385e+00 + 1.38463522e+00 1.38216102e+00 1.37969124e+00 1.37722587e+00 1.37476490e+00 + 1.37230834e+00 1.36985616e+00 1.36740837e+00 1.36496495e+00 1.36252589e+00 + 1.36009119e+00 1.35766085e+00 1.35523484e+00 1.35281317e+00 1.35039583e+00 + 1.34798281e+00 1.34557410e+00 1.34316969e+00 1.34076958e+00 1.33837375e+00 + 1.33598221e+00 1.33359495e+00 1.33121194e+00 1.32883320e+00 1.32645870e+00 + 1.32408845e+00 1.32172244e+00 1.31936065e+00 1.31700308e+00 1.31464973e+00 + 1.31230058e+00 1.30995562e+00 1.30761486e+00 1.30527828e+00 1.30294588e+00 + 1.30061764e+00 1.29829356e+00 1.29597364e+00 1.29365786e+00 1.29134622e+00 + 1.28903871e+00 1.28673532e+00 1.28443605e+00 1.28214089e+00 1.27984983e+00 + 1.27756286e+00 1.27527998e+00 1.27300118e+00 1.27072645e+00 1.26845578e+00 + 1.26618917e+00 1.26392662e+00 1.26166810e+00 1.25941362e+00 1.25716317e+00 + 1.25491674e+00 1.25267433e+00 1.25043592e+00 1.24820151e+00 1.24597109e+00 + 1.24374466e+00 1.24152221e+00 1.23930373e+00 1.23708921e+00 1.23487865e+00 + 1.23267204e+00 1.23046938e+00 1.22827064e+00 1.22607584e+00 1.22388496e+00 + 1.22169800e+00 1.21951494e+00 1.21733578e+00 1.21516052e+00 1.21298915e+00 + 1.21082165e+00 1.20865803e+00 1.20649827e+00 1.20434237e+00 1.20219033e+00 + 1.20004213e+00 1.19789777e+00 1.19575724e+00 1.19362053e+00 1.19148765e+00 + 1.18935857e+00 1.18723330e+00 1.18511183e+00 1.18299415e+00 1.18088025e+00 + 1.17877013e+00 1.17666378e+00 1.17456119e+00 1.17246236e+00 1.17036728e+00 + 1.16827595e+00 1.16618835e+00 1.16410448e+00 1.16202434e+00 1.15994791e+00 + 1.15787520e+00 1.15580618e+00 1.15374087e+00 1.15167924e+00 1.14962130e+00 + 1.14756704e+00 1.14551644e+00 1.14346951e+00 1.14142624e+00 1.13938662e+00 + 1.13735064e+00 1.13531831e+00 1.13328960e+00 1.13126452e+00 1.12924306e+00 + 1.12722521e+00 1.12521096e+00 1.12320032e+00 1.12119326e+00 1.11918980e+00 + 1.11718991e+00 1.11519360e+00 1.11320085e+00 1.11121167e+00 1.10922604e+00 + 1.10724396e+00 1.10526542e+00 1.10329041e+00 1.10131893e+00 1.09935098e+00 + 1.09738655e+00 1.09542562e+00 1.09346820e+00 1.09151427e+00 1.08956384e+00 + 1.08761689e+00 1.08567342e+00 1.08373343e+00 1.08179690e+00 1.07986383e+00 + 1.07793421e+00 1.07600805e+00 1.07408532e+00 1.07216603e+00 1.07025017e+00 + 1.06833774e+00 1.06642872e+00 1.06452311e+00 1.06262091e+00 1.06072211e+00 + 1.05882670e+00 1.05693467e+00 1.05504603e+00 1.05316076e+00 1.05127886e+00 + 1.04940033e+00 1.04752515e+00 1.04565332e+00 1.04378484e+00 1.04191969e+00 + 1.04005788e+00 1.03819939e+00 1.03634423e+00 1.03449238e+00 1.03264384e+00 + 1.03079860e+00 1.02895666e+00 1.02711801e+00 1.02528265e+00 1.02345057e+00 + 1.02162176e+00 1.01979621e+00 1.01797393e+00 1.01615491e+00 1.01433914e+00 + 1.01252661e+00 1.01071732e+00 1.00891126e+00 1.00710843e+00 1.00530883e+00 + 1.00351243e+00 1.00171925e+00 9.99929274e-01 9.98142494e-01 9.96358908e-01 + 9.94578508e-01 9.92801290e-01 9.91027248e-01 9.89256375e-01 9.87488667e-01 + 9.85724118e-01 9.83962722e-01 9.82204473e-01 9.80449366e-01 9.78697395e-01 + 9.76948555e-01 9.75202840e-01 9.73460244e-01 9.71720763e-01 9.69984389e-01 + 9.68251118e-01 9.66520945e-01 9.64793863e-01 9.63069867e-01 9.61348952e-01 + 9.59631112e-01 9.57916341e-01 9.56204635e-01 9.54495987e-01 9.52790393e-01 + 9.51087846e-01 9.49388341e-01 9.47691874e-01 9.45998438e-01 9.44308027e-01 + 9.42620638e-01 9.40936263e-01 9.39254899e-01 9.37576539e-01 9.35901178e-01 + 9.34228810e-01 9.32559431e-01 9.30893035e-01 9.29229617e-01 9.27569171e-01 + 9.25911692e-01 9.24257175e-01 9.22605615e-01 9.20957005e-01 9.19311342e-01 + 9.17668619e-01 9.16028831e-01 9.14391974e-01 9.12758042e-01 9.11127029e-01 + 9.09498931e-01 9.07873742e-01 9.06251457e-01 9.04632071e-01 9.03015578e-01 + 9.01401974e-01 8.99791254e-01 8.98183411e-01 8.96578442e-01 8.94976341e-01 + 8.93377102e-01 8.91780721e-01 8.90187193e-01 8.88596512e-01 8.87008674e-01 + 8.85423673e-01 8.83841504e-01 8.82262163e-01 8.80685643e-01 8.79111941e-01 + 8.77541050e-01 8.75972967e-01 8.74407686e-01 8.72845201e-01 8.71285509e-01 + 8.69728604e-01 8.68174481e-01 8.66623135e-01 8.65074560e-01 8.63528754e-01 + 8.61985709e-01 8.60445422e-01 8.58907887e-01 8.57373099e-01 8.55841054e-01 + 8.54311746e-01 8.52785172e-01 8.51261325e-01 8.49740201e-01 8.48201192e-01 + 8.46617382e-01 8.44988908e-01 8.43316032e-01 8.41599021e-01 8.39838147e-01 + 8.38033686e-01 8.36185917e-01 8.34295124e-01 8.32361596e-01 8.30385625e-01 + 8.28367507e-01 8.26307542e-01 8.24206035e-01 8.22063293e-01 8.19879628e-01 + 8.17655357e-01 8.15390797e-01 8.13086273e-01 8.10742111e-01 8.08358641e-01 + 8.05936196e-01 8.03475115e-01 8.00975736e-01 7.98438405e-01 7.95863469e-01 + 7.93251278e-01 7.90602186e-01 7.87916549e-01 7.85194728e-01 7.82437085e-01 + 7.79643987e-01 7.76815803e-01 7.73952904e-01 7.71055665e-01 7.68124463e-01 + 7.65159679e-01 7.62161696e-01 7.59130898e-01 7.56067674e-01 7.52972415e-01 + 7.49845513e-01 7.46687363e-01 7.43498364e-01 7.40278916e-01 7.37029420e-01 + 7.33750281e-01 7.30441906e-01 7.27104703e-01 7.23739083e-01 7.20345459e-01 + 7.16924244e-01 7.13475856e-01 7.10000712e-01 7.06499233e-01 7.02971840e-01 + 6.99418956e-01 6.95841006e-01 6.92238416e-01 6.88611614e-01 6.84961030e-01 + 6.81287093e-01 6.77590236e-01 6.73870892e-01 6.70129494e-01 6.66366479e-01 + 6.62582283e-01 6.58777343e-01 6.54952099e-01 6.51106988e-01 6.47242453e-01 + 6.43358933e-01 6.39456870e-01 6.35536708e-01 6.31598889e-01 6.27643857e-01 + 6.23672057e-01 6.19683933e-01 6.15679931e-01 6.11660495e-01 6.07626073e-01 + 6.03577111e-01 5.99514054e-01 5.95437349e-01 5.91347444e-01 5.87244785e-01 + 5.83129819e-01 5.79002992e-01 5.74864752e-01 5.70715544e-01 5.66555816e-01 + 5.62386013e-01 5.58206581e-01 5.54017965e-01 5.49820611e-01 5.45614964e-01 + 5.41401466e-01 5.37180563e-01 5.32952696e-01 5.28718309e-01 5.24477842e-01 + 5.20231737e-01 5.15980433e-01 5.11724371e-01 5.07463987e-01 5.03199721e-01 + 4.98932007e-01 4.94661282e-01 4.90387980e-01 4.86112534e-01 4.81835376e-01 + 4.77556936e-01 4.73277645e-01 4.68997930e-01 4.64718219e-01 4.60438936e-01 + 4.56160507e-01 4.51883352e-01 4.47607894e-01 4.43334552e-01 4.39063743e-01 + 4.34795884e-01 4.30531389e-01 4.26270671e-01 4.22014140e-01 4.17762207e-01 + 4.13515277e-01 4.09273757e-01 4.05038049e-01 4.00808555e-01 3.96585674e-01 + 3.92369804e-01 3.88161340e-01 3.83960674e-01 3.79768198e-01 3.75584299e-01 + 3.71409365e-01 3.67243780e-01 3.63087924e-01 3.58942178e-01 3.54806918e-01 + 3.50682519e-01 3.46569353e-01 3.42467789e-01 3.38378195e-01 3.34300933e-01 + 3.30236368e-01 3.26184857e-01 3.22146757e-01 3.18122421e-01 3.14112201e-01 + 3.10116445e-01 3.06135499e-01 3.02169705e-01 2.98219402e-01 2.94284928e-01 + 2.90366616e-01 2.86464798e-01 2.82579801e-01 2.78711951e-01 2.74861569e-01 + 2.71028975e-01 2.67214484e-01 2.63418409e-01 2.59641060e-01 2.55882743e-01 + 2.52143761e-01 2.48424414e-01 2.44725000e-01 2.41045812e-01 2.37387139e-01 + 2.33749270e-01 2.30132488e-01 2.26537072e-01 2.22963301e-01 2.19411448e-01 + 2.15881782e-01 2.12374571e-01 2.08890078e-01 2.05428563e-01 2.01990283e-01 + 1.98575490e-01 1.95184433e-01 1.91817359e-01 1.88474510e-01 1.85156124e-01 + 1.81862438e-01 1.78593682e-01 1.75350084e-01 1.72131869e-01 1.68939258e-01 + 1.65772468e-01 1.62631713e-01 1.59517201e-01 1.56429140e-01 1.53367731e-01 + 1.50333174e-01 1.47325663e-01 1.44345390e-01 1.41392542e-01 1.38467304e-01 + 1.35569855e-01 1.32700372e-01 1.29859028e-01 1.27045990e-01 1.24261425e-01 + 1.21505494e-01 1.18778353e-01 1.16080157e-01 1.13411056e-01 1.10771196e-01 + 1.08160719e-01 1.05579764e-01 1.03028466e-01 1.00506954e-01 9.80153575e-02 + 9.55537985e-02 9.31223968e-02 9.07212680e-02 8.83505241e-02 8.60102730e-02 + 8.37006190e-02 8.14216626e-02 7.91735004e-02 7.69562251e-02 7.47699258e-02 + 7.26146878e-02 7.04905924e-02 6.83977173e-02 6.63361363e-02 6.43059195e-02 + 6.23071332e-02 6.03398398e-02 5.84040982e-02 5.64999633e-02 5.46274863e-02 + 5.27867148e-02 5.09776925e-02 4.92004594e-02 4.74550517e-02 4.57415023e-02 + 4.40598398e-02 4.24100894e-02 4.07922728e-02 3.92064078e-02 3.76525084e-02 + 3.61305853e-02 3.46406454e-02 3.31826918e-02 3.17567243e-02 3.03627389e-02 + 2.90007281e-02 2.76706807e-02 2.63725820e-02 2.51064140e-02 2.38721547e-02 + 2.26697789e-02 2.14992579e-02 2.03605594e-02 1.92536477e-02 1.81784835e-02 + 1.71350243e-02 1.61232240e-02 1.51430332e-02 1.41943991e-02 1.32772654e-02 + 1.23915726e-02 1.15372579e-02 1.07142551e-02 9.92249463e-03 9.16190382e-03 + 8.43240666e-03 7.73392391e-03 7.06637314e-03 6.42966871e-03 5.82372182e-03 + 5.24844054e-03 4.70372977e-03 4.18949135e-03 3.70562400e-03 3.25202343e-03 + 2.82858225e-03 2.43519012e-03 2.07173366e-03 1.73809655e-03 1.43415952e-03 + 1.15980039e-03 9.14894082e-04 6.99312635e-04 5.12925259e-04 3.55598341e-04 + 2.27195472e-04 1.27577478e-04 5.66024399e-05 1.41257221e-05 0.00000000e+00 + 5.11971098e-01 5.11971098e-01 5.17242510e-01 5.23233505e-01 5.29293369e-01 + 5.35422881e-01 5.41622827e-01 5.47894004e-01 5.54237214e-01 5.60653272e-01 + 5.67142999e-01 5.73707225e-01 5.80346789e-01 5.87062542e-01 5.93855339e-01 + 6.00726049e-01 6.07675547e-01 6.14704719e-01 6.21814461e-01 6.29005677e-01 + 6.36279282e-01 6.43636201e-01 6.51077366e-01 6.58603723e-01 6.66216226e-01 + 6.73915839e-01 6.81703537e-01 6.89580304e-01 6.97547137e-01 7.05605040e-01 + 7.13755031e-01 7.21998138e-01 7.30335397e-01 7.38767858e-01 7.47296582e-01 + 7.55922638e-01 7.64647111e-01 7.73471093e-01 7.82395690e-01 7.91422019e-01 + 8.00551207e-01 8.09784394e-01 8.19122734e-01 8.28567388e-01 8.38119534e-01 + 8.47780359e-01 8.57551064e-01 8.67432860e-01 8.77426973e-01 8.87534640e-01 + 8.97757111e-01 9.08095650e-01 9.18551533e-01 9.29126046e-01 9.39820494e-01 + 9.50636190e-01 9.61574463e-01 9.72636655e-01 9.83824120e-01 9.95138227e-01 + 1.00658036e+00 1.01815191e+00 1.02985430e+00 1.04168894e+00 1.05365727e+00 + 1.06576075e+00 1.07800084e+00 1.09037902e+00 1.10289680e+00 1.11555567e+00 + 1.12835717e+00 1.14130283e+00 1.15439422e+00 1.16763289e+00 1.18102044e+00 + 1.19455846e+00 1.20824858e+00 1.22209242e+00 1.23609162e+00 1.25024786e+00 + 1.26456280e+00 1.27903815e+00 1.29367562e+00 1.30847692e+00 1.32344380e+00 + 1.33857802e+00 1.35388135e+00 1.36935559e+00 1.38500254e+00 1.40082403e+00 + 1.41682189e+00 1.43299799e+00 1.44935419e+00 1.46589240e+00 1.48261451e+00 + 1.49952245e+00 1.51661817e+00 1.53390362e+00 1.55138079e+00 1.56905166e+00 + 1.58691825e+00 1.60498258e+00 1.62324671e+00 1.64171270e+00 1.66038262e+00 + 1.67925859e+00 1.69834272e+00 1.71763713e+00 1.73714400e+00 1.75686548e+00 + 1.77680377e+00 1.79696108e+00 1.81733963e+00 1.83794166e+00 1.85876944e+00 + 1.87982524e+00 1.90111137e+00 1.92263014e+00 1.94438389e+00 1.96637497e+00 + 1.98860574e+00 2.01107861e+00 2.03379597e+00 2.05676026e+00 2.07997391e+00 + 2.10343939e+00 2.12715919e+00 2.15113579e+00 2.17537172e+00 2.19986952e+00 + 2.22463173e+00 2.24966092e+00 2.27495969e+00 2.30053064e+00 2.32637640e+00 + 2.35249962e+00 2.37890294e+00 2.40558905e+00 2.43256065e+00 2.45982045e+00 + 2.48737117e+00 2.51521557e+00 2.54335641e+00 2.57179648e+00 2.60053857e+00 + 2.62958549e+00 2.65894009e+00 2.68860520e+00 2.71858370e+00 2.74887845e+00 + 2.77949237e+00 2.81042835e+00 2.84168934e+00 2.87327827e+00 2.90519809e+00 + 2.93745179e+00 2.97004235e+00 3.00297276e+00 3.03624605e+00 3.06986525e+00 + 3.10383339e+00 3.13815354e+00 3.17282876e+00 3.20786213e+00 3.24325674e+00 + 3.27901571e+00 3.31514214e+00 3.35163917e+00 3.38850993e+00 3.42575757e+00 + 3.46338525e+00 3.50139614e+00 3.53979341e+00 3.57858025e+00 3.61775985e+00 + 3.65733542e+00 3.69731016e+00 3.73768729e+00 3.77847002e+00 3.81966159e+00 + 3.86126523e+00 3.90328416e+00 3.94572164e+00 3.98858089e+00 4.03186518e+00 + 4.07557773e+00 4.11972181e+00 4.16430066e+00 4.20931753e+00 4.25477566e+00 + 4.30067831e+00 4.34702870e+00 4.39383010e+00 4.44108572e+00 4.48879881e+00 + 4.53697258e+00 4.58561026e+00 4.63471506e+00 4.68429018e+00 4.73433881e+00 + 4.78486415e+00 4.83586936e+00 4.88735761e+00 4.93933204e+00 4.99179578e+00 + 5.04475196e+00 5.09820369e+00 5.15215403e+00 5.20660607e+00 5.26156285e+00 + 5.31702739e+00 5.37300271e+00 5.42949179e+00 5.48649757e+00 5.54402301e+00 + 5.60207099e+00 5.66064441e+00 5.71974611e+00 5.77937891e+00 5.83954559e+00 + 5.90024891e+00 5.96149159e+00 6.02327631e+00 6.08560572e+00 6.14848241e+00 + 6.21190897e+00 6.27588790e+00 6.34042169e+00 6.40551278e+00 6.47116356e+00 + 6.53737636e+00 6.60415348e+00 6.67149715e+00 6.73940957e+00 6.80789285e+00 + 6.87694909e+00 6.94658030e+00 7.01678842e+00 7.08757537e+00 7.15894297e+00 + 7.23089300e+00 7.30342714e+00 7.37654704e+00 7.45025425e+00 7.52455027e+00 + 7.59943651e+00 7.67491431e+00 7.75098493e+00 7.82764955e+00 7.90490929e+00 + 7.98276514e+00 8.06121804e+00 8.14026884e+00 8.21991829e+00 8.30016706e+00 + 8.38101571e+00 8.46246472e+00 8.54451447e+00 8.62716524e+00 8.71041720e+00 + 8.79427042e+00 8.87872489e+00 8.96378046e+00 9.04943689e+00 9.13569381e+00 + 9.22255077e+00 9.31000717e+00 9.39806232e+00 9.48671539e+00 9.57596544e+00 + 9.66581142e+00 9.75625214e+00 9.84728628e+00 9.93891240e+00 1.00311289e+01 + 1.01239342e+01 1.02173263e+01 1.03113033e+01 1.04058631e+01 1.05010035e+01 + 1.05967220e+01 1.06930162e+01 1.07898833e+01 1.08873205e+01 1.09853250e+01 + 1.10838934e+01 1.11830227e+01 1.12827094e+01 1.13829499e+01 1.14837404e+01 + 1.15850772e+01 1.16869562e+01 1.17893732e+01 1.18923238e+01 1.19958035e+01 + 1.20998077e+01 1.22043314e+01 1.23093699e+01 1.24149177e+01 1.25209698e+01 + 1.26275204e+01 1.27345640e+01 1.28420948e+01 1.29501068e+01 1.30585938e+01 + 1.31675494e+01 1.32769672e+01 1.33868405e+01 1.34971625e+01 1.36079262e+01 + 1.37191244e+01 1.38307497e+01 1.39427946e+01 1.40552516e+01 1.41681126e+01 + 1.42813698e+01 1.43950148e+01 1.45090394e+01 1.46234351e+01 1.47381932e+01 + 1.48533048e+01 1.49687609e+01 1.50845524e+01 1.52006699e+01 1.53171040e+01 + 1.54338449e+01 1.55508829e+01 1.56682081e+01 1.57858103e+01 1.59036792e+01 + 1.60218045e+01 1.61401756e+01 1.62587818e+01 1.63776122e+01 1.64966559e+01 + 1.66159016e+01 1.67353383e+01 1.68549545e+01 1.69747385e+01 1.70946789e+01 + 1.72147639e+01 1.73349814e+01 1.74553195e+01 1.75757662e+01 1.76963091e+01 + 1.78169358e+01 1.79376340e+01 1.80583911e+01 1.81791944e+01 1.83000312e+01 + 1.84208886e+01 1.85417538e+01 1.86626136e+01 1.87834551e+01 1.89042651e+01 + 1.90250303e+01 1.91457375e+01 1.92663733e+01 1.93869243e+01 1.95073771e+01 + 1.96277181e+01 1.97479338e+01 1.98680106e+01 1.99879349e+01 2.01076930e+01 + 2.02272714e+01 2.03466562e+01 2.04658338e+01 2.05847906e+01 2.07035127e+01 + 2.08219864e+01 2.09401981e+01 2.10581341e+01 2.11757807e+01 2.12931242e+01 + 2.14101510e+01 2.15268475e+01 2.16432002e+01 2.17591956e+01 2.18748201e+01 + 2.19900603e+01 2.21049030e+01 2.22193347e+01 2.23333424e+01 2.24469127e+01 + 2.25600327e+01 2.26726893e+01 2.27848696e+01 2.28965608e+01 2.30077502e+01 + 2.31184251e+01 2.32285731e+01 2.33381817e+01 2.34472387e+01 2.35557318e+01 + 2.36636490e+01 2.37709785e+01 2.38777084e+01 2.39838270e+01 2.40893229e+01 + 2.41941847e+01 2.42984012e+01 2.44019613e+01 2.45048542e+01 2.46070690e+01 + 2.47085951e+01 2.48094223e+01 2.49095401e+01 2.50089387e+01 2.51076079e+01 + 2.52055383e+01 2.53027201e+01 2.53991441e+01 2.54948011e+01 2.55896821e+01 + 2.56837784e+01 2.57770813e+01 2.58695826e+01 2.59612740e+01 2.60521475e+01 + 2.61421953e+01 2.62314100e+01 2.63197840e+01 2.64073104e+01 2.64939820e+01 + 2.65797922e+01 2.66647345e+01 2.67488026e+01 2.68319902e+01 2.69142917e+01 + 2.69957012e+01 2.70762134e+01 2.71558231e+01 2.72345251e+01 2.73123147e+01 + 2.73891873e+01 2.74651386e+01 2.75401644e+01 2.76142607e+01 2.76874239e+01 + 2.77596504e+01 2.78309370e+01 2.79012805e+01 2.79706782e+01 2.80391273e+01 + 2.81066254e+01 2.81731704e+01 2.82387601e+01 2.83033927e+01 2.83670667e+01 + 2.84297807e+01 2.84915333e+01 2.85523238e+01 2.86121511e+01 2.86710148e+01 + 2.87289145e+01 2.87858498e+01 2.88418209e+01 2.88968278e+01 2.89508709e+01 + 2.90039508e+01 2.90560681e+01 2.91072238e+01 2.91574190e+01 2.92066549e+01 + 2.92549329e+01 2.93022546e+01 2.93486219e+01 2.93940365e+01 2.94385007e+01 + 2.94820167e+01 2.95245868e+01 2.95662136e+01 2.96068999e+01 2.96466484e+01 + 2.96854623e+01 2.97233446e+01 2.97602986e+01 2.97963278e+01 2.98314357e+01 + 2.98656260e+01 2.98989025e+01 2.99312691e+01 2.99627299e+01 2.99932890e+01 + 3.00229508e+01 3.00517197e+01 3.00796001e+01 3.01065967e+01 3.01327141e+01 + 3.01579573e+01 3.01823311e+01 3.02058406e+01 3.02284907e+01 3.02502868e+01 + 3.02712341e+01 3.02913379e+01 3.03106037e+01 3.03290370e+01 3.03466434e+01 + 3.03634285e+01 3.03793980e+01 3.03945578e+01 3.04089136e+01 3.04224715e+01 + 3.04352373e+01 3.04472170e+01 3.04584168e+01 3.04688428e+01 3.04785011e+01 + 3.04873979e+01 3.04955395e+01 3.05029321e+01 3.05095822e+01 3.05154960e+01 + 3.05206800e+01 3.05251405e+01 3.05288840e+01 3.05319170e+01 3.05342459e+01 + 3.05358773e+01 3.05368177e+01 3.05370737e+01 3.05366518e+01 3.05355586e+01 + 3.05338006e+01 3.05313844e+01 3.05283167e+01 3.05246041e+01 3.05202531e+01 + 3.05152703e+01 3.05096624e+01 3.05034359e+01 3.04965974e+01 3.04891535e+01 + 3.04811109e+01 3.04724759e+01 3.04632553e+01 3.04534556e+01 3.04430832e+01 + 3.04321448e+01 3.04206467e+01 3.04085955e+01 3.03959977e+01 3.03828596e+01 + 3.03691878e+01 3.03549885e+01 3.03402682e+01 3.03250332e+01 3.03092899e+01 + 3.02930445e+01 3.02763032e+01 3.02590725e+01 3.02413583e+01 3.02231670e+01 + 3.02045046e+01 3.01853773e+01 3.01657911e+01 3.01457522e+01 3.01252664e+01 + 3.01043398e+01 3.00829783e+01 3.00611878e+01 3.00389742e+01 3.00163433e+01 + 2.99933008e+01 2.99698526e+01 2.99460043e+01 2.99217616e+01 2.98971302e+01 + 2.98721155e+01 2.98467232e+01 2.98209588e+01 2.97948277e+01 2.97683353e+01 + 2.97414870e+01 2.97142882e+01 2.96867441e+01 2.96588599e+01 2.96306410e+01 + 2.96020923e+01 2.95732191e+01 2.95440265e+01 2.95145193e+01 2.94847027e+01 + 2.94545815e+01 2.94241606e+01 2.93934449e+01 2.93624392e+01 2.93311482e+01 + 2.92995767e+01 2.92677292e+01 2.92356105e+01 2.92032251e+01 2.91705775e+01 + 2.91376723e+01 2.91045137e+01 2.90711064e+01 2.90374545e+01 2.90035624e+01 + 2.89694344e+01 2.89350746e+01 2.89004873e+01 2.88656766e+01 2.88306465e+01 + 2.87954011e+01 2.87599444e+01 2.87242804e+01 2.86884129e+01 2.86523458e+01 + 2.86160830e+01 2.85796281e+01 2.85429851e+01 2.85061574e+01 2.84691489e+01 + 2.84319631e+01 2.83946035e+01 2.83570738e+01 2.83193774e+01 2.82815177e+01 + 2.82434981e+01 2.82053220e+01 2.81669928e+01 2.81285137e+01 2.80898879e+01 + 2.80511187e+01 2.80122092e+01 2.79731625e+01 2.79339818e+01 2.78946701e+01 + 2.78552303e+01 2.78156656e+01 2.77759787e+01 2.77361727e+01 2.76962503e+01 + 2.76562144e+01 2.76160678e+01 2.75758133e+01 2.75354535e+01 2.74949912e+01 + 2.74544289e+01 2.74137694e+01 2.73730151e+01 2.73321687e+01 2.72912326e+01 + 2.72502094e+01 2.72091014e+01 2.71679111e+01 2.71266408e+01 2.70852930e+01 + 2.70438699e+01 2.70023738e+01 2.69608070e+01 2.69191717e+01 2.68774700e+01 + 2.68357042e+01 2.67938764e+01 2.67519887e+01 2.67100431e+01 2.66680417e+01 + 2.66259866e+01 2.65838796e+01 2.65417228e+01 2.64995182e+01 2.64572675e+01 + 2.64149727e+01 2.63726356e+01 2.63302581e+01 2.62878419e+01 2.62453889e+01 + 2.62029007e+01 2.61603792e+01 2.61178259e+01 2.60752425e+01 2.60326308e+01 + 2.59899923e+01 2.59473287e+01 2.59046414e+01 2.58619321e+01 2.58192022e+01 + 2.57764534e+01 2.57336870e+01 2.56909045e+01 2.56481074e+01 2.56052971e+01 + 2.55624750e+01 2.55196424e+01 2.54768007e+01 2.54339513e+01 2.53910954e+01 + 2.53482344e+01 2.53053694e+01 2.52625019e+01 2.52196329e+01 2.51767637e+01 + 2.51338956e+01 2.50910296e+01 2.50481669e+01 2.50053088e+01 2.49624562e+01 + 2.49196103e+01 2.48767722e+01 2.48339430e+01 2.47911236e+01 2.47483152e+01 + 2.47055188e+01 2.46627353e+01 2.46199657e+01 2.45772111e+01 2.45344723e+01 + 2.44917503e+01 2.44490460e+01 2.44063604e+01 2.43636943e+01 2.43210485e+01 + 2.42784241e+01 2.42358217e+01 2.41932423e+01 2.41506866e+01 2.41081555e+01 + 2.40656497e+01 2.40231701e+01 2.39807174e+01 2.39382923e+01 2.38958957e+01 + 2.38535281e+01 2.38111904e+01 2.37688832e+01 2.37266073e+01 2.36843632e+01 + 2.36421517e+01 2.35999735e+01 2.35578291e+01 2.35157192e+01 2.34736444e+01 + 2.34316053e+01 2.33896025e+01 2.33476367e+01 2.33057084e+01 2.32638180e+01 + 2.32219664e+01 2.31801538e+01 2.31383810e+01 2.30966483e+01 2.30549564e+01 + 2.30133057e+01 2.29716968e+01 2.29301300e+01 2.28886060e+01 2.28471252e+01 + 2.28056879e+01 2.27642948e+01 2.27229461e+01 2.26816425e+01 2.26403842e+01 + 2.25991717e+01 2.25580054e+01 2.25168857e+01 2.24758130e+01 2.24347878e+01 + 2.23938102e+01 2.23528809e+01 2.23120000e+01 2.22711680e+01 2.22303851e+01 + 2.21896519e+01 2.21489685e+01 2.21083353e+01 2.20677526e+01 2.20272208e+01 + 2.19867401e+01 2.19463109e+01 2.19059334e+01 2.18656079e+01 2.18253348e+01 + 2.17851142e+01 2.17449465e+01 2.17048318e+01 2.16647706e+01 2.16247630e+01 + 2.15848092e+01 2.15449096e+01 2.15050643e+01 2.14652736e+01 2.14255376e+01 + 2.13858567e+01 2.13462310e+01 2.13066607e+01 2.12671461e+01 2.12276873e+01 + 2.11882845e+01 2.11489380e+01 2.11096478e+01 2.10704142e+01 2.10312374e+01 + 2.09921175e+01 2.09530546e+01 2.09140491e+01 2.08751009e+01 2.08362102e+01 + 2.07973773e+01 2.07586022e+01 2.07198851e+01 2.06812261e+01 2.06426254e+01 + 2.06040830e+01 2.05655991e+01 2.05271739e+01 2.04888074e+01 2.04504997e+01 + 2.04122511e+01 2.03740614e+01 2.03359310e+01 2.02978598e+01 2.02598479e+01 + 2.02218956e+01 2.01840027e+01 2.01461695e+01 2.01083960e+01 2.00706823e+01 + 2.00330285e+01 1.99954346e+01 1.99579007e+01 1.99204268e+01 1.98830132e+01 + 1.98456597e+01 1.98083665e+01 1.97711336e+01 1.97339610e+01 1.96968489e+01 + 1.96597973e+01 1.96228062e+01 1.95858756e+01 1.95490056e+01 1.95121963e+01 + 1.94754476e+01 1.94387597e+01 1.94021325e+01 1.93655660e+01 1.93290604e+01 + 1.92926155e+01 1.92562315e+01 1.92199084e+01 1.91836461e+01 1.91474447e+01 + 1.91113042e+01 1.90752247e+01 1.90392061e+01 1.90032484e+01 1.89673516e+01 + 1.89315158e+01 1.88957410e+01 1.88600271e+01 1.88243741e+01 1.87887821e+01 + 1.87532511e+01 1.87177809e+01 1.86823717e+01 1.86470234e+01 1.86117360e+01 + 1.85765095e+01 1.85413439e+01 1.85062392e+01 1.84711952e+01 1.84362122e+01 + 1.84012899e+01 1.83664284e+01 1.83316276e+01 1.82968876e+01 1.82622083e+01 + 1.82275897e+01 1.81930318e+01 1.81585344e+01 1.81240977e+01 1.80897215e+01 + 1.80554058e+01 1.80211507e+01 1.79869560e+01 1.79528217e+01 1.79187478e+01 + 1.78847342e+01 1.78507810e+01 1.78168880e+01 1.77830552e+01 1.77492826e+01 + 1.77155701e+01 1.76819177e+01 1.76483254e+01 1.76147930e+01 1.75813206e+01 + 1.75479081e+01 1.75145554e+01 1.74812625e+01 1.74480294e+01 1.74148559e+01 + 1.73817421e+01 1.73486879e+01 1.73156931e+01 1.72827579e+01 1.72498821e+01 + 1.72170656e+01 1.71843084e+01 1.71516105e+01 1.71189717e+01 1.70863920e+01 + 1.70538715e+01 1.70214099e+01 1.69890072e+01 1.69566634e+01 1.69243784e+01 + 1.68921522e+01 1.68599846e+01 1.68278756e+01 1.67958252e+01 1.67638333e+01 + 1.67318997e+01 1.67000245e+01 1.66682076e+01 1.66364489e+01 1.66047483e+01 + 1.65731058e+01 1.65415213e+01 1.65099947e+01 1.64785260e+01 1.64471150e+01 + 1.64157618e+01 1.63844662e+01 1.63532281e+01 1.63220476e+01 1.62909244e+01 + 1.62598586e+01 1.62288501e+01 1.61978987e+01 1.61670045e+01 1.61361673e+01 + 1.61053871e+01 1.60746637e+01 1.60439972e+01 1.60133874e+01 1.59828342e+01 + 1.59523377e+01 1.59218976e+01 1.58915139e+01 1.58611866e+01 1.58309155e+01 + 1.58007007e+01 1.57705419e+01 1.57404391e+01 1.57103923e+01 1.56804013e+01 + 1.56504661e+01 1.56205866e+01 1.55907628e+01 1.55609944e+01 1.55312816e+01 + 1.55016240e+01 1.54720218e+01 1.54424748e+01 1.54129829e+01 1.53835460e+01 + 1.53541641e+01 1.53248371e+01 1.52955649e+01 1.52663473e+01 1.52371844e+01 + 1.52080761e+01 1.51790222e+01 1.51500226e+01 1.51210774e+01 1.50921863e+01 + 1.50633494e+01 1.50345665e+01 1.50058375e+01 1.49771624e+01 1.49485411e+01 + 1.49199735e+01 1.48914595e+01 1.48629990e+01 1.48345920e+01 1.48062382e+01 + 1.47779378e+01 1.47496905e+01 1.47214964e+01 1.46933552e+01 1.46652670e+01 + 1.46372316e+01 1.46092489e+01 1.45813189e+01 1.45534415e+01 1.45256166e+01 + 1.44978440e+01 1.44701238e+01 1.44424559e+01 1.44148400e+01 1.43872762e+01 + 1.43597644e+01 1.43323045e+01 1.43048964e+01 1.42775400e+01 1.42502352e+01 + 1.42229819e+01 1.41957801e+01 1.41686296e+01 1.41415305e+01 1.41144825e+01 + 1.40874856e+01 1.40605397e+01 1.40336448e+01 1.40068007e+01 1.39800074e+01 + 1.39532647e+01 1.39265726e+01 1.38999310e+01 1.38733398e+01 1.38467989e+01 + 1.38203083e+01 1.37938678e+01 1.37674774e+01 1.37411369e+01 1.37148464e+01 + 1.36886056e+01 1.36624145e+01 1.36362731e+01 1.36101812e+01 1.35841388e+01 + 1.35581457e+01 1.35322019e+01 1.35063073e+01 1.34804618e+01 1.34546654e+01 + 1.34289178e+01 1.34032192e+01 1.33775692e+01 1.33519680e+01 1.33264153e+01 + 1.33009112e+01 1.32754555e+01 1.32500481e+01 1.32246889e+01 1.31993779e+01 + 1.31741150e+01 1.31489001e+01 1.31237331e+01 1.30986139e+01 1.30735424e+01 + 1.30485186e+01 1.30235423e+01 1.29986135e+01 1.29737321e+01 1.29488980e+01 + 1.29241112e+01 1.28993714e+01 1.28746788e+01 1.28500330e+01 1.28254342e+01 + 1.28008822e+01 1.27763769e+01 1.27519182e+01 1.27275060e+01 1.27031403e+01 + 1.26788210e+01 1.26545480e+01 1.26303212e+01 1.26061405e+01 1.25820059e+01 + 1.25579172e+01 1.25338743e+01 1.25098773e+01 1.24859260e+01 1.24620203e+01 + 1.24381601e+01 1.24143454e+01 1.23905761e+01 1.23668520e+01 1.23431732e+01 + 1.23195394e+01 1.22959508e+01 1.22724070e+01 1.22489082e+01 1.22254541e+01 + 1.22020448e+01 1.21786801e+01 1.21553599e+01 1.21320842e+01 1.21088529e+01 + 1.20856658e+01 1.20625230e+01 1.20394244e+01 1.20163698e+01 1.19933591e+01 + 1.19703924e+01 1.19474695e+01 1.19245903e+01 1.19017547e+01 1.18789628e+01 + 1.18562143e+01 1.18335092e+01 1.18108474e+01 1.17882289e+01 1.17656536e+01 + 1.17431214e+01 1.17206321e+01 1.16981858e+01 1.16757823e+01 1.16534217e+01 + 1.16311036e+01 1.16088283e+01 1.15865954e+01 1.15644050e+01 1.15422569e+01 + 1.15201512e+01 1.14980876e+01 1.14760662e+01 1.14540869e+01 1.14321495e+01 + 1.14102540e+01 1.13884004e+01 1.13665885e+01 1.13448182e+01 1.13230896e+01 + 1.13014025e+01 1.12797567e+01 1.12581524e+01 1.12365893e+01 1.12150674e+01 + 1.11935867e+01 1.11721470e+01 1.11507482e+01 1.11293904e+01 1.11080733e+01 + 1.10867970e+01 1.10655614e+01 1.10443663e+01 1.10232118e+01 1.10020977e+01 + 1.09810239e+01 1.09599905e+01 1.09389972e+01 1.09180441e+01 1.08971310e+01 + 1.08762579e+01 1.08554247e+01 1.08346313e+01 1.08138777e+01 1.07931638e+01 + 1.07724894e+01 1.07518546e+01 1.07312593e+01 1.07107033e+01 1.06901867e+01 + 1.06697093e+01 1.06492710e+01 1.06288718e+01 1.06085117e+01 1.05881904e+01 + 1.05679081e+01 1.05476645e+01 1.05274596e+01 1.05072934e+01 1.04871658e+01 + 1.04670766e+01 1.04470259e+01 1.04270135e+01 1.04070395e+01 1.03871036e+01 + 1.03672058e+01 1.03473462e+01 1.03275245e+01 1.03077407e+01 1.02879948e+01 + 1.02682866e+01 1.02486162e+01 1.02289834e+01 1.02093882e+01 1.01898304e+01 + 1.01703101e+01 1.01508271e+01 1.01313814e+01 1.01119729e+01 1.00926016e+01 + 1.00732673e+01 1.00539700e+01 1.00347096e+01 1.00154861e+01 9.99629938e+00 + 9.97714938e+00 9.95803602e+00 9.93895924e+00 9.91991896e+00 9.90091513e+00 + 9.88194766e+00 9.86301650e+00 9.84412157e+00 9.82526280e+00 9.80644012e+00 + 9.78765347e+00 9.76890278e+00 9.75018798e+00 9.73150899e+00 9.71286576e+00 + 9.69425822e+00 9.67568629e+00 9.65714991e+00 9.63864901e+00 9.62018353e+00 + 9.60175339e+00 9.58335854e+00 9.56499889e+00 9.54667439e+00 9.52838497e+00 + 9.51013056e+00 9.49191110e+00 9.47372652e+00 9.45557675e+00 9.43746172e+00 + 9.41938137e+00 9.40133564e+00 9.38332446e+00 9.36534776e+00 9.34740547e+00 + 9.32949754e+00 9.31162389e+00 9.29378447e+00 9.27597920e+00 9.25820801e+00 + 9.24047086e+00 9.22276766e+00 9.20509836e+00 9.18746289e+00 9.16986119e+00 + 9.15229319e+00 9.13475883e+00 9.11725804e+00 9.09979077e+00 9.08235693e+00 + 9.06495649e+00 9.04758936e+00 9.03025548e+00 9.01295480e+00 8.99568724e+00 + 8.97845276e+00 8.96125127e+00 8.94408272e+00 8.92694705e+00 8.90984419e+00 + 8.89277409e+00 8.87573667e+00 8.85873188e+00 8.84175965e+00 8.82481993e+00 + 8.80791264e+00 8.79103774e+00 8.77419515e+00 8.75738481e+00 8.74060667e+00 + 8.72386066e+00 8.70714672e+00 8.69046479e+00 8.67381480e+00 8.65719671e+00 + 8.64061044e+00 8.62405593e+00 8.60753313e+00 8.59104198e+00 8.57458240e+00 + 8.55815435e+00 8.54175777e+00 8.52539259e+00 8.50905875e+00 8.49275619e+00 + 8.47648486e+00 8.46024469e+00 8.44403563e+00 8.42785761e+00 8.41171057e+00 + 8.39559447e+00 8.37950923e+00 8.36345479e+00 8.34743111e+00 8.33143812e+00 + 8.31547576e+00 8.29954398e+00 8.28364271e+00 8.26777190e+00 8.25193148e+00 + 8.23612141e+00 8.22034162e+00 8.20459205e+00 8.18887265e+00 8.17318336e+00 + 8.15752412e+00 8.14189488e+00 8.12629557e+00 8.11072614e+00 8.09518654e+00 + 8.07967670e+00 8.06419657e+00 8.04874609e+00 8.03332521e+00 8.01793386e+00 + 8.00257200e+00 7.98723957e+00 7.97193650e+00 7.95666274e+00 7.94141825e+00 + 7.92620295e+00 7.91101680e+00 7.89585974e+00 7.88073172e+00 7.86563267e+00 + 7.85056255e+00 7.83552129e+00 7.82050885e+00 7.80552516e+00 7.79057018e+00 + 7.77564385e+00 7.76074610e+00 7.74587690e+00 7.73103618e+00 7.71622389e+00 + 7.70143997e+00 7.68668438e+00 7.67195705e+00 7.65725793e+00 7.64258697e+00 + 7.62794411e+00 7.61332931e+00 7.59874250e+00 7.58418364e+00 7.56965266e+00 + 7.55514952e+00 7.54067417e+00 7.52622655e+00 7.51180660e+00 7.49741427e+00 + 7.48304952e+00 7.46871229e+00 7.45440252e+00 7.44012017e+00 7.42586517e+00 + 7.41163749e+00 7.39743706e+00 7.38326383e+00 7.36911776e+00 7.35499879e+00 + 7.34090686e+00 7.32684193e+00 7.31280395e+00 7.29879286e+00 7.28480861e+00 + 7.27085115e+00 7.25692043e+00 7.24301640e+00 7.22913900e+00 7.21528819e+00 + 7.20146392e+00 7.18766613e+00 7.17389477e+00 7.16014979e+00 7.14643115e+00 + 7.13273879e+00 7.11907266e+00 7.10543272e+00 7.09181890e+00 7.07823116e+00 + 7.06466946e+00 7.05113374e+00 7.03762395e+00 7.02414004e+00 7.01068196e+00 + 6.99724967e+00 6.98384311e+00 6.97046224e+00 6.95710700e+00 6.94377734e+00 + 6.93047323e+00 6.91719460e+00 6.90394141e+00 6.89071361e+00 6.87751116e+00 + 6.86433400e+00 6.85118208e+00 6.83805536e+00 6.82495379e+00 6.81187732e+00 + 6.79882590e+00 6.78579949e+00 6.77279803e+00 6.75982148e+00 6.74686980e+00 + 6.73394292e+00 6.72104082e+00 6.70816343e+00 6.69531071e+00 6.68248262e+00 + 6.66967910e+00 6.65690011e+00 6.64414561e+00 6.63141554e+00 6.61870986e+00 + 6.60602853e+00 6.59337149e+00 6.58073869e+00 6.56813011e+00 6.55554567e+00 + 6.54298535e+00 6.53044909e+00 6.51793685e+00 6.50544859e+00 6.49298424e+00 + 6.48054378e+00 6.46812716e+00 6.45573432e+00 6.44336522e+00 6.43101983e+00 + 6.41869808e+00 6.40639995e+00 6.39412537e+00 6.38187431e+00 6.36964673e+00 + 6.35744257e+00 6.34526179e+00 6.33310435e+00 6.32097020e+00 6.30885930e+00 + 6.29677160e+00 6.28470707e+00 6.27266564e+00 6.26064729e+00 6.24865196e+00 + 6.23667962e+00 6.22473021e+00 6.21280370e+00 6.20090004e+00 6.18901918e+00 + 6.17716109e+00 6.16532571e+00 6.15351301e+00 6.14172295e+00 6.12995547e+00 + 6.11821054e+00 6.10648811e+00 6.09478814e+00 6.08311058e+00 6.07145165e+00 + 6.05974338e+00 6.04796088e+00 6.03610468e+00 6.02417530e+00 6.01217326e+00 + 6.00009907e+00 5.98795327e+00 5.97573636e+00 5.96344889e+00 5.95109137e+00 + 5.93866433e+00 5.92616829e+00 5.91360379e+00 5.90097135e+00 5.88827149e+00 + 5.87550476e+00 5.86267167e+00 5.84977277e+00 5.83680857e+00 5.82377962e+00 + 5.81068645e+00 5.79752958e+00 5.78430956e+00 5.77102692e+00 5.75768219e+00 + 5.74427591e+00 5.73080862e+00 5.71728085e+00 5.70369313e+00 5.69004601e+00 + 5.67634003e+00 5.66257572e+00 5.64875361e+00 5.63487426e+00 5.62093820e+00 + 5.60694596e+00 5.59289809e+00 5.57879513e+00 5.56463761e+00 5.55042608e+00 + 5.53616108e+00 5.52184315e+00 5.50747283e+00 5.49305067e+00 5.47857719e+00 + 5.46405294e+00 5.44947847e+00 5.43485432e+00 5.42018102e+00 5.40545912e+00 + 5.39068917e+00 5.37587169e+00 5.36100723e+00 5.34609634e+00 5.33113955e+00 + 5.31613741e+00 5.30109045e+00 5.28599922e+00 5.27086425e+00 5.25568610e+00 + 5.24046529e+00 5.22520236e+00 5.20989787e+00 5.19455234e+00 5.17916631e+00 + 5.16374033e+00 5.14827493e+00 5.13277065e+00 5.11722803e+00 5.10164761e+00 + 5.08602991e+00 5.07037549e+00 5.05468487e+00 5.03895859e+00 5.02319718e+00 + 5.00740119e+00 4.99157113e+00 4.97570756e+00 4.95981100e+00 4.94388198e+00 + 4.92792103e+00 4.91192870e+00 4.89590550e+00 4.87985196e+00 4.86376863e+00 + 4.84765602e+00 4.83151466e+00 4.81534508e+00 4.79914782e+00 4.78292338e+00 + 4.76667231e+00 4.75039512e+00 4.73409233e+00 4.71776448e+00 4.70141208e+00 + 4.68503565e+00 4.66863572e+00 4.65221280e+00 4.63576741e+00 4.61930007e+00 + 4.60281130e+00 4.58630161e+00 4.56977152e+00 4.55322154e+00 4.53665219e+00 + 4.52006398e+00 4.50345741e+00 4.48683300e+00 4.47019126e+00 4.45353270e+00 + 4.43685781e+00 4.42016712e+00 4.40346112e+00 4.38674032e+00 4.37000522e+00 + 4.35325631e+00 4.33649412e+00 4.31971912e+00 4.30293182e+00 4.28613271e+00 + 4.26932230e+00 4.25250108e+00 4.23566953e+00 4.21882815e+00 4.20197744e+00 + 4.18511788e+00 4.16824996e+00 4.15137416e+00 4.13449098e+00 4.11760089e+00 + 4.10070438e+00 4.08380193e+00 4.06689403e+00 4.04998114e+00 4.03306375e+00 + 4.01614234e+00 3.99921737e+00 3.98228932e+00 3.96535867e+00 3.94842588e+00 + 3.93149143e+00 3.91455578e+00 3.89761939e+00 3.88068273e+00 3.86374627e+00 + 3.84681046e+00 3.82987577e+00 3.81294265e+00 3.79601156e+00 3.77908296e+00 + 3.76215730e+00 3.74523503e+00 3.72831661e+00 3.71140247e+00 3.69449308e+00 + 3.67758887e+00 3.66069030e+00 3.64379779e+00 3.62691180e+00 3.61003276e+00 + 3.59316111e+00 3.57629729e+00 3.55944172e+00 3.54259485e+00 3.52575711e+00 + 3.50892892e+00 3.49211070e+00 3.47530290e+00 3.45850592e+00 3.44172019e+00 + 3.42494614e+00 3.40818418e+00 3.39143473e+00 3.37469820e+00 3.35797501e+00 + 3.34126556e+00 3.32457027e+00 3.30788955e+00 3.29122380e+00 3.27457343e+00 + 3.25793884e+00 3.24132042e+00 3.22471858e+00 3.20813372e+00 3.19156622e+00 + 3.17501649e+00 3.15848491e+00 3.14197187e+00 3.12547777e+00 3.10900298e+00 + 3.09254788e+00 3.07611287e+00 3.05969832e+00 3.04330461e+00 3.02693211e+00 + 3.01058120e+00 2.99425225e+00 2.97794563e+00 2.96166171e+00 2.94540085e+00 + 2.92916342e+00 2.91294978e+00 2.89676028e+00 2.88059530e+00 2.86445518e+00 + 2.84834028e+00 2.83225095e+00 2.81618754e+00 2.80015040e+00 2.78413987e+00 + 2.76815630e+00 2.75220003e+00 2.73627139e+00 2.72037074e+00 2.70449840e+00 + 2.68865471e+00 2.67283999e+00 2.65705459e+00 2.64129882e+00 2.62557301e+00 + 2.60987749e+00 2.59421257e+00 2.57857857e+00 2.56297582e+00 2.54740463e+00 + 2.53186530e+00 2.51635816e+00 2.50088350e+00 2.48544165e+00 2.47003289e+00 + 2.45465753e+00 2.43931588e+00 2.42400823e+00 2.40873488e+00 2.39349611e+00 + 2.37829223e+00 2.36312353e+00 2.34799028e+00 2.33289278e+00 2.31783130e+00 + 2.30280614e+00 2.28781756e+00 2.27286585e+00 2.25795128e+00 2.24307412e+00 + 2.22823464e+00 2.21343311e+00 2.19866980e+00 2.18394497e+00 2.16925889e+00 + 2.15461180e+00 2.14000397e+00 2.12543566e+00 2.11090712e+00 2.09641859e+00 + 2.08197033e+00 2.06756258e+00 2.05319559e+00 2.03886960e+00 2.02458485e+00 + 2.01034158e+00 1.99614002e+00 1.98198041e+00 1.96786297e+00 1.95378795e+00 + 1.93975556e+00 1.92576602e+00 1.91181957e+00 1.89791642e+00 1.88405680e+00 + 1.87024091e+00 1.85646897e+00 1.84274119e+00 1.82905778e+00 1.81541896e+00 + 1.80182492e+00 1.78827586e+00 1.77477200e+00 1.76131352e+00 1.74790063e+00 + 1.73453352e+00 1.72121237e+00 1.70793739e+00 1.69470876e+00 1.68152666e+00 + 1.66839128e+00 1.65530280e+00 1.64226140e+00 1.62926725e+00 1.61632054e+00 + 1.60342143e+00 1.59057009e+00 1.57776670e+00 1.56501142e+00 1.55230441e+00 + 1.53964583e+00 1.52703585e+00 1.51447463e+00 1.50196231e+00 1.48949906e+00 + 1.47708502e+00 1.46472034e+00 1.45240518e+00 1.44013967e+00 1.42792395e+00 + 1.41575818e+00 1.40364248e+00 1.39157700e+00 1.37956187e+00 1.36759721e+00 + 1.35568317e+00 1.34381987e+00 1.33200743e+00 1.32024598e+00 1.30853564e+00 + 1.29687653e+00 1.28526877e+00 1.27371247e+00 1.26220775e+00 1.25075472e+00 + 1.23935348e+00 1.22800415e+00 1.21670683e+00 1.20546162e+00 1.19426863e+00 + 1.18312795e+00 1.17203968e+00 1.16100391e+00 1.15002074e+00 1.13909026e+00 + 1.12821255e+00 1.11738771e+00 1.10661582e+00 1.09589696e+00 1.08523121e+00 + 1.07461865e+00 1.06405936e+00 1.05355341e+00 1.04310087e+00 1.03270182e+00 + 1.02235632e+00 1.01206445e+00 1.00182626e+00 9.91641811e-01 9.81511175e-01 + 9.71434406e-01 9.61411561e-01 9.51442695e-01 9.41527861e-01 9.31667110e-01 + 9.21860490e-01 9.12108049e-01 9.02409833e-01 8.92765883e-01 8.83176243e-01 + 8.73640950e-01 8.64160043e-01 8.54733558e-01 8.45361527e-01 8.36043983e-01 + 8.26780955e-01 8.17572473e-01 8.08418561e-01 7.99319245e-01 7.90274546e-01 + 7.81284486e-01 7.72349083e-01 7.63468354e-01 7.54642314e-01 7.45870976e-01 + 7.37154353e-01 7.28492452e-01 7.19885284e-01 7.11332852e-01 7.02835162e-01 + 6.94392216e-01 6.86004014e-01 6.77670556e-01 6.69391838e-01 6.61167856e-01 + 6.52998603e-01 6.44884072e-01 6.36824251e-01 6.28819131e-01 6.20868696e-01 + 6.12972932e-01 6.05131822e-01 5.97345348e-01 5.89613489e-01 5.81936223e-01 + 5.74313527e-01 5.66745375e-01 5.59231740e-01 5.51772594e-01 5.44367906e-01 + 5.37017644e-01 5.29721774e-01 5.22480262e-01 5.15293069e-01 5.08160159e-01 + 5.01081489e-01 4.94057020e-01 4.87086706e-01 4.80170504e-01 4.73308366e-01 + 4.66500245e-01 4.59746091e-01 4.53045851e-01 4.46399475e-01 4.39806906e-01 + 4.33268089e-01 4.26782967e-01 4.20351481e-01 4.13973569e-01 4.07649170e-01 + 4.01378220e-01 3.95160655e-01 3.88996407e-01 3.82885408e-01 3.76827589e-01 + 3.70822880e-01 3.64871206e-01 3.58972495e-01 3.53126672e-01 3.47333658e-01 + 3.41593377e-01 3.35905748e-01 3.30270691e-01 3.24688122e-01 3.19157958e-01 + 3.13680115e-01 3.08254504e-01 3.02881038e-01 2.97559628e-01 2.92290183e-01 + 2.87072611e-01 2.81906818e-01 2.76792711e-01 2.71730191e-01 2.66719163e-01 + 2.61759528e-01 2.56851184e-01 2.51994033e-01 2.47187969e-01 2.42432891e-01 + 2.37728692e-01 2.33075267e-01 2.28472507e-01 2.23920304e-01 2.19418548e-01 + 2.14967127e-01 2.10565929e-01 2.06214840e-01 2.01913745e-01 1.97662529e-01 + 1.93461073e-01 1.89309259e-01 1.85206967e-01 1.81154078e-01 1.77150468e-01 + 1.73196014e-01 1.69290593e-01 1.65434080e-01 1.61626346e-01 1.57867266e-01 + 1.54156710e-01 1.50494548e-01 1.46880650e-01 1.43314884e-01 1.39797116e-01 + 1.36327214e-01 1.32905040e-01 1.29530461e-01 1.26203337e-01 1.22923532e-01 + 1.19690905e-01 1.16505318e-01 1.13366628e-01 1.10274693e-01 1.07229370e-01 + 1.04230516e-01 1.01277984e-01 9.83716292e-02 9.55113045e-02 9.26968618e-02 + 8.99281522e-02 8.72050260e-02 8.45273325e-02 8.18949202e-02 7.93076365e-02 + 7.67653281e-02 7.42678408e-02 7.18150195e-02 6.94067082e-02 6.70427500e-02 + 6.47229875e-02 6.24472620e-02 6.02154142e-02 5.80272842e-02 5.58827108e-02 + 5.37815325e-02 5.17235866e-02 4.97087099e-02 4.77367383e-02 4.58075070e-02 + 4.39208503e-02 4.20766021e-02 4.02745951e-02 3.85146615e-02 3.67966330e-02 + 3.51203401e-02 3.34856129e-02 3.18922809e-02 3.03401727e-02 2.88291163e-02 + 2.73589389e-02 2.59294673e-02 2.45405275e-02 2.31919449e-02 2.18835440e-02 + 2.06151492e-02 1.93865837e-02 1.81976705e-02 1.70482319e-02 1.59380895e-02 + 1.48670644e-02 1.38349771e-02 1.28416476e-02 1.18868951e-02 1.09705385e-02 + 1.00923962e-02 9.25228574e-03 8.45002444e-03 7.68542897e-03 6.95831551e-03 + 6.26849972e-03 5.61579679e-03 5.00002140e-03 4.42098778e-03 3.87850967e-03 + 3.37240035e-03 2.90247264e-03 2.46853892e-03 2.07041115e-03 1.70790084e-03 + 1.38081907e-03 1.08897653e-03 8.32183493e-04 6.10249837e-04 4.22985050e-04 + 2.70198238e-04 1.51698135e-04 6.72931116e-05 1.67911789e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 9.99979585e-01 9.99876811e-01 9.99687440e-01 9.99411505e-01 + 9.99049054e-01 9.98600150e-01 9.98064871e-01 9.97443309e-01 9.96735573e-01 + 9.95941783e-01 9.95062079e-01 9.94096613e-01 9.93045551e-01 9.91909077e-01 + 9.90687386e-01 9.89380690e-01 9.87989216e-01 9.86513205e-01 9.84952913e-01 + 9.83308609e-01 9.81580579e-01 9.79769122e-01 9.77874552e-01 9.75897197e-01 + 9.73837399e-01 9.71695516e-01 9.69471919e-01 9.67166992e-01 9.64781135e-01 + 9.62314761e-01 9.59768298e-01 9.57142187e-01 9.54436882e-01 9.51652852e-01 + 9.48790581e-01 9.45850562e-01 9.42833306e-01 9.39739336e-01 9.36569187e-01 + 9.33323409e-01 9.30002564e-01 9.26607226e-01 9.23137986e-01 9.19595442e-01 + 9.15980210e-01 9.12292915e-01 9.08534196e-01 9.04704704e-01 9.00805103e-01 + 8.96836069e-01 8.92798288e-01 8.88692460e-01 8.84519297e-01 8.80279522e-01 + 8.75973868e-01 8.71603083e-01 8.67167922e-01 8.62669155e-01 8.58107560e-01 + 8.53483929e-01 8.48799061e-01 8.44053769e-01 8.39248875e-01 8.34385211e-01 + 8.29463619e-01 8.24484952e-01 8.19450073e-01 8.14359853e-01 8.09215176e-01 + 8.04016931e-01 7.98766019e-01 7.93463351e-01 7.88109844e-01 7.82706427e-01 + 7.77254034e-01 7.71753611e-01 7.66206111e-01 7.60612494e-01 7.54973730e-01 + 7.49290796e-01 7.43564675e-01 7.37796360e-01 7.31986850e-01 7.26137152e-01 + 7.20248279e-01 7.14321251e-01 7.08357095e-01 7.02356844e-01 6.96321537e-01 + 6.90252221e-01 6.84149946e-01 6.78015770e-01 6.71850755e-01 6.65655970e-01 + 6.59432486e-01 6.53181384e-01 6.46903745e-01 6.40600657e-01 6.34273212e-01 + 6.27922506e-01 6.21549639e-01 6.15155716e-01 6.08741843e-01 6.02309133e-01 + 5.95858698e-01 5.89391658e-01 5.82909132e-01 5.76412243e-01 5.69902117e-01 + 5.63379881e-01 5.56846666e-01 5.50303602e-01 5.43751824e-01 5.37192467e-01 + 5.30626667e-01 5.24055561e-01 5.17480288e-01 5.10901987e-01 5.04321797e-01 + 4.97740858e-01 4.91160311e-01 4.84581295e-01 4.78004950e-01 4.71432416e-01 + 4.64864830e-01 4.58303331e-01 4.51749056e-01 4.45203139e-01 4.38666715e-01 + 4.32140916e-01 4.25626873e-01 4.19125714e-01 4.12638565e-01 4.06166550e-01 + 3.99710791e-01 3.93272405e-01 3.86852508e-01 3.80452213e-01 3.74072627e-01 + 3.67714857e-01 3.61380003e-01 3.55069163e-01 3.48783430e-01 3.42523893e-01 + 3.36291637e-01 3.30087741e-01 3.23913280e-01 3.17769323e-01 3.11656936e-01 + 3.05577176e-01 2.99531097e-01 2.93519746e-01 2.87544165e-01 2.81605389e-01 + 2.75704447e-01 2.69842361e-01 2.64020146e-01 2.58238812e-01 2.52499359e-01 + 2.46802782e-01 2.41150068e-01 2.35542196e-01 2.29980137e-01 2.24464856e-01 + 2.18997307e-01 2.13578438e-01 2.08209187e-01 2.02890485e-01 1.97623253e-01 + 1.92408404e-01 1.87246840e-01 1.82139456e-01 1.77087137e-01 1.72090758e-01 + 1.67151185e-01 1.62269273e-01 1.57445868e-01 1.52681806e-01 1.47977912e-01 + 1.43335000e-01 1.38753876e-01 1.34235332e-01 1.29780152e-01 1.25389107e-01 + 1.21062958e-01 1.16802455e-01 1.12608335e-01 1.08481325e-01 1.04422140e-01 + 1.00431484e-01 9.65100466e-02 9.26585085e-02 8.88775365e-02 8.51677856e-02 + 8.15298985e-02 7.79645054e-02 7.44722238e-02 7.10536590e-02 6.77094029e-02 + 6.44400350e-02 6.12461217e-02 5.81282163e-02 5.50868588e-02 5.21225762e-02 + 4.92358820e-02 4.64272763e-02 4.36972455e-02 4.10462627e-02 3.84747871e-02 + 3.59832642e-02 3.35721256e-02 3.12417889e-02 2.89926579e-02 2.68251222e-02 + 2.47395574e-02 2.27363246e-02 2.08157709e-02 1.89782291e-02 1.72240175e-02 + 1.55534399e-02 1.39667858e-02 1.24643300e-02 1.10463329e-02 9.71303993e-03 + 8.46468223e-03 7.30147603e-03 6.22362282e-03 5.23130933e-03 4.32470747e-03 + 3.50397429e-03 2.76925197e-03 2.12066779e-03 1.55833411e-03 1.08234835e-03 + 6.92792954e-04 3.89735421e-04 1.73228247e-04 4.33089373e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 9.99980173e-01 9.99906079e-01 9.99777111e-01 9.99593281e-01 9.99354611e-01 + 9.99061126e-01 9.98712858e-01 9.98309847e-01 9.97852135e-01 9.97339773e-01 + 9.96772819e-01 9.96151332e-01 9.95475383e-01 9.94745045e-01 9.93960398e-01 + 9.93121529e-01 9.92228529e-01 9.91281497e-01 9.90280537e-01 9.89225758e-01 + 9.88117276e-01 9.86955213e-01 9.85739696e-01 9.84470859e-01 9.83148841e-01 + 9.81773788e-01 9.80345850e-01 9.78865184e-01 9.77331952e-01 9.75746323e-01 + 9.74108471e-01 9.72418575e-01 9.70676822e-01 9.68883402e-01 9.67038512e-01 + 9.65142355e-01 9.63195139e-01 9.61197077e-01 9.59148389e-01 9.57049300e-01 + 9.54900041e-01 9.52700846e-01 9.50451958e-01 9.48153624e-01 9.45806095e-01 + 9.43409630e-01 9.40964491e-01 9.38470947e-01 9.35929271e-01 9.33339743e-01 + 9.30702647e-01 9.28018273e-01 9.25286914e-01 9.22508871e-01 9.19684449e-01 + 9.16813958e-01 9.13897713e-01 9.10936034e-01 9.07929245e-01 9.04877679e-01 + 9.01781668e-01 8.98641553e-01 8.95457679e-01 8.92230395e-01 8.88960056e-01 + 8.85647020e-01 8.82291651e-01 8.78894318e-01 8.75455393e-01 8.71975254e-01 + 8.68454283e-01 8.64892866e-01 8.61291395e-01 8.57650264e-01 8.53969874e-01 + 8.50250628e-01 8.46492934e-01 8.42697206e-01 8.38863860e-01 8.34993316e-01 + 8.31085999e-01 8.27142339e-01 8.23162768e-01 8.19147724e-01 8.15097646e-01 + 8.11012979e-01 8.06894173e-01 8.02741678e-01 7.98555951e-01 7.94337451e-01 + 7.90086642e-01 7.85803989e-01 7.81489963e-01 7.77145038e-01 7.72769691e-01 + 7.68364401e-01 7.63929652e-01 7.59465932e-01 7.54973730e-01 7.50453539e-01 + 7.45905856e-01 7.41331179e-01 7.36730012e-01 7.32102858e-01 7.27450226e-01 + 7.22772626e-01 7.18070573e-01 7.13344581e-01 7.08595171e-01 7.03822863e-01 + 6.99028181e-01 6.94211651e-01 6.89373803e-01 6.84515167e-01 6.79636277e-01 + 6.74737667e-01 6.69819877e-01 6.64883445e-01 6.59928914e-01 6.54956827e-01 + 6.49967731e-01 6.44962172e-01 6.39940701e-01 6.34903869e-01 6.29852227e-01 + 6.24786332e-01 6.19706739e-01 6.14614006e-01 6.09508691e-01 6.04391355e-01 + 5.99262560e-01 5.94122870e-01 5.88972847e-01 5.83813057e-01 5.78644067e-01 + 5.73466445e-01 5.68280758e-01 5.63087575e-01 5.57887468e-01 5.52681006e-01 + 5.47468761e-01 5.42251306e-01 5.37029212e-01 5.31803054e-01 5.26573405e-01 + 5.21340839e-01 5.16105930e-01 5.10869253e-01 5.05631384e-01 5.00392895e-01 + 4.95154364e-01 4.89916365e-01 4.84679473e-01 4.79444262e-01 4.74211308e-01 + 4.68981185e-01 4.63754466e-01 4.58531727e-01 4.53313539e-01 4.48100476e-01 + 4.42893110e-01 4.37692013e-01 4.32497756e-01 4.27310908e-01 4.22132040e-01 + 4.16961719e-01 4.11800513e-01 4.06648989e-01 4.01507712e-01 3.96377247e-01 + 3.91258157e-01 3.86151003e-01 3.81056347e-01 3.75974747e-01 3.70906762e-01 + 3.65852947e-01 3.60813858e-01 3.55790047e-01 3.50782067e-01 3.45790466e-01 + 3.40815793e-01 3.35858594e-01 3.30919413e-01 3.25998792e-01 3.21097271e-01 + 3.16215388e-01 3.11353680e-01 3.06512680e-01 3.01692919e-01 2.96894926e-01 + 2.92119228e-01 2.87366350e-01 2.82636813e-01 2.77931136e-01 2.73249835e-01 + 2.68593425e-01 2.63962417e-01 2.59357319e-01 2.54778637e-01 2.50226873e-01 + 2.45702526e-01 2.41206094e-01 2.36738071e-01 2.32298945e-01 2.27889206e-01 + 2.23509336e-01 2.19159817e-01 2.14841126e-01 2.10553738e-01 2.06298122e-01 + 2.02074746e-01 1.97884074e-01 1.93726565e-01 1.89602676e-01 1.85512860e-01 + 1.81457565e-01 1.77437238e-01 1.73452318e-01 1.69503243e-01 1.65590448e-01 + 1.61714361e-01 1.57875408e-01 1.54074010e-01 1.50310585e-01 1.46585546e-01 + 1.42899302e-01 1.39252256e-01 1.35644811e-01 1.32077361e-01 1.28550298e-01 + 1.25064010e-01 1.21618879e-01 1.18215283e-01 1.14853596e-01 1.11534187e-01 + 1.08257420e-01 1.05023655e-01 1.01833247e-01 9.86865462e-02 9.55838981e-02 + 9.25256431e-02 8.95121170e-02 8.65436505e-02 8.36205696e-02 8.07431951e-02 + 7.79118428e-02 7.51268235e-02 7.23884430e-02 6.96970019e-02 6.70527955e-02 + 6.44561143e-02 6.19072431e-02 5.94064618e-02 5.69540448e-02 5.45502615e-02 + 5.21953757e-02 4.98896458e-02 4.76333250e-02 4.54266610e-02 4.32698959e-02 + 4.11632665e-02 3.91070041e-02 3.71013344e-02 3.51464776e-02 3.32426482e-02 + 3.13900552e-02 2.95889020e-02 2.78393864e-02 2.61417002e-02 2.44960300e-02 + 2.29025563e-02 2.13614541e-02 1.98728925e-02 1.84370350e-02 1.70540391e-02 + 1.57240567e-02 1.44472338e-02 1.32237104e-02 1.20536210e-02 1.09370940e-02 + 9.87425188e-03 8.86521137e-03 7.91008322e-03 7.00897228e-03 6.16197747e-03 + 5.36919175e-03 4.63070216e-03 3.94658975e-03 3.31692963e-03 2.74179092e-03 + 2.22123674e-03 1.75532423e-03 1.34410455e-03 9.87622837e-04 6.85918213e-04 + 4.39023800e-04 2.46966702e-04 1.09767999e-04 2.74427529e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99998611e-01 + 9.99988405e-01 9.99968287e-01 9.99938255e-01 9.99898310e-01 9.99848454e-01 + 9.99788687e-01 9.99719010e-01 9.99639425e-01 9.99549934e-01 9.99450537e-01 + 9.99341238e-01 9.99222038e-01 9.99092940e-01 9.98953946e-01 9.98805059e-01 + 9.98646282e-01 9.98477618e-01 9.98299070e-01 9.98110643e-01 9.97912339e-01 + 9.97704162e-01 9.97486118e-01 9.97258209e-01 9.97020441e-01 9.96772819e-01 + 9.96515346e-01 9.96248029e-01 9.95970873e-01 9.95683882e-01 9.95387064e-01 + 9.95080423e-01 9.94763966e-01 9.94437699e-01 9.94101628e-01 9.93755761e-01 + 9.93400104e-01 9.93034664e-01 9.92659448e-01 9.92274464e-01 9.91879719e-01 + 9.91475222e-01 9.91060979e-01 9.90637001e-01 9.90203294e-01 9.89759867e-01 + 9.89306730e-01 9.88843892e-01 9.88371360e-01 9.87889146e-01 9.87397257e-01 + 9.86895705e-01 9.86384499e-01 9.85863649e-01 9.85333166e-01 9.84793060e-01 + 9.84243341e-01 9.83684021e-01 9.83115111e-01 9.82536622e-01 9.81948565e-01 + 9.81350952e-01 9.80743796e-01 9.80127107e-01 9.79500899e-01 9.78865184e-01 + 9.78219973e-01 9.77565281e-01 9.76901120e-01 9.76227503e-01 9.75544444e-01 + 9.74851956e-01 9.74150052e-01 9.73438748e-01 9.72718056e-01 9.71987991e-01 + 9.71248568e-01 9.70499802e-01 9.69741706e-01 9.68974297e-01 9.68197589e-01 + 9.67411598e-01 9.66616339e-01 9.65811829e-01 9.64998082e-01 9.64175116e-01 + 9.63342946e-01 9.62501590e-01 9.61651063e-01 9.60791382e-01 9.59922566e-01 + 9.59044630e-01 9.58157592e-01 9.57261471e-01 9.56356283e-01 9.55442046e-01 + 9.54518780e-01 9.53586501e-01 9.52645229e-01 9.51694982e-01 9.50735778e-01 + 9.49767638e-01 9.48790581e-01 9.47804624e-01 9.46809789e-01 9.45806095e-01 + 9.44793561e-01 9.43772209e-01 9.42742057e-01 9.41703127e-01 9.40655439e-01 + 9.39599014e-01 9.38533873e-01 9.37460037e-01 9.36377527e-01 9.35286364e-01 + 9.34186571e-01 9.33078170e-01 9.31961181e-01 9.30835628e-01 9.29701532e-01 + 9.28558916e-01 9.27407803e-01 9.26248215e-01 9.25080177e-01 9.23903709e-01 + 9.22718837e-01 9.21525584e-01 9.20323972e-01 9.19114027e-01 9.17895771e-01 + 9.16669230e-01 9.15434427e-01 9.14191387e-01 9.12940135e-01 9.11680695e-01 + 9.10413093e-01 9.09137353e-01 9.07853501e-01 9.06561562e-01 9.05261562e-01 + 9.03953527e-01 9.02637482e-01 9.01313454e-01 8.99981469e-01 8.98641553e-01 + 8.97293733e-01 8.95938036e-01 8.94574488e-01 8.93203117e-01 8.91823950e-01 + 8.90437014e-01 8.89042336e-01 8.87639945e-01 8.86229867e-01 8.84812132e-01 + 8.83386767e-01 8.81953800e-01 8.80513260e-01 8.79065175e-01 8.77609575e-01 + 8.76146487e-01 8.74675941e-01 8.73197967e-01 8.71712593e-01 8.70219848e-01 + 8.68719763e-01 8.67212368e-01 8.65697691e-01 8.64175763e-01 8.62646615e-01 + 8.61110277e-01 8.59566778e-01 8.58016150e-01 8.56458424e-01 8.54893630e-01 + 8.53321799e-01 8.51742963e-01 8.50157152e-01 8.48564399e-01 8.46964734e-01 + 8.45358191e-01 8.43744799e-01 8.42124592e-01 8.40497601e-01 8.38863860e-01 + 8.37223399e-01 8.35576252e-01 8.33922451e-01 8.32262030e-01 8.30595020e-01 + 8.28921456e-01 8.27241370e-01 8.25554796e-01 8.23861766e-01 8.22162316e-01 + 8.20456477e-01 8.18744285e-01 8.17025773e-01 8.15300975e-01 8.13569925e-01 + 8.11832658e-01 8.10089208e-01 8.08339610e-01 8.06583898e-01 8.04822108e-01 + 8.03054273e-01 8.01280430e-01 7.99500613e-01 7.97714858e-01 7.95923200e-01 + 7.94125674e-01 7.92322317e-01 7.90513163e-01 7.88698249e-01 7.86877612e-01 + 7.85051286e-01 7.83219308e-01 7.81381715e-01 7.79538542e-01 7.77689827e-01 + 7.75835606e-01 7.73975916e-01 7.72110794e-01 7.70240277e-01 7.68364401e-01 + 7.66483204e-01 7.64596724e-01 7.62704997e-01 7.60808061e-01 7.58905954e-01 + 7.56998714e-01 7.55086378e-01 7.53168985e-01 7.51246571e-01 7.49319177e-01 + 7.47386838e-01 7.45449595e-01 7.43507485e-01 7.41560547e-01 7.39608819e-01 + 7.37652340e-01 7.35691150e-01 7.33725286e-01 7.31754788e-01 7.29779695e-01 + 7.27800045e-01 7.25815880e-01 7.23827236e-01 7.21834155e-01 7.19836676e-01 + 7.17834837e-01 7.15828680e-01 7.13818243e-01 7.11803566e-01 7.09784691e-01 + 7.07761655e-01 7.05734500e-01 7.03703266e-01 7.01667993e-01 6.99628722e-01 + 6.97585492e-01 6.95538345e-01 6.93487320e-01 6.91432460e-01 6.89373803e-01 + 6.87311392e-01 6.85245267e-01 6.83175469e-01 6.81102039e-01 6.79025018e-01 + 6.76944447e-01 6.74860369e-01 6.72772823e-01 6.70681851e-01 6.68587496e-01 + 6.66489797e-01 6.64388798e-01 6.62284539e-01 6.60177062e-01 6.58066410e-01 + 6.55952623e-01 6.53835744e-01 6.51715815e-01 6.49592878e-01 6.47466975e-01 + 6.45338148e-01 6.43206439e-01 6.41071891e-01 6.38934546e-01 6.36794446e-01 + 6.34651634e-01 6.32506151e-01 6.30358042e-01 6.28207348e-01 6.26054112e-01 + 6.23898376e-01 6.21740184e-01 6.19579579e-01 6.17416602e-01 6.15251297e-01 + 6.13083707e-01 6.10913875e-01 6.08741843e-01 6.06567656e-01 6.04391355e-01 + 6.02212985e-01 6.00032588e-01 5.97850208e-01 5.95665887e-01 5.93479670e-01 + 5.91291599e-01 5.89101719e-01 5.86910071e-01 5.84716701e-01 5.82521650e-01 + 5.80324964e-01 5.78126684e-01 5.75926856e-01 5.73725522e-01 5.71522727e-01 + 5.69318513e-01 5.67112925e-01 5.64906006e-01 5.62697800e-01 5.60488352e-01 + 5.58277703e-01 5.56065900e-01 5.53852984e-01 5.51639001e-01 5.49423994e-01 + 5.47208007e-01 5.44991085e-01 5.42773270e-01 5.40554606e-01 5.38335139e-01 + 5.36114912e-01 5.33893969e-01 5.31672353e-01 5.29450110e-01 5.27227283e-01 + 5.25003915e-01 5.22780052e-01 5.20555738e-01 5.18331016e-01 5.16105930e-01 + 5.13880525e-01 5.11654845e-01 5.09428934e-01 5.07202836e-01 5.04976595e-01 + 5.02750255e-01 5.00523861e-01 4.98297456e-01 4.96071085e-01 4.93844792e-01 + 4.91618621e-01 4.89392617e-01 4.87166822e-01 4.84941282e-01 4.82716041e-01 + 4.80491142e-01 4.78266630e-01 4.76042549e-01 4.73818943e-01 4.71595856e-01 + 4.69373333e-01 4.67151416e-01 4.64930151e-01 4.62709582e-01 4.60489751e-01 + 4.58270704e-01 4.56052485e-01 4.53835136e-01 4.51618704e-01 4.49403230e-01 + 4.47188760e-01 4.44975336e-01 4.42763004e-01 4.40551807e-01 4.38341788e-01 + 4.36132992e-01 4.33925462e-01 4.31719242e-01 4.29514376e-01 4.27310908e-01 + 4.25108881e-01 4.22908339e-01 4.20709325e-01 4.18511884e-01 4.16316058e-01 + 4.14121891e-01 4.11929427e-01 4.09738710e-01 4.07549782e-01 4.05362687e-01 + 4.03177469e-01 4.00994170e-01 3.98812834e-01 3.96633505e-01 3.94456225e-01 + 3.92281038e-01 3.90107987e-01 3.87937114e-01 3.85768464e-01 3.83602078e-01 + 3.81438000e-01 3.79276273e-01 3.77116940e-01 3.74960043e-01 3.72805626e-01 + 3.70653730e-01 3.68504399e-01 3.66357675e-01 3.64213601e-01 3.62072219e-01 + 3.59933573e-01 3.57797703e-01 3.55664653e-01 3.53534464e-01 3.51407180e-01 + 3.49282842e-01 3.47161492e-01 3.45043173e-01 3.42927926e-01 3.40815793e-01 + 3.38706817e-01 3.36601038e-01 3.34498500e-01 3.32399243e-01 3.30303309e-01 + 3.28210740e-01 3.26121577e-01 3.24035861e-01 3.21953634e-01 3.19874938e-01 + 3.17799813e-01 3.15728301e-01 3.13660442e-01 3.11596278e-01 3.09535850e-01 + 3.07479198e-01 3.05426363e-01 3.03377386e-01 3.01332308e-01 2.99291168e-01 + 2.97254009e-01 2.95220869e-01 2.93191789e-01 2.91166810e-01 2.89145972e-01 + 2.87129315e-01 2.85116878e-01 2.83108701e-01 2.81104825e-01 2.79105290e-01 + 2.77110134e-01 2.75119397e-01 2.73133119e-01 2.71151340e-01 2.69174098e-01 + 2.67201433e-01 2.65233383e-01 2.63269988e-01 2.61311288e-01 2.59357319e-01 + 2.57408122e-01 2.55463735e-01 2.53524197e-01 2.51589546e-01 2.49659820e-01 + 2.47735057e-01 2.45815297e-01 2.43900576e-01 2.41990933e-01 2.40086406e-01 + 2.38187032e-01 2.36292850e-01 2.34403896e-01 2.32520208e-01 2.30641823e-01 + 2.28768780e-01 2.26901114e-01 2.25038863e-01 2.23182064e-01 2.21330753e-01 + 2.19484968e-01 2.17644744e-01 2.15810120e-01 2.13981129e-01 2.12157810e-01 + 2.10340199e-01 2.08528330e-01 2.06722240e-01 2.04921966e-01 2.03127542e-01 + 2.01339005e-01 1.99556389e-01 1.97779730e-01 1.96009063e-01 1.94244424e-01 + 1.92485848e-01 1.90733368e-01 1.88987021e-01 1.87246840e-01 1.85512860e-01 + 1.83785116e-01 1.82063641e-01 1.80348471e-01 1.78639638e-01 1.76937177e-01 + 1.75241122e-01 1.73551506e-01 1.71868362e-01 1.70191725e-01 1.68521627e-01 + 1.66858101e-01 1.65201180e-01 1.63550898e-01 1.61907287e-01 1.60270379e-01 + 1.58640208e-01 1.57016804e-01 1.55400201e-01 1.53790431e-01 1.52187525e-01 + 1.50591516e-01 1.49002434e-01 1.47420312e-01 1.45845181e-01 1.44277071e-01 + 1.42716015e-01 1.41162043e-01 1.39615186e-01 1.38075474e-01 1.36542938e-01 + 1.35017609e-01 1.33499516e-01 1.31988690e-01 1.30485161e-01 1.28988959e-01 + 1.27500113e-01 1.26018652e-01 1.24544607e-01 1.23078006e-01 1.21618879e-01 + 1.20167254e-01 1.18723160e-01 1.17286625e-01 1.15857679e-01 1.14436350e-01 + 1.13022665e-01 1.11616654e-01 1.10218343e-01 1.08827760e-01 1.07444933e-01 + 1.06069890e-01 1.04702657e-01 1.03343262e-01 1.01991732e-01 1.00648094e-01 + 9.93123732e-02 9.79845974e-02 9.66647925e-02 9.53529849e-02 9.40492003e-02 + 9.27534648e-02 9.14658040e-02 9.01862434e-02 8.89148084e-02 8.76515242e-02 + 8.63964159e-02 8.51495083e-02 8.39108261e-02 8.26803940e-02 8.14582364e-02 + 8.02443773e-02 7.90388410e-02 7.78416513e-02 7.66528320e-02 7.54724066e-02 + 7.43003985e-02 7.31368310e-02 7.19817272e-02 7.08351099e-02 6.96970019e-02 + 6.85674257e-02 6.74464038e-02 6.63339584e-02 6.52301115e-02 6.41348850e-02 + 6.30483006e-02 6.19703799e-02 6.09011443e-02 5.98406149e-02 5.87888128e-02 + 5.77457588e-02 5.67114736e-02 5.56859778e-02 5.46692916e-02 5.36614352e-02 + 5.26624286e-02 5.16722916e-02 5.06910438e-02 4.97187048e-02 4.87552937e-02 + 4.78008297e-02 4.68553316e-02 4.59188183e-02 4.49913084e-02 4.40728201e-02 + 4.31633717e-02 4.22629813e-02 4.13716667e-02 4.04894456e-02 3.96163354e-02 + 3.87523535e-02 3.78975170e-02 3.70518428e-02 3.62153478e-02 3.53880485e-02 + 3.45699613e-02 3.37611024e-02 3.29614879e-02 3.21711336e-02 3.13900552e-02 + 3.06182682e-02 2.98557879e-02 2.91026294e-02 2.83588076e-02 2.76243373e-02 + 2.68992330e-02 2.61835092e-02 2.54771800e-02 2.47802594e-02 2.40927612e-02 + 2.34146991e-02 2.27460866e-02 2.20869367e-02 2.14372628e-02 2.07970775e-02 + 2.01663937e-02 1.95452238e-02 1.89335801e-02 1.83314748e-02 1.77389197e-02 + 1.71559268e-02 1.65825074e-02 1.60186730e-02 1.54644348e-02 1.49198037e-02 + 1.43847906e-02 1.38594060e-02 1.33436604e-02 1.28375640e-02 1.23411268e-02 + 1.18543587e-02 1.13772693e-02 1.09098682e-02 1.04521644e-02 1.00041672e-02 + 9.56588541e-03 9.13732771e-03 8.71850261e-03 8.30941841e-03 7.91008322e-03 + 7.52050497e-03 7.14069137e-03 6.77064996e-03 6.41038807e-03 6.05991285e-03 + 5.71923124e-03 5.38835001e-03 5.06727570e-03 4.75601470e-03 4.45457316e-03 + 4.16295707e-03 3.88117220e-03 3.60922415e-03 3.34711831e-03 3.09485987e-03 + 2.85245383e-03 2.61990501e-03 2.39721801e-03 2.18439724e-03 1.98144694e-03 + 1.78837111e-03 1.60517360e-03 1.43185803e-03 1.26842784e-03 1.11488626e-03 + 9.71236350e-04 8.37480951e-04 7.13622715e-04 5.99664099e-04 4.95607361e-04 + 4.01454566e-04 3.17207579e-04 2.42868072e-04 1.78437519e-04 1.23917196e-04 + 7.93081847e-05 4.46113698e-05 1.98274393e-05 4.95688439e-06 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99990121e-01 + 9.99925288e-01 9.99799954e-01 9.99614132e-01 9.99367846e-01 9.99061126e-01 + 9.98694008e-01 9.98266536e-01 9.97778763e-01 9.97230748e-01 9.96622557e-01 + 9.95954263e-01 9.95225948e-01 9.94437699e-01 9.93589612e-01 9.92681790e-01 + 9.91714342e-01 9.90687386e-01 9.89601045e-01 9.88455452e-01 9.87250745e-01 + 9.85987069e-01 9.84664578e-01 9.83283432e-01 9.81843798e-01 9.80345850e-01 + 9.78789769e-01 9.77175744e-01 9.75503970e-01 9.73774649e-01 9.71987991e-01 + 9.70144212e-01 9.68243535e-01 9.66286190e-01 9.64272414e-01 9.62202450e-01 + 9.60076550e-01 9.57894969e-01 9.55657974e-01 9.53365833e-01 9.51018826e-01 + 9.48617234e-01 9.46161350e-01 9.43651471e-01 9.41087899e-01 9.38470947e-01 + 9.35800929e-01 9.33078170e-01 9.30302998e-01 9.27475750e-01 9.24596768e-01 + 9.21666401e-01 9.18685002e-01 9.15652933e-01 9.12570560e-01 9.09438258e-01 + 9.06256404e-01 9.03025384e-01 8.99745589e-01 8.96417415e-01 8.93041266e-01 + 8.89617551e-01 8.86146683e-01 8.82629082e-01 8.79065175e-01 8.75455393e-01 + 8.71800172e-01 8.68099955e-01 8.64355189e-01 8.60566328e-01 8.56733831e-01 + 8.52858161e-01 8.48939787e-01 8.44979184e-01 8.40976830e-01 8.36933211e-01 + 8.32848815e-01 8.28724137e-01 8.24559676e-01 8.20355936e-01 8.16113425e-01 + 8.11832658e-01 8.07514152e-01 8.03158430e-01 7.98766019e-01 7.94337451e-01 + 7.89873261e-01 7.85373990e-01 7.80840183e-01 7.76272387e-01 7.71671156e-01 + 7.67037047e-01 7.62370621e-01 7.57672442e-01 7.52943078e-01 7.48183103e-01 + 7.43393092e-01 7.38573625e-01 7.33725286e-01 7.28848660e-01 7.23944339e-01 + 7.19012915e-01 7.14054986e-01 7.09071151e-01 7.04062014e-01 6.99028181e-01 + 6.93970261e-01 6.88888866e-01 6.83784612e-01 6.78658115e-01 6.73509997e-01 + 6.68340880e-01 6.63151390e-01 6.57942156e-01 6.52713806e-01 6.47466975e-01 + 6.42202297e-01 6.36920410e-01 6.31621952e-01 6.26307564e-01 6.20977891e-01 + 6.15633577e-01 6.10275268e-01 6.04903614e-01 5.99519264e-01 5.94122870e-01 + 5.88715084e-01 5.83296563e-01 5.77867960e-01 5.72429934e-01 5.66983143e-01 + 5.61528244e-01 5.56065900e-01 5.50596770e-01 5.45121517e-01 5.39640803e-01 + 5.34155292e-01 5.28665647e-01 5.23172533e-01 5.17676615e-01 5.12178557e-01 + 5.06679025e-01 5.01178685e-01 4.95678203e-01 4.90178244e-01 4.84679473e-01 + 4.79182556e-01 4.73688159e-01 4.68196946e-01 4.62709582e-01 4.57226730e-01 + 4.51749056e-01 4.46277221e-01 4.40811887e-01 4.35353717e-01 4.29903370e-01 + 4.24461507e-01 4.19028785e-01 4.13605863e-01 4.08193396e-01 4.02792040e-01 + 3.97402448e-01 3.92025273e-01 3.86661165e-01 3.81310774e-01 3.75974747e-01 + 3.70653730e-01 3.65348366e-01 3.60059299e-01 3.54787167e-01 3.49532610e-01 + 3.44296262e-01 3.39078758e-01 3.33880729e-01 3.28702804e-01 3.23545610e-01 + 3.18409771e-01 3.13295908e-01 3.08204641e-01 3.03136585e-01 2.98092355e-01 + 2.93072559e-01 2.88077807e-01 2.83108701e-01 2.78165845e-01 2.73249835e-01 + 2.68361267e-01 2.63500733e-01 2.58668821e-01 2.53866115e-01 2.49093196e-01 + 2.44350643e-01 2.39639029e-01 2.34958925e-01 2.30310897e-01 2.25695507e-01 + 2.21113314e-01 2.16564873e-01 2.12050734e-01 2.07571443e-01 2.03127542e-01 + 1.98719570e-01 1.94348059e-01 1.90013539e-01 1.85716535e-01 1.81457565e-01 + 1.77237147e-01 1.73055790e-01 1.68914001e-01 1.64812280e-01 1.60751125e-01 + 1.56731026e-01 1.52752471e-01 1.48815940e-01 1.44921911e-01 1.41070854e-01 + 1.37263235e-01 1.33499516e-01 1.29780152e-01 1.26105592e-01 1.22476282e-01 + 1.18892661e-01 1.15355162e-01 1.11864215e-01 1.08420240e-01 1.05023655e-01 + 1.01674871e-01 9.83742934e-02 9.51223215e-02 9.19193489e-02 8.87657632e-02 + 8.56619461e-02 8.26082731e-02 7.96051139e-02 7.66528320e-02 7.37517845e-02 + 7.09023226e-02 6.81047912e-02 6.53595288e-02 6.26668676e-02 6.00271336e-02 + 5.74406461e-02 5.49077182e-02 5.24286565e-02 5.00037609e-02 4.76333250e-02 + 4.53176356e-02 4.30569730e-02 4.08516107e-02 3.87018157e-02 3.66078480e-02 + 3.45699613e-02 3.25884020e-02 3.06634100e-02 2.87952182e-02 2.69840528e-02 + 2.52301330e-02 2.35336709e-02 2.18948719e-02 2.03139344e-02 1.87910497e-02 + 1.73264020e-02 1.59201687e-02 1.45725199e-02 1.32836186e-02 1.20536210e-02 + 1.08826759e-02 9.77092489e-03 8.71850261e-03 7.72553641e-03 6.79214646e-03 + 5.91844572e-03 5.10453993e-03 4.35052759e-03 3.65649996e-03 3.02254101e-03 + 2.44872749e-03 1.93512883e-03 1.48180718e-03 1.08881742e-03 7.56207102e-04 + 4.84016478e-04 2.72278491e-04 1.21018765e-04 3.02556067e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99975710e-01 + 9.99895217e-01 9.99758386e-01 9.99565232e-01 9.99315778e-01 9.99010051e-01 + 9.98648086e-01 9.98229923e-01 9.97755610e-01 9.97225201e-01 9.96638754e-01 + 9.95996336e-01 9.95298020e-01 9.94543884e-01 9.93734013e-01 9.92868499e-01 + 9.91947438e-01 9.90970935e-01 9.89939101e-01 9.88852050e-01 9.87709905e-01 + 9.86512796e-01 9.85260858e-01 9.83954230e-01 9.82593062e-01 9.81177505e-01 + 9.79707720e-01 9.78183872e-01 9.76606132e-01 9.74974680e-01 9.73289698e-01 + 9.71551377e-01 9.69759912e-01 9.67915505e-01 9.66018364e-01 9.64068704e-01 + 9.62066743e-01 9.60012707e-01 9.57906828e-01 9.55749343e-01 9.53540496e-01 + 9.51280535e-01 9.48969714e-01 9.46608295e-01 9.44196544e-01 9.41734731e-01 + 9.39223136e-01 9.36662040e-01 9.34051732e-01 9.31392507e-01 9.28684665e-01 + 9.25928510e-01 9.23124352e-01 9.20272509e-01 9.17373302e-01 9.14427057e-01 + 9.11434106e-01 9.08394786e-01 9.05309441e-01 9.02178417e-01 8.99002068e-01 + 8.95780752e-01 8.92514832e-01 8.89204675e-01 8.85850655e-01 8.82453150e-01 + 8.79012542e-01 8.75529221e-01 8.72003577e-01 8.68436008e-01 8.64826917e-01 + 8.61176710e-01 8.57485799e-01 8.53754599e-01 8.49983531e-01 8.46173020e-01 + 8.42323496e-01 8.38435392e-01 8.34509147e-01 8.30545202e-01 8.26544005e-01 + 8.22506007e-01 8.18431663e-01 8.14321431e-01 8.10175776e-01 8.05995164e-01 + 8.01780066e-01 7.97530958e-01 7.93248319e-01 7.88932630e-01 7.84584379e-01 + 7.80204055e-01 7.75792153e-01 7.71349168e-01 7.66875603e-01 7.62371961e-01 + 7.57838750e-01 7.53276481e-01 7.48685668e-01 7.44066827e-01 7.39420481e-01 + 7.34747152e-01 7.30047367e-01 7.25321656e-01 7.20570551e-01 7.15794588e-01 + 7.10994305e-01 7.06170243e-01 7.01322946e-01 6.96452960e-01 6.91560833e-01 + 6.86647118e-01 6.81712368e-01 6.76757139e-01 6.71781989e-01 6.66787480e-01 + 6.61774174e-01 6.56742636e-01 6.51693433e-01 6.46627134e-01 6.41544311e-01 + 6.36445535e-01 6.31331383e-01 6.26202429e-01 6.21059252e-01 6.15902432e-01 + 6.10732550e-01 6.05550188e-01 6.00355931e-01 5.95150364e-01 5.89934073e-01 + 5.84707647e-01 5.79471675e-01 5.74226746e-01 5.68973451e-01 5.63712384e-01 + 5.58444136e-01 5.53169301e-01 5.47888474e-01 5.42602250e-01 5.37311225e-01 + 5.32015995e-01 5.26717157e-01 5.21415308e-01 5.16111045e-01 5.10804967e-01 + 5.05497671e-01 5.00189755e-01 4.94881818e-01 4.89574458e-01 4.84268272e-01 + 4.78963860e-01 4.73661819e-01 4.68362745e-01 4.63067237e-01 4.57775892e-01 + 4.52489305e-01 4.47208073e-01 4.41932790e-01 4.36664051e-01 4.31402451e-01 + 4.26148581e-01 4.20903034e-01 4.15666401e-01 4.10439273e-01 4.05222238e-01 + 4.00015885e-01 3.94820800e-01 3.89637568e-01 3.84466774e-01 3.79309001e-01 + 3.74164830e-01 3.69034840e-01 3.63919610e-01 3.58819716e-01 3.53735733e-01 + 3.48668234e-01 3.43617790e-01 3.38584970e-01 3.33570341e-01 3.28574469e-01 + 3.23597917e-01 3.18641245e-01 3.13705012e-01 3.08789775e-01 3.03896087e-01 + 2.99024499e-01 2.94175562e-01 2.89349820e-01 2.84547819e-01 2.79770100e-01 + 2.75017200e-01 2.70289655e-01 2.65587999e-01 2.60912761e-01 2.56264468e-01 + 2.51643644e-01 2.47050809e-01 2.42486482e-01 2.37951176e-01 2.33445403e-01 + 2.28969671e-01 2.24524484e-01 2.20110342e-01 2.15727744e-01 2.11377184e-01 + 2.07059151e-01 2.02774132e-01 1.98522611e-01 1.94305066e-01 1.90121972e-01 + 1.85973802e-01 1.81861023e-01 1.77784097e-01 1.73743485e-01 1.69739642e-01 + 1.65773019e-01 1.61844064e-01 1.57953218e-01 1.54100921e-01 1.50287606e-01 + 1.46513704e-01 1.42779640e-01 1.39085834e-01 1.35432703e-01 1.31820659e-01 + 1.28250109e-01 1.24721454e-01 1.21235093e-01 1.17791419e-01 1.14390819e-01 + 1.11033677e-01 1.07720372e-01 1.04451277e-01 1.01226759e-01 9.80471834e-02 + 9.49129074e-02 9.18242846e-02 8.87816629e-02 8.57853854e-02 8.28357897e-02 + 7.99332082e-02 7.70779680e-02 7.42703909e-02 7.15107933e-02 6.87994863e-02 + 6.61367753e-02 6.35229606e-02 6.09583365e-02 5.84431923e-02 5.59778113e-02 + 5.35624714e-02 5.11974448e-02 4.88829981e-02 4.66193920e-02 4.44068816e-02 + 4.22457164e-02 4.01361399e-02 3.80783899e-02 3.60726981e-02 3.41192908e-02 + 3.22183880e-02 3.03702040e-02 2.85749470e-02 2.68328194e-02 2.51440175e-02 + 2.35087316e-02 2.19271461e-02 2.03994392e-02 1.89257830e-02 1.75063436e-02 + 1.61412811e-02 1.48307492e-02 1.35748956e-02 1.23738620e-02 1.12277835e-02 + 1.01367895e-02 9.10100279e-03 8.12054017e-03 7.19551214e-03 6.32602293e-03 + 5.51217055e-03 4.75404670e-03 4.05173684e-03 3.40532012e-03 2.81486937e-03 + 2.28045115e-03 1.80212569e-03 1.37994689e-03 1.01396233e-03 7.04213259e-04 + 4.50734584e-04 2.53554873e-04 1.12696347e-04 2.81748805e-05 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 9.99999383e-01 + 9.99986934e-01 9.99958482e-01 9.99914026e-01 9.99853569e-01 9.99777111e-01 + 9.99684655e-01 9.99576205e-01 9.99451764e-01 9.99311336e-01 9.99154925e-01 + 9.98982536e-01 9.98794176e-01 9.98589849e-01 9.98369562e-01 9.98133323e-01 + 9.97881139e-01 9.97613018e-01 9.97328969e-01 9.97029001e-01 9.96713123e-01 + 9.96381345e-01 9.96033679e-01 9.95670135e-01 9.95290724e-01 9.94895460e-01 + 9.94484354e-01 9.94057421e-01 9.93614672e-01 9.93156124e-01 9.92681790e-01 + 9.92191685e-01 9.91685825e-01 9.91164227e-01 9.90626907e-01 9.90073883e-01 + 9.89505171e-01 9.88920791e-01 9.88320760e-01 9.87705099e-01 9.87073826e-01 + 9.86426963e-01 9.85764529e-01 9.85086546e-01 9.84393036e-01 9.83684021e-01 + 9.82959523e-01 9.82219566e-01 9.81464174e-01 9.80693370e-01 9.79907179e-01 + 9.79105627e-01 9.78288739e-01 9.77456541e-01 9.76609060e-01 9.75746323e-01 + 9.74868358e-01 9.73975192e-01 9.73066855e-01 9.72143375e-01 9.71204782e-01 + 9.70251106e-01 9.69282377e-01 9.68298628e-01 9.67299888e-01 9.66286190e-01 + 9.65257566e-01 9.64214050e-01 9.63155675e-01 9.62082474e-01 9.60994483e-01 + 9.59891735e-01 9.58774266e-01 9.57642113e-01 9.56495310e-01 9.55333895e-01 + 9.54157905e-01 9.52967378e-01 9.51762352e-01 9.50542865e-01 9.49308956e-01 + 9.48060665e-01 9.46798032e-01 9.45521098e-01 9.44229902e-01 9.42924487e-01 + 9.41604894e-01 9.40271166e-01 9.38923345e-01 9.37561474e-01 9.36185597e-01 + 9.34795758e-01 9.33392001e-01 9.31974372e-01 9.30542915e-01 9.29097677e-01 + 9.27638704e-01 9.26166043e-01 9.24679740e-01 9.23179843e-01 9.21666401e-01 + 9.20139461e-01 9.18599073e-01 9.17045285e-01 9.15478149e-01 9.13897713e-01 + 9.12304028e-01 9.10697146e-01 9.09077118e-01 9.07443995e-01 9.05797831e-01 + 9.04138676e-01 9.02466586e-01 9.00781613e-01 8.99083811e-01 8.97373235e-01 + 8.95649939e-01 8.93913979e-01 8.92165409e-01 8.90404287e-01 8.88630668e-01 + 8.86844609e-01 8.85046167e-01 8.83235400e-01 8.81412366e-01 8.79577124e-01 + 8.77729731e-01 8.75870247e-01 8.73998732e-01 8.72115246e-01 8.70219848e-01 + 8.68312600e-01 8.66393562e-01 8.64462797e-01 8.62520365e-01 8.60566328e-01 + 8.58600751e-01 8.56623695e-01 8.54635223e-01 8.52635400e-01 8.50624289e-01 + 8.48601955e-01 8.46568462e-01 8.44523876e-01 8.42468262e-01 8.40401685e-01 + 8.38324213e-01 8.36235911e-01 8.34136846e-01 8.32027086e-01 8.29906698e-01 + 8.27775749e-01 8.25634309e-01 8.23482445e-01 8.21320227e-01 8.19147724e-01 + 8.16965004e-01 8.14772139e-01 8.12569199e-01 8.10356253e-01 8.08133373e-01 + 8.05900629e-01 8.03658094e-01 8.01405839e-01 7.99143936e-01 7.96872458e-01 + 7.94591477e-01 7.92301066e-01 7.90001299e-01 7.87692249e-01 7.85373990e-01 + 7.83046597e-01 7.80710143e-01 7.78364704e-01 7.76010355e-01 7.73647171e-01 + 7.71275227e-01 7.68894601e-01 7.66505367e-01 7.64107602e-01 7.61701383e-01 + 7.59286788e-01 7.56863893e-01 7.54432775e-01 7.51993514e-01 7.49546186e-01 + 7.47090871e-01 7.44627646e-01 7.42156591e-01 7.39677784e-01 7.37191306e-01 + 7.34697235e-01 7.32195652e-01 7.29686636e-01 7.27170269e-01 7.24646629e-01 + 7.22115799e-01 7.19577859e-01 7.17032890e-01 7.14480975e-01 7.11922193e-01 + 7.09356629e-01 7.06784363e-01 7.04205478e-01 7.01620056e-01 6.99028181e-01 + 6.96429935e-01 6.93825401e-01 6.91214663e-01 6.88597804e-01 6.85974909e-01 + 6.83346060e-01 6.80711343e-01 6.78070841e-01 6.75424640e-01 6.72772823e-01 + 6.70115475e-01 6.67452683e-01 6.64784530e-01 6.62111103e-01 6.59432486e-01 + 6.56748767e-01 6.54060030e-01 6.51366361e-01 6.48667847e-01 6.45964575e-01 + 6.43256630e-01 6.40544100e-01 6.37827071e-01 6.35105630e-01 6.32379864e-01 + 6.29649862e-01 6.26915709e-01 6.24177493e-01 6.21435303e-01 6.18689226e-01 + 6.15939349e-01 6.13185762e-01 6.10428551e-01 6.07667806e-01 6.04903614e-01 + 6.02136064e-01 5.99365245e-01 5.96591245e-01 5.93814154e-01 5.91034060e-01 + 5.88251051e-01 5.85465218e-01 5.82676649e-01 5.79885434e-01 5.77091661e-01 + 5.74295421e-01 5.71496803e-01 5.68695896e-01 5.65892790e-01 5.63087575e-01 + 5.60280341e-01 5.57471177e-01 5.54660174e-01 5.51847421e-01 5.49033008e-01 + 5.46217026e-01 5.43399564e-01 5.40580713e-01 5.37760563e-01 5.34939205e-01 + 5.32116728e-01 5.29293223e-01 5.26468780e-01 5.23643491e-01 5.20817444e-01 + 5.17990731e-01 5.15163442e-01 5.12335668e-01 5.09507499e-01 5.06679025e-01 + 5.03850338e-01 5.01021528e-01 4.98192685e-01 4.95363899e-01 4.92535262e-01 + 4.89706864e-01 4.86878796e-01 4.84051147e-01 4.81224009e-01 4.78397472e-01 + 4.75571627e-01 4.72746563e-01 4.69922372e-01 4.67099144e-01 4.64276968e-01 + 4.61455937e-01 4.58636139e-01 4.55817665e-01 4.53000605e-01 4.50185050e-01 + 4.47371089e-01 4.44558813e-01 4.41748311e-01 4.38939674e-01 4.36132992e-01 + 4.33328354e-01 4.30525850e-01 4.27725570e-01 4.24927603e-01 4.22132040e-01 + 4.19338968e-01 4.16548479e-01 4.13760661e-01 4.10975604e-01 4.08193396e-01 + 4.05414127e-01 4.02637885e-01 3.99864760e-01 3.97094840e-01 3.94328215e-01 + 3.91564971e-01 3.88805199e-01 3.86048986e-01 3.83296420e-01 3.80547590e-01 + 3.77802584e-01 3.75061489e-01 3.72324393e-01 3.69591384e-01 3.66862550e-01 + 3.64137977e-01 3.61417753e-01 3.58701965e-01 3.55990699e-01 3.53284044e-01 + 3.50582085e-01 3.47884908e-01 3.45192601e-01 3.42505249e-01 3.39822938e-01 + 3.37145754e-01 3.34473784e-01 3.31807111e-01 3.29145823e-01 3.26490003e-01 + 3.23839737e-01 3.21195110e-01 3.18556207e-01 3.15923112e-01 3.13295908e-01 + 3.10674681e-01 3.08059514e-01 3.05450491e-01 3.02847696e-01 3.00251211e-01 + 2.97661120e-01 2.95077506e-01 2.92500451e-01 2.89930039e-01 2.87366350e-01 + 2.84809468e-01 2.82259474e-01 2.79716449e-01 2.77180476e-01 2.74651635e-01 + 2.72130007e-01 2.69615674e-01 2.67108715e-01 2.64609210e-01 2.62117240e-01 + 2.59632885e-01 2.57156224e-01 2.54687336e-01 2.52226300e-01 2.49773196e-01 + 2.47328101e-01 2.44891094e-01 2.42462253e-01 2.40041655e-01 2.37629379e-01 + 2.35225501e-01 2.32830098e-01 2.30443248e-01 2.28065025e-01 2.25695507e-01 + 2.23334770e-01 2.20982888e-01 2.18639937e-01 2.16305993e-01 2.13981129e-01 + 2.11665421e-01 2.09358943e-01 2.07061767e-01 2.04773968e-01 2.02495620e-01 + 2.00226794e-01 1.97967564e-01 1.95718001e-01 1.93478179e-01 1.91248168e-01 + 1.89028040e-01 1.86817867e-01 1.84617718e-01 1.82427664e-01 1.80247775e-01 + 1.78078122e-01 1.75918773e-01 1.73769798e-01 1.71631265e-01 1.69503243e-01 + 1.67385801e-01 1.65279004e-01 1.63182923e-01 1.61097622e-01 1.59023170e-01 + 1.56959632e-01 1.54907074e-01 1.52865563e-01 1.50835164e-01 1.48815940e-01 + 1.46807959e-01 1.44811282e-01 1.42825975e-01 1.40852101e-01 1.38889723e-01 + 1.36938904e-01 1.34999707e-01 1.33072193e-01 1.31156424e-01 1.29252461e-01 + 1.27360366e-01 1.25480199e-01 1.23612020e-01 1.21755889e-01 1.19911865e-01 + 1.18080008e-01 1.16260376e-01 1.14453027e-01 1.12658019e-01 1.10875410e-01 + 1.09105257e-01 1.07347616e-01 1.05602543e-01 1.03870095e-01 1.02150327e-01 + 1.00443293e-01 9.87490497e-02 9.70676498e-02 9.53991475e-02 9.37435963e-02 + 9.21010491e-02 9.04715586e-02 8.88551768e-02 8.72519555e-02 8.56619461e-02 + 8.40851993e-02 8.25217658e-02 8.09716956e-02 7.94350381e-02 7.79118428e-02 + 7.64021582e-02 7.49060328e-02 7.34235143e-02 7.19546504e-02 7.04994879e-02 + 6.90580735e-02 6.76304533e-02 6.62166731e-02 6.48167779e-02 6.34308128e-02 + 6.20588220e-02 6.07008494e-02 5.93569385e-02 5.80271324e-02 5.67114736e-02 + 5.54100042e-02 5.41227659e-02 5.28497998e-02 5.15911468e-02 5.03468471e-02 + 4.91169405e-02 4.79014665e-02 4.67004638e-02 4.55139711e-02 4.43420261e-02 + 4.31846665e-02 4.20419294e-02 4.09138512e-02 3.98004680e-02 3.87018157e-02 + 3.76179292e-02 3.65488433e-02 3.54945922e-02 3.44552096e-02 3.34307289e-02 + 3.24211828e-02 3.14266036e-02 3.04470233e-02 2.94824730e-02 2.85329837e-02 + 2.75985858e-02 2.66793093e-02 2.57751834e-02 2.48862372e-02 2.40124992e-02 + 2.31539972e-02 2.23107588e-02 2.14828110e-02 2.06701802e-02 1.98728925e-02 + 1.90909735e-02 1.83244480e-02 1.75733407e-02 1.68376756e-02 1.61174762e-02 + 1.54127657e-02 1.47235665e-02 1.40499008e-02 1.33917900e-02 1.27492553e-02 + 1.21223172e-02 1.15109958e-02 1.09153106e-02 1.03352808e-02 9.77092489e-03 + 9.22226091e-03 8.68930645e-03 8.17207857e-03 7.67059382e-03 7.18486826e-03 + 6.71491743e-03 6.26075638e-03 5.82239964e-03 5.39986125e-03 4.99315473e-03 + 4.60229310e-03 4.22728887e-03 3.86815404e-03 3.52490011e-03 3.19753807e-03 + 2.88607840e-03 2.59053106e-03 2.31090551e-03 2.04721071e-03 1.79945510e-03 + 1.56764661e-03 1.35179266e-03 1.15190015e-03 9.67975486e-04 8.00024557e-04 + 6.48052736e-04 5.12064889e-04 3.92065368e-04 2.88058015e-04 2.00046158e-04 + 1.28032615e-04 7.20196905e-05 3.20091782e-05 8.00235860e-06 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 5.14330820e-07 5.21272731e-07 5.28308337e-07 5.35438902e-07 5.42665708e-07 + 5.49990054e-07 5.57413257e-07 5.64936650e-07 5.72561587e-07 5.80289437e-07 + 5.88121589e-07 5.96059452e-07 6.04104453e-07 6.12258036e-07 6.20521668e-07 + 6.28896834e-07 6.37385040e-07 6.45987811e-07 6.54706693e-07 6.63543253e-07 + 6.72499081e-07 6.81575785e-07 6.90774997e-07 7.00098371e-07 7.09547582e-07 + 7.19124329e-07 7.28830332e-07 7.38667338e-07 7.48637114e-07 7.58741451e-07 + 7.68982166e-07 7.79361100e-07 7.89880118e-07 8.00541111e-07 8.11345996e-07 + 8.22296713e-07 8.33395232e-07 8.44643548e-07 8.56043682e-07 8.67597683e-07 + 8.79307628e-07 8.91175622e-07 9.03203799e-07 9.15394319e-07 9.27749374e-07 + 9.40271185e-07 9.52962003e-07 9.65824108e-07 9.78859813e-07 9.92071461e-07 + 1.00546143e-06 1.01903211e-06 1.03278597e-06 1.04672545e-06 1.06085308e-06 + 1.07517139e-06 1.08968295e-06 1.10439038e-06 1.11929631e-06 1.13440343e-06 + 1.14971444e-06 1.16523211e-06 1.18095922e-06 1.19689860e-06 1.21305311e-06 + 1.22942566e-06 1.24601919e-06 1.26283668e-06 1.27988116e-06 1.29715568e-06 + 1.31466336e-06 1.33240734e-06 1.35039081e-06 1.36861700e-06 1.38708919e-06 + 1.40581070e-06 1.42478490e-06 1.44401519e-06 1.46350502e-06 1.48325792e-06 + 1.50327741e-06 1.52356711e-06 1.54413066e-06 1.56497176e-06 1.58609414e-06 + 1.60750162e-06 1.62919803e-06 1.65118728e-06 1.67347331e-06 1.69606014e-06 + 1.71895182e-06 1.74215248e-06 1.76566627e-06 1.78949742e-06 1.81365023e-06 + 1.83812902e-06 1.86293820e-06 1.88808224e-06 1.91356564e-06 1.93939299e-06 + 1.96556893e-06 1.99209816e-06 2.01898547e-06 2.04623566e-06 2.07385366e-06 + 2.10184441e-06 2.13021296e-06 2.15896439e-06 2.18810388e-06 2.21763667e-06 + 2.24756806e-06 2.27790343e-06 2.30864824e-06 2.33980801e-06 2.37138834e-06 + 2.40339491e-06 2.43583348e-06 2.46870986e-06 2.50202998e-06 2.53579982e-06 + 2.57002545e-06 2.60471302e-06 2.63986877e-06 2.67549902e-06 2.71161016e-06 + 2.74820870e-06 2.78530121e-06 2.82289435e-06 2.86099489e-06 2.89960967e-06 + 2.93874563e-06 2.97840981e-06 3.01860934e-06 3.05935144e-06 3.10064343e-06 + 3.14249274e-06 3.18490689e-06 3.22789350e-06 3.27146030e-06 3.31561513e-06 + 3.36036590e-06 3.40572068e-06 3.45168761e-06 3.49827496e-06 3.54549109e-06 + 3.59334450e-06 3.64184379e-06 3.69099766e-06 3.74081497e-06 3.79130466e-06 + 3.84247581e-06 3.89433762e-06 3.94689940e-06 4.00017061e-06 4.05416081e-06 + 4.10887972e-06 4.16433718e-06 4.22054314e-06 4.27750771e-06 4.33524113e-06 + 4.39375377e-06 4.45305616e-06 4.51315895e-06 4.57407295e-06 4.63580911e-06 + 4.69837851e-06 4.76179241e-06 4.82606221e-06 4.89119946e-06 4.95721586e-06 + 5.02412329e-06 5.09193376e-06 5.16065947e-06 5.23031277e-06 5.30090617e-06 + 5.37245238e-06 5.44496424e-06 5.51845479e-06 5.59293724e-06 5.66842498e-06 + 5.74493158e-06 5.82247079e-06 5.90105654e-06 5.98070296e-06 6.06142436e-06 + 6.14323526e-06 6.22615036e-06 6.31018456e-06 6.39535297e-06 6.48167090e-06 + 6.56915386e-06 6.65781757e-06 6.74767798e-06 6.83875123e-06 6.93105369e-06 + 7.02460195e-06 7.11941284e-06 7.21550338e-06 7.31289086e-06 7.41159278e-06 + 7.51162687e-06 7.61301112e-06 7.71576375e-06 7.81990322e-06 7.92544827e-06 + 8.03241786e-06 8.14083121e-06 8.25070782e-06 8.36206742e-06 8.47493005e-06 + 8.58931598e-06 8.70524577e-06 8.82274026e-06 8.94182058e-06 9.06250812e-06 + 9.18482457e-06 9.30879193e-06 9.43443248e-06 9.56176879e-06 9.69082375e-06 + 9.82162057e-06 9.95418275e-06 1.00885341e-05 1.02246988e-05 1.03627013e-05 + 1.05025665e-05 1.06443194e-05 1.07879855e-05 1.09335907e-05 1.10811611e-05 + 1.12307232e-05 1.13823040e-05 1.15359307e-05 1.16916309e-05 1.18494326e-05 + 1.20093641e-05 1.21714542e-05 1.23357320e-05 1.25022271e-05 1.26709694e-05 + 1.28419891e-05 1.30153172e-05 1.31909846e-05 1.33690230e-05 1.35494644e-05 + 1.37323412e-05 1.39176862e-05 1.41055329e-05 1.42959150e-05 1.44888666e-05 + 1.46844225e-05 1.48826178e-05 1.50834881e-05 1.52870696e-05 1.54933988e-05 + 1.57025128e-05 1.59144493e-05 1.61292462e-05 1.63469423e-05 1.65675766e-05 + 1.67911888e-05 1.70178190e-05 1.72475081e-05 1.74802973e-05 1.77162285e-05 + 1.79553440e-05 1.81976869e-05 1.84433006e-05 1.86922294e-05 1.89445180e-05 + 1.92002117e-05 1.94593565e-05 1.97219989e-05 1.99881863e-05 2.02579664e-05 + 2.05313877e-05 2.08084993e-05 2.10893511e-05 2.13739936e-05 2.16624779e-05 + 2.19548558e-05 2.22511800e-05 2.25515036e-05 2.28558807e-05 2.31643660e-05 + 2.34770149e-05 2.37938836e-05 2.41150291e-05 2.44405091e-05 2.47703821e-05 + 2.51047073e-05 2.54435449e-05 2.57869559e-05 2.61350018e-05 2.64877453e-05 + 2.68452498e-05 2.72075795e-05 2.75747995e-05 2.79469759e-05 2.83241756e-05 + 2.87064663e-05 2.90939168e-05 2.94865967e-05 2.98845766e-05 3.02879280e-05 + 3.06967235e-05 3.11110364e-05 3.15309413e-05 3.19565137e-05 3.23878300e-05 + 3.28249678e-05 3.32680056e-05 3.37170230e-05 3.41721009e-05 3.46333209e-05 + 3.51007660e-05 3.55745202e-05 3.60546687e-05 3.65412977e-05 3.70344947e-05 + 3.75343484e-05 3.80409486e-05 3.85543864e-05 3.90747540e-05 3.96021450e-05 + 4.01366543e-05 4.06783777e-05 4.12274128e-05 4.17838582e-05 4.23478140e-05 + 4.29193814e-05 4.34986633e-05 4.40857637e-05 4.46807882e-05 4.52838437e-05 + 4.58950387e-05 4.65144829e-05 4.71422878e-05 4.77785661e-05 4.84234323e-05 + 4.90770022e-05 4.97393933e-05 5.04107247e-05 5.10911171e-05 5.17806927e-05 + 5.24795755e-05 5.31878910e-05 5.39057667e-05 5.46333316e-05 5.53707164e-05 + 5.61180536e-05 5.68754776e-05 5.76431246e-05 5.84211325e-05 5.92096411e-05 + 6.00087922e-05 6.08187295e-05 6.16395984e-05 6.24715466e-05 6.33147236e-05 + 6.41692809e-05 6.50353721e-05 6.59131530e-05 6.68027813e-05 6.77044168e-05 + 6.86182217e-05 6.95443602e-05 7.04829988e-05 7.14343061e-05 7.23984533e-05 + 7.33756135e-05 7.43659624e-05 7.53696780e-05 7.63869407e-05 7.74179335e-05 + 7.84628415e-05 7.95218526e-05 8.05951571e-05 8.16829480e-05 8.27854208e-05 + 8.39027737e-05 8.50352074e-05 8.61829256e-05 8.73461345e-05 8.85250432e-05 + 8.97198636e-05 9.09308104e-05 9.21581014e-05 9.34019571e-05 9.46626011e-05 + 9.59402600e-05 9.72351634e-05 9.85475441e-05 9.98776379e-05 1.01225684e-04 + 1.02591925e-04 1.03976605e-04 1.05379975e-04 1.06802286e-04 1.08243794e-04 + 1.09704758e-04 1.11185441e-04 1.12686108e-04 1.14207029e-04 1.15748479e-04 + 1.17310733e-04 1.18894074e-04 1.20498784e-04 1.22125153e-04 1.23773474e-04 + 1.25444041e-04 1.27137157e-04 1.28853124e-04 1.30592251e-04 1.32354852e-04 + 1.34141242e-04 1.35951743e-04 1.37786681e-04 1.39646384e-04 1.41531188e-04 + 1.43441431e-04 1.45377457e-04 1.47339613e-04 1.49328252e-04 1.51343732e-04 + 1.53386415e-04 1.55456667e-04 1.57554862e-04 1.59681377e-04 1.61836592e-04 + 1.64020897e-04 1.66234683e-04 1.68478349e-04 1.70752297e-04 1.73056937e-04 + 1.75392682e-04 1.77759953e-04 1.80159175e-04 1.82590779e-04 1.85055202e-04 + 1.87552888e-04 1.90084285e-04 1.92649848e-04 1.95250038e-04 1.97885323e-04 + 2.00556177e-04 2.03263079e-04 2.06006515e-04 2.08786981e-04 2.11604973e-04 + 2.14461001e-04 2.17355576e-04 2.20289219e-04 2.23262457e-04 2.26275825e-04 + 2.29329865e-04 2.32425124e-04 2.35562161e-04 2.38741538e-04 2.41963826e-04 + 2.45229606e-04 2.48539465e-04 2.51893996e-04 2.55293803e-04 2.58739497e-04 + 2.62231698e-04 2.65771033e-04 2.69358138e-04 2.72993659e-04 2.76678248e-04 + 2.80412567e-04 2.84197289e-04 2.88033093e-04 2.91920669e-04 2.95860715e-04 + 2.99853940e-04 3.03901062e-04 3.08002807e-04 3.12159914e-04 3.16373129e-04 + 3.20643209e-04 3.24970923e-04 3.29357048e-04 3.33802372e-04 3.38307695e-04 + 3.42873826e-04 3.47501586e-04 3.52191806e-04 3.56945331e-04 3.61763013e-04 + 3.66645720e-04 3.71594328e-04 3.76609728e-04 3.81692821e-04 3.86844520e-04 + 3.92065751e-04 3.97357453e-04 4.02720577e-04 4.08156087e-04 4.13664960e-04 + 4.19248186e-04 4.24906769e-04 4.30641726e-04 4.36454087e-04 4.42344897e-04 + 4.48315216e-04 4.54366115e-04 4.60498684e-04 4.66714024e-04 4.73013252e-04 + 4.79397500e-04 4.85867917e-04 4.92425665e-04 4.99071922e-04 5.05807884e-04 + 5.12634761e-04 5.19553780e-04 5.26566185e-04 5.33673236e-04 5.40876211e-04 + 5.48176405e-04 5.55575129e-04 5.63073713e-04 5.70673505e-04 5.78375872e-04 + 5.86182197e-04 5.94093885e-04 6.02112356e-04 6.10239052e-04 6.18475434e-04 + 6.26822982e-04 6.35283197e-04 6.43857599e-04 6.52547729e-04 6.61355151e-04 + 6.70281445e-04 6.79328218e-04 6.88497095e-04 6.97789724e-04 7.07207775e-04 + 7.16752941e-04 7.26426939e-04 7.36231506e-04 7.46168405e-04 7.56239422e-04 + 7.66446368e-04 7.76791076e-04 7.87275407e-04 7.97901244e-04 8.08670498e-04 + 8.19585105e-04 8.30647025e-04 8.41858248e-04 8.53220789e-04 8.64736690e-04 + 8.76408020e-04 8.88236878e-04 9.00225390e-04 9.12375711e-04 9.24690024e-04 + 9.37170543e-04 9.49819512e-04 9.62639203e-04 9.75631922e-04 9.88800002e-04 + 1.00214581e-03 1.01567175e-03 1.02938025e-03 1.04327377e-03 1.05735481e-03 + 1.07162590e-03 1.08608961e-03 1.10074854e-03 1.11560531e-03 1.13066261e-03 + 1.14592314e-03 1.16138964e-03 1.17706488e-03 1.19295170e-03 1.20905294e-03 + 1.22537150e-03 1.24191031e-03 1.25867234e-03 1.27566061e-03 1.29287818e-03 + 1.31032812e-03 1.32801359e-03 1.34593776e-03 1.36410385e-03 1.38251512e-03 + 1.40117490e-03 1.42008652e-03 1.43925340e-03 1.45867896e-03 1.47836672e-03 + 1.49832020e-03 1.51854299e-03 1.53903873e-03 1.55981110e-03 1.58086383e-03 + 1.60220071e-03 1.62382558e-03 1.64574231e-03 1.66795486e-03 1.69046721e-03 + 1.71328340e-03 1.73640755e-03 1.75984380e-03 1.78359637e-03 1.80766953e-03 + 1.83206760e-03 1.85679497e-03 1.88185609e-03 1.90725546e-03 1.93299764e-03 + 1.95908726e-03 1.98552901e-03 2.01232765e-03 2.03948799e-03 2.06701491e-03 + 2.09491336e-03 2.12318836e-03 2.15184498e-03 2.18088838e-03 2.21032378e-03 + 2.24015647e-03 2.27039180e-03 2.30103523e-03 2.33209225e-03 2.36356844e-03 + 2.39546947e-03 2.42780106e-03 2.46056903e-03 2.49377928e-03 2.52743776e-03 + 2.56155052e-03 2.59612371e-03 2.63116353e-03 2.66667628e-03 2.70266835e-03 + 2.73914620e-03 2.77611639e-03 2.81358556e-03 2.85156046e-03 2.89004791e-03 + 2.92905481e-03 2.96858820e-03 3.00865516e-03 3.04926291e-03 3.09041874e-03 + 3.13213004e-03 3.17440433e-03 3.21724919e-03 3.26067232e-03 3.30468154e-03 + 3.34928475e-03 3.39448996e-03 3.44030531e-03 3.48673903e-03 3.53379947e-03 + 3.58149507e-03 3.62983443e-03 3.67882622e-03 3.72847925e-03 3.77880244e-03 + 3.82980485e-03 3.88149563e-03 3.93388409e-03 3.98697963e-03 4.04079180e-03 + 4.09533027e-03 4.15060484e-03 4.20662546e-03 4.26340218e-03 4.32094522e-03 + 4.37926491e-03 4.43837175e-03 4.49827634e-03 4.55898947e-03 4.62052205e-03 + 4.68288512e-03 4.74608991e-03 4.81014777e-03 4.87507022e-03 4.94086893e-03 + 5.00755572e-03 5.07514258e-03 5.14364166e-03 5.21306527e-03 5.28342588e-03 + 5.35473616e-03 5.42700890e-03 5.50025711e-03 5.57449395e-03 5.64973276e-03 + 5.72598707e-03 5.80327058e-03 5.88159719e-03 5.96098097e-03 6.04143618e-03 + 6.12297730e-03 6.20561898e-03 6.28937607e-03 6.37426363e-03 6.46029692e-03 + 6.54749139e-03 6.63586273e-03 6.72542681e-03 6.81619973e-03 6.90819782e-03 + 7.00143760e-03 7.09593584e-03 7.19170951e-03 7.28877585e-03 7.38715228e-03 + 7.48685650e-03 7.58790642e-03 7.69032021e-03 7.79411628e-03 7.89931328e-03 + 8.00593013e-03 8.11398598e-03 8.22350025e-03 8.33449264e-03 8.44698309e-03 + 8.56099182e-03 8.67653932e-03 8.79364636e-03 8.91233400e-03 9.03262356e-03 + 9.15453666e-03 9.27809523e-03 9.40332146e-03 9.53023786e-03 9.65886725e-03 + 9.78923276e-03 9.92135780e-03 1.00552661e-02 1.01909818e-02 1.03285293e-02 + 1.04679332e-02 1.06092186e-02 1.07524110e-02 1.08975360e-02 1.10446198e-02 + 1.11936888e-02 1.13447697e-02 1.14978898e-02 1.16530766e-02 1.18103578e-02 + 1.19697620e-02 1.21313176e-02 1.22950537e-02 1.24609997e-02 1.26291855e-02 + 1.27996413e-02 1.29723978e-02 1.31474859e-02 1.33249372e-02 1.35047836e-02 + 1.36870573e-02 1.38717912e-02 1.40590185e-02 1.42487727e-02 1.44410881e-02 + 1.46359991e-02 1.48335408e-02 1.50337487e-02 1.52366589e-02 1.54423077e-02 + 1.56507322e-02 1.58619697e-02 1.60760584e-02 1.62930365e-02 1.65129433e-02 + 1.67358181e-02 1.69617010e-02 1.71906327e-02 1.74226542e-02 1.76578074e-02 + 1.78961344e-02 1.81376781e-02 1.83824819e-02 1.86305898e-02 1.88820465e-02 + 1.91368970e-02 1.93951872e-02 1.96569636e-02 1.99222732e-02 2.01911636e-02 + 2.04636833e-02 2.07398811e-02 2.10198068e-02 2.13035106e-02 2.15910436e-02 + 2.18824574e-02 2.21778044e-02 2.24771377e-02 2.27805111e-02 2.30879791e-02 + 2.33995970e-02 2.37154208e-02 2.40355073e-02 2.43599140e-02 2.46886991e-02 + 2.50219219e-02 2.53596422e-02 2.57019207e-02 2.60488189e-02 2.64003992e-02 + 2.67567248e-02 2.71178596e-02 2.74838687e-02 2.78548179e-02 2.82307737e-02 + 2.86118038e-02 2.89979766e-02 2.93893616e-02 2.97860291e-02 3.01880504e-02 + 3.05954978e-02 3.10084445e-02 3.14269648e-02 3.18511338e-02 3.22810278e-02 + 3.27167240e-02 3.31583009e-02 3.36058377e-02 3.40594148e-02 3.45191140e-02 + 3.49850176e-02 3.54572096e-02 3.59357747e-02 3.64207990e-02 3.69123696e-02 + 3.74105750e-02 3.79155046e-02 3.84272493e-02 3.89459010e-02 3.94715529e-02 + 4.00042995e-02 4.05442365e-02 4.10914611e-02 4.16460716e-02 4.22081677e-02 + 4.27778503e-02 4.33552219e-02 4.39403863e-02 4.45334487e-02 4.51345155e-02 + 4.57436950e-02 4.63610966e-02 4.69868312e-02 4.76210113e-02 4.82637510e-02 + 4.89151657e-02 4.95753725e-02 5.02444901e-02 5.09226388e-02 5.16099405e-02 + 5.23065186e-02 5.30124984e-02 5.37280069e-02 5.44531725e-02 5.51881257e-02 + 5.59329985e-02 5.66879248e-02 5.74530404e-02 5.82284827e-02 5.90143912e-02 + 5.98109070e-02 6.06181734e-02 6.14363354e-02 6.22655402e-02 6.31059367e-02 + 6.39576760e-02 6.48209113e-02 6.56957975e-02 6.65824922e-02 6.74811545e-02 + 6.83919460e-02 6.93150305e-02 7.02505738e-02 7.11987441e-02 7.21597119e-02 + 7.31336498e-02 7.41207329e-02 7.51211387e-02 7.61350469e-02 7.71626398e-02 + 7.82041021e-02 7.92596210e-02 8.03293862e-02 8.14135900e-02 8.25124273e-02 + 8.36260956e-02 8.47547950e-02 8.58987284e-02 8.70581015e-02 8.82331227e-02 + 8.94240030e-02 9.06309567e-02 9.18542005e-02 9.30939545e-02 9.43504414e-02 + 9.56238870e-02 9.69145203e-02 9.82225733e-02 9.95482810e-02 1.00891882e-01 + 1.02253617e-01 1.03633732e-01 1.05032474e-01 1.06450095e-01 1.07886849e-01 + 1.09342995e-01 1.10818795e-01 1.12314514e-01 1.13830420e-01 1.15366786e-01 + 1.16923889e-01 1.18502008e-01 1.20101427e-01 1.21722433e-01 1.23365318e-01 + 1.25030377e-01 1.26717909e-01 1.28428217e-01 1.30161610e-01 1.31918398e-01 + 1.33698897e-01 1.35503428e-01 1.37332315e-01 1.39185886e-01 1.41064474e-01 + 1.42968418e-01 1.44898059e-01 1.46853745e-01 1.48835827e-01 1.50844660e-01 + 1.52880607e-01 1.54944033e-01 1.57035309e-01 1.59154811e-01 1.61302919e-01 + 1.63480021e-01 1.65686507e-01 1.67922774e-01 1.70189223e-01 1.72486263e-01 + 1.74814306e-01 1.77173771e-01 1.79565081e-01 1.81988667e-01 1.84444963e-01 + 1.86934413e-01 1.89457462e-01 1.92014565e-01 1.94606181e-01 1.97232776e-01 + 1.99894822e-01 2.02592797e-01 2.05327188e-01 2.08098484e-01 2.10907184e-01 + 2.13753793e-01 2.16638823e-01 2.19562792e-01 2.22526226e-01 2.25529657e-01 + 2.28573626e-01 2.31658678e-01 2.34785370e-01 2.37954263e-01 2.41165926e-01 + 2.44420936e-01 2.47719880e-01 2.51063349e-01 2.54451945e-01 2.57886277e-01 + 2.61366962e-01 2.64894626e-01 2.68469902e-01 2.72093434e-01 2.75765873e-01 + 2.79487878e-01 2.83260119e-01 2.87083274e-01 2.90958030e-01 2.94885084e-01 + 2.98865141e-01 3.02898917e-01 3.06987136e-01 3.11130534e-01 3.15329856e-01 + 3.19585855e-01 3.23899298e-01 3.28270959e-01 3.32701624e-01 3.37192090e-01 + 3.41743164e-01 3.46355663e-01 3.51030417e-01 3.55768266e-01 3.60570062e-01 + 3.65436668e-01 3.70368958e-01 3.75367819e-01 3.80434149e-01 3.85568860e-01 + 3.90772873e-01 3.96047126e-01 4.01392564e-01 4.06810150e-01 4.12300857e-01 + 4.17865672e-01 4.23505595e-01 4.29221640e-01 4.35014834e-01 4.40886219e-01 + 4.46836850e-01 4.52867796e-01 4.58980142e-01 4.65174986e-01 4.71453442e-01 + 4.77816637e-01 4.84265717e-01 4.90801840e-01 4.97426181e-01 5.04139930e-01 + 5.10944295e-01 5.17840498e-01 5.24829779e-01 5.31913394e-01 5.39092616e-01 + 5.46368736e-01 5.53743062e-01 5.61216919e-01 5.68791650e-01 5.76468618e-01 + 5.84249201e-01 5.92134798e-01 6.00126828e-01 6.08226725e-01 6.16435947e-01 + 6.24755968e-01 6.33188284e-01 6.41734412e-01 6.50395886e-01 6.59174263e-01 + 6.68071123e-01 6.77088063e-01 6.86226704e-01 6.95488690e-01 7.04875684e-01 + 7.14389374e-01 7.24031471e-01 7.33803706e-01 7.43707837e-01 7.53745644e-01 + 7.63918931e-01 7.74229527e-01 7.84679284e-01 7.95270082e-01 8.06003823e-01 + 8.16882438e-01 8.27907880e-01 8.39082133e-01 8.50407205e-01 8.61885131e-01 + 8.73517974e-01 8.85307825e-01 8.97256804e-01 9.09367057e-01 9.21640763e-01 + 9.34080126e-01 9.46687383e-01 9.59464800e-01 9.72414674e-01 9.85539332e-01 + 9.98841133e-01 1.01232247e+00 1.02598576e+00 1.03983347e+00 1.05386807e+00 + 1.06809210e+00 1.08250812e+00 1.09711870e+00 1.11192649e+00 1.12693414e+00 + 1.14214434e+00 1.15755983e+00 1.17318339e+00 1.18901782e+00 1.20506596e+00 + 1.22133071e+00 1.23781498e+00 1.25452174e+00 1.27145399e+00 1.28861478e+00 + 1.30600718e+00 1.32363433e+00 1.34149939e+00 1.35960557e+00 1.37795614e+00 + 1.39655438e+00 1.41540364e+00 1.43450731e+00 1.45386882e+00 1.47349165e+00 + 1.49337933e+00 1.51353544e+00 1.53396359e+00 1.55466746e+00 1.57565077e+00 + 1.59691729e+00 1.61847085e+00 1.64031531e+00 1.66245461e+00 1.68489272e+00 + 1.70763367e+00 1.73068156e+00 1.75404053e+00 1.77771477e+00 1.80170855e+00 + 1.82602617e+00 1.85067200e+00 1.87565047e+00 1.90096608e+00 1.92662338e+00 + 1.95262697e+00 1.97898153e+00 2.00569179e+00 2.03276257e+00 2.06019871e+00 + 2.08800517e+00 2.11618692e+00 2.14474905e+00 2.17369667e+00 2.20303501e+00 + 2.23276932e+00 2.26290495e+00 2.29344733e+00 2.32440193e+00 2.35577433e+00 + 2.38757016e+00 2.41979514e+00 2.45245505e+00 2.48555578e+00 2.51910327e+00 + 2.55310354e+00 2.58756272e+00 2.62248699e+00 2.65788264e+00 2.69375602e+00 + 2.73011358e+00 2.76696186e+00 2.80430747e+00 2.84215715e+00 2.88051767e+00 + 2.91939595e+00 2.95879897e+00 2.99873381e+00 3.03920765e+00 3.08022776e+00 + 3.12180152e+00 3.16393640e+00 3.20663997e+00 3.24991992e+00 3.29378401e+00 + 3.33824013e+00 3.38329628e+00 3.42896055e+00 3.47524115e+00 3.52214640e+00 + 3.56968472e+00 3.61786467e+00 3.66669491e+00 3.71618420e+00 3.76634145e+00 + 3.81717567e+00 3.86869600e+00 3.92091170e+00 3.97383215e+00 4.02746687e+00 + 4.08182549e+00 4.13691779e+00 4.19275367e+00 4.24934317e+00 4.30669645e+00 + 4.36482383e+00 4.42373576e+00 4.48344281e+00 4.54395573e+00 4.60528539e+00 + 4.66744282e+00 4.73043919e+00 4.79428581e+00 4.85899417e+00 4.92457590e+00 + 4.99104278e+00 5.05840677e+00 5.12667997e+00 5.19587464e+00 5.26600324e+00 + 5.33707836e+00 5.40911278e+00 5.48211944e+00 5.55611148e+00 5.63110218e+00 + 5.70710504e+00 5.78413370e+00 5.86220201e+00 5.94132401e+00 6.02151392e+00 + 6.10278615e+00 6.18515531e+00 6.26863620e+00 6.35324384e+00 6.43899342e+00 + 6.52590036e+00 6.61398028e+00 6.70324902e+00 6.79372261e+00 6.88541732e+00 + 6.97834963e+00 7.07253625e+00 7.16799410e+00 7.26474035e+00 7.36279238e+00 + 7.46216781e+00 7.56288451e+00 7.66496058e+00 7.76841437e+00 7.87326448e+00 + 7.97952974e+00 8.08722926e+00 8.19638240e+00 8.30700878e+00 8.41912828e+00 + 8.53276106e+00 8.64792753e+00 8.76464840e+00 8.88294465e+00 9.00283754e+00 + 9.12434863e+00 9.24749974e+00 9.37231303e+00 9.49881091e+00 9.62701614e+00 + 9.75695174e+00 9.88864109e+00 1.00221078e+01 1.01573760e+01 1.02944699e+01 + 1.04334141e+01 1.05742336e+01 1.07169538e+01 1.08616003e+01 1.10081990e+01 + 1.11567764e+01 1.13073592e+01 1.14599743e+01 1.16146493e+01 1.17714120e+01 + 1.19302904e+01 1.20913133e+01 1.22545094e+01 1.24199083e+01 1.25875395e+01 + 1.27574332e+01 1.29296200e+01 1.31041307e+01 1.32809969e+01 1.34602502e+01 + 1.36419229e+01 1.38260476e+01 1.40126574e+01 1.42017859e+01 1.43934671e+01 + 1.45877353e+01 1.47846257e+01 1.49841734e+01 1.51864144e+01 1.53913851e+01 + 1.55991223e+01 1.58096632e+01 1.60230459e+01 1.62393086e+01 1.64584901e+01 + 1.66806300e+01 1.69057680e+01 1.71339448e+01 1.73652012e+01 1.75995789e+01 + 1.78371200e+01 1.80778672e+01 1.83218638e+01 1.85691535e+01 1.88197809e+01 + 1.90737911e+01 1.93312296e+01 1.95921427e+01 1.98565774e+01 2.01245812e+01 + 2.03962022e+01 2.06714892e+01 2.09504918e+01 2.12332601e+01 2.15198449e+01 + 2.18102977e+01 2.21046708e+01 2.24030170e+01 2.27053900e+01 2.30118441e+01 + 2.33224344e+01 2.36372168e+01 2.39562477e+01 2.42795846e+01 2.46072856e+01 + 2.49394095e+01 2.52760162e+01 2.56171659e+01 2.59629202e+01 2.63133411e+01 + 2.66684917e+01 2.70284357e+01 2.73932378e+01 2.77629637e+01 2.81376798e+01 + 2.85174534e+01 2.89023527e+01 2.92924471e+01 2.96878066e+01 3.00885022e+01 + 3.04946060e+01 3.09061910e+01 3.13233311e+01 3.17461013e+01 3.21745777e+01 + 3.26088372e+01 3.30489579e+01 3.34950189e+01 3.39471004e+01 3.44052836e+01 + 3.48696509e+01 3.53402857e+01 3.58172727e+01 3.63006976e+01 3.67906473e+01 + 3.72872097e+01 3.77904743e+01 3.83005315e+01 3.88174728e+01 3.93413913e+01 + 3.98723811e+01 4.04105377e+01 4.09559578e+01 4.15087394e+01 4.20689818e+01 + 4.26367859e+01 4.32122536e+01 4.37954883e+01 4.43865950e+01 4.49856798e+01 + 4.55928504e+01 4.62082161e+01 4.68318873e+01 4.74639761e+01 4.81045963e+01 + 4.87538629e+01 4.94118926e+01 5.00788037e+01 5.07547161e+01 5.14397513e+01 + 5.21340324e+01 5.28376842e+01 5.35508332e+01 5.42736075e+01 5.50061371e+01 + 5.57485536e+01 5.65009905e+01 5.72635830e+01 5.80364683e+01 5.88197851e+01 + 5.96136743e+01 6.04182787e+01 6.12337427e+01 6.20602131e+01 6.28978383e+01 + 6.37467689e+01 6.46071576e+01 6.54791588e+01 6.63629295e+01 6.72586284e+01 + 6.81664165e+01 6.90864570e+01 7.00189152e+01 7.09639589e+01 7.19217577e+01 + 7.28924840e+01 7.38763121e+01 7.48734189e+01 7.58839837e+01 7.69081880e+01 + 7.79462160e+01 7.89982542e+01 8.00644917e+01 8.11451203e+01 8.22403340e+01 + 8.33503299e+01 8.44753073e+01 8.56154685e+01 8.67710184e+01 8.79421648e+01 + 8.91291181e+01 9.03320917e+01 9.15513018e+01 9.27869675e+01 9.40393110e+01 + 9.53085573e+01 9.65949346e+01 9.78986742e+01 9.92200103e+01 1.00559180e+02 + 1.01916425e+02 1.03291989e+02 1.04686118e+02 1.06099064e+02 1.07531081e+02 + 1.08982425e+02 1.10453359e+02 1.11944145e+02 1.13455052e+02 1.14986352e+02 + 1.16538321e+02 1.18111235e+02 1.19705380e+02 1.21321041e+02 1.22958508e+02 + 1.24618076e+02 1.26300043e+02 1.28004712e+02 1.29732388e+02 1.31483383e+02 + 1.33258011e+02 1.35056592e+02 1.36879447e+02 1.38726906e+02 1.40599300e+02 + 1.42496965e+02 1.44420243e+02 1.46369480e+02 1.48345025e+02 1.50347234e+02 + 1.52376467e+02 1.54433089e+02 1.56517469e+02 1.58629981e+02 1.60771006e+02 + 1.62940929e+02 1.65140138e+02 1.67369031e+02 1.69628007e+02 1.71917472e+02 + 1.74237838e+02 1.76589522e+02 1.78972947e+02 1.81388540e+02 1.83836737e+02 + 1.86317977e+02 1.88832706e+02 1.91381377e+02 1.93964447e+02 1.96582380e+02 + 1.99235648e+02 2.01924727e+02 2.04650100e+02 2.07412257e+02 2.10211696e+02 + 2.13048918e+02 2.15924434e+02 2.18838761e+02 2.21792423e+02 2.24785950e+02 + 2.27819880e+02 2.30894760e+02 2.34011141e+02 2.37169584e+02 2.40370656e+02 + 2.43614933e+02 2.46902998e+02 2.50235442e+02 2.53612863e+02 2.57035870e+02 + 2.60505077e+02 2.64021108e+02 2.67584595e+02 2.71196178e+02 2.74856506e+02 + 2.78566238e+02 2.82326040e+02 2.86136587e+02 2.89998566e+02 2.93912670e+02 + 2.97879602e+02 3.01900076e+02 3.05974814e+02 3.10104549e+02 3.14290023e+02 + 3.18531988e+02 3.22831206e+02 3.27188451e+02 3.31604506e+02 3.36080164e+02 + 3.40616230e+02 3.45213519e+02 3.49872858e+02 3.54595083e+02 3.59381045e+02 + 3.64231602e+02 3.69147628e+02 3.74130004e+02 3.79179628e+02 3.84297406e+02 + 3.89484259e+02 3.94741119e+02 4.00068931e+02 4.05468651e+02 4.10941252e+02 + 4.16487716e+02 4.22109041e+02 4.27806237e+02 4.33580327e+02 4.39432351e+02 + 4.45363359e+02 4.51374417e+02 4.57466607e+02 4.63641023e+02 4.69898775e+02 + 4.76240987e+02 4.82668801e+02 4.89183370e+02 4.95785866e+02 5.02477476e+02 + 5.09259403e+02 5.16132865e+02 5.23099098e+02 5.30159354e+02 5.37314902e+02 + 5.44567029e+02 5.51917037e+02 5.59366248e+02 5.66916001e+02 5.74567652e+02 + 5.82322578e+02 5.90182172e+02 5.98147847e+02 6.06221034e+02 6.14403185e+02 + 6.22695770e+02 6.31100280e+02 6.39618226e+02 6.48251138e+02 6.57000568e+02 + 6.65868089e+02 6.74855295e+02 6.83963800e+02 6.93195244e+02 7.02551283e+02 + 7.12033601e+02 7.21643902e+02 7.31383912e+02 7.41255383e+02 7.51260090e+02 + 7.61399829e+02 7.71676425e+02 7.82091723e+02 7.92647596e+02 8.03345942e+02 + 8.14188683e+02 8.25177768e+02 8.36315173e+02 8.47602899e+02 8.59042975e+02 + 8.70637458e+02 8.82388431e+02 8.94298006e+02 9.06368325e+02 9.18601557e+02 + 9.30999900e+02 9.43565584e+02 9.56300866e+02 9.69208036e+02 9.82289413e+02 + 9.95547350e+02 1.00898423e+03 1.02260247e+03 1.03640451e+03 1.05039283e+03 + 1.06456996e+03 1.07893844e+03 1.09350084e+03 1.10825980e+03 1.12321795e+03 + 1.13837800e+03 1.15374266e+03 1.16931470e+03 1.18509691e+03 1.20109213e+03 + 1.21730325e+03 1.23373316e+03 1.25038483e+03 1.26726124e+03 1.28436543e+03 + 1.30170048e+03 1.31926950e+03 1.33707565e+03 1.35512213e+03 1.37341218e+03 + 1.39194909e+03 1.41073620e+03 1.42977687e+03 1.44907454e+03 1.46863266e+03 + 1.48845476e+03 1.50854440e+03 1.52890519e+03 1.54954078e+03 1.57045490e+03 + 1.59165129e+03 1.61313377e+03 1.63490620e+03 1.65697249e+03 1.67933661e+03 + 1.70200257e+03 1.72497446e+03 1.74825640e+03 1.77185258e+03 1.79576723e+03 + 1.82000465e+03 1.84456921e+03 1.86946532e+03 1.89469745e+03 1.92027014e+03 + 1.94618798e+03 1.97245563e+03 1.99907782e+03 2.02605932e+03 2.05340500e+03 + 2.08111975e+03 2.10920858e+03 2.13767652e+03 2.16652868e+03 2.19577027e+03 + 2.22540653e+03 2.25544279e+03 2.28588445e+03 2.31673697e+03 2.34800592e+03 + 2.37969690e+03 2.41181561e+03 2.44436783e+03 2.47735940e+03 2.51079626e+03 + 2.54468442e+03 2.57902996e+03 2.61383907e+03 2.64911799e+03 2.68487308e+03 + 2.72111074e+03 2.75783751e+03 2.79505998e+03 2.83278484e+03 2.87101887e+03 + 2.90976894e+03 2.94904202e+03 2.98884517e+03 3.02918554e+03 3.07007039e+03 + 3.11150706e+03 3.15350299e+03 3.19606575e+03 3.23920297e+03 3.28292242e+03 + 3.32723194e+03 3.37213951e+03 3.41765320e+03 3.46378118e+03 3.51053175e+03 + 3.55791332e+03 3.60593439e+03 3.65460360e+03 3.70392970e+03 3.75392155e+03 + 3.80458814e+03 3.85593857e+03 3.90798208e+03 3.96072802e+03 4.01418588e+03 + 4.06836525e+03 4.12327588e+03 4.17892763e+03 4.23533052e+03 4.29249467e+03 + 4.35043037e+03 4.40914803e+03 4.46865819e+03 4.52897157e+03 4.59009899e+03 + 4.65205144e+03 4.71484007e+03 4.77847616e+03 4.84297113e+03 4.90833660e+03 + 4.97458430e+03 5.04172615e+03 5.10977421e+03 5.17874071e+03 5.24863805e+03 + 5.31947879e+03 5.39127567e+03 5.46404159e+03 5.53778963e+03 5.61253304e+03 + 5.68828527e+03 5.76505992e+03 5.84287079e+03 5.92173188e+03 6.00165735e+03 + 6.08266158e+03 6.16475912e+03 6.24796473e+03 6.33229336e+03 6.41776017e+03 + 6.50438053e+03 6.59216999e+03 6.68114436e+03 6.77131960e+03 6.86271194e+03 + 6.95533780e+03 7.04921383e+03 7.14435690e+03 7.24078412e+03 7.33851281e+03 + 7.43756054e+03 7.53794512e+03 7.63968458e+03 7.74279722e+03 7.84730157e+03 + 7.95321641e+03 8.06056079e+03 8.16935398e+03 8.27961556e+03 8.39136533e+03 + 8.50462339e+03 8.61941009e+03 8.73574606e+03 8.85365222e+03 8.97314975e+03 + 9.09426014e+03 9.21700515e+03 9.34140685e+03 9.46748760e+03 9.59527005e+03 + 9.72477718e+03 9.85603227e+03 9.98905890e+03 1.01238810e+04 1.02605228e+04 + 1.03990088e+04 1.05393640e+04 1.06816135e+04 1.08257830e+04 1.09718983e+04 + 1.11199858e+04 1.12700720e+04 1.14221839e+04 1.15763488e+04 1.17325945e+04 + 1.18909491e+04 1.20514409e+04 1.22140989e+04 1.23789523e+04 1.25460308e+04 + 1.27153642e+04 1.28869832e+04 1.30609185e+04 1.32372014e+04 1.34158636e+04 + 1.35969372e+04 1.37804547e+04 1.39664492e+04 1.41549540e+04 1.43460031e+04 + 1.45396308e+04 1.47358718e+04 1.49347615e+04 1.51363357e+04 1.53406304e+04 + 1.55476825e+04 1.57575292e+04 1.59702082e+04 1.61857578e+04 1.64042165e+04 + 1.66256239e+04 1.68500195e+04 1.70774438e+04 1.73079377e+04 1.75415425e+04 + 1.77783003e+04 1.80182536e+04 1.82614455e+04 1.85079198e+04 1.87577208e+04 + 1.90108933e+04 1.92674828e+04 1.95275356e+04 1.97910983e+04 2.00582183e+04 + 2.03289436e+04 2.06033228e+04 2.08814054e+04 2.11632412e+04 2.14488810e+04 + 2.17383760e+04 2.20317784e+04 2.23291407e+04 2.26305166e+04 2.29359602e+04 + 2.32455263e+04 2.35592706e+04 2.38772495e+04 2.41995202e+04 2.45261405e+04 + 2.48571693e+04 2.51926659e+04 2.55326907e+04 2.58773048e+04 2.62265702e+04 + 2.65805496e+04 2.69393066e+04 2.73029058e+04 2.76714125e+04 2.80448928e+04 + 2.84234141e+04 2.88070442e+04 2.91958522e+04 2.95899080e+04 2.99892822e+04 + 3.03940469e+04 3.08042746e+04 3.12200391e+04 3.16414153e+04 3.20684787e+04 + 3.25013062e+04 3.29399755e+04 3.33845656e+04 3.38351563e+04 3.42918286e+04 + 3.47546646e+04 3.52237475e+04 3.56991616e+04 3.61809923e+04 3.66693263e+04 + 3.71642513e+04 3.76658563e+04 3.81742315e+04 3.86894682e+04 3.92116590e+04 + 3.97408978e+04 4.02772798e+04 4.08209013e+04 4.13718600e+04 4.19302550e+04 + 4.24961867e+04 4.30697567e+04 4.36510682e+04 4.42402256e+04 4.48373349e+04 + 4.54425033e+04 4.60558397e+04 4.66774542e+04 4.73074587e+04 4.79459664e+04 + 4.85930919e+04 4.92489517e+04 4.99136637e+04 5.05873472e+04 5.12701234e+04 + 5.19621151e+04 5.26634465e+04 5.33742438e+04 5.40946347e+04 5.48247487e+04 + 5.55647170e+04 5.63146726e+04 5.70747504e+04 5.78450870e+04 5.86258207e+04 + 5.94170921e+04 6.02190431e+04 6.10318181e+04 6.18555631e+04 6.26904262e+04 + 6.35365574e+04 6.43941088e+04 6.52632345e+04 6.61440908e+04 6.70368361e+04 + 6.79416306e+04 6.88586372e+04 6.97880206e+04 7.07299478e+04 7.16845883e+04 + 7.26521134e+04 7.36326973e+04 7.46265160e+04 7.56337483e+04 7.66545752e+04 + 7.76891802e+04 7.87377492e+04 7.98004708e+04 8.08775358e+04 8.19691380e+04 + 8.30754735e+04 8.41967412e+04 8.53331426e+04 8.64848820e+04 8.76521664e+04 + 8.88352056e+04 9.00342122e+04 9.12494018e+04 9.24809928e+04 9.37292066e+04 + 9.49942675e+04 9.62764028e+04 9.75758431e+04 9.88928220e+04 1.00227576e+05 + 1.01580345e+05 1.02951373e+05 1.04340905e+05 1.05749192e+05 1.07176486e+05 + 1.08623044e+05 1.10089127e+05 1.11574997e+05 1.13080923e+05 1.14607173e+05 + 1.16154023e+05 1.17721751e+05 1.19310639e+05 1.20920972e+05 1.22553039e+05 + 1.24207135e+05 1.25883556e+05 1.27582603e+05 1.29304582e+05 1.31049803e+05 + 1.32818579e+05 1.34611228e+05 1.36428073e+05 1.38269439e+05 1.40135659e+05 + 1.42027066e+05 1.43944002e+05 1.45886811e+05 1.47855842e+05 1.49851449e+05 + 1.51873990e+05 1.53923830e+05 1.56001336e+05 1.58106882e+05 1.60240847e+05 + 1.62403614e+05 1.64595572e+05 1.66817114e+05 1.69068641e+05 1.71350556e+05 + 1.73663271e+05 1.76007200e+05 1.78382765e+05 1.80790393e+05 1.83230516e+05 + 1.85703574e+05 1.88210011e+05 1.90750277e+05 1.93324829e+05 1.95934129e+05 + 1.98578648e+05 2.01258859e+05 2.03975245e+05 2.06728294e+05 2.09518501e+05 + 2.12346367e+05 2.15212401e+05 2.18117118e+05 2.21061039e+05 2.24044695e+05 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.51514411e-06 1.53559398e-06 1.55631985e-06 1.57732546e-06 1.59861459e-06 + 1.62019105e-06 1.64205873e-06 1.66422156e-06 1.68668352e-06 1.70944864e-06 + 1.73252103e-06 1.75590483e-06 1.77960423e-06 1.80362351e-06 1.82796697e-06 + 1.85263900e-06 1.87764402e-06 1.90298654e-06 1.92867110e-06 1.95470233e-06 + 1.98108490e-06 2.00782356e-06 2.03492310e-06 2.06238841e-06 2.09022442e-06 + 2.11843613e-06 2.14702861e-06 2.17600701e-06 2.20537652e-06 2.23514243e-06 + 2.26531010e-06 2.29588494e-06 2.32687244e-06 2.35827818e-06 2.39010781e-06 + 2.42236703e-06 2.45506166e-06 2.48819757e-06 2.52178072e-06 2.55581713e-06 + 2.59031293e-06 2.62527433e-06 2.66070759e-06 2.69661910e-06 2.73301530e-06 + 2.76990274e-06 2.80728805e-06 2.84517795e-06 2.88357925e-06 2.92249885e-06 + 2.96194375e-06 3.00192104e-06 3.04243789e-06 3.08350160e-06 3.12511955e-06 + 3.16729922e-06 3.21004818e-06 3.25337412e-06 3.29728483e-06 3.34178821e-06 + 3.38689225e-06 3.43260505e-06 3.47893484e-06 3.52588994e-06 3.57347879e-06 + 3.62170995e-06 3.67059208e-06 3.72013398e-06 3.77034453e-06 3.82123279e-06 + 3.87280787e-06 3.92507907e-06 3.97805577e-06 4.03174749e-06 4.08616389e-06 + 4.14131475e-06 4.19720997e-06 4.25385962e-06 4.31127386e-06 4.36946302e-06 + 4.42843756e-06 4.48820807e-06 4.54878531e-06 4.61018016e-06 4.67240365e-06 + 4.73546697e-06 4.79938146e-06 4.86415859e-06 4.92981003e-06 4.99634755e-06 + 5.06378314e-06 5.13212890e-06 5.20139712e-06 5.27160025e-06 5.34275092e-06 + 5.41486190e-06 5.48794616e-06 5.56201684e-06 5.63708725e-06 5.71317088e-06 + 5.79028141e-06 5.86843270e-06 5.94763880e-06 6.02791394e-06 6.10927255e-06 + 6.19172925e-06 6.27529887e-06 6.35999643e-06 6.44583715e-06 6.53283646e-06 + 6.62101000e-06 6.71037362e-06 6.80094337e-06 6.89273554e-06 6.98576663e-06 + 7.08005335e-06 7.17561266e-06 7.27246174e-06 7.37061798e-06 7.47009904e-06 + 7.57092278e-06 7.67310735e-06 7.77667110e-06 7.88163264e-06 7.98801085e-06 + 8.09582484e-06 8.20509399e-06 8.31583795e-06 8.42807662e-06 8.54183017e-06 + 8.65711905e-06 8.77396398e-06 8.89238596e-06 9.01240628e-06 9.13404651e-06 + 9.25732852e-06 9.38227446e-06 9.50890680e-06 9.63724829e-06 9.76732200e-06 + 9.89915131e-06 1.00327599e-05 1.01681718e-05 1.03054114e-05 1.04445033e-05 + 1.05854725e-05 1.07283444e-05 1.08731446e-05 1.10198992e-05 1.11686345e-05 + 1.13193773e-05 1.14721546e-05 1.16269940e-05 1.17839233e-05 1.19429706e-05 + 1.21041646e-05 1.22675342e-05 1.24331089e-05 1.26009182e-05 1.27709925e-05 + 1.29433623e-05 1.31180586e-05 1.32951127e-05 1.34745565e-05 1.36564223e-05 + 1.38407427e-05 1.40275509e-05 1.42168804e-05 1.44087653e-05 1.46032400e-05 + 1.48003396e-05 1.50000995e-05 1.52025554e-05 1.54077440e-05 1.56157019e-05 + 1.58264667e-05 1.60400761e-05 1.62565686e-05 1.64759832e-05 1.66983591e-05 + 1.69237365e-05 1.71521557e-05 1.73836580e-05 1.76182848e-05 1.78560784e-05 + 1.80970814e-05 1.83413373e-05 1.85888899e-05 1.88397837e-05 1.90940638e-05 + 1.93517759e-05 1.96129664e-05 1.98776821e-05 2.01459707e-05 2.04178804e-05 + 2.06934601e-05 2.09727592e-05 2.12558280e-05 2.15427174e-05 2.18334790e-05 + 2.21281649e-05 2.24268282e-05 2.27295226e-05 2.30363024e-05 2.33472229e-05 + 2.36623398e-05 2.39817098e-05 2.43053904e-05 2.46334396e-05 2.49659166e-05 + 2.53028810e-05 2.56443934e-05 2.59905151e-05 2.63413085e-05 2.66968365e-05 + 2.70571631e-05 2.74223530e-05 2.77924718e-05 2.81675861e-05 2.85477634e-05 + 2.89330718e-05 2.93235808e-05 2.97193605e-05 3.01204820e-05 3.05270174e-05 + 3.09390399e-05 3.13566233e-05 3.17798429e-05 3.22087747e-05 3.26434958e-05 + 3.30840843e-05 3.35306194e-05 3.39831813e-05 3.44418515e-05 3.49067124e-05 + 3.53778474e-05 3.58553414e-05 3.63392801e-05 3.68297505e-05 3.73268407e-05 + 3.78306402e-05 3.83412395e-05 3.88587303e-05 3.93832056e-05 3.99147598e-05 + 4.04534884e-05 4.09994881e-05 4.15528573e-05 4.21136952e-05 4.26821027e-05 + 4.32581821e-05 4.38420367e-05 4.44337716e-05 4.50334932e-05 4.56413092e-05 + 4.62573288e-05 4.68816629e-05 4.75144236e-05 4.81557246e-05 4.88056813e-05 + 4.94644104e-05 5.01320304e-05 5.08086612e-05 5.14944245e-05 5.21894435e-05 + 5.28938432e-05 5.36077501e-05 5.43312927e-05 5.50646008e-05 5.58078064e-05 + 5.65610431e-05 5.73244461e-05 5.80981528e-05 5.88823022e-05 5.96770352e-05 + 6.04824947e-05 6.12988255e-05 6.21261743e-05 6.29646898e-05 6.38145227e-05 + 6.46758258e-05 6.55487539e-05 6.64334638e-05 6.73301147e-05 6.82388677e-05 + 6.91598861e-05 7.00933354e-05 7.10393835e-05 7.19982003e-05 7.29699583e-05 + 7.39548321e-05 7.49529987e-05 7.59646376e-05 7.69899305e-05 7.80290617e-05 + 7.90822181e-05 8.01495889e-05 8.12313660e-05 8.23277438e-05 8.34389194e-05 + 8.45650925e-05 8.57064656e-05 8.68632437e-05 8.80356348e-05 8.92238497e-05 + 9.04281018e-05 9.16486078e-05 9.28855869e-05 9.41392614e-05 9.54098568e-05 + 9.66976013e-05 9.80027266e-05 9.93254670e-05 1.00666060e-04 1.02024748e-04 + 1.03401773e-04 1.04797385e-04 1.06211833e-04 1.07645371e-04 1.09098258e-04 + 1.10570755e-04 1.12063126e-04 1.13575639e-04 1.15108567e-04 1.16662184e-04 + 1.18236771e-04 1.19832610e-04 1.21449988e-04 1.23089195e-04 1.24750527e-04 + 1.26434282e-04 1.28140763e-04 1.29870275e-04 1.31623131e-04 1.33399646e-04 + 1.35200138e-04 1.37024931e-04 1.38874353e-04 1.40748737e-04 1.42648419e-04 + 1.44573741e-04 1.46525050e-04 1.48502695e-04 1.50507032e-04 1.52538422e-04 + 1.54597229e-04 1.56683824e-04 1.58798582e-04 1.60941883e-04 1.63114112e-04 + 1.65315659e-04 1.67546920e-04 1.69808297e-04 1.72100196e-04 1.74423028e-04 + 1.76777212e-04 1.79163169e-04 1.81581330e-04 1.84032129e-04 1.86516007e-04 + 1.89033409e-04 1.91584788e-04 1.94170603e-04 1.96791319e-04 1.99447407e-04 + 2.02139344e-04 2.04867614e-04 2.07632707e-04 2.10435121e-04 2.13275359e-04 + 2.16153931e-04 2.19071356e-04 2.22028156e-04 2.25024865e-04 2.28062020e-04 + 2.31140168e-04 2.34259861e-04 2.37421661e-04 2.40626136e-04 2.43873861e-04 + 2.47165421e-04 2.50501406e-04 2.53882418e-04 2.57309063e-04 2.60781957e-04 + 2.64301725e-04 2.67868999e-04 2.71484421e-04 2.75148639e-04 2.78862314e-04 + 2.82626112e-04 2.86440710e-04 2.90306793e-04 2.94225057e-04 2.98196206e-04 + 3.02220953e-04 3.06300022e-04 3.10434146e-04 3.14624068e-04 3.18870542e-04 + 3.23174330e-04 3.27536206e-04 3.31956954e-04 3.36437370e-04 3.40978257e-04 + 3.45580432e-04 3.50244723e-04 3.54971968e-04 3.59763016e-04 3.64618729e-04 + 3.69539979e-04 3.74527651e-04 3.79582642e-04 3.84705860e-04 3.89898226e-04 + 3.95160673e-04 4.00494147e-04 4.05899607e-04 4.11378024e-04 4.16930384e-04 + 4.22557683e-04 4.28260934e-04 4.34041162e-04 4.39899405e-04 4.45836717e-04 + 4.51854164e-04 4.57952829e-04 4.64133808e-04 4.70398211e-04 4.76747164e-04 + 4.83181809e-04 4.89703302e-04 4.96312816e-04 5.03011539e-04 5.09800673e-04 + 5.16681441e-04 5.23655078e-04 5.30722838e-04 5.37885992e-04 5.45145826e-04 + 5.52503646e-04 5.59960775e-04 5.67518552e-04 5.75178336e-04 5.82941505e-04 + 5.90809452e-04 5.98783593e-04 6.06865361e-04 6.15056208e-04 6.23357607e-04 + 6.31771050e-04 6.40298049e-04 6.48940137e-04 6.57698866e-04 6.66575812e-04 + 6.75572570e-04 6.84690757e-04 6.93932012e-04 7.03297995e-04 7.12790392e-04 + 7.22410907e-04 7.32161269e-04 7.42043233e-04 7.52058572e-04 7.62209089e-04 + 7.72496607e-04 7.82922975e-04 7.93490068e-04 8.04199785e-04 8.15054050e-04 + 8.26054815e-04 8.37204057e-04 8.48503780e-04 8.59956016e-04 8.71562821e-04 + 8.83326284e-04 8.95248518e-04 9.07331666e-04 9.19577900e-04 9.31989421e-04 + 9.44568460e-04 9.57317278e-04 9.70238166e-04 9.83333448e-04 9.96605476e-04 + 1.01005664e-03 1.02368935e-03 1.03750606e-03 1.05150925e-03 1.06570145e-03 + 1.08008519e-03 1.09466308e-03 1.10943772e-03 1.12441177e-03 1.13958793e-03 + 1.15496892e-03 1.17055751e-03 1.18635650e-03 1.20236872e-03 1.21859707e-03 + 1.23504444e-03 1.25171381e-03 1.26860816e-03 1.28573053e-03 1.30308401e-03 + 1.32067170e-03 1.33849678e-03 1.35656243e-03 1.37487193e-03 1.39342854e-03 + 1.41223561e-03 1.43129652e-03 1.45061470e-03 1.47019361e-03 1.49003678e-03 + 1.51014777e-03 1.53053020e-03 1.55118773e-03 1.57212407e-03 1.59334299e-03 + 1.61484830e-03 1.63664387e-03 1.65873361e-03 1.68112150e-03 1.70381156e-03 + 1.72680786e-03 1.75011455e-03 1.77373580e-03 1.79767587e-03 1.82193906e-03 + 1.84652973e-03 1.87145230e-03 1.89671124e-03 1.92231111e-03 1.94825650e-03 + 1.97455207e-03 2.00120255e-03 2.02821273e-03 2.05558747e-03 2.08333169e-03 + 2.11145037e-03 2.13994856e-03 2.16883140e-03 2.19810406e-03 2.22777182e-03 + 2.25784000e-03 2.28831402e-03 2.31919934e-03 2.35050151e-03 2.38222618e-03 + 2.41437903e-03 2.44696584e-03 2.47999248e-03 2.51346488e-03 2.54738906e-03 + 2.58177111e-03 2.61661721e-03 2.65193363e-03 2.68772672e-03 2.72400290e-03 + 2.76076870e-03 2.79803073e-03 2.83579568e-03 2.87407035e-03 2.91286161e-03 + 2.95217643e-03 2.99202189e-03 3.03240514e-03 3.07333344e-03 3.11481415e-03 + 3.15685472e-03 3.19946271e-03 3.24264578e-03 3.28641170e-03 3.33076832e-03 + 3.37572362e-03 3.42128568e-03 3.46746269e-03 3.51426295e-03 3.56169487e-03 + 3.60976698e-03 3.65848792e-03 3.70786645e-03 3.75791143e-03 3.80863187e-03 + 3.86003689e-03 3.91213571e-03 3.96493772e-03 4.01845239e-03 4.07268934e-03 + 4.12765833e-03 4.18336924e-03 4.23983207e-03 4.29705699e-03 4.35505426e-03 + 4.41383433e-03 4.47340774e-03 4.53378522e-03 4.59497761e-03 4.65699591e-03 + 4.71985128e-03 4.78355500e-03 4.84811852e-03 4.91355347e-03 4.97987158e-03 + 5.04708479e-03 5.11520517e-03 5.18424497e-03 5.25421660e-03 5.32513264e-03 + 5.39700583e-03 5.46984909e-03 5.54367551e-03 5.61849837e-03 5.69433110e-03 + 5.77118736e-03 5.84908093e-03 5.92802584e-03 6.00803626e-03 6.08912659e-03 + 6.17131138e-03 6.25460542e-03 6.33902369e-03 6.42458134e-03 6.51129376e-03 + 6.59917653e-03 6.68824546e-03 6.77851655e-03 6.87000603e-03 6.96273034e-03 + 7.05670614e-03 7.15195034e-03 7.24848004e-03 7.34631260e-03 7.44546561e-03 + 7.54595688e-03 7.64780448e-03 7.75102672e-03 7.85564214e-03 7.96166955e-03 + 8.06912802e-03 8.17803685e-03 8.28841561e-03 8.40028416e-03 8.51366260e-03 + 8.62857130e-03 8.74503092e-03 8.86306239e-03 8.98268694e-03 9.10392605e-03 + 9.22680152e-03 9.35133544e-03 9.47755019e-03 9.60546846e-03 9.73511324e-03 + 9.86650783e-03 9.99967585e-03 1.01346412e-02 1.02714283e-02 1.04100615e-02 + 1.05505658e-02 1.06929666e-02 1.08372893e-02 1.09835599e-02 1.11318048e-02 + 1.12820505e-02 1.14343240e-02 1.15886528e-02 1.17450646e-02 1.19035875e-02 + 1.20642499e-02 1.22270808e-02 1.23921094e-02 1.25593654e-02 1.27288789e-02 + 1.29006802e-02 1.30748004e-02 1.32512707e-02 1.34301228e-02 1.36113888e-02 + 1.37951014e-02 1.39812936e-02 1.41699987e-02 1.43612509e-02 1.45550843e-02 + 1.47515340e-02 1.49506351e-02 1.51524234e-02 1.53569353e-02 1.55642075e-02 + 1.57742773e-02 1.59871823e-02 1.62029609e-02 1.64216519e-02 1.66432945e-02 + 1.68679287e-02 1.70955947e-02 1.73263336e-02 1.75601867e-02 1.77971961e-02 + 1.80374044e-02 1.82808548e-02 1.85275911e-02 1.87776576e-02 1.90310992e-02 + 1.92879614e-02 1.95482906e-02 1.98121334e-02 2.00795373e-02 2.03505503e-02 + 2.06252212e-02 2.09035994e-02 2.11857347e-02 2.14716781e-02 2.17614808e-02 + 2.20551950e-02 2.23528734e-02 2.26545697e-02 2.29603378e-02 2.32702330e-02 + 2.35843107e-02 2.39026276e-02 2.42252408e-02 2.45522083e-02 2.48835889e-02 + 2.52194421e-02 2.55598283e-02 2.59048087e-02 2.62544453e-02 2.66088009e-02 + 2.69679393e-02 2.73319249e-02 2.77008232e-02 2.80747006e-02 2.84536242e-02 + 2.88376620e-02 2.92268833e-02 2.96213578e-02 3.00211566e-02 3.04263514e-02 + 3.08370152e-02 3.12532216e-02 3.16750456e-02 3.21025629e-02 3.25358505e-02 + 3.29749861e-02 3.34200487e-02 3.38711183e-02 3.43282759e-02 3.47916039e-02 + 3.52611853e-02 3.57371047e-02 3.62194475e-02 3.67083006e-02 3.72037516e-02 + 3.77058898e-02 3.82148053e-02 3.87305896e-02 3.92533354e-02 3.97831368e-02 + 4.03200888e-02 4.08642881e-02 4.14158324e-02 4.19748209e-02 4.25413541e-02 + 4.31155337e-02 4.36974630e-02 4.42872467e-02 4.48849906e-02 4.54908022e-02 + 4.61047905e-02 4.67270657e-02 4.73577398e-02 4.79969261e-02 4.86447395e-02 + 4.93012964e-02 4.99667148e-02 5.06411144e-02 5.13246163e-02 5.20173434e-02 + 5.27194202e-02 5.34309730e-02 5.41521296e-02 5.48830196e-02 5.56237744e-02 + 5.63745271e-02 5.71354128e-02 5.79065681e-02 5.86881317e-02 5.94802440e-02 + 6.02830474e-02 6.10966863e-02 6.19213068e-02 6.27570572e-02 6.36040877e-02 + 6.44625506e-02 6.53326001e-02 6.62143926e-02 6.71080867e-02 6.80138429e-02 + 6.89318241e-02 6.98621953e-02 7.08051237e-02 7.17607788e-02 7.27293323e-02 + 7.37109584e-02 7.47058334e-02 7.57141363e-02 7.67360482e-02 7.77717528e-02 + 7.88214363e-02 7.98852873e-02 8.09634971e-02 8.20562595e-02 8.31637709e-02 + 8.42862303e-02 8.54238396e-02 8.65768031e-02 8.77453282e-02 8.89296248e-02 + 9.01299058e-02 9.13463870e-02 9.25792870e-02 9.38288274e-02 9.50952329e-02 + 9.63787310e-02 9.76795524e-02 9.89979310e-02 1.00334104e-01 1.01688311e-01 + 1.03060795e-01 1.04451805e-01 1.05861588e-01 1.07290399e-01 1.08738495e-01 + 1.10206136e-01 1.11693586e-01 1.13201111e-01 1.14728984e-01 1.16277479e-01 + 1.17846873e-01 1.19437449e-01 1.21049494e-01 1.22683296e-01 1.24339149e-01 + 1.26017352e-01 1.27718205e-01 1.29442015e-01 1.31189090e-01 1.32959747e-01 + 1.34754301e-01 1.36573077e-01 1.38416400e-01 1.40284603e-01 1.42178021e-01 + 1.44096994e-01 1.46041868e-01 1.48012992e-01 1.50010719e-01 1.52035411e-01 + 1.54087429e-01 1.56167143e-01 1.58274927e-01 1.60411160e-01 1.62576226e-01 + 1.64770513e-01 1.66994417e-01 1.69248337e-01 1.71532678e-01 1.73847850e-01 + 1.76194270e-01 1.78572360e-01 1.80982547e-01 1.83425264e-01 1.85900951e-01 + 1.88410051e-01 1.90953017e-01 1.93530306e-01 1.96142380e-01 1.98789709e-01 + 2.01472769e-01 2.04192042e-01 2.06948017e-01 2.09741189e-01 2.12572061e-01 + 2.15441141e-01 2.18348945e-01 2.21295996e-01 2.24282822e-01 2.27309962e-01 + 2.30377959e-01 2.33487365e-01 2.36638739e-01 2.39832646e-01 2.43069662e-01 + 2.46350367e-01 2.49675352e-01 2.53045214e-01 2.56460560e-01 2.59922002e-01 + 2.63430163e-01 2.66985673e-01 2.70589173e-01 2.74241308e-01 2.77942737e-01 + 2.81694123e-01 2.85496142e-01 2.89349477e-01 2.93254820e-01 2.97212873e-01 + 3.01224348e-01 3.05289966e-01 3.09410457e-01 3.13586563e-01 3.17819033e-01 + 3.22108629e-01 3.26456121e-01 3.30862292e-01 3.35327932e-01 3.39853846e-01 + 3.44440845e-01 3.49089755e-01 3.53801411e-01 3.58576660e-01 3.63416361e-01 + 3.68321383e-01 3.73292608e-01 3.78330929e-01 3.83437252e-01 3.88612496e-01 + 3.93857590e-01 3.99173476e-01 4.04561111e-01 4.10021463e-01 4.15555512e-01 + 4.21164255e-01 4.26848699e-01 4.32609866e-01 4.38448791e-01 4.44366524e-01 + 4.50364128e-01 4.56442682e-01 4.62603278e-01 4.68847024e-01 4.75175041e-01 + 4.81588467e-01 4.88088455e-01 4.94676173e-01 5.01352806e-01 5.08119553e-01 + 5.14977630e-01 5.21928271e-01 5.28972724e-01 5.36112257e-01 5.43348151e-01 + 5.50681708e-01 5.58114246e-01 5.65647101e-01 5.73281626e-01 5.81019194e-01 + 5.88861197e-01 5.96809042e-01 6.04864160e-01 6.13027997e-01 6.21302021e-01 + 6.29687720e-01 6.38186600e-01 6.46800189e-01 6.55530036e-01 6.64377709e-01 + 6.73344799e-01 6.82432918e-01 6.91643699e-01 7.00978797e-01 7.10439891e-01 + 7.20028682e-01 7.29746892e-01 7.39596268e-01 7.49578581e-01 7.59695625e-01 + 7.69949219e-01 7.80341205e-01 7.90873452e-01 8.01547852e-01 8.12366325e-01 + 8.23330813e-01 8.34443290e-01 8.45705751e-01 8.57120221e-01 8.68688753e-01 + 8.80413424e-01 8.92296343e-01 9.04339645e-01 9.16545496e-01 9.28916089e-01 + 9.41453647e-01 9.54160425e-01 9.67038705e-01 9.80090803e-01 9.93319066e-01 + 1.00672587e+00 1.02031362e+00 1.03408477e+00 1.04804179e+00 1.06218719e+00 + 1.07652350e+00 1.09105331e+00 1.10577923e+00 1.12070391e+00 1.13583002e+00 + 1.15116029e+00 1.16669748e+00 1.18244437e+00 1.19840379e+00 1.21457862e+00 + 1.23097175e+00 1.24758615e+00 1.26442479e+00 1.28149070e+00 1.29878695e+00 + 1.31631665e+00 1.33408294e+00 1.35208903e+00 1.37033814e+00 1.38883356e+00 + 1.40757862e+00 1.42657667e+00 1.44583114e+00 1.46534549e+00 1.48512323e+00 + 1.50516790e+00 1.52548311e+00 1.54607252e+00 1.56693983e+00 1.58808878e+00 + 1.60952317e+00 1.63124687e+00 1.65326377e+00 1.67557783e+00 1.69819306e+00 + 1.72111354e+00 1.74434336e+00 1.76788672e+00 1.79174785e+00 1.81593103e+00 + 1.84044061e+00 1.86528099e+00 1.89045664e+00 1.91597209e+00 1.94183192e+00 + 1.96804078e+00 1.99460338e+00 2.02152449e+00 2.04880896e+00 2.07646169e+00 + 2.10448764e+00 2.13289186e+00 2.16167945e+00 2.19085559e+00 2.22042551e+00 + 2.25039454e+00 2.28076806e+00 2.31155154e+00 2.34275049e+00 2.37437054e+00 + 2.40641736e+00 2.43889672e+00 2.47181445e+00 2.50517647e+00 2.53898878e+00 + 2.57325745e+00 2.60798864e+00 2.64318860e+00 2.67886366e+00 2.71502022e+00 + 2.75166478e+00 2.78880393e+00 2.82644435e+00 2.86459281e+00 2.90325615e+00 + 2.94244133e+00 2.98215539e+00 3.02240547e+00 3.06319880e+00 3.10454272e+00 + 3.14644466e+00 3.18891215e+00 3.23195282e+00 3.27557441e+00 3.31978476e+00 + 3.36459182e+00 3.41000363e+00 3.45602837e+00 3.50267430e+00 3.54994981e+00 + 3.59786340e+00 3.64642368e+00 3.69563937e+00 3.74551933e+00 3.79607251e+00 + 3.84730801e+00 3.89923504e+00 3.95186292e+00 4.00520112e+00 4.05925923e+00 + 4.11404695e+00 4.16957414e+00 4.22585079e+00 4.28288699e+00 4.34069302e+00 + 4.39927925e+00 4.45865622e+00 4.51883459e+00 4.57982520e+00 4.64163899e+00 + 4.70428708e+00 4.76778073e+00 4.83213135e+00 4.89735051e+00 4.96344994e+00 + 5.03044150e+00 5.09833725e+00 5.16714939e+00 5.23689028e+00 5.30757246e+00 + 5.37920864e+00 5.45181169e+00 5.52539466e+00 5.59997078e+00 5.67555346e+00 + 5.75215627e+00 5.82979298e+00 5.90847756e+00 5.98822414e+00 6.06904706e+00 + 6.15096084e+00 6.23398021e+00 6.31812010e+00 6.40339561e+00 6.48982209e+00 + 6.57741507e+00 6.66619028e+00 6.75616369e+00 6.84735147e+00 6.93977001e+00 + 7.03343592e+00 7.12836604e+00 7.22457742e+00 7.32208737e+00 7.42091341e+00 + 7.52107330e+00 7.62258505e+00 7.72546690e+00 7.82973734e+00 7.93541512e+00 + 8.04251923e+00 8.15106892e+00 8.26108370e+00 8.37258335e+00 8.48558791e+00 + 8.60011769e+00 8.71619327e+00 8.83383553e+00 8.95306559e+00 9.07390491e+00 + 9.19637518e+00 9.32049844e+00 9.44629699e+00 9.57379343e+00 9.70301069e+00 + 9.83397200e+00 9.96670088e+00 1.01012212e+01 1.02375571e+01 1.03757332e+01 + 1.05157742e+01 1.06577054e+01 1.08015522e+01 1.09473405e+01 1.10950965e+01 + 1.12448467e+01 1.13966182e+01 1.15504380e+01 1.17063340e+01 1.18643341e+01 + 1.20244668e+01 1.21867607e+01 1.23512451e+01 1.25179496e+01 1.26869041e+01 + 1.28581389e+01 1.30316849e+01 1.32075732e+01 1.33858355e+01 1.35665038e+01 + 1.37496106e+01 1.39351888e+01 1.41232717e+01 1.43138932e+01 1.45070874e+01 + 1.47028892e+01 1.49013338e+01 1.51024567e+01 1.53062942e+01 1.55128829e+01 + 1.57222599e+01 1.59344629e+01 1.61495300e+01 1.63674998e+01 1.65884115e+01 + 1.68123049e+01 1.70392202e+01 1.72691982e+01 1.75022801e+01 1.77385080e+01 + 1.79779242e+01 1.82205718e+01 1.84664944e+01 1.87157363e+01 1.89683421e+01 + 1.92243574e+01 1.94838281e+01 1.97468008e+01 2.00133229e+01 2.02834423e+01 + 2.05572074e+01 2.08346676e+01 2.11158726e+01 2.14008730e+01 2.16897201e+01 + 2.19824657e+01 2.22791625e+01 2.25798639e+01 2.28846237e+01 2.31934970e+01 + 2.35065390e+01 2.38238062e+01 2.41453556e+01 2.44712449e+01 2.48015327e+01 + 2.51362784e+01 2.54755421e+01 2.58193849e+01 2.61678685e+01 2.65210556e+01 + 2.68790097e+01 2.72417950e+01 2.76094769e+01 2.79821213e+01 2.83597954e+01 + 2.87425669e+01 2.91305046e+01 2.95236783e+01 2.99221587e+01 3.03260174e+01 + 3.07353269e+01 3.11501609e+01 3.15705939e+01 3.19967014e+01 3.24285601e+01 + 3.28662476e+01 3.33098426e+01 3.37594247e+01 3.42150749e+01 3.46768749e+01 + 3.51449079e+01 3.56192579e+01 3.61000102e+01 3.65872511e+01 3.70810684e+01 + 3.75815507e+01 3.80887880e+01 3.86028714e+01 3.91238935e+01 3.96519477e+01 + 4.01871291e+01 4.07295339e+01 4.12792594e+01 4.18364046e+01 4.24010695e+01 + 4.29733558e+01 4.35533661e+01 4.41412049e+01 4.47369777e+01 4.53407916e+01 + 4.59527552e+01 4.65729784e+01 4.72015728e+01 4.78386513e+01 4.84843284e+01 + 4.91387202e+01 4.98019444e+01 5.04741200e+01 5.11553680e+01 5.18458108e+01 + 5.25455725e+01 5.32547788e+01 5.39735573e+01 5.47020371e+01 5.54403492e+01 + 5.61886263e+01 5.69470028e+01 5.77156152e+01 5.84946015e+01 5.92841017e+01 + 6.00842578e+01 6.08952136e+01 6.17171149e+01 6.25501093e+01 6.33943466e+01 + 6.42499786e+01 6.51171590e+01 6.59960438e+01 6.68867908e+01 6.77895602e+01 + 6.87045143e+01 6.96318175e+01 7.05716365e+01 7.15241402e+01 7.24894998e+01 + 7.34678888e+01 7.44594832e+01 7.54644611e+01 7.64830031e+01 7.75152924e+01 + 7.85615144e+01 7.96218573e+01 8.06965116e+01 8.17856705e+01 8.28895297e+01 + 8.40082878e+01 8.51421456e+01 8.62913071e+01 8.74559788e+01 8.86363701e+01 + 8.98326931e+01 9.10451628e+01 9.22739972e+01 9.35194171e+01 9.47816465e+01 + 9.60609121e+01 9.73574439e+01 9.86714750e+01 1.00003242e+02 1.01352983e+02 + 1.02720942e+02 1.04107364e+02 1.05512498e+02 1.06936598e+02 1.08379919e+02 + 1.09842720e+02 1.11325265e+02 1.12827819e+02 1.14350653e+02 1.15894041e+02 + 1.17458261e+02 1.19043592e+02 1.20650320e+02 1.22278735e+02 1.23929128e+02 + 1.25601797e+02 1.27297041e+02 1.29015166e+02 1.30756481e+02 1.32521298e+02 + 1.34309935e+02 1.36122713e+02 1.37959958e+02 1.39822000e+02 1.41709174e+02 + 1.43621820e+02 1.45560280e+02 1.47524903e+02 1.49516044e+02 1.51534058e+02 + 1.53579310e+02 1.55652166e+02 1.57752999e+02 1.59882188e+02 1.62040114e+02 + 1.64227166e+02 1.66443736e+02 1.68690223e+02 1.70967031e+02 1.73274569e+02 + 1.75613251e+02 1.77983499e+02 1.80385738e+02 1.82820400e+02 1.85287923e+02 + 1.87788750e+02 1.90323330e+02 1.92892119e+02 1.95495580e+02 1.98134179e+02 + 2.00808391e+02 2.03518697e+02 2.06265584e+02 2.09049546e+02 2.11871083e+02 + 2.14730702e+02 2.17628917e+02 2.20566249e+02 2.23543226e+02 2.26560384e+02 + 2.29618264e+02 2.32717416e+02 2.35858398e+02 2.39041773e+02 2.42268114e+02 + 2.45538001e+02 2.48852022e+02 2.52210771e+02 2.55614854e+02 2.59064882e+02 + 2.62561474e+02 2.66105260e+02 2.69696877e+02 2.73336969e+02 2.77026192e+02 + 2.80765207e+02 2.84554689e+02 2.88395317e+02 2.92287781e+02 2.96232783e+02 + 3.00231029e+02 3.04283240e+02 3.08390144e+02 3.12552478e+02 3.16770992e+02 + 3.21046442e+02 3.25379599e+02 3.29771239e+02 3.34222154e+02 3.38733142e+02 + 3.43305015e+02 3.47938595e+02 3.52634714e+02 3.57394216e+02 3.62217957e+02 + 3.67106805e+02 3.72061636e+02 3.77083343e+02 3.82172828e+02 3.87331006e+02 + 3.92558803e+02 3.97857160e+02 4.03227029e+02 4.08669374e+02 4.14185175e+02 + 4.19775422e+02 4.25441121e+02 4.31183290e+02 4.37002961e+02 4.42901179e+02 + 4.48879006e+02 4.54937515e+02 4.61077796e+02 4.67300952e+02 4.73608102e+02 + 4.80000379e+02 4.86478933e+02 4.93044927e+02 4.99699543e+02 5.06443976e+02 + 5.13279438e+02 5.20207158e+02 5.27228382e+02 5.34344371e+02 5.41556404e+02 + 5.48865778e+02 5.56273806e+02 5.63781821e+02 5.71391170e+02 5.79103223e+02 + 5.86919366e+02 5.94841002e+02 6.02869557e+02 6.11006473e+02 6.19253213e+02 + 6.27611259e+02 6.36082113e+02 6.44667298e+02 6.53368357e+02 6.62186855e+02 + 6.71124375e+02 6.80182525e+02 6.89362932e+02 6.98667247e+02 7.08097142e+02 + 7.17654312e+02 7.27340476e+02 7.37157373e+02 7.47106768e+02 7.57190450e+02 + 7.67410232e+02 7.77767949e+02 7.88265465e+02 7.98904665e+02 8.09687462e+02 + 8.20615795e+02 8.31691626e+02 8.42916949e+02 8.54293779e+02 8.65824161e+02 + 8.77510169e+02 8.89353903e+02 9.01357492e+02 9.13523092e+02 9.25852892e+02 + 9.38349106e+02 9.51013982e+02 9.63849795e+02 9.76858852e+02 9.90043493e+02 + 1.00340609e+03 1.01694903e+03 1.03067477e+03 1.04458576e+03 1.05868451e+03 + 1.07297355e+03 1.08745545e+03 1.10213281e+03 1.11700827e+03 1.13208451e+03 + 1.14736422e+03 1.16285017e+03 1.17854513e+03 1.19445193e+03 1.21057342e+03 + 1.22691250e+03 1.24347211e+03 1.26025522e+03 1.27726485e+03 1.29450407e+03 + 1.31197596e+03 1.32968367e+03 1.34763038e+03 1.36581931e+03 1.38425374e+03 + 1.40293698e+03 1.42187239e+03 1.44106337e+03 1.46051336e+03 1.48022588e+03 + 1.50020445e+03 1.52045267e+03 1.54097419e+03 1.56177268e+03 1.58285189e+03 + 1.60421560e+03 1.62586766e+03 1.64781196e+03 1.67005244e+03 1.69259310e+03 + 1.71543799e+03 1.73859121e+03 1.76205693e+03 1.78583938e+03 1.80994281e+03 + 1.83437156e+03 1.85913003e+03 1.88422266e+03 1.90965397e+03 1.93542853e+03 + 1.96155096e+03 1.98802597e+03 2.01485831e+03 2.04205280e+03 2.06961434e+03 + 2.09754787e+03 2.12585843e+03 2.15455109e+03 2.18363101e+03 2.21310343e+03 + 2.24297363e+03 2.27324699e+03 2.30392895e+03 2.33502503e+03 2.36654081e+03 + 2.39848195e+03 2.43085420e+03 2.46366339e+03 2.49691539e+03 2.53061620e+03 + 2.56477187e+03 2.59938853e+03 2.63447242e+03 2.67002983e+03 2.70606716e+03 + 2.74259088e+03 2.77960756e+03 2.81712386e+03 2.85514651e+03 2.89368236e+03 + 2.93273832e+03 2.97232142e+03 3.01243877e+03 3.05309759e+03 3.09430517e+03 + 3.13606893e+03 3.17839638e+03 3.22129512e+03 3.26477287e+03 3.30883743e+03 + 3.35349673e+03 3.39875879e+03 3.44463176e+03 3.49112387e+03 3.53824349e+03 + 3.58599907e+03 3.63439922e+03 3.68345262e+03 3.73316809e+03 3.78355457e+03 + 3.83462112e+03 3.88637691e+03 3.93883124e+03 3.99199356e+03 4.04587340e+03 + 4.10048045e+03 4.15582454e+03 4.21191561e+03 4.26876373e+03 4.32637913e+03 + 4.38477217e+03 4.44395333e+03 4.50393327e+03 4.56472275e+03 4.62633270e+03 + 4.68877420e+03 4.75205848e+03 4.81619690e+03 4.88120099e+03 4.94708244e+03 + 5.01385310e+03 5.08152495e+03 5.15011018e+03 5.21962109e+03 5.29007019e+03 + 5.36147014e+03 5.43383378e+03 5.50717410e+03 5.58150430e+03 5.65683773e+03 + 5.73318793e+03 5.81056864e+03 5.88899374e+03 5.96847735e+03 6.04903375e+03 + 6.13067741e+03 6.21342302e+03 6.29728544e+03 6.38227975e+03 6.46842123e+03 + 6.55572536e+03 6.64420783e+03 6.73388454e+03 6.82477162e+03 6.91688540e+03 + 7.01024244e+03 7.10485951e+03 7.20075363e+03 7.29794203e+03 7.39644218e+03 + 7.49627178e+03 7.59744879e+03 7.69999137e+03 7.80391797e+03 7.90924727e+03 + 8.01599819e+03 8.12418992e+03 8.23384192e+03 8.34497389e+03 8.45760580e+03 + 8.57175791e+03 8.68745072e+03 8.80470504e+03 8.92354193e+03 9.04398276e+03 + 9.16604918e+03 9.28976313e+03 9.41514684e+03 9.54222285e+03 9.67101401e+03 + 9.80154345e+03 9.93383465e+03 1.00679114e+04 1.02037977e+04 1.03415182e+04 + 1.04810974e+04 1.06225605e+04 1.07659329e+04 1.09112405e+04 1.10585092e+04 + 1.12077657e+04 1.13590366e+04 1.15123493e+04 1.16677312e+04 1.18252103e+04 + 1.19848148e+04 1.21465736e+04 1.23105156e+04 1.24766704e+04 1.26450677e+04 + 1.28157379e+04 1.29887116e+04 1.31640199e+04 1.33416944e+04 1.35217669e+04 + 1.37042699e+04 1.38892361e+04 1.40766987e+04 1.42666916e+04 1.44592488e+04 + 1.46544049e+04 1.48521951e+04 1.50526548e+04 1.52558201e+04 1.54617276e+04 + 1.56704142e+04 1.58819174e+04 1.60962752e+04 1.63135263e+04 1.65337095e+04 + 1.67568646e+04 1.69830316e+04 1.72122512e+04 1.74445645e+04 1.76800134e+04 + 1.79186401e+04 1.81604876e+04 1.84055993e+04 1.86540192e+04 1.89057921e+04 + 1.91609631e+04 1.94195781e+04 1.96816837e+04 1.99473269e+04 2.02165555e+04 + 2.04894179e+04 2.07659631e+04 2.10462408e+04 2.13303014e+04 2.16181960e+04 + 2.19099763e+04 2.22056947e+04 2.25054044e+04 2.28091593e+04 2.31170140e+04 + 2.34290238e+04 2.37452448e+04 2.40657338e+04 2.43905484e+04 2.47197470e+04 + 2.50533889e+04 2.53915339e+04 2.57342428e+04 2.60815773e+04 2.64335997e+04 + 2.67903734e+04 2.71519624e+04 2.75184318e+04 2.78898474e+04 2.82662760e+04 + 2.86477853e+04 2.90344437e+04 2.94263209e+04 2.98234873e+04 3.02260142e+04 + 3.06339740e+04 3.10474400e+04 3.14664865e+04 3.18911890e+04 3.23216236e+04 + 3.27578678e+04 3.31999999e+04 3.36480995e+04 3.41022471e+04 3.45625243e+04 + 3.50290139e+04 3.55017997e+04 3.59809666e+04 3.64666009e+04 3.69587897e+04 + 3.74576216e+04 3.79631862e+04 3.84755745e+04 3.89948784e+04 3.95211913e+04 + 4.00546079e+04 4.05952240e+04 4.11431368e+04 4.16984447e+04 4.22612476e+04 + 4.28316467e+04 4.34097444e+04 4.39956447e+04 4.45894528e+04 4.51912756e+04 + 4.58012212e+04 4.64193992e+04 4.70459207e+04 4.76808984e+04 4.83244463e+04 + 4.89766802e+04 4.96377173e+04 5.03076764e+04 5.09866779e+04 5.16748439e+04 + 5.23722980e+04 5.30791657e+04 5.37955739e+04 5.45216515e+04 5.52575289e+04 + 5.60033385e+04 5.67592142e+04 5.75252919e+04 5.83017094e+04 5.90886062e+04 + 5.98861237e+04 6.06944053e+04 6.15135963e+04 6.23438438e+04 6.31852972e+04 + 6.40381076e+04 6.49024284e+04 6.57784150e+04 6.66662247e+04 6.75660171e+04 + 6.84779540e+04 6.94021994e+04 7.03389192e+04 7.12882819e+04 7.22504581e+04 + 7.32256209e+04 7.42139453e+04 7.52156092e+04 7.62307924e+04 7.72596776e+04 + 7.83024497e+04 7.93592960e+04 8.04304065e+04 8.15159738e+04 8.26161929e+04 + 8.37312617e+04 8.48613806e+04 8.60067526e+04 8.71675837e+04 8.83440825e+04 + 8.95364604e+04 9.07449319e+04 9.19697141e+04 9.32110271e+04 9.44690942e+04 + 9.57441413e+04 9.70363977e+04 9.83460956e+04 9.96734705e+04 1.01018761e+05 + 1.02382209e+05 1.03764059e+05 1.05164560e+05 1.06583964e+05 1.08022525e+05 + 1.09480502e+05 1.10958158e+05 1.12455758e+05 1.13973570e+05 1.15511869e+05 + 1.17070930e+05 1.18651033e+05 1.20252464e+05 1.21875508e+05 1.23520459e+05 + 1.25187612e+05 1.26877266e+05 1.28589725e+05 1.30325298e+05 1.32084295e+05 + 1.33867034e+05 1.35673834e+05 1.37505020e+05 1.39360922e+05 1.41241873e+05 + 1.43148212e+05 1.45080280e+05 1.47038425e+05 1.49022999e+05 1.51034359e+05 + 1.53072866e+05 1.55138887e+05 1.57232793e+05 1.59354960e+05 1.61505770e+05 + 1.63685609e+05 1.65894870e+05 1.68133949e+05 1.70403249e+05 1.72703178e+05 + 1.75034149e+05 1.77396580e+05 1.79790898e+05 1.82217531e+05 1.84676917e+05 + 1.87169497e+05 1.89695719e+05 1.92256038e+05 1.94850913e+05 1.97480811e+05 + 2.00146205e+05 2.02847573e+05 2.05585402e+05 2.08360183e+05 2.11172416e+05 + 2.14022605e+05 2.16911263e+05 2.19838909e+05 2.22806069e+05 2.25813278e+05 + 2.28861074e+05 2.31950007e+05 2.35080630e+05 2.38253508e+05 2.41469210e+05 + 2.44728314e+05 2.48031406e+05 2.51379080e+05 2.54771938e+05 2.58210588e+05 + 2.61695651e+05 2.65227751e+05 2.68807523e+05 2.72435612e+05 2.76112669e+05 + 2.79839355e+05 2.83616340e+05 2.87444303e+05 2.91323932e+05 2.95255924e+05 + 2.99240986e+05 3.03279835e+05 3.07373196e+05 3.11521804e+05 3.15726407e+05 + 3.19987758e+05 3.24306626e+05 3.28683784e+05 3.33120022e+05 3.37616135e+05 + 3.42172931e+05 3.46791231e+05 3.51471864e+05 3.56215672e+05 3.61023506e+05 + 3.65896232e+05 3.70834725e+05 3.75839872e+05 3.80912574e+05 3.86053742e+05 + 3.91264300e+05 3.96545185e+05 4.01897346e+05 4.07321745e+05 4.12819356e+05 + 4.18391169e+05 4.24038185e+05 4.29761418e+05 4.35561898e+05 4.41440667e+05 + 4.47398781e+05 4.53437311e+05 4.59557344e+05 4.65759979e+05 4.72046330e+05 + 4.78417528e+05 4.84874718e+05 4.91419060e+05 4.98051732e+05 5.04773924e+05 + 5.11586846e+05 5.18491721e+05 5.25489792e+05 5.32582315e+05 5.39770566e+05 + 5.47055836e+05 5.54439436e+05 5.61922691e+05 5.69506949e+05 5.77193570e+05 + 5.84983938e+05 5.92879453e+05 6.00881532e+05 6.08991616e+05 6.17211161e+05 + 6.25541646e+05 6.33984566e+05 6.42541441e+05 6.51213808e+05 6.60003225e+05 + 3.33422613e-07 3.37922810e-07 3.42483747e-07 3.47106241e-07 3.51791126e-07 + 3.56539243e-07 3.61351444e-07 3.66228596e-07 3.71171575e-07 3.76181269e-07 + 3.81258578e-07 3.86404416e-07 3.91619707e-07 3.96905389e-07 4.02262412e-07 + 4.07691738e-07 4.13194344e-07 4.18771218e-07 4.24423363e-07 4.30151795e-07 + 4.35957544e-07 4.41841652e-07 4.47805178e-07 4.53849194e-07 4.59974786e-07 + 4.66183055e-07 4.72475116e-07 4.78852102e-07 4.85315157e-07 4.91865444e-07 + 4.98504140e-07 5.05232439e-07 5.12051549e-07 5.18962697e-07 5.25967124e-07 + 5.33066089e-07 5.40260870e-07 5.47552758e-07 5.54943064e-07 5.62433118e-07 + 5.70024264e-07 5.77717868e-07 5.85515312e-07 5.93417998e-07 6.01427347e-07 + 6.09544798e-07 6.17771809e-07 6.26109861e-07 6.34560451e-07 6.43125098e-07 + 6.51805342e-07 6.60602743e-07 6.69518883e-07 6.78555363e-07 6.87713809e-07 + 6.96995865e-07 7.06403202e-07 7.15937509e-07 7.25600501e-07 7.35393913e-07 + 7.45319507e-07 7.55379067e-07 7.65574400e-07 7.75907340e-07 7.86379743e-07 + 7.96993491e-07 8.07750493e-07 8.18652683e-07 8.29702018e-07 8.40900487e-07 + 8.52250101e-07 8.63752900e-07 8.75410952e-07 8.87226353e-07 8.99201226e-07 + 9.11337723e-07 9.23638027e-07 9.36104347e-07 9.48738925e-07 9.61544032e-07 + 9.74521969e-07 9.87675069e-07 1.00100570e-06 1.01451625e-06 1.02820915e-06 + 1.04208686e-06 1.05615188e-06 1.07040674e-06 1.08485399e-06 1.09949624e-06 + 1.11433612e-06 1.12937629e-06 1.14461945e-06 1.16006835e-06 1.17572577e-06 + 1.19159451e-06 1.20767743e-06 1.22397743e-06 1.24049742e-06 1.25724038e-06 + 1.27420933e-06 1.29140730e-06 1.30883739e-06 1.32650274e-06 1.34440652e-06 + 1.36255194e-06 1.38094227e-06 1.39958082e-06 1.41847092e-06 1.43761599e-06 + 1.45701946e-06 1.47668482e-06 1.49661560e-06 1.51681538e-06 1.53728780e-06 + 1.55803654e-06 1.57906532e-06 1.60037793e-06 1.62197819e-06 1.64386999e-06 + 1.66605727e-06 1.68854400e-06 1.71133424e-06 1.73443208e-06 1.75784167e-06 + 1.78156721e-06 1.80561298e-06 1.82998330e-06 1.85468254e-06 1.87971515e-06 + 1.90508562e-06 1.93079851e-06 1.95685845e-06 1.98327013e-06 2.01003828e-06 + 2.03716771e-06 2.06466332e-06 2.09253003e-06 2.12077286e-06 2.14939688e-06 + 2.17840724e-06 2.20780915e-06 2.23760790e-06 2.26780884e-06 2.29841740e-06 + 2.32943908e-06 2.36087947e-06 2.39274420e-06 2.42503901e-06 2.45776971e-06 + 2.49094216e-06 2.52456235e-06 2.55863631e-06 2.59317016e-06 2.62817012e-06 + 2.66364247e-06 2.69959359e-06 2.73602994e-06 2.77295807e-06 2.81038462e-06 + 2.84831631e-06 2.88675997e-06 2.92572250e-06 2.96521091e-06 3.00523229e-06 + 3.04579384e-06 3.08690284e-06 3.12856670e-06 3.17079289e-06 3.21358900e-06 + 3.25696274e-06 3.30092189e-06 3.34547435e-06 3.39062814e-06 3.43639136e-06 + 3.48277226e-06 3.52977915e-06 3.57742050e-06 3.62570485e-06 3.67464091e-06 + 3.72423745e-06 3.77450339e-06 3.82544777e-06 3.87707975e-06 3.92940860e-06 + 3.98244374e-06 4.03619469e-06 4.09067111e-06 4.14588280e-06 4.20183968e-06 + 4.25855181e-06 4.31602938e-06 4.37428273e-06 4.43332232e-06 4.49315877e-06 + 4.55380282e-06 4.61526539e-06 4.67755752e-06 4.74069040e-06 4.80467539e-06 + 4.86952397e-06 4.93524782e-06 5.00185875e-06 5.06936871e-06 5.13778986e-06 + 5.20713449e-06 5.27741506e-06 5.34864421e-06 5.42083473e-06 5.49399961e-06 + 5.56815199e-06 5.64330520e-06 5.71947276e-06 5.79666835e-06 5.87490584e-06 + 5.95419930e-06 6.03456299e-06 6.11601134e-06 6.19855900e-06 6.28222081e-06 + 6.36701179e-06 6.45294720e-06 6.54004247e-06 6.62831327e-06 6.71777545e-06 + 6.80844511e-06 6.90033853e-06 6.99347224e-06 7.08786296e-06 7.18352768e-06 + 7.28048358e-06 7.37874810e-06 7.47833888e-06 7.57927385e-06 7.68157112e-06 + 7.78524911e-06 7.89032643e-06 7.99682198e-06 8.10475489e-06 8.21414458e-06 + 8.32501069e-06 8.43737316e-06 8.55125218e-06 8.66666823e-06 8.78364205e-06 + 8.90219465e-06 9.02234736e-06 9.14412177e-06 9.26753976e-06 9.39262353e-06 + 9.51939554e-06 9.64787860e-06 9.77809578e-06 9.91007051e-06 1.00438265e-05 + 1.01793878e-05 1.03167787e-05 1.04560241e-05 1.05971488e-05 1.07401782e-05 + 1.08851382e-05 1.10320546e-05 1.11809540e-05 1.13318631e-05 1.14848089e-05 + 1.16398191e-05 1.17969215e-05 1.19561443e-05 1.21175161e-05 1.22810659e-05 + 1.24468231e-05 1.26148176e-05 1.27850795e-05 1.29576394e-05 1.31325284e-05 + 1.33097778e-05 1.34894195e-05 1.36714859e-05 1.38560096e-05 1.40430239e-05 + 1.42325622e-05 1.44246588e-05 1.46193481e-05 1.48166650e-05 1.50166452e-05 + 1.52193245e-05 1.54247394e-05 1.56329267e-05 1.58439240e-05 1.60577690e-05 + 1.62745004e-05 1.64941569e-05 1.67167781e-05 1.69424041e-05 1.71710753e-05 + 1.74028329e-05 1.76377185e-05 1.78757744e-05 1.81170433e-05 1.83615686e-05 + 1.86093943e-05 1.88605648e-05 1.91151254e-05 1.93731218e-05 1.96346004e-05 + 1.98996081e-05 2.01681926e-05 2.04404022e-05 2.07162859e-05 2.09958931e-05 + 2.12792742e-05 2.15664800e-05 2.18575623e-05 2.21525733e-05 2.24515660e-05 + 2.27545943e-05 2.30617125e-05 2.33729759e-05 2.36884404e-05 2.40081627e-05 + 2.43322003e-05 2.46606114e-05 2.49934551e-05 2.53307912e-05 2.56726803e-05 + 2.60191838e-05 2.63703641e-05 2.67262843e-05 2.70870083e-05 2.74526010e-05 + 2.78231281e-05 2.81986562e-05 2.85792528e-05 2.89649863e-05 2.93559260e-05 + 2.97521423e-05 3.01537062e-05 3.05606901e-05 3.09731670e-05 3.13912111e-05 + 3.18148975e-05 3.22443024e-05 3.26795030e-05 3.31205775e-05 3.35676051e-05 + 3.40206663e-05 3.44798424e-05 3.49452160e-05 3.54168708e-05 3.58948914e-05 + 3.63793639e-05 3.68703753e-05 3.73680139e-05 3.78723691e-05 3.83835316e-05 + 3.89015932e-05 3.94266470e-05 3.99587876e-05 4.04981104e-05 4.10447124e-05 + 4.15986919e-05 4.21601485e-05 4.27291830e-05 4.33058977e-05 4.38903964e-05 + 4.44827840e-05 4.50831671e-05 4.56916535e-05 4.63083527e-05 4.69333754e-05 + 4.75668341e-05 4.82088425e-05 4.88595161e-05 4.95189718e-05 5.01873282e-05 + 5.08647054e-05 5.15512251e-05 5.22470108e-05 5.29521874e-05 5.36668818e-05 + 5.43912225e-05 5.51253395e-05 5.58693649e-05 5.66234324e-05 5.73876775e-05 + 5.81622376e-05 5.89472519e-05 5.97428616e-05 6.05492096e-05 6.13664408e-05 + 6.21947022e-05 6.30341426e-05 6.38849129e-05 6.47471661e-05 6.56210570e-05 + 6.65067429e-05 6.74043828e-05 6.83141382e-05 6.92361725e-05 7.01706514e-05 + 7.11177430e-05 7.20776175e-05 7.30504474e-05 7.40364076e-05 7.50356752e-05 + 7.60484299e-05 7.70748537e-05 7.81151312e-05 7.91694493e-05 8.02379974e-05 + 8.13209678e-05 8.24185549e-05 8.35309562e-05 8.46583715e-05 8.58010036e-05 + 8.69590577e-05 8.81327420e-05 8.93222675e-05 9.05278480e-05 9.17497002e-05 + 9.29880438e-05 9.42431012e-05 9.55150981e-05 9.68042631e-05 9.81108279e-05 + 9.94350274e-05 1.00777100e-04 1.02137286e-04 1.03515830e-04 1.04912981e-04 + 1.06328989e-04 1.07764109e-04 1.09218598e-04 1.10692719e-04 1.12186736e-04 + 1.13700918e-04 1.15235536e-04 1.16790868e-04 1.18367191e-04 1.19964790e-04 + 1.21583952e-04 1.23224968e-04 1.24888133e-04 1.26573745e-04 1.28282107e-04 + 1.30013528e-04 1.31768318e-04 1.33546791e-04 1.35349269e-04 1.37176075e-04 + 1.39027537e-04 1.40903989e-04 1.42805766e-04 1.44733212e-04 1.46686673e-04 + 1.48666500e-04 1.50673048e-04 1.52706678e-04 1.54767757e-04 1.56856654e-04 + 1.58973744e-04 1.61119409e-04 1.63294034e-04 1.65498009e-04 1.67731732e-04 + 1.69995603e-04 1.72290030e-04 1.74615424e-04 1.76972205e-04 1.79360794e-04 + 1.81781623e-04 1.84235125e-04 1.86721742e-04 1.89241921e-04 1.91796114e-04 + 1.94384782e-04 1.97008389e-04 1.99667406e-04 2.02362313e-04 2.05093592e-04 + 2.07861735e-04 2.10667240e-04 2.13510611e-04 2.16392358e-04 2.19313001e-04 + 2.22273063e-04 2.25273078e-04 2.28313583e-04 2.31395126e-04 2.34518260e-04 + 2.37683548e-04 2.40891557e-04 2.44142865e-04 2.47438055e-04 2.50777721e-04 + 2.54162461e-04 2.57592886e-04 2.61069611e-04 2.64593261e-04 2.68164470e-04 + 2.71783880e-04 2.75452140e-04 2.79169911e-04 2.82937861e-04 2.86756667e-04 + 2.90627015e-04 2.94549600e-04 2.98525129e-04 3.02554316e-04 3.06637884e-04 + 3.10776569e-04 3.14971112e-04 3.19222270e-04 3.23530805e-04 3.27897493e-04 + 3.32323118e-04 3.36808475e-04 3.41354371e-04 3.45961623e-04 3.50631058e-04 + 3.55363517e-04 3.60159850e-04 3.65020919e-04 3.69947598e-04 3.74940772e-04 + 3.80001338e-04 3.85130207e-04 3.90328301e-04 3.95596553e-04 4.00935910e-04 + 4.06347332e-04 4.11831792e-04 4.17390276e-04 4.23023783e-04 4.28733325e-04 + 4.34519928e-04 4.40384633e-04 4.46328494e-04 4.52352579e-04 4.58457971e-04 + 4.64645768e-04 4.70917081e-04 4.77273037e-04 4.83714780e-04 4.90243467e-04 + 4.96860271e-04 5.03566382e-04 5.10363006e-04 5.17251363e-04 5.24232693e-04 + 5.31308249e-04 5.38479303e-04 5.45747146e-04 5.53113082e-04 5.60578436e-04 + 5.68144550e-04 5.75812783e-04 5.83584515e-04 5.91461141e-04 5.99444078e-04 + 6.07534760e-04 6.15734643e-04 6.24045198e-04 6.32467922e-04 6.41004326e-04 + 6.49655946e-04 6.58424337e-04 6.67311075e-04 6.76317756e-04 6.85446001e-04 + 6.94697449e-04 7.04073764e-04 7.13576631e-04 7.23207758e-04 7.32968876e-04 + 7.42861739e-04 7.52888126e-04 7.63049839e-04 7.73348705e-04 7.83786574e-04 + 7.94365323e-04 8.05086852e-04 8.15953090e-04 8.26965990e-04 8.38127530e-04 + 8.49439717e-04 8.60904585e-04 8.72524194e-04 8.84300632e-04 8.96236017e-04 + 9.08332493e-04 9.20592235e-04 9.33017446e-04 9.45610360e-04 9.58373241e-04 + 9.71308382e-04 9.84418108e-04 9.97704775e-04 1.01117077e-03 1.02481852e-03 + 1.03865047e-03 1.05266911e-03 1.06687696e-03 1.08127658e-03 1.09587054e-03 + 1.11066148e-03 1.12565205e-03 1.14084495e-03 1.15624291e-03 1.17184869e-03 + 1.18766510e-03 1.20369499e-03 1.21994123e-03 1.23640675e-03 1.25309450e-03 + 1.27000749e-03 1.28714875e-03 1.30452137e-03 1.32212846e-03 1.33997320e-03 + 1.35805878e-03 1.37638847e-03 1.39496555e-03 1.41379337e-03 1.43287530e-03 + 1.45221479e-03 1.47181530e-03 1.49168035e-03 1.51181353e-03 1.53221844e-03 + 1.55289875e-03 1.57385819e-03 1.59510052e-03 1.61662955e-03 1.63844916e-03 + 1.66056327e-03 1.68297585e-03 1.70569094e-03 1.72871261e-03 1.75204500e-03 + 1.77569231e-03 1.79965879e-03 1.82394874e-03 1.84856653e-03 1.87351659e-03 + 1.89880340e-03 1.92443150e-03 1.95040551e-03 1.97673009e-03 2.00340997e-03 + 2.03044994e-03 2.05785488e-03 2.08562970e-03 2.11377939e-03 2.14230902e-03 + 2.17122371e-03 2.20052867e-03 2.23022915e-03 2.26033050e-03 2.29083813e-03 + 2.32175752e-03 2.35309422e-03 2.38485388e-03 2.41704219e-03 2.44966495e-03 + 2.48272802e-03 2.51623735e-03 2.55019894e-03 2.58461891e-03 2.61950345e-03 + 2.65485883e-03 2.69069140e-03 2.72700759e-03 2.76381395e-03 2.80111708e-03 + 2.83892369e-03 2.87724058e-03 2.91607463e-03 2.95543282e-03 2.99532222e-03 + 3.03575001e-03 3.07672346e-03 3.11824992e-03 3.16033687e-03 3.20299186e-03 + 3.24622256e-03 3.29003675e-03 3.33444230e-03 3.37944719e-03 3.42505951e-03 + 3.47128745e-03 3.51813934e-03 3.56562358e-03 3.61374872e-03 3.66252340e-03 + 3.71195639e-03 3.76205657e-03 3.81283296e-03 3.86429468e-03 3.91645097e-03 + 3.96931122e-03 4.02288492e-03 4.07718170e-03 4.13221132e-03 4.18798368e-03 + 4.24450880e-03 4.30179683e-03 4.35985808e-03 4.41870298e-03 4.47834211e-03 + 4.53878618e-03 4.60004607e-03 4.66213279e-03 4.72505748e-03 4.78883147e-03 + 4.85346621e-03 4.91897333e-03 4.98536460e-03 5.05265194e-03 5.12084747e-03 + 5.18996342e-03 5.26001224e-03 5.33100650e-03 5.40295896e-03 5.47588257e-03 + 5.54979043e-03 5.62469582e-03 5.70061220e-03 5.77755323e-03 5.85553273e-03 + 5.93456471e-03 6.01466339e-03 6.09584316e-03 6.17811861e-03 6.26150453e-03 + 6.34601591e-03 6.43166793e-03 6.51847600e-03 6.60645572e-03 6.69562289e-03 + 6.78599356e-03 6.87758395e-03 6.97041054e-03 7.06449000e-03 7.15983925e-03 + 7.25647543e-03 7.35441591e-03 7.45367829e-03 7.55428040e-03 7.65624035e-03 + 7.75957644e-03 7.86430726e-03 7.97045163e-03 8.07802862e-03 8.18705758e-03 + 8.29755810e-03 8.40955005e-03 8.52305354e-03 8.63808899e-03 8.75467707e-03 + 8.87283874e-03 8.99259524e-03 9.11396808e-03 9.23697909e-03 9.36165038e-03 + 9.48800435e-03 9.61606372e-03 9.74585150e-03 9.87739102e-03 1.00107059e-02 + 1.01458202e-02 1.02827581e-02 1.04215442e-02 1.05622036e-02 1.07047614e-02 + 1.08492433e-02 1.09956753e-02 1.11440836e-02 1.12944951e-02 1.14469366e-02 + 1.16014356e-02 1.17580199e-02 1.19167176e-02 1.20775573e-02 1.22405678e-02 + 1.24057784e-02 1.25732189e-02 1.27429194e-02 1.29149103e-02 1.30892225e-02 + 1.32658874e-02 1.34449368e-02 1.36264028e-02 1.38103180e-02 1.39967155e-02 + 1.41856289e-02 1.43770920e-02 1.45711392e-02 1.47678056e-02 1.49671263e-02 + 1.51691372e-02 1.53738747e-02 1.55813755e-02 1.57916770e-02 1.60048169e-02 + 1.62208335e-02 1.64397657e-02 1.66616528e-02 1.68865348e-02 1.71144519e-02 + 1.73454453e-02 1.75795563e-02 1.78168272e-02 1.80573005e-02 1.83010194e-02 + 1.85480279e-02 1.87983701e-02 1.90520913e-02 1.93092369e-02 1.95698532e-02 + 1.98339871e-02 2.01016859e-02 2.03729979e-02 2.06479718e-02 2.09266569e-02 + 2.12091035e-02 2.14953623e-02 2.17854847e-02 2.20795229e-02 2.23775297e-02 + 2.26795586e-02 2.29856641e-02 2.32959011e-02 2.36103253e-02 2.39289933e-02 + 2.42519623e-02 2.45792905e-02 2.49110366e-02 2.52472603e-02 2.55880219e-02 + 2.59333828e-02 2.62834051e-02 2.66381516e-02 2.69976861e-02 2.73620732e-02 + 2.77313785e-02 2.81056682e-02 2.84850098e-02 2.88694713e-02 2.92591218e-02 + 2.96540315e-02 3.00542712e-02 3.04599130e-02 3.08710297e-02 3.12876953e-02 + 3.17099846e-02 3.21379735e-02 3.25717389e-02 3.30113589e-02 3.34569125e-02 + 3.39084796e-02 3.43661415e-02 3.48299805e-02 3.53000800e-02 3.57765243e-02 + 3.62593992e-02 3.67487914e-02 3.72447890e-02 3.77474810e-02 3.82569579e-02 + 3.87733111e-02 3.92966336e-02 3.98270193e-02 4.03645636e-02 4.09093632e-02 + 4.14615159e-02 4.20211210e-02 4.25882791e-02 4.31630920e-02 4.37456633e-02 + 4.43360974e-02 4.49345007e-02 4.55409806e-02 4.61556461e-02 4.67786078e-02 + 4.74099775e-02 4.80498689e-02 4.86983968e-02 4.93556779e-02 5.00218303e-02 + 5.06969737e-02 5.13812296e-02 5.20747208e-02 5.27775721e-02 5.34899097e-02 + 5.42118618e-02 5.49435580e-02 5.56851299e-02 5.64367107e-02 5.71984357e-02 + 5.79704416e-02 5.87528673e-02 5.95458533e-02 6.03495423e-02 6.11640786e-02 + 6.19896087e-02 6.28262810e-02 6.36742458e-02 6.45336556e-02 6.54046648e-02 + 6.62874300e-02 6.71821099e-02 6.80888652e-02 6.90078590e-02 6.99392564e-02 + 7.08832249e-02 7.18399341e-02 7.28095560e-02 7.37922648e-02 7.47882373e-02 + 7.57976523e-02 7.68206914e-02 7.78575385e-02 7.89083798e-02 7.99734043e-02 + 8.10528035e-02 8.21467712e-02 8.32555042e-02 8.43792018e-02 8.55180659e-02 + 8.66723011e-02 8.78421151e-02 8.90277181e-02 9.02293231e-02 9.14471461e-02 + 9.26814060e-02 9.39323248e-02 9.52001271e-02 9.64850410e-02 9.77872973e-02 + 9.91071301e-02 1.00444777e-01 1.01800477e-01 1.03174476e-01 1.04567019e-01 + 1.05978358e-01 1.07408745e-01 1.08858439e-01 1.10327698e-01 1.11816789e-01 + 1.13325977e-01 1.14855535e-01 1.16405738e-01 1.17976863e-01 1.19569194e-01 + 1.21183017e-01 1.22818621e-01 1.24476301e-01 1.26156355e-01 1.27859084e-01 + 1.29584795e-01 1.31333798e-01 1.33106407e-01 1.34902941e-01 1.36723723e-01 + 1.38569080e-01 1.40439343e-01 1.42334850e-01 1.44255940e-01 1.46202959e-01 + 1.48176257e-01 1.50176188e-01 1.52203112e-01 1.54257394e-01 1.56339402e-01 + 1.58449512e-01 1.60588101e-01 1.62755555e-01 1.64952263e-01 1.67178619e-01 + 1.69435025e-01 1.71721886e-01 1.74039612e-01 1.76388620e-01 1.78769333e-01 + 1.81182179e-01 1.83627590e-01 1.86106008e-01 1.88617876e-01 1.91163647e-01 + 1.93743778e-01 1.96358733e-01 1.99008982e-01 2.01695002e-01 2.04417275e-01 + 2.07176290e-01 2.09972543e-01 2.12806537e-01 2.15678782e-01 2.18589794e-01 + 2.21540095e-01 2.24530216e-01 2.27560695e-01 2.30632076e-01 2.33744912e-01 + 2.36899762e-01 2.40097192e-01 2.43337778e-01 2.46622102e-01 2.49950755e-01 + 2.53324334e-01 2.56743447e-01 2.60208707e-01 2.63720738e-01 2.67280170e-01 + 2.70887644e-01 2.74543808e-01 2.78249320e-01 2.82004844e-01 2.85811057e-01 + 2.89668642e-01 2.93578293e-01 2.97540712e-01 3.01556612e-01 3.05626714e-01 + 3.09751751e-01 3.13932463e-01 3.18169601e-01 3.22463929e-01 3.26816217e-01 + 3.31227248e-01 3.35697814e-01 3.40228719e-01 3.44820778e-01 3.49474816e-01 + 3.54191669e-01 3.58972186e-01 3.63817225e-01 3.68727657e-01 3.73704366e-01 + 3.78748245e-01 3.83860201e-01 3.89041153e-01 3.94292032e-01 3.99613782e-01 + 4.05007360e-01 4.10473734e-01 4.16013889e-01 4.21628818e-01 4.27319532e-01 + 4.33087054e-01 4.38932419e-01 4.44856680e-01 4.50860900e-01 4.56946159e-01 + 4.63113550e-01 4.69364183e-01 4.75699180e-01 4.82119680e-01 4.88626838e-01 + 4.95221823e-01 5.01905820e-01 5.08680031e-01 5.15545673e-01 5.22503981e-01 + 5.29556205e-01 5.36703612e-01 5.43947488e-01 5.51289134e-01 5.58729871e-01 + 5.66271034e-01 5.73913981e-01 5.81660084e-01 5.89510737e-01 5.97467349e-01 + 6.05531351e-01 6.13704194e-01 6.21987345e-01 6.30382293e-01 6.38890548e-01 + 6.47513638e-01 6.56253114e-01 6.65110547e-01 6.74087528e-01 6.83185672e-01 + 6.92406612e-01 7.01752008e-01 7.11223538e-01 7.20822905e-01 7.30551835e-01 + 7.40412075e-01 7.50405399e-01 7.60533603e-01 7.70798507e-01 7.81201956e-01 + 7.91745820e-01 8.02431995e-01 8.13262400e-01 8.24238984e-01 8.35363718e-01 + 8.46638602e-01 8.58065663e-01 8.69646955e-01 8.81384559e-01 8.93280585e-01 + 9.05337172e-01 9.17556486e-01 9.29940724e-01 9.42492112e-01 9.55212906e-01 + 9.68105391e-01 9.81171887e-01 9.94414740e-01 1.00783633e+00 1.02143908e+00 + 1.03522541e+00 1.04919783e+00 1.06335883e+00 1.07771095e+00 1.09225679e+00 + 1.10699896e+00 1.12194010e+00 1.13708289e+00 1.15243007e+00 1.16798440e+00 + 1.18374865e+00 1.19972568e+00 1.21591835e+00 1.23232957e+00 1.24896229e+00 + 1.26581951e+00 1.28290424e+00 1.30021957e+00 1.31776860e+00 1.33555450e+00 + 1.35358044e+00 1.37184969e+00 1.39036551e+00 1.40913124e+00 1.42815025e+00 + 1.44742596e+00 1.46696183e+00 1.48676138e+00 1.50682816e+00 1.52716579e+00 + 1.54777791e+00 1.56866823e+00 1.58984051e+00 1.61129855e+00 1.63304621e+00 + 1.65508739e+00 1.67742607e+00 1.70006625e+00 1.72301200e+00 1.74626745e+00 + 1.76983678e+00 1.79372423e+00 1.81793408e+00 1.84247069e+00 1.86733848e+00 + 1.89254190e+00 1.91808549e+00 1.94397385e+00 1.97021161e+00 1.99680351e+00 + 2.02375432e+00 2.05106889e+00 2.07875211e+00 2.10680898e+00 2.13524453e+00 + 2.16406388e+00 2.19327220e+00 2.22287474e+00 2.25287683e+00 2.28328385e+00 + 2.31410128e+00 2.34533465e+00 2.37698957e+00 2.40907175e+00 2.44158693e+00 + 2.47454097e+00 2.50793979e+00 2.54178939e+00 2.57609587e+00 2.61086537e+00 + 2.64610416e+00 2.68181856e+00 2.71801500e+00 2.75469999e+00 2.79188011e+00 + 2.82956205e+00 2.86775258e+00 2.90645857e+00 2.94568697e+00 2.98544484e+00 + 3.02573931e+00 3.06657764e+00 3.10796717e+00 3.14991533e+00 3.19242966e+00 + 3.23551781e+00 3.27918751e+00 3.32344663e+00 3.36830311e+00 3.41376502e+00 + 3.45984052e+00 3.50653791e+00 3.55386557e+00 3.60183200e+00 3.65044585e+00 + 3.69971583e+00 3.74965080e+00 3.80025975e+00 3.85155177e+00 3.90353607e+00 + 3.95622200e+00 4.00961904e+00 4.06373677e+00 4.11858493e+00 4.17417337e+00 + 4.23051209e+00 4.28761121e+00 4.34548099e+00 4.40413185e+00 4.46357431e+00 + 4.52381907e+00 4.58487694e+00 4.64675892e+00 4.70947611e+00 4.77303980e+00 + 4.83746140e+00 4.90275251e+00 4.96892484e+00 5.03599030e+00 5.10396094e+00 + 5.17284898e+00 5.24266680e+00 5.31342695e+00 5.38514215e+00 5.45782528e+00 + 5.53148942e+00 5.60614780e+00 5.68181384e+00 5.75850115e+00 5.83622350e+00 + 5.91499487e+00 5.99482942e+00 6.07574149e+00 6.15774562e+00 6.24085657e+00 + 6.32508926e+00 6.41045884e+00 6.49698065e+00 6.58467024e+00 6.67354338e+00 + 6.76361604e+00 6.85490440e+00 6.94742488e+00 7.04119411e+00 7.13622894e+00 + 7.23254645e+00 7.33016396e+00 7.42909901e+00 7.52936938e+00 7.63099310e+00 + 7.73398843e+00 7.83837389e+00 7.94416823e+00 8.05139048e+00 8.16005991e+00 + 8.27019604e+00 8.38181868e+00 8.49494789e+00 8.60960400e+00 8.72580762e+00 + 8.84357964e+00 8.96294122e+00 9.08391382e+00 9.20651919e+00 9.33077936e+00 + 9.45671667e+00 9.58435375e+00 9.71371354e+00 9.84481930e+00 9.97769459e+00 + 1.01123633e+01 1.02488496e+01 1.03871781e+01 1.05273736e+01 1.06694613e+01 + 1.08134668e+01 1.09594159e+01 1.11073349e+01 1.12572503e+01 1.14091891e+01 + 1.15631787e+01 1.17192466e+01 1.18774210e+01 1.20377303e+01 1.22002032e+01 + 1.23648691e+01 1.25317574e+01 1.27008983e+01 1.28723220e+01 1.30460594e+01 + 1.32221418e+01 1.34006007e+01 1.35814683e+01 1.37647770e+01 1.39505599e+01 + 1.41388503e+01 1.43296820e+01 1.45230894e+01 1.47191072e+01 1.49177706e+01 + 1.51191154e+01 1.53231778e+01 1.55299943e+01 1.57396023e+01 1.59520393e+01 + 1.61673436e+01 1.63855539e+01 1.66067093e+01 1.68308497e+01 1.70580152e+01 + 1.72882469e+01 1.75215859e+01 1.77580743e+01 1.79977547e+01 1.82406699e+01 + 1.84868638e+01 1.87363806e+01 1.89892650e+01 1.92455627e+01 1.95053196e+01 + 1.97685824e+01 2.00353985e+01 2.03058158e+01 2.05798829e+01 2.08576491e+01 + 2.11391643e+01 2.14244791e+01 2.17136448e+01 2.20067133e+01 2.23037374e+01 + 2.26047704e+01 2.29098665e+01 2.32190804e+01 2.35324678e+01 2.38500849e+01 + 2.41719890e+01 2.44982377e+01 2.48288899e+01 2.51640048e+01 2.55036428e+01 + 2.58478648e+01 2.61967328e+01 2.65503095e+01 2.69086584e+01 2.72718439e+01 + 2.76399314e+01 2.80129869e+01 2.83910775e+01 2.87742712e+01 2.91626368e+01 + 2.95562442e+01 2.99551642e+01 3.03594683e+01 3.07692293e+01 3.11845209e+01 + 3.16054176e+01 3.20319952e+01 3.24643303e+01 3.29025005e+01 3.33465848e+01 + 3.37966629e+01 3.42528156e+01 3.47151251e+01 3.51836743e+01 3.56585475e+01 + 3.61398301e+01 3.66276085e+01 3.71219704e+01 3.76230048e+01 3.81308016e+01 + 3.86454521e+01 3.91670489e+01 3.96956856e+01 4.02314573e+01 4.07744603e+01 + 4.13247922e+01 4.18825520e+01 4.24478398e+01 4.30207573e+01 4.36014074e+01 + 4.41898946e+01 4.47863245e+01 4.53908045e+01 4.60034431e+01 4.66243504e+01 + 4.72536382e+01 4.78914194e+01 4.85378088e+01 4.91929224e+01 4.98568781e+01 + 5.05297952e+01 5.12117947e+01 5.19029990e+01 5.26035326e+01 5.33135212e+01 + 5.40330925e+01 5.47623759e+01 5.55015024e+01 5.62506048e+01 5.70098179e+01 + 5.77792780e+01 5.85591236e+01 5.93494947e+01 6.01505334e+01 6.09623837e+01 + 6.17851916e+01 6.26191048e+01 6.34642734e+01 6.43208492e+01 6.51889861e+01 + 6.60688403e+01 6.69605699e+01 6.78643351e+01 6.87802984e+01 6.97086245e+01 + 7.06494801e+01 7.16030345e+01 7.25694589e+01 7.35489272e+01 7.45416153e+01 + 7.55477017e+01 7.65673672e+01 7.76007951e+01 7.86481712e+01 7.97096837e+01 + 8.07855234e+01 8.18758837e+01 8.29809606e+01 8.41009526e+01 8.52360612e+01 + 8.63864902e+01 8.75524466e+01 8.87341399e+01 8.99317825e+01 9.11455896e+01 + 9.23757795e+01 9.36225732e+01 9.48861948e+01 9.61668715e+01 9.74648335e+01 + 9.87803140e+01 1.00113550e+02 1.01464780e+02 1.02834247e+02 1.04222199e+02 + 1.05628883e+02 1.07054554e+02 1.08499467e+02 1.09963881e+02 1.11448061e+02 + 1.12952273e+02 1.14476787e+02 1.16021878e+02 1.17587822e+02 1.19174902e+02 + 1.20783403e+02 1.22413614e+02 1.24065827e+02 1.25740341e+02 1.27437455e+02 + 1.29157476e+02 1.30900711e+02 1.32667475e+02 1.34458085e+02 1.36272862e+02 + 1.38112134e+02 1.39976230e+02 1.41865486e+02 1.43780241e+02 1.45720839e+02 + 1.47687630e+02 1.49680966e+02 1.51701207e+02 1.53748714e+02 1.55823857e+02 + 1.57927008e+02 1.60058545e+02 1.62218851e+02 1.64408315e+02 1.66627330e+02 + 1.68876296e+02 1.71155615e+02 1.73465698e+02 1.75806961e+02 1.78179823e+02 + 1.80584712e+02 1.83022059e+02 1.85492304e+02 1.87995889e+02 1.90533265e+02 + 1.93104888e+02 1.95711220e+02 1.98352730e+02 2.01029892e+02 2.03743187e+02 + 2.06493104e+02 2.09280137e+02 2.12104786e+02 2.14967559e+02 2.17868971e+02 + 2.20809543e+02 2.23789805e+02 2.26810290e+02 2.29871543e+02 2.32974114e+02 + 2.36118560e+02 2.39305447e+02 2.42535347e+02 2.45808840e+02 2.49126516e+02 + 2.52488971e+02 2.55896809e+02 2.59350642e+02 2.62851091e+02 2.66398786e+02 + 2.69994364e+02 2.73638472e+02 2.77331764e+02 2.81074904e+02 2.84868565e+02 + 2.88713429e+02 2.92610188e+02 2.96559540e+02 3.00562197e+02 3.04618878e+02 + 3.08730312e+02 3.12897238e+02 3.17120404e+02 3.21400571e+02 3.25738507e+02 + 3.30134991e+02 3.34590816e+02 3.39106780e+02 3.43683696e+02 3.48322387e+02 + 3.53023686e+02 3.57788438e+02 3.62617500e+02 3.67511740e+02 3.72472037e+02 + 3.77499283e+02 3.82594382e+02 3.87758249e+02 3.92991813e+02 3.98296014e+02 + 4.03671806e+02 4.09120155e+02 4.14642040e+02 4.20238453e+02 4.25910402e+02 + 4.31658904e+02 4.37484994e+02 4.43389719e+02 4.49374139e+02 4.55439331e+02 + 4.61586385e+02 4.67816405e+02 4.74130512e+02 4.80529841e+02 4.87015540e+02 + 4.93588778e+02 5.00250733e+02 5.07002606e+02 5.13845608e+02 5.20780970e+02 + 5.27809938e+02 5.34933776e+02 5.42153765e+02 5.49471201e+02 5.56887401e+02 + 5.64403697e+02 5.72021440e+02 5.79742000e+02 5.87566764e+02 5.95497138e+02 + 6.03534549e+02 6.11680440e+02 6.19936277e+02 6.28303542e+02 6.36783740e+02 + 6.45378395e+02 6.54089052e+02 6.62917276e+02 6.71864655e+02 6.80932796e+02 + 6.90123330e+02 6.99437908e+02 7.08878204e+02 7.18445917e+02 7.28142764e+02 + 7.37970490e+02 7.47930860e+02 7.58025665e+02 7.68256719e+02 7.78625862e+02 + 7.89134956e+02 7.99785892e+02 8.10580583e+02 8.21520970e+02 8.32609019e+02 + 8.43846723e+02 8.55236102e+02 8.66779204e+02 8.78478102e+02 8.90334900e+02 + 9.02351729e+02 9.14530748e+02 9.26874148e+02 9.39384146e+02 9.52062992e+02 + 9.64912963e+02 9.77936371e+02 9.91135555e+02 1.00451289e+03 1.01807077e+03 + 1.03181165e+03 1.04573799e+03 1.05985229e+03 1.07415709e+03 1.08865496e+03 + 1.10334851e+03 1.11824038e+03 1.13333325e+03 1.14862982e+03 1.16413285e+03 + 1.17984512e+03 1.19576946e+03 1.21190873e+03 1.22826584e+03 1.24484371e+03 + 1.26164534e+03 1.27867373e+03 1.29593196e+03 1.31342313e+03 1.33115037e+03 + 1.34911687e+03 1.36732587e+03 1.38578063e+03 1.40448448e+03 1.42344078e+03 + 1.44265292e+03 1.46212437e+03 1.48185863e+03 1.50185924e+03 1.52212980e+03 + 1.54267395e+03 1.56349538e+03 1.58459784e+03 1.60598512e+03 1.62766107e+03 + 1.64962957e+03 1.67189458e+03 1.69446010e+03 1.71733019e+03 1.74050895e+03 + 1.76400056e+03 1.78780923e+03 1.81193925e+03 1.83639495e+03 1.86118073e+03 + 1.88630105e+03 1.91176041e+03 1.93756339e+03 1.96371464e+03 1.99021885e+03 + 2.01708078e+03 2.04430527e+03 2.07189721e+03 2.09986156e+03 2.12820334e+03 + 2.15692765e+03 2.18603965e+03 2.21554458e+03 2.24544773e+03 2.27575449e+03 + 2.30647029e+03 2.33760066e+03 2.36915120e+03 2.40112758e+03 2.43353554e+03 + 2.46638092e+03 2.49966960e+03 2.53340758e+03 2.56760092e+03 2.60225577e+03 + 2.63737835e+03 2.67297499e+03 2.70905207e+03 2.74561608e+03 2.78267359e+03 + 2.82023127e+03 2.85829587e+03 2.89687422e+03 2.93597326e+03 2.97560002e+03 + 3.01576162e+03 3.05646529e+03 3.09771833e+03 3.13952816e+03 3.18190229e+03 + 3.22484835e+03 3.26837405e+03 3.31248722e+03 3.35719578e+03 3.40250777e+03 + 3.44843134e+03 3.49497473e+03 3.54214633e+03 3.58995459e+03 3.63840812e+03 + 3.68751563e+03 3.73728594e+03 3.78772800e+03 3.83885087e+03 3.89066375e+03 + 3.94317595e+03 3.99639690e+03 4.05033617e+03 4.10500346e+03 4.16040860e+03 + 4.21656153e+03 4.27347236e+03 4.33115132e+03 4.38960877e+03 4.44885521e+03 + 4.50890130e+03 4.56975784e+03 4.63143575e+03 4.69394613e+03 4.75730021e+03 + 4.82150937e+03 4.88658517e+03 4.95253929e+03 5.01938360e+03 5.08713010e+03 + 5.15579097e+03 5.22537856e+03 5.29590537e+03 5.36738408e+03 5.43982754e+03 + 5.51324876e+03 5.58766095e+03 5.66307747e+03 5.73951189e+03 5.81697795e+03 + 5.89548956e+03 5.97506084e+03 6.05570610e+03 6.13743982e+03 6.22027670e+03 + 6.30423162e+03 6.38931969e+03 6.47555618e+03 6.56295661e+03 6.65153668e+03 + 6.74131231e+03 6.83229964e+03 6.92451503e+03 7.01797504e+03 7.11269648e+03 + 7.20869638e+03 7.30599198e+03 7.40460078e+03 7.50454050e+03 7.60582911e+03 + 7.70848480e+03 7.81252604e+03 7.91797151e+03 8.02484019e+03 8.13315126e+03 + 8.24292421e+03 8.35417876e+03 8.46693492e+03 8.58121294e+03 8.69703336e+03 + 8.81441701e+03 8.93338499e+03 9.05395867e+03 9.17615974e+03 9.30001015e+03 + 9.42553216e+03 9.55274835e+03 9.68168156e+03 9.81235499e+03 9.94479211e+03 + 1.00790167e+04 1.02150530e+04 1.03529253e+04 1.04926585e+04 1.06342777e+04 + 1.07778082e+04 1.09232761e+04 1.10707073e+04 1.12201283e+04 1.13715661e+04 + 1.15250479e+04 1.16806012e+04 1.18382540e+04 1.19980346e+04 1.21599718e+04 + 1.23240947e+04 1.24904327e+04 1.26590157e+04 1.28298742e+04 1.30030387e+04 + 1.31785404e+04 1.33564108e+04 1.35366820e+04 1.37193863e+04 1.39045565e+04 + 1.40922260e+04 1.42824284e+04 1.44751980e+04 1.46705694e+04 1.48685777e+04 + 1.50692586e+04 1.52726480e+04 1.54787826e+04 1.56876993e+04 1.58994358e+04 + 1.61140301e+04 1.63315208e+04 1.65519470e+04 1.67753482e+04 1.70017647e+04 + 1.72312371e+04 1.74638067e+04 1.76995153e+04 1.79384052e+04 1.81805194e+04 + 1.84259015e+04 1.86745954e+04 1.89266460e+04 1.91820985e+04 1.94409988e+04 + 1.97033935e+04 1.99693297e+04 2.02388553e+04 2.05120186e+04 2.07888689e+04 + 2.10694557e+04 2.13538297e+04 2.16420418e+04 2.19341439e+04 2.22301885e+04 + 2.25302289e+04 2.28343188e+04 2.31425131e+04 2.34548670e+04 2.37714368e+04 + 2.40922793e+04 2.44174522e+04 2.47470140e+04 2.50810239e+04 2.54195419e+04 + 2.57626288e+04 2.61103464e+04 2.64627571e+04 2.68199243e+04 2.71819122e+04 + 2.75487858e+04 2.79206111e+04 2.82974550e+04 2.86793850e+04 2.90664700e+04 + 2.94587795e+04 2.98563839e+04 3.02593548e+04 3.06677646e+04 3.10816867e+04 + 3.15011955e+04 3.19263663e+04 3.23572758e+04 3.27940011e+04 3.32366210e+04 + 3.36852149e+04 3.41398634e+04 3.46006483e+04 3.50676525e+04 3.55409597e+04 + 3.60206552e+04 3.65068251e+04 3.69995569e+04 3.74989390e+04 3.80050613e+04 + 3.85180147e+04 3.90378914e+04 3.95647849e+04 4.00987899e+04 4.06400023e+04 + 4.11885195e+04 4.17444399e+04 4.23078636e+04 4.28788919e+04 4.34576272e+04 + 4.40441738e+04 4.46386370e+04 4.52411236e+04 4.58517419e+04 4.64706018e+04 + 4.70978144e+04 4.77334925e+04 4.83777503e+04 4.90307037e+04 4.96924699e+04 + 5.03631680e+04 5.10429184e+04 5.17318435e+04 5.24300670e+04 5.31377143e+04 + 5.38549128e+04 5.45817913e+04 5.53184804e+04 5.60651126e+04 5.68218221e+04 + 5.75887449e+04 5.83660188e+04 5.91537836e+04 5.99521808e+04 6.07613539e+04 + 6.15814485e+04 6.24126118e+04 6.32549933e+04 6.41087445e+04 6.49740187e+04 + 6.58509715e+04 6.67397605e+04 6.76405454e+04 6.85534882e+04 6.94787530e+04 + 7.04165061e+04 7.13669160e+04 7.23301536e+04 7.33063919e+04 7.42958066e+04 + 7.52985753e+04 7.63148784e+04 7.73448985e+04 7.83888207e+04 7.94468328e+04 + 8.05191248e+04 8.16058895e+04 8.27073222e+04 8.38236210e+04 8.49549864e+04 + 8.61016218e+04 8.72637334e+04 8.84415299e+04 8.96352231e+04 9.08450276e+04 + 9.20711608e+04 9.33138430e+04 9.45732977e+04 9.58497513e+04 9.71434331e+04 + 9.84545757e+04 9.97834147e+04 1.01130189e+05 1.02495141e+05 1.03878515e+05 + 1.05280561e+05 1.06701530e+05 1.08141678e+05 1.09601264e+05 1.11080550e+05 + 1.12579801e+05 1.14099288e+05 1.15639284e+05 1.17200064e+05 1.18781911e+05 + 1.20385107e+05 1.22009942e+05 1.23656707e+05 1.25325699e+05 1.27017217e+05 + 1.28731565e+05 1.30469052e+05 1.32229990e+05 1.34014695e+05 1.35823488e+05 + 1.37656695e+05 1.39514644e+05 1.41397670e+05 1.43306110e+05 1.45240310e+05 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 4.46340243e-06 4.52364487e-06 4.58470040e-06 4.64657999e-06 4.70929477e-06 + 4.77285601e-06 4.83727513e-06 4.90256372e-06 4.96873350e-06 5.03579638e-06 + 5.10376441e-06 5.17264979e-06 5.24246492e-06 5.31322235e-06 5.38493478e-06 + 5.45761512e-06 5.53127642e-06 5.60593193e-06 5.68159506e-06 5.75827941e-06 + 5.83599877e-06 5.91476711e-06 5.99459858e-06 6.07550753e-06 6.15750851e-06 + 6.24061626e-06 6.32484571e-06 6.41021200e-06 6.49673048e-06 6.58441669e-06 + 6.67328641e-06 6.76335560e-06 6.85464044e-06 6.94715736e-06 7.04092298e-06 + 7.13595415e-06 7.23226795e-06 7.32988170e-06 7.42881294e-06 7.52907945e-06 + 7.63069926e-06 7.73369062e-06 7.83807206e-06 7.94386233e-06 8.05108045e-06 + 8.15974569e-06 8.26987759e-06 8.38149593e-06 8.49462078e-06 8.60927247e-06 + 8.72547162e-06 8.84323910e-06 8.96259609e-06 9.08356403e-06 9.20616468e-06 + 9.33042007e-06 9.45635252e-06 9.58398469e-06 9.71333950e-06 9.84444021e-06 + 9.97731039e-06 1.01119739e-05 1.02484550e-05 1.03867781e-05 1.05269682e-05 + 1.06690505e-05 1.08130504e-05 1.09589939e-05 1.11069072e-05 1.12568168e-05 + 1.14087498e-05 1.15627334e-05 1.17187954e-05 1.18769637e-05 1.20372668e-05 + 1.21997335e-05 1.23643930e-05 1.25312749e-05 1.27004092e-05 1.28718263e-05 + 1.30455571e-05 1.32216326e-05 1.34000847e-05 1.35809453e-05 1.37642470e-05 + 1.39500227e-05 1.41383059e-05 1.43291302e-05 1.45225302e-05 1.47185404e-05 + 1.49171962e-05 1.51185332e-05 1.53225877e-05 1.55293963e-05 1.57389962e-05 + 1.59514251e-05 1.61667211e-05 1.63849229e-05 1.66060698e-05 1.68302016e-05 + 1.70573584e-05 1.72875812e-05 1.75209112e-05 1.77573905e-05 1.79970616e-05 + 1.82399675e-05 1.84861519e-05 1.87356591e-05 1.89885338e-05 1.92448216e-05 + 1.95045685e-05 1.97678212e-05 2.00346270e-05 2.03050339e-05 2.05790905e-05 + 2.08568460e-05 2.11383503e-05 2.14236541e-05 2.17128087e-05 2.20058659e-05 + 2.23028786e-05 2.26039000e-05 2.29089843e-05 2.32181863e-05 2.35315616e-05 + 2.38491666e-05 2.41710582e-05 2.44972944e-05 2.48279338e-05 2.51630358e-05 + 2.55026607e-05 2.58468695e-05 2.61957241e-05 2.65492872e-05 2.69076223e-05 + 2.72707938e-05 2.76388671e-05 2.80119082e-05 2.83899842e-05 2.87731632e-05 + 2.91615139e-05 2.95551061e-05 2.99540107e-05 3.03582993e-05 3.07680445e-05 + 3.11833201e-05 3.16042006e-05 3.20307617e-05 3.24630802e-05 3.29012336e-05 + 3.33453008e-05 3.37953615e-05 3.42514967e-05 3.47137883e-05 3.51823195e-05 + 3.56571744e-05 3.61384384e-05 3.66261981e-05 3.71205410e-05 3.76215561e-05 + 3.81293333e-05 3.86439640e-05 3.91655407e-05 3.96941570e-05 4.02299081e-05 + 4.07728902e-05 4.13232010e-05 4.18809392e-05 4.24462053e-05 4.30191007e-05 + 4.35997285e-05 4.41881930e-05 4.47846000e-05 4.53890566e-05 4.60016716e-05 + 4.66225551e-05 4.72518186e-05 4.78895753e-05 4.85359398e-05 4.91910282e-05 + 4.98549583e-05 5.05278495e-05 5.12098227e-05 5.19010004e-05 5.26015070e-05 + 5.33114683e-05 5.40310119e-05 5.47602672e-05 5.54993652e-05 5.62484388e-05 + 5.70076227e-05 5.77770532e-05 5.85568687e-05 5.93472093e-05 6.01482172e-05 + 6.09600363e-05 6.17828124e-05 6.26166936e-05 6.34618296e-05 6.43183724e-05 + 6.51864759e-05 6.60662962e-05 6.69579915e-05 6.78617219e-05 6.87776499e-05 + 6.97059402e-05 7.06467597e-05 7.16002773e-05 7.25666645e-05 7.35460951e-05 + 7.45387450e-05 7.55447926e-05 7.65644189e-05 7.75978070e-05 7.86451428e-05 + 7.97066144e-05 8.07824127e-05 8.18727310e-05 8.29777653e-05 8.40977142e-05 + 8.52327790e-05 8.63831638e-05 8.75490753e-05 8.87307231e-05 8.99283196e-05 + 9.11420799e-05 9.23722224e-05 9.36189681e-05 9.48825411e-05 9.61631685e-05 + 9.74610805e-05 9.87765104e-05 1.00109695e-04 1.01460873e-04 1.02830288e-04 + 1.04218186e-04 1.05624816e-04 1.07050432e-04 1.08495289e-04 1.09959647e-04 + 1.11443770e-04 1.12947924e-04 1.14472379e-04 1.16017410e-04 1.17583294e-04 + 1.19170313e-04 1.20778752e-04 1.22408900e-04 1.24061050e-04 1.25735499e-04 + 1.27432548e-04 1.29152502e-04 1.30895670e-04 1.32662366e-04 1.34452907e-04 + 1.36267615e-04 1.38106815e-04 1.39970840e-04 1.41860023e-04 1.43774704e-04 + 1.45715228e-04 1.47681943e-04 1.49675203e-04 1.51695365e-04 1.53742794e-04 + 1.55817857e-04 1.57920927e-04 1.60052382e-04 1.62212605e-04 1.64401985e-04 + 1.66620914e-04 1.68869793e-04 1.71149024e-04 1.73459019e-04 1.75800191e-04 + 1.78172962e-04 1.80577758e-04 1.83015012e-04 1.85485161e-04 1.87988650e-04 + 1.90525928e-04 1.93097452e-04 1.95703684e-04 1.98345092e-04 2.01022151e-04 + 2.03735342e-04 2.06485153e-04 2.09272078e-04 2.12096618e-04 2.14959281e-04 + 2.17860582e-04 2.20801041e-04 2.23781187e-04 2.26801557e-04 2.29862692e-04 + 2.32965143e-04 2.36109468e-04 2.39296232e-04 2.42526007e-04 2.45799375e-04 + 2.49116923e-04 2.52479249e-04 2.55886955e-04 2.59340655e-04 2.62840970e-04 + 2.66388528e-04 2.69983968e-04 2.73627935e-04 2.77321085e-04 2.81064081e-04 + 2.84857596e-04 2.88702312e-04 2.92598920e-04 2.96548121e-04 3.00550624e-04 + 3.04607148e-04 3.08718424e-04 3.12885189e-04 3.17108193e-04 3.21388195e-04 + 3.25725964e-04 3.30122279e-04 3.34577932e-04 3.39093722e-04 3.43670462e-04 + 3.48308974e-04 3.53010092e-04 3.57774661e-04 3.62603537e-04 3.67497588e-04 + 3.72457694e-04 3.77484747e-04 3.82579649e-04 3.87743318e-04 3.92976680e-04 + 3.98280677e-04 4.03656262e-04 4.09104401e-04 4.14626073e-04 4.20222271e-04 + 4.25894001e-04 4.31642283e-04 4.37468148e-04 4.43372645e-04 4.49356835e-04 + 4.55421794e-04 4.61568611e-04 4.67798392e-04 4.74112255e-04 4.80511337e-04 + 4.86996787e-04 4.93569771e-04 5.00231471e-04 5.06983083e-04 5.13825821e-04 + 5.20760916e-04 5.27789614e-04 5.34913178e-04 5.42132888e-04 5.49450043e-04 + 5.56865957e-04 5.64381964e-04 5.71999414e-04 5.79719676e-04 5.87544139e-04 + 5.95474208e-04 6.03511309e-04 6.11656887e-04 6.19912405e-04 6.28279348e-04 + 6.36759220e-04 6.45353544e-04 6.54063865e-04 6.62891749e-04 6.71838784e-04 + 6.80906576e-04 6.90096755e-04 6.99410975e-04 7.08850908e-04 7.18418252e-04 + 7.28114726e-04 7.37942073e-04 7.47902060e-04 7.57996476e-04 7.68227136e-04 + 7.78595880e-04 7.89104570e-04 7.99755095e-04 8.10549371e-04 8.21489336e-04 + 8.32576958e-04 8.43814230e-04 8.55203170e-04 8.66745827e-04 8.78444275e-04 + 8.90300616e-04 9.02316982e-04 9.14495533e-04 9.26838458e-04 9.39347974e-04 + 9.52026331e-04 9.64875808e-04 9.77898714e-04 9.91097390e-04 1.00447421e-03 + 1.01803157e-03 1.03177192e-03 1.04569772e-03 1.05981148e-03 1.07411573e-03 + 1.08861304e-03 1.10330603e-03 1.11819732e-03 1.13328960e-03 1.14858559e-03 + 1.16408802e-03 1.17979969e-03 1.19572342e-03 1.21186207e-03 1.22821854e-03 + 1.24479578e-03 1.26159676e-03 1.27862450e-03 1.29588206e-03 1.31337255e-03 + 1.33109911e-03 1.34906492e-03 1.36727322e-03 1.38572727e-03 1.40443040e-03 + 1.42338596e-03 1.44259737e-03 1.46206807e-03 1.48180157e-03 1.50180141e-03 + 1.52207119e-03 1.54261455e-03 1.56343518e-03 1.58453683e-03 1.60592328e-03 + 1.62759839e-03 1.64956605e-03 1.67183020e-03 1.69439485e-03 1.71726406e-03 + 1.74044193e-03 1.76393264e-03 1.78774039e-03 1.81186948e-03 1.83632424e-03 + 1.86110907e-03 1.88622841e-03 1.91168679e-03 1.93748878e-03 1.96363902e-03 + 1.99014221e-03 2.01700311e-03 2.04422656e-03 2.07181743e-03 2.09978070e-03 + 2.12812139e-03 2.15684460e-03 2.18595548e-03 2.21545927e-03 2.24536127e-03 + 2.27566685e-03 2.30638148e-03 2.33751065e-03 2.36905998e-03 2.40103512e-03 + 2.43344184e-03 2.46628594e-03 2.49957335e-03 2.53331003e-03 2.56750205e-03 + 2.60215557e-03 2.63727680e-03 2.67287206e-03 2.70894775e-03 2.74551035e-03 + 2.78256644e-03 2.82012268e-03 2.85818580e-03 2.89676267e-03 2.93586021e-03 + 2.97548544e-03 3.01564550e-03 3.05634759e-03 3.09759904e-03 3.13940726e-03 + 3.18177977e-03 3.22472418e-03 3.26824820e-03 3.31235967e-03 3.35706651e-03 + 3.40237675e-03 3.44829855e-03 3.49484016e-03 3.54200993e-03 3.58981635e-03 + 3.63826802e-03 3.68737364e-03 3.73714203e-03 3.78758215e-03 3.83870305e-03 + 3.89051394e-03 3.94302411e-03 3.99624301e-03 4.05018021e-03 4.10484540e-03 + 4.16024840e-03 4.21639917e-03 4.27330781e-03 4.33098454e-03 4.38943974e-03 + 4.44868390e-03 4.50872768e-03 4.56958187e-03 4.63125741e-03 4.69376538e-03 + 4.75711702e-03 4.82132372e-03 4.88639701e-03 4.95234859e-03 5.01919032e-03 + 5.08693421e-03 5.15559244e-03 5.22517735e-03 5.29570145e-03 5.36717740e-03 + 5.43961807e-03 5.51303646e-03 5.58744578e-03 5.66285941e-03 5.73929089e-03 + 5.81675396e-03 5.89526255e-03 5.97483077e-03 6.05547291e-03 6.13720349e-03 + 6.22003718e-03 6.30398887e-03 6.38907366e-03 6.47530683e-03 6.56270389e-03 + 6.65128055e-03 6.74105273e-03 6.83203656e-03 6.92424839e-03 7.01770481e-03 + 7.11242260e-03 7.20841880e-03 7.30571066e-03 7.40431566e-03 7.50425153e-03 + 7.60553623e-03 7.70818798e-03 7.81222521e-03 7.91766662e-03 8.02453118e-03 + 8.13283809e-03 8.24260681e-03 8.35385708e-03 8.46660889e-03 8.58088250e-03 + 8.69669847e-03 8.81407760e-03 8.93304100e-03 9.05361004e-03 9.17580640e-03 + 9.29965204e-03 9.42516922e-03 9.55238051e-03 9.68130876e-03 9.81197715e-03 + 9.94440917e-03 1.00786286e-02 1.02146596e-02 1.03525267e-02 1.04922545e-02 + 1.06338682e-02 1.07773932e-02 1.09228555e-02 1.10702810e-02 1.12196963e-02 + 1.13711283e-02 1.15246041e-02 1.16801514e-02 1.18377981e-02 1.19975726e-02 + 1.21595036e-02 1.23236201e-02 1.24899517e-02 1.26585283e-02 1.28293801e-02 + 1.30025380e-02 1.31780329e-02 1.33558965e-02 1.35361607e-02 1.37188580e-02 + 1.39040211e-02 1.40916833e-02 1.42818784e-02 1.44746406e-02 1.46700045e-02 + 1.48680052e-02 1.50686783e-02 1.52720599e-02 1.54781865e-02 1.56870952e-02 + 1.58988236e-02 1.61134096e-02 1.63308919e-02 1.65513096e-02 1.67747022e-02 + 1.70011100e-02 1.72305736e-02 1.74631342e-02 1.76988337e-02 1.79377144e-02 + 1.81798193e-02 1.84251919e-02 1.86738763e-02 1.89259172e-02 1.91813598e-02 + 1.94402502e-02 1.97026348e-02 1.99685608e-02 2.02380760e-02 2.05112288e-02 + 2.07880684e-02 2.10686444e-02 2.13530074e-02 2.16412084e-02 2.19332993e-02 + 2.22293325e-02 2.25293613e-02 2.28334396e-02 2.31416219e-02 2.34539639e-02 + 2.37705215e-02 2.40913516e-02 2.44165120e-02 2.47460611e-02 2.50800581e-02 + 2.54185630e-02 2.57616368e-02 2.61093410e-02 2.64617381e-02 2.68188916e-02 + 2.71808655e-02 2.75477250e-02 2.79195360e-02 2.82963653e-02 2.86782807e-02 + 2.90653508e-02 2.94576451e-02 2.98552342e-02 3.02581896e-02 3.06665837e-02 + 3.10804898e-02 3.14999825e-02 3.19251370e-02 3.23560298e-02 3.27927384e-02 + 3.32353412e-02 3.36839178e-02 3.41385488e-02 3.45993160e-02 3.50663021e-02 + 3.55395912e-02 3.60192682e-02 3.65054194e-02 3.69981322e-02 3.74974951e-02 + 3.80035979e-02 3.85165315e-02 3.90363882e-02 3.95632614e-02 4.00972458e-02 + 4.06384374e-02 4.11869334e-02 4.17428325e-02 4.23062345e-02 4.28772407e-02 + 4.34559538e-02 4.40424778e-02 4.46369181e-02 4.52393815e-02 4.58499764e-02 + 4.64688124e-02 4.70960009e-02 4.77316545e-02 4.83758875e-02 4.90288157e-02 + 4.96905564e-02 5.03612287e-02 5.10409530e-02 5.17298515e-02 5.24280481e-02 + 5.31356682e-02 5.38528390e-02 5.45796895e-02 5.53163503e-02 5.60629537e-02 + 5.68196341e-02 5.75865273e-02 5.83637713e-02 5.91515058e-02 5.99498722e-02 + 6.07590142e-02 6.15790772e-02 6.24102085e-02 6.32525576e-02 6.41062759e-02 + 6.49715168e-02 6.58484358e-02 6.67371905e-02 6.76379408e-02 6.85508485e-02 + 6.94760777e-02 7.04137946e-02 7.13641679e-02 7.23273684e-02 7.33035692e-02 + 7.42929457e-02 7.52956758e-02 7.63119398e-02 7.73419202e-02 7.83858022e-02 + 7.94437736e-02 8.05160243e-02 8.16027471e-02 8.27041375e-02 8.38203932e-02 + 8.49517151e-02 8.60983064e-02 8.72603732e-02 8.84381243e-02 8.96317716e-02 + 9.08415295e-02 9.20676154e-02 9.33102498e-02 9.45696561e-02 9.58460605e-02 + 9.71396924e-02 9.84507846e-02 9.97795725e-02 1.01126295e-01 1.02491194e-01 + 1.03874515e-01 1.05276507e-01 1.06697422e-01 1.08137514e-01 1.09597044e-01 + 1.11076272e-01 1.12575466e-01 1.14094895e-01 1.15634831e-01 1.17195551e-01 + 1.18777337e-01 1.20380472e-01 1.22005244e-01 1.23651946e-01 1.25320873e-01 + 1.27012326e-01 1.28726608e-01 1.30464028e-01 1.32224898e-01 1.34009535e-01 + 1.35818258e-01 1.37651394e-01 1.39509271e-01 1.41392225e-01 1.43300592e-01 + 1.45234717e-01 1.47194946e-01 1.49181633e-01 1.51195134e-01 1.53235811e-01 + 1.55304031e-01 1.57400166e-01 1.59524592e-01 1.61677692e-01 1.63859852e-01 + 1.66071465e-01 1.68312927e-01 1.70584643e-01 1.72887020e-01 1.75220472e-01 + 1.77585418e-01 1.79982284e-01 1.82411501e-01 1.84873504e-01 1.87368738e-01 + 1.89897649e-01 1.92460693e-01 1.95058331e-01 1.97691028e-01 2.00359259e-01 + 2.03063503e-01 2.05804247e-01 2.08581982e-01 2.11397208e-01 2.14250431e-01 + 2.17142164e-01 2.20072926e-01 2.23043245e-01 2.26053655e-01 2.29104696e-01 + 2.32196916e-01 2.35330873e-01 2.38507128e-01 2.41726253e-01 2.44988826e-01 + 2.48295435e-01 2.51646672e-01 2.55043141e-01 2.58485452e-01 2.61974224e-01 + 2.65510084e-01 2.69093668e-01 2.72725618e-01 2.76406590e-01 2.80137243e-01 + 2.83918248e-01 2.87750286e-01 2.91634045e-01 2.95570223e-01 2.99559527e-01 + 3.03602675e-01 3.07700393e-01 3.11853418e-01 3.16062496e-01 3.20328384e-01 + 3.24651848e-01 3.29033667e-01 3.33474626e-01 3.37975525e-01 3.42537173e-01 + 3.47160389e-01 3.51846004e-01 3.56594862e-01 3.61407814e-01 3.66285727e-01 + 3.71229476e-01 3.76239952e-01 3.81318053e-01 3.86464694e-01 3.91680799e-01 + 3.96967305e-01 4.02325164e-01 4.07755337e-01 4.13258801e-01 4.18836545e-01 + 4.24489572e-01 4.30218897e-01 4.36025552e-01 4.41910578e-01 4.47875035e-01 + 4.53919993e-01 4.60046541e-01 4.66255778e-01 4.72548821e-01 4.78926801e-01 + 4.85390865e-01 4.91942174e-01 4.98581905e-01 5.05311254e-01 5.12131428e-01 + 5.19043653e-01 5.26049173e-01 5.33149246e-01 5.40345149e-01 5.47638174e-01 + 5.55029634e-01 5.62520856e-01 5.70113186e-01 5.77807990e-01 5.85606651e-01 + 5.93510570e-01 6.01521168e-01 6.09639885e-01 6.17868180e-01 6.26207532e-01 + 6.34659440e-01 6.43225423e-01 6.51907022e-01 6.60705795e-01 6.69623325e-01 + 6.78661216e-01 6.87821090e-01 6.97104595e-01 7.06513399e-01 7.16049193e-01 + 7.25713692e-01 7.35508633e-01 7.45435775e-01 7.55496904e-01 7.65693828e-01 + 7.76028379e-01 7.86502415e-01 7.97117820e-01 8.07876500e-01 8.18780390e-01 + 8.29831449e-01 8.41031665e-01 8.52383049e-01 8.63887643e-01 8.75547514e-01 + 8.87364758e-01 8.99341499e-01 9.11479889e-01 9.23782112e-01 9.36250377e-01 + 9.48886926e-01 9.61694030e-01 9.74673991e-01 9.87829143e-01 1.00116185e+00 + 1.01467451e+00 1.02836954e+00 1.04224942e+00 1.05631664e+00 1.07057372e+00 + 1.08502323e+00 1.09966776e+00 1.11450995e+00 1.12955246e+00 1.14479801e+00 + 1.16024932e+00 1.17590918e+00 1.19178039e+00 1.20786583e+00 1.22416836e+00 + 1.24069093e+00 1.25743651e+00 1.27440810e+00 1.29160876e+00 1.30904157e+00 + 1.32670967e+00 1.34461624e+00 1.36276449e+00 1.38115769e+00 1.39979915e+00 + 1.41869220e+00 1.43784026e+00 1.45724675e+00 1.47691518e+00 1.49684907e+00 + 1.51705200e+00 1.53752762e+00 1.55827959e+00 1.57931165e+00 1.60062758e+00 + 1.62223122e+00 1.64412643e+00 1.66631717e+00 1.68880741e+00 1.71160120e+00 + 1.73470264e+00 1.75811589e+00 1.78184513e+00 1.80589465e+00 1.83026877e+00 + 1.85497187e+00 1.88000838e+00 1.90538281e+00 1.93109971e+00 1.95716372e+00 + 1.98357951e+00 2.01035184e+00 2.03748551e+00 2.06498540e+00 2.09285646e+00 + 2.12110369e+00 2.14973218e+00 2.17874706e+00 2.20815356e+00 2.23795696e+00 + 2.26816261e+00 2.29877594e+00 2.32980247e+00 2.36124776e+00 2.39311746e+00 + 2.42541731e+00 2.45815311e+00 2.49133074e+00 2.52495618e+00 2.55903545e+00 + 2.59357469e+00 2.62858010e+00 2.66405799e+00 2.70001472e+00 2.73645675e+00 + 2.77339064e+00 2.81082303e+00 2.84876064e+00 2.88721029e+00 2.92617890e+00 + 2.96567347e+00 3.00570109e+00 3.04626897e+00 3.08738439e+00 3.12905474e+00 + 3.17128752e+00 3.21409031e+00 3.25747081e+00 3.30143682e+00 3.34599623e+00 + 3.39115706e+00 3.43692743e+00 3.48331556e+00 3.53032979e+00 3.57797856e+00 + 3.62627045e+00 3.67521414e+00 3.72481842e+00 3.77509220e+00 3.82604453e+00 + 3.87768456e+00 3.93002158e+00 3.98306499e+00 4.03682432e+00 4.09130924e+00 + 4.14652955e+00 4.20249516e+00 4.25921613e+00 4.31670267e+00 4.37496510e+00 + 4.43401390e+00 4.49385968e+00 4.55451320e+00 4.61598536e+00 4.67828720e+00 + 4.74142993e+00 4.80542490e+00 4.87028361e+00 4.93601771e+00 5.00263902e+00 + 5.07015952e+00 5.13859134e+00 5.20794679e+00 5.27823832e+00 5.34947858e+00 + 5.42168036e+00 5.49485665e+00 5.56902060e+00 5.64418554e+00 5.72036498e+00 + 5.79757261e+00 5.87582231e+00 5.95512814e+00 6.03550436e+00 6.11696542e+00 + 6.19952596e+00 6.28320081e+00 6.36800502e+00 6.45395384e+00 6.54106270e+00 + 6.62934727e+00 6.71882341e+00 6.80950721e+00 6.90141496e+00 6.99456320e+00 + 7.08896865e+00 7.18464829e+00 7.28161932e+00 7.37989916e+00 7.47950548e+00 + 7.58045619e+00 7.68276943e+00 7.78646358e+00 7.89155730e+00 7.99806946e+00 + 8.10601921e+00 8.21542596e+00 8.32630937e+00 8.43868936e+00 8.55258615e+00 + 8.66802020e+00 8.78501227e+00 8.90358337e+00 9.02375482e+00 9.14554822e+00 + 9.26898547e+00 9.39408875e+00 9.52088054e+00 9.64938364e+00 9.77962114e+00 + 9.91161645e+00 1.00453933e+01 1.01809757e+01 1.03183881e+01 1.04576552e+01 + 1.05988019e+01 1.07418537e+01 1.08868362e+01 1.10337756e+01 1.11826982e+01 + 1.13336308e+01 1.14866005e+01 1.16416349e+01 1.17987618e+01 1.19580094e+01 + 1.21194064e+01 1.22829817e+01 1.24487648e+01 1.26167855e+01 1.27870739e+01 + 1.29596608e+01 1.31345770e+01 1.33118541e+01 1.34915238e+01 1.36736186e+01 + 1.38581711e+01 1.40452145e+01 1.42347825e+01 1.44269090e+01 1.46216286e+01 + 1.48189764e+01 1.50189878e+01 1.52216987e+01 1.54271456e+01 1.56353654e+01 + 1.58463956e+01 1.60602740e+01 1.62770391e+01 1.64967299e+01 1.67193859e+01 + 1.69450471e+01 1.71737540e+01 1.74055477e+01 1.76404700e+01 1.78785630e+01 + 1.81198695e+01 1.83644330e+01 1.86122973e+01 1.88635070e+01 1.91181073e+01 + 1.93761439e+01 1.96376633e+01 1.99027124e+01 2.01713388e+01 2.04435909e+01 + 2.07195175e+01 2.09991684e+01 2.12825937e+01 2.15698443e+01 2.18609720e+01 + 2.21560290e+01 2.24550684e+01 2.27581439e+01 2.30653100e+01 2.33766220e+01 + 2.36921357e+01 2.40119079e+01 2.43359960e+01 2.46644584e+01 2.49973540e+01 + 2.53347427e+01 2.56766851e+01 2.60232427e+01 2.63744778e+01 2.67304535e+01 + 2.70912338e+01 2.74568835e+01 2.78274684e+01 2.82030551e+01 2.85837111e+01 + 2.89695047e+01 2.93605055e+01 2.97567835e+01 3.01584101e+01 3.05654574e+01 + 3.09779987e+01 3.13961080e+01 3.18198605e+01 3.22493324e+01 3.26846009e+01 + 3.31257442e+01 3.35728416e+01 3.40259734e+01 3.44852212e+01 3.49506674e+01 + 3.54223957e+01 3.59004909e+01 3.63850390e+01 3.68761270e+01 3.73738432e+01 + 3.78782771e+01 3.83895193e+01 3.89076617e+01 3.94327975e+01 3.99650210e+01 + 4.05044279e+01 4.10511152e+01 4.16051812e+01 4.21667253e+01 4.27358486e+01 + 4.33126533e+01 4.38972432e+01 4.44897232e+01 4.50902000e+01 4.56987813e+01 + 4.63155767e+01 4.69406969e+01 4.75742544e+01 4.82163629e+01 4.88671380e+01 + 4.95266966e+01 5.01951573e+01 5.08726401e+01 5.15592669e+01 5.22551611e+01 + 5.29604478e+01 5.36752537e+01 5.43997073e+01 5.51339389e+01 5.58780803e+01 + 5.66322655e+01 5.73966298e+01 5.81713107e+01 5.89564475e+01 5.97521813e+01 + 6.05586551e+01 6.13760138e+01 6.22044044e+01 6.30439758e+01 6.38948788e+01 + 6.47572664e+01 6.56312937e+01 6.65171177e+01 6.74148977e+01 6.83247950e+01 + 6.92469731e+01 7.01815978e+01 7.11288372e+01 7.20888614e+01 7.30618430e+01 + 7.40479570e+01 7.50473805e+01 7.60602932e+01 7.70868772e+01 7.81273169e+01 + 7.91817995e+01 8.02505143e+01 8.13336536e+01 8.24314120e+01 8.35439868e+01 + 8.46715780e+01 8.58143883e+01 8.69726230e+01 8.81464904e+01 8.93362015e+01 + 9.05419701e+01 9.17640129e+01 9.30025496e+01 9.42578028e+01 9.55299981e+01 + 9.68193642e+01 9.81261329e+01 9.94505390e+01 1.00792821e+02 1.02153219e+02 + 1.03531978e+02 1.04929347e+02 1.06345576e+02 1.07780920e+02 1.09235636e+02 + 1.10709987e+02 1.12204237e+02 1.13718655e+02 1.15253513e+02 1.16809087e+02 + 1.18385656e+02 1.19983505e+02 1.21602919e+02 1.23244191e+02 1.24907615e+02 + 1.26593490e+02 1.28302119e+02 1.30033810e+02 1.31788873e+02 1.33567624e+02 + 1.35370383e+02 1.37197474e+02 1.39049225e+02 1.40925969e+02 1.42828044e+02 + 1.44755790e+02 1.46709556e+02 1.48689691e+02 1.50696552e+02 1.52730500e+02 + 1.54791900e+02 1.56881123e+02 1.58998544e+02 1.61144543e+02 1.63319507e+02 + 1.65523827e+02 1.67757898e+02 1.70022122e+02 1.72316907e+02 1.74642664e+02 + 1.76999812e+02 1.79388774e+02 1.81809980e+02 1.84263865e+02 1.86750870e+02 + 1.89271442e+02 1.91826034e+02 1.94415106e+02 1.97039122e+02 1.99698554e+02 + 2.02393881e+02 2.05125586e+02 2.07894161e+02 2.10700104e+02 2.13543918e+02 + 2.16426115e+02 2.19347213e+02 2.22307737e+02 2.25308219e+02 2.28349199e+02 + 2.31431223e+02 2.34554845e+02 2.37720626e+02 2.40929135e+02 2.44180950e+02 + 2.47476655e+02 2.50816841e+02 2.54202110e+02 2.57633070e+02 2.61110337e+02 + 2.64634537e+02 2.68206303e+02 2.71826277e+02 2.75495110e+02 2.79213461e+02 + 2.82981999e+02 2.86801400e+02 2.90672351e+02 2.94595549e+02 2.98571698e+02 + 3.02601513e+02 3.06685719e+02 3.10825049e+02 3.15020247e+02 3.19272068e+02 + 3.23581275e+02 3.27948644e+02 3.32374959e+02 3.36861016e+02 3.41407621e+02 + 3.46015592e+02 3.50685756e+02 3.55418953e+02 3.60216034e+02 3.65077861e+02 + 3.70005309e+02 3.74999261e+02 3.80060618e+02 3.85190287e+02 3.90389191e+02 + 3.95658264e+02 4.00998455e+02 4.06410721e+02 4.11896037e+02 4.17455388e+02 + 4.23089773e+02 4.28800206e+02 4.34587712e+02 4.40453332e+02 4.46398120e+02 + 4.52423145e+02 4.58529489e+02 4.64718251e+02 4.70990542e+02 4.77347490e+02 + 4.83790238e+02 4.90319943e+02 4.96937780e+02 5.03644937e+02 5.10442621e+02 + 5.17332053e+02 5.24314471e+02 5.31391131e+02 5.38563305e+02 5.45832281e+02 + 5.53199366e+02 5.60665885e+02 5.68233179e+02 5.75902608e+02 5.83675552e+02 + 5.91553407e+02 5.99537589e+02 6.07629534e+02 6.15830695e+02 6.24142548e+02 + 6.32566585e+02 6.41104321e+02 6.49757290e+02 6.58527049e+02 6.67415173e+02 + 6.76423260e+02 6.85552928e+02 6.94805820e+02 7.04183597e+02 7.13687947e+02 + 7.23320576e+02 7.33083216e+02 7.42977623e+02 7.53005574e+02 7.63168873e+02 + 7.73469345e+02 7.83908842e+02 7.94489241e+02 8.05212443e+02 8.16080377e+02 + 8.27094994e+02 8.38258275e+02 8.49572227e+02 8.61038884e+02 8.72660305e+02 + 8.84438580e+02 8.96375827e+02 9.08474190e+02 9.20735844e+02 9.33162994e+02 + 9.45757873e+02 9.58522744e+02 9.71459903e+02 9.84571674e+02 9.97860414e+02 + 1.01132851e+03 1.02497839e+03 1.03881250e+03 1.05283333e+03 1.06704339e+03 + 1.08144525e+03 1.09604149e+03 1.11083474e+03 1.12582765e+03 1.14102292e+03 + 1.15642328e+03 1.17203149e+03 1.18785037e+03 1.20388276e+03 1.22013154e+03 + 1.23659963e+03 1.25328998e+03 1.27020561e+03 1.28734954e+03 1.30472487e+03 + 1.32233471e+03 1.34018223e+03 1.35827064e+03 1.37660318e+03 1.39518316e+03 + 1.41401392e+03 1.43309883e+03 1.45244133e+03 1.47204490e+03 1.49191305e+03 + 1.51204937e+03 1.53245746e+03 1.55314100e+03 1.57410371e+03 1.59534935e+03 + 1.61688174e+03 1.63870475e+03 1.66082231e+03 1.68323839e+03 1.70595702e+03 + 1.72898228e+03 1.75231832e+03 1.77596931e+03 1.79993953e+03 1.82423327e+03 + 1.84885490e+03 1.87380885e+03 1.89909961e+03 1.92473171e+03 1.95070977e+03 + 1.97703845e+03 2.00372249e+03 2.03076669e+03 2.05817590e+03 2.08595505e+03 + 2.11410913e+03 2.14264321e+03 2.17156242e+03 2.20087194e+03 2.23057706e+03 + 2.26068311e+03 2.29119549e+03 2.32211970e+03 2.35346130e+03 2.38522591e+03 + 2.41741924e+03 2.45004709e+03 2.48311532e+03 2.51662987e+03 2.55059676e+03 + 2.58502211e+03 2.61991209e+03 2.65527298e+03 2.69111114e+03 2.72743300e+03 + 2.76424510e+03 2.80155405e+03 2.83936656e+03 2.87768942e+03 2.91652952e+03 + 2.95589385e+03 2.99578948e+03 3.03622358e+03 3.07720342e+03 3.11873636e+03 + 3.16082987e+03 3.20349152e+03 3.24672896e+03 3.29054999e+03 3.33496246e+03 + 3.37997437e+03 3.42559381e+03 3.47182896e+03 3.51868816e+03 3.56617981e+03 + 3.61431245e+03 3.66309474e+03 3.71253544e+03 3.76264344e+03 3.81342775e+03 + 3.86489750e+03 3.91706193e+03 3.96993042e+03 4.02351247e+03 4.07781773e+03 + 4.13285593e+03 4.18863699e+03 4.24517093e+03 4.30246790e+03 4.36053820e+03 + 4.41939228e+03 4.47904072e+03 4.53949422e+03 4.60076367e+03 4.66286006e+03 + 4.72579458e+03 4.78957851e+03 4.85422334e+03 4.91974068e+03 4.98614230e+03 + 5.05344014e+03 5.12164630e+03 5.19077304e+03 5.26083278e+03 5.33183812e+03 + 5.40380181e+03 5.47673679e+03 5.55065618e+03 5.62557325e+03 5.70150148e+03 + 5.77845451e+03 5.85644617e+03 5.93549049e+03 6.01560166e+03 6.09679409e+03 + 6.17908238e+03 6.26248131e+03 6.34700587e+03 6.43267125e+03 6.51949286e+03 + 6.60748630e+03 6.69666739e+03 6.78705215e+03 6.87865683e+03 6.97149790e+03 + 7.06559204e+03 7.16095617e+03 7.25760742e+03 7.35556318e+03 7.45484104e+03 + 7.55545885e+03 7.65743470e+03 7.76078691e+03 7.86553407e+03 7.97169499e+03 + 8.07928877e+03 8.18833474e+03 8.29885250e+03 8.41086191e+03 8.52438311e+03 + 8.63943651e+03 8.75604278e+03 8.87422288e+03 8.99399805e+03 9.11538983e+03 + 9.23842003e+03 9.36311076e+03 9.48948445e+03 9.61756379e+03 9.74737182e+03 + 9.87893187e+03 1.00122676e+04 1.01474029e+04 1.02843622e+04 1.04231700e+04 + 1.05638512e+04 1.07064313e+04 1.08509357e+04 1.09973906e+04 1.11458221e+04 + 1.12962570e+04 1.14487223e+04 1.16032454e+04 1.17598541e+04 1.19185766e+04 + 1.20794414e+04 1.22424773e+04 1.24077137e+04 1.25751803e+04 1.27449072e+04 + 1.29169249e+04 1.30912644e+04 1.32679569e+04 1.34470341e+04 1.36285284e+04 + 1.38124724e+04 1.39988990e+04 1.41878418e+04 1.43793348e+04 1.45734123e+04 + 1.47701093e+04 1.49694611e+04 1.51715036e+04 1.53762730e+04 1.55838062e+04 + 1.57941404e+04 1.60073136e+04 1.62233639e+04 1.64423303e+04 1.66642520e+04 + 1.68891690e+04 1.71171217e+04 1.73481511e+04 1.75822987e+04 1.78196066e+04 + 1.80601174e+04 1.83038743e+04 1.85509213e+04 1.88013026e+04 1.90550634e+04 + 1.93122491e+04 1.95729061e+04 1.98370811e+04 2.01048217e+04 2.03761760e+04 + 2.06511928e+04 2.09299214e+04 2.12124121e+04 2.14987155e+04 2.17888832e+04 + 2.20829672e+04 2.23810205e+04 2.26830966e+04 2.29892498e+04 2.32995352e+04 + 2.36140084e+04 2.39327261e+04 2.42557456e+04 2.45831248e+04 2.49149226e+04 + 2.52511988e+04 2.55920136e+04 2.59374284e+04 2.62875052e+04 2.66423071e+04 + 2.70018976e+04 2.73663416e+04 2.77357045e+04 2.81100526e+04 2.84894533e+04 + 2.88739748e+04 2.92636861e+04 2.96586574e+04 3.00589596e+04 3.04646647e+04 + 3.08758455e+04 3.12925761e+04 3.17149312e+04 3.21429869e+04 3.25768200e+04 + 3.30165086e+04 3.34621316e+04 3.39137692e+04 3.43715026e+04 3.48354139e+04 + 3.53055867e+04 3.57821053e+04 3.62650555e+04 3.67545241e+04 3.72505991e+04 + 3.77533695e+04 3.82629258e+04 3.87793596e+04 3.93027637e+04 3.98332322e+04 + 4.03708604e+04 4.09157449e+04 4.14679838e+04 4.20276762e+04 4.25949227e+04 + 4.31698254e+04 4.37524875e+04 4.43430137e+04 4.49415103e+04 4.55480848e+04 + 4.61628462e+04 4.67859051e+04 4.74173733e+04 4.80573645e+04 4.87059936e+04 + 4.93633772e+04 5.00296335e+04 5.07048823e+04 5.13892449e+04 5.20828443e+04 + 5.27858052e+04 5.34982540e+04 5.42203186e+04 5.49521290e+04 5.56938166e+04 + 5.64455147e+04 5.72073585e+04 5.79794848e+04 5.87620325e+04 5.95551423e+04 + 6.03589566e+04 6.11736200e+04 6.19992789e+04 6.28360817e+04 6.36841788e+04 + 6.45437226e+04 6.54148677e+04 6.62977706e+04 6.71925901e+04 6.80994869e+04 + 6.90186240e+04 6.99501667e+04 7.08942825e+04 7.18511409e+04 7.28209140e+04 + 7.38037762e+04 7.47999040e+04 7.58094765e+04 7.68326752e+04 7.78696840e+04 + 7.89206893e+04 7.99858799e+04 8.10654474e+04 8.21595859e+04 8.32684918e+04 + 8.43923647e+04 8.55314064e+04 8.66858218e+04 8.78558182e+04 8.90416061e+04 + 9.02433986e+04 9.14614116e+04 9.26958640e+04 9.39469779e+04 9.52149780e+04 + 9.65000923e+04 9.78025518e+04 9.91225905e+04 1.00460446e+05 1.01816358e+05 + 1.03190571e+05 1.04583332e+05 1.05994890e+05 1.07425501e+05 1.08875420e+05 + 1.10344909e+05 1.11834232e+05 1.13343656e+05 1.14873452e+05 1.16423897e+05 + 1.17995267e+05 1.19587847e+05 1.21201921e+05 1.22837780e+05 1.24495719e+05 + 1.26176035e+05 1.27879030e+05 1.29605010e+05 1.31354286e+05 1.33127171e+05 + 1.34923985e+05 1.36745051e+05 1.38590696e+05 1.40461251e+05 1.42357053e+05 + 1.44278443e+05 1.46225766e+05 1.48199372e+05 1.50199615e+05 1.52226856e+05 + 1.54281458e+05 1.56363791e+05 1.58474229e+05 1.60613152e+05 1.62780944e+05 + 1.64977995e+05 1.67204699e+05 1.69461457e+05 1.71748674e+05 1.74066762e+05 + 1.76416136e+05 1.78797221e+05 1.81210443e+05 1.83656236e+05 1.86135040e+05 + 1.88647300e+05 1.91193468e+05 1.93774002e+05 1.96389365e+05 1.99040027e+05 + 2.01726466e+05 2.04449163e+05 2.07208608e+05 2.10005298e+05 2.12839735e+05 + 2.15712427e+05 2.18623893e+05 2.21574654e+05 2.24565242e+05 2.27596194e+05 + 2.30668054e+05 2.33781376e+05 2.36936717e+05 2.40134646e+05 2.43375738e+05 + 2.46660575e+05 2.49989747e+05 2.53363852e+05 2.56783498e+05 2.60249299e+05 + 2.63761877e+05 2.67321865e+05 2.70929902e+05 2.74586636e+05 2.78292726e+05 + 2.82048836e+05 2.85855642e+05 2.89713829e+05 2.93624090e+05 2.97587127e+05 + 3.01603654e+05 3.05674391e+05 3.09800071e+05 3.13981435e+05 3.18219235e+05 + 3.22514232e+05 3.26867199e+05 3.31278918e+05 3.35750182e+05 3.40281794e+05 + 3.44874569e+05 3.49529333e+05 3.54246922e+05 3.59028184e+05 3.63873979e+05 + 3.68785178e+05 3.73762662e+05 3.78807328e+05 3.83920082e+05 3.89101842e+05 + 3.94353540e+05 3.99676120e+05 4.05070540e+05 4.10537767e+05 4.16078785e+05 + 4.21694591e+05 4.27386193e+05 4.33154614e+05 4.39000892e+05 4.44926076e+05 + 4.50931233e+05 4.57017441e+05 4.63185794e+05 4.69437402e+05 4.75773387e+05 + 4.82194889e+05 4.88703062e+05 4.95299076e+05 5.01984116e+05 5.08759383e+05 + 5.15626097e+05 5.22585490e+05 5.29638814e+05 5.36787336e+05 5.44032342e+05 + 5.51375134e+05 5.58817031e+05 5.66359371e+05 5.74003510e+05 5.81750821e+05 + 5.89602698e+05 5.97560552e+05 6.05625813e+05 6.13799930e+05 6.22084373e+05 + 6.30480631e+05 6.38990213e+05 6.47614648e+05 6.56355488e+05 6.65214302e+05 + 6.74192684e+05 6.83292246e+05 6.92514626e+05 7.01861479e+05 7.11334487e+05 + 7.20935351e+05 7.30665798e+05 7.40527577e+05 7.50522460e+05 7.60652244e+05 + 7.70918749e+05 7.81323821e+05 7.91869330e+05 8.02557172e+05 8.13389267e+05 + 8.24367562e+05 8.35494032e+05 8.46770675e+05 8.58199518e+05 8.69782617e+05 + 8.81522052e+05 8.93419934e+05 9.05478402e+05 9.17699622e+05 9.30085792e+05 + 9.42639138e+05 9.55361916e+05 9.68256413e+05 9.81324947e+05 9.94569866e+05 + 1.00799355e+06 1.02159842e+06 1.03538691e+06 1.04936150e+06 1.06352471e+06 + 1.07787907e+06 1.09242718e+06 1.10717165e+06 1.12211511e+06 1.13726028e+06 + 1.15260985e+06 1.16816660e+06 1.18393331e+06 1.19991283e+06 1.21610803e+06 + 1.23252181e+06 1.24915713e+06 1.26601697e+06 1.28310437e+06 1.30042240e+06 + 1.31797417e+06 1.33576284e+06 1.35379160e+06 1.37206369e+06 1.39058240e+06 + 1.40935106e+06 1.42837304e+06 1.44765175e+06 1.46719067e+06 1.48699331e+06 + 1.50706323e+06 1.52740402e+06 1.54801936e+06 1.56891294e+06 1.59008852e+06 + 1.61154991e+06 1.63330096e+06 1.65534558e+06 1.67768774e+06 1.70033145e+06 + 1.72328078e+06 1.74653986e+06 1.77011287e+06 1.79400404e+06 1.81821767e+06 + 1.84275811e+06 1.86762977e+06 1.89283713e+06 1.91838471e+06 1.94427710e+06 + 1.51514411e-06 1.53559398e-06 1.55631985e-06 1.57732546e-06 1.59861459e-06 + 1.62019105e-06 1.64205873e-06 1.66422156e-06 1.68668352e-06 1.70944864e-06 + 1.73252103e-06 1.75590483e-06 1.77960423e-06 1.80362351e-06 1.82796697e-06 + 1.85263900e-06 1.87764402e-06 1.90298654e-06 1.92867110e-06 1.95470233e-06 + 1.98108490e-06 2.00782356e-06 2.03492310e-06 2.06238841e-06 2.09022442e-06 + 2.11843613e-06 2.14702861e-06 2.17600701e-06 2.20537652e-06 2.23514243e-06 + 2.26531010e-06 2.29588494e-06 2.32687244e-06 2.35827818e-06 2.39010781e-06 + 2.42236703e-06 2.45506166e-06 2.48819757e-06 2.52178072e-06 2.55581713e-06 + 2.59031293e-06 2.62527433e-06 2.66070759e-06 2.69661910e-06 2.73301530e-06 + 2.76990274e-06 2.80728805e-06 2.84517795e-06 2.88357925e-06 2.92249885e-06 + 2.96194375e-06 3.00192104e-06 3.04243789e-06 3.08350160e-06 3.12511955e-06 + 3.16729922e-06 3.21004818e-06 3.25337412e-06 3.29728483e-06 3.34178821e-06 + 3.38689225e-06 3.43260505e-06 3.47893484e-06 3.52588994e-06 3.57347879e-06 + 3.62170995e-06 3.67059208e-06 3.72013398e-06 3.77034453e-06 3.82123279e-06 + 3.87280787e-06 3.92507907e-06 3.97805577e-06 4.03174749e-06 4.08616389e-06 + 4.14131475e-06 4.19720997e-06 4.25385962e-06 4.31127386e-06 4.36946302e-06 + 4.42843756e-06 4.48820807e-06 4.54878531e-06 4.61018016e-06 4.67240365e-06 + 4.73546697e-06 4.79938146e-06 4.86415859e-06 4.92981003e-06 4.99634755e-06 + 5.06378314e-06 5.13212890e-06 5.20139712e-06 5.27160025e-06 5.34275092e-06 + 5.41486190e-06 5.48794616e-06 5.56201684e-06 5.63708725e-06 5.71317088e-06 + 5.79028141e-06 5.86843270e-06 5.94763880e-06 6.02791394e-06 6.10927255e-06 + 6.19172925e-06 6.27529887e-06 6.35999643e-06 6.44583715e-06 6.53283646e-06 + 6.62101000e-06 6.71037362e-06 6.80094337e-06 6.89273554e-06 6.98576663e-06 + 7.08005335e-06 7.17561266e-06 7.27246174e-06 7.37061798e-06 7.47009904e-06 + 7.57092278e-06 7.67310735e-06 7.77667110e-06 7.88163264e-06 7.98801085e-06 + 8.09582484e-06 8.20509399e-06 8.31583795e-06 8.42807662e-06 8.54183017e-06 + 8.65711905e-06 8.77396398e-06 8.89238596e-06 9.01240628e-06 9.13404651e-06 + 9.25732852e-06 9.38227446e-06 9.50890680e-06 9.63724829e-06 9.76732200e-06 + 9.89915131e-06 1.00327599e-05 1.01681718e-05 1.03054114e-05 1.04445033e-05 + 1.05854725e-05 1.07283444e-05 1.08731446e-05 1.10198992e-05 1.11686345e-05 + 1.13193773e-05 1.14721546e-05 1.16269940e-05 1.17839233e-05 1.19429706e-05 + 1.21041646e-05 1.22675342e-05 1.24331089e-05 1.26009182e-05 1.27709925e-05 + 1.29433623e-05 1.31180586e-05 1.32951127e-05 1.34745565e-05 1.36564223e-05 + 1.38407427e-05 1.40275509e-05 1.42168804e-05 1.44087653e-05 1.46032400e-05 + 1.48003396e-05 1.50000995e-05 1.52025554e-05 1.54077440e-05 1.56157019e-05 + 1.58264667e-05 1.60400761e-05 1.62565686e-05 1.64759832e-05 1.66983591e-05 + 1.69237365e-05 1.71521557e-05 1.73836580e-05 1.76182848e-05 1.78560784e-05 + 1.80970814e-05 1.83413373e-05 1.85888899e-05 1.88397837e-05 1.90940638e-05 + 1.93517759e-05 1.96129664e-05 1.98776821e-05 2.01459707e-05 2.04178804e-05 + 2.06934601e-05 2.09727592e-05 2.12558280e-05 2.15427174e-05 2.18334790e-05 + 2.21281649e-05 2.24268282e-05 2.27295226e-05 2.30363024e-05 2.33472229e-05 + 2.36623398e-05 2.39817098e-05 2.43053904e-05 2.46334396e-05 2.49659166e-05 + 2.53028810e-05 2.56443934e-05 2.59905151e-05 2.63413085e-05 2.66968365e-05 + 2.70571631e-05 2.74223530e-05 2.77924718e-05 2.81675861e-05 2.85477634e-05 + 2.89330718e-05 2.93235808e-05 2.97193605e-05 3.01204820e-05 3.05270174e-05 + 3.09390399e-05 3.13566233e-05 3.17798429e-05 3.22087747e-05 3.26434958e-05 + 3.30840843e-05 3.35306194e-05 3.39831813e-05 3.44418515e-05 3.49067124e-05 + 3.53778474e-05 3.58553414e-05 3.63392801e-05 3.68297505e-05 3.73268407e-05 + 3.78306402e-05 3.83412395e-05 3.88587303e-05 3.93832056e-05 3.99147598e-05 + 4.04534884e-05 4.09994881e-05 4.15528573e-05 4.21136952e-05 4.26821027e-05 + 4.32581821e-05 4.38420367e-05 4.44337716e-05 4.50334932e-05 4.56413092e-05 + 4.62573288e-05 4.68816629e-05 4.75144236e-05 4.81557246e-05 4.88056813e-05 + 4.94644104e-05 5.01320304e-05 5.08086612e-05 5.14944245e-05 5.21894435e-05 + 5.28938432e-05 5.36077501e-05 5.43312927e-05 5.50646008e-05 5.58078064e-05 + 5.65610431e-05 5.73244461e-05 5.80981528e-05 5.88823022e-05 5.96770352e-05 + 6.04824947e-05 6.12988255e-05 6.21261743e-05 6.29646898e-05 6.38145227e-05 + 6.46758258e-05 6.55487539e-05 6.64334638e-05 6.73301147e-05 6.82388677e-05 + 6.91598861e-05 7.00933354e-05 7.10393835e-05 7.19982003e-05 7.29699583e-05 + 7.39548321e-05 7.49529987e-05 7.59646376e-05 7.69899305e-05 7.80290617e-05 + 7.90822181e-05 8.01495889e-05 8.12313660e-05 8.23277438e-05 8.34389194e-05 + 8.45650925e-05 8.57064656e-05 8.68632437e-05 8.80356348e-05 8.92238497e-05 + 9.04281018e-05 9.16486078e-05 9.28855869e-05 9.41392614e-05 9.54098568e-05 + 9.66976013e-05 9.80027266e-05 9.93254670e-05 1.00666060e-04 1.02024748e-04 + 1.03401773e-04 1.04797385e-04 1.06211833e-04 1.07645371e-04 1.09098258e-04 + 1.10570755e-04 1.12063126e-04 1.13575639e-04 1.15108567e-04 1.16662184e-04 + 1.18236771e-04 1.19832610e-04 1.21449988e-04 1.23089195e-04 1.24750527e-04 + 1.26434282e-04 1.28140763e-04 1.29870275e-04 1.31623131e-04 1.33399646e-04 + 1.35200138e-04 1.37024931e-04 1.38874353e-04 1.40748737e-04 1.42648419e-04 + 1.44573741e-04 1.46525050e-04 1.48502695e-04 1.50507032e-04 1.52538422e-04 + 1.54597229e-04 1.56683824e-04 1.58798582e-04 1.60941883e-04 1.63114112e-04 + 1.65315659e-04 1.67546920e-04 1.69808297e-04 1.72100196e-04 1.74423028e-04 + 1.76777212e-04 1.79163169e-04 1.81581330e-04 1.84032129e-04 1.86516007e-04 + 1.89033409e-04 1.91584788e-04 1.94170603e-04 1.96791319e-04 1.99447407e-04 + 2.02139344e-04 2.04867614e-04 2.07632707e-04 2.10435121e-04 2.13275359e-04 + 2.16153931e-04 2.19071356e-04 2.22028156e-04 2.25024865e-04 2.28062020e-04 + 2.31140168e-04 2.34259861e-04 2.37421661e-04 2.40626136e-04 2.43873861e-04 + 2.47165421e-04 2.50501406e-04 2.53882418e-04 2.57309063e-04 2.60781957e-04 + 2.64301725e-04 2.67868999e-04 2.71484421e-04 2.75148639e-04 2.78862314e-04 + 2.82626112e-04 2.86440710e-04 2.90306793e-04 2.94225057e-04 2.98196206e-04 + 3.02220953e-04 3.06300022e-04 3.10434146e-04 3.14624068e-04 3.18870542e-04 + 3.23174330e-04 3.27536206e-04 3.31956954e-04 3.36437370e-04 3.40978257e-04 + 3.45580432e-04 3.50244723e-04 3.54971968e-04 3.59763016e-04 3.64618729e-04 + 3.69539979e-04 3.74527651e-04 3.79582642e-04 3.84705860e-04 3.89898226e-04 + 3.95160673e-04 4.00494147e-04 4.05899607e-04 4.11378024e-04 4.16930384e-04 + 4.22557683e-04 4.28260934e-04 4.34041162e-04 4.39899405e-04 4.45836717e-04 + 4.51854164e-04 4.57952829e-04 4.64133808e-04 4.70398211e-04 4.76747164e-04 + 4.83181809e-04 4.89703302e-04 4.96312816e-04 5.03011539e-04 5.09800673e-04 + 5.16681441e-04 5.23655078e-04 5.30722838e-04 5.37885992e-04 5.45145826e-04 + 5.52503646e-04 5.59960775e-04 5.67518552e-04 5.75178336e-04 5.82941505e-04 + 5.90809452e-04 5.98783593e-04 6.06865361e-04 6.15056208e-04 6.23357607e-04 + 6.31771050e-04 6.40298049e-04 6.48940137e-04 6.57698866e-04 6.66575812e-04 + 6.75572570e-04 6.84690757e-04 6.93932012e-04 7.03297995e-04 7.12790392e-04 + 7.22410907e-04 7.32161269e-04 7.42043233e-04 7.52058572e-04 7.62209089e-04 + 7.72496607e-04 7.82922975e-04 7.93490068e-04 8.04199785e-04 8.15054050e-04 + 8.26054815e-04 8.37204057e-04 8.48503780e-04 8.59956016e-04 8.71562821e-04 + 8.83326284e-04 8.95248518e-04 9.07331666e-04 9.19577900e-04 9.31989421e-04 + 9.44568460e-04 9.57317278e-04 9.70238166e-04 9.83333448e-04 9.96605476e-04 + 1.01005664e-03 1.02368935e-03 1.03750606e-03 1.05150925e-03 1.06570145e-03 + 1.08008519e-03 1.09466308e-03 1.10943772e-03 1.12441177e-03 1.13958793e-03 + 1.15496892e-03 1.17055751e-03 1.18635650e-03 1.20236872e-03 1.21859707e-03 + 1.23504444e-03 1.25171381e-03 1.26860816e-03 1.28573053e-03 1.30308401e-03 + 1.32067170e-03 1.33849678e-03 1.35656243e-03 1.37487193e-03 1.39342854e-03 + 1.41223561e-03 1.43129652e-03 1.45061470e-03 1.47019361e-03 1.49003678e-03 + 1.51014777e-03 1.53053020e-03 1.55118773e-03 1.57212407e-03 1.59334299e-03 + 1.61484830e-03 1.63664387e-03 1.65873361e-03 1.68112150e-03 1.70381156e-03 + 1.72680786e-03 1.75011455e-03 1.77373580e-03 1.79767587e-03 1.82193906e-03 + 1.84652973e-03 1.87145230e-03 1.89671124e-03 1.92231111e-03 1.94825650e-03 + 1.97455207e-03 2.00120255e-03 2.02821273e-03 2.05558747e-03 2.08333169e-03 + 2.11145037e-03 2.13994856e-03 2.16883140e-03 2.19810406e-03 2.22777182e-03 + 2.25784000e-03 2.28831402e-03 2.31919934e-03 2.35050151e-03 2.38222618e-03 + 2.41437903e-03 2.44696584e-03 2.47999248e-03 2.51346488e-03 2.54738906e-03 + 2.58177111e-03 2.61661721e-03 2.65193363e-03 2.68772672e-03 2.72400290e-03 + 2.76076870e-03 2.79803073e-03 2.83579568e-03 2.87407035e-03 2.91286161e-03 + 2.95217643e-03 2.99202189e-03 3.03240514e-03 3.07333344e-03 3.11481415e-03 + 3.15685472e-03 3.19946271e-03 3.24264578e-03 3.28641170e-03 3.33076832e-03 + 3.37572362e-03 3.42128568e-03 3.46746269e-03 3.51426295e-03 3.56169487e-03 + 3.60976698e-03 3.65848792e-03 3.70786645e-03 3.75791143e-03 3.80863187e-03 + 3.86003689e-03 3.91213571e-03 3.96493772e-03 4.01845239e-03 4.07268934e-03 + 4.12765833e-03 4.18336924e-03 4.23983207e-03 4.29705699e-03 4.35505426e-03 + 4.41383433e-03 4.47340774e-03 4.53378522e-03 4.59497761e-03 4.65699591e-03 + 4.71985128e-03 4.78355500e-03 4.84811852e-03 4.91355347e-03 4.97987158e-03 + 5.04708479e-03 5.11520517e-03 5.18424497e-03 5.25421660e-03 5.32513264e-03 + 5.39700583e-03 5.46984909e-03 5.54367551e-03 5.61849837e-03 5.69433110e-03 + 5.77118736e-03 5.84908093e-03 5.92802584e-03 6.00803626e-03 6.08912659e-03 + 6.17131138e-03 6.25460542e-03 6.33902369e-03 6.42458134e-03 6.51129376e-03 + 6.59917653e-03 6.68824546e-03 6.77851655e-03 6.87000603e-03 6.96273034e-03 + 7.05670614e-03 7.15195034e-03 7.24848004e-03 7.34631260e-03 7.44546561e-03 + 7.54595688e-03 7.64780448e-03 7.75102672e-03 7.85564214e-03 7.96166955e-03 + 8.06912802e-03 8.17803685e-03 8.28841561e-03 8.40028416e-03 8.51366260e-03 + 8.62857130e-03 8.74503092e-03 8.86306239e-03 8.98268694e-03 9.10392605e-03 + 9.22680152e-03 9.35133544e-03 9.47755019e-03 9.60546846e-03 9.73511324e-03 + 9.86650783e-03 9.99967585e-03 1.01346412e-02 1.02714283e-02 1.04100615e-02 + 1.05505658e-02 1.06929666e-02 1.08372893e-02 1.09835599e-02 1.11318048e-02 + 1.12820505e-02 1.14343240e-02 1.15886528e-02 1.17450646e-02 1.19035875e-02 + 1.20642499e-02 1.22270808e-02 1.23921094e-02 1.25593654e-02 1.27288789e-02 + 1.29006802e-02 1.30748004e-02 1.32512707e-02 1.34301228e-02 1.36113888e-02 + 1.37951014e-02 1.39812936e-02 1.41699987e-02 1.43612509e-02 1.45550843e-02 + 1.47515340e-02 1.49506351e-02 1.51524234e-02 1.53569353e-02 1.55642075e-02 + 1.57742773e-02 1.59871823e-02 1.62029609e-02 1.64216519e-02 1.66432945e-02 + 1.68679287e-02 1.70955947e-02 1.73263336e-02 1.75601867e-02 1.77971961e-02 + 1.80374044e-02 1.82808548e-02 1.85275911e-02 1.87776576e-02 1.90310992e-02 + 1.92879614e-02 1.95482906e-02 1.98121334e-02 2.00795373e-02 2.03505503e-02 + 2.06252212e-02 2.09035994e-02 2.11857347e-02 2.14716781e-02 2.17614808e-02 + 2.20551950e-02 2.23528734e-02 2.26545697e-02 2.29603378e-02 2.32702330e-02 + 2.35843107e-02 2.39026276e-02 2.42252408e-02 2.45522083e-02 2.48835889e-02 + 2.52194421e-02 2.55598283e-02 2.59048087e-02 2.62544453e-02 2.66088009e-02 + 2.69679393e-02 2.73319249e-02 2.77008232e-02 2.80747006e-02 2.84536242e-02 + 2.88376620e-02 2.92268833e-02 2.96213578e-02 3.00211566e-02 3.04263514e-02 + 3.08370152e-02 3.12532216e-02 3.16750456e-02 3.21025629e-02 3.25358505e-02 + 3.29749861e-02 3.34200487e-02 3.38711183e-02 3.43282759e-02 3.47916039e-02 + 3.52611853e-02 3.57371047e-02 3.62194475e-02 3.67083006e-02 3.72037516e-02 + 3.77058898e-02 3.82148053e-02 3.87305896e-02 3.92533354e-02 3.97831368e-02 + 4.03200888e-02 4.08642881e-02 4.14158324e-02 4.19748209e-02 4.25413541e-02 + 4.31155337e-02 4.36974630e-02 4.42872467e-02 4.48849906e-02 4.54908022e-02 + 4.61047905e-02 4.67270657e-02 4.73577398e-02 4.79969261e-02 4.86447395e-02 + 4.93012964e-02 4.99667148e-02 5.06411144e-02 5.13246163e-02 5.20173434e-02 + 5.27194202e-02 5.34309730e-02 5.41521296e-02 5.48830196e-02 5.56237744e-02 + 5.63745271e-02 5.71354128e-02 5.79065681e-02 5.86881317e-02 5.94802440e-02 + 6.02830474e-02 6.10966863e-02 6.19213068e-02 6.27570572e-02 6.36040877e-02 + 6.44625506e-02 6.53326001e-02 6.62143926e-02 6.71080867e-02 6.80138429e-02 + 6.89318241e-02 6.98621953e-02 7.08051237e-02 7.17607788e-02 7.27293323e-02 + 7.37109584e-02 7.47058334e-02 7.57141363e-02 7.67360482e-02 7.77717528e-02 + 7.88214363e-02 7.98852873e-02 8.09634971e-02 8.20562595e-02 8.31637709e-02 + 8.42862303e-02 8.54238396e-02 8.65768031e-02 8.77453282e-02 8.89296248e-02 + 9.01299058e-02 9.13463870e-02 9.25792870e-02 9.38288274e-02 9.50952329e-02 + 9.63787310e-02 9.76795524e-02 9.89979310e-02 1.00334104e-01 1.01688311e-01 + 1.03060795e-01 1.04451805e-01 1.05861588e-01 1.07290399e-01 1.08738495e-01 + 1.10206136e-01 1.11693586e-01 1.13201111e-01 1.14728984e-01 1.16277479e-01 + 1.17846873e-01 1.19437449e-01 1.21049494e-01 1.22683296e-01 1.24339149e-01 + 1.26017352e-01 1.27718205e-01 1.29442015e-01 1.31189090e-01 1.32959747e-01 + 1.34754301e-01 1.36573077e-01 1.38416400e-01 1.40284603e-01 1.42178021e-01 + 1.44096994e-01 1.46041868e-01 1.48012992e-01 1.50010719e-01 1.52035411e-01 + 1.54087429e-01 1.56167143e-01 1.58274927e-01 1.60411160e-01 1.62576226e-01 + 1.64770513e-01 1.66994417e-01 1.69248337e-01 1.71532678e-01 1.73847850e-01 + 1.76194270e-01 1.78572360e-01 1.80982547e-01 1.83425264e-01 1.85900951e-01 + 1.88410051e-01 1.90953017e-01 1.93530306e-01 1.96142380e-01 1.98789709e-01 + 2.01472769e-01 2.04192042e-01 2.06948017e-01 2.09741189e-01 2.12572061e-01 + 2.15441141e-01 2.18348945e-01 2.21295996e-01 2.24282822e-01 2.27309962e-01 + 2.30377959e-01 2.33487365e-01 2.36638739e-01 2.39832646e-01 2.43069662e-01 + 2.46350367e-01 2.49675352e-01 2.53045214e-01 2.56460560e-01 2.59922002e-01 + 2.63430163e-01 2.66985673e-01 2.70589173e-01 2.74241308e-01 2.77942737e-01 + 2.81694123e-01 2.85496142e-01 2.89349477e-01 2.93254820e-01 2.97212873e-01 + 3.01224348e-01 3.05289966e-01 3.09410457e-01 3.13586563e-01 3.17819033e-01 + 3.22108629e-01 3.26456121e-01 3.30862292e-01 3.35327932e-01 3.39853846e-01 + 3.44440845e-01 3.49089755e-01 3.53801411e-01 3.58576660e-01 3.63416361e-01 + 3.68321383e-01 3.73292608e-01 3.78330929e-01 3.83437252e-01 3.88612496e-01 + 3.93857590e-01 3.99173476e-01 4.04561111e-01 4.10021463e-01 4.15555512e-01 + 4.21164255e-01 4.26848699e-01 4.32609866e-01 4.38448791e-01 4.44366524e-01 + 4.50364128e-01 4.56442682e-01 4.62603278e-01 4.68847024e-01 4.75175041e-01 + 4.81588467e-01 4.88088455e-01 4.94676173e-01 5.01352806e-01 5.08119553e-01 + 5.14977630e-01 5.21928271e-01 5.28972724e-01 5.36112257e-01 5.43348151e-01 + 5.50681708e-01 5.58114246e-01 5.65647101e-01 5.73281626e-01 5.81019194e-01 + 5.88861197e-01 5.96809042e-01 6.04864160e-01 6.13027997e-01 6.21302021e-01 + 6.29687720e-01 6.38186600e-01 6.46800189e-01 6.55530036e-01 6.64377709e-01 + 6.73344799e-01 6.82432918e-01 6.91643699e-01 7.00978797e-01 7.10439891e-01 + 7.20028682e-01 7.29746892e-01 7.39596268e-01 7.49578581e-01 7.59695625e-01 + 7.69949219e-01 7.80341205e-01 7.90873452e-01 8.01547852e-01 8.12366325e-01 + 8.23330813e-01 8.34443290e-01 8.45705751e-01 8.57120221e-01 8.68688753e-01 + 8.80413424e-01 8.92296343e-01 9.04339645e-01 9.16545496e-01 9.28916089e-01 + 9.41453647e-01 9.54160425e-01 9.67038705e-01 9.80090803e-01 9.93319066e-01 + 1.00672587e+00 1.02031362e+00 1.03408477e+00 1.04804179e+00 1.06218719e+00 + 1.07652350e+00 1.09105331e+00 1.10577923e+00 1.12070391e+00 1.13583002e+00 + 1.15116029e+00 1.16669748e+00 1.18244437e+00 1.19840379e+00 1.21457862e+00 + 1.23097175e+00 1.24758615e+00 1.26442479e+00 1.28149070e+00 1.29878695e+00 + 1.31631665e+00 1.33408294e+00 1.35208903e+00 1.37033814e+00 1.38883356e+00 + 1.40757862e+00 1.42657667e+00 1.44583114e+00 1.46534549e+00 1.48512323e+00 + 1.50516790e+00 1.52548311e+00 1.54607252e+00 1.56693983e+00 1.58808878e+00 + 1.60952317e+00 1.63124687e+00 1.65326377e+00 1.67557783e+00 1.69819306e+00 + 1.72111354e+00 1.74434336e+00 1.76788672e+00 1.79174785e+00 1.81593103e+00 + 1.84044061e+00 1.86528099e+00 1.89045664e+00 1.91597209e+00 1.94183192e+00 + 1.96804078e+00 1.99460338e+00 2.02152449e+00 2.04880896e+00 2.07646169e+00 + 2.10448764e+00 2.13289186e+00 2.16167945e+00 2.19085559e+00 2.22042551e+00 + 2.25039454e+00 2.28076806e+00 2.31155154e+00 2.34275049e+00 2.37437054e+00 + 2.40641736e+00 2.43889672e+00 2.47181445e+00 2.50517647e+00 2.53898878e+00 + 2.57325745e+00 2.60798864e+00 2.64318860e+00 2.67886366e+00 2.71502022e+00 + 2.75166478e+00 2.78880393e+00 2.82644435e+00 2.86459281e+00 2.90325615e+00 + 2.94244133e+00 2.98215539e+00 3.02240547e+00 3.06319880e+00 3.10454272e+00 + 3.14644466e+00 3.18891215e+00 3.23195282e+00 3.27557441e+00 3.31978476e+00 + 3.36459182e+00 3.41000363e+00 3.45602837e+00 3.50267430e+00 3.54994981e+00 + 3.59786340e+00 3.64642368e+00 3.69563937e+00 3.74551933e+00 3.79607251e+00 + 3.84730801e+00 3.89923504e+00 3.95186292e+00 4.00520112e+00 4.05925923e+00 + 4.11404695e+00 4.16957414e+00 4.22585079e+00 4.28288699e+00 4.34069302e+00 + 4.39927925e+00 4.45865622e+00 4.51883459e+00 4.57982520e+00 4.64163899e+00 + 4.70428708e+00 4.76778073e+00 4.83213135e+00 4.89735051e+00 4.96344994e+00 + 5.03044150e+00 5.09833725e+00 5.16714939e+00 5.23689028e+00 5.30757246e+00 + 5.37920864e+00 5.45181169e+00 5.52539466e+00 5.59997078e+00 5.67555346e+00 + 5.75215627e+00 5.82979298e+00 5.90847756e+00 5.98822414e+00 6.06904706e+00 + 6.15096084e+00 6.23398021e+00 6.31812010e+00 6.40339561e+00 6.48982209e+00 + 6.57741507e+00 6.66619028e+00 6.75616369e+00 6.84735147e+00 6.93977001e+00 + 7.03343592e+00 7.12836604e+00 7.22457742e+00 7.32208737e+00 7.42091341e+00 + 7.52107330e+00 7.62258505e+00 7.72546690e+00 7.82973734e+00 7.93541512e+00 + 8.04251923e+00 8.15106892e+00 8.26108370e+00 8.37258335e+00 8.48558791e+00 + 8.60011769e+00 8.71619327e+00 8.83383553e+00 8.95306559e+00 9.07390491e+00 + 9.19637518e+00 9.32049844e+00 9.44629699e+00 9.57379343e+00 9.70301069e+00 + 9.83397200e+00 9.96670088e+00 1.01012212e+01 1.02375571e+01 1.03757332e+01 + 1.05157742e+01 1.06577054e+01 1.08015522e+01 1.09473405e+01 1.10950965e+01 + 1.12448467e+01 1.13966182e+01 1.15504380e+01 1.17063340e+01 1.18643341e+01 + 1.20244668e+01 1.21867607e+01 1.23512451e+01 1.25179496e+01 1.26869041e+01 + 1.28581389e+01 1.30316849e+01 1.32075732e+01 1.33858355e+01 1.35665038e+01 + 1.37496106e+01 1.39351888e+01 1.41232717e+01 1.43138932e+01 1.45070874e+01 + 1.47028892e+01 1.49013338e+01 1.51024567e+01 1.53062942e+01 1.55128829e+01 + 1.57222599e+01 1.59344629e+01 1.61495300e+01 1.63674998e+01 1.65884115e+01 + 1.68123049e+01 1.70392202e+01 1.72691982e+01 1.75022801e+01 1.77385080e+01 + 1.79779242e+01 1.82205718e+01 1.84664944e+01 1.87157363e+01 1.89683421e+01 + 1.92243574e+01 1.94838281e+01 1.97468008e+01 2.00133229e+01 2.02834423e+01 + 2.05572074e+01 2.08346676e+01 2.11158726e+01 2.14008730e+01 2.16897201e+01 + 2.19824657e+01 2.22791625e+01 2.25798639e+01 2.28846237e+01 2.31934970e+01 + 2.35065390e+01 2.38238062e+01 2.41453556e+01 2.44712449e+01 2.48015327e+01 + 2.51362784e+01 2.54755421e+01 2.58193849e+01 2.61678685e+01 2.65210556e+01 + 2.68790097e+01 2.72417950e+01 2.76094769e+01 2.79821213e+01 2.83597954e+01 + 2.87425669e+01 2.91305046e+01 2.95236783e+01 2.99221587e+01 3.03260174e+01 + 3.07353269e+01 3.11501609e+01 3.15705939e+01 3.19967014e+01 3.24285601e+01 + 3.28662476e+01 3.33098426e+01 3.37594247e+01 3.42150749e+01 3.46768749e+01 + 3.51449079e+01 3.56192579e+01 3.61000102e+01 3.65872511e+01 3.70810684e+01 + 3.75815507e+01 3.80887880e+01 3.86028714e+01 3.91238935e+01 3.96519477e+01 + 4.01871291e+01 4.07295339e+01 4.12792594e+01 4.18364046e+01 4.24010695e+01 + 4.29733558e+01 4.35533661e+01 4.41412049e+01 4.47369777e+01 4.53407916e+01 + 4.59527552e+01 4.65729784e+01 4.72015728e+01 4.78386513e+01 4.84843284e+01 + 4.91387202e+01 4.98019444e+01 5.04741200e+01 5.11553680e+01 5.18458108e+01 + 5.25455725e+01 5.32547788e+01 5.39735573e+01 5.47020371e+01 5.54403492e+01 + 5.61886263e+01 5.69470028e+01 5.77156152e+01 5.84946015e+01 5.92841017e+01 + 6.00842578e+01 6.08952136e+01 6.17171149e+01 6.25501093e+01 6.33943466e+01 + 6.42499786e+01 6.51171590e+01 6.59960438e+01 6.68867908e+01 6.77895602e+01 + 6.87045143e+01 6.96318175e+01 7.05716365e+01 7.15241402e+01 7.24894998e+01 + 7.34678888e+01 7.44594832e+01 7.54644611e+01 7.64830031e+01 7.75152924e+01 + 7.85615144e+01 7.96218573e+01 8.06965116e+01 8.17856705e+01 8.28895297e+01 + 8.40082878e+01 8.51421456e+01 8.62913071e+01 8.74559788e+01 8.86363701e+01 + 8.98326931e+01 9.10451628e+01 9.22739972e+01 9.35194171e+01 9.47816465e+01 + 9.60609121e+01 9.73574439e+01 9.86714750e+01 1.00003242e+02 1.01352983e+02 + 1.02720942e+02 1.04107364e+02 1.05512498e+02 1.06936598e+02 1.08379919e+02 + 1.09842720e+02 1.11325265e+02 1.12827819e+02 1.14350653e+02 1.15894041e+02 + 1.17458261e+02 1.19043592e+02 1.20650320e+02 1.22278735e+02 1.23929128e+02 + 1.25601797e+02 1.27297041e+02 1.29015166e+02 1.30756481e+02 1.32521298e+02 + 1.34309935e+02 1.36122713e+02 1.37959958e+02 1.39822000e+02 1.41709174e+02 + 1.43621820e+02 1.45560280e+02 1.47524903e+02 1.49516044e+02 1.51534058e+02 + 1.53579310e+02 1.55652166e+02 1.57752999e+02 1.59882188e+02 1.62040114e+02 + 1.64227166e+02 1.66443736e+02 1.68690223e+02 1.70967031e+02 1.73274569e+02 + 1.75613251e+02 1.77983499e+02 1.80385738e+02 1.82820400e+02 1.85287923e+02 + 1.87788750e+02 1.90323330e+02 1.92892119e+02 1.95495580e+02 1.98134179e+02 + 2.00808391e+02 2.03518697e+02 2.06265584e+02 2.09049546e+02 2.11871083e+02 + 2.14730702e+02 2.17628917e+02 2.20566249e+02 2.23543226e+02 2.26560384e+02 + 2.29618264e+02 2.32717416e+02 2.35858398e+02 2.39041773e+02 2.42268114e+02 + 2.45538001e+02 2.48852022e+02 2.52210771e+02 2.55614854e+02 2.59064882e+02 + 2.62561474e+02 2.66105260e+02 2.69696877e+02 2.73336969e+02 2.77026192e+02 + 2.80765207e+02 2.84554689e+02 2.88395317e+02 2.92287781e+02 2.96232783e+02 + 3.00231029e+02 3.04283240e+02 3.08390144e+02 3.12552478e+02 3.16770992e+02 + 3.21046442e+02 3.25379599e+02 3.29771239e+02 3.34222154e+02 3.38733142e+02 + 3.43305015e+02 3.47938595e+02 3.52634714e+02 3.57394216e+02 3.62217957e+02 + 3.67106805e+02 3.72061636e+02 3.77083343e+02 3.82172828e+02 3.87331006e+02 + 3.92558803e+02 3.97857160e+02 4.03227029e+02 4.08669374e+02 4.14185175e+02 + 4.19775422e+02 4.25441121e+02 4.31183290e+02 4.37002961e+02 4.42901179e+02 + 4.48879006e+02 4.54937515e+02 4.61077796e+02 4.67300952e+02 4.73608102e+02 + 4.80000379e+02 4.86478933e+02 4.93044927e+02 4.99699543e+02 5.06443976e+02 + 5.13279438e+02 5.20207158e+02 5.27228382e+02 5.34344371e+02 5.41556404e+02 + 5.48865778e+02 5.56273806e+02 5.63781821e+02 5.71391170e+02 5.79103223e+02 + 5.86919366e+02 5.94841002e+02 6.02869557e+02 6.11006473e+02 6.19253213e+02 + 6.27611259e+02 6.36082113e+02 6.44667298e+02 6.53368357e+02 6.62186855e+02 + 6.71124375e+02 6.80182525e+02 6.89362932e+02 6.98667247e+02 7.08097142e+02 + 7.17654312e+02 7.27340476e+02 7.37157373e+02 7.47106768e+02 7.57190450e+02 + 7.67410232e+02 7.77767949e+02 7.88265465e+02 7.98904665e+02 8.09687462e+02 + 8.20615795e+02 8.31691626e+02 8.42916949e+02 8.54293779e+02 8.65824161e+02 + 8.77510169e+02 8.89353903e+02 9.01357492e+02 9.13523092e+02 9.25852892e+02 + 9.38349106e+02 9.51013982e+02 9.63849795e+02 9.76858852e+02 9.90043493e+02 + 1.00340609e+03 1.01694903e+03 1.03067477e+03 1.04458576e+03 1.05868451e+03 + 1.07297355e+03 1.08745545e+03 1.10213281e+03 1.11700827e+03 1.13208451e+03 + 1.14736422e+03 1.16285017e+03 1.17854513e+03 1.19445193e+03 1.21057342e+03 + 1.22691250e+03 1.24347211e+03 1.26025522e+03 1.27726485e+03 1.29450407e+03 + 1.31197596e+03 1.32968367e+03 1.34763038e+03 1.36581931e+03 1.38425374e+03 + 1.40293698e+03 1.42187239e+03 1.44106337e+03 1.46051336e+03 1.48022588e+03 + 1.50020445e+03 1.52045267e+03 1.54097419e+03 1.56177268e+03 1.58285189e+03 + 1.60421560e+03 1.62586766e+03 1.64781196e+03 1.67005244e+03 1.69259310e+03 + 1.71543799e+03 1.73859121e+03 1.76205693e+03 1.78583938e+03 1.80994281e+03 + 1.83437156e+03 1.85913003e+03 1.88422266e+03 1.90965397e+03 1.93542853e+03 + 1.96155096e+03 1.98802597e+03 2.01485831e+03 2.04205280e+03 2.06961434e+03 + 2.09754787e+03 2.12585843e+03 2.15455109e+03 2.18363101e+03 2.21310343e+03 + 2.24297363e+03 2.27324699e+03 2.30392895e+03 2.33502503e+03 2.36654081e+03 + 2.39848195e+03 2.43085420e+03 2.46366339e+03 2.49691539e+03 2.53061620e+03 + 2.56477187e+03 2.59938853e+03 2.63447242e+03 2.67002983e+03 2.70606716e+03 + 2.74259088e+03 2.77960756e+03 2.81712386e+03 2.85514651e+03 2.89368236e+03 + 2.93273832e+03 2.97232142e+03 3.01243877e+03 3.05309759e+03 3.09430517e+03 + 3.13606893e+03 3.17839638e+03 3.22129512e+03 3.26477287e+03 3.30883743e+03 + 3.35349673e+03 3.39875879e+03 3.44463176e+03 3.49112387e+03 3.53824349e+03 + 3.58599907e+03 3.63439922e+03 3.68345262e+03 3.73316809e+03 3.78355457e+03 + 3.83462112e+03 3.88637691e+03 3.93883124e+03 3.99199356e+03 4.04587340e+03 + 4.10048045e+03 4.15582454e+03 4.21191561e+03 4.26876373e+03 4.32637913e+03 + 4.38477217e+03 4.44395333e+03 4.50393327e+03 4.56472275e+03 4.62633270e+03 + 4.68877420e+03 4.75205848e+03 4.81619690e+03 4.88120099e+03 4.94708244e+03 + 5.01385310e+03 5.08152495e+03 5.15011018e+03 5.21962109e+03 5.29007019e+03 + 5.36147014e+03 5.43383378e+03 5.50717410e+03 5.58150430e+03 5.65683773e+03 + 5.73318793e+03 5.81056864e+03 5.88899374e+03 5.96847735e+03 6.04903375e+03 + 6.13067741e+03 6.21342302e+03 6.29728544e+03 6.38227975e+03 6.46842123e+03 + 6.55572536e+03 6.64420783e+03 6.73388454e+03 6.82477162e+03 6.91688540e+03 + 7.01024244e+03 7.10485951e+03 7.20075363e+03 7.29794203e+03 7.39644218e+03 + 7.49627178e+03 7.59744879e+03 7.69999137e+03 7.80391797e+03 7.90924727e+03 + 8.01599819e+03 8.12418992e+03 8.23384192e+03 8.34497389e+03 8.45760580e+03 + 8.57175791e+03 8.68745072e+03 8.80470504e+03 8.92354193e+03 9.04398276e+03 + 9.16604918e+03 9.28976313e+03 9.41514684e+03 9.54222285e+03 9.67101401e+03 + 9.80154345e+03 9.93383465e+03 1.00679114e+04 1.02037977e+04 1.03415182e+04 + 1.04810974e+04 1.06225605e+04 1.07659329e+04 1.09112405e+04 1.10585092e+04 + 1.12077657e+04 1.13590366e+04 1.15123493e+04 1.16677312e+04 1.18252103e+04 + 1.19848148e+04 1.21465736e+04 1.23105156e+04 1.24766704e+04 1.26450677e+04 + 1.28157379e+04 1.29887116e+04 1.31640199e+04 1.33416944e+04 1.35217669e+04 + 1.37042699e+04 1.38892361e+04 1.40766987e+04 1.42666916e+04 1.44592488e+04 + 1.46544049e+04 1.48521951e+04 1.50526548e+04 1.52558201e+04 1.54617276e+04 + 1.56704142e+04 1.58819174e+04 1.60962752e+04 1.63135263e+04 1.65337095e+04 + 1.67568646e+04 1.69830316e+04 1.72122512e+04 1.74445645e+04 1.76800134e+04 + 1.79186401e+04 1.81604876e+04 1.84055993e+04 1.86540192e+04 1.89057921e+04 + 1.91609631e+04 1.94195781e+04 1.96816837e+04 1.99473269e+04 2.02165555e+04 + 2.04894179e+04 2.07659631e+04 2.10462408e+04 2.13303014e+04 2.16181960e+04 + 2.19099763e+04 2.22056947e+04 2.25054044e+04 2.28091593e+04 2.31170140e+04 + 2.34290238e+04 2.37452448e+04 2.40657338e+04 2.43905484e+04 2.47197470e+04 + 2.50533889e+04 2.53915339e+04 2.57342428e+04 2.60815773e+04 2.64335997e+04 + 2.67903734e+04 2.71519624e+04 2.75184318e+04 2.78898474e+04 2.82662760e+04 + 2.86477853e+04 2.90344437e+04 2.94263209e+04 2.98234873e+04 3.02260142e+04 + 3.06339740e+04 3.10474400e+04 3.14664865e+04 3.18911890e+04 3.23216236e+04 + 3.27578678e+04 3.31999999e+04 3.36480995e+04 3.41022471e+04 3.45625243e+04 + 3.50290139e+04 3.55017997e+04 3.59809666e+04 3.64666009e+04 3.69587897e+04 + 3.74576216e+04 3.79631862e+04 3.84755745e+04 3.89948784e+04 3.95211913e+04 + 4.00546079e+04 4.05952240e+04 4.11431368e+04 4.16984447e+04 4.22612476e+04 + 4.28316467e+04 4.34097444e+04 4.39956447e+04 4.45894528e+04 4.51912756e+04 + 4.58012212e+04 4.64193992e+04 4.70459207e+04 4.76808984e+04 4.83244463e+04 + 4.89766802e+04 4.96377173e+04 5.03076764e+04 5.09866779e+04 5.16748439e+04 + 5.23722980e+04 5.30791657e+04 5.37955739e+04 5.45216515e+04 5.52575289e+04 + 5.60033385e+04 5.67592142e+04 5.75252919e+04 5.83017094e+04 5.90886062e+04 + 5.98861237e+04 6.06944053e+04 6.15135963e+04 6.23438438e+04 6.31852972e+04 + 6.40381076e+04 6.49024284e+04 6.57784150e+04 6.66662247e+04 6.75660171e+04 + 6.84779540e+04 6.94021994e+04 7.03389192e+04 7.12882819e+04 7.22504581e+04 + 7.32256209e+04 7.42139453e+04 7.52156092e+04 7.62307924e+04 7.72596776e+04 + 7.83024497e+04 7.93592960e+04 8.04304065e+04 8.15159738e+04 8.26161929e+04 + 8.37312617e+04 8.48613806e+04 8.60067526e+04 8.71675837e+04 8.83440825e+04 + 8.95364604e+04 9.07449319e+04 9.19697141e+04 9.32110271e+04 9.44690942e+04 + 9.57441413e+04 9.70363977e+04 9.83460956e+04 9.96734705e+04 1.01018761e+05 + 1.02382209e+05 1.03764059e+05 1.05164560e+05 1.06583964e+05 1.08022525e+05 + 1.09480502e+05 1.10958158e+05 1.12455758e+05 1.13973570e+05 1.15511869e+05 + 1.17070930e+05 1.18651033e+05 1.20252464e+05 1.21875508e+05 1.23520459e+05 + 1.25187612e+05 1.26877266e+05 1.28589725e+05 1.30325298e+05 1.32084295e+05 + 1.33867034e+05 1.35673834e+05 1.37505020e+05 1.39360922e+05 1.41241873e+05 + 1.43148212e+05 1.45080280e+05 1.47038425e+05 1.49022999e+05 1.51034359e+05 + 1.53072866e+05 1.55138887e+05 1.57232793e+05 1.59354960e+05 1.61505770e+05 + 1.63685609e+05 1.65894870e+05 1.68133949e+05 1.70403249e+05 1.72703178e+05 + 1.75034149e+05 1.77396580e+05 1.79790898e+05 1.82217531e+05 1.84676917e+05 + 1.87169497e+05 1.89695719e+05 1.92256038e+05 1.94850913e+05 1.97480811e+05 + 2.00146205e+05 2.02847573e+05 2.05585402e+05 2.08360183e+05 2.11172416e+05 + 2.14022605e+05 2.16911263e+05 2.19838909e+05 2.22806069e+05 2.25813278e+05 + 2.28861074e+05 2.31950007e+05 2.35080630e+05 2.38253508e+05 2.41469210e+05 + 2.44728314e+05 2.48031406e+05 2.51379080e+05 2.54771938e+05 2.58210588e+05 + 2.61695651e+05 2.65227751e+05 2.68807523e+05 2.72435612e+05 2.76112669e+05 + 2.79839355e+05 2.83616340e+05 2.87444303e+05 2.91323932e+05 2.95255924e+05 + 2.99240986e+05 3.03279835e+05 3.07373196e+05 3.11521804e+05 3.15726407e+05 + 3.19987758e+05 3.24306626e+05 3.28683784e+05 3.33120022e+05 3.37616135e+05 + 3.42172931e+05 3.46791231e+05 3.51471864e+05 3.56215672e+05 3.61023506e+05 + 3.65896232e+05 3.70834725e+05 3.75839872e+05 3.80912574e+05 3.86053742e+05 + 3.91264300e+05 3.96545185e+05 4.01897346e+05 4.07321745e+05 4.12819356e+05 + 4.18391169e+05 4.24038185e+05 4.29761418e+05 4.35561898e+05 4.41440667e+05 + 4.47398781e+05 4.53437311e+05 4.59557344e+05 4.65759979e+05 4.72046330e+05 + 4.78417528e+05 4.84874718e+05 4.91419060e+05 4.98051732e+05 5.04773924e+05 + 5.11586846e+05 5.18491721e+05 5.25489792e+05 5.32582315e+05 5.39770566e+05 + 5.47055836e+05 5.54439436e+05 5.61922691e+05 5.69506949e+05 5.77193570e+05 + 5.84983938e+05 5.92879453e+05 6.00881532e+05 6.08991616e+05 6.17211161e+05 + 6.25541646e+05 6.33984566e+05 6.42541441e+05 6.51213808e+05 6.60003225e+05 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 6.88504212e-06 6.97796937e-06 7.07215085e-06 7.16760350e-06 7.26434448e-06 + 7.36239116e-06 7.46176118e-06 7.56247239e-06 7.66454290e-06 7.76799106e-06 + 7.87283545e-06 7.97909492e-06 8.08678857e-06 8.19593576e-06 8.30655611e-06 + 8.41866950e-06 8.53229609e-06 8.64745628e-06 8.76417079e-06 8.88246060e-06 + 9.00234696e-06 9.12385142e-06 9.24699583e-06 9.37180231e-06 9.49829330e-06 + 9.62649154e-06 9.75642007e-06 9.88810223e-06 1.00215617e-05 1.01568225e-05 + 1.02939089e-05 1.04328455e-05 1.05736574e-05 1.07163698e-05 1.08610084e-05 + 1.10075992e-05 1.11561685e-05 1.13067430e-05 1.14593498e-05 1.16140164e-05 + 1.17707705e-05 1.19296403e-05 1.20906544e-05 1.22538417e-05 1.24192315e-05 + 1.25868536e-05 1.27567380e-05 1.29289154e-05 1.31034167e-05 1.32802732e-05 + 1.34595167e-05 1.36411795e-05 1.38252941e-05 1.40118938e-05 1.42010120e-05 + 1.43926827e-05 1.45869404e-05 1.47838200e-05 1.49833569e-05 1.51855869e-05 + 1.53905464e-05 1.55982722e-05 1.58088017e-05 1.60221728e-05 1.62384236e-05 + 1.64575933e-05 1.66797210e-05 1.69048468e-05 1.71330111e-05 1.73642550e-05 + 1.75986199e-05 1.78361481e-05 1.80768821e-05 1.83208654e-05 1.85681416e-05 + 1.88187554e-05 1.90727517e-05 1.93301762e-05 1.95910751e-05 1.98554954e-05 + 2.01234845e-05 2.03950907e-05 2.06703628e-05 2.09493502e-05 2.12321030e-05 + 2.15186722e-05 2.18091092e-05 2.21034663e-05 2.24017962e-05 2.27041527e-05 + 2.30105901e-05 2.33211635e-05 2.36359287e-05 2.39549423e-05 2.42782616e-05 + 2.46059447e-05 2.49380505e-05 2.52746388e-05 2.56157700e-05 2.59615054e-05 + 2.63119073e-05 2.66670385e-05 2.70269628e-05 2.73917451e-05 2.77614508e-05 + 2.81361465e-05 2.85158994e-05 2.89007778e-05 2.92908509e-05 2.96861888e-05 + 3.00868626e-05 3.04929443e-05 3.09045068e-05 3.13216242e-05 3.17443714e-05 + 3.21728244e-05 3.26070603e-05 3.30471570e-05 3.34931937e-05 3.39452505e-05 + 3.44034088e-05 3.48677508e-05 3.53383600e-05 3.58153210e-05 3.62987195e-05 + 3.67886424e-05 3.72851779e-05 3.77884150e-05 3.82984444e-05 3.88153576e-05 + 3.93392475e-05 3.98702084e-05 4.04083357e-05 4.09537260e-05 4.15064775e-05 + 4.20666894e-05 4.26344625e-05 4.32098988e-05 4.37931018e-05 4.43841763e-05 + 4.49832284e-05 4.55903660e-05 4.62056981e-05 4.68293353e-05 4.74613897e-05 + 4.81019749e-05 4.87512062e-05 4.94092000e-05 5.00760748e-05 5.07519504e-05 + 5.14369483e-05 5.21311915e-05 5.28348050e-05 5.35479151e-05 5.42706500e-05 + 5.50031397e-05 5.57455158e-05 5.64979117e-05 5.72604626e-05 5.80333057e-05 + 5.88165799e-05 5.96104258e-05 6.04149863e-05 6.12304060e-05 6.20568313e-05 + 6.28944109e-05 6.37432952e-05 6.46036370e-05 6.54755907e-05 6.63593132e-05 + 6.72549633e-05 6.81627019e-05 6.90826923e-05 7.00150997e-05 7.09600919e-05 + 7.19178385e-05 7.28885119e-05 7.38722864e-05 7.48693389e-05 7.58798486e-05 + 7.69039971e-05 7.79419685e-05 7.89939494e-05 8.00601288e-05 8.11406985e-05 + 8.22358526e-05 8.33457879e-05 8.44707040e-05 8.56108031e-05 8.67662901e-05 + 8.79373726e-05 8.91242612e-05 9.03271693e-05 9.15463129e-05 9.27819113e-05 + 9.40341866e-05 9.53033637e-05 9.65896710e-05 9.78933395e-05 9.92146035e-05 + 1.00553701e-04 1.01910872e-04 1.03286360e-04 1.04680414e-04 1.06093283e-04 + 1.07525221e-04 1.08976487e-04 1.10447340e-04 1.11938045e-04 1.13448870e-04 + 1.14980087e-04 1.16531970e-04 1.18104799e-04 1.19698857e-04 1.21314430e-04 + 1.22951808e-04 1.24611285e-04 1.26293161e-04 1.27997736e-04 1.29725319e-04 + 1.31476218e-04 1.33250750e-04 1.35049232e-04 1.36871988e-04 1.38719346e-04 + 1.40591638e-04 1.42489200e-04 1.44412373e-04 1.46361504e-04 1.48336941e-04 + 1.50339042e-04 1.52368164e-04 1.54424673e-04 1.56508940e-04 1.58621337e-04 + 1.60762245e-04 1.62932050e-04 1.65131140e-04 1.67359911e-04 1.69618763e-04 + 1.71908104e-04 1.74228343e-04 1.76579899e-04 1.78963194e-04 1.81378656e-04 + 1.83826719e-04 1.86307824e-04 1.88822416e-04 1.91370948e-04 1.93953877e-04 + 1.96571668e-04 1.99224791e-04 2.01913723e-04 2.04638948e-04 2.07400955e-04 + 2.10200241e-04 2.13037308e-04 2.15912668e-04 2.18826836e-04 2.21780337e-04 + 2.24773701e-04 2.27807466e-04 2.30882178e-04 2.33998389e-04 2.37156660e-04 + 2.40357558e-04 2.43601658e-04 2.46889543e-04 2.50221806e-04 2.53599044e-04 + 2.57021864e-04 2.60490882e-04 2.64006721e-04 2.67570013e-04 2.71181399e-04 + 2.74841528e-04 2.78551058e-04 2.82310655e-04 2.86120995e-04 2.89982763e-04 + 2.93896654e-04 2.97863370e-04 3.01883625e-04 3.05958141e-04 3.10087651e-04 + 3.14272896e-04 3.18514630e-04 3.22813614e-04 3.27170622e-04 3.31586436e-04 + 3.36061850e-04 3.40597669e-04 3.45194708e-04 3.49853792e-04 3.54575761e-04 + 3.59361461e-04 3.64211754e-04 3.69127512e-04 3.74109617e-04 3.79158966e-04 + 3.84276465e-04 3.89463035e-04 3.94719609e-04 4.00047130e-04 4.05446556e-04 + 4.10918859e-04 4.16465021e-04 4.22086040e-04 4.27782925e-04 4.33556701e-04 + 4.39408405e-04 4.45339090e-04 4.51349821e-04 4.57441679e-04 4.63615758e-04 + 4.69873169e-04 4.76215036e-04 4.82642499e-04 4.89156713e-04 4.95758850e-04 + 5.02450095e-04 5.09231652e-04 5.16104740e-04 5.23070593e-04 5.30130464e-04 + 5.37285623e-04 5.44537354e-04 5.51886961e-04 5.59335767e-04 5.66885108e-04 + 5.74536343e-04 5.82290846e-04 5.90150012e-04 5.98115253e-04 6.06188000e-04 + 6.14369705e-04 6.22661838e-04 6.31065890e-04 6.39583371e-04 6.48215813e-04 + 6.56964766e-04 6.65831804e-04 6.74818520e-04 6.83926530e-04 6.93157470e-04 + 7.02513000e-04 7.11994801e-04 7.21604578e-04 7.31344057e-04 7.41214991e-04 + 7.51219152e-04 7.61358339e-04 7.71634374e-04 7.82049105e-04 7.92604403e-04 + 8.03302166e-04 8.14144316e-04 8.25132802e-04 8.36269600e-04 8.47556711e-04 + 8.58996164e-04 8.70590014e-04 8.82340347e-04 8.94249274e-04 9.06318935e-04 + 9.18551500e-04 9.30949168e-04 9.43514166e-04 9.56248755e-04 9.69155221e-04 + 9.82235886e-04 9.95493101e-04 1.00892925e-03 1.02254674e-03 1.03634803e-03 + 1.05033559e-03 1.06451195e-03 1.07887964e-03 1.09344125e-03 1.10819941e-03 + 1.12315675e-03 1.13831597e-03 1.15367979e-03 1.16925098e-03 1.18503233e-03 + 1.20102668e-03 1.21723691e-03 1.23366593e-03 1.25031669e-03 1.26719218e-03 + 1.28429545e-03 1.30162955e-03 1.31919761e-03 1.33700279e-03 1.35504829e-03 + 1.37333734e-03 1.39187324e-03 1.41065932e-03 1.42969896e-03 1.44899557e-03 + 1.46855263e-03 1.48837365e-03 1.50846219e-03 1.52882187e-03 1.54945635e-03 + 1.57036932e-03 1.59156456e-03 1.61304587e-03 1.63481711e-03 1.65688220e-03 + 1.67924510e-03 1.70190983e-03 1.72488046e-03 1.74816113e-03 1.77175602e-03 + 1.79566937e-03 1.81990548e-03 1.84446870e-03 1.86936345e-03 1.89459420e-03 + 1.92016550e-03 1.94608192e-03 1.97234815e-03 1.99896888e-03 2.02594892e-03 + 2.05329310e-03 2.08100635e-03 2.10909364e-03 2.13756003e-03 2.16641063e-03 + 2.19565062e-03 2.22528526e-03 2.25531988e-03 2.28575988e-03 2.31661073e-03 + 2.34787797e-03 2.37956722e-03 2.41168418e-03 2.44423463e-03 2.47722440e-03 + 2.51065944e-03 2.54454575e-03 2.57888943e-03 2.61369664e-03 2.64897364e-03 + 2.68472677e-03 2.72096247e-03 2.75768723e-03 2.79490767e-03 2.83263047e-03 + 2.87086242e-03 2.90961038e-03 2.94888132e-03 2.98868230e-03 3.02902048e-03 + 3.06990309e-03 3.11133750e-03 3.15333115e-03 3.19589159e-03 3.23902646e-03 + 3.28274352e-03 3.32705063e-03 3.37195576e-03 3.41746696e-03 3.46359243e-03 + 3.51034046e-03 3.55771944e-03 3.60573789e-03 3.65440445e-03 3.70372786e-03 + 3.75371699e-03 3.80438082e-03 3.85572845e-03 3.90776913e-03 3.96051220e-03 + 4.01396713e-03 4.06814355e-03 4.12305119e-03 4.17869991e-03 4.23509973e-03 + 4.29226077e-03 4.35019331e-03 4.40890776e-03 4.46841469e-03 4.52872477e-03 + 4.58984886e-03 4.65179794e-03 4.71458315e-03 4.77821577e-03 4.84270723e-03 + 4.90806913e-03 4.97431323e-03 5.04145141e-03 5.10949576e-03 5.17845851e-03 + 5.24835204e-03 5.31918892e-03 5.39098188e-03 5.46374384e-03 5.53748786e-03 + 5.61222720e-03 5.68797530e-03 5.76474576e-03 5.84255240e-03 5.92140919e-03 + 6.00133031e-03 6.08233012e-03 6.16442319e-03 6.24762426e-03 6.33194830e-03 + 6.41741045e-03 6.50402609e-03 6.59181077e-03 6.68078028e-03 6.77095062e-03 + 6.86233798e-03 6.95495879e-03 7.04882970e-03 7.14396759e-03 7.24038955e-03 + 7.33811291e-03 7.43715525e-03 7.53753436e-03 7.63926828e-03 7.74237530e-03 + 7.84687395e-03 7.95278302e-03 8.06012155e-03 8.16890882e-03 8.27916438e-03 + 8.39090807e-03 8.50415995e-03 8.61894040e-03 8.73527003e-03 8.85316976e-03 + 8.97266078e-03 9.09376457e-03 9.21650290e-03 9.34089782e-03 9.46697169e-03 + 9.59474718e-03 9.72424726e-03 9.85549519e-03 9.98851457e-03 1.01233293e-02 + 1.02599637e-02 1.03984421e-02 1.05387897e-02 1.06810315e-02 1.08251931e-02 + 1.09713005e-02 1.11193798e-02 1.12694578e-02 1.14215614e-02 1.15757180e-02 + 1.17319552e-02 1.18903011e-02 1.20507842e-02 1.22134334e-02 1.23782778e-02 + 1.25453471e-02 1.27146713e-02 1.28862810e-02 1.30602068e-02 1.32364801e-02 + 1.34151325e-02 1.35961963e-02 1.37797038e-02 1.39656881e-02 1.41541827e-02 + 1.43452214e-02 1.45388385e-02 1.47350688e-02 1.49339477e-02 1.51355108e-02 + 1.53397945e-02 1.55468353e-02 1.57566706e-02 1.59693380e-02 1.61848758e-02 + 1.64033226e-02 1.66247179e-02 1.68491013e-02 1.70765132e-02 1.73069945e-02 + 1.75405866e-02 1.77773315e-02 1.80172717e-02 1.82604504e-02 1.85069113e-02 + 1.87566986e-02 1.90098573e-02 1.92664329e-02 1.95264715e-02 1.97900198e-02 + 2.00571252e-02 2.03278358e-02 2.06022001e-02 2.08802675e-02 2.11620880e-02 + 2.14477122e-02 2.17371914e-02 2.20305778e-02 2.23279240e-02 2.26292834e-02 + 2.29347103e-02 2.32442596e-02 2.35579868e-02 2.38759484e-02 2.41982015e-02 + 2.45248040e-02 2.48558147e-02 2.51912931e-02 2.55312994e-02 2.58758947e-02 + 2.62251410e-02 2.65791011e-02 2.69378386e-02 2.73014180e-02 2.76699046e-02 + 2.80433646e-02 2.84218652e-02 2.88054745e-02 2.91942613e-02 2.95882955e-02 + 2.99876481e-02 3.03923906e-02 3.08025960e-02 3.12183379e-02 3.16396911e-02 + 3.20667312e-02 3.24995351e-02 3.29381806e-02 3.33827464e-02 3.38333125e-02 + 3.42899600e-02 3.47527707e-02 3.52218280e-02 3.56972162e-02 3.61790207e-02 + 3.66673281e-02 3.71622261e-02 3.76638038e-02 3.81721513e-02 3.86873599e-02 + 3.92095223e-02 3.97387323e-02 4.02750850e-02 4.08186768e-02 4.13696055e-02 + 4.19279701e-02 4.24938709e-02 4.30674097e-02 4.36486895e-02 4.42378148e-02 + 4.48348916e-02 4.54400270e-02 4.60533300e-02 4.66749107e-02 4.73048808e-02 + 4.79433537e-02 4.85904440e-02 4.92462681e-02 4.99109438e-02 5.05845906e-02 + 5.12673296e-02 5.19592835e-02 5.26605767e-02 5.33713353e-02 5.40916869e-02 + 5.48217611e-02 5.55616891e-02 5.63116039e-02 5.70716403e-02 5.78419349e-02 + 5.86226261e-02 5.94138543e-02 6.02157617e-02 6.10284924e-02 6.18521925e-02 + 6.26870100e-02 6.35330951e-02 6.43905998e-02 6.52596782e-02 6.61404865e-02 + 6.70331831e-02 6.79379283e-02 6.88548849e-02 6.97842177e-02 7.07260936e-02 + 7.16806820e-02 7.26481545e-02 7.36286849e-02 7.46224495e-02 7.56296269e-02 + 7.66503982e-02 7.76849468e-02 7.87334586e-02 7.97961222e-02 8.08731286e-02 + 8.19646713e-02 8.30709465e-02 8.41921531e-02 8.53284926e-02 8.64801692e-02 + 8.76473900e-02 8.88303647e-02 9.00293060e-02 9.12444294e-02 9.24759533e-02 + 9.37240991e-02 9.49890910e-02 9.62711565e-02 9.75705260e-02 9.88874331e-02 + 1.00222114e-01 1.01574810e-01 1.02945763e-01 1.04335219e-01 1.05743429e-01 + 1.07170646e-01 1.08617125e-01 1.10083128e-01 1.11568917e-01 1.13074760e-01 + 1.14600928e-01 1.16147694e-01 1.17715336e-01 1.19304138e-01 1.20914383e-01 + 1.22546361e-01 1.24200367e-01 1.25876696e-01 1.27575651e-01 1.29297536e-01 + 1.31042662e-01 1.32811342e-01 1.34603893e-01 1.36420639e-01 1.38261905e-01 + 1.40128022e-01 1.42019327e-01 1.43936158e-01 1.45878861e-01 1.47847785e-01 + 1.49843283e-01 1.51865714e-01 1.53915442e-01 1.55992835e-01 1.58098267e-01 + 1.60232115e-01 1.62394764e-01 1.64586603e-01 1.66808024e-01 1.69059428e-01 + 1.71341219e-01 1.73653807e-01 1.75997609e-01 1.78373044e-01 1.80780541e-01 + 1.83220532e-01 1.85693455e-01 1.88199755e-01 1.90739882e-01 1.93314294e-01 + 1.95923452e-01 1.98567827e-01 2.01247892e-01 2.03964130e-01 2.06717029e-01 + 2.09507084e-01 2.12334796e-01 2.15200673e-01 2.18105232e-01 2.21048993e-01 + 2.24032486e-01 2.27056247e-01 2.30120820e-01 2.33226755e-01 2.36374611e-01 + 2.39564954e-01 2.42798356e-01 2.46075400e-01 2.49396673e-01 2.52762774e-01 + 2.56174308e-01 2.59631886e-01 2.63136131e-01 2.66687674e-01 2.70287151e-01 + 2.73935210e-01 2.77632507e-01 2.81379706e-01 2.85177481e-01 2.89026515e-01 + 2.92927499e-01 2.96881135e-01 3.00888132e-01 3.04949212e-01 3.09065104e-01 + 3.13236549e-01 3.17464295e-01 3.21749103e-01 3.26091743e-01 3.30492995e-01 + 3.34953651e-01 3.39474513e-01 3.44056392e-01 3.48700113e-01 3.53406510e-01 + 3.58176430e-01 3.63010728e-01 3.67910276e-01 3.72875952e-01 3.77908650e-01 + 3.83009274e-01 3.88178741e-01 3.93417980e-01 3.98727933e-01 4.04109554e-01 + 4.09563811e-01 4.15091684e-01 4.20694167e-01 4.26372266e-01 4.32127002e-01 + 4.37959410e-01 4.43870538e-01 4.49861448e-01 4.55933217e-01 4.62086937e-01 + 4.68323713e-01 4.74644667e-01 4.81050935e-01 4.87543668e-01 4.94124034e-01 + 5.00793214e-01 5.07552408e-01 5.14402831e-01 5.21345713e-01 5.28382304e-01 + 5.35513867e-01 5.42741685e-01 5.50067057e-01 5.57491299e-01 5.65015746e-01 + 5.72641750e-01 5.80370682e-01 5.88203931e-01 5.96142905e-01 6.04189032e-01 + 6.12343757e-01 6.20608546e-01 6.28984885e-01 6.37474279e-01 6.46078254e-01 + 6.54798357e-01 6.63636155e-01 6.72593236e-01 6.81671211e-01 6.90871711e-01 + 7.00196390e-01 7.09646924e-01 7.19225012e-01 7.28932374e-01 7.38770757e-01 + 7.48741929e-01 7.58847681e-01 7.69089830e-01 7.79470217e-01 7.89990708e-01 + 8.00653193e-01 8.11459591e-01 8.22411841e-01 8.33511914e-01 8.44761805e-01 + 8.56163535e-01 8.67719154e-01 8.79430738e-01 8.91300394e-01 9.03330254e-01 + 9.15522481e-01 9.27879266e-01 9.40402831e-01 9.53095425e-01 9.65959331e-01 + 9.78996861e-01 9.92210359e-01 1.00560220e+00 1.01917479e+00 1.03293057e+00 + 1.04687200e+00 1.06100161e+00 1.07532192e+00 1.08983552e+00 1.10454500e+00 + 1.11945302e+00 1.13456225e+00 1.14987541e+00 1.16539525e+00 1.18112456e+00 + 1.19706617e+00 1.21322295e+00 1.22959779e+00 1.24619364e+00 1.26301349e+00 + 1.28006035e+00 1.29733729e+00 1.31484742e+00 1.33259389e+00 1.35057988e+00 + 1.36880862e+00 1.38728340e+00 1.40600753e+00 1.42498438e+00 1.44421736e+00 + 1.46370993e+00 1.48346558e+00 1.50348788e+00 1.52378042e+00 1.54434685e+00 + 1.56519086e+00 1.58631621e+00 1.60772668e+00 1.62942613e+00 1.65141846e+00 + 1.67370761e+00 1.69629760e+00 1.71919249e+00 1.74239639e+00 1.76591347e+00 + 1.78974797e+00 1.81390415e+00 1.83838637e+00 1.86319903e+00 1.88834658e+00 + 1.91383355e+00 1.93966452e+00 1.96584412e+00 1.99237707e+00 2.01926814e+00 + 2.04652215e+00 2.07414401e+00 2.10213869e+00 2.13051120e+00 2.15926666e+00 + 2.18841023e+00 2.21794715e+00 2.24788273e+00 2.27822235e+00 2.30897147e+00 + 2.34013560e+00 2.37172035e+00 2.40373141e+00 2.43617451e+00 2.46905550e+00 + 2.50238028e+00 2.53615485e+00 2.57038527e+00 2.60507770e+00 2.64023837e+00 + 2.67587361e+00 2.71198981e+00 2.74859347e+00 2.78569117e+00 2.82328958e+00 + 2.86139545e+00 2.90001564e+00 2.93915708e+00 2.97882681e+00 3.01903197e+00 + 3.05977977e+00 3.10107754e+00 3.14293271e+00 3.18535280e+00 3.22834543e+00 + 3.27191833e+00 3.31607934e+00 3.36083638e+00 3.40619751e+00 3.45217088e+00 + 3.49876474e+00 3.54598749e+00 3.59384760e+00 3.64235367e+00 3.69151443e+00 + 3.74133872e+00 3.79183548e+00 3.84301379e+00 3.89488285e+00 3.94745200e+00 + 4.00073066e+00 4.05472843e+00 4.10945500e+00 4.16492022e+00 4.22113405e+00 + 4.27810659e+00 4.33584809e+00 4.39436893e+00 4.45367962e+00 4.51379083e+00 + 4.57471336e+00 4.63645816e+00 4.69903632e+00 4.76245910e+00 4.82673790e+00 + 4.89188427e+00 4.95790991e+00 5.02482670e+00 5.09264667e+00 5.16138200e+00 + 5.23104505e+00 5.30164834e+00 5.37320456e+00 5.44572658e+00 5.51922742e+00 + 5.59372030e+00 5.66921861e+00 5.74573592e+00 5.82328598e+00 5.90188273e+00 + 5.98154030e+00 6.06227301e+00 6.14409536e+00 6.22702207e+00 6.31106804e+00 + 6.39624837e+00 6.48257839e+00 6.57007359e+00 6.65874972e+00 6.74862270e+00 + 6.83970870e+00 6.93202409e+00 7.02558545e+00 7.12040961e+00 7.21651361e+00 + 7.31391472e+00 7.41263046e+00 7.51267855e+00 7.61407700e+00 7.71684401e+00 + 7.82099807e+00 7.92655790e+00 8.03354246e+00 8.14197099e+00 8.25186298e+00 + 8.36323818e+00 8.47611660e+00 8.59051855e+00 8.70646457e+00 8.82397552e+00 + 8.94307250e+00 9.06377694e+00 9.18611052e+00 9.31009524e+00 9.43575337e+00 + 9.56310751e+00 9.69218054e+00 9.82299567e+00 9.95557641e+00 1.00899466e+01 + 1.02261304e+01 1.03641522e+01 1.05040369e+01 1.06458096e+01 1.07894959e+01 + 1.09351215e+01 1.10827125e+01 1.12322956e+01 1.13838977e+01 1.15375459e+01 + 1.16932678e+01 1.18510916e+01 1.20110455e+01 1.21731583e+01 1.23374591e+01 + 1.25039775e+01 1.26727434e+01 1.28437871e+01 1.30171394e+01 1.31928314e+01 + 1.33708948e+01 1.35513614e+01 1.37342638e+01 1.39196348e+01 1.41075078e+01 + 1.42979165e+01 1.44908951e+01 1.46864784e+01 1.48847015e+01 1.50855999e+01 + 1.52892099e+01 1.54955680e+01 1.57047113e+01 1.59166774e+01 1.61315045e+01 + 1.63492310e+01 1.65698962e+01 1.67935397e+01 1.70202017e+01 1.72499229e+01 + 1.74827447e+01 1.77187089e+01 1.79578579e+01 1.82002347e+01 1.84458828e+01 + 1.86948465e+01 1.89471703e+01 1.92028999e+01 1.94620809e+01 1.97247602e+01 + 1.99909848e+01 2.02608026e+01 2.05342622e+01 2.08114127e+01 2.10923038e+01 + 2.13769861e+01 2.16655108e+01 2.19579297e+01 2.22542953e+01 2.25546610e+01 + 2.28590807e+01 2.31676092e+01 2.34803019e+01 2.37972150e+01 2.41184054e+01 + 2.44439309e+01 2.47738501e+01 2.51082222e+01 2.54471072e+01 2.57905662e+01 + 2.61386609e+01 2.64914538e+01 2.68490083e+01 2.72113887e+01 2.75786602e+01 + 2.79508887e+01 2.83281412e+01 2.87104854e+01 2.90979902e+01 2.94907251e+01 + 2.98887607e+01 3.02921686e+01 3.07010212e+01 3.11153922e+01 3.15353559e+01 + 3.19609878e+01 3.23923645e+01 3.28295635e+01 3.32726633e+01 3.37217437e+01 + 3.41768853e+01 3.46381699e+01 3.51056804e+01 3.55795009e+01 3.60597166e+01 + 3.65464138e+01 3.70396798e+01 3.75396035e+01 3.80462746e+01 3.85597843e+01 + 3.90802248e+01 3.96076897e+01 4.01422737e+01 4.06840730e+01 4.12331850e+01 + 4.17897083e+01 4.23537430e+01 4.29253905e+01 4.35047534e+01 4.40919360e+01 + 4.46870439e+01 4.52901838e+01 4.59014643e+01 4.65209953e+01 4.71488881e+01 + 4.77852555e+01 4.84302120e+01 4.90838734e+01 4.97463572e+01 5.04177826e+01 + 5.10982703e+01 5.17879424e+01 5.24869230e+01 5.31953378e+01 5.39133140e+01 + 5.46409807e+01 5.53784687e+01 5.61259106e+01 5.68834406e+01 5.76511951e+01 + 5.84293119e+01 5.92179309e+01 6.00171939e+01 6.08272446e+01 6.16482284e+01 + 6.24802931e+01 6.33235881e+01 6.41782651e+01 6.50444776e+01 6.59223814e+01 + 6.68121342e+01 6.77138960e+01 6.86278288e+01 6.95540970e+01 7.04928670e+01 + 7.14443075e+01 7.24085896e+01 7.33858866e+01 7.43763742e+01 7.53802303e+01 + 7.63976355e+01 7.74287726e+01 7.84738269e+01 7.95329863e+01 8.06064411e+01 + 8.16943843e+01 8.27970114e+01 8.39145207e+01 8.50471130e+01 8.61949919e+01 + 8.73583636e+01 8.85374374e+01 8.97324251e+01 9.09435415e+01 9.21710043e+01 + 9.34150341e+01 9.46758546e+01 9.59536924e+01 9.72487771e+01 9.85613415e+01 + 9.98916216e+01 1.01239856e+02 1.02606288e+02 1.03991163e+02 1.05394729e+02 + 1.06817239e+02 1.08258949e+02 1.09720118e+02 1.11201007e+02 1.12701885e+02 + 1.14223019e+02 1.15764685e+02 1.17327158e+02 1.18910720e+02 1.20515655e+02 + 1.22142252e+02 1.23790803e+02 1.25461604e+02 1.27154957e+02 1.28871164e+02 + 1.30610535e+02 1.32373382e+02 1.34160023e+02 1.35970777e+02 1.37805972e+02 + 1.39665936e+02 1.41551004e+02 1.43461514e+02 1.45397811e+02 1.47360241e+02 + 1.49349159e+02 1.51364921e+02 1.53407890e+02 1.55478433e+02 1.57576921e+02 + 1.59703733e+02 1.61859251e+02 1.64043861e+02 1.66257957e+02 1.68501937e+02 + 1.70776204e+02 1.73081166e+02 1.75417238e+02 1.77784841e+02 1.80184398e+02 + 1.82616343e+02 1.85081111e+02 1.87579147e+02 1.90110898e+02 1.92676820e+02 + 1.95277375e+02 1.97913029e+02 2.00584256e+02 2.03291537e+02 2.06035358e+02 + 2.08816212e+02 2.11634600e+02 2.14491027e+02 2.17386007e+02 2.20320061e+02 + 2.23293716e+02 2.26307506e+02 2.29361973e+02 2.32457666e+02 2.35595141e+02 + 2.38774963e+02 2.41997703e+02 2.45263940e+02 2.48574262e+02 2.51929263e+02 + 2.55329546e+02 2.58775723e+02 2.62268413e+02 2.65808243e+02 2.69395851e+02 + 2.73031880e+02 2.76716985e+02 2.80451827e+02 2.84237079e+02 2.88073420e+02 + 2.91961540e+02 2.95902138e+02 2.99895922e+02 3.03943610e+02 3.08045930e+02 + 3.12203619e+02 3.16417423e+02 3.20688102e+02 3.25016422e+02 3.29403160e+02 + 3.33849107e+02 3.38355061e+02 3.42921831e+02 3.47550238e+02 3.52241116e+02 + 3.56995306e+02 3.61813663e+02 3.66697053e+02 3.71646355e+02 3.76662457e+02 + 3.81746261e+02 3.86898681e+02 3.92120643e+02 3.97413086e+02 4.02776961e+02 + 4.08213232e+02 4.13722877e+02 4.19306884e+02 4.24966259e+02 4.30702019e+02 + 4.36515194e+02 4.42406829e+02 4.48377983e+02 4.54429730e+02 4.60563157e+02 + 4.66779367e+02 4.73079477e+02 4.79464620e+02 4.85935942e+02 4.92494608e+02 + 4.99141796e+02 5.05878701e+02 5.12706534e+02 5.19626522e+02 5.26639909e+02 + 5.33747955e+02 5.40951938e+02 5.48253154e+02 5.55652913e+02 5.63152548e+02 + 5.70753404e+02 5.78456849e+02 5.86264268e+02 5.94177062e+02 6.02196656e+02 + 6.10324490e+02 6.18562025e+02 6.26910742e+02 6.35372141e+02 6.43947744e+02 + 6.52639091e+02 6.61447746e+02 6.70375290e+02 6.79423329e+02 6.88593490e+02 + 6.97887420e+02 7.07306790e+02 7.16853293e+02 7.26528644e+02 7.36334584e+02 + 7.46272874e+02 7.56345302e+02 7.66553676e+02 7.76899833e+02 7.87385631e+02 + 7.98012956e+02 8.08783718e+02 8.19699853e+02 8.30763322e+02 8.41976115e+02 + 8.53340247e+02 8.64857760e+02 8.76530724e+02 8.88361238e+02 9.00351429e+02 + 9.12503451e+02 9.24819488e+02 9.37301755e+02 9.49952494e+02 9.62773980e+02 + 9.75768518e+02 9.88938442e+02 1.00228612e+03 1.01581395e+03 1.02952437e+03 + 1.04341984e+03 1.05750285e+03 1.07177594e+03 1.08624167e+03 1.10090265e+03 + 1.11576151e+03 1.13082091e+03 1.14608358e+03 1.16155224e+03 1.17722968e+03 + 1.19311872e+03 1.20922222e+03 1.22554306e+03 1.24208419e+03 1.25884857e+03 + 1.27583922e+03 1.29305919e+03 1.31051158e+03 1.32819952e+03 1.34612620e+03 + 1.36429483e+03 1.38270869e+03 1.40137107e+03 1.42028535e+03 1.43945490e+03 + 1.45888319e+03 1.47857370e+03 1.49852998e+03 1.51875560e+03 1.53925421e+03 + 1.56002949e+03 1.58108517e+03 1.60242504e+03 1.62405293e+03 1.64597273e+03 + 1.66818839e+03 1.69070388e+03 1.71352328e+03 1.73665066e+03 1.76009019e+03 + 1.78384609e+03 1.80792261e+03 1.83232410e+03 1.85705494e+03 1.88211956e+03 + 1.90752249e+03 1.93326827e+03 1.95936155e+03 1.98580700e+03 2.01260939e+03 + 2.03977353e+03 2.06730431e+03 2.09520667e+03 2.12348562e+03 2.15214626e+03 + 2.18119372e+03 2.21063324e+03 2.24047011e+03 2.27070968e+03 2.30135739e+03 + 2.33241876e+03 2.36389936e+03 2.39580485e+03 2.42814097e+03 2.46091353e+03 + 2.49412842e+03 2.52779162e+03 2.56190916e+03 2.59648719e+03 2.63153191e+03 + 2.66704964e+03 2.70304674e+03 2.73952970e+03 2.77650507e+03 2.81397949e+03 + 2.85195970e+03 2.89045253e+03 2.92946490e+03 2.96900382e+03 3.00907640e+03 + 3.04968983e+03 3.09085142e+03 3.13256857e+03 3.17484877e+03 3.21769963e+03 + 3.26112884e+03 3.30514422e+03 3.34975367e+03 3.39496522e+03 3.44078698e+03 + 3.48722720e+03 3.53429423e+03 3.58199651e+03 3.63034263e+03 3.67934128e+03 + 3.72900126e+03 3.77933150e+03 3.83034105e+03 3.88203907e+03 3.93443486e+03 + 3.98753784e+03 4.04135754e+03 4.09590365e+03 4.15118596e+03 4.20721442e+03 + 4.26399909e+03 4.32155018e+03 4.37987804e+03 4.43899315e+03 4.49890614e+03 + 4.55962777e+03 4.62116895e+03 4.68354076e+03 4.74675440e+03 4.81082123e+03 + 4.87575277e+03 4.94156069e+03 5.00825682e+03 5.07585314e+03 5.14436181e+03 + 5.21379514e+03 5.28416561e+03 5.35548586e+03 5.42776873e+03 5.50102719e+03 + 5.57527443e+03 5.65052377e+03 5.72678876e+03 5.80408309e+03 5.88242066e+03 + 5.96181555e+03 6.04228203e+03 6.12383457e+03 6.20648782e+03 6.29025664e+03 + 6.37515608e+03 6.46120141e+03 6.54840809e+03 6.63679180e+03 6.72636842e+03 + 6.81715406e+03 6.90916502e+03 7.00241786e+03 7.09692932e+03 7.19271641e+03 + 7.28979633e+03 7.38818654e+03 7.48790472e+03 7.58896879e+03 7.69139692e+03 + 7.79520752e+03 7.90041925e+03 8.00705102e+03 8.11512200e+03 8.22465161e+03 + 8.33565953e+03 8.44816573e+03 8.56219042e+03 8.67775410e+03 8.79487754e+03 + 8.91358179e+03 9.03388820e+03 9.15581837e+03 9.27939423e+03 9.40463799e+03 + 9.53157217e+03 9.66021957e+03 9.79060332e+03 9.92274686e+03 1.00566739e+04 + 1.01924086e+04 1.03299753e+04 1.04693988e+04 1.06107040e+04 1.07539164e+04 + 1.08990618e+04 1.10461661e+04 1.11952560e+04 1.13463581e+04 1.14994996e+04 + 1.16547081e+04 1.18120114e+04 1.19714378e+04 1.21330160e+04 1.22967751e+04 + 1.24627443e+04 1.26309537e+04 1.28014334e+04 1.29742140e+04 1.31493267e+04 + 1.33268028e+04 1.35066744e+04 1.36889736e+04 1.38737334e+04 1.40609868e+04 + 1.42507676e+04 1.44431099e+04 1.46380482e+04 1.48356176e+04 1.50358536e+04 + 1.52387922e+04 1.54444698e+04 1.56529234e+04 1.58641905e+04 1.60783091e+04 + 1.62953177e+04 1.65152552e+04 1.67381612e+04 1.69640758e+04 1.71930395e+04 + 1.74250936e+04 1.76602796e+04 1.78986400e+04 1.81402175e+04 1.83850556e+04 + 1.86331983e+04 1.88846901e+04 1.91395763e+04 1.93979027e+04 1.96597157e+04 + 1.99250625e+04 2.01939905e+04 2.04665484e+04 2.07427849e+04 2.10227497e+04 + 2.13064933e+04 2.15940665e+04 2.18855211e+04 2.21809095e+04 2.24802847e+04 + 2.27837006e+04 2.30912116e+04 2.34028732e+04 2.37187412e+04 2.40388725e+04 + 2.43633245e+04 2.46921558e+04 2.50254252e+04 2.53631928e+04 2.57055192e+04 + 2.60524660e+04 2.64040955e+04 2.67604709e+04 2.71216563e+04 2.74877167e+04 + 2.78587178e+04 2.82347262e+04 2.86158096e+04 2.90020365e+04 2.93934763e+04 + 2.97901994e+04 3.01922770e+04 3.05997814e+04 3.10127860e+04 3.14313648e+04 + 3.18555932e+04 3.22855473e+04 3.27213046e+04 3.31629433e+04 3.36105427e+04 + 3.40641834e+04 3.45239469e+04 3.49899158e+04 3.54621738e+04 3.59408060e+04 + 3.64258982e+04 3.69175376e+04 3.74158128e+04 3.79208131e+04 3.84326294e+04 + 3.89513537e+04 3.94770792e+04 4.00099004e+04 4.05499131e+04 4.10972143e+04 + 4.16519024e+04 4.22140771e+04 4.27838395e+04 4.33612920e+04 4.39465383e+04 + 4.45396837e+04 4.51408347e+04 4.57500995e+04 4.63675875e+04 4.69934097e+04 + 4.76276787e+04 4.82705083e+04 4.89220142e+04 4.95823135e+04 5.02515248e+04 + 5.09297684e+04 5.16171663e+04 5.23138419e+04 5.30199206e+04 5.37355292e+04 + 5.44607964e+04 5.51958524e+04 5.59408296e+04 5.66958616e+04 5.74610843e+04 + 5.82366352e+04 5.90226537e+04 5.98192810e+04 6.06266604e+04 6.14449370e+04 + 6.22742579e+04 6.31147720e+04 6.39666306e+04 6.48299867e+04 6.57049955e+04 + 6.65918142e+04 6.74906024e+04 6.84015214e+04 6.93247351e+04 7.02604094e+04 + 7.12087125e+04 7.21698148e+04 7.31438891e+04 7.41311104e+04 7.51316562e+04 + 7.61457064e+04 7.71734432e+04 7.82150513e+04 7.92707180e+04 8.03406330e+04 + 8.14249886e+04 8.25239797e+04 8.36378039e+04 8.47666613e+04 8.59107549e+04 + 8.70702904e+04 8.82454760e+04 8.94365231e+04 9.06436457e+04 9.18670608e+04 + 9.31069884e+04 9.43636512e+04 9.56372751e+04 9.69280891e+04 9.82363252e+04 + 9.95622186e+04 1.00906007e+05 1.02267933e+05 1.03648241e+05 1.05047179e+05 + 1.06464998e+05 1.07901954e+05 1.09358304e+05 1.10834311e+05 1.12330239e+05 + 1.13846357e+05 1.15382939e+05 1.16940259e+05 1.18518599e+05 1.20118242e+05 + 1.21739475e+05 1.23382590e+05 1.25047882e+05 1.26735650e+05 1.28446198e+05 + 1.30179833e+05 1.31936867e+05 1.33717616e+05 1.35522400e+05 1.37351542e+05 + 1.39205373e+05 1.41084224e+05 1.42988435e+05 1.44918346e+05 1.46874306e+05 + 1.48856665e+05 1.50865780e+05 1.52902011e+05 1.54965726e+05 1.57057295e+05 + 1.59177094e+05 1.61325503e+05 1.63502909e+05 1.65709704e+05 1.67946284e+05 + 1.70213051e+05 1.72510413e+05 1.74838782e+05 1.77198577e+05 1.79590222e+05 + 1.82014146e+05 1.84470787e+05 1.86960585e+05 1.89483987e+05 1.92041448e+05 + 1.94633427e+05 1.97260390e+05 1.99922809e+05 2.02621162e+05 2.05355935e+05 + 2.08127619e+05 2.10936713e+05 2.13783721e+05 2.16669154e+05 2.19593533e+05 + 2.22557381e+05 2.25561233e+05 2.28605628e+05 2.31691112e+05 2.34818242e+05 + 2.37987578e+05 2.41199691e+05 2.44455157e+05 2.47754563e+05 2.51098500e+05 + 2.54487570e+05 2.57922383e+05 2.61403555e+05 2.64931713e+05 2.68507490e+05 + 2.72131529e+05 2.75804482e+05 2.79527008e+05 2.83299778e+05 2.87123468e+05 + 2.90998767e+05 2.94926370e+05 2.98906984e+05 3.02941325e+05 3.07030117e+05 + 3.11174095e+05 3.15374004e+05 3.19630600e+05 3.23944646e+05 3.28316919e+05 + 3.32748205e+05 3.37239300e+05 3.41791010e+05 3.46404155e+05 3.51079564e+05 + 3.55818077e+05 3.60620545e+05 3.65487832e+05 3.70420812e+05 3.75420373e+05 + 3.80487413e+05 3.85622842e+05 3.90827585e+05 3.96102575e+05 4.01448762e+05 + 4.06867107e+05 4.12358582e+05 4.17924176e+05 4.23564889e+05 4.29281734e+05 + 4.35075740e+05 4.40947946e+05 4.46899410e+05 4.52931201e+05 4.59044403e+05 + 4.65240114e+05 4.71519449e+05 4.77883536e+05 4.84333518e+05 4.90870556e+05 + 4.97495824e+05 5.04210514e+05 5.11015831e+05 5.17912999e+05 5.24903259e+05 + 5.31987866e+05 5.39168093e+05 5.46445232e+05 5.53820590e+05 5.61295494e+05 + 5.68871286e+05 5.76549328e+05 5.84331000e+05 5.92217702e+05 6.00210850e+05 + 6.08311882e+05 6.16522253e+05 6.24843439e+05 6.33276936e+05 6.41824259e+05 + 6.50486946e+05 6.59266553e+05 6.68164658e+05 6.77182860e+05 6.86322781e+05 + 6.95586064e+05 7.04974372e+05 7.14489394e+05 7.24132841e+05 7.33906444e+05 + 7.43811962e+05 7.53851175e+05 7.64025886e+05 7.74337925e+05 7.84789146e+05 + 7.95381426e+05 8.06116670e+05 8.16996808e+05 8.28023794e+05 8.39199611e+05 + 8.50526269e+05 8.62005801e+05 8.73640273e+05 8.85431775e+05 8.97382427e+05 + 9.09494376e+05 9.21769800e+05 9.34210905e+05 9.46819927e+05 9.59599133e+05 + 9.72550820e+05 9.85677315e+05 9.98980978e+05 1.01246420e+06 1.02612941e+06 + 1.03997905e+06 1.05401562e+06 1.06824165e+06 1.08265968e+06 1.09727231e+06 + 1.11208217e+06 1.12709191e+06 1.14230425e+06 1.15772190e+06 1.17334765e+06 + 1.18918429e+06 1.20523468e+06 1.22150171e+06 1.23798829e+06 1.25469738e+06 + 1.27163201e+06 1.28879519e+06 1.30619003e+06 1.32381965e+06 1.34168721e+06 + 1.35979593e+06 1.37814906e+06 1.39674991e+06 1.41560181e+06 1.43470815e+06 + 1.45407237e+06 1.47369795e+06 1.49358842e+06 1.51374735e+06 1.53417836e+06 + 1.55488513e+06 1.57587137e+06 1.59714087e+06 1.61869744e+06 1.64054497e+06 + 1.66268736e+06 1.68512861e+06 1.70787275e+06 1.73092387e+06 1.75428611e+06 + 1.77796367e+06 1.80196080e+06 1.82628182e+06 1.85093111e+06 1.87591308e+06 + 1.90123223e+06 1.92689312e+06 1.95290035e+06 1.97925860e+06 2.00597261e+06 + 2.03304717e+06 2.06048716e+06 2.08829750e+06 2.11648321e+06 2.14504933e+06 + 2.17400101e+06 2.20334345e+06 2.23308192e+06 2.26322178e+06 2.29376843e+06 + 2.32472736e+06 2.35610415e+06 2.38790444e+06 2.42013393e+06 2.45279842e+06 + 2.48590378e+06 2.51945596e+06 2.55346100e+06 2.58792500e+06 2.62285416e+06 + 2.65825476e+06 2.69413316e+06 2.73049582e+06 2.76734925e+06 2.80470010e+06 + 2.84255507e+06 2.88092097e+06 2.91980469e+06 2.95921322e+06 2.99915365e+06 + 1.51514411e-06 1.53559398e-06 1.55631985e-06 1.57732546e-06 1.59861459e-06 + 1.62019105e-06 1.64205873e-06 1.66422156e-06 1.68668352e-06 1.70944864e-06 + 1.73252103e-06 1.75590483e-06 1.77960423e-06 1.80362351e-06 1.82796697e-06 + 1.85263900e-06 1.87764402e-06 1.90298654e-06 1.92867110e-06 1.95470233e-06 + 1.98108490e-06 2.00782356e-06 2.03492310e-06 2.06238841e-06 2.09022442e-06 + 2.11843613e-06 2.14702861e-06 2.17600701e-06 2.20537652e-06 2.23514243e-06 + 2.26531010e-06 2.29588494e-06 2.32687244e-06 2.35827818e-06 2.39010781e-06 + 2.42236703e-06 2.45506166e-06 2.48819757e-06 2.52178072e-06 2.55581713e-06 + 2.59031293e-06 2.62527433e-06 2.66070759e-06 2.69661910e-06 2.73301530e-06 + 2.76990274e-06 2.80728805e-06 2.84517795e-06 2.88357925e-06 2.92249885e-06 + 2.96194375e-06 3.00192104e-06 3.04243789e-06 3.08350160e-06 3.12511955e-06 + 3.16729922e-06 3.21004818e-06 3.25337412e-06 3.29728483e-06 3.34178821e-06 + 3.38689225e-06 3.43260505e-06 3.47893484e-06 3.52588994e-06 3.57347879e-06 + 3.62170995e-06 3.67059208e-06 3.72013398e-06 3.77034453e-06 3.82123279e-06 + 3.87280787e-06 3.92507907e-06 3.97805577e-06 4.03174749e-06 4.08616389e-06 + 4.14131475e-06 4.19720997e-06 4.25385962e-06 4.31127386e-06 4.36946302e-06 + 4.42843756e-06 4.48820807e-06 4.54878531e-06 4.61018016e-06 4.67240365e-06 + 4.73546697e-06 4.79938146e-06 4.86415859e-06 4.92981003e-06 4.99634755e-06 + 5.06378314e-06 5.13212890e-06 5.20139712e-06 5.27160025e-06 5.34275092e-06 + 5.41486190e-06 5.48794616e-06 5.56201684e-06 5.63708725e-06 5.71317088e-06 + 5.79028141e-06 5.86843270e-06 5.94763880e-06 6.02791394e-06 6.10927255e-06 + 6.19172925e-06 6.27529887e-06 6.35999643e-06 6.44583715e-06 6.53283646e-06 + 6.62101000e-06 6.71037362e-06 6.80094337e-06 6.89273554e-06 6.98576663e-06 + 7.08005335e-06 7.17561266e-06 7.27246174e-06 7.37061798e-06 7.47009904e-06 + 7.57092278e-06 7.67310735e-06 7.77667110e-06 7.88163264e-06 7.98801085e-06 + 8.09582484e-06 8.20509399e-06 8.31583795e-06 8.42807662e-06 8.54183017e-06 + 8.65711905e-06 8.77396398e-06 8.89238596e-06 9.01240628e-06 9.13404651e-06 + 9.25732852e-06 9.38227446e-06 9.50890680e-06 9.63724829e-06 9.76732200e-06 + 9.89915131e-06 1.00327599e-05 1.01681718e-05 1.03054114e-05 1.04445033e-05 + 1.05854725e-05 1.07283444e-05 1.08731446e-05 1.10198992e-05 1.11686345e-05 + 1.13193773e-05 1.14721546e-05 1.16269940e-05 1.17839233e-05 1.19429706e-05 + 1.21041646e-05 1.22675342e-05 1.24331089e-05 1.26009182e-05 1.27709925e-05 + 1.29433623e-05 1.31180586e-05 1.32951127e-05 1.34745565e-05 1.36564223e-05 + 1.38407427e-05 1.40275509e-05 1.42168804e-05 1.44087653e-05 1.46032400e-05 + 1.48003396e-05 1.50000995e-05 1.52025554e-05 1.54077440e-05 1.56157019e-05 + 1.58264667e-05 1.60400761e-05 1.62565686e-05 1.64759832e-05 1.66983591e-05 + 1.69237365e-05 1.71521557e-05 1.73836580e-05 1.76182848e-05 1.78560784e-05 + 1.80970814e-05 1.83413373e-05 1.85888899e-05 1.88397837e-05 1.90940638e-05 + 1.93517759e-05 1.96129664e-05 1.98776821e-05 2.01459707e-05 2.04178804e-05 + 2.06934601e-05 2.09727592e-05 2.12558280e-05 2.15427174e-05 2.18334790e-05 + 2.21281649e-05 2.24268282e-05 2.27295226e-05 2.30363024e-05 2.33472229e-05 + 2.36623398e-05 2.39817098e-05 2.43053904e-05 2.46334396e-05 2.49659166e-05 + 2.53028810e-05 2.56443934e-05 2.59905151e-05 2.63413085e-05 2.66968365e-05 + 2.70571631e-05 2.74223530e-05 2.77924718e-05 2.81675861e-05 2.85477634e-05 + 2.89330718e-05 2.93235808e-05 2.97193605e-05 3.01204820e-05 3.05270174e-05 + 3.09390399e-05 3.13566233e-05 3.17798429e-05 3.22087747e-05 3.26434958e-05 + 3.30840843e-05 3.35306194e-05 3.39831813e-05 3.44418515e-05 3.49067124e-05 + 3.53778474e-05 3.58553414e-05 3.63392801e-05 3.68297505e-05 3.73268407e-05 + 3.78306402e-05 3.83412395e-05 3.88587303e-05 3.93832056e-05 3.99147598e-05 + 4.04534884e-05 4.09994881e-05 4.15528573e-05 4.21136952e-05 4.26821027e-05 + 4.32581821e-05 4.38420367e-05 4.44337716e-05 4.50334932e-05 4.56413092e-05 + 4.62573288e-05 4.68816629e-05 4.75144236e-05 4.81557246e-05 4.88056813e-05 + 4.94644104e-05 5.01320304e-05 5.08086612e-05 5.14944245e-05 5.21894435e-05 + 5.28938432e-05 5.36077501e-05 5.43312927e-05 5.50646008e-05 5.58078064e-05 + 5.65610431e-05 5.73244461e-05 5.80981528e-05 5.88823022e-05 5.96770352e-05 + 6.04824947e-05 6.12988255e-05 6.21261743e-05 6.29646898e-05 6.38145227e-05 + 6.46758258e-05 6.55487539e-05 6.64334638e-05 6.73301147e-05 6.82388677e-05 + 6.91598861e-05 7.00933354e-05 7.10393835e-05 7.19982003e-05 7.29699583e-05 + 7.39548321e-05 7.49529987e-05 7.59646376e-05 7.69899305e-05 7.80290617e-05 + 7.90822181e-05 8.01495889e-05 8.12313660e-05 8.23277438e-05 8.34389194e-05 + 8.45650925e-05 8.57064656e-05 8.68632437e-05 8.80356348e-05 8.92238497e-05 + 9.04281018e-05 9.16486078e-05 9.28855869e-05 9.41392614e-05 9.54098568e-05 + 9.66976013e-05 9.80027266e-05 9.93254670e-05 1.00666060e-04 1.02024748e-04 + 1.03401773e-04 1.04797385e-04 1.06211833e-04 1.07645371e-04 1.09098258e-04 + 1.10570755e-04 1.12063126e-04 1.13575639e-04 1.15108567e-04 1.16662184e-04 + 1.18236771e-04 1.19832610e-04 1.21449988e-04 1.23089195e-04 1.24750527e-04 + 1.26434282e-04 1.28140763e-04 1.29870275e-04 1.31623131e-04 1.33399646e-04 + 1.35200138e-04 1.37024931e-04 1.38874353e-04 1.40748737e-04 1.42648419e-04 + 1.44573741e-04 1.46525050e-04 1.48502695e-04 1.50507032e-04 1.52538422e-04 + 1.54597229e-04 1.56683824e-04 1.58798582e-04 1.60941883e-04 1.63114112e-04 + 1.65315659e-04 1.67546920e-04 1.69808297e-04 1.72100196e-04 1.74423028e-04 + 1.76777212e-04 1.79163169e-04 1.81581330e-04 1.84032129e-04 1.86516007e-04 + 1.89033409e-04 1.91584788e-04 1.94170603e-04 1.96791319e-04 1.99447407e-04 + 2.02139344e-04 2.04867614e-04 2.07632707e-04 2.10435121e-04 2.13275359e-04 + 2.16153931e-04 2.19071356e-04 2.22028156e-04 2.25024865e-04 2.28062020e-04 + 2.31140168e-04 2.34259861e-04 2.37421661e-04 2.40626136e-04 2.43873861e-04 + 2.47165421e-04 2.50501406e-04 2.53882418e-04 2.57309063e-04 2.60781957e-04 + 2.64301725e-04 2.67868999e-04 2.71484421e-04 2.75148639e-04 2.78862314e-04 + 2.82626112e-04 2.86440710e-04 2.90306793e-04 2.94225057e-04 2.98196206e-04 + 3.02220953e-04 3.06300022e-04 3.10434146e-04 3.14624068e-04 3.18870542e-04 + 3.23174330e-04 3.27536206e-04 3.31956954e-04 3.36437370e-04 3.40978257e-04 + 3.45580432e-04 3.50244723e-04 3.54971968e-04 3.59763016e-04 3.64618729e-04 + 3.69539979e-04 3.74527651e-04 3.79582642e-04 3.84705860e-04 3.89898226e-04 + 3.95160673e-04 4.00494147e-04 4.05899607e-04 4.11378024e-04 4.16930384e-04 + 4.22557683e-04 4.28260934e-04 4.34041162e-04 4.39899405e-04 4.45836717e-04 + 4.51854164e-04 4.57952829e-04 4.64133808e-04 4.70398211e-04 4.76747164e-04 + 4.83181809e-04 4.89703302e-04 4.96312816e-04 5.03011539e-04 5.09800673e-04 + 5.16681441e-04 5.23655078e-04 5.30722838e-04 5.37885992e-04 5.45145826e-04 + 5.52503646e-04 5.59960775e-04 5.67518552e-04 5.75178336e-04 5.82941505e-04 + 5.90809452e-04 5.98783593e-04 6.06865361e-04 6.15056208e-04 6.23357607e-04 + 6.31771050e-04 6.40298049e-04 6.48940137e-04 6.57698866e-04 6.66575812e-04 + 6.75572570e-04 6.84690757e-04 6.93932012e-04 7.03297995e-04 7.12790392e-04 + 7.22410907e-04 7.32161269e-04 7.42043233e-04 7.52058572e-04 7.62209089e-04 + 7.72496607e-04 7.82922975e-04 7.93490068e-04 8.04199785e-04 8.15054050e-04 + 8.26054815e-04 8.37204057e-04 8.48503780e-04 8.59956016e-04 8.71562821e-04 + 8.83326284e-04 8.95248518e-04 9.07331666e-04 9.19577900e-04 9.31989421e-04 + 9.44568460e-04 9.57317278e-04 9.70238166e-04 9.83333448e-04 9.96605476e-04 + 1.01005664e-03 1.02368935e-03 1.03750606e-03 1.05150925e-03 1.06570145e-03 + 1.08008519e-03 1.09466308e-03 1.10943772e-03 1.12441177e-03 1.13958793e-03 + 1.15496892e-03 1.17055751e-03 1.18635650e-03 1.20236872e-03 1.21859707e-03 + 1.23504444e-03 1.25171381e-03 1.26860816e-03 1.28573053e-03 1.30308401e-03 + 1.32067170e-03 1.33849678e-03 1.35656243e-03 1.37487193e-03 1.39342854e-03 + 1.41223561e-03 1.43129652e-03 1.45061470e-03 1.47019361e-03 1.49003678e-03 + 1.51014777e-03 1.53053020e-03 1.55118773e-03 1.57212407e-03 1.59334299e-03 + 1.61484830e-03 1.63664387e-03 1.65873361e-03 1.68112150e-03 1.70381156e-03 + 1.72680786e-03 1.75011455e-03 1.77373580e-03 1.79767587e-03 1.82193906e-03 + 1.84652973e-03 1.87145230e-03 1.89671124e-03 1.92231111e-03 1.94825650e-03 + 1.97455207e-03 2.00120255e-03 2.02821273e-03 2.05558747e-03 2.08333169e-03 + 2.11145037e-03 2.13994856e-03 2.16883140e-03 2.19810406e-03 2.22777182e-03 + 2.25784000e-03 2.28831402e-03 2.31919934e-03 2.35050151e-03 2.38222618e-03 + 2.41437903e-03 2.44696584e-03 2.47999248e-03 2.51346488e-03 2.54738906e-03 + 2.58177111e-03 2.61661721e-03 2.65193363e-03 2.68772672e-03 2.72400290e-03 + 2.76076870e-03 2.79803073e-03 2.83579568e-03 2.87407035e-03 2.91286161e-03 + 2.95217643e-03 2.99202189e-03 3.03240514e-03 3.07333344e-03 3.11481415e-03 + 3.15685472e-03 3.19946271e-03 3.24264578e-03 3.28641170e-03 3.33076832e-03 + 3.37572362e-03 3.42128568e-03 3.46746269e-03 3.51426295e-03 3.56169487e-03 + 3.60976698e-03 3.65848792e-03 3.70786645e-03 3.75791143e-03 3.80863187e-03 + 3.86003689e-03 3.91213571e-03 3.96493772e-03 4.01845239e-03 4.07268934e-03 + 4.12765833e-03 4.18336924e-03 4.23983207e-03 4.29705699e-03 4.35505426e-03 + 4.41383433e-03 4.47340774e-03 4.53378522e-03 4.59497761e-03 4.65699591e-03 + 4.71985128e-03 4.78355500e-03 4.84811852e-03 4.91355347e-03 4.97987158e-03 + 5.04708479e-03 5.11520517e-03 5.18424497e-03 5.25421660e-03 5.32513264e-03 + 5.39700583e-03 5.46984909e-03 5.54367551e-03 5.61849837e-03 5.69433110e-03 + 5.77118736e-03 5.84908093e-03 5.92802584e-03 6.00803626e-03 6.08912659e-03 + 6.17131138e-03 6.25460542e-03 6.33902369e-03 6.42458134e-03 6.51129376e-03 + 6.59917653e-03 6.68824546e-03 6.77851655e-03 6.87000603e-03 6.96273034e-03 + 7.05670614e-03 7.15195034e-03 7.24848004e-03 7.34631260e-03 7.44546561e-03 + 7.54595688e-03 7.64780448e-03 7.75102672e-03 7.85564214e-03 7.96166955e-03 + 8.06912802e-03 8.17803685e-03 8.28841561e-03 8.40028416e-03 8.51366260e-03 + 8.62857130e-03 8.74503092e-03 8.86306239e-03 8.98268694e-03 9.10392605e-03 + 9.22680152e-03 9.35133544e-03 9.47755019e-03 9.60546846e-03 9.73511324e-03 + 9.86650783e-03 9.99967585e-03 1.01346412e-02 1.02714283e-02 1.04100615e-02 + 1.05505658e-02 1.06929666e-02 1.08372893e-02 1.09835599e-02 1.11318048e-02 + 1.12820505e-02 1.14343240e-02 1.15886528e-02 1.17450646e-02 1.19035875e-02 + 1.20642499e-02 1.22270808e-02 1.23921094e-02 1.25593654e-02 1.27288789e-02 + 1.29006802e-02 1.30748004e-02 1.32512707e-02 1.34301228e-02 1.36113888e-02 + 1.37951014e-02 1.39812936e-02 1.41699987e-02 1.43612509e-02 1.45550843e-02 + 1.47515340e-02 1.49506351e-02 1.51524234e-02 1.53569353e-02 1.55642075e-02 + 1.57742773e-02 1.59871823e-02 1.62029609e-02 1.64216519e-02 1.66432945e-02 + 1.68679287e-02 1.70955947e-02 1.73263336e-02 1.75601867e-02 1.77971961e-02 + 1.80374044e-02 1.82808548e-02 1.85275911e-02 1.87776576e-02 1.90310992e-02 + 1.92879614e-02 1.95482906e-02 1.98121334e-02 2.00795373e-02 2.03505503e-02 + 2.06252212e-02 2.09035994e-02 2.11857347e-02 2.14716781e-02 2.17614808e-02 + 2.20551950e-02 2.23528734e-02 2.26545697e-02 2.29603378e-02 2.32702330e-02 + 2.35843107e-02 2.39026276e-02 2.42252408e-02 2.45522083e-02 2.48835889e-02 + 2.52194421e-02 2.55598283e-02 2.59048087e-02 2.62544453e-02 2.66088009e-02 + 2.69679393e-02 2.73319249e-02 2.77008232e-02 2.80747006e-02 2.84536242e-02 + 2.88376620e-02 2.92268833e-02 2.96213578e-02 3.00211566e-02 3.04263514e-02 + 3.08370152e-02 3.12532216e-02 3.16750456e-02 3.21025629e-02 3.25358505e-02 + 3.29749861e-02 3.34200487e-02 3.38711183e-02 3.43282759e-02 3.47916039e-02 + 3.52611853e-02 3.57371047e-02 3.62194475e-02 3.67083006e-02 3.72037516e-02 + 3.77058898e-02 3.82148053e-02 3.87305896e-02 3.92533354e-02 3.97831368e-02 + 4.03200888e-02 4.08642881e-02 4.14158324e-02 4.19748209e-02 4.25413541e-02 + 4.31155337e-02 4.36974630e-02 4.42872467e-02 4.48849906e-02 4.54908022e-02 + 4.61047905e-02 4.67270657e-02 4.73577398e-02 4.79969261e-02 4.86447395e-02 + 4.93012964e-02 4.99667148e-02 5.06411144e-02 5.13246163e-02 5.20173434e-02 + 5.27194202e-02 5.34309730e-02 5.41521296e-02 5.48830196e-02 5.56237744e-02 + 5.63745271e-02 5.71354128e-02 5.79065681e-02 5.86881317e-02 5.94802440e-02 + 6.02830474e-02 6.10966863e-02 6.19213068e-02 6.27570572e-02 6.36040877e-02 + 6.44625506e-02 6.53326001e-02 6.62143926e-02 6.71080867e-02 6.80138429e-02 + 6.89318241e-02 6.98621953e-02 7.08051237e-02 7.17607788e-02 7.27293323e-02 + 7.37109584e-02 7.47058334e-02 7.57141363e-02 7.67360482e-02 7.77717528e-02 + 7.88214363e-02 7.98852873e-02 8.09634971e-02 8.20562595e-02 8.31637709e-02 + 8.42862303e-02 8.54238396e-02 8.65768031e-02 8.77453282e-02 8.89296248e-02 + 9.01299058e-02 9.13463870e-02 9.25792870e-02 9.38288274e-02 9.50952329e-02 + 9.63787310e-02 9.76795524e-02 9.89979310e-02 1.00334104e-01 1.01688311e-01 + 1.03060795e-01 1.04451805e-01 1.05861588e-01 1.07290399e-01 1.08738495e-01 + 1.10206136e-01 1.11693586e-01 1.13201111e-01 1.14728984e-01 1.16277479e-01 + 1.17846873e-01 1.19437449e-01 1.21049494e-01 1.22683296e-01 1.24339149e-01 + 1.26017352e-01 1.27718205e-01 1.29442015e-01 1.31189090e-01 1.32959747e-01 + 1.34754301e-01 1.36573077e-01 1.38416400e-01 1.40284603e-01 1.42178021e-01 + 1.44096994e-01 1.46041868e-01 1.48012992e-01 1.50010719e-01 1.52035411e-01 + 1.54087429e-01 1.56167143e-01 1.58274927e-01 1.60411160e-01 1.62576226e-01 + 1.64770513e-01 1.66994417e-01 1.69248337e-01 1.71532678e-01 1.73847850e-01 + 1.76194270e-01 1.78572360e-01 1.80982547e-01 1.83425264e-01 1.85900951e-01 + 1.88410051e-01 1.90953017e-01 1.93530306e-01 1.96142380e-01 1.98789709e-01 + 2.01472769e-01 2.04192042e-01 2.06948017e-01 2.09741189e-01 2.12572061e-01 + 2.15441141e-01 2.18348945e-01 2.21295996e-01 2.24282822e-01 2.27309962e-01 + 2.30377959e-01 2.33487365e-01 2.36638739e-01 2.39832646e-01 2.43069662e-01 + 2.46350367e-01 2.49675352e-01 2.53045214e-01 2.56460560e-01 2.59922002e-01 + 2.63430163e-01 2.66985673e-01 2.70589173e-01 2.74241308e-01 2.77942737e-01 + 2.81694123e-01 2.85496142e-01 2.89349477e-01 2.93254820e-01 2.97212873e-01 + 3.01224348e-01 3.05289966e-01 3.09410457e-01 3.13586563e-01 3.17819033e-01 + 3.22108629e-01 3.26456121e-01 3.30862292e-01 3.35327932e-01 3.39853846e-01 + 3.44440845e-01 3.49089755e-01 3.53801411e-01 3.58576660e-01 3.63416361e-01 + 3.68321383e-01 3.73292608e-01 3.78330929e-01 3.83437252e-01 3.88612496e-01 + 3.93857590e-01 3.99173476e-01 4.04561111e-01 4.10021463e-01 4.15555512e-01 + 4.21164255e-01 4.26848699e-01 4.32609866e-01 4.38448791e-01 4.44366524e-01 + 4.50364128e-01 4.56442682e-01 4.62603278e-01 4.68847024e-01 4.75175041e-01 + 4.81588467e-01 4.88088455e-01 4.94676173e-01 5.01352806e-01 5.08119553e-01 + 5.14977630e-01 5.21928271e-01 5.28972724e-01 5.36112257e-01 5.43348151e-01 + 5.50681708e-01 5.58114246e-01 5.65647101e-01 5.73281626e-01 5.81019194e-01 + 5.88861197e-01 5.96809042e-01 6.04864160e-01 6.13027997e-01 6.21302021e-01 + 6.29687720e-01 6.38186600e-01 6.46800189e-01 6.55530036e-01 6.64377709e-01 + 6.73344799e-01 6.82432918e-01 6.91643699e-01 7.00978797e-01 7.10439891e-01 + 7.20028682e-01 7.29746892e-01 7.39596268e-01 7.49578581e-01 7.59695625e-01 + 7.69949219e-01 7.80341205e-01 7.90873452e-01 8.01547852e-01 8.12366325e-01 + 8.23330813e-01 8.34443290e-01 8.45705751e-01 8.57120221e-01 8.68688753e-01 + 8.80413424e-01 8.92296343e-01 9.04339645e-01 9.16545496e-01 9.28916089e-01 + 9.41453647e-01 9.54160425e-01 9.67038705e-01 9.80090803e-01 9.93319066e-01 + 1.00672587e+00 1.02031362e+00 1.03408477e+00 1.04804179e+00 1.06218719e+00 + 1.07652350e+00 1.09105331e+00 1.10577923e+00 1.12070391e+00 1.13583002e+00 + 1.15116029e+00 1.16669748e+00 1.18244437e+00 1.19840379e+00 1.21457862e+00 + 1.23097175e+00 1.24758615e+00 1.26442479e+00 1.28149070e+00 1.29878695e+00 + 1.31631665e+00 1.33408294e+00 1.35208903e+00 1.37033814e+00 1.38883356e+00 + 1.40757862e+00 1.42657667e+00 1.44583114e+00 1.46534549e+00 1.48512323e+00 + 1.50516790e+00 1.52548311e+00 1.54607252e+00 1.56693983e+00 1.58808878e+00 + 1.60952317e+00 1.63124687e+00 1.65326377e+00 1.67557783e+00 1.69819306e+00 + 1.72111354e+00 1.74434336e+00 1.76788672e+00 1.79174785e+00 1.81593103e+00 + 1.84044061e+00 1.86528099e+00 1.89045664e+00 1.91597209e+00 1.94183192e+00 + 1.96804078e+00 1.99460338e+00 2.02152449e+00 2.04880896e+00 2.07646169e+00 + 2.10448764e+00 2.13289186e+00 2.16167945e+00 2.19085559e+00 2.22042551e+00 + 2.25039454e+00 2.28076806e+00 2.31155154e+00 2.34275049e+00 2.37437054e+00 + 2.40641736e+00 2.43889672e+00 2.47181445e+00 2.50517647e+00 2.53898878e+00 + 2.57325745e+00 2.60798864e+00 2.64318860e+00 2.67886366e+00 2.71502022e+00 + 2.75166478e+00 2.78880393e+00 2.82644435e+00 2.86459281e+00 2.90325615e+00 + 2.94244133e+00 2.98215539e+00 3.02240547e+00 3.06319880e+00 3.10454272e+00 + 3.14644466e+00 3.18891215e+00 3.23195282e+00 3.27557441e+00 3.31978476e+00 + 3.36459182e+00 3.41000363e+00 3.45602837e+00 3.50267430e+00 3.54994981e+00 + 3.59786340e+00 3.64642368e+00 3.69563937e+00 3.74551933e+00 3.79607251e+00 + 3.84730801e+00 3.89923504e+00 3.95186292e+00 4.00520112e+00 4.05925923e+00 + 4.11404695e+00 4.16957414e+00 4.22585079e+00 4.28288699e+00 4.34069302e+00 + 4.39927925e+00 4.45865622e+00 4.51883459e+00 4.57982520e+00 4.64163899e+00 + 4.70428708e+00 4.76778073e+00 4.83213135e+00 4.89735051e+00 4.96344994e+00 + 5.03044150e+00 5.09833725e+00 5.16714939e+00 5.23689028e+00 5.30757246e+00 + 5.37920864e+00 5.45181169e+00 5.52539466e+00 5.59997078e+00 5.67555346e+00 + 5.75215627e+00 5.82979298e+00 5.90847756e+00 5.98822414e+00 6.06904706e+00 + 6.15096084e+00 6.23398021e+00 6.31812010e+00 6.40339561e+00 6.48982209e+00 + 6.57741507e+00 6.66619028e+00 6.75616369e+00 6.84735147e+00 6.93977001e+00 + 7.03343592e+00 7.12836604e+00 7.22457742e+00 7.32208737e+00 7.42091341e+00 + 7.52107330e+00 7.62258505e+00 7.72546690e+00 7.82973734e+00 7.93541512e+00 + 8.04251923e+00 8.15106892e+00 8.26108370e+00 8.37258335e+00 8.48558791e+00 + 8.60011769e+00 8.71619327e+00 8.83383553e+00 8.95306559e+00 9.07390491e+00 + 9.19637518e+00 9.32049844e+00 9.44629699e+00 9.57379343e+00 9.70301069e+00 + 9.83397200e+00 9.96670088e+00 1.01012212e+01 1.02375571e+01 1.03757332e+01 + 1.05157742e+01 1.06577054e+01 1.08015522e+01 1.09473405e+01 1.10950965e+01 + 1.12448467e+01 1.13966182e+01 1.15504380e+01 1.17063340e+01 1.18643341e+01 + 1.20244668e+01 1.21867607e+01 1.23512451e+01 1.25179496e+01 1.26869041e+01 + 1.28581389e+01 1.30316849e+01 1.32075732e+01 1.33858355e+01 1.35665038e+01 + 1.37496106e+01 1.39351888e+01 1.41232717e+01 1.43138932e+01 1.45070874e+01 + 1.47028892e+01 1.49013338e+01 1.51024567e+01 1.53062942e+01 1.55128829e+01 + 1.57222599e+01 1.59344629e+01 1.61495300e+01 1.63674998e+01 1.65884115e+01 + 1.68123049e+01 1.70392202e+01 1.72691982e+01 1.75022801e+01 1.77385080e+01 + 1.79779242e+01 1.82205718e+01 1.84664944e+01 1.87157363e+01 1.89683421e+01 + 1.92243574e+01 1.94838281e+01 1.97468008e+01 2.00133229e+01 2.02834423e+01 + 2.05572074e+01 2.08346676e+01 2.11158726e+01 2.14008730e+01 2.16897201e+01 + 2.19824657e+01 2.22791625e+01 2.25798639e+01 2.28846237e+01 2.31934970e+01 + 2.35065390e+01 2.38238062e+01 2.41453556e+01 2.44712449e+01 2.48015327e+01 + 2.51362784e+01 2.54755421e+01 2.58193849e+01 2.61678685e+01 2.65210556e+01 + 2.68790097e+01 2.72417950e+01 2.76094769e+01 2.79821213e+01 2.83597954e+01 + 2.87425669e+01 2.91305046e+01 2.95236783e+01 2.99221587e+01 3.03260174e+01 + 3.07353269e+01 3.11501609e+01 3.15705939e+01 3.19967014e+01 3.24285601e+01 + 3.28662476e+01 3.33098426e+01 3.37594247e+01 3.42150749e+01 3.46768749e+01 + 3.51449079e+01 3.56192579e+01 3.61000102e+01 3.65872511e+01 3.70810684e+01 + 3.75815507e+01 3.80887880e+01 3.86028714e+01 3.91238935e+01 3.96519477e+01 + 4.01871291e+01 4.07295339e+01 4.12792594e+01 4.18364046e+01 4.24010695e+01 + 4.29733558e+01 4.35533661e+01 4.41412049e+01 4.47369777e+01 4.53407916e+01 + 4.59527552e+01 4.65729784e+01 4.72015728e+01 4.78386513e+01 4.84843284e+01 + 4.91387202e+01 4.98019444e+01 5.04741200e+01 5.11553680e+01 5.18458108e+01 + 5.25455725e+01 5.32547788e+01 5.39735573e+01 5.47020371e+01 5.54403492e+01 + 5.61886263e+01 5.69470028e+01 5.77156152e+01 5.84946015e+01 5.92841017e+01 + 6.00842578e+01 6.08952136e+01 6.17171149e+01 6.25501093e+01 6.33943466e+01 + 6.42499786e+01 6.51171590e+01 6.59960438e+01 6.68867908e+01 6.77895602e+01 + 6.87045143e+01 6.96318175e+01 7.05716365e+01 7.15241402e+01 7.24894998e+01 + 7.34678888e+01 7.44594832e+01 7.54644611e+01 7.64830031e+01 7.75152924e+01 + 7.85615144e+01 7.96218573e+01 8.06965116e+01 8.17856705e+01 8.28895297e+01 + 8.40082878e+01 8.51421456e+01 8.62913071e+01 8.74559788e+01 8.86363701e+01 + 8.98326931e+01 9.10451628e+01 9.22739972e+01 9.35194171e+01 9.47816465e+01 + 9.60609121e+01 9.73574439e+01 9.86714750e+01 1.00003242e+02 1.01352983e+02 + 1.02720942e+02 1.04107364e+02 1.05512498e+02 1.06936598e+02 1.08379919e+02 + 1.09842720e+02 1.11325265e+02 1.12827819e+02 1.14350653e+02 1.15894041e+02 + 1.17458261e+02 1.19043592e+02 1.20650320e+02 1.22278735e+02 1.23929128e+02 + 1.25601797e+02 1.27297041e+02 1.29015166e+02 1.30756481e+02 1.32521298e+02 + 1.34309935e+02 1.36122713e+02 1.37959958e+02 1.39822000e+02 1.41709174e+02 + 1.43621820e+02 1.45560280e+02 1.47524903e+02 1.49516044e+02 1.51534058e+02 + 1.53579310e+02 1.55652166e+02 1.57752999e+02 1.59882188e+02 1.62040114e+02 + 1.64227166e+02 1.66443736e+02 1.68690223e+02 1.70967031e+02 1.73274569e+02 + 1.75613251e+02 1.77983499e+02 1.80385738e+02 1.82820400e+02 1.85287923e+02 + 1.87788750e+02 1.90323330e+02 1.92892119e+02 1.95495580e+02 1.98134179e+02 + 2.00808391e+02 2.03518697e+02 2.06265584e+02 2.09049546e+02 2.11871083e+02 + 2.14730702e+02 2.17628917e+02 2.20566249e+02 2.23543226e+02 2.26560384e+02 + 2.29618264e+02 2.32717416e+02 2.35858398e+02 2.39041773e+02 2.42268114e+02 + 2.45538001e+02 2.48852022e+02 2.52210771e+02 2.55614854e+02 2.59064882e+02 + 2.62561474e+02 2.66105260e+02 2.69696877e+02 2.73336969e+02 2.77026192e+02 + 2.80765207e+02 2.84554689e+02 2.88395317e+02 2.92287781e+02 2.96232783e+02 + 3.00231029e+02 3.04283240e+02 3.08390144e+02 3.12552478e+02 3.16770992e+02 + 3.21046442e+02 3.25379599e+02 3.29771239e+02 3.34222154e+02 3.38733142e+02 + 3.43305015e+02 3.47938595e+02 3.52634714e+02 3.57394216e+02 3.62217957e+02 + 3.67106805e+02 3.72061636e+02 3.77083343e+02 3.82172828e+02 3.87331006e+02 + 3.92558803e+02 3.97857160e+02 4.03227029e+02 4.08669374e+02 4.14185175e+02 + 4.19775422e+02 4.25441121e+02 4.31183290e+02 4.37002961e+02 4.42901179e+02 + 4.48879006e+02 4.54937515e+02 4.61077796e+02 4.67300952e+02 4.73608102e+02 + 4.80000379e+02 4.86478933e+02 4.93044927e+02 4.99699543e+02 5.06443976e+02 + 5.13279438e+02 5.20207158e+02 5.27228382e+02 5.34344371e+02 5.41556404e+02 + 5.48865778e+02 5.56273806e+02 5.63781821e+02 5.71391170e+02 5.79103223e+02 + 5.86919366e+02 5.94841002e+02 6.02869557e+02 6.11006473e+02 6.19253213e+02 + 6.27611259e+02 6.36082113e+02 6.44667298e+02 6.53368357e+02 6.62186855e+02 + 6.71124375e+02 6.80182525e+02 6.89362932e+02 6.98667247e+02 7.08097142e+02 + 7.17654312e+02 7.27340476e+02 7.37157373e+02 7.47106768e+02 7.57190450e+02 + 7.67410232e+02 7.77767949e+02 7.88265465e+02 7.98904665e+02 8.09687462e+02 + 8.20615795e+02 8.31691626e+02 8.42916949e+02 8.54293779e+02 8.65824161e+02 + 8.77510169e+02 8.89353903e+02 9.01357492e+02 9.13523092e+02 9.25852892e+02 + 9.38349106e+02 9.51013982e+02 9.63849795e+02 9.76858852e+02 9.90043493e+02 + 1.00340609e+03 1.01694903e+03 1.03067477e+03 1.04458576e+03 1.05868451e+03 + 1.07297355e+03 1.08745545e+03 1.10213281e+03 1.11700827e+03 1.13208451e+03 + 1.14736422e+03 1.16285017e+03 1.17854513e+03 1.19445193e+03 1.21057342e+03 + 1.22691250e+03 1.24347211e+03 1.26025522e+03 1.27726485e+03 1.29450407e+03 + 1.31197596e+03 1.32968367e+03 1.34763038e+03 1.36581931e+03 1.38425374e+03 + 1.40293698e+03 1.42187239e+03 1.44106337e+03 1.46051336e+03 1.48022588e+03 + 1.50020445e+03 1.52045267e+03 1.54097419e+03 1.56177268e+03 1.58285189e+03 + 1.60421560e+03 1.62586766e+03 1.64781196e+03 1.67005244e+03 1.69259310e+03 + 1.71543799e+03 1.73859121e+03 1.76205693e+03 1.78583938e+03 1.80994281e+03 + 1.83437156e+03 1.85913003e+03 1.88422266e+03 1.90965397e+03 1.93542853e+03 + 1.96155096e+03 1.98802597e+03 2.01485831e+03 2.04205280e+03 2.06961434e+03 + 2.09754787e+03 2.12585843e+03 2.15455109e+03 2.18363101e+03 2.21310343e+03 + 2.24297363e+03 2.27324699e+03 2.30392895e+03 2.33502503e+03 2.36654081e+03 + 2.39848195e+03 2.43085420e+03 2.46366339e+03 2.49691539e+03 2.53061620e+03 + 2.56477187e+03 2.59938853e+03 2.63447242e+03 2.67002983e+03 2.70606716e+03 + 2.74259088e+03 2.77960756e+03 2.81712386e+03 2.85514651e+03 2.89368236e+03 + 2.93273832e+03 2.97232142e+03 3.01243877e+03 3.05309759e+03 3.09430517e+03 + 3.13606893e+03 3.17839638e+03 3.22129512e+03 3.26477287e+03 3.30883743e+03 + 3.35349673e+03 3.39875879e+03 3.44463176e+03 3.49112387e+03 3.53824349e+03 + 3.58599907e+03 3.63439922e+03 3.68345262e+03 3.73316809e+03 3.78355457e+03 + 3.83462112e+03 3.88637691e+03 3.93883124e+03 3.99199356e+03 4.04587340e+03 + 4.10048045e+03 4.15582454e+03 4.21191561e+03 4.26876373e+03 4.32637913e+03 + 4.38477217e+03 4.44395333e+03 4.50393327e+03 4.56472275e+03 4.62633270e+03 + 4.68877420e+03 4.75205848e+03 4.81619690e+03 4.88120099e+03 4.94708244e+03 + 5.01385310e+03 5.08152495e+03 5.15011018e+03 5.21962109e+03 5.29007019e+03 + 5.36147014e+03 5.43383378e+03 5.50717410e+03 5.58150430e+03 5.65683773e+03 + 5.73318793e+03 5.81056864e+03 5.88899374e+03 5.96847735e+03 6.04903375e+03 + 6.13067741e+03 6.21342302e+03 6.29728544e+03 6.38227975e+03 6.46842123e+03 + 6.55572536e+03 6.64420783e+03 6.73388454e+03 6.82477162e+03 6.91688540e+03 + 7.01024244e+03 7.10485951e+03 7.20075363e+03 7.29794203e+03 7.39644218e+03 + 7.49627178e+03 7.59744879e+03 7.69999137e+03 7.80391797e+03 7.90924727e+03 + 8.01599819e+03 8.12418992e+03 8.23384192e+03 8.34497389e+03 8.45760580e+03 + 8.57175791e+03 8.68745072e+03 8.80470504e+03 8.92354193e+03 9.04398276e+03 + 9.16604918e+03 9.28976313e+03 9.41514684e+03 9.54222285e+03 9.67101401e+03 + 9.80154345e+03 9.93383465e+03 1.00679114e+04 1.02037977e+04 1.03415182e+04 + 1.04810974e+04 1.06225605e+04 1.07659329e+04 1.09112405e+04 1.10585092e+04 + 1.12077657e+04 1.13590366e+04 1.15123493e+04 1.16677312e+04 1.18252103e+04 + 1.19848148e+04 1.21465736e+04 1.23105156e+04 1.24766704e+04 1.26450677e+04 + 1.28157379e+04 1.29887116e+04 1.31640199e+04 1.33416944e+04 1.35217669e+04 + 1.37042699e+04 1.38892361e+04 1.40766987e+04 1.42666916e+04 1.44592488e+04 + 1.46544049e+04 1.48521951e+04 1.50526548e+04 1.52558201e+04 1.54617276e+04 + 1.56704142e+04 1.58819174e+04 1.60962752e+04 1.63135263e+04 1.65337095e+04 + 1.67568646e+04 1.69830316e+04 1.72122512e+04 1.74445645e+04 1.76800134e+04 + 1.79186401e+04 1.81604876e+04 1.84055993e+04 1.86540192e+04 1.89057921e+04 + 1.91609631e+04 1.94195781e+04 1.96816837e+04 1.99473269e+04 2.02165555e+04 + 2.04894179e+04 2.07659631e+04 2.10462408e+04 2.13303014e+04 2.16181960e+04 + 2.19099763e+04 2.22056947e+04 2.25054044e+04 2.28091593e+04 2.31170140e+04 + 2.34290238e+04 2.37452448e+04 2.40657338e+04 2.43905484e+04 2.47197470e+04 + 2.50533889e+04 2.53915339e+04 2.57342428e+04 2.60815773e+04 2.64335997e+04 + 2.67903734e+04 2.71519624e+04 2.75184318e+04 2.78898474e+04 2.82662760e+04 + 2.86477853e+04 2.90344437e+04 2.94263209e+04 2.98234873e+04 3.02260142e+04 + 3.06339740e+04 3.10474400e+04 3.14664865e+04 3.18911890e+04 3.23216236e+04 + 3.27578678e+04 3.31999999e+04 3.36480995e+04 3.41022471e+04 3.45625243e+04 + 3.50290139e+04 3.55017997e+04 3.59809666e+04 3.64666009e+04 3.69587897e+04 + 3.74576216e+04 3.79631862e+04 3.84755745e+04 3.89948784e+04 3.95211913e+04 + 4.00546079e+04 4.05952240e+04 4.11431368e+04 4.16984447e+04 4.22612476e+04 + 4.28316467e+04 4.34097444e+04 4.39956447e+04 4.45894528e+04 4.51912756e+04 + 4.58012212e+04 4.64193992e+04 4.70459207e+04 4.76808984e+04 4.83244463e+04 + 4.89766802e+04 4.96377173e+04 5.03076764e+04 5.09866779e+04 5.16748439e+04 + 5.23722980e+04 5.30791657e+04 5.37955739e+04 5.45216515e+04 5.52575289e+04 + 5.60033385e+04 5.67592142e+04 5.75252919e+04 5.83017094e+04 5.90886062e+04 + 5.98861237e+04 6.06944053e+04 6.15135963e+04 6.23438438e+04 6.31852972e+04 + 6.40381076e+04 6.49024284e+04 6.57784150e+04 6.66662247e+04 6.75660171e+04 + 6.84779540e+04 6.94021994e+04 7.03389192e+04 7.12882819e+04 7.22504581e+04 + 7.32256209e+04 7.42139453e+04 7.52156092e+04 7.62307924e+04 7.72596776e+04 + 7.83024497e+04 7.93592960e+04 8.04304065e+04 8.15159738e+04 8.26161929e+04 + 8.37312617e+04 8.48613806e+04 8.60067526e+04 8.71675837e+04 8.83440825e+04 + 8.95364604e+04 9.07449319e+04 9.19697141e+04 9.32110271e+04 9.44690942e+04 + 9.57441413e+04 9.70363977e+04 9.83460956e+04 9.96734705e+04 1.01018761e+05 + 1.02382209e+05 1.03764059e+05 1.05164560e+05 1.06583964e+05 1.08022525e+05 + 1.09480502e+05 1.10958158e+05 1.12455758e+05 1.13973570e+05 1.15511869e+05 + 1.17070930e+05 1.18651033e+05 1.20252464e+05 1.21875508e+05 1.23520459e+05 + 1.25187612e+05 1.26877266e+05 1.28589725e+05 1.30325298e+05 1.32084295e+05 + 1.33867034e+05 1.35673834e+05 1.37505020e+05 1.39360922e+05 1.41241873e+05 + 1.43148212e+05 1.45080280e+05 1.47038425e+05 1.49022999e+05 1.51034359e+05 + 1.53072866e+05 1.55138887e+05 1.57232793e+05 1.59354960e+05 1.61505770e+05 + 1.63685609e+05 1.65894870e+05 1.68133949e+05 1.70403249e+05 1.72703178e+05 + 1.75034149e+05 1.77396580e+05 1.79790898e+05 1.82217531e+05 1.84676917e+05 + 1.87169497e+05 1.89695719e+05 1.92256038e+05 1.94850913e+05 1.97480811e+05 + 2.00146205e+05 2.02847573e+05 2.05585402e+05 2.08360183e+05 2.11172416e+05 + 2.14022605e+05 2.16911263e+05 2.19838909e+05 2.22806069e+05 2.25813278e+05 + 2.28861074e+05 2.31950007e+05 2.35080630e+05 2.38253508e+05 2.41469210e+05 + 2.44728314e+05 2.48031406e+05 2.51379080e+05 2.54771938e+05 2.58210588e+05 + 2.61695651e+05 2.65227751e+05 2.68807523e+05 2.72435612e+05 2.76112669e+05 + 2.79839355e+05 2.83616340e+05 2.87444303e+05 2.91323932e+05 2.95255924e+05 + 2.99240986e+05 3.03279835e+05 3.07373196e+05 3.11521804e+05 3.15726407e+05 + 3.19987758e+05 3.24306626e+05 3.28683784e+05 3.33120022e+05 3.37616135e+05 + 3.42172931e+05 3.46791231e+05 3.51471864e+05 3.56215672e+05 3.61023506e+05 + 3.65896232e+05 3.70834725e+05 3.75839872e+05 3.80912574e+05 3.86053742e+05 + 3.91264300e+05 3.96545185e+05 4.01897346e+05 4.07321745e+05 4.12819356e+05 + 4.18391169e+05 4.24038185e+05 4.29761418e+05 4.35561898e+05 4.41440667e+05 + 4.47398781e+05 4.53437311e+05 4.59557344e+05 4.65759979e+05 4.72046330e+05 + 4.78417528e+05 4.84874718e+05 4.91419060e+05 4.98051732e+05 5.04773924e+05 + 5.11586846e+05 5.18491721e+05 5.25489792e+05 5.32582315e+05 5.39770566e+05 + 5.47055836e+05 5.54439436e+05 5.61922691e+05 5.69506949e+05 5.77193570e+05 + 5.84983938e+05 5.92879453e+05 6.00881532e+05 6.08991616e+05 6.17211161e+05 + 6.25541646e+05 6.33984566e+05 6.42541441e+05 6.51213808e+05 6.60003225e+05 + 1.65580254e-01 1.65563515e-01 1.65546741e-01 1.65529929e-01 1.65513082e-01 + 1.65496198e-01 1.65479277e-01 1.65462319e-01 1.65445324e-01 1.65428292e-01 + 1.65411223e-01 1.65394117e-01 1.65376974e-01 1.65359793e-01 1.65342574e-01 + 1.65325318e-01 1.65308025e-01 1.65290693e-01 1.65273323e-01 1.65255915e-01 + 1.65238469e-01 1.65220985e-01 1.65203462e-01 1.65185901e-01 1.65168301e-01 + 1.65150662e-01 1.65132985e-01 1.65115268e-01 1.65097513e-01 1.65079718e-01 + 1.65061884e-01 1.65044011e-01 1.65026098e-01 1.65008145e-01 1.64990153e-01 + 1.64972120e-01 1.64954048e-01 1.64935936e-01 1.64917783e-01 1.64899591e-01 + 1.64881357e-01 1.64863083e-01 1.64844769e-01 1.64826414e-01 1.64808017e-01 + 1.64789580e-01 1.64771102e-01 1.64752582e-01 1.64734021e-01 1.64715418e-01 + 1.64696774e-01 1.64678088e-01 1.64659360e-01 1.64640590e-01 1.64621778e-01 + 1.64602924e-01 1.64584027e-01 1.64565088e-01 1.64546107e-01 1.64527082e-01 + 1.64508015e-01 1.64488905e-01 1.64469751e-01 1.64450555e-01 1.64431315e-01 + 1.64412031e-01 1.64392704e-01 1.64373334e-01 1.64353919e-01 1.64334460e-01 + 1.64314958e-01 1.64295411e-01 1.64275819e-01 1.64256183e-01 1.64236503e-01 + 1.64216777e-01 1.64197007e-01 1.64177192e-01 1.64157331e-01 1.64137425e-01 + 1.64117474e-01 1.64097477e-01 1.64077435e-01 1.64057346e-01 1.64037212e-01 + 1.64017032e-01 1.63996805e-01 1.63976532e-01 1.63956212e-01 1.63935846e-01 + 1.63915433e-01 1.63894973e-01 1.63874465e-01 1.63853911e-01 1.63833309e-01 + 1.63812660e-01 1.63791963e-01 1.63771218e-01 1.63750426e-01 1.63729585e-01 + 1.63708696e-01 1.63687759e-01 1.63666773e-01 1.63645738e-01 1.63624655e-01 + 1.63603523e-01 1.63582341e-01 1.63561111e-01 1.63539831e-01 1.63518501e-01 + 1.63497122e-01 1.63475693e-01 1.63454214e-01 1.63432685e-01 1.63411106e-01 + 1.63389476e-01 1.63367795e-01 1.63346064e-01 1.63324282e-01 1.63302449e-01 + 1.63280565e-01 1.63258629e-01 1.63236642e-01 1.63214603e-01 1.63192512e-01 + 1.63170369e-01 1.63148174e-01 1.63125927e-01 1.63103628e-01 1.63081275e-01 + 1.63058870e-01 1.63036412e-01 1.63013901e-01 1.62991337e-01 1.62968719e-01 + 1.62946048e-01 1.62923323e-01 1.62900544e-01 1.62877710e-01 1.62854823e-01 + 1.62831881e-01 1.62808885e-01 1.62785834e-01 1.62762728e-01 1.62739567e-01 + 1.62716350e-01 1.62693078e-01 1.62669751e-01 1.62646368e-01 1.62622929e-01 + 1.62599433e-01 1.62575882e-01 1.62552274e-01 1.62528609e-01 1.62504888e-01 + 1.62481109e-01 1.62457274e-01 1.62433381e-01 1.62409431e-01 1.62385423e-01 + 1.62361357e-01 1.62337233e-01 1.62313050e-01 1.62288810e-01 1.62264510e-01 + 1.62240152e-01 1.62215735e-01 1.62191259e-01 1.62166724e-01 1.62142129e-01 + 1.62117474e-01 1.62092759e-01 1.62067985e-01 1.62043150e-01 1.62018255e-01 + 1.61993299e-01 1.61968282e-01 1.61943204e-01 1.61918065e-01 1.61892865e-01 + 1.61867603e-01 1.61842279e-01 1.61816893e-01 1.61791445e-01 1.61765935e-01 + 1.61740362e-01 1.61714726e-01 1.61689028e-01 1.61663266e-01 1.61637441e-01 + 1.61611552e-01 1.61585600e-01 1.61559583e-01 1.61533503e-01 1.61507358e-01 + 1.61481148e-01 1.61454874e-01 1.61428535e-01 1.61402130e-01 1.61375660e-01 + 1.61349125e-01 1.61322523e-01 1.61295856e-01 1.61269123e-01 1.61242323e-01 + 1.61215456e-01 1.61188522e-01 1.61161522e-01 1.61134454e-01 1.61107319e-01 + 1.61080115e-01 1.61052844e-01 1.61025505e-01 1.60998098e-01 1.60970621e-01 + 1.60943076e-01 1.60915462e-01 1.60887779e-01 1.60860026e-01 1.60832204e-01 + 1.60804311e-01 1.60776349e-01 1.60748316e-01 1.60720212e-01 1.60692038e-01 + 1.60663792e-01 1.60635475e-01 1.60607087e-01 1.60578627e-01 1.60550095e-01 + 1.60521491e-01 1.60492814e-01 1.60464065e-01 1.60435242e-01 1.60406347e-01 + 1.60377378e-01 1.60348335e-01 1.60319219e-01 1.60290028e-01 1.60260764e-01 + 1.60231424e-01 1.60202010e-01 1.60172520e-01 1.60142955e-01 1.60113315e-01 + 1.60083599e-01 1.60053807e-01 1.60023938e-01 1.59993993e-01 1.59963971e-01 + 1.59933872e-01 1.59903696e-01 1.59873442e-01 1.59843110e-01 1.59812700e-01 + 1.59782212e-01 1.59751645e-01 1.59720999e-01 1.59690274e-01 1.59659470e-01 + 1.59628586e-01 1.59597622e-01 1.59566578e-01 1.59535454e-01 1.59504249e-01 + 1.59472963e-01 1.59441595e-01 1.59410146e-01 1.59378616e-01 1.59347003e-01 + 1.59315308e-01 1.59283531e-01 1.59251670e-01 1.59219726e-01 1.59187699e-01 + 1.59155589e-01 1.59123394e-01 1.59091115e-01 1.59058751e-01 1.59026303e-01 + 1.58993770e-01 1.58961151e-01 1.58928446e-01 1.58895656e-01 1.58862779e-01 + 1.58829816e-01 1.58796766e-01 1.58763628e-01 1.58730404e-01 1.58697092e-01 + 1.58663691e-01 1.58630203e-01 1.58596625e-01 1.58562959e-01 1.58529204e-01 + 1.58495359e-01 1.58461425e-01 1.58427400e-01 1.58393285e-01 1.58359079e-01 + 1.58324782e-01 1.58290394e-01 1.58255915e-01 1.58221343e-01 1.58186679e-01 + 1.58151923e-01 1.58117073e-01 1.58082131e-01 1.58047095e-01 1.58011965e-01 + 1.57976741e-01 1.57941422e-01 1.57906009e-01 1.57870501e-01 1.57834897e-01 + 1.57799197e-01 1.57763402e-01 1.57727510e-01 1.57691521e-01 1.57655435e-01 + 1.57619252e-01 1.57582971e-01 1.57546592e-01 1.57510115e-01 1.57473538e-01 + 1.57436863e-01 1.57400088e-01 1.57363214e-01 1.57326239e-01 1.57289164e-01 + 1.57251989e-01 1.57214712e-01 1.57177333e-01 1.57139853e-01 1.57102271e-01 + 1.57064586e-01 1.57026798e-01 1.56988907e-01 1.56950912e-01 1.56912813e-01 + 1.56874610e-01 1.56836302e-01 1.56797890e-01 1.56759371e-01 1.56720748e-01 + 1.56682017e-01 1.56643181e-01 1.56604237e-01 1.56565187e-01 1.56526028e-01 + 1.56486762e-01 1.56447387e-01 1.56407903e-01 1.56368311e-01 1.56328609e-01 + 1.56288796e-01 1.56248874e-01 1.56208841e-01 1.56168697e-01 1.56128441e-01 + 1.56088074e-01 1.56047594e-01 1.56007002e-01 1.55966297e-01 1.55925478e-01 + 1.55884546e-01 1.55843499e-01 1.55802338e-01 1.55761062e-01 1.55719670e-01 + 1.55678163e-01 1.55636539e-01 1.55594799e-01 1.55552941e-01 1.55510966e-01 + 1.55468873e-01 1.55426662e-01 1.55384333e-01 1.55341884e-01 1.55299315e-01 + 1.55256627e-01 1.55213818e-01 1.55170888e-01 1.55127838e-01 1.55084665e-01 + 1.55041370e-01 1.54997953e-01 1.54954413e-01 1.54910749e-01 1.54866961e-01 + 1.54823050e-01 1.54779013e-01 1.54734851e-01 1.54690564e-01 1.54646150e-01 + 1.54601610e-01 1.54556943e-01 1.54512149e-01 1.54467226e-01 1.54422176e-01 + 1.54376996e-01 1.54331687e-01 1.54286249e-01 1.54240680e-01 1.54194981e-01 + 1.54149150e-01 1.54103188e-01 1.54057094e-01 1.54010867e-01 1.53964507e-01 + 1.53918014e-01 1.53871386e-01 1.53824625e-01 1.53777728e-01 1.53730696e-01 + 1.53683527e-01 1.53636223e-01 1.53588781e-01 1.53541202e-01 1.53493486e-01 + 1.53445630e-01 1.53397636e-01 1.53349503e-01 1.53301229e-01 1.53252815e-01 + 1.53204260e-01 1.53155564e-01 1.53106726e-01 1.53057745e-01 1.53008621e-01 + 1.52959354e-01 1.52909943e-01 1.52860387e-01 1.52810686e-01 1.52760840e-01 + 1.52710847e-01 1.52660708e-01 1.52610421e-01 1.52559987e-01 1.52509404e-01 + 1.52458673e-01 1.52407792e-01 1.52356762e-01 1.52305580e-01 1.52254248e-01 + 1.52202764e-01 1.52151129e-01 1.52099340e-01 1.52047398e-01 1.51995302e-01 + 1.51943052e-01 1.51890647e-01 1.51838087e-01 1.51785370e-01 1.51732497e-01 + 1.51679467e-01 1.51626279e-01 1.51572932e-01 1.51519426e-01 1.51465761e-01 + 1.51411936e-01 1.51357950e-01 1.51303802e-01 1.51249493e-01 1.51195021e-01 + 1.51140386e-01 1.51085587e-01 1.51030624e-01 1.50975496e-01 1.50920202e-01 + 1.50864742e-01 1.50809116e-01 1.50753322e-01 1.50697360e-01 1.50641229e-01 + 1.50584929e-01 1.50528459e-01 1.50471818e-01 1.50415007e-01 1.50358023e-01 + 1.50300867e-01 1.50243538e-01 1.50186035e-01 1.50128358e-01 1.50070506e-01 + 1.50012478e-01 1.49954274e-01 1.49895893e-01 1.49837334e-01 1.49778596e-01 + 1.49719680e-01 1.49660584e-01 1.49601308e-01 1.49541850e-01 1.49482211e-01 + 1.49422390e-01 1.49362385e-01 1.49302197e-01 1.49241824e-01 1.49181266e-01 + 1.49120523e-01 1.49059593e-01 1.48998475e-01 1.48937170e-01 1.48875676e-01 + 1.48813992e-01 1.48752119e-01 1.48690055e-01 1.48627799e-01 1.48565351e-01 + 1.48502710e-01 1.48439876e-01 1.48376847e-01 1.48313623e-01 1.48250203e-01 + 1.48186586e-01 1.48122773e-01 1.48058761e-01 1.47994550e-01 1.47930139e-01 + 1.47865528e-01 1.47800717e-01 1.47735703e-01 1.47670486e-01 1.47605066e-01 + 1.47539442e-01 1.47473613e-01 1.47407579e-01 1.47341337e-01 1.47274889e-01 + 1.47208232e-01 1.47141367e-01 1.47074292e-01 1.47007006e-01 1.46939509e-01 + 1.46871800e-01 1.46803878e-01 1.46735743e-01 1.46667393e-01 1.46598827e-01 + 1.46530046e-01 1.46461047e-01 1.46391831e-01 1.46322396e-01 1.46252742e-01 + 1.46182867e-01 1.46112772e-01 1.46042454e-01 1.45971913e-01 1.45901149e-01 + 1.45830160e-01 1.45758946e-01 1.45687506e-01 1.45615839e-01 1.45543943e-01 + 1.45471819e-01 1.45399465e-01 1.45326880e-01 1.45254064e-01 1.45181016e-01 + 1.45107734e-01 1.45034218e-01 1.44960467e-01 1.44886480e-01 1.44812256e-01 + 1.44737795e-01 1.44663094e-01 1.44588154e-01 1.44512974e-01 1.44437552e-01 + 1.44361888e-01 1.44285981e-01 1.44209829e-01 1.44133432e-01 1.44056789e-01 + 1.43979899e-01 1.43902761e-01 1.43825374e-01 1.43747737e-01 1.43669849e-01 + 1.43591710e-01 1.43513317e-01 1.43434671e-01 1.43355770e-01 1.43276613e-01 + 1.43197200e-01 1.43117528e-01 1.43037599e-01 1.42957409e-01 1.42876959e-01 + 1.42796247e-01 1.42715272e-01 1.42634034e-01 1.42552530e-01 1.42470761e-01 + 1.42388726e-01 1.42306422e-01 1.42223850e-01 1.42141007e-01 1.42057894e-01 + 1.41974509e-01 1.41890851e-01 1.41806919e-01 1.41722711e-01 1.41638228e-01 + 1.41553467e-01 1.41468428e-01 1.41383109e-01 1.41297511e-01 1.41211630e-01 + 1.41125467e-01 1.41039020e-01 1.40952288e-01 1.40865271e-01 1.40777966e-01 + 1.40690373e-01 1.40602491e-01 1.40514319e-01 1.40425855e-01 1.40337099e-01 + 1.40248048e-01 1.40158703e-01 1.40069062e-01 1.39979124e-01 1.39888888e-01 + 1.39798352e-01 1.39707515e-01 1.39616377e-01 1.39524936e-01 1.39433191e-01 + 1.39341140e-01 1.39248784e-01 1.39156119e-01 1.39063146e-01 1.38969862e-01 + 1.38876268e-01 1.38782361e-01 1.38688141e-01 1.38593606e-01 1.38498755e-01 + 1.38403586e-01 1.38308099e-01 1.38212293e-01 1.38116166e-01 1.38019716e-01 + 1.37922943e-01 1.37825846e-01 1.37728423e-01 1.37630672e-01 1.37532594e-01 + 1.37434185e-01 1.37335446e-01 1.37236375e-01 1.37136970e-01 1.37037230e-01 + 1.36937155e-01 1.36836742e-01 1.36735991e-01 1.36634900e-01 1.36533467e-01 + 1.36431692e-01 1.36329574e-01 1.36227110e-01 1.36124300e-01 1.36021142e-01 + 1.35917635e-01 1.35813778e-01 1.35709568e-01 1.35605006e-01 1.35500089e-01 + 1.35394817e-01 1.35289187e-01 1.35183199e-01 1.35076851e-01 1.34970142e-01 + 1.34863070e-01 1.34755634e-01 1.34647833e-01 1.34539665e-01 1.34431128e-01 + 1.34322223e-01 1.34212946e-01 1.34103297e-01 1.33993274e-01 1.33882876e-01 + 1.33772101e-01 1.33660948e-01 1.33549416e-01 1.33437503e-01 1.33325207e-01 + 1.33212528e-01 1.33099463e-01 1.32986012e-01 1.32872172e-01 1.32757943e-01 + 1.32643323e-01 1.32528310e-01 1.32412904e-01 1.32297101e-01 1.32180902e-01 + 1.32064305e-01 1.31947307e-01 1.31829908e-01 1.31712106e-01 1.31593899e-01 + 1.31475287e-01 1.31356267e-01 1.31236838e-01 1.31116998e-01 1.30996746e-01 + 1.30876081e-01 1.30755001e-01 1.30633504e-01 1.30511588e-01 1.30389253e-01 + 1.30266497e-01 1.30143318e-01 1.30019714e-01 1.29895684e-01 1.29771227e-01 + 1.29646341e-01 1.29521024e-01 1.29395274e-01 1.29269091e-01 1.29142472e-01 + 1.29015417e-01 1.28887922e-01 1.28759987e-01 1.28631611e-01 1.28502791e-01 + 1.28373525e-01 1.28243813e-01 1.28113653e-01 1.27983043e-01 1.27851981e-01 + 1.27720466e-01 1.27588496e-01 1.27456070e-01 1.27323186e-01 1.27189841e-01 + 1.27056036e-01 1.26921767e-01 1.26787033e-01 1.26651833e-01 1.26516166e-01 + 1.26380028e-01 1.26243419e-01 1.26106337e-01 1.25968780e-01 1.25830747e-01 + 1.25692235e-01 1.25553244e-01 1.25413771e-01 1.25273815e-01 1.25133375e-01 + 1.24992448e-01 1.24851032e-01 1.24709127e-01 1.24566730e-01 1.24423839e-01 + 1.24280454e-01 1.24136571e-01 1.23992190e-01 1.23847309e-01 1.23701926e-01 + 1.23556040e-01 1.23409647e-01 1.23262748e-01 1.23115340e-01 1.22967422e-01 + 1.22818991e-01 1.22670046e-01 1.22520585e-01 1.22370607e-01 1.22220110e-01 + 1.22069091e-01 1.21917550e-01 1.21765484e-01 1.21612892e-01 1.21459773e-01 + 1.21306123e-01 1.21151942e-01 1.20997228e-01 1.20841979e-01 1.20686193e-01 + 1.20529869e-01 1.20373004e-01 1.20215598e-01 1.20057648e-01 1.19899152e-01 + 1.19740109e-01 1.19580518e-01 1.19420375e-01 1.19259680e-01 1.19098431e-01 + 1.18936626e-01 1.18774263e-01 1.18611341e-01 1.18447857e-01 1.18283810e-01 + 1.18119199e-01 1.17954021e-01 1.17788276e-01 1.17621960e-01 1.17455072e-01 + 1.17287611e-01 1.17119575e-01 1.16950961e-01 1.16781770e-01 1.16611997e-01 + 1.16441643e-01 1.16270705e-01 1.16099181e-01 1.15927070e-01 1.15754370e-01 + 1.15581079e-01 1.15407195e-01 1.15232718e-01 1.15057644e-01 1.14881973e-01 + 1.14705703e-01 1.14528831e-01 1.14351357e-01 1.14173279e-01 1.13994594e-01 + 1.13815302e-01 1.13635400e-01 1.13454887e-01 1.13273762e-01 1.13092022e-01 + 1.12909666e-01 1.12726692e-01 1.12543099e-01 1.12358884e-01 1.12174047e-01 + 1.11988586e-01 1.11802499e-01 1.11615785e-01 1.11428441e-01 1.11240467e-01 + 1.11051860e-01 1.10862619e-01 1.10672743e-01 1.10482230e-01 1.10291079e-01 + 1.10099287e-01 1.09906853e-01 1.09713777e-01 1.09520055e-01 1.09325688e-01 + 1.09130672e-01 1.08935008e-01 1.08738692e-01 1.08541725e-01 1.08344104e-01 + 1.08145827e-01 1.07946894e-01 1.07747304e-01 1.07547053e-01 1.07346142e-01 + 1.07144569e-01 1.06942333e-01 1.06739431e-01 1.06535863e-01 1.06331627e-01 + 1.06126723e-01 1.05921148e-01 1.05714902e-01 1.05507982e-01 1.05300389e-01 + 1.05092120e-01 1.04883175e-01 1.04673552e-01 1.04463250e-01 1.04252268e-01 + 1.04040604e-01 1.03828258e-01 1.03615228e-01 1.03401513e-01 1.03187113e-01 + 1.02972026e-01 1.02756250e-01 1.02539786e-01 1.02322631e-01 1.02104785e-01 + 1.01886248e-01 1.01667017e-01 1.01447092e-01 1.01226473e-01 1.01005158e-01 + 1.00783146e-01 1.00560436e-01 1.00337028e-01 1.00112922e-01 9.98881150e-02 + 9.96626076e-02 9.94363989e-02 9.92094881e-02 9.89818746e-02 9.87535577e-02 + 9.85245367e-02 9.82948112e-02 9.80643804e-02 9.78332440e-02 9.76014013e-02 + 9.73688518e-02 9.71355952e-02 9.69016310e-02 9.66669588e-02 9.64315783e-02 + 9.61954891e-02 9.59586908e-02 9.57211834e-02 9.54829664e-02 9.52440398e-02 + 9.50044033e-02 9.47640568e-02 9.45230003e-02 9.42812335e-02 9.40387567e-02 + 9.37955696e-02 9.35516725e-02 9.33070653e-02 9.30617482e-02 9.28157214e-02 + 9.25689850e-02 9.23215393e-02 9.20733846e-02 9.18245212e-02 9.15749495e-02 + 9.13246699e-02 9.10736827e-02 9.08219886e-02 9.05695880e-02 9.03164816e-02 + 9.00626699e-02 8.98081536e-02 8.95529334e-02 8.92970102e-02 8.90403847e-02 + 8.87830577e-02 8.85250303e-02 8.82663032e-02 8.80068776e-02 8.77467546e-02 + 8.74859351e-02 8.72244204e-02 8.69622117e-02 8.66993103e-02 8.64357174e-02 + 8.61714345e-02 8.59064630e-02 8.56408044e-02 8.53744602e-02 8.51074320e-02 + 8.48397215e-02 8.45713304e-02 8.43022605e-02 8.40325136e-02 8.37620916e-02 + 8.34909965e-02 8.32192302e-02 8.29467950e-02 8.26736929e-02 8.23999262e-02 + 8.21254970e-02 8.18504079e-02 8.15746611e-02 8.12982592e-02 8.10212047e-02 + 8.07435002e-02 8.04651484e-02 8.01861521e-02 7.99065141e-02 7.96262372e-02 + 7.93453246e-02 7.90637791e-02 7.87816039e-02 7.84988023e-02 7.82153774e-02 + 7.79313327e-02 7.76466715e-02 7.73613974e-02 7.70755139e-02 7.67890246e-02 + 7.65019334e-02 7.62142440e-02 7.59259604e-02 7.56370865e-02 7.53476263e-02 + 7.50575841e-02 7.47669641e-02 7.44757706e-02 7.41840079e-02 7.38916807e-02 + 7.35987934e-02 7.33053507e-02 7.30113575e-02 7.27168185e-02 7.24217387e-02 + 7.21261231e-02 7.18299768e-02 7.15333051e-02 7.12361133e-02 7.09384067e-02 + 7.06401909e-02 7.03414715e-02 7.00422541e-02 6.97425446e-02 6.94423488e-02 + 6.91416728e-02 6.88405225e-02 6.85389043e-02 6.82368244e-02 6.79342891e-02 + 6.76313050e-02 6.73278787e-02 6.70240169e-02 6.67197264e-02 6.64150140e-02 + 6.61098869e-02 6.58043520e-02 6.54984168e-02 6.51920884e-02 6.48853744e-02 + 6.45782823e-02 6.42708198e-02 6.39629946e-02 6.36548146e-02 6.33462879e-02 + 6.30374225e-02 6.27282267e-02 6.24187088e-02 6.21088773e-02 6.17987406e-02 + 6.14883076e-02 6.11775870e-02 6.08665877e-02 6.05553188e-02 6.02437893e-02 + 5.99320086e-02 5.96199860e-02 5.93077311e-02 5.89952534e-02 5.86825627e-02 + 5.83696689e-02 5.80565818e-02 5.77433118e-02 5.74298688e-02 5.71162634e-02 + 5.68025058e-02 5.64886069e-02 5.61745771e-02 5.58604274e-02 5.55461687e-02 + 5.52318121e-02 5.49173687e-02 5.46028499e-02 5.42882672e-02 5.39736321e-02 + 5.36589562e-02 5.33442514e-02 5.30295296e-02 5.27148029e-02 5.24000835e-02 + 5.20853836e-02 5.17707158e-02 5.14560924e-02 5.11415263e-02 5.08270302e-02 + 5.05126170e-02 5.01982998e-02 4.98840918e-02 4.95700061e-02 4.92560564e-02 + 4.89422560e-02 4.86286186e-02 4.83151580e-02 4.80018882e-02 4.76888231e-02 + 4.73759769e-02 4.70633638e-02 4.67509982e-02 4.64388946e-02 4.61270676e-02 + 4.58155320e-02 4.55043026e-02 4.51933944e-02 4.48828225e-02 4.45726020e-02 + 4.42627483e-02 4.39532767e-02 4.36442030e-02 4.33355426e-02 4.30273114e-02 + 4.27195253e-02 4.24122002e-02 4.21053521e-02 4.17989974e-02 4.14931524e-02 + 4.11878333e-02 4.08830568e-02 4.05788395e-02 4.02751981e-02 3.99721494e-02 + 3.96697104e-02 3.93678979e-02 3.90667293e-02 3.87662217e-02 3.84663923e-02 + 3.81672586e-02 3.78688381e-02 3.75711484e-02 3.72742070e-02 3.69780319e-02 + 3.66826407e-02 3.63880515e-02 3.60942822e-02 3.58013509e-02 3.55092758e-02 + 3.52180750e-02 3.49277670e-02 3.46383700e-02 3.43499026e-02 3.40623832e-02 + 3.37758304e-02 3.34902629e-02 3.32056994e-02 3.29221586e-02 3.26396593e-02 + 3.23582205e-02 3.20778611e-02 3.17986000e-02 3.15204562e-02 3.12434489e-02 + 3.09675972e-02 3.06929202e-02 3.04194370e-02 3.01471670e-02 2.98761294e-02 + 2.96063435e-02 2.93378286e-02 2.90706040e-02 2.88046891e-02 2.85401033e-02 + 2.82768660e-02 2.80149966e-02 2.77545145e-02 2.74954392e-02 2.72377901e-02 + 2.69815866e-02 2.67268481e-02 2.64735941e-02 2.62218441e-02 2.59716174e-02 + 2.57229334e-02 2.54758115e-02 2.52302711e-02 2.49863315e-02 2.47440120e-02 + 2.45033320e-02 2.42643105e-02 2.40269669e-02 2.37913204e-02 2.35573900e-02 + 2.33251949e-02 2.30947540e-02 2.28660864e-02 2.26392110e-02 2.24141466e-02 + 2.21909120e-02 2.19695260e-02 2.17500072e-02 2.15323742e-02 2.13166455e-02 + 2.11028396e-02 2.08909747e-02 2.06810691e-02 2.04731411e-02 2.02672086e-02 + 2.00632896e-02 1.98614019e-02 1.96615634e-02 1.94637917e-02 1.92681043e-02 + 1.90745186e-02 1.88830519e-02 1.86937213e-02 1.85065440e-02 1.83215368e-02 + 1.81387165e-02 1.79580998e-02 1.77797030e-02 1.76035426e-02 1.74296348e-02 + 1.72579956e-02 1.70886409e-02 1.69215864e-02 1.67568478e-02 1.65944402e-02 + 1.64343791e-02 1.62766795e-02 1.61213562e-02 1.59684240e-02 1.58178973e-02 + 1.56697904e-02 1.55241176e-02 1.53808927e-02 1.52401295e-02 1.51018416e-02 + 1.49660422e-02 1.48327446e-02 1.47019616e-02 1.45737059e-02 1.44479901e-02 + 1.43248264e-02 1.42042269e-02 1.40862035e-02 1.39707676e-02 1.38579308e-02 + 1.37477041e-02 1.36400985e-02 1.35351246e-02 1.34327929e-02 1.33331135e-02 + 1.32360964e-02 1.31417514e-02 1.30500877e-02 1.29611147e-02 1.28748412e-02 + 1.27912760e-02 1.27104274e-02 1.26323037e-02 1.25569127e-02 1.24842620e-02 + 1.24143590e-02 1.23472109e-02 1.22828243e-02 1.22212060e-02 1.21623621e-02 + 1.21062986e-02 1.20530213e-02 1.20025356e-02 1.19548467e-02 1.19099595e-02 + 1.18678785e-02 1.18286081e-02 1.17921522e-02 1.17585148e-02 1.17276991e-02 + 1.16997084e-02 1.16745455e-02 1.16522130e-02 1.16327133e-02 1.16160484e-02 + 1.16022198e-02 1.15912292e-02 1.15830776e-02 1.15777658e-02 1.15752944e-02 + 1.15756637e-02 1.15788736e-02 1.15849238e-02 1.15938137e-02 1.16055423e-02 + 1.16201084e-02 1.16375106e-02 1.16577471e-02 1.16808156e-02 1.17067140e-02 + 1.17354395e-02 1.17669892e-02 1.18013598e-02 1.18385478e-02 1.18785493e-02 + 1.19213604e-02 1.19669765e-02 1.20153931e-02 1.20666051e-02 1.21206073e-02 + 1.21773942e-02 1.22369601e-02 1.22992988e-02 1.23644040e-02 1.24322691e-02 + 1.25028871e-02 1.25762510e-02 1.26523533e-02 1.27311863e-02 1.28127420e-02 + 1.28970121e-02 1.29839883e-02 1.30736618e-02 1.31660235e-02 1.32610642e-02 + 1.33587744e-02 1.34591444e-02 1.35621641e-02 1.36678232e-02 1.37761113e-02 + 1.38870177e-02 1.40005314e-02 1.41166411e-02 1.42353355e-02 1.43566028e-02 + 1.44804312e-02 1.46068085e-02 1.47357225e-02 1.48671606e-02 1.50011099e-02 + 1.51375576e-02 1.52764904e-02 1.54178949e-02 1.55617576e-02 1.57080646e-02 + 1.58568020e-02 1.60079555e-02 1.61615108e-02 1.63174534e-02 1.64757685e-02 + 1.66364411e-02 1.67994562e-02 1.69647985e-02 1.71324525e-02 1.73024027e-02 + 1.74746333e-02 1.76491283e-02 1.78258717e-02 1.80048472e-02 1.81860385e-02 + 1.83694290e-02 1.85550020e-02 1.87427408e-02 1.89326284e-02 1.91246477e-02 + 1.93187815e-02 1.95150125e-02 1.97133233e-02 1.99136963e-02 2.01161138e-02 + 2.03205580e-02 2.05270111e-02 2.07354551e-02 2.09458718e-02 2.11582431e-02 + 2.13725507e-02 2.15887763e-02 2.18069014e-02 2.20269075e-02 2.22487759e-02 + 2.24724880e-02 2.26980251e-02 2.29253683e-02 2.31544988e-02 2.33853976e-02 + 2.36180458e-02 2.38524242e-02 2.40885138e-02 2.43262955e-02 2.45657500e-02 + 2.48068582e-02 2.50496007e-02 2.52939584e-02 2.55399119e-02 2.57874418e-02 + 2.60365287e-02 2.62871534e-02 2.65392963e-02 2.67929381e-02 2.70480593e-02 + 2.73046406e-02 2.75626624e-02 2.78221053e-02 2.80829500e-02 2.83451769e-02 + 2.86087667e-02 2.88736999e-02 2.91399572e-02 2.94075191e-02 2.96763664e-02 + 2.99464796e-02 3.02178395e-02 3.04904267e-02 3.07642221e-02 3.10392064e-02 + 3.13153605e-02 3.15926651e-02 3.18711011e-02 3.21506496e-02 3.24312916e-02 + 3.27130079e-02 3.29957798e-02 3.32795883e-02 3.35644146e-02 3.38502401e-02 + 3.41370460e-02 3.44248137e-02 3.47135246e-02 3.50031602e-02 3.52937021e-02 + 3.55851319e-02 3.58774314e-02 3.61705823e-02 3.64645665e-02 3.67593660e-02 + 3.70549627e-02 3.73513388e-02 3.76484764e-02 3.79463579e-02 3.82449655e-02 + 3.85442817e-02 3.88442891e-02 3.91449703e-02 3.94463079e-02 3.97482849e-02 + 4.00508841e-02 4.03540886e-02 4.06578813e-02 4.09622456e-02 4.12671648e-02 + 4.15726221e-02 4.18786013e-02 4.21850858e-02 4.24920594e-02 4.27995060e-02 + 4.31074094e-02 4.34157537e-02 4.37245230e-02 4.40337017e-02 4.43432741e-02 + 4.46532246e-02 4.49635380e-02 4.52741988e-02 4.55851920e-02 4.58965024e-02 + 4.62081152e-02 4.65200155e-02 4.68321886e-02 4.71446199e-02 4.74572950e-02 + 4.77701996e-02 4.80833192e-02 4.83966400e-02 4.87101479e-02 4.90238289e-02 + 4.93376695e-02 4.96516559e-02 4.99657746e-02 5.02800123e-02 5.05943557e-02 + 5.09087917e-02 5.12233073e-02 5.15378895e-02 5.18525256e-02 5.21672030e-02 + 5.24819092e-02 5.27966317e-02 5.31113583e-02 5.34260768e-02 5.37407752e-02 + 5.40554416e-02 5.43700642e-02 5.46846314e-02 5.49991317e-02 5.53135536e-02 + 5.56278858e-02 5.59421172e-02 5.62562368e-02 5.65702336e-02 5.68840968e-02 + 5.71978158e-02 5.75113800e-02 5.78247790e-02 5.81380025e-02 5.84510402e-02 + 5.87638822e-02 5.90765185e-02 5.93889392e-02 5.97011346e-02 6.00130952e-02 + 6.03248115e-02 6.06362741e-02 6.09474738e-02 6.12584015e-02 6.15690482e-02 + 6.18794050e-02 6.21894631e-02 6.24992140e-02 6.28086489e-02 6.31177596e-02 + 6.34265377e-02 6.37349751e-02 6.40430636e-02 6.43507952e-02 6.46581622e-02 + 6.49651567e-02 6.52717712e-02 6.55779981e-02 6.58838299e-02 6.61892594e-02 + 6.64942794e-02 6.67988828e-02 6.71030625e-02 6.74068117e-02 6.77101237e-02 + 6.80129917e-02 6.83154092e-02 6.86173697e-02 6.89188669e-02 6.92198944e-02 + 6.95204462e-02 6.98205161e-02 7.01200982e-02 7.04191867e-02 7.07177757e-02 + 7.10158596e-02 7.13134329e-02 7.16104900e-02 7.19070256e-02 7.22030344e-02 + 7.24985112e-02 7.27934509e-02 7.30878484e-02 7.33816990e-02 7.36749977e-02 + 7.39677398e-02 7.42599207e-02 7.45515358e-02 7.48425807e-02 7.51330509e-02 + 7.54229421e-02 7.57122502e-02 7.60009711e-02 7.62891006e-02 7.65766348e-02 + 7.68635699e-02 7.71499020e-02 7.74356274e-02 7.77207425e-02 7.80052438e-02 + 7.82891277e-02 7.85723908e-02 7.88550299e-02 7.91370416e-02 7.94184229e-02 + 7.96991705e-02 7.99792815e-02 8.02587530e-02 8.05375820e-02 8.08157657e-02 + 8.10933015e-02 8.13701866e-02 8.16464184e-02 8.19219944e-02 8.21969122e-02 + 8.24711693e-02 8.27447635e-02 8.30176924e-02 8.32899539e-02 8.35615458e-02 + 8.38324661e-02 8.41027128e-02 8.43722839e-02 8.46411775e-02 8.49093918e-02 + 8.51769250e-02 8.54437756e-02 8.57099417e-02 8.59754218e-02 8.62402144e-02 + 8.65043180e-02 8.67677312e-02 8.70304527e-02 8.72924810e-02 8.75538151e-02 + 8.78144536e-02 8.80743954e-02 8.83336395e-02 8.85921847e-02 8.88500302e-02 + 8.91071748e-02 8.93636178e-02 8.96193583e-02 8.98743956e-02 9.01287287e-02 + 9.03823571e-02 9.06352801e-02 9.08874971e-02 9.11390074e-02 9.13898107e-02 + 9.16399063e-02 9.18892939e-02 9.21379731e-02 9.23859434e-02 9.26332047e-02 + 9.28797566e-02 9.31255989e-02 9.33707315e-02 9.36151540e-02 9.38588666e-02 + 9.41018690e-02 9.43441612e-02 9.45857433e-02 9.48266152e-02 9.50667771e-02 + 9.53062290e-02 9.55449711e-02 9.57830036e-02 9.60203266e-02 9.62569405e-02 + 9.64928454e-02 9.67280417e-02 9.69625298e-02 9.71963100e-02 9.74293827e-02 + 9.76617483e-02 9.78934074e-02 9.81243603e-02 9.83546076e-02 9.85841499e-02 + 9.88129878e-02 9.90411218e-02 9.92685525e-02 9.94952807e-02 9.97213070e-02 + 9.99466321e-02 1.00171257e-01 1.00395182e-01 1.00618408e-01 1.00840936e-01 + 1.01062766e-01 1.01283901e-01 1.01504340e-01 1.01724084e-01 1.01943134e-01 + 1.02161492e-01 1.02379158e-01 1.02596133e-01 1.02812418e-01 1.03028014e-01 + 1.03242923e-01 1.03457145e-01 1.03670682e-01 1.03883534e-01 1.04095702e-01 + 1.04307189e-01 1.04517994e-01 1.04728119e-01 1.04937566e-01 1.05146335e-01 + 1.05354428e-01 1.05561846e-01 1.05768590e-01 1.05974662e-01 1.06180062e-01 + 1.06384793e-01 1.06588855e-01 1.06792249e-01 1.06994978e-01 1.07197042e-01 + 1.07398443e-01 1.07599182e-01 1.07799261e-01 1.07998680e-01 1.08197442e-01 + 1.08395548e-01 1.08592999e-01 1.08789797e-01 1.08985943e-01 1.09181439e-01 + 1.09376286e-01 1.09570485e-01 1.09764039e-01 1.09956948e-01 1.10149214e-01 + 1.10340840e-01 1.10531825e-01 1.10722172e-01 1.10911883e-01 1.11100959e-01 + 1.11289401e-01 1.11477211e-01 1.11664391e-01 1.11850942e-01 1.12036866e-01 + 1.12222165e-01 1.12406840e-01 1.12590892e-01 1.12774325e-01 1.12957138e-01 + 1.13139333e-01 1.13320913e-01 1.13501880e-01 1.13682233e-01 1.13861976e-01 + 1.14041111e-01 1.14219637e-01 1.14397559e-01 1.14574876e-01 1.14751591e-01 + 1.14927705e-01 1.15103221e-01 1.15278139e-01 1.15452462e-01 1.15626191e-01 + 1.15799328e-01 1.15971875e-01 1.16143834e-01 1.16315205e-01 1.16485991e-01 + 1.16656194e-01 1.16825815e-01 1.16994856e-01 1.17163320e-01 1.17331206e-01 + 1.17498518e-01 1.17665257e-01 1.17831424e-01 1.17997022e-01 1.18162053e-01 + 1.18326517e-01 1.18490417e-01 1.18653754e-01 1.18816531e-01 1.18978749e-01 + 1.19140409e-01 1.19301514e-01 1.19462065e-01 1.19622064e-01 1.19781513e-01 + 1.19940414e-01 1.20098767e-01 1.20256576e-01 1.20413841e-01 1.20570565e-01 + 1.20726749e-01 1.20882395e-01 1.21037505e-01 1.21192080e-01 1.21346123e-01 + 1.21499635e-01 1.21652617e-01 1.21805072e-01 1.21957001e-01 1.22108406e-01 + 1.22259289e-01 1.22409651e-01 1.22559495e-01 1.22708821e-01 1.22857632e-01 + 1.23005930e-01 1.23153715e-01 1.23300991e-01 1.23447758e-01 1.23594019e-01 + 1.23739774e-01 1.23885027e-01 1.24029777e-01 1.24174028e-01 1.24317781e-01 + 1.24461038e-01 1.24603800e-01 1.24746069e-01 1.24887847e-01 1.25029136e-01 + 1.25169936e-01 1.25310251e-01 1.25450081e-01 1.25589428e-01 1.25728294e-01 + 1.25866681e-01 1.26004590e-01 1.26142024e-01 1.26278983e-01 1.26415469e-01 + 1.26551484e-01 1.26687030e-01 1.26822109e-01 1.26956721e-01 1.27090870e-01 + 1.27224555e-01 1.27357780e-01 1.27490545e-01 1.27622852e-01 1.27754704e-01 + 1.27886101e-01 1.28017045e-01 1.28147538e-01 1.28277582e-01 1.28407177e-01 + 1.28536327e-01 1.28665031e-01 1.28793293e-01 1.28921113e-01 1.29048493e-01 + 1.29175435e-01 1.29301941e-01 1.29428011e-01 1.29553648e-01 1.29678853e-01 + 1.29803627e-01 1.29927973e-01 1.30051892e-01 1.30175385e-01 1.30298454e-01 + 1.30421101e-01 1.30543327e-01 1.30665133e-01 1.30786522e-01 1.30907494e-01 + 1.31028051e-01 1.31148196e-01 1.31267929e-01 1.31387251e-01 1.31506165e-01 + 1.31624672e-01 1.31742773e-01 1.31860470e-01 1.31977765e-01 1.32094658e-01 + 1.32211152e-01 1.32327248e-01 1.32442947e-01 1.32558252e-01 1.32673162e-01 + 1.32787680e-01 1.32901808e-01 1.33015546e-01 1.33128897e-01 1.33241861e-01 + 1.33354441e-01 1.33466637e-01 1.33578451e-01 1.33689884e-01 1.33800939e-01 + 1.33911615e-01 1.34021916e-01 1.34131841e-01 1.34241394e-01 1.34350574e-01 + 1.34459383e-01 1.34567824e-01 1.34675896e-01 1.34783602e-01 1.34890944e-01 + 1.34997921e-01 1.35104536e-01 1.35210791e-01 1.35316685e-01 1.35422222e-01 + 1.35527402e-01 1.35632226e-01 1.35736697e-01 1.35840814e-01 1.35944580e-01 + 1.36047997e-01 1.36151064e-01 1.36253784e-01 1.36356158e-01 1.36458187e-01 + 1.36559873e-01 1.36661216e-01 1.36762219e-01 1.36862882e-01 1.36963207e-01 + 1.37063195e-01 1.37162847e-01 1.37262165e-01 1.37361150e-01 1.37459803e-01 + 1.37558126e-01 1.37656119e-01 1.37753784e-01 1.37851123e-01 1.37948136e-01 + 1.38044824e-01 1.38141190e-01 1.38237233e-01 1.38332957e-01 1.38428361e-01 + 1.38523446e-01 1.38618215e-01 1.38712668e-01 1.38806807e-01 1.38900633e-01 + 1.38994146e-01 1.39087349e-01 1.39180241e-01 1.39272826e-01 1.39365103e-01 + 1.39457074e-01 1.39548740e-01 1.39640102e-01 1.39731162e-01 1.39821920e-01 + 1.39912378e-01 1.40002537e-01 1.40092398e-01 1.40181961e-01 1.40271230e-01 + 1.40360203e-01 1.40448884e-01 1.40537272e-01 1.40625368e-01 1.40713175e-01 + 1.40800693e-01 1.40887923e-01 1.40974866e-01 1.41061523e-01 1.41147896e-01 + 1.41233986e-01 1.41319793e-01 1.41405319e-01 1.41490565e-01 1.41575532e-01 + 1.41660220e-01 1.41744632e-01 1.41828768e-01 1.41912628e-01 1.41996216e-01 + 1.42079530e-01 1.42162572e-01 1.42245344e-01 1.42327847e-01 1.42410081e-01 + 1.42492047e-01 1.42573747e-01 1.42655181e-01 1.42736351e-01 1.42817257e-01 + 1.42897901e-01 1.42978283e-01 1.43058405e-01 1.43138268e-01 1.43217872e-01 + 1.43297218e-01 1.43376309e-01 1.43455143e-01 1.43533723e-01 1.43612050e-01 + 1.43690124e-01 1.43767947e-01 1.43845519e-01 1.43922841e-01 1.43999914e-01 + 1.44076740e-01 1.44153319e-01 1.44229652e-01 1.44305740e-01 1.44381584e-01 + 1.44457185e-01 1.44532544e-01 1.44607662e-01 1.44682539e-01 1.44757177e-01 + 1.44831577e-01 1.44905739e-01 1.44979665e-01 1.45053355e-01 1.45126809e-01 + 1.45200031e-01 1.45273019e-01 1.45345774e-01 1.45418299e-01 1.45490593e-01 + 1.45562658e-01 1.45634494e-01 1.45706102e-01 1.45777484e-01 1.45848639e-01 + 1.45919569e-01 1.45990275e-01 1.46060758e-01 1.46131018e-01 1.46201056e-01 + 1.46270873e-01 1.46340470e-01 1.46409848e-01 1.46479008e-01 1.46547950e-01 + 1.46616675e-01 1.46685184e-01 1.46753479e-01 1.46821558e-01 1.46889425e-01 + 1.46957079e-01 1.47024520e-01 1.47091751e-01 1.47158772e-01 1.47225583e-01 + 1.47292185e-01 1.47358580e-01 1.47424768e-01 1.47490749e-01 1.47556524e-01 + 1.47622095e-01 1.47687462e-01 1.47752626e-01 1.47817587e-01 1.47882347e-01 + 1.38518338e-01 1.38476565e-01 1.38434740e-01 1.38392864e-01 1.38350938e-01 + 1.38308960e-01 1.38266931e-01 1.38224851e-01 1.38182720e-01 1.38140538e-01 + 1.38098305e-01 1.38056020e-01 1.38013684e-01 1.37971296e-01 1.37928857e-01 + 1.37886366e-01 1.37843824e-01 1.37801230e-01 1.37758585e-01 1.37715888e-01 + 1.37673139e-01 1.37630338e-01 1.37587486e-01 1.37544581e-01 1.37501625e-01 + 1.37458617e-01 1.37415556e-01 1.37372444e-01 1.37329279e-01 1.37286062e-01 + 1.37242794e-01 1.37199472e-01 1.37156099e-01 1.37112673e-01 1.37069195e-01 + 1.37025664e-01 1.36982081e-01 1.36938445e-01 1.36894757e-01 1.36851016e-01 + 1.36807222e-01 1.36763376e-01 1.36719477e-01 1.36675525e-01 1.36631520e-01 + 1.36587463e-01 1.36543352e-01 1.36499189e-01 1.36454972e-01 1.36410702e-01 + 1.36366380e-01 1.36322004e-01 1.36277574e-01 1.36233092e-01 1.36188556e-01 + 1.36143967e-01 1.36099325e-01 1.36054629e-01 1.36009880e-01 1.35965077e-01 + 1.35920221e-01 1.35875311e-01 1.35830347e-01 1.35785330e-01 1.35740259e-01 + 1.35695134e-01 1.35649956e-01 1.35604723e-01 1.35559437e-01 1.35514096e-01 + 1.35468702e-01 1.35423254e-01 1.35377752e-01 1.35332195e-01 1.35286585e-01 + 1.35240920e-01 1.35195201e-01 1.35149428e-01 1.35103600e-01 1.35057718e-01 + 1.35011782e-01 1.34965791e-01 1.34919746e-01 1.34873646e-01 1.34827492e-01 + 1.34781283e-01 1.34735020e-01 1.34688702e-01 1.34642329e-01 1.34595901e-01 + 1.34549419e-01 1.34502882e-01 1.34456290e-01 1.34409643e-01 1.34362941e-01 + 1.34316184e-01 1.34269372e-01 1.34222505e-01 1.34175583e-01 1.34128606e-01 + 1.34081573e-01 1.34034486e-01 1.33987343e-01 1.33940145e-01 1.33892892e-01 + 1.33845583e-01 1.33798219e-01 1.33750799e-01 1.33703324e-01 1.33655794e-01 + 1.33608207e-01 1.33560566e-01 1.33512869e-01 1.33465116e-01 1.33417307e-01 + 1.33369443e-01 1.33321523e-01 1.33273547e-01 1.33225515e-01 1.33177428e-01 + 1.33129285e-01 1.33081085e-01 1.33032830e-01 1.32984519e-01 1.32936152e-01 + 1.32887728e-01 1.32839249e-01 1.32790713e-01 1.32742122e-01 1.32693474e-01 + 1.32644770e-01 1.32596010e-01 1.32547193e-01 1.32498320e-01 1.32449391e-01 + 1.32400405e-01 1.32351363e-01 1.32302265e-01 1.32253110e-01 1.32203899e-01 + 1.32154631e-01 1.32105306e-01 1.32055925e-01 1.32006488e-01 1.31956993e-01 + 1.31907442e-01 1.31857835e-01 1.31808170e-01 1.31758449e-01 1.31708671e-01 + 1.31658836e-01 1.31608945e-01 1.31558996e-01 1.31508991e-01 1.31458929e-01 + 1.31408809e-01 1.31358633e-01 1.31308400e-01 1.31258110e-01 1.31207762e-01 + 1.31157358e-01 1.31106897e-01 1.31056378e-01 1.31005802e-01 1.30955169e-01 + 1.30904479e-01 1.30853732e-01 1.30802927e-01 1.30752065e-01 1.30701146e-01 + 1.30650170e-01 1.30599136e-01 1.30548045e-01 1.30496896e-01 1.30445690e-01 + 1.30394426e-01 1.30343106e-01 1.30291727e-01 1.30240291e-01 1.30188798e-01 + 1.30137247e-01 1.30085639e-01 1.30033973e-01 1.29982249e-01 1.29930468e-01 + 1.29878629e-01 1.29826732e-01 1.29774778e-01 1.29722766e-01 1.29670696e-01 + 1.29618569e-01 1.29566384e-01 1.29514141e-01 1.29461841e-01 1.29409482e-01 + 1.29357066e-01 1.29304592e-01 1.29252060e-01 1.29199470e-01 1.29146823e-01 + 1.29094117e-01 1.29041354e-01 1.28988533e-01 1.28935654e-01 1.28882717e-01 + 1.28829721e-01 1.28776668e-01 1.28723557e-01 1.28670388e-01 1.28617161e-01 + 1.28563876e-01 1.28510533e-01 1.28457132e-01 1.28403673e-01 1.28350156e-01 + 1.28296581e-01 1.28242948e-01 1.28189256e-01 1.28135507e-01 1.28081699e-01 + 1.28027834e-01 1.27973910e-01 1.27919928e-01 1.27865888e-01 1.27811790e-01 + 1.27757634e-01 1.27703420e-01 1.27649147e-01 1.27594816e-01 1.27540427e-01 + 1.27485980e-01 1.27431475e-01 1.27376912e-01 1.27322290e-01 1.27267611e-01 + 1.27212873e-01 1.27158077e-01 1.27103223e-01 1.27048310e-01 1.26993340e-01 + 1.26938311e-01 1.26883224e-01 1.26828079e-01 1.26772875e-01 1.26717614e-01 + 1.26662294e-01 1.26606916e-01 1.26551480e-01 1.26495986e-01 1.26440433e-01 + 1.26384823e-01 1.26329154e-01 1.26273427e-01 1.26217642e-01 1.26161799e-01 + 1.26105898e-01 1.26049938e-01 1.25993920e-01 1.25937845e-01 1.25881711e-01 + 1.25825519e-01 1.25769269e-01 1.25712961e-01 1.25656594e-01 1.25600170e-01 + 1.25543688e-01 1.25487147e-01 1.25430549e-01 1.25373892e-01 1.25317178e-01 + 1.25260405e-01 1.25203574e-01 1.25146686e-01 1.25089739e-01 1.25032735e-01 + 1.24975672e-01 1.24918552e-01 1.24861374e-01 1.24804137e-01 1.24746843e-01 + 1.24689491e-01 1.24632082e-01 1.24574614e-01 1.24517089e-01 1.24459505e-01 + 1.24401864e-01 1.24344166e-01 1.24286409e-01 1.24228595e-01 1.24170723e-01 + 1.24112794e-01 1.24054806e-01 1.23996762e-01 1.23938659e-01 1.23880499e-01 + 1.23822281e-01 1.23764006e-01 1.23705674e-01 1.23647284e-01 1.23588836e-01 + 1.23530331e-01 1.23471769e-01 1.23413149e-01 1.23354472e-01 1.23295737e-01 + 1.23236946e-01 1.23178097e-01 1.23119190e-01 1.23060227e-01 1.23001206e-01 + 1.22942129e-01 1.22882994e-01 1.22823802e-01 1.22764553e-01 1.22705247e-01 + 1.22645884e-01 1.22586464e-01 1.22526988e-01 1.22467454e-01 1.22407864e-01 + 1.22348217e-01 1.22288513e-01 1.22228752e-01 1.22168935e-01 1.22109061e-01 + 1.22049130e-01 1.21989143e-01 1.21929100e-01 1.21869000e-01 1.21808843e-01 + 1.21748630e-01 1.21688361e-01 1.21628036e-01 1.21567654e-01 1.21507216e-01 + 1.21446722e-01 1.21386172e-01 1.21325566e-01 1.21264904e-01 1.21204185e-01 + 1.21143411e-01 1.21082581e-01 1.21021696e-01 1.20960754e-01 1.20899757e-01 + 1.20838704e-01 1.20777596e-01 1.20716432e-01 1.20655212e-01 1.20593937e-01 + 1.20532607e-01 1.20471221e-01 1.20409780e-01 1.20348284e-01 1.20286733e-01 + 1.20225127e-01 1.20163465e-01 1.20101749e-01 1.20039978e-01 1.19978152e-01 + 1.19916271e-01 1.19854335e-01 1.19792345e-01 1.19730300e-01 1.19668200e-01 + 1.19606047e-01 1.19543838e-01 1.19481576e-01 1.19419259e-01 1.19356888e-01 + 1.19294463e-01 1.19231984e-01 1.19169450e-01 1.19106863e-01 1.19044222e-01 + 1.18981528e-01 1.18918779e-01 1.18855977e-01 1.18793122e-01 1.18730213e-01 + 1.18667250e-01 1.18604235e-01 1.18541166e-01 1.18478043e-01 1.18414868e-01 + 1.18351640e-01 1.18288359e-01 1.18225025e-01 1.18161638e-01 1.18098199e-01 + 1.18034707e-01 1.17971163e-01 1.17907566e-01 1.17843917e-01 1.17780216e-01 + 1.17716462e-01 1.17652656e-01 1.17588799e-01 1.17524889e-01 1.17460928e-01 + 1.17396915e-01 1.17332851e-01 1.17268735e-01 1.17204567e-01 1.17140349e-01 + 1.17076079e-01 1.17011757e-01 1.16947385e-01 1.16882962e-01 1.16818488e-01 + 1.16753964e-01 1.16689388e-01 1.16624762e-01 1.16560086e-01 1.16495360e-01 + 1.16430583e-01 1.16365756e-01 1.16300879e-01 1.16235952e-01 1.16170975e-01 + 1.16105949e-01 1.16040873e-01 1.15975748e-01 1.15910573e-01 1.15845349e-01 + 1.15780076e-01 1.15714754e-01 1.15649383e-01 1.15583963e-01 1.15518494e-01 + 1.15452977e-01 1.15387412e-01 1.15321798e-01 1.15256136e-01 1.15190426e-01 + 1.15124668e-01 1.15058862e-01 1.14993008e-01 1.14927107e-01 1.14861158e-01 + 1.14795162e-01 1.14729119e-01 1.14663029e-01 1.14596892e-01 1.14530707e-01 + 1.14464477e-01 1.14398199e-01 1.14331875e-01 1.14265505e-01 1.14199089e-01 + 1.14132627e-01 1.14066119e-01 1.13999565e-01 1.13932965e-01 1.13866320e-01 + 1.13799630e-01 1.13732894e-01 1.13666113e-01 1.13599288e-01 1.13532417e-01 + 1.13465503e-01 1.13398543e-01 1.13331539e-01 1.13264491e-01 1.13197399e-01 + 1.13130263e-01 1.13063084e-01 1.12995861e-01 1.12928594e-01 1.12861284e-01 + 1.12793931e-01 1.12726535e-01 1.12659096e-01 1.12591615e-01 1.12524091e-01 + 1.12456524e-01 1.12388916e-01 1.12321265e-01 1.12253573e-01 1.12185839e-01 + 1.12118063e-01 1.12050246e-01 1.11982388e-01 1.11914489e-01 1.11846549e-01 + 1.11778568e-01 1.11710547e-01 1.11642485e-01 1.11574383e-01 1.11506242e-01 + 1.11438060e-01 1.11369839e-01 1.11301578e-01 1.11233278e-01 1.11164939e-01 + 1.11096561e-01 1.11028144e-01 1.10959689e-01 1.10891195e-01 1.10822663e-01 + 1.10754093e-01 1.10685486e-01 1.10616840e-01 1.10548157e-01 1.10479437e-01 + 1.10410680e-01 1.10341886e-01 1.10273055e-01 1.10204188e-01 1.10135284e-01 + 1.10066345e-01 1.09997369e-01 1.09928358e-01 1.09859311e-01 1.09790229e-01 + 1.09721112e-01 1.09651960e-01 1.09582773e-01 1.09513552e-01 1.09444296e-01 + 1.09375007e-01 1.09305683e-01 1.09236326e-01 1.09166936e-01 1.09097512e-01 + 1.09028055e-01 1.08958566e-01 1.08889044e-01 1.08819489e-01 1.08749902e-01 + 1.08680284e-01 1.08610634e-01 1.08540952e-01 1.08471239e-01 1.08401495e-01 + 1.08331720e-01 1.08261914e-01 1.08192078e-01 1.08122212e-01 1.08052316e-01 + 1.07982391e-01 1.07912436e-01 1.07842452e-01 1.07772438e-01 1.07702397e-01 + 1.07632326e-01 1.07562227e-01 1.07492101e-01 1.07421946e-01 1.07351764e-01 + 1.07281555e-01 1.07211318e-01 1.07141055e-01 1.07070766e-01 1.07000449e-01 + 1.06930107e-01 1.06859739e-01 1.06789346e-01 1.06718927e-01 1.06648483e-01 + 1.06578015e-01 1.06507521e-01 1.06437004e-01 1.06366462e-01 1.06295897e-01 + 1.06225308e-01 1.06154696e-01 1.06084061e-01 1.06013403e-01 1.05942723e-01 + 1.05872021e-01 1.05801296e-01 1.05730551e-01 1.05659783e-01 1.05588995e-01 + 1.05518186e-01 1.05447356e-01 1.05376506e-01 1.05305636e-01 1.05234746e-01 + 1.05163837e-01 1.05092908e-01 1.05021961e-01 1.04950995e-01 1.04880011e-01 + 1.04809009e-01 1.04737989e-01 1.04666951e-01 1.04595897e-01 1.04524826e-01 + 1.04453738e-01 1.04382633e-01 1.04311513e-01 1.04240377e-01 1.04169226e-01 + 1.04098060e-01 1.04026878e-01 1.03955683e-01 1.03884473e-01 1.03813249e-01 + 1.03742012e-01 1.03670761e-01 1.03599498e-01 1.03528222e-01 1.03456933e-01 + 1.03385633e-01 1.03314321e-01 1.03242997e-01 1.03171662e-01 1.03100317e-01 + 1.03028961e-01 1.02957595e-01 1.02886219e-01 1.02814833e-01 1.02743439e-01 + 1.02672036e-01 1.02600624e-01 1.02529204e-01 1.02457776e-01 1.02386340e-01 + 1.02314898e-01 1.02243448e-01 1.02171992e-01 1.02100530e-01 1.02029062e-01 + 1.01957589e-01 1.01886110e-01 1.01814626e-01 1.01743138e-01 1.01671646e-01 + 1.01600150e-01 1.01528651e-01 1.01457148e-01 1.01385643e-01 1.01314135e-01 + 1.01242625e-01 1.01171114e-01 1.01099601e-01 1.01028087e-01 1.00956573e-01 + 1.00885058e-01 1.00813543e-01 1.00742029e-01 1.00670515e-01 1.00599003e-01 + 1.00527492e-01 1.00455983e-01 1.00384477e-01 1.00312973e-01 1.00241472e-01 + 1.00169974e-01 1.00098480e-01 1.00026990e-01 9.99555050e-02 9.98840245e-02 + 9.98125493e-02 9.97410797e-02 9.96696161e-02 9.95981588e-02 9.95267084e-02 + 9.94552650e-02 9.93838292e-02 9.93124014e-02 9.92409818e-02 9.91695709e-02 + 9.90981691e-02 9.90267768e-02 9.89553944e-02 9.88840222e-02 9.88126607e-02 + 9.87413103e-02 9.86699713e-02 9.85986441e-02 9.85273293e-02 9.84560271e-02 + 9.83847379e-02 9.83134622e-02 9.82422004e-02 9.81709529e-02 9.80997201e-02 + 9.80285023e-02 9.79573001e-02 9.78861138e-02 9.78149439e-02 9.77437907e-02 + 9.76726547e-02 9.76015362e-02 9.75304358e-02 9.74593538e-02 9.73882907e-02 + 9.73172468e-02 9.72462226e-02 9.71752186e-02 9.71042351e-02 9.70332725e-02 + 9.69623314e-02 9.68914121e-02 9.68205151e-02 9.67496408e-02 9.66787897e-02 + 9.66079621e-02 9.65371585e-02 9.64663793e-02 9.63956251e-02 9.63248961e-02 + 9.62541930e-02 9.61835160e-02 9.61128657e-02 9.60422425e-02 9.59716469e-02 + 9.59010792e-02 9.58305400e-02 9.57600297e-02 9.56895487e-02 9.56190976e-02 + 9.55486767e-02 9.54782865e-02 9.54079274e-02 9.53376000e-02 9.52673047e-02 + 9.51970419e-02 9.51268121e-02 9.50566158e-02 9.49864534e-02 9.49163254e-02 + 9.48462322e-02 9.47761744e-02 9.47061524e-02 9.46361667e-02 9.45662176e-02 + 9.44963058e-02 9.44264317e-02 9.43565957e-02 9.42867984e-02 9.42170402e-02 + 9.41473215e-02 9.40776429e-02 9.40080049e-02 9.39384078e-02 9.38688523e-02 + 9.37993388e-02 9.37298677e-02 9.36604397e-02 9.35910550e-02 9.35217143e-02 + 9.34524180e-02 9.33831666e-02 9.33139606e-02 9.32448006e-02 9.31756869e-02 + 9.31066201e-02 9.30376006e-02 9.29686291e-02 9.28997059e-02 9.28308316e-02 + 9.27620066e-02 9.26932315e-02 9.26245068e-02 9.25558330e-02 9.24872106e-02 + 9.24186400e-02 9.23501218e-02 9.22816566e-02 9.22132447e-02 9.21448867e-02 + 9.20765832e-02 9.20083346e-02 9.19401414e-02 9.18720042e-02 9.18039235e-02 + 9.17358998e-02 9.16679335e-02 9.16000253e-02 9.15321756e-02 9.14643850e-02 + 9.13966540e-02 9.13289830e-02 9.12613727e-02 9.11938235e-02 9.11263360e-02 + 9.10589106e-02 9.09915480e-02 9.09242486e-02 9.08570130e-02 9.07898417e-02 + 9.07227352e-02 9.06556940e-02 9.05887187e-02 9.05218099e-02 9.04549680e-02 + 9.03881935e-02 9.03214871e-02 9.02548492e-02 9.01882804e-02 9.01217813e-02 + 9.00553522e-02 8.99889939e-02 8.99227068e-02 8.98564915e-02 8.97903485e-02 + 8.97242783e-02 8.96582816e-02 8.95923588e-02 8.95265104e-02 8.94607371e-02 + 8.93950394e-02 8.93294177e-02 8.92638728e-02 8.91984050e-02 8.91330150e-02 + 8.90677033e-02 8.90024705e-02 8.89373170e-02 8.88722435e-02 8.88072505e-02 + 8.87423386e-02 8.86775083e-02 8.86127602e-02 8.85480947e-02 8.84835126e-02 + 8.84190142e-02 8.83546003e-02 8.82902712e-02 8.82260277e-02 8.81618702e-02 + 8.80977994e-02 8.80338157e-02 8.79699197e-02 8.79061120e-02 8.78423932e-02 + 8.77787637e-02 8.77152243e-02 8.76517753e-02 8.75884175e-02 8.75251513e-02 + 8.74619773e-02 8.73988961e-02 8.73359083e-02 8.72730143e-02 8.72102149e-02 + 8.71475104e-02 8.70849016e-02 8.70223890e-02 8.69599731e-02 8.68976544e-02 + 8.68354337e-02 8.67733114e-02 8.67112881e-02 8.66493644e-02 8.65875409e-02 + 8.65258180e-02 8.64641964e-02 8.64026767e-02 8.63412594e-02 8.62799451e-02 + 8.62187344e-02 8.61576278e-02 8.60966259e-02 8.60357293e-02 8.59749386e-02 + 8.59142542e-02 8.58536769e-02 8.57932071e-02 8.57328455e-02 8.56725925e-02 + 8.56124489e-02 8.55524151e-02 8.54924918e-02 8.54326794e-02 8.53729787e-02 + 8.53133900e-02 8.52539141e-02 8.51945515e-02 8.51353028e-02 8.50761685e-02 + 8.50171493e-02 8.49582456e-02 8.48994581e-02 8.48407874e-02 8.47822340e-02 + 8.47237984e-02 8.46654813e-02 8.46072833e-02 8.45492049e-02 8.44912466e-02 + 8.44334092e-02 8.43756930e-02 8.43180988e-02 8.42606271e-02 8.42032784e-02 + 8.41460533e-02 8.40889525e-02 8.40319764e-02 8.39751257e-02 8.39184009e-02 + 8.38618026e-02 8.38053314e-02 8.37489878e-02 8.36927724e-02 8.36366859e-02 + 8.35807286e-02 8.35249013e-02 8.34692046e-02 8.34136388e-02 8.33582048e-02 + 8.33029029e-02 8.32477338e-02 8.31926981e-02 8.31377963e-02 8.30830290e-02 + 8.30283967e-02 8.29739001e-02 8.29195397e-02 8.28653161e-02 8.28112297e-02 + 8.27572813e-02 8.27034714e-02 8.26498005e-02 8.25962691e-02 8.25428780e-02 + 8.24896276e-02 8.24365184e-02 8.23835511e-02 8.23307263e-02 8.22780444e-02 + 8.22255060e-02 8.21731118e-02 8.21208622e-02 8.20687579e-02 8.20167993e-02 + 8.19649871e-02 8.19133218e-02 8.18618039e-02 8.18104341e-02 8.17592128e-02 + 8.17081407e-02 8.16572182e-02 8.16064460e-02 8.15558245e-02 8.15053545e-02 + 8.14550363e-02 8.14048705e-02 8.13548578e-02 8.13049986e-02 8.12552935e-02 + 8.12057430e-02 8.11563478e-02 8.11071082e-02 8.10580250e-02 8.10090986e-02 + 8.09603295e-02 8.09117184e-02 8.08632657e-02 8.08149721e-02 8.07668379e-02 + 8.07188639e-02 8.06710504e-02 8.06233982e-02 8.05759075e-02 8.05285792e-02 + 8.04814136e-02 8.04344112e-02 8.03875727e-02 8.03408986e-02 8.02943893e-02 + 8.02480455e-02 8.02018675e-02 8.01558561e-02 8.01100116e-02 8.00643347e-02 + 8.00188258e-02 7.99734855e-02 7.99283142e-02 7.98833126e-02 7.98384810e-02 + 7.97938201e-02 7.97493304e-02 7.97050123e-02 7.96608664e-02 7.96168932e-02 + 7.95730933e-02 7.95294670e-02 7.94860149e-02 7.94427376e-02 7.93996355e-02 + 7.93567091e-02 7.93139590e-02 7.92713856e-02 7.92289895e-02 7.91867711e-02 + 7.91447310e-02 7.91028695e-02 7.90611873e-02 7.90196849e-02 7.89783626e-02 + 7.89372210e-02 7.88962607e-02 7.88554819e-02 7.88148854e-02 7.87744715e-02 + 7.87342407e-02 7.86941935e-02 7.86543304e-02 7.86146519e-02 7.85751584e-02 + 7.85358504e-02 7.84967284e-02 7.84577929e-02 7.84190442e-02 7.83804830e-02 + 7.83421096e-02 7.83039245e-02 7.82659282e-02 7.82281212e-02 7.81905038e-02 + 7.81530766e-02 7.81158400e-02 7.80787945e-02 7.80419405e-02 7.80052784e-02 + 7.79688088e-02 7.79325320e-02 7.78964485e-02 7.78605587e-02 7.78248631e-02 + 7.77893622e-02 7.77540563e-02 7.77189459e-02 7.76840314e-02 7.76493132e-02 + 7.76147919e-02 7.75804677e-02 7.75463412e-02 7.75124127e-02 7.74786828e-02 + 7.74451517e-02 7.74118199e-02 7.73786878e-02 7.73457559e-02 7.73130245e-02 + 7.72804941e-02 7.72481650e-02 7.72160377e-02 7.71841125e-02 7.71523900e-02 + 7.71208703e-02 7.70895541e-02 7.70584416e-02 7.70275332e-02 7.69968293e-02 + 7.69663304e-02 7.69360368e-02 7.69059488e-02 7.68760670e-02 7.68463915e-02 + 7.68169229e-02 7.67876614e-02 7.67586075e-02 7.67297616e-02 7.67011239e-02 + 7.66726949e-02 7.66444749e-02 7.66164642e-02 7.65886633e-02 7.65610725e-02 + 7.65336921e-02 7.65065225e-02 7.64795641e-02 7.64528171e-02 7.64262819e-02 + 7.63999589e-02 7.63738484e-02 7.63479508e-02 7.63222662e-02 7.62967952e-02 + 7.62715380e-02 7.62464950e-02 7.62216664e-02 7.61970526e-02 7.61726539e-02 + 7.61484706e-02 7.61245031e-02 7.61007516e-02 7.60772164e-02 7.60538979e-02 + 7.60307964e-02 7.60079121e-02 7.59852453e-02 7.59627964e-02 7.59405657e-02 + 7.59185533e-02 7.58967597e-02 7.58751851e-02 7.58538297e-02 7.58326939e-02 + 7.58117779e-02 7.57910820e-02 7.57706065e-02 7.57503516e-02 7.57303176e-02 + 7.57105048e-02 7.56909134e-02 7.56715437e-02 7.56523959e-02 7.56334703e-02 + 7.56147671e-02 7.55962866e-02 7.55780290e-02 7.55599946e-02 7.55421835e-02 + 7.55245961e-02 7.55072326e-02 7.54900931e-02 7.54731780e-02 7.54564874e-02 + 7.54400215e-02 7.54237806e-02 7.54077649e-02 7.53919746e-02 7.53764099e-02 + 7.53610711e-02 7.53459582e-02 7.53310716e-02 7.53164113e-02 7.53019777e-02 + 7.52877708e-02 7.52737910e-02 7.52600383e-02 7.52465130e-02 7.52332152e-02 + 7.52201451e-02 7.52073028e-02 7.51946887e-02 7.51823027e-02 7.51701451e-02 + 7.51582161e-02 7.51465158e-02 7.51350443e-02 7.51238019e-02 7.51127886e-02 + 7.51020046e-02 7.50914500e-02 7.50811251e-02 7.50710299e-02 7.50611645e-02 + 7.50515291e-02 7.50421239e-02 7.50329489e-02 7.50240043e-02 7.50152901e-02 + 7.50068066e-02 7.49985538e-02 7.49905318e-02 7.49827407e-02 7.49751807e-02 + 7.49678518e-02 7.49607542e-02 7.49538879e-02 7.49472530e-02 7.49408496e-02 + 7.49346779e-02 7.49287378e-02 7.49230295e-02 7.49175530e-02 7.49123084e-02 + 7.49072958e-02 7.49025153e-02 7.48979669e-02 7.48936506e-02 7.48895666e-02 + 7.48857148e-02 7.48820954e-02 7.48787084e-02 7.48755538e-02 7.48726317e-02 + 7.48699421e-02 7.48674851e-02 7.48652606e-02 7.48632687e-02 7.48615095e-02 + 7.48599830e-02 7.48586891e-02 7.48576279e-02 7.48567994e-02 7.48562037e-02 + 7.48558407e-02 7.48557104e-02 7.48558129e-02 7.48561481e-02 7.48567160e-02 + 7.48575167e-02 7.48585501e-02 7.48598162e-02 7.48613149e-02 7.48630464e-02 + 7.48650104e-02 7.48672071e-02 7.48696364e-02 7.48722982e-02 7.48751926e-02 + 7.48783194e-02 7.48816786e-02 7.48852703e-02 7.48890943e-02 7.48931506e-02 + 7.48974391e-02 7.49019598e-02 7.49067126e-02 7.49116975e-02 7.49169143e-02 + 7.49223631e-02 7.49280438e-02 7.49339562e-02 7.49401003e-02 7.49464760e-02 + 7.49530832e-02 7.49599219e-02 7.49669919e-02 7.49742931e-02 7.49818255e-02 + 7.49895890e-02 7.49975834e-02 7.50058087e-02 7.50142646e-02 7.50229512e-02 + 7.50318684e-02 7.50410158e-02 7.50503936e-02 7.50600015e-02 7.50698394e-02 + 7.50799072e-02 7.50902047e-02 7.51007318e-02 7.51114884e-02 7.51224743e-02 + 7.51336894e-02 7.51451335e-02 7.51568065e-02 7.51687082e-02 7.51808385e-02 + 7.51931972e-02 7.52057841e-02 7.52185991e-02 7.52316420e-02 7.52449126e-02 + 7.52584108e-02 7.52721363e-02 7.52860890e-02 7.53002688e-02 7.53146753e-02 + 7.53293085e-02 7.53441681e-02 7.53592540e-02 7.53745659e-02 7.53901036e-02 + 7.54058670e-02 7.54218558e-02 7.54380698e-02 7.54545087e-02 7.54711725e-02 + 7.54880609e-02 7.55051735e-02 7.55225103e-02 7.55400710e-02 7.55578553e-02 + 7.55758631e-02 7.55940940e-02 7.56125479e-02 7.56312245e-02 7.56501236e-02 + 7.56692448e-02 7.56885881e-02 7.57081530e-02 7.57279394e-02 7.57479470e-02 + 7.57681755e-02 7.57886247e-02 7.58092942e-02 7.58301840e-02 7.58512935e-02 + 7.58726227e-02 7.58941712e-02 7.59159386e-02 7.59379249e-02 7.59601296e-02 + 7.59825524e-02 7.60051932e-02 7.60280515e-02 7.60511271e-02 7.60744197e-02 + 7.60979290e-02 7.61216547e-02 7.61455964e-02 7.61697540e-02 7.61941269e-02 + 7.62187151e-02 7.62435180e-02 7.62685354e-02 7.62937671e-02 7.63192126e-02 + 7.63448716e-02 7.63707438e-02 7.63968289e-02 7.64231266e-02 7.64496364e-02 + 7.64763581e-02 7.65032913e-02 7.65304357e-02 7.65577909e-02 7.65853566e-02 + 7.66131325e-02 7.66411181e-02 7.66693131e-02 7.66977171e-02 7.67263299e-02 + 7.67551510e-02 7.67841801e-02 7.68134168e-02 7.68428607e-02 7.68725114e-02 + 7.69023687e-02 7.69324320e-02 7.69627011e-02 7.69931756e-02 7.70238549e-02 + 7.70547389e-02 7.70858271e-02 7.71171190e-02 7.71486144e-02 7.71803127e-02 + 7.72122137e-02 7.72443169e-02 7.72766219e-02 7.73091283e-02 7.73418357e-02 + 7.73747437e-02 7.74078518e-02 7.74411598e-02 7.74746671e-02 7.75083734e-02 + 7.75422781e-02 7.75763810e-02 7.76106816e-02 7.76451794e-02 7.76798741e-02 + 7.77147651e-02 7.77498522e-02 7.77851347e-02 7.78206124e-02 7.78562848e-02 + 7.78921513e-02 7.79282117e-02 7.79644654e-02 7.80009121e-02 7.80375512e-02 + 7.80743823e-02 7.81114050e-02 7.81486188e-02 7.81860233e-02 7.82236179e-02 + 7.82614023e-02 7.82993761e-02 7.83375386e-02 7.83758895e-02 7.84144284e-02 + 7.84531546e-02 7.84920679e-02 7.85311676e-02 7.85704534e-02 7.86099248e-02 + 7.86495813e-02 7.86894223e-02 7.87294475e-02 7.87696564e-02 7.88100485e-02 + 7.88506232e-02 7.88913802e-02 7.89323189e-02 7.89734389e-02 7.90147396e-02 + 7.90562205e-02 7.90978813e-02 7.91397213e-02 7.91817402e-02 7.92239373e-02 + 7.92663122e-02 7.93088645e-02 7.93515935e-02 7.93944988e-02 7.94375800e-02 + 7.94808364e-02 7.95242676e-02 7.95678731e-02 7.96116524e-02 7.96556049e-02 + 7.96997302e-02 7.97440277e-02 7.97884970e-02 7.98331374e-02 7.98779486e-02 + 7.99229300e-02 7.99680810e-02 8.00134012e-02 8.00588900e-02 8.01045468e-02 + 8.01503713e-02 8.01963628e-02 8.02425209e-02 8.02888450e-02 8.03353345e-02 + 8.03819890e-02 8.04288079e-02 8.04757907e-02 8.05229368e-02 8.05702458e-02 + 8.06177170e-02 8.06653500e-02 8.07131443e-02 8.07610992e-02 8.08092142e-02 + 8.08574888e-02 8.09059225e-02 8.09545148e-02 8.10032650e-02 8.10521726e-02 + 8.11012372e-02 8.11504581e-02 8.11998347e-02 8.12493667e-02 8.12990534e-02 + 8.13488942e-02 8.13988886e-02 8.14490361e-02 8.14993361e-02 8.15497881e-02 + 8.16003915e-02 8.16511457e-02 8.17020502e-02 8.17531045e-02 8.18043080e-02 + 8.18556601e-02 8.19071604e-02 8.19588081e-02 8.20106028e-02 8.20625439e-02 + 8.21146309e-02 8.21668631e-02 8.22192401e-02 8.22717613e-02 8.23244260e-02 + 8.23772339e-02 8.24301842e-02 8.24832764e-02 8.25365100e-02 8.25898843e-02 + 8.26433990e-02 8.26970532e-02 8.27508466e-02 8.28047785e-02 8.28588484e-02 + 8.29130557e-02 8.29673998e-02 8.30218801e-02 8.30764962e-02 8.31312474e-02 + 8.31861332e-02 8.32411529e-02 8.32963061e-02 8.33515922e-02 8.34070105e-02 + 8.34625605e-02 8.35182417e-02 8.35740534e-02 8.36299951e-02 8.36860663e-02 + 8.37422663e-02 8.37985946e-02 8.38550506e-02 8.39116338e-02 8.39683435e-02 + 8.40251792e-02 8.40821403e-02 8.41392263e-02 8.41964365e-02 8.42537705e-02 + 8.43112275e-02 8.43688072e-02 8.44265088e-02 8.44843318e-02 8.45422756e-02 + 8.46003397e-02 8.46585235e-02 8.47168264e-02 8.47752478e-02 8.48337872e-02 + 8.48924439e-02 8.49512175e-02 8.50101073e-02 8.50691128e-02 8.51282334e-02 + 8.51874685e-02 8.52468175e-02 8.53062799e-02 8.53658551e-02 8.54255425e-02 + 8.54853415e-02 8.55452516e-02 8.56052723e-02 8.56654028e-02 8.57256427e-02 + 8.57859914e-02 8.58464483e-02 8.59070128e-02 8.59676844e-02 8.60284625e-02 + 8.60893465e-02 8.61503358e-02 8.62114299e-02 8.62726282e-02 8.63339302e-02 + 8.63953352e-02 8.64568427e-02 8.65184522e-02 8.65801629e-02 8.66419745e-02 + 8.67038863e-02 8.67658977e-02 8.68280082e-02 8.68902172e-02 8.69525242e-02 + 8.70149285e-02 8.70774296e-02 8.71400270e-02 8.72027200e-02 8.72655081e-02 + 8.73283908e-02 8.73913675e-02 8.74544376e-02 8.75176005e-02 8.75808557e-02 + 8.76442026e-02 8.77076407e-02 8.77711694e-02 8.78347881e-02 8.78984963e-02 + 8.79622934e-02 8.80261789e-02 8.80901521e-02 8.81542126e-02 8.82183598e-02 + 8.82825930e-02 8.83469119e-02 8.84113157e-02 8.84758040e-02 8.85403762e-02 + 8.86050317e-02 8.86697700e-02 8.87345905e-02 8.87994927e-02 8.88644761e-02 + 8.89295400e-02 8.89946839e-02 8.90599073e-02 8.91252096e-02 8.91905903e-02 + 8.92560488e-02 8.93215845e-02 8.93871970e-02 8.94528857e-02 8.95186500e-02 + 8.95844894e-02 8.96504034e-02 8.97163914e-02 8.97824528e-02 8.98485871e-02 + 8.99147938e-02 8.99810724e-02 9.00474222e-02 9.01138428e-02 9.01803336e-02 + 9.02468942e-02 9.03135238e-02 9.03802221e-02 9.04469884e-02 9.05138223e-02 + 9.05807232e-02 9.06476906e-02 9.07147239e-02 9.07818226e-02 9.08489862e-02 + 9.09162142e-02 9.09835060e-02 9.10508611e-02 9.11182790e-02 9.11857591e-02 + 9.12533009e-02 9.13209040e-02 9.13885677e-02 9.14562916e-02 9.15240751e-02 + 9.15919178e-02 9.16598190e-02 9.17277784e-02 9.17957953e-02 9.18638692e-02 + 9.19319997e-02 9.20001862e-02 9.20684282e-02 9.21367252e-02 9.22050767e-02 + 9.22734821e-02 9.23419411e-02 9.24104530e-02 9.24790173e-02 9.25476336e-02 + 9.26163013e-02 9.26850199e-02 9.27537890e-02 9.28226080e-02 9.28914765e-02 + 9.29603938e-02 9.30293596e-02 9.30983734e-02 9.31674346e-02 9.32365427e-02 + 9.33056973e-02 9.33748978e-02 9.34441438e-02 9.35134347e-02 9.35827701e-02 + 9.36521496e-02 9.37215725e-02 9.37910385e-02 9.38605469e-02 9.39300975e-02 + 9.39996895e-02 9.40693227e-02 9.41389965e-02 9.42087104e-02 9.42784639e-02 + 9.43482566e-02 9.44180880e-02 9.44879576e-02 9.45578649e-02 9.46278095e-02 + 9.46977909e-02 9.47678086e-02 9.48378622e-02 9.49079511e-02 9.49780750e-02 + 9.50482333e-02 9.51184256e-02 9.51886514e-02 9.52589103e-02 9.53292017e-02 + 9.53995254e-02 9.54698806e-02 9.55402671e-02 9.56106844e-02 9.56811320e-02 + 9.57516094e-02 9.58221162e-02 9.58926520e-02 9.59632163e-02 9.60338086e-02 + 9.61044286e-02 9.61750756e-02 9.62457494e-02 9.63164495e-02 9.63871754e-02 + 9.64579266e-02 9.65287028e-02 9.65995035e-02 9.66703283e-02 9.67411766e-02 + 9.68120482e-02 9.68829425e-02 9.69538592e-02 9.70247977e-02 9.70957577e-02 + 9.71667387e-02 9.72377403e-02 9.73087621e-02 9.73798037e-02 9.74508645e-02 + 9.75219443e-02 9.75930426e-02 9.76641589e-02 9.77352928e-02 9.78064440e-02 + 9.78776119e-02 9.79487963e-02 9.80199966e-02 9.80912125e-02 9.81624436e-02 + 9.82336894e-02 9.83049495e-02 9.83762235e-02 9.84475111e-02 9.85188118e-02 + 9.85901251e-02 9.86614508e-02 9.87327884e-02 9.88041375e-02 9.88754977e-02 + 9.89468687e-02 9.90182499e-02 9.90896410e-02 9.91610417e-02 9.92324515e-02 + 9.93038701e-02 9.93752970e-02 9.94467318e-02 9.95181743e-02 9.95896239e-02 + 9.96610804e-02 9.97325432e-02 9.98040122e-02 9.98754867e-02 9.99469666e-02 + 1.00018451e-01 1.00089941e-01 1.00161434e-01 1.00232931e-01 1.00304432e-01 + 1.00375936e-01 1.00447442e-01 1.00518951e-01 1.00590461e-01 1.00661973e-01 + 1.00733487e-01 1.00805001e-01 1.00876516e-01 1.00948030e-01 1.01019545e-01 + 1.01091059e-01 1.01162572e-01 1.01234084e-01 1.01305594e-01 1.01377102e-01 + 1.01448607e-01 1.01520110e-01 1.01591610e-01 1.01663106e-01 1.01734599e-01 + 1.01806088e-01 1.01877572e-01 1.01949051e-01 1.02020525e-01 1.02091994e-01 + 1.02163457e-01 1.02234914e-01 1.02306364e-01 1.02377807e-01 1.02449244e-01 + 1.02520672e-01 1.02592093e-01 1.02663506e-01 1.02734911e-01 1.02806306e-01 + 1.02877693e-01 1.02949070e-01 1.03020437e-01 1.03091794e-01 1.03163141e-01 + 1.03234477e-01 1.03305802e-01 1.03377115e-01 1.03448417e-01 1.03519707e-01 + 1.03590985e-01 1.03662250e-01 1.03733502e-01 1.03804741e-01 1.03875966e-01 + 1.03947178e-01 1.04018375e-01 1.04089558e-01 1.04160726e-01 1.04231879e-01 + 1.04303017e-01 1.04374139e-01 1.04445245e-01 1.04516335e-01 1.04587409e-01 + 1.04658465e-01 1.04729504e-01 1.04800527e-01 1.04871531e-01 1.04942517e-01 + 1.05013485e-01 1.05084435e-01 1.05155365e-01 1.05226277e-01 1.05297169e-01 + 1.05368041e-01 1.05438894e-01 1.05509726e-01 1.05580538e-01 1.05651329e-01 + 1.05722099e-01 1.05792847e-01 1.05863574e-01 1.05934279e-01 1.06004962e-01 + 1.06075622e-01 1.06146260e-01 1.06216875e-01 1.06287467e-01 1.06358035e-01 + 1.06428579e-01 1.06499100e-01 1.06569596e-01 1.06640067e-01 1.06710514e-01 + 1.06780936e-01 1.06851332e-01 1.06921703e-01 1.06992049e-01 1.07062368e-01 + 1.07132661e-01 1.07202927e-01 1.07273167e-01 1.07343379e-01 1.07413565e-01 + 1.07483722e-01 1.07553852e-01 1.07623955e-01 1.07694028e-01 1.07764074e-01 + 1.07834090e-01 1.07904078e-01 1.07974036e-01 1.08043966e-01 1.08113865e-01 + 1.08183735e-01 1.08253574e-01 1.08323383e-01 1.08393162e-01 1.08462910e-01 + 1.08532626e-01 1.08602312e-01 1.08671966e-01 1.08741588e-01 1.08811179e-01 + 1.08880737e-01 1.08950263e-01 1.09019757e-01 1.09089217e-01 1.09158645e-01 + 1.09228040e-01 1.09297401e-01 1.09366728e-01 1.09436022e-01 1.09505281e-01 + 1.09574507e-01 1.09643698e-01 1.09712854e-01 1.09781975e-01 1.09851061e-01 + 1.09920112e-01 1.09989128e-01 1.10058108e-01 1.10127052e-01 1.10195959e-01 + 1.10264831e-01 1.10333666e-01 1.10402465e-01 1.10471226e-01 1.10539951e-01 + 1.10608638e-01 1.10677288e-01 1.10745900e-01 1.10814475e-01 1.10883011e-01 + 1.10951510e-01 1.11019970e-01 1.11088391e-01 1.11156774e-01 1.11225117e-01 + 1.11293422e-01 1.11361687e-01 1.11429913e-01 1.11498100e-01 1.11566246e-01 + 1.11634353e-01 1.11702419e-01 1.11770445e-01 1.11838431e-01 1.11906376e-01 + 1.11974280e-01 1.12042143e-01 1.12109965e-01 1.12177745e-01 1.12245484e-01 + 1.12313182e-01 1.12380837e-01 1.12448451e-01 1.12516022e-01 1.12583551e-01 + 1.12651038e-01 1.12718482e-01 1.12785883e-01 1.12853241e-01 1.12920556e-01 + 1.12987828e-01 1.13055056e-01 1.13122241e-01 1.13189382e-01 1.13256480e-01 + 1.13323533e-01 1.13390542e-01 1.13457507e-01 1.13524427e-01 1.13591303e-01 + 1.13658134e-01 1.13724920e-01 1.13791661e-01 1.13858356e-01 1.13925007e-01 + 1.13991612e-01 1.14058171e-01 1.14124685e-01 1.14191153e-01 1.14257575e-01 + 1.14323950e-01 1.14390280e-01 1.14456562e-01 1.14522799e-01 1.14588988e-01 + 1.14655131e-01 1.14721227e-01 1.14787276e-01 1.14853278e-01 1.14919232e-01 + 1.14985139e-01 1.15050998e-01 1.15116810e-01 1.15182574e-01 1.15248290e-01 + 1.15313957e-01 1.15379577e-01 1.15445148e-01 1.15510671e-01 1.15576146e-01 + 1.15641571e-01 1.15706948e-01 1.15772276e-01 1.15837555e-01 1.15902785e-01 + 1.15967965e-01 1.16033097e-01 1.16098179e-01 1.16163211e-01 1.16228193e-01 + 1.16293126e-01 1.16358009e-01 1.16422842e-01 1.16487625e-01 1.16552357e-01 + 1.16617040e-01 1.16681672e-01 1.16746253e-01 1.16810784e-01 1.16875264e-01 + 1.16939693e-01 1.17004071e-01 1.17068398e-01 1.17132674e-01 1.17196899e-01 + 1.17261073e-01 1.17325195e-01 1.17389266e-01 1.17453285e-01 1.17517252e-01 + 1.17581168e-01 1.17645032e-01 1.17708843e-01 1.17772603e-01 1.17836311e-01 + 1.17899966e-01 1.17963569e-01 1.18027120e-01 1.18090618e-01 1.18154064e-01 + 1.18217457e-01 1.18280797e-01 1.18344084e-01 1.18407319e-01 1.18470500e-01 + 1.18533629e-01 1.18596704e-01 1.18659726e-01 1.18722695e-01 1.18785610e-01 + 1.18848472e-01 1.18911281e-01 1.18974035e-01 1.19036736e-01 1.19099384e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.38518338e-01 1.38476565e-01 1.38434740e-01 1.38392864e-01 1.38350938e-01 + 1.38308960e-01 1.38266931e-01 1.38224851e-01 1.38182720e-01 1.38140538e-01 + 1.38098305e-01 1.38056020e-01 1.38013684e-01 1.37971296e-01 1.37928857e-01 + 1.37886366e-01 1.37843824e-01 1.37801230e-01 1.37758585e-01 1.37715888e-01 + 1.37673139e-01 1.37630338e-01 1.37587486e-01 1.37544581e-01 1.37501625e-01 + 1.37458617e-01 1.37415556e-01 1.37372444e-01 1.37329279e-01 1.37286062e-01 + 1.37242794e-01 1.37199472e-01 1.37156099e-01 1.37112673e-01 1.37069195e-01 + 1.37025664e-01 1.36982081e-01 1.36938445e-01 1.36894757e-01 1.36851016e-01 + 1.36807222e-01 1.36763376e-01 1.36719477e-01 1.36675525e-01 1.36631520e-01 + 1.36587463e-01 1.36543352e-01 1.36499189e-01 1.36454972e-01 1.36410702e-01 + 1.36366380e-01 1.36322004e-01 1.36277574e-01 1.36233092e-01 1.36188556e-01 + 1.36143967e-01 1.36099325e-01 1.36054629e-01 1.36009880e-01 1.35965077e-01 + 1.35920221e-01 1.35875311e-01 1.35830347e-01 1.35785330e-01 1.35740259e-01 + 1.35695134e-01 1.35649956e-01 1.35604723e-01 1.35559437e-01 1.35514096e-01 + 1.35468702e-01 1.35423254e-01 1.35377752e-01 1.35332195e-01 1.35286585e-01 + 1.35240920e-01 1.35195201e-01 1.35149428e-01 1.35103600e-01 1.35057718e-01 + 1.35011782e-01 1.34965791e-01 1.34919746e-01 1.34873646e-01 1.34827492e-01 + 1.34781283e-01 1.34735020e-01 1.34688702e-01 1.34642329e-01 1.34595901e-01 + 1.34549419e-01 1.34502882e-01 1.34456290e-01 1.34409643e-01 1.34362941e-01 + 1.34316184e-01 1.34269372e-01 1.34222505e-01 1.34175583e-01 1.34128606e-01 + 1.34081573e-01 1.34034486e-01 1.33987343e-01 1.33940145e-01 1.33892892e-01 + 1.33845583e-01 1.33798219e-01 1.33750799e-01 1.33703324e-01 1.33655794e-01 + 1.33608207e-01 1.33560566e-01 1.33512869e-01 1.33465116e-01 1.33417307e-01 + 1.33369443e-01 1.33321523e-01 1.33273547e-01 1.33225515e-01 1.33177428e-01 + 1.33129285e-01 1.33081085e-01 1.33032830e-01 1.32984519e-01 1.32936152e-01 + 1.32887728e-01 1.32839249e-01 1.32790713e-01 1.32742122e-01 1.32693474e-01 + 1.32644770e-01 1.32596010e-01 1.32547193e-01 1.32498320e-01 1.32449391e-01 + 1.32400405e-01 1.32351363e-01 1.32302265e-01 1.32253110e-01 1.32203899e-01 + 1.32154631e-01 1.32105306e-01 1.32055925e-01 1.32006488e-01 1.31956993e-01 + 1.31907442e-01 1.31857835e-01 1.31808170e-01 1.31758449e-01 1.31708671e-01 + 1.31658836e-01 1.31608945e-01 1.31558996e-01 1.31508991e-01 1.31458929e-01 + 1.31408809e-01 1.31358633e-01 1.31308400e-01 1.31258110e-01 1.31207762e-01 + 1.31157358e-01 1.31106897e-01 1.31056378e-01 1.31005802e-01 1.30955169e-01 + 1.30904479e-01 1.30853732e-01 1.30802927e-01 1.30752065e-01 1.30701146e-01 + 1.30650170e-01 1.30599136e-01 1.30548045e-01 1.30496896e-01 1.30445690e-01 + 1.30394426e-01 1.30343106e-01 1.30291727e-01 1.30240291e-01 1.30188798e-01 + 1.30137247e-01 1.30085639e-01 1.30033973e-01 1.29982249e-01 1.29930468e-01 + 1.29878629e-01 1.29826732e-01 1.29774778e-01 1.29722766e-01 1.29670696e-01 + 1.29618569e-01 1.29566384e-01 1.29514141e-01 1.29461841e-01 1.29409482e-01 + 1.29357066e-01 1.29304592e-01 1.29252060e-01 1.29199470e-01 1.29146823e-01 + 1.29094117e-01 1.29041354e-01 1.28988533e-01 1.28935654e-01 1.28882717e-01 + 1.28829721e-01 1.28776668e-01 1.28723557e-01 1.28670388e-01 1.28617161e-01 + 1.28563876e-01 1.28510533e-01 1.28457132e-01 1.28403673e-01 1.28350156e-01 + 1.28296581e-01 1.28242948e-01 1.28189256e-01 1.28135507e-01 1.28081699e-01 + 1.28027834e-01 1.27973910e-01 1.27919928e-01 1.27865888e-01 1.27811790e-01 + 1.27757634e-01 1.27703420e-01 1.27649147e-01 1.27594816e-01 1.27540427e-01 + 1.27485980e-01 1.27431475e-01 1.27376912e-01 1.27322290e-01 1.27267611e-01 + 1.27212873e-01 1.27158077e-01 1.27103223e-01 1.27048310e-01 1.26993340e-01 + 1.26938311e-01 1.26883224e-01 1.26828079e-01 1.26772875e-01 1.26717614e-01 + 1.26662294e-01 1.26606916e-01 1.26551480e-01 1.26495986e-01 1.26440433e-01 + 1.26384823e-01 1.26329154e-01 1.26273427e-01 1.26217642e-01 1.26161799e-01 + 1.26105898e-01 1.26049938e-01 1.25993920e-01 1.25937845e-01 1.25881711e-01 + 1.25825519e-01 1.25769269e-01 1.25712961e-01 1.25656594e-01 1.25600170e-01 + 1.25543688e-01 1.25487147e-01 1.25430549e-01 1.25373892e-01 1.25317178e-01 + 1.25260405e-01 1.25203574e-01 1.25146686e-01 1.25089739e-01 1.25032735e-01 + 1.24975672e-01 1.24918552e-01 1.24861374e-01 1.24804137e-01 1.24746843e-01 + 1.24689491e-01 1.24632082e-01 1.24574614e-01 1.24517089e-01 1.24459505e-01 + 1.24401864e-01 1.24344166e-01 1.24286409e-01 1.24228595e-01 1.24170723e-01 + 1.24112794e-01 1.24054806e-01 1.23996762e-01 1.23938659e-01 1.23880499e-01 + 1.23822281e-01 1.23764006e-01 1.23705674e-01 1.23647284e-01 1.23588836e-01 + 1.23530331e-01 1.23471769e-01 1.23413149e-01 1.23354472e-01 1.23295737e-01 + 1.23236946e-01 1.23178097e-01 1.23119190e-01 1.23060227e-01 1.23001206e-01 + 1.22942129e-01 1.22882994e-01 1.22823802e-01 1.22764553e-01 1.22705247e-01 + 1.22645884e-01 1.22586464e-01 1.22526988e-01 1.22467454e-01 1.22407864e-01 + 1.22348217e-01 1.22288513e-01 1.22228752e-01 1.22168935e-01 1.22109061e-01 + 1.22049130e-01 1.21989143e-01 1.21929100e-01 1.21869000e-01 1.21808843e-01 + 1.21748630e-01 1.21688361e-01 1.21628036e-01 1.21567654e-01 1.21507216e-01 + 1.21446722e-01 1.21386172e-01 1.21325566e-01 1.21264904e-01 1.21204185e-01 + 1.21143411e-01 1.21082581e-01 1.21021696e-01 1.20960754e-01 1.20899757e-01 + 1.20838704e-01 1.20777596e-01 1.20716432e-01 1.20655212e-01 1.20593937e-01 + 1.20532607e-01 1.20471221e-01 1.20409780e-01 1.20348284e-01 1.20286733e-01 + 1.20225127e-01 1.20163465e-01 1.20101749e-01 1.20039978e-01 1.19978152e-01 + 1.19916271e-01 1.19854335e-01 1.19792345e-01 1.19730300e-01 1.19668200e-01 + 1.19606047e-01 1.19543838e-01 1.19481576e-01 1.19419259e-01 1.19356888e-01 + 1.19294463e-01 1.19231984e-01 1.19169450e-01 1.19106863e-01 1.19044222e-01 + 1.18981528e-01 1.18918779e-01 1.18855977e-01 1.18793122e-01 1.18730213e-01 + 1.18667250e-01 1.18604235e-01 1.18541166e-01 1.18478043e-01 1.18414868e-01 + 1.18351640e-01 1.18288359e-01 1.18225025e-01 1.18161638e-01 1.18098199e-01 + 1.18034707e-01 1.17971163e-01 1.17907566e-01 1.17843917e-01 1.17780216e-01 + 1.17716462e-01 1.17652656e-01 1.17588799e-01 1.17524889e-01 1.17460928e-01 + 1.17396915e-01 1.17332851e-01 1.17268735e-01 1.17204567e-01 1.17140349e-01 + 1.17076079e-01 1.17011757e-01 1.16947385e-01 1.16882962e-01 1.16818488e-01 + 1.16753964e-01 1.16689388e-01 1.16624762e-01 1.16560086e-01 1.16495360e-01 + 1.16430583e-01 1.16365756e-01 1.16300879e-01 1.16235952e-01 1.16170975e-01 + 1.16105949e-01 1.16040873e-01 1.15975748e-01 1.15910573e-01 1.15845349e-01 + 1.15780076e-01 1.15714754e-01 1.15649383e-01 1.15583963e-01 1.15518494e-01 + 1.15452977e-01 1.15387412e-01 1.15321798e-01 1.15256136e-01 1.15190426e-01 + 1.15124668e-01 1.15058862e-01 1.14993008e-01 1.14927107e-01 1.14861158e-01 + 1.14795162e-01 1.14729119e-01 1.14663029e-01 1.14596892e-01 1.14530707e-01 + 1.14464477e-01 1.14398199e-01 1.14331875e-01 1.14265505e-01 1.14199089e-01 + 1.14132627e-01 1.14066119e-01 1.13999565e-01 1.13932965e-01 1.13866320e-01 + 1.13799630e-01 1.13732894e-01 1.13666113e-01 1.13599288e-01 1.13532417e-01 + 1.13465503e-01 1.13398543e-01 1.13331539e-01 1.13264491e-01 1.13197399e-01 + 1.13130263e-01 1.13063084e-01 1.12995861e-01 1.12928594e-01 1.12861284e-01 + 1.12793931e-01 1.12726535e-01 1.12659096e-01 1.12591615e-01 1.12524091e-01 + 1.12456524e-01 1.12388916e-01 1.12321265e-01 1.12253573e-01 1.12185839e-01 + 1.12118063e-01 1.12050246e-01 1.11982388e-01 1.11914489e-01 1.11846549e-01 + 1.11778568e-01 1.11710547e-01 1.11642485e-01 1.11574383e-01 1.11506242e-01 + 1.11438060e-01 1.11369839e-01 1.11301578e-01 1.11233278e-01 1.11164939e-01 + 1.11096561e-01 1.11028144e-01 1.10959689e-01 1.10891195e-01 1.10822663e-01 + 1.10754093e-01 1.10685486e-01 1.10616840e-01 1.10548157e-01 1.10479437e-01 + 1.10410680e-01 1.10341886e-01 1.10273055e-01 1.10204188e-01 1.10135284e-01 + 1.10066345e-01 1.09997369e-01 1.09928358e-01 1.09859311e-01 1.09790229e-01 + 1.09721112e-01 1.09651960e-01 1.09582773e-01 1.09513552e-01 1.09444296e-01 + 1.09375007e-01 1.09305683e-01 1.09236326e-01 1.09166936e-01 1.09097512e-01 + 1.09028055e-01 1.08958566e-01 1.08889044e-01 1.08819489e-01 1.08749902e-01 + 1.08680284e-01 1.08610634e-01 1.08540952e-01 1.08471239e-01 1.08401495e-01 + 1.08331720e-01 1.08261914e-01 1.08192078e-01 1.08122212e-01 1.08052316e-01 + 1.07982391e-01 1.07912436e-01 1.07842452e-01 1.07772438e-01 1.07702397e-01 + 1.07632326e-01 1.07562227e-01 1.07492101e-01 1.07421946e-01 1.07351764e-01 + 1.07281555e-01 1.07211318e-01 1.07141055e-01 1.07070766e-01 1.07000449e-01 + 1.06930107e-01 1.06859739e-01 1.06789346e-01 1.06718927e-01 1.06648483e-01 + 1.06578015e-01 1.06507521e-01 1.06437004e-01 1.06366462e-01 1.06295897e-01 + 1.06225308e-01 1.06154696e-01 1.06084061e-01 1.06013403e-01 1.05942723e-01 + 1.05872021e-01 1.05801296e-01 1.05730551e-01 1.05659783e-01 1.05588995e-01 + 1.05518186e-01 1.05447356e-01 1.05376506e-01 1.05305636e-01 1.05234746e-01 + 1.05163837e-01 1.05092908e-01 1.05021961e-01 1.04950995e-01 1.04880011e-01 + 1.04809009e-01 1.04737989e-01 1.04666951e-01 1.04595897e-01 1.04524826e-01 + 1.04453738e-01 1.04382633e-01 1.04311513e-01 1.04240377e-01 1.04169226e-01 + 1.04098060e-01 1.04026878e-01 1.03955683e-01 1.03884473e-01 1.03813249e-01 + 1.03742012e-01 1.03670761e-01 1.03599498e-01 1.03528222e-01 1.03456933e-01 + 1.03385633e-01 1.03314321e-01 1.03242997e-01 1.03171662e-01 1.03100317e-01 + 1.03028961e-01 1.02957595e-01 1.02886219e-01 1.02814833e-01 1.02743439e-01 + 1.02672036e-01 1.02600624e-01 1.02529204e-01 1.02457776e-01 1.02386340e-01 + 1.02314898e-01 1.02243448e-01 1.02171992e-01 1.02100530e-01 1.02029062e-01 + 1.01957589e-01 1.01886110e-01 1.01814626e-01 1.01743138e-01 1.01671646e-01 + 1.01600150e-01 1.01528651e-01 1.01457148e-01 1.01385643e-01 1.01314135e-01 + 1.01242625e-01 1.01171114e-01 1.01099601e-01 1.01028087e-01 1.00956573e-01 + 1.00885058e-01 1.00813543e-01 1.00742029e-01 1.00670515e-01 1.00599003e-01 + 1.00527492e-01 1.00455983e-01 1.00384477e-01 1.00312973e-01 1.00241472e-01 + 1.00169974e-01 1.00098480e-01 1.00026990e-01 9.99555050e-02 9.98840245e-02 + 9.98125493e-02 9.97410797e-02 9.96696161e-02 9.95981588e-02 9.95267084e-02 + 9.94552650e-02 9.93838292e-02 9.93124014e-02 9.92409818e-02 9.91695709e-02 + 9.90981691e-02 9.90267768e-02 9.89553944e-02 9.88840222e-02 9.88126607e-02 + 9.87413103e-02 9.86699713e-02 9.85986441e-02 9.85273293e-02 9.84560271e-02 + 9.83847379e-02 9.83134622e-02 9.82422004e-02 9.81709529e-02 9.80997201e-02 + 9.80285023e-02 9.79573001e-02 9.78861138e-02 9.78149439e-02 9.77437907e-02 + 9.76726547e-02 9.76015362e-02 9.75304358e-02 9.74593538e-02 9.73882907e-02 + 9.73172468e-02 9.72462226e-02 9.71752186e-02 9.71042351e-02 9.70332725e-02 + 9.69623314e-02 9.68914121e-02 9.68205151e-02 9.67496408e-02 9.66787897e-02 + 9.66079621e-02 9.65371585e-02 9.64663793e-02 9.63956251e-02 9.63248961e-02 + 9.62541930e-02 9.61835160e-02 9.61128657e-02 9.60422425e-02 9.59716469e-02 + 9.59010792e-02 9.58305400e-02 9.57600297e-02 9.56895487e-02 9.56190976e-02 + 9.55486767e-02 9.54782865e-02 9.54079274e-02 9.53376000e-02 9.52673047e-02 + 9.51970419e-02 9.51268121e-02 9.50566158e-02 9.49864534e-02 9.49163254e-02 + 9.48462322e-02 9.47761744e-02 9.47061524e-02 9.46361667e-02 9.45662176e-02 + 9.44963058e-02 9.44264317e-02 9.43565957e-02 9.42867984e-02 9.42170402e-02 + 9.41473215e-02 9.40776429e-02 9.40080049e-02 9.39384078e-02 9.38688523e-02 + 9.37993388e-02 9.37298677e-02 9.36604397e-02 9.35910550e-02 9.35217143e-02 + 9.34524180e-02 9.33831666e-02 9.33139606e-02 9.32448006e-02 9.31756869e-02 + 9.31066201e-02 9.30376006e-02 9.29686291e-02 9.28997059e-02 9.28308316e-02 + 9.27620066e-02 9.26932315e-02 9.26245068e-02 9.25558330e-02 9.24872106e-02 + 9.24186400e-02 9.23501218e-02 9.22816566e-02 9.22132447e-02 9.21448867e-02 + 9.20765832e-02 9.20083346e-02 9.19401414e-02 9.18720042e-02 9.18039235e-02 + 9.17358998e-02 9.16679335e-02 9.16000253e-02 9.15321756e-02 9.14643850e-02 + 9.13966540e-02 9.13289830e-02 9.12613727e-02 9.11938235e-02 9.11263360e-02 + 9.10589106e-02 9.09915480e-02 9.09242486e-02 9.08570130e-02 9.07898417e-02 + 9.07227352e-02 9.06556940e-02 9.05887187e-02 9.05218099e-02 9.04549680e-02 + 9.03881935e-02 9.03214871e-02 9.02548492e-02 9.01882804e-02 9.01217813e-02 + 9.00553522e-02 8.99889939e-02 8.99227068e-02 8.98564915e-02 8.97903485e-02 + 8.97242783e-02 8.96582816e-02 8.95923588e-02 8.95265104e-02 8.94607371e-02 + 8.93950394e-02 8.93294177e-02 8.92638728e-02 8.91984050e-02 8.91330150e-02 + 8.90677033e-02 8.90024705e-02 8.89373170e-02 8.88722435e-02 8.88072505e-02 + 8.87423386e-02 8.86775083e-02 8.86127602e-02 8.85480947e-02 8.84835126e-02 + 8.84190142e-02 8.83546003e-02 8.82902712e-02 8.82260277e-02 8.81618702e-02 + 8.80977994e-02 8.80338157e-02 8.79699197e-02 8.79061120e-02 8.78423932e-02 + 8.77787637e-02 8.77152243e-02 8.76517753e-02 8.75884175e-02 8.75251513e-02 + 8.74619773e-02 8.73988961e-02 8.73359083e-02 8.72730143e-02 8.72102149e-02 + 8.71475104e-02 8.70849016e-02 8.70223890e-02 8.69599731e-02 8.68976544e-02 + 8.68354337e-02 8.67733114e-02 8.67112881e-02 8.66493644e-02 8.65875409e-02 + 8.65258180e-02 8.64641964e-02 8.64026767e-02 8.63412594e-02 8.62799451e-02 + 8.62187344e-02 8.61576278e-02 8.60966259e-02 8.60357293e-02 8.59749386e-02 + 8.59142542e-02 8.58536769e-02 8.57932071e-02 8.57328455e-02 8.56725925e-02 + 8.56124489e-02 8.55524151e-02 8.54924918e-02 8.54326794e-02 8.53729787e-02 + 8.53133900e-02 8.52539141e-02 8.51945515e-02 8.51353028e-02 8.50761685e-02 + 8.50171493e-02 8.49582456e-02 8.48994581e-02 8.48407874e-02 8.47822340e-02 + 8.47237984e-02 8.46654813e-02 8.46072833e-02 8.45492049e-02 8.44912466e-02 + 8.44334092e-02 8.43756930e-02 8.43180988e-02 8.42606271e-02 8.42032784e-02 + 8.41460533e-02 8.40889525e-02 8.40319764e-02 8.39751257e-02 8.39184009e-02 + 8.38618026e-02 8.38053314e-02 8.37489878e-02 8.36927724e-02 8.36366859e-02 + 8.35807286e-02 8.35249013e-02 8.34692046e-02 8.34136388e-02 8.33582048e-02 + 8.33029029e-02 8.32477338e-02 8.31926981e-02 8.31377963e-02 8.30830290e-02 + 8.30283967e-02 8.29739001e-02 8.29195397e-02 8.28653161e-02 8.28112297e-02 + 8.27572813e-02 8.27034714e-02 8.26498005e-02 8.25962691e-02 8.25428780e-02 + 8.24896276e-02 8.24365184e-02 8.23835511e-02 8.23307263e-02 8.22780444e-02 + 8.22255060e-02 8.21731118e-02 8.21208622e-02 8.20687579e-02 8.20167993e-02 + 8.19649871e-02 8.19133218e-02 8.18618039e-02 8.18104341e-02 8.17592128e-02 + 8.17081407e-02 8.16572182e-02 8.16064460e-02 8.15558245e-02 8.15053545e-02 + 8.14550363e-02 8.14048705e-02 8.13548578e-02 8.13049986e-02 8.12552935e-02 + 8.12057430e-02 8.11563478e-02 8.11071082e-02 8.10580250e-02 8.10090986e-02 + 8.09603295e-02 8.09117184e-02 8.08632657e-02 8.08149721e-02 8.07668379e-02 + 8.07188639e-02 8.06710504e-02 8.06233982e-02 8.05759075e-02 8.05285792e-02 + 8.04814136e-02 8.04344112e-02 8.03875727e-02 8.03408986e-02 8.02943893e-02 + 8.02480455e-02 8.02018675e-02 8.01558561e-02 8.01100116e-02 8.00643347e-02 + 8.00188258e-02 7.99734855e-02 7.99283142e-02 7.98833126e-02 7.98384810e-02 + 7.97938201e-02 7.97493304e-02 7.97050123e-02 7.96608664e-02 7.96168932e-02 + 7.95730933e-02 7.95294670e-02 7.94860149e-02 7.94427376e-02 7.93996355e-02 + 7.93567091e-02 7.93139590e-02 7.92713856e-02 7.92289895e-02 7.91867711e-02 + 7.91447310e-02 7.91028695e-02 7.90611873e-02 7.90196849e-02 7.89783626e-02 + 7.89372210e-02 7.88962607e-02 7.88554819e-02 7.88148854e-02 7.87744715e-02 + 7.87342407e-02 7.86941935e-02 7.86543304e-02 7.86146519e-02 7.85751584e-02 + 7.85358504e-02 7.84967284e-02 7.84577929e-02 7.84190442e-02 7.83804830e-02 + 7.83421096e-02 7.83039245e-02 7.82659282e-02 7.82281212e-02 7.81905038e-02 + 7.81530766e-02 7.81158400e-02 7.80787945e-02 7.80419405e-02 7.80052784e-02 + 7.79688088e-02 7.79325320e-02 7.78964485e-02 7.78605587e-02 7.78248631e-02 + 7.77893622e-02 7.77540563e-02 7.77189459e-02 7.76840314e-02 7.76493132e-02 + 7.76147919e-02 7.75804677e-02 7.75463412e-02 7.75124127e-02 7.74786828e-02 + 7.74451517e-02 7.74118199e-02 7.73786878e-02 7.73457559e-02 7.73130245e-02 + 7.72804941e-02 7.72481650e-02 7.72160377e-02 7.71841125e-02 7.71523900e-02 + 7.71208703e-02 7.70895541e-02 7.70584416e-02 7.70275332e-02 7.69968293e-02 + 7.69663304e-02 7.69360368e-02 7.69059488e-02 7.68760670e-02 7.68463915e-02 + 7.68169229e-02 7.67876614e-02 7.67586075e-02 7.67297616e-02 7.67011239e-02 + 7.66726949e-02 7.66444749e-02 7.66164642e-02 7.65886633e-02 7.65610725e-02 + 7.65336921e-02 7.65065225e-02 7.64795641e-02 7.64528171e-02 7.64262819e-02 + 7.63999589e-02 7.63738484e-02 7.63479508e-02 7.63222662e-02 7.62967952e-02 + 7.62715380e-02 7.62464950e-02 7.62216664e-02 7.61970526e-02 7.61726539e-02 + 7.61484706e-02 7.61245031e-02 7.61007516e-02 7.60772164e-02 7.60538979e-02 + 7.60307964e-02 7.60079121e-02 7.59852453e-02 7.59627964e-02 7.59405657e-02 + 7.59185533e-02 7.58967597e-02 7.58751851e-02 7.58538297e-02 7.58326939e-02 + 7.58117779e-02 7.57910820e-02 7.57706065e-02 7.57503516e-02 7.57303176e-02 + 7.57105048e-02 7.56909134e-02 7.56715437e-02 7.56523959e-02 7.56334703e-02 + 7.56147671e-02 7.55962866e-02 7.55780290e-02 7.55599946e-02 7.55421835e-02 + 7.55245961e-02 7.55072326e-02 7.54900931e-02 7.54731780e-02 7.54564874e-02 + 7.54400215e-02 7.54237806e-02 7.54077649e-02 7.53919746e-02 7.53764099e-02 + 7.53610711e-02 7.53459582e-02 7.53310716e-02 7.53164113e-02 7.53019777e-02 + 7.52877708e-02 7.52737910e-02 7.52600383e-02 7.52465130e-02 7.52332152e-02 + 7.52201451e-02 7.52073028e-02 7.51946887e-02 7.51823027e-02 7.51701451e-02 + 7.51582161e-02 7.51465158e-02 7.51350443e-02 7.51238019e-02 7.51127886e-02 + 7.51020046e-02 7.50914500e-02 7.50811251e-02 7.50710299e-02 7.50611645e-02 + 7.50515291e-02 7.50421239e-02 7.50329489e-02 7.50240043e-02 7.50152901e-02 + 7.50068066e-02 7.49985538e-02 7.49905318e-02 7.49827407e-02 7.49751807e-02 + 7.49678518e-02 7.49607542e-02 7.49538879e-02 7.49472530e-02 7.49408496e-02 + 7.49346779e-02 7.49287378e-02 7.49230295e-02 7.49175530e-02 7.49123084e-02 + 7.49072958e-02 7.49025153e-02 7.48979669e-02 7.48936506e-02 7.48895666e-02 + 7.48857148e-02 7.48820954e-02 7.48787084e-02 7.48755538e-02 7.48726317e-02 + 7.48699421e-02 7.48674851e-02 7.48652606e-02 7.48632687e-02 7.48615095e-02 + 7.48599830e-02 7.48586891e-02 7.48576279e-02 7.48567994e-02 7.48562037e-02 + 7.48558407e-02 7.48557104e-02 7.48558129e-02 7.48561481e-02 7.48567160e-02 + 7.48575167e-02 7.48585501e-02 7.48598162e-02 7.48613149e-02 7.48630464e-02 + 7.48650104e-02 7.48672071e-02 7.48696364e-02 7.48722982e-02 7.48751926e-02 + 7.48783194e-02 7.48816786e-02 7.48852703e-02 7.48890943e-02 7.48931506e-02 + 7.48974391e-02 7.49019598e-02 7.49067126e-02 7.49116975e-02 7.49169143e-02 + 7.49223631e-02 7.49280438e-02 7.49339562e-02 7.49401003e-02 7.49464760e-02 + 7.49530832e-02 7.49599219e-02 7.49669919e-02 7.49742931e-02 7.49818255e-02 + 7.49895890e-02 7.49975834e-02 7.50058087e-02 7.50142646e-02 7.50229512e-02 + 7.50318684e-02 7.50410158e-02 7.50503936e-02 7.50600015e-02 7.50698394e-02 + 7.50799072e-02 7.50902047e-02 7.51007318e-02 7.51114884e-02 7.51224743e-02 + 7.51336894e-02 7.51451335e-02 7.51568065e-02 7.51687082e-02 7.51808385e-02 + 7.51931972e-02 7.52057841e-02 7.52185991e-02 7.52316420e-02 7.52449126e-02 + 7.52584108e-02 7.52721363e-02 7.52860890e-02 7.53002688e-02 7.53146753e-02 + 7.53293085e-02 7.53441681e-02 7.53592540e-02 7.53745659e-02 7.53901036e-02 + 7.54058670e-02 7.54218558e-02 7.54380698e-02 7.54545087e-02 7.54711725e-02 + 7.54880609e-02 7.55051735e-02 7.55225103e-02 7.55400710e-02 7.55578553e-02 + 7.55758631e-02 7.55940940e-02 7.56125479e-02 7.56312245e-02 7.56501236e-02 + 7.56692448e-02 7.56885881e-02 7.57081530e-02 7.57279394e-02 7.57479470e-02 + 7.57681755e-02 7.57886247e-02 7.58092942e-02 7.58301840e-02 7.58512935e-02 + 7.58726227e-02 7.58941712e-02 7.59159386e-02 7.59379249e-02 7.59601296e-02 + 7.59825524e-02 7.60051932e-02 7.60280515e-02 7.60511271e-02 7.60744197e-02 + 7.60979290e-02 7.61216547e-02 7.61455964e-02 7.61697540e-02 7.61941269e-02 + 7.62187151e-02 7.62435180e-02 7.62685354e-02 7.62937671e-02 7.63192126e-02 + 7.63448716e-02 7.63707438e-02 7.63968289e-02 7.64231266e-02 7.64496364e-02 + 7.64763581e-02 7.65032913e-02 7.65304357e-02 7.65577909e-02 7.65853566e-02 + 7.66131325e-02 7.66411181e-02 7.66693131e-02 7.66977171e-02 7.67263299e-02 + 7.67551510e-02 7.67841801e-02 7.68134168e-02 7.68428607e-02 7.68725114e-02 + 7.69023687e-02 7.69324320e-02 7.69627011e-02 7.69931756e-02 7.70238549e-02 + 7.70547389e-02 7.70858271e-02 7.71171190e-02 7.71486144e-02 7.71803127e-02 + 7.72122137e-02 7.72443169e-02 7.72766219e-02 7.73091283e-02 7.73418357e-02 + 7.73747437e-02 7.74078518e-02 7.74411598e-02 7.74746671e-02 7.75083734e-02 + 7.75422781e-02 7.75763810e-02 7.76106816e-02 7.76451794e-02 7.76798741e-02 + 7.77147651e-02 7.77498522e-02 7.77851347e-02 7.78206124e-02 7.78562848e-02 + 7.78921513e-02 7.79282117e-02 7.79644654e-02 7.80009121e-02 7.80375512e-02 + 7.80743823e-02 7.81114050e-02 7.81486188e-02 7.81860233e-02 7.82236179e-02 + 7.82614023e-02 7.82993761e-02 7.83375386e-02 7.83758895e-02 7.84144284e-02 + 7.84531546e-02 7.84920679e-02 7.85311676e-02 7.85704534e-02 7.86099248e-02 + 7.86495813e-02 7.86894223e-02 7.87294475e-02 7.87696564e-02 7.88100485e-02 + 7.88506232e-02 7.88913802e-02 7.89323189e-02 7.89734389e-02 7.90147396e-02 + 7.90562205e-02 7.90978813e-02 7.91397213e-02 7.91817402e-02 7.92239373e-02 + 7.92663122e-02 7.93088645e-02 7.93515935e-02 7.93944988e-02 7.94375800e-02 + 7.94808364e-02 7.95242676e-02 7.95678731e-02 7.96116524e-02 7.96556049e-02 + 7.96997302e-02 7.97440277e-02 7.97884970e-02 7.98331374e-02 7.98779486e-02 + 7.99229300e-02 7.99680810e-02 8.00134012e-02 8.00588900e-02 8.01045468e-02 + 8.01503713e-02 8.01963628e-02 8.02425209e-02 8.02888450e-02 8.03353345e-02 + 8.03819890e-02 8.04288079e-02 8.04757907e-02 8.05229368e-02 8.05702458e-02 + 8.06177170e-02 8.06653500e-02 8.07131443e-02 8.07610992e-02 8.08092142e-02 + 8.08574888e-02 8.09059225e-02 8.09545148e-02 8.10032650e-02 8.10521726e-02 + 8.11012372e-02 8.11504581e-02 8.11998347e-02 8.12493667e-02 8.12990534e-02 + 8.13488942e-02 8.13988886e-02 8.14490361e-02 8.14993361e-02 8.15497881e-02 + 8.16003915e-02 8.16511457e-02 8.17020502e-02 8.17531045e-02 8.18043080e-02 + 8.18556601e-02 8.19071604e-02 8.19588081e-02 8.20106028e-02 8.20625439e-02 + 8.21146309e-02 8.21668631e-02 8.22192401e-02 8.22717613e-02 8.23244260e-02 + 8.23772339e-02 8.24301842e-02 8.24832764e-02 8.25365100e-02 8.25898843e-02 + 8.26433990e-02 8.26970532e-02 8.27508466e-02 8.28047785e-02 8.28588484e-02 + 8.29130557e-02 8.29673998e-02 8.30218801e-02 8.30764962e-02 8.31312474e-02 + 8.31861332e-02 8.32411529e-02 8.32963061e-02 8.33515922e-02 8.34070105e-02 + 8.34625605e-02 8.35182417e-02 8.35740534e-02 8.36299951e-02 8.36860663e-02 + 8.37422663e-02 8.37985946e-02 8.38550506e-02 8.39116338e-02 8.39683435e-02 + 8.40251792e-02 8.40821403e-02 8.41392263e-02 8.41964365e-02 8.42537705e-02 + 8.43112275e-02 8.43688072e-02 8.44265088e-02 8.44843318e-02 8.45422756e-02 + 8.46003397e-02 8.46585235e-02 8.47168264e-02 8.47752478e-02 8.48337872e-02 + 8.48924439e-02 8.49512175e-02 8.50101073e-02 8.50691128e-02 8.51282334e-02 + 8.51874685e-02 8.52468175e-02 8.53062799e-02 8.53658551e-02 8.54255425e-02 + 8.54853415e-02 8.55452516e-02 8.56052723e-02 8.56654028e-02 8.57256427e-02 + 8.57859914e-02 8.58464483e-02 8.59070128e-02 8.59676844e-02 8.60284625e-02 + 8.60893465e-02 8.61503358e-02 8.62114299e-02 8.62726282e-02 8.63339302e-02 + 8.63953352e-02 8.64568427e-02 8.65184522e-02 8.65801629e-02 8.66419745e-02 + 8.67038863e-02 8.67658977e-02 8.68280082e-02 8.68902172e-02 8.69525242e-02 + 8.70149285e-02 8.70774296e-02 8.71400270e-02 8.72027200e-02 8.72655081e-02 + 8.73283908e-02 8.73913675e-02 8.74544376e-02 8.75176005e-02 8.75808557e-02 + 8.76442026e-02 8.77076407e-02 8.77711694e-02 8.78347881e-02 8.78984963e-02 + 8.79622934e-02 8.80261789e-02 8.80901521e-02 8.81542126e-02 8.82183598e-02 + 8.82825930e-02 8.83469119e-02 8.84113157e-02 8.84758040e-02 8.85403762e-02 + 8.86050317e-02 8.86697700e-02 8.87345905e-02 8.87994927e-02 8.88644761e-02 + 8.89295400e-02 8.89946839e-02 8.90599073e-02 8.91252096e-02 8.91905903e-02 + 8.92560488e-02 8.93215845e-02 8.93871970e-02 8.94528857e-02 8.95186500e-02 + 8.95844894e-02 8.96504034e-02 8.97163914e-02 8.97824528e-02 8.98485871e-02 + 8.99147938e-02 8.99810724e-02 9.00474222e-02 9.01138428e-02 9.01803336e-02 + 9.02468942e-02 9.03135238e-02 9.03802221e-02 9.04469884e-02 9.05138223e-02 + 9.05807232e-02 9.06476906e-02 9.07147239e-02 9.07818226e-02 9.08489862e-02 + 9.09162142e-02 9.09835060e-02 9.10508611e-02 9.11182790e-02 9.11857591e-02 + 9.12533009e-02 9.13209040e-02 9.13885677e-02 9.14562916e-02 9.15240751e-02 + 9.15919178e-02 9.16598190e-02 9.17277784e-02 9.17957953e-02 9.18638692e-02 + 9.19319997e-02 9.20001862e-02 9.20684282e-02 9.21367252e-02 9.22050767e-02 + 9.22734821e-02 9.23419411e-02 9.24104530e-02 9.24790173e-02 9.25476336e-02 + 9.26163013e-02 9.26850199e-02 9.27537890e-02 9.28226080e-02 9.28914765e-02 + 9.29603938e-02 9.30293596e-02 9.30983734e-02 9.31674346e-02 9.32365427e-02 + 9.33056973e-02 9.33748978e-02 9.34441438e-02 9.35134347e-02 9.35827701e-02 + 9.36521496e-02 9.37215725e-02 9.37910385e-02 9.38605469e-02 9.39300975e-02 + 9.39996895e-02 9.40693227e-02 9.41389965e-02 9.42087104e-02 9.42784639e-02 + 9.43482566e-02 9.44180880e-02 9.44879576e-02 9.45578649e-02 9.46278095e-02 + 9.46977909e-02 9.47678086e-02 9.48378622e-02 9.49079511e-02 9.49780750e-02 + 9.50482333e-02 9.51184256e-02 9.51886514e-02 9.52589103e-02 9.53292017e-02 + 9.53995254e-02 9.54698806e-02 9.55402671e-02 9.56106844e-02 9.56811320e-02 + 9.57516094e-02 9.58221162e-02 9.58926520e-02 9.59632163e-02 9.60338086e-02 + 9.61044286e-02 9.61750756e-02 9.62457494e-02 9.63164495e-02 9.63871754e-02 + 9.64579266e-02 9.65287028e-02 9.65995035e-02 9.66703283e-02 9.67411766e-02 + 9.68120482e-02 9.68829425e-02 9.69538592e-02 9.70247977e-02 9.70957577e-02 + 9.71667387e-02 9.72377403e-02 9.73087621e-02 9.73798037e-02 9.74508645e-02 + 9.75219443e-02 9.75930426e-02 9.76641589e-02 9.77352928e-02 9.78064440e-02 + 9.78776119e-02 9.79487963e-02 9.80199966e-02 9.80912125e-02 9.81624436e-02 + 9.82336894e-02 9.83049495e-02 9.83762235e-02 9.84475111e-02 9.85188118e-02 + 9.85901251e-02 9.86614508e-02 9.87327884e-02 9.88041375e-02 9.88754977e-02 + 9.89468687e-02 9.90182499e-02 9.90896410e-02 9.91610417e-02 9.92324515e-02 + 9.93038701e-02 9.93752970e-02 9.94467318e-02 9.95181743e-02 9.95896239e-02 + 9.96610804e-02 9.97325432e-02 9.98040122e-02 9.98754867e-02 9.99469666e-02 + 1.00018451e-01 1.00089941e-01 1.00161434e-01 1.00232931e-01 1.00304432e-01 + 1.00375936e-01 1.00447442e-01 1.00518951e-01 1.00590461e-01 1.00661973e-01 + 1.00733487e-01 1.00805001e-01 1.00876516e-01 1.00948030e-01 1.01019545e-01 + 1.01091059e-01 1.01162572e-01 1.01234084e-01 1.01305594e-01 1.01377102e-01 + 1.01448607e-01 1.01520110e-01 1.01591610e-01 1.01663106e-01 1.01734599e-01 + 1.01806088e-01 1.01877572e-01 1.01949051e-01 1.02020525e-01 1.02091994e-01 + 1.02163457e-01 1.02234914e-01 1.02306364e-01 1.02377807e-01 1.02449244e-01 + 1.02520672e-01 1.02592093e-01 1.02663506e-01 1.02734911e-01 1.02806306e-01 + 1.02877693e-01 1.02949070e-01 1.03020437e-01 1.03091794e-01 1.03163141e-01 + 1.03234477e-01 1.03305802e-01 1.03377115e-01 1.03448417e-01 1.03519707e-01 + 1.03590985e-01 1.03662250e-01 1.03733502e-01 1.03804741e-01 1.03875966e-01 + 1.03947178e-01 1.04018375e-01 1.04089558e-01 1.04160726e-01 1.04231879e-01 + 1.04303017e-01 1.04374139e-01 1.04445245e-01 1.04516335e-01 1.04587409e-01 + 1.04658465e-01 1.04729504e-01 1.04800527e-01 1.04871531e-01 1.04942517e-01 + 1.05013485e-01 1.05084435e-01 1.05155365e-01 1.05226277e-01 1.05297169e-01 + 1.05368041e-01 1.05438894e-01 1.05509726e-01 1.05580538e-01 1.05651329e-01 + 1.05722099e-01 1.05792847e-01 1.05863574e-01 1.05934279e-01 1.06004962e-01 + 1.06075622e-01 1.06146260e-01 1.06216875e-01 1.06287467e-01 1.06358035e-01 + 1.06428579e-01 1.06499100e-01 1.06569596e-01 1.06640067e-01 1.06710514e-01 + 1.06780936e-01 1.06851332e-01 1.06921703e-01 1.06992049e-01 1.07062368e-01 + 1.07132661e-01 1.07202927e-01 1.07273167e-01 1.07343379e-01 1.07413565e-01 + 1.07483722e-01 1.07553852e-01 1.07623955e-01 1.07694028e-01 1.07764074e-01 + 1.07834090e-01 1.07904078e-01 1.07974036e-01 1.08043966e-01 1.08113865e-01 + 1.08183735e-01 1.08253574e-01 1.08323383e-01 1.08393162e-01 1.08462910e-01 + 1.08532626e-01 1.08602312e-01 1.08671966e-01 1.08741588e-01 1.08811179e-01 + 1.08880737e-01 1.08950263e-01 1.09019757e-01 1.09089217e-01 1.09158645e-01 + 1.09228040e-01 1.09297401e-01 1.09366728e-01 1.09436022e-01 1.09505281e-01 + 1.09574507e-01 1.09643698e-01 1.09712854e-01 1.09781975e-01 1.09851061e-01 + 1.09920112e-01 1.09989128e-01 1.10058108e-01 1.10127052e-01 1.10195959e-01 + 1.10264831e-01 1.10333666e-01 1.10402465e-01 1.10471226e-01 1.10539951e-01 + 1.10608638e-01 1.10677288e-01 1.10745900e-01 1.10814475e-01 1.10883011e-01 + 1.10951510e-01 1.11019970e-01 1.11088391e-01 1.11156774e-01 1.11225117e-01 + 1.11293422e-01 1.11361687e-01 1.11429913e-01 1.11498100e-01 1.11566246e-01 + 1.11634353e-01 1.11702419e-01 1.11770445e-01 1.11838431e-01 1.11906376e-01 + 1.11974280e-01 1.12042143e-01 1.12109965e-01 1.12177745e-01 1.12245484e-01 + 1.12313182e-01 1.12380837e-01 1.12448451e-01 1.12516022e-01 1.12583551e-01 + 1.12651038e-01 1.12718482e-01 1.12785883e-01 1.12853241e-01 1.12920556e-01 + 1.12987828e-01 1.13055056e-01 1.13122241e-01 1.13189382e-01 1.13256480e-01 + 1.13323533e-01 1.13390542e-01 1.13457507e-01 1.13524427e-01 1.13591303e-01 + 1.13658134e-01 1.13724920e-01 1.13791661e-01 1.13858356e-01 1.13925007e-01 + 1.13991612e-01 1.14058171e-01 1.14124685e-01 1.14191153e-01 1.14257575e-01 + 1.14323950e-01 1.14390280e-01 1.14456562e-01 1.14522799e-01 1.14588988e-01 + 1.14655131e-01 1.14721227e-01 1.14787276e-01 1.14853278e-01 1.14919232e-01 + 1.14985139e-01 1.15050998e-01 1.15116810e-01 1.15182574e-01 1.15248290e-01 + 1.15313957e-01 1.15379577e-01 1.15445148e-01 1.15510671e-01 1.15576146e-01 + 1.15641571e-01 1.15706948e-01 1.15772276e-01 1.15837555e-01 1.15902785e-01 + 1.15967965e-01 1.16033097e-01 1.16098179e-01 1.16163211e-01 1.16228193e-01 + 1.16293126e-01 1.16358009e-01 1.16422842e-01 1.16487625e-01 1.16552357e-01 + 1.16617040e-01 1.16681672e-01 1.16746253e-01 1.16810784e-01 1.16875264e-01 + 1.16939693e-01 1.17004071e-01 1.17068398e-01 1.17132674e-01 1.17196899e-01 + 1.17261073e-01 1.17325195e-01 1.17389266e-01 1.17453285e-01 1.17517252e-01 + 1.17581168e-01 1.17645032e-01 1.17708843e-01 1.17772603e-01 1.17836311e-01 + 1.17899966e-01 1.17963569e-01 1.18027120e-01 1.18090618e-01 1.18154064e-01 + 1.18217457e-01 1.18280797e-01 1.18344084e-01 1.18407319e-01 1.18470500e-01 + 1.18533629e-01 1.18596704e-01 1.18659726e-01 1.18722695e-01 1.18785610e-01 + 1.18848472e-01 1.18911281e-01 1.18974035e-01 1.19036736e-01 1.19099384e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.65580254e-01 1.65563515e-01 1.65546741e-01 1.65529929e-01 1.65513082e-01 + 1.65496198e-01 1.65479277e-01 1.65462319e-01 1.65445324e-01 1.65428292e-01 + 1.65411223e-01 1.65394117e-01 1.65376974e-01 1.65359793e-01 1.65342574e-01 + 1.65325318e-01 1.65308025e-01 1.65290693e-01 1.65273323e-01 1.65255915e-01 + 1.65238469e-01 1.65220985e-01 1.65203462e-01 1.65185901e-01 1.65168301e-01 + 1.65150662e-01 1.65132985e-01 1.65115268e-01 1.65097513e-01 1.65079718e-01 + 1.65061884e-01 1.65044011e-01 1.65026098e-01 1.65008145e-01 1.64990153e-01 + 1.64972120e-01 1.64954048e-01 1.64935936e-01 1.64917783e-01 1.64899591e-01 + 1.64881357e-01 1.64863083e-01 1.64844769e-01 1.64826414e-01 1.64808017e-01 + 1.64789580e-01 1.64771102e-01 1.64752582e-01 1.64734021e-01 1.64715418e-01 + 1.64696774e-01 1.64678088e-01 1.64659360e-01 1.64640590e-01 1.64621778e-01 + 1.64602924e-01 1.64584027e-01 1.64565088e-01 1.64546107e-01 1.64527082e-01 + 1.64508015e-01 1.64488905e-01 1.64469751e-01 1.64450555e-01 1.64431315e-01 + 1.64412031e-01 1.64392704e-01 1.64373334e-01 1.64353919e-01 1.64334460e-01 + 1.64314958e-01 1.64295411e-01 1.64275819e-01 1.64256183e-01 1.64236503e-01 + 1.64216777e-01 1.64197007e-01 1.64177192e-01 1.64157331e-01 1.64137425e-01 + 1.64117474e-01 1.64097477e-01 1.64077435e-01 1.64057346e-01 1.64037212e-01 + 1.64017032e-01 1.63996805e-01 1.63976532e-01 1.63956212e-01 1.63935846e-01 + 1.63915433e-01 1.63894973e-01 1.63874465e-01 1.63853911e-01 1.63833309e-01 + 1.63812660e-01 1.63791963e-01 1.63771218e-01 1.63750426e-01 1.63729585e-01 + 1.63708696e-01 1.63687759e-01 1.63666773e-01 1.63645738e-01 1.63624655e-01 + 1.63603523e-01 1.63582341e-01 1.63561111e-01 1.63539831e-01 1.63518501e-01 + 1.63497122e-01 1.63475693e-01 1.63454214e-01 1.63432685e-01 1.63411106e-01 + 1.63389476e-01 1.63367795e-01 1.63346064e-01 1.63324282e-01 1.63302449e-01 + 1.63280565e-01 1.63258629e-01 1.63236642e-01 1.63214603e-01 1.63192512e-01 + 1.63170369e-01 1.63148174e-01 1.63125927e-01 1.63103628e-01 1.63081275e-01 + 1.63058870e-01 1.63036412e-01 1.63013901e-01 1.62991337e-01 1.62968719e-01 + 1.62946048e-01 1.62923323e-01 1.62900544e-01 1.62877710e-01 1.62854823e-01 + 1.62831881e-01 1.62808885e-01 1.62785834e-01 1.62762728e-01 1.62739567e-01 + 1.62716350e-01 1.62693078e-01 1.62669751e-01 1.62646368e-01 1.62622929e-01 + 1.62599433e-01 1.62575882e-01 1.62552274e-01 1.62528609e-01 1.62504888e-01 + 1.62481109e-01 1.62457274e-01 1.62433381e-01 1.62409431e-01 1.62385423e-01 + 1.62361357e-01 1.62337233e-01 1.62313050e-01 1.62288810e-01 1.62264510e-01 + 1.62240152e-01 1.62215735e-01 1.62191259e-01 1.62166724e-01 1.62142129e-01 + 1.62117474e-01 1.62092759e-01 1.62067985e-01 1.62043150e-01 1.62018255e-01 + 1.61993299e-01 1.61968282e-01 1.61943204e-01 1.61918065e-01 1.61892865e-01 + 1.61867603e-01 1.61842279e-01 1.61816893e-01 1.61791445e-01 1.61765935e-01 + 1.61740362e-01 1.61714726e-01 1.61689028e-01 1.61663266e-01 1.61637441e-01 + 1.61611552e-01 1.61585600e-01 1.61559583e-01 1.61533503e-01 1.61507358e-01 + 1.61481148e-01 1.61454874e-01 1.61428535e-01 1.61402130e-01 1.61375660e-01 + 1.61349125e-01 1.61322523e-01 1.61295856e-01 1.61269123e-01 1.61242323e-01 + 1.61215456e-01 1.61188522e-01 1.61161522e-01 1.61134454e-01 1.61107319e-01 + 1.61080115e-01 1.61052844e-01 1.61025505e-01 1.60998098e-01 1.60970621e-01 + 1.60943076e-01 1.60915462e-01 1.60887779e-01 1.60860026e-01 1.60832204e-01 + 1.60804311e-01 1.60776349e-01 1.60748316e-01 1.60720212e-01 1.60692038e-01 + 1.60663792e-01 1.60635475e-01 1.60607087e-01 1.60578627e-01 1.60550095e-01 + 1.60521491e-01 1.60492814e-01 1.60464065e-01 1.60435242e-01 1.60406347e-01 + 1.60377378e-01 1.60348335e-01 1.60319219e-01 1.60290028e-01 1.60260764e-01 + 1.60231424e-01 1.60202010e-01 1.60172520e-01 1.60142955e-01 1.60113315e-01 + 1.60083599e-01 1.60053807e-01 1.60023938e-01 1.59993993e-01 1.59963971e-01 + 1.59933872e-01 1.59903696e-01 1.59873442e-01 1.59843110e-01 1.59812700e-01 + 1.59782212e-01 1.59751645e-01 1.59720999e-01 1.59690274e-01 1.59659470e-01 + 1.59628586e-01 1.59597622e-01 1.59566578e-01 1.59535454e-01 1.59504249e-01 + 1.59472963e-01 1.59441595e-01 1.59410146e-01 1.59378616e-01 1.59347003e-01 + 1.59315308e-01 1.59283531e-01 1.59251670e-01 1.59219726e-01 1.59187699e-01 + 1.59155589e-01 1.59123394e-01 1.59091115e-01 1.59058751e-01 1.59026303e-01 + 1.58993770e-01 1.58961151e-01 1.58928446e-01 1.58895656e-01 1.58862779e-01 + 1.58829816e-01 1.58796766e-01 1.58763628e-01 1.58730404e-01 1.58697092e-01 + 1.58663691e-01 1.58630203e-01 1.58596625e-01 1.58562959e-01 1.58529204e-01 + 1.58495359e-01 1.58461425e-01 1.58427400e-01 1.58393285e-01 1.58359079e-01 + 1.58324782e-01 1.58290394e-01 1.58255915e-01 1.58221343e-01 1.58186679e-01 + 1.58151923e-01 1.58117073e-01 1.58082131e-01 1.58047095e-01 1.58011965e-01 + 1.57976741e-01 1.57941422e-01 1.57906009e-01 1.57870501e-01 1.57834897e-01 + 1.57799197e-01 1.57763402e-01 1.57727510e-01 1.57691521e-01 1.57655435e-01 + 1.57619252e-01 1.57582971e-01 1.57546592e-01 1.57510115e-01 1.57473538e-01 + 1.57436863e-01 1.57400088e-01 1.57363214e-01 1.57326239e-01 1.57289164e-01 + 1.57251989e-01 1.57214712e-01 1.57177333e-01 1.57139853e-01 1.57102271e-01 + 1.57064586e-01 1.57026798e-01 1.56988907e-01 1.56950912e-01 1.56912813e-01 + 1.56874610e-01 1.56836302e-01 1.56797890e-01 1.56759371e-01 1.56720748e-01 + 1.56682017e-01 1.56643181e-01 1.56604237e-01 1.56565187e-01 1.56526028e-01 + 1.56486762e-01 1.56447387e-01 1.56407903e-01 1.56368311e-01 1.56328609e-01 + 1.56288796e-01 1.56248874e-01 1.56208841e-01 1.56168697e-01 1.56128441e-01 + 1.56088074e-01 1.56047594e-01 1.56007002e-01 1.55966297e-01 1.55925478e-01 + 1.55884546e-01 1.55843499e-01 1.55802338e-01 1.55761062e-01 1.55719670e-01 + 1.55678163e-01 1.55636539e-01 1.55594799e-01 1.55552941e-01 1.55510966e-01 + 1.55468873e-01 1.55426662e-01 1.55384333e-01 1.55341884e-01 1.55299315e-01 + 1.55256627e-01 1.55213818e-01 1.55170888e-01 1.55127838e-01 1.55084665e-01 + 1.55041370e-01 1.54997953e-01 1.54954413e-01 1.54910749e-01 1.54866961e-01 + 1.54823050e-01 1.54779013e-01 1.54734851e-01 1.54690564e-01 1.54646150e-01 + 1.54601610e-01 1.54556943e-01 1.54512149e-01 1.54467226e-01 1.54422176e-01 + 1.54376996e-01 1.54331687e-01 1.54286249e-01 1.54240680e-01 1.54194981e-01 + 1.54149150e-01 1.54103188e-01 1.54057094e-01 1.54010867e-01 1.53964507e-01 + 1.53918014e-01 1.53871386e-01 1.53824625e-01 1.53777728e-01 1.53730696e-01 + 1.53683527e-01 1.53636223e-01 1.53588781e-01 1.53541202e-01 1.53493486e-01 + 1.53445630e-01 1.53397636e-01 1.53349503e-01 1.53301229e-01 1.53252815e-01 + 1.53204260e-01 1.53155564e-01 1.53106726e-01 1.53057745e-01 1.53008621e-01 + 1.52959354e-01 1.52909943e-01 1.52860387e-01 1.52810686e-01 1.52760840e-01 + 1.52710847e-01 1.52660708e-01 1.52610421e-01 1.52559987e-01 1.52509404e-01 + 1.52458673e-01 1.52407792e-01 1.52356762e-01 1.52305580e-01 1.52254248e-01 + 1.52202764e-01 1.52151129e-01 1.52099340e-01 1.52047398e-01 1.51995302e-01 + 1.51943052e-01 1.51890647e-01 1.51838087e-01 1.51785370e-01 1.51732497e-01 + 1.51679467e-01 1.51626279e-01 1.51572932e-01 1.51519426e-01 1.51465761e-01 + 1.51411936e-01 1.51357950e-01 1.51303802e-01 1.51249493e-01 1.51195021e-01 + 1.51140386e-01 1.51085587e-01 1.51030624e-01 1.50975496e-01 1.50920202e-01 + 1.50864742e-01 1.50809116e-01 1.50753322e-01 1.50697360e-01 1.50641229e-01 + 1.50584929e-01 1.50528459e-01 1.50471818e-01 1.50415007e-01 1.50358023e-01 + 1.50300867e-01 1.50243538e-01 1.50186035e-01 1.50128358e-01 1.50070506e-01 + 1.50012478e-01 1.49954274e-01 1.49895893e-01 1.49837334e-01 1.49778596e-01 + 1.49719680e-01 1.49660584e-01 1.49601308e-01 1.49541850e-01 1.49482211e-01 + 1.49422390e-01 1.49362385e-01 1.49302197e-01 1.49241824e-01 1.49181266e-01 + 1.49120523e-01 1.49059593e-01 1.48998475e-01 1.48937170e-01 1.48875676e-01 + 1.48813992e-01 1.48752119e-01 1.48690055e-01 1.48627799e-01 1.48565351e-01 + 1.48502710e-01 1.48439876e-01 1.48376847e-01 1.48313623e-01 1.48250203e-01 + 1.48186586e-01 1.48122773e-01 1.48058761e-01 1.47994550e-01 1.47930139e-01 + 1.47865528e-01 1.47800717e-01 1.47735703e-01 1.47670486e-01 1.47605066e-01 + 1.47539442e-01 1.47473613e-01 1.47407579e-01 1.47341337e-01 1.47274889e-01 + 1.47208232e-01 1.47141367e-01 1.47074292e-01 1.47007006e-01 1.46939509e-01 + 1.46871800e-01 1.46803878e-01 1.46735743e-01 1.46667393e-01 1.46598827e-01 + 1.46530046e-01 1.46461047e-01 1.46391831e-01 1.46322396e-01 1.46252742e-01 + 1.46182867e-01 1.46112772e-01 1.46042454e-01 1.45971913e-01 1.45901149e-01 + 1.45830160e-01 1.45758946e-01 1.45687506e-01 1.45615839e-01 1.45543943e-01 + 1.45471819e-01 1.45399465e-01 1.45326880e-01 1.45254064e-01 1.45181016e-01 + 1.45107734e-01 1.45034218e-01 1.44960467e-01 1.44886480e-01 1.44812256e-01 + 1.44737795e-01 1.44663094e-01 1.44588154e-01 1.44512974e-01 1.44437552e-01 + 1.44361888e-01 1.44285981e-01 1.44209829e-01 1.44133432e-01 1.44056789e-01 + 1.43979899e-01 1.43902761e-01 1.43825374e-01 1.43747737e-01 1.43669849e-01 + 1.43591710e-01 1.43513317e-01 1.43434671e-01 1.43355770e-01 1.43276613e-01 + 1.43197200e-01 1.43117528e-01 1.43037599e-01 1.42957409e-01 1.42876959e-01 + 1.42796247e-01 1.42715272e-01 1.42634034e-01 1.42552530e-01 1.42470761e-01 + 1.42388726e-01 1.42306422e-01 1.42223850e-01 1.42141007e-01 1.42057894e-01 + 1.41974509e-01 1.41890851e-01 1.41806919e-01 1.41722711e-01 1.41638228e-01 + 1.41553467e-01 1.41468428e-01 1.41383109e-01 1.41297511e-01 1.41211630e-01 + 1.41125467e-01 1.41039020e-01 1.40952288e-01 1.40865271e-01 1.40777966e-01 + 1.40690373e-01 1.40602491e-01 1.40514319e-01 1.40425855e-01 1.40337099e-01 + 1.40248048e-01 1.40158703e-01 1.40069062e-01 1.39979124e-01 1.39888888e-01 + 1.39798352e-01 1.39707515e-01 1.39616377e-01 1.39524936e-01 1.39433191e-01 + 1.39341140e-01 1.39248784e-01 1.39156119e-01 1.39063146e-01 1.38969862e-01 + 1.38876268e-01 1.38782361e-01 1.38688141e-01 1.38593606e-01 1.38498755e-01 + 1.38403586e-01 1.38308099e-01 1.38212293e-01 1.38116166e-01 1.38019716e-01 + 1.37922943e-01 1.37825846e-01 1.37728423e-01 1.37630672e-01 1.37532594e-01 + 1.37434185e-01 1.37335446e-01 1.37236375e-01 1.37136970e-01 1.37037230e-01 + 1.36937155e-01 1.36836742e-01 1.36735991e-01 1.36634900e-01 1.36533467e-01 + 1.36431692e-01 1.36329574e-01 1.36227110e-01 1.36124300e-01 1.36021142e-01 + 1.35917635e-01 1.35813778e-01 1.35709568e-01 1.35605006e-01 1.35500089e-01 + 1.35394817e-01 1.35289187e-01 1.35183199e-01 1.35076851e-01 1.34970142e-01 + 1.34863070e-01 1.34755634e-01 1.34647833e-01 1.34539665e-01 1.34431128e-01 + 1.34322223e-01 1.34212946e-01 1.34103297e-01 1.33993274e-01 1.33882876e-01 + 1.33772101e-01 1.33660948e-01 1.33549416e-01 1.33437503e-01 1.33325207e-01 + 1.33212528e-01 1.33099463e-01 1.32986012e-01 1.32872172e-01 1.32757943e-01 + 1.32643323e-01 1.32528310e-01 1.32412904e-01 1.32297101e-01 1.32180902e-01 + 1.32064305e-01 1.31947307e-01 1.31829908e-01 1.31712106e-01 1.31593899e-01 + 1.31475287e-01 1.31356267e-01 1.31236838e-01 1.31116998e-01 1.30996746e-01 + 1.30876081e-01 1.30755001e-01 1.30633504e-01 1.30511588e-01 1.30389253e-01 + 1.30266497e-01 1.30143318e-01 1.30019714e-01 1.29895684e-01 1.29771227e-01 + 1.29646341e-01 1.29521024e-01 1.29395274e-01 1.29269091e-01 1.29142472e-01 + 1.29015417e-01 1.28887922e-01 1.28759987e-01 1.28631611e-01 1.28502791e-01 + 1.28373525e-01 1.28243813e-01 1.28113653e-01 1.27983043e-01 1.27851981e-01 + 1.27720466e-01 1.27588496e-01 1.27456070e-01 1.27323186e-01 1.27189841e-01 + 1.27056036e-01 1.26921767e-01 1.26787033e-01 1.26651833e-01 1.26516166e-01 + 1.26380028e-01 1.26243419e-01 1.26106337e-01 1.25968780e-01 1.25830747e-01 + 1.25692235e-01 1.25553244e-01 1.25413771e-01 1.25273815e-01 1.25133375e-01 + 1.24992448e-01 1.24851032e-01 1.24709127e-01 1.24566730e-01 1.24423839e-01 + 1.24280454e-01 1.24136571e-01 1.23992190e-01 1.23847309e-01 1.23701926e-01 + 1.23556040e-01 1.23409647e-01 1.23262748e-01 1.23115340e-01 1.22967422e-01 + 1.22818991e-01 1.22670046e-01 1.22520585e-01 1.22370607e-01 1.22220110e-01 + 1.22069091e-01 1.21917550e-01 1.21765484e-01 1.21612892e-01 1.21459773e-01 + 1.21306123e-01 1.21151942e-01 1.20997228e-01 1.20841979e-01 1.20686193e-01 + 1.20529869e-01 1.20373004e-01 1.20215598e-01 1.20057648e-01 1.19899152e-01 + 1.19740109e-01 1.19580518e-01 1.19420375e-01 1.19259680e-01 1.19098431e-01 + 1.18936626e-01 1.18774263e-01 1.18611341e-01 1.18447857e-01 1.18283810e-01 + 1.18119199e-01 1.17954021e-01 1.17788276e-01 1.17621960e-01 1.17455072e-01 + 1.17287611e-01 1.17119575e-01 1.16950961e-01 1.16781770e-01 1.16611997e-01 + 1.16441643e-01 1.16270705e-01 1.16099181e-01 1.15927070e-01 1.15754370e-01 + 1.15581079e-01 1.15407195e-01 1.15232718e-01 1.15057644e-01 1.14881973e-01 + 1.14705703e-01 1.14528831e-01 1.14351357e-01 1.14173279e-01 1.13994594e-01 + 1.13815302e-01 1.13635400e-01 1.13454887e-01 1.13273762e-01 1.13092022e-01 + 1.12909666e-01 1.12726692e-01 1.12543099e-01 1.12358884e-01 1.12174047e-01 + 1.11988586e-01 1.11802499e-01 1.11615785e-01 1.11428441e-01 1.11240467e-01 + 1.11051860e-01 1.10862619e-01 1.10672743e-01 1.10482230e-01 1.10291079e-01 + 1.10099287e-01 1.09906853e-01 1.09713777e-01 1.09520055e-01 1.09325688e-01 + 1.09130672e-01 1.08935008e-01 1.08738692e-01 1.08541725e-01 1.08344104e-01 + 1.08145827e-01 1.07946894e-01 1.07747304e-01 1.07547053e-01 1.07346142e-01 + 1.07144569e-01 1.06942333e-01 1.06739431e-01 1.06535863e-01 1.06331627e-01 + 1.06126723e-01 1.05921148e-01 1.05714902e-01 1.05507982e-01 1.05300389e-01 + 1.05092120e-01 1.04883175e-01 1.04673552e-01 1.04463250e-01 1.04252268e-01 + 1.04040604e-01 1.03828258e-01 1.03615228e-01 1.03401513e-01 1.03187113e-01 + 1.02972026e-01 1.02756250e-01 1.02539786e-01 1.02322631e-01 1.02104785e-01 + 1.01886248e-01 1.01667017e-01 1.01447092e-01 1.01226473e-01 1.01005158e-01 + 1.00783146e-01 1.00560436e-01 1.00337028e-01 1.00112922e-01 9.98881150e-02 + 9.96626076e-02 9.94363989e-02 9.92094881e-02 9.89818746e-02 9.87535577e-02 + 9.85245367e-02 9.82948112e-02 9.80643804e-02 9.78332440e-02 9.76014013e-02 + 9.73688518e-02 9.71355952e-02 9.69016310e-02 9.66669588e-02 9.64315783e-02 + 9.61954891e-02 9.59586908e-02 9.57211834e-02 9.54829664e-02 9.52440398e-02 + 9.50044033e-02 9.47640568e-02 9.45230003e-02 9.42812335e-02 9.40387567e-02 + 9.37955696e-02 9.35516725e-02 9.33070653e-02 9.30617482e-02 9.28157214e-02 + 9.25689850e-02 9.23215393e-02 9.20733846e-02 9.18245212e-02 9.15749495e-02 + 9.13246699e-02 9.10736827e-02 9.08219886e-02 9.05695880e-02 9.03164816e-02 + 9.00626699e-02 8.98081536e-02 8.95529334e-02 8.92970102e-02 8.90403847e-02 + 8.87830577e-02 8.85250303e-02 8.82663032e-02 8.80068776e-02 8.77467546e-02 + 8.74859351e-02 8.72244204e-02 8.69622117e-02 8.66993103e-02 8.64357174e-02 + 8.61714345e-02 8.59064630e-02 8.56408044e-02 8.53744602e-02 8.51074320e-02 + 8.48397215e-02 8.45713304e-02 8.43022605e-02 8.40325136e-02 8.37620916e-02 + 8.34909965e-02 8.32192302e-02 8.29467950e-02 8.26736929e-02 8.23999262e-02 + 8.21254970e-02 8.18504079e-02 8.15746611e-02 8.12982592e-02 8.10212047e-02 + 8.07435002e-02 8.04651484e-02 8.01861521e-02 7.99065141e-02 7.96262372e-02 + 7.93453246e-02 7.90637791e-02 7.87816039e-02 7.84988023e-02 7.82153774e-02 + 7.79313327e-02 7.76466715e-02 7.73613974e-02 7.70755139e-02 7.67890246e-02 + 7.65019334e-02 7.62142440e-02 7.59259604e-02 7.56370865e-02 7.53476263e-02 + 7.50575841e-02 7.47669641e-02 7.44757706e-02 7.41840079e-02 7.38916807e-02 + 7.35987934e-02 7.33053507e-02 7.30113575e-02 7.27168185e-02 7.24217387e-02 + 7.21261231e-02 7.18299768e-02 7.15333051e-02 7.12361133e-02 7.09384067e-02 + 7.06401909e-02 7.03414715e-02 7.00422541e-02 6.97425446e-02 6.94423488e-02 + 6.91416728e-02 6.88405225e-02 6.85389043e-02 6.82368244e-02 6.79342891e-02 + 6.76313050e-02 6.73278787e-02 6.70240169e-02 6.67197264e-02 6.64150140e-02 + 6.61098869e-02 6.58043520e-02 6.54984168e-02 6.51920884e-02 6.48853744e-02 + 6.45782823e-02 6.42708198e-02 6.39629946e-02 6.36548146e-02 6.33462879e-02 + 6.30374225e-02 6.27282267e-02 6.24187088e-02 6.21088773e-02 6.17987406e-02 + 6.14883076e-02 6.11775870e-02 6.08665877e-02 6.05553188e-02 6.02437893e-02 + 5.99320086e-02 5.96199860e-02 5.93077311e-02 5.89952534e-02 5.86825627e-02 + 5.83696689e-02 5.80565818e-02 5.77433118e-02 5.74298688e-02 5.71162634e-02 + 5.68025058e-02 5.64886069e-02 5.61745771e-02 5.58604274e-02 5.55461687e-02 + 5.52318121e-02 5.49173687e-02 5.46028499e-02 5.42882672e-02 5.39736321e-02 + 5.36589562e-02 5.33442514e-02 5.30295296e-02 5.27148029e-02 5.24000835e-02 + 5.20853836e-02 5.17707158e-02 5.14560924e-02 5.11415263e-02 5.08270302e-02 + 5.05126170e-02 5.01982998e-02 4.98840918e-02 4.95700061e-02 4.92560564e-02 + 4.89422560e-02 4.86286186e-02 4.83151580e-02 4.80018882e-02 4.76888231e-02 + 4.73759769e-02 4.70633638e-02 4.67509982e-02 4.64388946e-02 4.61270676e-02 + 4.58155320e-02 4.55043026e-02 4.51933944e-02 4.48828225e-02 4.45726020e-02 + 4.42627483e-02 4.39532767e-02 4.36442030e-02 4.33355426e-02 4.30273114e-02 + 4.27195253e-02 4.24122002e-02 4.21053521e-02 4.17989974e-02 4.14931524e-02 + 4.11878333e-02 4.08830568e-02 4.05788395e-02 4.02751981e-02 3.99721494e-02 + 3.96697104e-02 3.93678979e-02 3.90667293e-02 3.87662217e-02 3.84663923e-02 + 3.81672586e-02 3.78688381e-02 3.75711484e-02 3.72742070e-02 3.69780319e-02 + 3.66826407e-02 3.63880515e-02 3.60942822e-02 3.58013509e-02 3.55092758e-02 + 3.52180750e-02 3.49277670e-02 3.46383700e-02 3.43499026e-02 3.40623832e-02 + 3.37758304e-02 3.34902629e-02 3.32056994e-02 3.29221586e-02 3.26396593e-02 + 3.23582205e-02 3.20778611e-02 3.17986000e-02 3.15204562e-02 3.12434489e-02 + 3.09675972e-02 3.06929202e-02 3.04194370e-02 3.01471670e-02 2.98761294e-02 + 2.96063435e-02 2.93378286e-02 2.90706040e-02 2.88046891e-02 2.85401033e-02 + 2.82768660e-02 2.80149966e-02 2.77545145e-02 2.74954392e-02 2.72377901e-02 + 2.69815866e-02 2.67268481e-02 2.64735941e-02 2.62218441e-02 2.59716174e-02 + 2.57229334e-02 2.54758115e-02 2.52302711e-02 2.49863315e-02 2.47440120e-02 + 2.45033320e-02 2.42643105e-02 2.40269669e-02 2.37913204e-02 2.35573900e-02 + 2.33251949e-02 2.30947540e-02 2.28660864e-02 2.26392110e-02 2.24141466e-02 + 2.21909120e-02 2.19695260e-02 2.17500072e-02 2.15323742e-02 2.13166455e-02 + 2.11028396e-02 2.08909747e-02 2.06810691e-02 2.04731411e-02 2.02672086e-02 + 2.00632896e-02 1.98614019e-02 1.96615634e-02 1.94637917e-02 1.92681043e-02 + 1.90745186e-02 1.88830519e-02 1.86937213e-02 1.85065440e-02 1.83215368e-02 + 1.81387165e-02 1.79580998e-02 1.77797030e-02 1.76035426e-02 1.74296348e-02 + 1.72579956e-02 1.70886409e-02 1.69215864e-02 1.67568478e-02 1.65944402e-02 + 1.64343791e-02 1.62766795e-02 1.61213562e-02 1.59684240e-02 1.58178973e-02 + 1.56697904e-02 1.55241176e-02 1.53808927e-02 1.52401295e-02 1.51018416e-02 + 1.49660422e-02 1.48327446e-02 1.47019616e-02 1.45737059e-02 1.44479901e-02 + 1.43248264e-02 1.42042269e-02 1.40862035e-02 1.39707676e-02 1.38579308e-02 + 1.37477041e-02 1.36400985e-02 1.35351246e-02 1.34327929e-02 1.33331135e-02 + 1.32360964e-02 1.31417514e-02 1.30500877e-02 1.29611147e-02 1.28748412e-02 + 1.27912760e-02 1.27104274e-02 1.26323037e-02 1.25569127e-02 1.24842620e-02 + 1.24143590e-02 1.23472109e-02 1.22828243e-02 1.22212060e-02 1.21623621e-02 + 1.21062986e-02 1.20530213e-02 1.20025356e-02 1.19548467e-02 1.19099595e-02 + 1.18678785e-02 1.18286081e-02 1.17921522e-02 1.17585148e-02 1.17276991e-02 + 1.16997084e-02 1.16745455e-02 1.16522130e-02 1.16327133e-02 1.16160484e-02 + 1.16022198e-02 1.15912292e-02 1.15830776e-02 1.15777658e-02 1.15752944e-02 + 1.15756637e-02 1.15788736e-02 1.15849238e-02 1.15938137e-02 1.16055423e-02 + 1.16201084e-02 1.16375106e-02 1.16577471e-02 1.16808156e-02 1.17067140e-02 + 1.17354395e-02 1.17669892e-02 1.18013598e-02 1.18385478e-02 1.18785493e-02 + 1.19213604e-02 1.19669765e-02 1.20153931e-02 1.20666051e-02 1.21206073e-02 + 1.21773942e-02 1.22369601e-02 1.22992988e-02 1.23644040e-02 1.24322691e-02 + 1.25028871e-02 1.25762510e-02 1.26523533e-02 1.27311863e-02 1.28127420e-02 + 1.28970121e-02 1.29839883e-02 1.30736618e-02 1.31660235e-02 1.32610642e-02 + 1.33587744e-02 1.34591444e-02 1.35621641e-02 1.36678232e-02 1.37761113e-02 + 1.38870177e-02 1.40005314e-02 1.41166411e-02 1.42353355e-02 1.43566028e-02 + 1.44804312e-02 1.46068085e-02 1.47357225e-02 1.48671606e-02 1.50011099e-02 + 1.51375576e-02 1.52764904e-02 1.54178949e-02 1.55617576e-02 1.57080646e-02 + 1.58568020e-02 1.60079555e-02 1.61615108e-02 1.63174534e-02 1.64757685e-02 + 1.66364411e-02 1.67994562e-02 1.69647985e-02 1.71324525e-02 1.73024027e-02 + 1.74746333e-02 1.76491283e-02 1.78258717e-02 1.80048472e-02 1.81860385e-02 + 1.83694290e-02 1.85550020e-02 1.87427408e-02 1.89326284e-02 1.91246477e-02 + 1.93187815e-02 1.95150125e-02 1.97133233e-02 1.99136963e-02 2.01161138e-02 + 2.03205580e-02 2.05270111e-02 2.07354551e-02 2.09458718e-02 2.11582431e-02 + 2.13725507e-02 2.15887763e-02 2.18069014e-02 2.20269075e-02 2.22487759e-02 + 2.24724880e-02 2.26980251e-02 2.29253683e-02 2.31544988e-02 2.33853976e-02 + 2.36180458e-02 2.38524242e-02 2.40885138e-02 2.43262955e-02 2.45657500e-02 + 2.48068582e-02 2.50496007e-02 2.52939584e-02 2.55399119e-02 2.57874418e-02 + 2.60365287e-02 2.62871534e-02 2.65392963e-02 2.67929381e-02 2.70480593e-02 + 2.73046406e-02 2.75626624e-02 2.78221053e-02 2.80829500e-02 2.83451769e-02 + 2.86087667e-02 2.88736999e-02 2.91399572e-02 2.94075191e-02 2.96763664e-02 + 2.99464796e-02 3.02178395e-02 3.04904267e-02 3.07642221e-02 3.10392064e-02 + 3.13153605e-02 3.15926651e-02 3.18711011e-02 3.21506496e-02 3.24312916e-02 + 3.27130079e-02 3.29957798e-02 3.32795883e-02 3.35644146e-02 3.38502401e-02 + 3.41370460e-02 3.44248137e-02 3.47135246e-02 3.50031602e-02 3.52937021e-02 + 3.55851319e-02 3.58774314e-02 3.61705823e-02 3.64645665e-02 3.67593660e-02 + 3.70549627e-02 3.73513388e-02 3.76484764e-02 3.79463579e-02 3.82449655e-02 + 3.85442817e-02 3.88442891e-02 3.91449703e-02 3.94463079e-02 3.97482849e-02 + 4.00508841e-02 4.03540886e-02 4.06578813e-02 4.09622456e-02 4.12671648e-02 + 4.15726221e-02 4.18786013e-02 4.21850858e-02 4.24920594e-02 4.27995060e-02 + 4.31074094e-02 4.34157537e-02 4.37245230e-02 4.40337017e-02 4.43432741e-02 + 4.46532246e-02 4.49635380e-02 4.52741988e-02 4.55851920e-02 4.58965024e-02 + 4.62081152e-02 4.65200155e-02 4.68321886e-02 4.71446199e-02 4.74572950e-02 + 4.77701996e-02 4.80833192e-02 4.83966400e-02 4.87101479e-02 4.90238289e-02 + 4.93376695e-02 4.96516559e-02 4.99657746e-02 5.02800123e-02 5.05943557e-02 + 5.09087917e-02 5.12233073e-02 5.15378895e-02 5.18525256e-02 5.21672030e-02 + 5.24819092e-02 5.27966317e-02 5.31113583e-02 5.34260768e-02 5.37407752e-02 + 5.40554416e-02 5.43700642e-02 5.46846314e-02 5.49991317e-02 5.53135536e-02 + 5.56278858e-02 5.59421172e-02 5.62562368e-02 5.65702336e-02 5.68840968e-02 + 5.71978158e-02 5.75113800e-02 5.78247790e-02 5.81380025e-02 5.84510402e-02 + 5.87638822e-02 5.90765185e-02 5.93889392e-02 5.97011346e-02 6.00130952e-02 + 6.03248115e-02 6.06362741e-02 6.09474738e-02 6.12584015e-02 6.15690482e-02 + 6.18794050e-02 6.21894631e-02 6.24992140e-02 6.28086489e-02 6.31177596e-02 + 6.34265377e-02 6.37349751e-02 6.40430636e-02 6.43507952e-02 6.46581622e-02 + 6.49651567e-02 6.52717712e-02 6.55779981e-02 6.58838299e-02 6.61892594e-02 + 6.64942794e-02 6.67988828e-02 6.71030625e-02 6.74068117e-02 6.77101237e-02 + 6.80129917e-02 6.83154092e-02 6.86173697e-02 6.89188669e-02 6.92198944e-02 + 6.95204462e-02 6.98205161e-02 7.01200982e-02 7.04191867e-02 7.07177757e-02 + 7.10158596e-02 7.13134329e-02 7.16104900e-02 7.19070256e-02 7.22030344e-02 + 7.24985112e-02 7.27934509e-02 7.30878484e-02 7.33816990e-02 7.36749977e-02 + 7.39677398e-02 7.42599207e-02 7.45515358e-02 7.48425807e-02 7.51330509e-02 + 7.54229421e-02 7.57122502e-02 7.60009711e-02 7.62891006e-02 7.65766348e-02 + 7.68635699e-02 7.71499020e-02 7.74356274e-02 7.77207425e-02 7.80052438e-02 + 7.82891277e-02 7.85723908e-02 7.88550299e-02 7.91370416e-02 7.94184229e-02 + 7.96991705e-02 7.99792815e-02 8.02587530e-02 8.05375820e-02 8.08157657e-02 + 8.10933015e-02 8.13701866e-02 8.16464184e-02 8.19219944e-02 8.21969122e-02 + 8.24711693e-02 8.27447635e-02 8.30176924e-02 8.32899539e-02 8.35615458e-02 + 8.38324661e-02 8.41027128e-02 8.43722839e-02 8.46411775e-02 8.49093918e-02 + 8.51769250e-02 8.54437756e-02 8.57099417e-02 8.59754218e-02 8.62402144e-02 + 8.65043180e-02 8.67677312e-02 8.70304527e-02 8.72924810e-02 8.75538151e-02 + 8.78144536e-02 8.80743954e-02 8.83336395e-02 8.85921847e-02 8.88500302e-02 + 8.91071748e-02 8.93636178e-02 8.96193583e-02 8.98743956e-02 9.01287287e-02 + 9.03823571e-02 9.06352801e-02 9.08874971e-02 9.11390074e-02 9.13898107e-02 + 9.16399063e-02 9.18892939e-02 9.21379731e-02 9.23859434e-02 9.26332047e-02 + 9.28797566e-02 9.31255989e-02 9.33707315e-02 9.36151540e-02 9.38588666e-02 + 9.41018690e-02 9.43441612e-02 9.45857433e-02 9.48266152e-02 9.50667771e-02 + 9.53062290e-02 9.55449711e-02 9.57830036e-02 9.60203266e-02 9.62569405e-02 + 9.64928454e-02 9.67280417e-02 9.69625298e-02 9.71963100e-02 9.74293827e-02 + 9.76617483e-02 9.78934074e-02 9.81243603e-02 9.83546076e-02 9.85841499e-02 + 9.88129878e-02 9.90411218e-02 9.92685525e-02 9.94952807e-02 9.97213070e-02 + 9.99466321e-02 1.00171257e-01 1.00395182e-01 1.00618408e-01 1.00840936e-01 + 1.01062766e-01 1.01283901e-01 1.01504340e-01 1.01724084e-01 1.01943134e-01 + 1.02161492e-01 1.02379158e-01 1.02596133e-01 1.02812418e-01 1.03028014e-01 + 1.03242923e-01 1.03457145e-01 1.03670682e-01 1.03883534e-01 1.04095702e-01 + 1.04307189e-01 1.04517994e-01 1.04728119e-01 1.04937566e-01 1.05146335e-01 + 1.05354428e-01 1.05561846e-01 1.05768590e-01 1.05974662e-01 1.06180062e-01 + 1.06384793e-01 1.06588855e-01 1.06792249e-01 1.06994978e-01 1.07197042e-01 + 1.07398443e-01 1.07599182e-01 1.07799261e-01 1.07998680e-01 1.08197442e-01 + 1.08395548e-01 1.08592999e-01 1.08789797e-01 1.08985943e-01 1.09181439e-01 + 1.09376286e-01 1.09570485e-01 1.09764039e-01 1.09956948e-01 1.10149214e-01 + 1.10340840e-01 1.10531825e-01 1.10722172e-01 1.10911883e-01 1.11100959e-01 + 1.11289401e-01 1.11477211e-01 1.11664391e-01 1.11850942e-01 1.12036866e-01 + 1.12222165e-01 1.12406840e-01 1.12590892e-01 1.12774325e-01 1.12957138e-01 + 1.13139333e-01 1.13320913e-01 1.13501880e-01 1.13682233e-01 1.13861976e-01 + 1.14041111e-01 1.14219637e-01 1.14397559e-01 1.14574876e-01 1.14751591e-01 + 1.14927705e-01 1.15103221e-01 1.15278139e-01 1.15452462e-01 1.15626191e-01 + 1.15799328e-01 1.15971875e-01 1.16143834e-01 1.16315205e-01 1.16485991e-01 + 1.16656194e-01 1.16825815e-01 1.16994856e-01 1.17163320e-01 1.17331206e-01 + 1.17498518e-01 1.17665257e-01 1.17831424e-01 1.17997022e-01 1.18162053e-01 + 1.18326517e-01 1.18490417e-01 1.18653754e-01 1.18816531e-01 1.18978749e-01 + 1.19140409e-01 1.19301514e-01 1.19462065e-01 1.19622064e-01 1.19781513e-01 + 1.19940414e-01 1.20098767e-01 1.20256576e-01 1.20413841e-01 1.20570565e-01 + 1.20726749e-01 1.20882395e-01 1.21037505e-01 1.21192080e-01 1.21346123e-01 + 1.21499635e-01 1.21652617e-01 1.21805072e-01 1.21957001e-01 1.22108406e-01 + 1.22259289e-01 1.22409651e-01 1.22559495e-01 1.22708821e-01 1.22857632e-01 + 1.23005930e-01 1.23153715e-01 1.23300991e-01 1.23447758e-01 1.23594019e-01 + 1.23739774e-01 1.23885027e-01 1.24029777e-01 1.24174028e-01 1.24317781e-01 + 1.24461038e-01 1.24603800e-01 1.24746069e-01 1.24887847e-01 1.25029136e-01 + 1.25169936e-01 1.25310251e-01 1.25450081e-01 1.25589428e-01 1.25728294e-01 + 1.25866681e-01 1.26004590e-01 1.26142024e-01 1.26278983e-01 1.26415469e-01 + 1.26551484e-01 1.26687030e-01 1.26822109e-01 1.26956721e-01 1.27090870e-01 + 1.27224555e-01 1.27357780e-01 1.27490545e-01 1.27622852e-01 1.27754704e-01 + 1.27886101e-01 1.28017045e-01 1.28147538e-01 1.28277582e-01 1.28407177e-01 + 1.28536327e-01 1.28665031e-01 1.28793293e-01 1.28921113e-01 1.29048493e-01 + 1.29175435e-01 1.29301941e-01 1.29428011e-01 1.29553648e-01 1.29678853e-01 + 1.29803627e-01 1.29927973e-01 1.30051892e-01 1.30175385e-01 1.30298454e-01 + 1.30421101e-01 1.30543327e-01 1.30665133e-01 1.30786522e-01 1.30907494e-01 + 1.31028051e-01 1.31148196e-01 1.31267929e-01 1.31387251e-01 1.31506165e-01 + 1.31624672e-01 1.31742773e-01 1.31860470e-01 1.31977765e-01 1.32094658e-01 + 1.32211152e-01 1.32327248e-01 1.32442947e-01 1.32558252e-01 1.32673162e-01 + 1.32787680e-01 1.32901808e-01 1.33015546e-01 1.33128897e-01 1.33241861e-01 + 1.33354441e-01 1.33466637e-01 1.33578451e-01 1.33689884e-01 1.33800939e-01 + 1.33911615e-01 1.34021916e-01 1.34131841e-01 1.34241394e-01 1.34350574e-01 + 1.34459383e-01 1.34567824e-01 1.34675896e-01 1.34783602e-01 1.34890944e-01 + 1.34997921e-01 1.35104536e-01 1.35210791e-01 1.35316685e-01 1.35422222e-01 + 1.35527402e-01 1.35632226e-01 1.35736697e-01 1.35840814e-01 1.35944580e-01 + 1.36047997e-01 1.36151064e-01 1.36253784e-01 1.36356158e-01 1.36458187e-01 + 1.36559873e-01 1.36661216e-01 1.36762219e-01 1.36862882e-01 1.36963207e-01 + 1.37063195e-01 1.37162847e-01 1.37262165e-01 1.37361150e-01 1.37459803e-01 + 1.37558126e-01 1.37656119e-01 1.37753784e-01 1.37851123e-01 1.37948136e-01 + 1.38044824e-01 1.38141190e-01 1.38237233e-01 1.38332957e-01 1.38428361e-01 + 1.38523446e-01 1.38618215e-01 1.38712668e-01 1.38806807e-01 1.38900633e-01 + 1.38994146e-01 1.39087349e-01 1.39180241e-01 1.39272826e-01 1.39365103e-01 + 1.39457074e-01 1.39548740e-01 1.39640102e-01 1.39731162e-01 1.39821920e-01 + 1.39912378e-01 1.40002537e-01 1.40092398e-01 1.40181961e-01 1.40271230e-01 + 1.40360203e-01 1.40448884e-01 1.40537272e-01 1.40625368e-01 1.40713175e-01 + 1.40800693e-01 1.40887923e-01 1.40974866e-01 1.41061523e-01 1.41147896e-01 + 1.41233986e-01 1.41319793e-01 1.41405319e-01 1.41490565e-01 1.41575532e-01 + 1.41660220e-01 1.41744632e-01 1.41828768e-01 1.41912628e-01 1.41996216e-01 + 1.42079530e-01 1.42162572e-01 1.42245344e-01 1.42327847e-01 1.42410081e-01 + 1.42492047e-01 1.42573747e-01 1.42655181e-01 1.42736351e-01 1.42817257e-01 + 1.42897901e-01 1.42978283e-01 1.43058405e-01 1.43138268e-01 1.43217872e-01 + 1.43297218e-01 1.43376309e-01 1.43455143e-01 1.43533723e-01 1.43612050e-01 + 1.43690124e-01 1.43767947e-01 1.43845519e-01 1.43922841e-01 1.43999914e-01 + 1.44076740e-01 1.44153319e-01 1.44229652e-01 1.44305740e-01 1.44381584e-01 + 1.44457185e-01 1.44532544e-01 1.44607662e-01 1.44682539e-01 1.44757177e-01 + 1.44831577e-01 1.44905739e-01 1.44979665e-01 1.45053355e-01 1.45126809e-01 + 1.45200031e-01 1.45273019e-01 1.45345774e-01 1.45418299e-01 1.45490593e-01 + 1.45562658e-01 1.45634494e-01 1.45706102e-01 1.45777484e-01 1.45848639e-01 + 1.45919569e-01 1.45990275e-01 1.46060758e-01 1.46131018e-01 1.46201056e-01 + 1.46270873e-01 1.46340470e-01 1.46409848e-01 1.46479008e-01 1.46547950e-01 + 1.46616675e-01 1.46685184e-01 1.46753479e-01 1.46821558e-01 1.46889425e-01 + 1.46957079e-01 1.47024520e-01 1.47091751e-01 1.47158772e-01 1.47225583e-01 + 1.47292185e-01 1.47358580e-01 1.47424768e-01 1.47490749e-01 1.47556524e-01 + 1.47622095e-01 1.47687462e-01 1.47752626e-01 1.47817587e-01 1.47882347e-01 + 1.38518338e-01 1.38476565e-01 1.38434740e-01 1.38392864e-01 1.38350938e-01 + 1.38308960e-01 1.38266931e-01 1.38224851e-01 1.38182720e-01 1.38140538e-01 + 1.38098305e-01 1.38056020e-01 1.38013684e-01 1.37971296e-01 1.37928857e-01 + 1.37886366e-01 1.37843824e-01 1.37801230e-01 1.37758585e-01 1.37715888e-01 + 1.37673139e-01 1.37630338e-01 1.37587486e-01 1.37544581e-01 1.37501625e-01 + 1.37458617e-01 1.37415556e-01 1.37372444e-01 1.37329279e-01 1.37286062e-01 + 1.37242794e-01 1.37199472e-01 1.37156099e-01 1.37112673e-01 1.37069195e-01 + 1.37025664e-01 1.36982081e-01 1.36938445e-01 1.36894757e-01 1.36851016e-01 + 1.36807222e-01 1.36763376e-01 1.36719477e-01 1.36675525e-01 1.36631520e-01 + 1.36587463e-01 1.36543352e-01 1.36499189e-01 1.36454972e-01 1.36410702e-01 + 1.36366380e-01 1.36322004e-01 1.36277574e-01 1.36233092e-01 1.36188556e-01 + 1.36143967e-01 1.36099325e-01 1.36054629e-01 1.36009880e-01 1.35965077e-01 + 1.35920221e-01 1.35875311e-01 1.35830347e-01 1.35785330e-01 1.35740259e-01 + 1.35695134e-01 1.35649956e-01 1.35604723e-01 1.35559437e-01 1.35514096e-01 + 1.35468702e-01 1.35423254e-01 1.35377752e-01 1.35332195e-01 1.35286585e-01 + 1.35240920e-01 1.35195201e-01 1.35149428e-01 1.35103600e-01 1.35057718e-01 + 1.35011782e-01 1.34965791e-01 1.34919746e-01 1.34873646e-01 1.34827492e-01 + 1.34781283e-01 1.34735020e-01 1.34688702e-01 1.34642329e-01 1.34595901e-01 + 1.34549419e-01 1.34502882e-01 1.34456290e-01 1.34409643e-01 1.34362941e-01 + 1.34316184e-01 1.34269372e-01 1.34222505e-01 1.34175583e-01 1.34128606e-01 + 1.34081573e-01 1.34034486e-01 1.33987343e-01 1.33940145e-01 1.33892892e-01 + 1.33845583e-01 1.33798219e-01 1.33750799e-01 1.33703324e-01 1.33655794e-01 + 1.33608207e-01 1.33560566e-01 1.33512869e-01 1.33465116e-01 1.33417307e-01 + 1.33369443e-01 1.33321523e-01 1.33273547e-01 1.33225515e-01 1.33177428e-01 + 1.33129285e-01 1.33081085e-01 1.33032830e-01 1.32984519e-01 1.32936152e-01 + 1.32887728e-01 1.32839249e-01 1.32790713e-01 1.32742122e-01 1.32693474e-01 + 1.32644770e-01 1.32596010e-01 1.32547193e-01 1.32498320e-01 1.32449391e-01 + 1.32400405e-01 1.32351363e-01 1.32302265e-01 1.32253110e-01 1.32203899e-01 + 1.32154631e-01 1.32105306e-01 1.32055925e-01 1.32006488e-01 1.31956993e-01 + 1.31907442e-01 1.31857835e-01 1.31808170e-01 1.31758449e-01 1.31708671e-01 + 1.31658836e-01 1.31608945e-01 1.31558996e-01 1.31508991e-01 1.31458929e-01 + 1.31408809e-01 1.31358633e-01 1.31308400e-01 1.31258110e-01 1.31207762e-01 + 1.31157358e-01 1.31106897e-01 1.31056378e-01 1.31005802e-01 1.30955169e-01 + 1.30904479e-01 1.30853732e-01 1.30802927e-01 1.30752065e-01 1.30701146e-01 + 1.30650170e-01 1.30599136e-01 1.30548045e-01 1.30496896e-01 1.30445690e-01 + 1.30394426e-01 1.30343106e-01 1.30291727e-01 1.30240291e-01 1.30188798e-01 + 1.30137247e-01 1.30085639e-01 1.30033973e-01 1.29982249e-01 1.29930468e-01 + 1.29878629e-01 1.29826732e-01 1.29774778e-01 1.29722766e-01 1.29670696e-01 + 1.29618569e-01 1.29566384e-01 1.29514141e-01 1.29461841e-01 1.29409482e-01 + 1.29357066e-01 1.29304592e-01 1.29252060e-01 1.29199470e-01 1.29146823e-01 + 1.29094117e-01 1.29041354e-01 1.28988533e-01 1.28935654e-01 1.28882717e-01 + 1.28829721e-01 1.28776668e-01 1.28723557e-01 1.28670388e-01 1.28617161e-01 + 1.28563876e-01 1.28510533e-01 1.28457132e-01 1.28403673e-01 1.28350156e-01 + 1.28296581e-01 1.28242948e-01 1.28189256e-01 1.28135507e-01 1.28081699e-01 + 1.28027834e-01 1.27973910e-01 1.27919928e-01 1.27865888e-01 1.27811790e-01 + 1.27757634e-01 1.27703420e-01 1.27649147e-01 1.27594816e-01 1.27540427e-01 + 1.27485980e-01 1.27431475e-01 1.27376912e-01 1.27322290e-01 1.27267611e-01 + 1.27212873e-01 1.27158077e-01 1.27103223e-01 1.27048310e-01 1.26993340e-01 + 1.26938311e-01 1.26883224e-01 1.26828079e-01 1.26772875e-01 1.26717614e-01 + 1.26662294e-01 1.26606916e-01 1.26551480e-01 1.26495986e-01 1.26440433e-01 + 1.26384823e-01 1.26329154e-01 1.26273427e-01 1.26217642e-01 1.26161799e-01 + 1.26105898e-01 1.26049938e-01 1.25993920e-01 1.25937845e-01 1.25881711e-01 + 1.25825519e-01 1.25769269e-01 1.25712961e-01 1.25656594e-01 1.25600170e-01 + 1.25543688e-01 1.25487147e-01 1.25430549e-01 1.25373892e-01 1.25317178e-01 + 1.25260405e-01 1.25203574e-01 1.25146686e-01 1.25089739e-01 1.25032735e-01 + 1.24975672e-01 1.24918552e-01 1.24861374e-01 1.24804137e-01 1.24746843e-01 + 1.24689491e-01 1.24632082e-01 1.24574614e-01 1.24517089e-01 1.24459505e-01 + 1.24401864e-01 1.24344166e-01 1.24286409e-01 1.24228595e-01 1.24170723e-01 + 1.24112794e-01 1.24054806e-01 1.23996762e-01 1.23938659e-01 1.23880499e-01 + 1.23822281e-01 1.23764006e-01 1.23705674e-01 1.23647284e-01 1.23588836e-01 + 1.23530331e-01 1.23471769e-01 1.23413149e-01 1.23354472e-01 1.23295737e-01 + 1.23236946e-01 1.23178097e-01 1.23119190e-01 1.23060227e-01 1.23001206e-01 + 1.22942129e-01 1.22882994e-01 1.22823802e-01 1.22764553e-01 1.22705247e-01 + 1.22645884e-01 1.22586464e-01 1.22526988e-01 1.22467454e-01 1.22407864e-01 + 1.22348217e-01 1.22288513e-01 1.22228752e-01 1.22168935e-01 1.22109061e-01 + 1.22049130e-01 1.21989143e-01 1.21929100e-01 1.21869000e-01 1.21808843e-01 + 1.21748630e-01 1.21688361e-01 1.21628036e-01 1.21567654e-01 1.21507216e-01 + 1.21446722e-01 1.21386172e-01 1.21325566e-01 1.21264904e-01 1.21204185e-01 + 1.21143411e-01 1.21082581e-01 1.21021696e-01 1.20960754e-01 1.20899757e-01 + 1.20838704e-01 1.20777596e-01 1.20716432e-01 1.20655212e-01 1.20593937e-01 + 1.20532607e-01 1.20471221e-01 1.20409780e-01 1.20348284e-01 1.20286733e-01 + 1.20225127e-01 1.20163465e-01 1.20101749e-01 1.20039978e-01 1.19978152e-01 + 1.19916271e-01 1.19854335e-01 1.19792345e-01 1.19730300e-01 1.19668200e-01 + 1.19606047e-01 1.19543838e-01 1.19481576e-01 1.19419259e-01 1.19356888e-01 + 1.19294463e-01 1.19231984e-01 1.19169450e-01 1.19106863e-01 1.19044222e-01 + 1.18981528e-01 1.18918779e-01 1.18855977e-01 1.18793122e-01 1.18730213e-01 + 1.18667250e-01 1.18604235e-01 1.18541166e-01 1.18478043e-01 1.18414868e-01 + 1.18351640e-01 1.18288359e-01 1.18225025e-01 1.18161638e-01 1.18098199e-01 + 1.18034707e-01 1.17971163e-01 1.17907566e-01 1.17843917e-01 1.17780216e-01 + 1.17716462e-01 1.17652656e-01 1.17588799e-01 1.17524889e-01 1.17460928e-01 + 1.17396915e-01 1.17332851e-01 1.17268735e-01 1.17204567e-01 1.17140349e-01 + 1.17076079e-01 1.17011757e-01 1.16947385e-01 1.16882962e-01 1.16818488e-01 + 1.16753964e-01 1.16689388e-01 1.16624762e-01 1.16560086e-01 1.16495360e-01 + 1.16430583e-01 1.16365756e-01 1.16300879e-01 1.16235952e-01 1.16170975e-01 + 1.16105949e-01 1.16040873e-01 1.15975748e-01 1.15910573e-01 1.15845349e-01 + 1.15780076e-01 1.15714754e-01 1.15649383e-01 1.15583963e-01 1.15518494e-01 + 1.15452977e-01 1.15387412e-01 1.15321798e-01 1.15256136e-01 1.15190426e-01 + 1.15124668e-01 1.15058862e-01 1.14993008e-01 1.14927107e-01 1.14861158e-01 + 1.14795162e-01 1.14729119e-01 1.14663029e-01 1.14596892e-01 1.14530707e-01 + 1.14464477e-01 1.14398199e-01 1.14331875e-01 1.14265505e-01 1.14199089e-01 + 1.14132627e-01 1.14066119e-01 1.13999565e-01 1.13932965e-01 1.13866320e-01 + 1.13799630e-01 1.13732894e-01 1.13666113e-01 1.13599288e-01 1.13532417e-01 + 1.13465503e-01 1.13398543e-01 1.13331539e-01 1.13264491e-01 1.13197399e-01 + 1.13130263e-01 1.13063084e-01 1.12995861e-01 1.12928594e-01 1.12861284e-01 + 1.12793931e-01 1.12726535e-01 1.12659096e-01 1.12591615e-01 1.12524091e-01 + 1.12456524e-01 1.12388916e-01 1.12321265e-01 1.12253573e-01 1.12185839e-01 + 1.12118063e-01 1.12050246e-01 1.11982388e-01 1.11914489e-01 1.11846549e-01 + 1.11778568e-01 1.11710547e-01 1.11642485e-01 1.11574383e-01 1.11506242e-01 + 1.11438060e-01 1.11369839e-01 1.11301578e-01 1.11233278e-01 1.11164939e-01 + 1.11096561e-01 1.11028144e-01 1.10959689e-01 1.10891195e-01 1.10822663e-01 + 1.10754093e-01 1.10685486e-01 1.10616840e-01 1.10548157e-01 1.10479437e-01 + 1.10410680e-01 1.10341886e-01 1.10273055e-01 1.10204188e-01 1.10135284e-01 + 1.10066345e-01 1.09997369e-01 1.09928358e-01 1.09859311e-01 1.09790229e-01 + 1.09721112e-01 1.09651960e-01 1.09582773e-01 1.09513552e-01 1.09444296e-01 + 1.09375007e-01 1.09305683e-01 1.09236326e-01 1.09166936e-01 1.09097512e-01 + 1.09028055e-01 1.08958566e-01 1.08889044e-01 1.08819489e-01 1.08749902e-01 + 1.08680284e-01 1.08610634e-01 1.08540952e-01 1.08471239e-01 1.08401495e-01 + 1.08331720e-01 1.08261914e-01 1.08192078e-01 1.08122212e-01 1.08052316e-01 + 1.07982391e-01 1.07912436e-01 1.07842452e-01 1.07772438e-01 1.07702397e-01 + 1.07632326e-01 1.07562227e-01 1.07492101e-01 1.07421946e-01 1.07351764e-01 + 1.07281555e-01 1.07211318e-01 1.07141055e-01 1.07070766e-01 1.07000449e-01 + 1.06930107e-01 1.06859739e-01 1.06789346e-01 1.06718927e-01 1.06648483e-01 + 1.06578015e-01 1.06507521e-01 1.06437004e-01 1.06366462e-01 1.06295897e-01 + 1.06225308e-01 1.06154696e-01 1.06084061e-01 1.06013403e-01 1.05942723e-01 + 1.05872021e-01 1.05801296e-01 1.05730551e-01 1.05659783e-01 1.05588995e-01 + 1.05518186e-01 1.05447356e-01 1.05376506e-01 1.05305636e-01 1.05234746e-01 + 1.05163837e-01 1.05092908e-01 1.05021961e-01 1.04950995e-01 1.04880011e-01 + 1.04809009e-01 1.04737989e-01 1.04666951e-01 1.04595897e-01 1.04524826e-01 + 1.04453738e-01 1.04382633e-01 1.04311513e-01 1.04240377e-01 1.04169226e-01 + 1.04098060e-01 1.04026878e-01 1.03955683e-01 1.03884473e-01 1.03813249e-01 + 1.03742012e-01 1.03670761e-01 1.03599498e-01 1.03528222e-01 1.03456933e-01 + 1.03385633e-01 1.03314321e-01 1.03242997e-01 1.03171662e-01 1.03100317e-01 + 1.03028961e-01 1.02957595e-01 1.02886219e-01 1.02814833e-01 1.02743439e-01 + 1.02672036e-01 1.02600624e-01 1.02529204e-01 1.02457776e-01 1.02386340e-01 + 1.02314898e-01 1.02243448e-01 1.02171992e-01 1.02100530e-01 1.02029062e-01 + 1.01957589e-01 1.01886110e-01 1.01814626e-01 1.01743138e-01 1.01671646e-01 + 1.01600150e-01 1.01528651e-01 1.01457148e-01 1.01385643e-01 1.01314135e-01 + 1.01242625e-01 1.01171114e-01 1.01099601e-01 1.01028087e-01 1.00956573e-01 + 1.00885058e-01 1.00813543e-01 1.00742029e-01 1.00670515e-01 1.00599003e-01 + 1.00527492e-01 1.00455983e-01 1.00384477e-01 1.00312973e-01 1.00241472e-01 + 1.00169974e-01 1.00098480e-01 1.00026990e-01 9.99555050e-02 9.98840245e-02 + 9.98125493e-02 9.97410797e-02 9.96696161e-02 9.95981588e-02 9.95267084e-02 + 9.94552650e-02 9.93838292e-02 9.93124014e-02 9.92409818e-02 9.91695709e-02 + 9.90981691e-02 9.90267768e-02 9.89553944e-02 9.88840222e-02 9.88126607e-02 + 9.87413103e-02 9.86699713e-02 9.85986441e-02 9.85273293e-02 9.84560271e-02 + 9.83847379e-02 9.83134622e-02 9.82422004e-02 9.81709529e-02 9.80997201e-02 + 9.80285023e-02 9.79573001e-02 9.78861138e-02 9.78149439e-02 9.77437907e-02 + 9.76726547e-02 9.76015362e-02 9.75304358e-02 9.74593538e-02 9.73882907e-02 + 9.73172468e-02 9.72462226e-02 9.71752186e-02 9.71042351e-02 9.70332725e-02 + 9.69623314e-02 9.68914121e-02 9.68205151e-02 9.67496408e-02 9.66787897e-02 + 9.66079621e-02 9.65371585e-02 9.64663793e-02 9.63956251e-02 9.63248961e-02 + 9.62541930e-02 9.61835160e-02 9.61128657e-02 9.60422425e-02 9.59716469e-02 + 9.59010792e-02 9.58305400e-02 9.57600297e-02 9.56895487e-02 9.56190976e-02 + 9.55486767e-02 9.54782865e-02 9.54079274e-02 9.53376000e-02 9.52673047e-02 + 9.51970419e-02 9.51268121e-02 9.50566158e-02 9.49864534e-02 9.49163254e-02 + 9.48462322e-02 9.47761744e-02 9.47061524e-02 9.46361667e-02 9.45662176e-02 + 9.44963058e-02 9.44264317e-02 9.43565957e-02 9.42867984e-02 9.42170402e-02 + 9.41473215e-02 9.40776429e-02 9.40080049e-02 9.39384078e-02 9.38688523e-02 + 9.37993388e-02 9.37298677e-02 9.36604397e-02 9.35910550e-02 9.35217143e-02 + 9.34524180e-02 9.33831666e-02 9.33139606e-02 9.32448006e-02 9.31756869e-02 + 9.31066201e-02 9.30376006e-02 9.29686291e-02 9.28997059e-02 9.28308316e-02 + 9.27620066e-02 9.26932315e-02 9.26245068e-02 9.25558330e-02 9.24872106e-02 + 9.24186400e-02 9.23501218e-02 9.22816566e-02 9.22132447e-02 9.21448867e-02 + 9.20765832e-02 9.20083346e-02 9.19401414e-02 9.18720042e-02 9.18039235e-02 + 9.17358998e-02 9.16679335e-02 9.16000253e-02 9.15321756e-02 9.14643850e-02 + 9.13966540e-02 9.13289830e-02 9.12613727e-02 9.11938235e-02 9.11263360e-02 + 9.10589106e-02 9.09915480e-02 9.09242486e-02 9.08570130e-02 9.07898417e-02 + 9.07227352e-02 9.06556940e-02 9.05887187e-02 9.05218099e-02 9.04549680e-02 + 9.03881935e-02 9.03214871e-02 9.02548492e-02 9.01882804e-02 9.01217813e-02 + 9.00553522e-02 8.99889939e-02 8.99227068e-02 8.98564915e-02 8.97903485e-02 + 8.97242783e-02 8.96582816e-02 8.95923588e-02 8.95265104e-02 8.94607371e-02 + 8.93950394e-02 8.93294177e-02 8.92638728e-02 8.91984050e-02 8.91330150e-02 + 8.90677033e-02 8.90024705e-02 8.89373170e-02 8.88722435e-02 8.88072505e-02 + 8.87423386e-02 8.86775083e-02 8.86127602e-02 8.85480947e-02 8.84835126e-02 + 8.84190142e-02 8.83546003e-02 8.82902712e-02 8.82260277e-02 8.81618702e-02 + 8.80977994e-02 8.80338157e-02 8.79699197e-02 8.79061120e-02 8.78423932e-02 + 8.77787637e-02 8.77152243e-02 8.76517753e-02 8.75884175e-02 8.75251513e-02 + 8.74619773e-02 8.73988961e-02 8.73359083e-02 8.72730143e-02 8.72102149e-02 + 8.71475104e-02 8.70849016e-02 8.70223890e-02 8.69599731e-02 8.68976544e-02 + 8.68354337e-02 8.67733114e-02 8.67112881e-02 8.66493644e-02 8.65875409e-02 + 8.65258180e-02 8.64641964e-02 8.64026767e-02 8.63412594e-02 8.62799451e-02 + 8.62187344e-02 8.61576278e-02 8.60966259e-02 8.60357293e-02 8.59749386e-02 + 8.59142542e-02 8.58536769e-02 8.57932071e-02 8.57328455e-02 8.56725925e-02 + 8.56124489e-02 8.55524151e-02 8.54924918e-02 8.54326794e-02 8.53729787e-02 + 8.53133900e-02 8.52539141e-02 8.51945515e-02 8.51353028e-02 8.50761685e-02 + 8.50171493e-02 8.49582456e-02 8.48994581e-02 8.48407874e-02 8.47822340e-02 + 8.47237984e-02 8.46654813e-02 8.46072833e-02 8.45492049e-02 8.44912466e-02 + 8.44334092e-02 8.43756930e-02 8.43180988e-02 8.42606271e-02 8.42032784e-02 + 8.41460533e-02 8.40889525e-02 8.40319764e-02 8.39751257e-02 8.39184009e-02 + 8.38618026e-02 8.38053314e-02 8.37489878e-02 8.36927724e-02 8.36366859e-02 + 8.35807286e-02 8.35249013e-02 8.34692046e-02 8.34136388e-02 8.33582048e-02 + 8.33029029e-02 8.32477338e-02 8.31926981e-02 8.31377963e-02 8.30830290e-02 + 8.30283967e-02 8.29739001e-02 8.29195397e-02 8.28653161e-02 8.28112297e-02 + 8.27572813e-02 8.27034714e-02 8.26498005e-02 8.25962691e-02 8.25428780e-02 + 8.24896276e-02 8.24365184e-02 8.23835511e-02 8.23307263e-02 8.22780444e-02 + 8.22255060e-02 8.21731118e-02 8.21208622e-02 8.20687579e-02 8.20167993e-02 + 8.19649871e-02 8.19133218e-02 8.18618039e-02 8.18104341e-02 8.17592128e-02 + 8.17081407e-02 8.16572182e-02 8.16064460e-02 8.15558245e-02 8.15053545e-02 + 8.14550363e-02 8.14048705e-02 8.13548578e-02 8.13049986e-02 8.12552935e-02 + 8.12057430e-02 8.11563478e-02 8.11071082e-02 8.10580250e-02 8.10090986e-02 + 8.09603295e-02 8.09117184e-02 8.08632657e-02 8.08149721e-02 8.07668379e-02 + 8.07188639e-02 8.06710504e-02 8.06233982e-02 8.05759075e-02 8.05285792e-02 + 8.04814136e-02 8.04344112e-02 8.03875727e-02 8.03408986e-02 8.02943893e-02 + 8.02480455e-02 8.02018675e-02 8.01558561e-02 8.01100116e-02 8.00643347e-02 + 8.00188258e-02 7.99734855e-02 7.99283142e-02 7.98833126e-02 7.98384810e-02 + 7.97938201e-02 7.97493304e-02 7.97050123e-02 7.96608664e-02 7.96168932e-02 + 7.95730933e-02 7.95294670e-02 7.94860149e-02 7.94427376e-02 7.93996355e-02 + 7.93567091e-02 7.93139590e-02 7.92713856e-02 7.92289895e-02 7.91867711e-02 + 7.91447310e-02 7.91028695e-02 7.90611873e-02 7.90196849e-02 7.89783626e-02 + 7.89372210e-02 7.88962607e-02 7.88554819e-02 7.88148854e-02 7.87744715e-02 + 7.87342407e-02 7.86941935e-02 7.86543304e-02 7.86146519e-02 7.85751584e-02 + 7.85358504e-02 7.84967284e-02 7.84577929e-02 7.84190442e-02 7.83804830e-02 + 7.83421096e-02 7.83039245e-02 7.82659282e-02 7.82281212e-02 7.81905038e-02 + 7.81530766e-02 7.81158400e-02 7.80787945e-02 7.80419405e-02 7.80052784e-02 + 7.79688088e-02 7.79325320e-02 7.78964485e-02 7.78605587e-02 7.78248631e-02 + 7.77893622e-02 7.77540563e-02 7.77189459e-02 7.76840314e-02 7.76493132e-02 + 7.76147919e-02 7.75804677e-02 7.75463412e-02 7.75124127e-02 7.74786828e-02 + 7.74451517e-02 7.74118199e-02 7.73786878e-02 7.73457559e-02 7.73130245e-02 + 7.72804941e-02 7.72481650e-02 7.72160377e-02 7.71841125e-02 7.71523900e-02 + 7.71208703e-02 7.70895541e-02 7.70584416e-02 7.70275332e-02 7.69968293e-02 + 7.69663304e-02 7.69360368e-02 7.69059488e-02 7.68760670e-02 7.68463915e-02 + 7.68169229e-02 7.67876614e-02 7.67586075e-02 7.67297616e-02 7.67011239e-02 + 7.66726949e-02 7.66444749e-02 7.66164642e-02 7.65886633e-02 7.65610725e-02 + 7.65336921e-02 7.65065225e-02 7.64795641e-02 7.64528171e-02 7.64262819e-02 + 7.63999589e-02 7.63738484e-02 7.63479508e-02 7.63222662e-02 7.62967952e-02 + 7.62715380e-02 7.62464950e-02 7.62216664e-02 7.61970526e-02 7.61726539e-02 + 7.61484706e-02 7.61245031e-02 7.61007516e-02 7.60772164e-02 7.60538979e-02 + 7.60307964e-02 7.60079121e-02 7.59852453e-02 7.59627964e-02 7.59405657e-02 + 7.59185533e-02 7.58967597e-02 7.58751851e-02 7.58538297e-02 7.58326939e-02 + 7.58117779e-02 7.57910820e-02 7.57706065e-02 7.57503516e-02 7.57303176e-02 + 7.57105048e-02 7.56909134e-02 7.56715437e-02 7.56523959e-02 7.56334703e-02 + 7.56147671e-02 7.55962866e-02 7.55780290e-02 7.55599946e-02 7.55421835e-02 + 7.55245961e-02 7.55072326e-02 7.54900931e-02 7.54731780e-02 7.54564874e-02 + 7.54400215e-02 7.54237806e-02 7.54077649e-02 7.53919746e-02 7.53764099e-02 + 7.53610711e-02 7.53459582e-02 7.53310716e-02 7.53164113e-02 7.53019777e-02 + 7.52877708e-02 7.52737910e-02 7.52600383e-02 7.52465130e-02 7.52332152e-02 + 7.52201451e-02 7.52073028e-02 7.51946887e-02 7.51823027e-02 7.51701451e-02 + 7.51582161e-02 7.51465158e-02 7.51350443e-02 7.51238019e-02 7.51127886e-02 + 7.51020046e-02 7.50914500e-02 7.50811251e-02 7.50710299e-02 7.50611645e-02 + 7.50515291e-02 7.50421239e-02 7.50329489e-02 7.50240043e-02 7.50152901e-02 + 7.50068066e-02 7.49985538e-02 7.49905318e-02 7.49827407e-02 7.49751807e-02 + 7.49678518e-02 7.49607542e-02 7.49538879e-02 7.49472530e-02 7.49408496e-02 + 7.49346779e-02 7.49287378e-02 7.49230295e-02 7.49175530e-02 7.49123084e-02 + 7.49072958e-02 7.49025153e-02 7.48979669e-02 7.48936506e-02 7.48895666e-02 + 7.48857148e-02 7.48820954e-02 7.48787084e-02 7.48755538e-02 7.48726317e-02 + 7.48699421e-02 7.48674851e-02 7.48652606e-02 7.48632687e-02 7.48615095e-02 + 7.48599830e-02 7.48586891e-02 7.48576279e-02 7.48567994e-02 7.48562037e-02 + 7.48558407e-02 7.48557104e-02 7.48558129e-02 7.48561481e-02 7.48567160e-02 + 7.48575167e-02 7.48585501e-02 7.48598162e-02 7.48613149e-02 7.48630464e-02 + 7.48650104e-02 7.48672071e-02 7.48696364e-02 7.48722982e-02 7.48751926e-02 + 7.48783194e-02 7.48816786e-02 7.48852703e-02 7.48890943e-02 7.48931506e-02 + 7.48974391e-02 7.49019598e-02 7.49067126e-02 7.49116975e-02 7.49169143e-02 + 7.49223631e-02 7.49280438e-02 7.49339562e-02 7.49401003e-02 7.49464760e-02 + 7.49530832e-02 7.49599219e-02 7.49669919e-02 7.49742931e-02 7.49818255e-02 + 7.49895890e-02 7.49975834e-02 7.50058087e-02 7.50142646e-02 7.50229512e-02 + 7.50318684e-02 7.50410158e-02 7.50503936e-02 7.50600015e-02 7.50698394e-02 + 7.50799072e-02 7.50902047e-02 7.51007318e-02 7.51114884e-02 7.51224743e-02 + 7.51336894e-02 7.51451335e-02 7.51568065e-02 7.51687082e-02 7.51808385e-02 + 7.51931972e-02 7.52057841e-02 7.52185991e-02 7.52316420e-02 7.52449126e-02 + 7.52584108e-02 7.52721363e-02 7.52860890e-02 7.53002688e-02 7.53146753e-02 + 7.53293085e-02 7.53441681e-02 7.53592540e-02 7.53745659e-02 7.53901036e-02 + 7.54058670e-02 7.54218558e-02 7.54380698e-02 7.54545087e-02 7.54711725e-02 + 7.54880609e-02 7.55051735e-02 7.55225103e-02 7.55400710e-02 7.55578553e-02 + 7.55758631e-02 7.55940940e-02 7.56125479e-02 7.56312245e-02 7.56501236e-02 + 7.56692448e-02 7.56885881e-02 7.57081530e-02 7.57279394e-02 7.57479470e-02 + 7.57681755e-02 7.57886247e-02 7.58092942e-02 7.58301840e-02 7.58512935e-02 + 7.58726227e-02 7.58941712e-02 7.59159386e-02 7.59379249e-02 7.59601296e-02 + 7.59825524e-02 7.60051932e-02 7.60280515e-02 7.60511271e-02 7.60744197e-02 + 7.60979290e-02 7.61216547e-02 7.61455964e-02 7.61697540e-02 7.61941269e-02 + 7.62187151e-02 7.62435180e-02 7.62685354e-02 7.62937671e-02 7.63192126e-02 + 7.63448716e-02 7.63707438e-02 7.63968289e-02 7.64231266e-02 7.64496364e-02 + 7.64763581e-02 7.65032913e-02 7.65304357e-02 7.65577909e-02 7.65853566e-02 + 7.66131325e-02 7.66411181e-02 7.66693131e-02 7.66977171e-02 7.67263299e-02 + 7.67551510e-02 7.67841801e-02 7.68134168e-02 7.68428607e-02 7.68725114e-02 + 7.69023687e-02 7.69324320e-02 7.69627011e-02 7.69931756e-02 7.70238549e-02 + 7.70547389e-02 7.70858271e-02 7.71171190e-02 7.71486144e-02 7.71803127e-02 + 7.72122137e-02 7.72443169e-02 7.72766219e-02 7.73091283e-02 7.73418357e-02 + 7.73747437e-02 7.74078518e-02 7.74411598e-02 7.74746671e-02 7.75083734e-02 + 7.75422781e-02 7.75763810e-02 7.76106816e-02 7.76451794e-02 7.76798741e-02 + 7.77147651e-02 7.77498522e-02 7.77851347e-02 7.78206124e-02 7.78562848e-02 + 7.78921513e-02 7.79282117e-02 7.79644654e-02 7.80009121e-02 7.80375512e-02 + 7.80743823e-02 7.81114050e-02 7.81486188e-02 7.81860233e-02 7.82236179e-02 + 7.82614023e-02 7.82993761e-02 7.83375386e-02 7.83758895e-02 7.84144284e-02 + 7.84531546e-02 7.84920679e-02 7.85311676e-02 7.85704534e-02 7.86099248e-02 + 7.86495813e-02 7.86894223e-02 7.87294475e-02 7.87696564e-02 7.88100485e-02 + 7.88506232e-02 7.88913802e-02 7.89323189e-02 7.89734389e-02 7.90147396e-02 + 7.90562205e-02 7.90978813e-02 7.91397213e-02 7.91817402e-02 7.92239373e-02 + 7.92663122e-02 7.93088645e-02 7.93515935e-02 7.93944988e-02 7.94375800e-02 + 7.94808364e-02 7.95242676e-02 7.95678731e-02 7.96116524e-02 7.96556049e-02 + 7.96997302e-02 7.97440277e-02 7.97884970e-02 7.98331374e-02 7.98779486e-02 + 7.99229300e-02 7.99680810e-02 8.00134012e-02 8.00588900e-02 8.01045468e-02 + 8.01503713e-02 8.01963628e-02 8.02425209e-02 8.02888450e-02 8.03353345e-02 + 8.03819890e-02 8.04288079e-02 8.04757907e-02 8.05229368e-02 8.05702458e-02 + 8.06177170e-02 8.06653500e-02 8.07131443e-02 8.07610992e-02 8.08092142e-02 + 8.08574888e-02 8.09059225e-02 8.09545148e-02 8.10032650e-02 8.10521726e-02 + 8.11012372e-02 8.11504581e-02 8.11998347e-02 8.12493667e-02 8.12990534e-02 + 8.13488942e-02 8.13988886e-02 8.14490361e-02 8.14993361e-02 8.15497881e-02 + 8.16003915e-02 8.16511457e-02 8.17020502e-02 8.17531045e-02 8.18043080e-02 + 8.18556601e-02 8.19071604e-02 8.19588081e-02 8.20106028e-02 8.20625439e-02 + 8.21146309e-02 8.21668631e-02 8.22192401e-02 8.22717613e-02 8.23244260e-02 + 8.23772339e-02 8.24301842e-02 8.24832764e-02 8.25365100e-02 8.25898843e-02 + 8.26433990e-02 8.26970532e-02 8.27508466e-02 8.28047785e-02 8.28588484e-02 + 8.29130557e-02 8.29673998e-02 8.30218801e-02 8.30764962e-02 8.31312474e-02 + 8.31861332e-02 8.32411529e-02 8.32963061e-02 8.33515922e-02 8.34070105e-02 + 8.34625605e-02 8.35182417e-02 8.35740534e-02 8.36299951e-02 8.36860663e-02 + 8.37422663e-02 8.37985946e-02 8.38550506e-02 8.39116338e-02 8.39683435e-02 + 8.40251792e-02 8.40821403e-02 8.41392263e-02 8.41964365e-02 8.42537705e-02 + 8.43112275e-02 8.43688072e-02 8.44265088e-02 8.44843318e-02 8.45422756e-02 + 8.46003397e-02 8.46585235e-02 8.47168264e-02 8.47752478e-02 8.48337872e-02 + 8.48924439e-02 8.49512175e-02 8.50101073e-02 8.50691128e-02 8.51282334e-02 + 8.51874685e-02 8.52468175e-02 8.53062799e-02 8.53658551e-02 8.54255425e-02 + 8.54853415e-02 8.55452516e-02 8.56052723e-02 8.56654028e-02 8.57256427e-02 + 8.57859914e-02 8.58464483e-02 8.59070128e-02 8.59676844e-02 8.60284625e-02 + 8.60893465e-02 8.61503358e-02 8.62114299e-02 8.62726282e-02 8.63339302e-02 + 8.63953352e-02 8.64568427e-02 8.65184522e-02 8.65801629e-02 8.66419745e-02 + 8.67038863e-02 8.67658977e-02 8.68280082e-02 8.68902172e-02 8.69525242e-02 + 8.70149285e-02 8.70774296e-02 8.71400270e-02 8.72027200e-02 8.72655081e-02 + 8.73283908e-02 8.73913675e-02 8.74544376e-02 8.75176005e-02 8.75808557e-02 + 8.76442026e-02 8.77076407e-02 8.77711694e-02 8.78347881e-02 8.78984963e-02 + 8.79622934e-02 8.80261789e-02 8.80901521e-02 8.81542126e-02 8.82183598e-02 + 8.82825930e-02 8.83469119e-02 8.84113157e-02 8.84758040e-02 8.85403762e-02 + 8.86050317e-02 8.86697700e-02 8.87345905e-02 8.87994927e-02 8.88644761e-02 + 8.89295400e-02 8.89946839e-02 8.90599073e-02 8.91252096e-02 8.91905903e-02 + 8.92560488e-02 8.93215845e-02 8.93871970e-02 8.94528857e-02 8.95186500e-02 + 8.95844894e-02 8.96504034e-02 8.97163914e-02 8.97824528e-02 8.98485871e-02 + 8.99147938e-02 8.99810724e-02 9.00474222e-02 9.01138428e-02 9.01803336e-02 + 9.02468942e-02 9.03135238e-02 9.03802221e-02 9.04469884e-02 9.05138223e-02 + 9.05807232e-02 9.06476906e-02 9.07147239e-02 9.07818226e-02 9.08489862e-02 + 9.09162142e-02 9.09835060e-02 9.10508611e-02 9.11182790e-02 9.11857591e-02 + 9.12533009e-02 9.13209040e-02 9.13885677e-02 9.14562916e-02 9.15240751e-02 + 9.15919178e-02 9.16598190e-02 9.17277784e-02 9.17957953e-02 9.18638692e-02 + 9.19319997e-02 9.20001862e-02 9.20684282e-02 9.21367252e-02 9.22050767e-02 + 9.22734821e-02 9.23419411e-02 9.24104530e-02 9.24790173e-02 9.25476336e-02 + 9.26163013e-02 9.26850199e-02 9.27537890e-02 9.28226080e-02 9.28914765e-02 + 9.29603938e-02 9.30293596e-02 9.30983734e-02 9.31674346e-02 9.32365427e-02 + 9.33056973e-02 9.33748978e-02 9.34441438e-02 9.35134347e-02 9.35827701e-02 + 9.36521496e-02 9.37215725e-02 9.37910385e-02 9.38605469e-02 9.39300975e-02 + 9.39996895e-02 9.40693227e-02 9.41389965e-02 9.42087104e-02 9.42784639e-02 + 9.43482566e-02 9.44180880e-02 9.44879576e-02 9.45578649e-02 9.46278095e-02 + 9.46977909e-02 9.47678086e-02 9.48378622e-02 9.49079511e-02 9.49780750e-02 + 9.50482333e-02 9.51184256e-02 9.51886514e-02 9.52589103e-02 9.53292017e-02 + 9.53995254e-02 9.54698806e-02 9.55402671e-02 9.56106844e-02 9.56811320e-02 + 9.57516094e-02 9.58221162e-02 9.58926520e-02 9.59632163e-02 9.60338086e-02 + 9.61044286e-02 9.61750756e-02 9.62457494e-02 9.63164495e-02 9.63871754e-02 + 9.64579266e-02 9.65287028e-02 9.65995035e-02 9.66703283e-02 9.67411766e-02 + 9.68120482e-02 9.68829425e-02 9.69538592e-02 9.70247977e-02 9.70957577e-02 + 9.71667387e-02 9.72377403e-02 9.73087621e-02 9.73798037e-02 9.74508645e-02 + 9.75219443e-02 9.75930426e-02 9.76641589e-02 9.77352928e-02 9.78064440e-02 + 9.78776119e-02 9.79487963e-02 9.80199966e-02 9.80912125e-02 9.81624436e-02 + 9.82336894e-02 9.83049495e-02 9.83762235e-02 9.84475111e-02 9.85188118e-02 + 9.85901251e-02 9.86614508e-02 9.87327884e-02 9.88041375e-02 9.88754977e-02 + 9.89468687e-02 9.90182499e-02 9.90896410e-02 9.91610417e-02 9.92324515e-02 + 9.93038701e-02 9.93752970e-02 9.94467318e-02 9.95181743e-02 9.95896239e-02 + 9.96610804e-02 9.97325432e-02 9.98040122e-02 9.98754867e-02 9.99469666e-02 + 1.00018451e-01 1.00089941e-01 1.00161434e-01 1.00232931e-01 1.00304432e-01 + 1.00375936e-01 1.00447442e-01 1.00518951e-01 1.00590461e-01 1.00661973e-01 + 1.00733487e-01 1.00805001e-01 1.00876516e-01 1.00948030e-01 1.01019545e-01 + 1.01091059e-01 1.01162572e-01 1.01234084e-01 1.01305594e-01 1.01377102e-01 + 1.01448607e-01 1.01520110e-01 1.01591610e-01 1.01663106e-01 1.01734599e-01 + 1.01806088e-01 1.01877572e-01 1.01949051e-01 1.02020525e-01 1.02091994e-01 + 1.02163457e-01 1.02234914e-01 1.02306364e-01 1.02377807e-01 1.02449244e-01 + 1.02520672e-01 1.02592093e-01 1.02663506e-01 1.02734911e-01 1.02806306e-01 + 1.02877693e-01 1.02949070e-01 1.03020437e-01 1.03091794e-01 1.03163141e-01 + 1.03234477e-01 1.03305802e-01 1.03377115e-01 1.03448417e-01 1.03519707e-01 + 1.03590985e-01 1.03662250e-01 1.03733502e-01 1.03804741e-01 1.03875966e-01 + 1.03947178e-01 1.04018375e-01 1.04089558e-01 1.04160726e-01 1.04231879e-01 + 1.04303017e-01 1.04374139e-01 1.04445245e-01 1.04516335e-01 1.04587409e-01 + 1.04658465e-01 1.04729504e-01 1.04800527e-01 1.04871531e-01 1.04942517e-01 + 1.05013485e-01 1.05084435e-01 1.05155365e-01 1.05226277e-01 1.05297169e-01 + 1.05368041e-01 1.05438894e-01 1.05509726e-01 1.05580538e-01 1.05651329e-01 + 1.05722099e-01 1.05792847e-01 1.05863574e-01 1.05934279e-01 1.06004962e-01 + 1.06075622e-01 1.06146260e-01 1.06216875e-01 1.06287467e-01 1.06358035e-01 + 1.06428579e-01 1.06499100e-01 1.06569596e-01 1.06640067e-01 1.06710514e-01 + 1.06780936e-01 1.06851332e-01 1.06921703e-01 1.06992049e-01 1.07062368e-01 + 1.07132661e-01 1.07202927e-01 1.07273167e-01 1.07343379e-01 1.07413565e-01 + 1.07483722e-01 1.07553852e-01 1.07623955e-01 1.07694028e-01 1.07764074e-01 + 1.07834090e-01 1.07904078e-01 1.07974036e-01 1.08043966e-01 1.08113865e-01 + 1.08183735e-01 1.08253574e-01 1.08323383e-01 1.08393162e-01 1.08462910e-01 + 1.08532626e-01 1.08602312e-01 1.08671966e-01 1.08741588e-01 1.08811179e-01 + 1.08880737e-01 1.08950263e-01 1.09019757e-01 1.09089217e-01 1.09158645e-01 + 1.09228040e-01 1.09297401e-01 1.09366728e-01 1.09436022e-01 1.09505281e-01 + 1.09574507e-01 1.09643698e-01 1.09712854e-01 1.09781975e-01 1.09851061e-01 + 1.09920112e-01 1.09989128e-01 1.10058108e-01 1.10127052e-01 1.10195959e-01 + 1.10264831e-01 1.10333666e-01 1.10402465e-01 1.10471226e-01 1.10539951e-01 + 1.10608638e-01 1.10677288e-01 1.10745900e-01 1.10814475e-01 1.10883011e-01 + 1.10951510e-01 1.11019970e-01 1.11088391e-01 1.11156774e-01 1.11225117e-01 + 1.11293422e-01 1.11361687e-01 1.11429913e-01 1.11498100e-01 1.11566246e-01 + 1.11634353e-01 1.11702419e-01 1.11770445e-01 1.11838431e-01 1.11906376e-01 + 1.11974280e-01 1.12042143e-01 1.12109965e-01 1.12177745e-01 1.12245484e-01 + 1.12313182e-01 1.12380837e-01 1.12448451e-01 1.12516022e-01 1.12583551e-01 + 1.12651038e-01 1.12718482e-01 1.12785883e-01 1.12853241e-01 1.12920556e-01 + 1.12987828e-01 1.13055056e-01 1.13122241e-01 1.13189382e-01 1.13256480e-01 + 1.13323533e-01 1.13390542e-01 1.13457507e-01 1.13524427e-01 1.13591303e-01 + 1.13658134e-01 1.13724920e-01 1.13791661e-01 1.13858356e-01 1.13925007e-01 + 1.13991612e-01 1.14058171e-01 1.14124685e-01 1.14191153e-01 1.14257575e-01 + 1.14323950e-01 1.14390280e-01 1.14456562e-01 1.14522799e-01 1.14588988e-01 + 1.14655131e-01 1.14721227e-01 1.14787276e-01 1.14853278e-01 1.14919232e-01 + 1.14985139e-01 1.15050998e-01 1.15116810e-01 1.15182574e-01 1.15248290e-01 + 1.15313957e-01 1.15379577e-01 1.15445148e-01 1.15510671e-01 1.15576146e-01 + 1.15641571e-01 1.15706948e-01 1.15772276e-01 1.15837555e-01 1.15902785e-01 + 1.15967965e-01 1.16033097e-01 1.16098179e-01 1.16163211e-01 1.16228193e-01 + 1.16293126e-01 1.16358009e-01 1.16422842e-01 1.16487625e-01 1.16552357e-01 + 1.16617040e-01 1.16681672e-01 1.16746253e-01 1.16810784e-01 1.16875264e-01 + 1.16939693e-01 1.17004071e-01 1.17068398e-01 1.17132674e-01 1.17196899e-01 + 1.17261073e-01 1.17325195e-01 1.17389266e-01 1.17453285e-01 1.17517252e-01 + 1.17581168e-01 1.17645032e-01 1.17708843e-01 1.17772603e-01 1.17836311e-01 + 1.17899966e-01 1.17963569e-01 1.18027120e-01 1.18090618e-01 1.18154064e-01 + 1.18217457e-01 1.18280797e-01 1.18344084e-01 1.18407319e-01 1.18470500e-01 + 1.18533629e-01 1.18596704e-01 1.18659726e-01 1.18722695e-01 1.18785610e-01 + 1.18848472e-01 1.18911281e-01 1.18974035e-01 1.19036736e-01 1.19099384e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.38518338e-01 1.38476565e-01 1.38434740e-01 1.38392864e-01 1.38350938e-01 + 1.38308960e-01 1.38266931e-01 1.38224851e-01 1.38182720e-01 1.38140538e-01 + 1.38098305e-01 1.38056020e-01 1.38013684e-01 1.37971296e-01 1.37928857e-01 + 1.37886366e-01 1.37843824e-01 1.37801230e-01 1.37758585e-01 1.37715888e-01 + 1.37673139e-01 1.37630338e-01 1.37587486e-01 1.37544581e-01 1.37501625e-01 + 1.37458617e-01 1.37415556e-01 1.37372444e-01 1.37329279e-01 1.37286062e-01 + 1.37242794e-01 1.37199472e-01 1.37156099e-01 1.37112673e-01 1.37069195e-01 + 1.37025664e-01 1.36982081e-01 1.36938445e-01 1.36894757e-01 1.36851016e-01 + 1.36807222e-01 1.36763376e-01 1.36719477e-01 1.36675525e-01 1.36631520e-01 + 1.36587463e-01 1.36543352e-01 1.36499189e-01 1.36454972e-01 1.36410702e-01 + 1.36366380e-01 1.36322004e-01 1.36277574e-01 1.36233092e-01 1.36188556e-01 + 1.36143967e-01 1.36099325e-01 1.36054629e-01 1.36009880e-01 1.35965077e-01 + 1.35920221e-01 1.35875311e-01 1.35830347e-01 1.35785330e-01 1.35740259e-01 + 1.35695134e-01 1.35649956e-01 1.35604723e-01 1.35559437e-01 1.35514096e-01 + 1.35468702e-01 1.35423254e-01 1.35377752e-01 1.35332195e-01 1.35286585e-01 + 1.35240920e-01 1.35195201e-01 1.35149428e-01 1.35103600e-01 1.35057718e-01 + 1.35011782e-01 1.34965791e-01 1.34919746e-01 1.34873646e-01 1.34827492e-01 + 1.34781283e-01 1.34735020e-01 1.34688702e-01 1.34642329e-01 1.34595901e-01 + 1.34549419e-01 1.34502882e-01 1.34456290e-01 1.34409643e-01 1.34362941e-01 + 1.34316184e-01 1.34269372e-01 1.34222505e-01 1.34175583e-01 1.34128606e-01 + 1.34081573e-01 1.34034486e-01 1.33987343e-01 1.33940145e-01 1.33892892e-01 + 1.33845583e-01 1.33798219e-01 1.33750799e-01 1.33703324e-01 1.33655794e-01 + 1.33608207e-01 1.33560566e-01 1.33512869e-01 1.33465116e-01 1.33417307e-01 + 1.33369443e-01 1.33321523e-01 1.33273547e-01 1.33225515e-01 1.33177428e-01 + 1.33129285e-01 1.33081085e-01 1.33032830e-01 1.32984519e-01 1.32936152e-01 + 1.32887728e-01 1.32839249e-01 1.32790713e-01 1.32742122e-01 1.32693474e-01 + 1.32644770e-01 1.32596010e-01 1.32547193e-01 1.32498320e-01 1.32449391e-01 + 1.32400405e-01 1.32351363e-01 1.32302265e-01 1.32253110e-01 1.32203899e-01 + 1.32154631e-01 1.32105306e-01 1.32055925e-01 1.32006488e-01 1.31956993e-01 + 1.31907442e-01 1.31857835e-01 1.31808170e-01 1.31758449e-01 1.31708671e-01 + 1.31658836e-01 1.31608945e-01 1.31558996e-01 1.31508991e-01 1.31458929e-01 + 1.31408809e-01 1.31358633e-01 1.31308400e-01 1.31258110e-01 1.31207762e-01 + 1.31157358e-01 1.31106897e-01 1.31056378e-01 1.31005802e-01 1.30955169e-01 + 1.30904479e-01 1.30853732e-01 1.30802927e-01 1.30752065e-01 1.30701146e-01 + 1.30650170e-01 1.30599136e-01 1.30548045e-01 1.30496896e-01 1.30445690e-01 + 1.30394426e-01 1.30343106e-01 1.30291727e-01 1.30240291e-01 1.30188798e-01 + 1.30137247e-01 1.30085639e-01 1.30033973e-01 1.29982249e-01 1.29930468e-01 + 1.29878629e-01 1.29826732e-01 1.29774778e-01 1.29722766e-01 1.29670696e-01 + 1.29618569e-01 1.29566384e-01 1.29514141e-01 1.29461841e-01 1.29409482e-01 + 1.29357066e-01 1.29304592e-01 1.29252060e-01 1.29199470e-01 1.29146823e-01 + 1.29094117e-01 1.29041354e-01 1.28988533e-01 1.28935654e-01 1.28882717e-01 + 1.28829721e-01 1.28776668e-01 1.28723557e-01 1.28670388e-01 1.28617161e-01 + 1.28563876e-01 1.28510533e-01 1.28457132e-01 1.28403673e-01 1.28350156e-01 + 1.28296581e-01 1.28242948e-01 1.28189256e-01 1.28135507e-01 1.28081699e-01 + 1.28027834e-01 1.27973910e-01 1.27919928e-01 1.27865888e-01 1.27811790e-01 + 1.27757634e-01 1.27703420e-01 1.27649147e-01 1.27594816e-01 1.27540427e-01 + 1.27485980e-01 1.27431475e-01 1.27376912e-01 1.27322290e-01 1.27267611e-01 + 1.27212873e-01 1.27158077e-01 1.27103223e-01 1.27048310e-01 1.26993340e-01 + 1.26938311e-01 1.26883224e-01 1.26828079e-01 1.26772875e-01 1.26717614e-01 + 1.26662294e-01 1.26606916e-01 1.26551480e-01 1.26495986e-01 1.26440433e-01 + 1.26384823e-01 1.26329154e-01 1.26273427e-01 1.26217642e-01 1.26161799e-01 + 1.26105898e-01 1.26049938e-01 1.25993920e-01 1.25937845e-01 1.25881711e-01 + 1.25825519e-01 1.25769269e-01 1.25712961e-01 1.25656594e-01 1.25600170e-01 + 1.25543688e-01 1.25487147e-01 1.25430549e-01 1.25373892e-01 1.25317178e-01 + 1.25260405e-01 1.25203574e-01 1.25146686e-01 1.25089739e-01 1.25032735e-01 + 1.24975672e-01 1.24918552e-01 1.24861374e-01 1.24804137e-01 1.24746843e-01 + 1.24689491e-01 1.24632082e-01 1.24574614e-01 1.24517089e-01 1.24459505e-01 + 1.24401864e-01 1.24344166e-01 1.24286409e-01 1.24228595e-01 1.24170723e-01 + 1.24112794e-01 1.24054806e-01 1.23996762e-01 1.23938659e-01 1.23880499e-01 + 1.23822281e-01 1.23764006e-01 1.23705674e-01 1.23647284e-01 1.23588836e-01 + 1.23530331e-01 1.23471769e-01 1.23413149e-01 1.23354472e-01 1.23295737e-01 + 1.23236946e-01 1.23178097e-01 1.23119190e-01 1.23060227e-01 1.23001206e-01 + 1.22942129e-01 1.22882994e-01 1.22823802e-01 1.22764553e-01 1.22705247e-01 + 1.22645884e-01 1.22586464e-01 1.22526988e-01 1.22467454e-01 1.22407864e-01 + 1.22348217e-01 1.22288513e-01 1.22228752e-01 1.22168935e-01 1.22109061e-01 + 1.22049130e-01 1.21989143e-01 1.21929100e-01 1.21869000e-01 1.21808843e-01 + 1.21748630e-01 1.21688361e-01 1.21628036e-01 1.21567654e-01 1.21507216e-01 + 1.21446722e-01 1.21386172e-01 1.21325566e-01 1.21264904e-01 1.21204185e-01 + 1.21143411e-01 1.21082581e-01 1.21021696e-01 1.20960754e-01 1.20899757e-01 + 1.20838704e-01 1.20777596e-01 1.20716432e-01 1.20655212e-01 1.20593937e-01 + 1.20532607e-01 1.20471221e-01 1.20409780e-01 1.20348284e-01 1.20286733e-01 + 1.20225127e-01 1.20163465e-01 1.20101749e-01 1.20039978e-01 1.19978152e-01 + 1.19916271e-01 1.19854335e-01 1.19792345e-01 1.19730300e-01 1.19668200e-01 + 1.19606047e-01 1.19543838e-01 1.19481576e-01 1.19419259e-01 1.19356888e-01 + 1.19294463e-01 1.19231984e-01 1.19169450e-01 1.19106863e-01 1.19044222e-01 + 1.18981528e-01 1.18918779e-01 1.18855977e-01 1.18793122e-01 1.18730213e-01 + 1.18667250e-01 1.18604235e-01 1.18541166e-01 1.18478043e-01 1.18414868e-01 + 1.18351640e-01 1.18288359e-01 1.18225025e-01 1.18161638e-01 1.18098199e-01 + 1.18034707e-01 1.17971163e-01 1.17907566e-01 1.17843917e-01 1.17780216e-01 + 1.17716462e-01 1.17652656e-01 1.17588799e-01 1.17524889e-01 1.17460928e-01 + 1.17396915e-01 1.17332851e-01 1.17268735e-01 1.17204567e-01 1.17140349e-01 + 1.17076079e-01 1.17011757e-01 1.16947385e-01 1.16882962e-01 1.16818488e-01 + 1.16753964e-01 1.16689388e-01 1.16624762e-01 1.16560086e-01 1.16495360e-01 + 1.16430583e-01 1.16365756e-01 1.16300879e-01 1.16235952e-01 1.16170975e-01 + 1.16105949e-01 1.16040873e-01 1.15975748e-01 1.15910573e-01 1.15845349e-01 + 1.15780076e-01 1.15714754e-01 1.15649383e-01 1.15583963e-01 1.15518494e-01 + 1.15452977e-01 1.15387412e-01 1.15321798e-01 1.15256136e-01 1.15190426e-01 + 1.15124668e-01 1.15058862e-01 1.14993008e-01 1.14927107e-01 1.14861158e-01 + 1.14795162e-01 1.14729119e-01 1.14663029e-01 1.14596892e-01 1.14530707e-01 + 1.14464477e-01 1.14398199e-01 1.14331875e-01 1.14265505e-01 1.14199089e-01 + 1.14132627e-01 1.14066119e-01 1.13999565e-01 1.13932965e-01 1.13866320e-01 + 1.13799630e-01 1.13732894e-01 1.13666113e-01 1.13599288e-01 1.13532417e-01 + 1.13465503e-01 1.13398543e-01 1.13331539e-01 1.13264491e-01 1.13197399e-01 + 1.13130263e-01 1.13063084e-01 1.12995861e-01 1.12928594e-01 1.12861284e-01 + 1.12793931e-01 1.12726535e-01 1.12659096e-01 1.12591615e-01 1.12524091e-01 + 1.12456524e-01 1.12388916e-01 1.12321265e-01 1.12253573e-01 1.12185839e-01 + 1.12118063e-01 1.12050246e-01 1.11982388e-01 1.11914489e-01 1.11846549e-01 + 1.11778568e-01 1.11710547e-01 1.11642485e-01 1.11574383e-01 1.11506242e-01 + 1.11438060e-01 1.11369839e-01 1.11301578e-01 1.11233278e-01 1.11164939e-01 + 1.11096561e-01 1.11028144e-01 1.10959689e-01 1.10891195e-01 1.10822663e-01 + 1.10754093e-01 1.10685486e-01 1.10616840e-01 1.10548157e-01 1.10479437e-01 + 1.10410680e-01 1.10341886e-01 1.10273055e-01 1.10204188e-01 1.10135284e-01 + 1.10066345e-01 1.09997369e-01 1.09928358e-01 1.09859311e-01 1.09790229e-01 + 1.09721112e-01 1.09651960e-01 1.09582773e-01 1.09513552e-01 1.09444296e-01 + 1.09375007e-01 1.09305683e-01 1.09236326e-01 1.09166936e-01 1.09097512e-01 + 1.09028055e-01 1.08958566e-01 1.08889044e-01 1.08819489e-01 1.08749902e-01 + 1.08680284e-01 1.08610634e-01 1.08540952e-01 1.08471239e-01 1.08401495e-01 + 1.08331720e-01 1.08261914e-01 1.08192078e-01 1.08122212e-01 1.08052316e-01 + 1.07982391e-01 1.07912436e-01 1.07842452e-01 1.07772438e-01 1.07702397e-01 + 1.07632326e-01 1.07562227e-01 1.07492101e-01 1.07421946e-01 1.07351764e-01 + 1.07281555e-01 1.07211318e-01 1.07141055e-01 1.07070766e-01 1.07000449e-01 + 1.06930107e-01 1.06859739e-01 1.06789346e-01 1.06718927e-01 1.06648483e-01 + 1.06578015e-01 1.06507521e-01 1.06437004e-01 1.06366462e-01 1.06295897e-01 + 1.06225308e-01 1.06154696e-01 1.06084061e-01 1.06013403e-01 1.05942723e-01 + 1.05872021e-01 1.05801296e-01 1.05730551e-01 1.05659783e-01 1.05588995e-01 + 1.05518186e-01 1.05447356e-01 1.05376506e-01 1.05305636e-01 1.05234746e-01 + 1.05163837e-01 1.05092908e-01 1.05021961e-01 1.04950995e-01 1.04880011e-01 + 1.04809009e-01 1.04737989e-01 1.04666951e-01 1.04595897e-01 1.04524826e-01 + 1.04453738e-01 1.04382633e-01 1.04311513e-01 1.04240377e-01 1.04169226e-01 + 1.04098060e-01 1.04026878e-01 1.03955683e-01 1.03884473e-01 1.03813249e-01 + 1.03742012e-01 1.03670761e-01 1.03599498e-01 1.03528222e-01 1.03456933e-01 + 1.03385633e-01 1.03314321e-01 1.03242997e-01 1.03171662e-01 1.03100317e-01 + 1.03028961e-01 1.02957595e-01 1.02886219e-01 1.02814833e-01 1.02743439e-01 + 1.02672036e-01 1.02600624e-01 1.02529204e-01 1.02457776e-01 1.02386340e-01 + 1.02314898e-01 1.02243448e-01 1.02171992e-01 1.02100530e-01 1.02029062e-01 + 1.01957589e-01 1.01886110e-01 1.01814626e-01 1.01743138e-01 1.01671646e-01 + 1.01600150e-01 1.01528651e-01 1.01457148e-01 1.01385643e-01 1.01314135e-01 + 1.01242625e-01 1.01171114e-01 1.01099601e-01 1.01028087e-01 1.00956573e-01 + 1.00885058e-01 1.00813543e-01 1.00742029e-01 1.00670515e-01 1.00599003e-01 + 1.00527492e-01 1.00455983e-01 1.00384477e-01 1.00312973e-01 1.00241472e-01 + 1.00169974e-01 1.00098480e-01 1.00026990e-01 9.99555050e-02 9.98840245e-02 + 9.98125493e-02 9.97410797e-02 9.96696161e-02 9.95981588e-02 9.95267084e-02 + 9.94552650e-02 9.93838292e-02 9.93124014e-02 9.92409818e-02 9.91695709e-02 + 9.90981691e-02 9.90267768e-02 9.89553944e-02 9.88840222e-02 9.88126607e-02 + 9.87413103e-02 9.86699713e-02 9.85986441e-02 9.85273293e-02 9.84560271e-02 + 9.83847379e-02 9.83134622e-02 9.82422004e-02 9.81709529e-02 9.80997201e-02 + 9.80285023e-02 9.79573001e-02 9.78861138e-02 9.78149439e-02 9.77437907e-02 + 9.76726547e-02 9.76015362e-02 9.75304358e-02 9.74593538e-02 9.73882907e-02 + 9.73172468e-02 9.72462226e-02 9.71752186e-02 9.71042351e-02 9.70332725e-02 + 9.69623314e-02 9.68914121e-02 9.68205151e-02 9.67496408e-02 9.66787897e-02 + 9.66079621e-02 9.65371585e-02 9.64663793e-02 9.63956251e-02 9.63248961e-02 + 9.62541930e-02 9.61835160e-02 9.61128657e-02 9.60422425e-02 9.59716469e-02 + 9.59010792e-02 9.58305400e-02 9.57600297e-02 9.56895487e-02 9.56190976e-02 + 9.55486767e-02 9.54782865e-02 9.54079274e-02 9.53376000e-02 9.52673047e-02 + 9.51970419e-02 9.51268121e-02 9.50566158e-02 9.49864534e-02 9.49163254e-02 + 9.48462322e-02 9.47761744e-02 9.47061524e-02 9.46361667e-02 9.45662176e-02 + 9.44963058e-02 9.44264317e-02 9.43565957e-02 9.42867984e-02 9.42170402e-02 + 9.41473215e-02 9.40776429e-02 9.40080049e-02 9.39384078e-02 9.38688523e-02 + 9.37993388e-02 9.37298677e-02 9.36604397e-02 9.35910550e-02 9.35217143e-02 + 9.34524180e-02 9.33831666e-02 9.33139606e-02 9.32448006e-02 9.31756869e-02 + 9.31066201e-02 9.30376006e-02 9.29686291e-02 9.28997059e-02 9.28308316e-02 + 9.27620066e-02 9.26932315e-02 9.26245068e-02 9.25558330e-02 9.24872106e-02 + 9.24186400e-02 9.23501218e-02 9.22816566e-02 9.22132447e-02 9.21448867e-02 + 9.20765832e-02 9.20083346e-02 9.19401414e-02 9.18720042e-02 9.18039235e-02 + 9.17358998e-02 9.16679335e-02 9.16000253e-02 9.15321756e-02 9.14643850e-02 + 9.13966540e-02 9.13289830e-02 9.12613727e-02 9.11938235e-02 9.11263360e-02 + 9.10589106e-02 9.09915480e-02 9.09242486e-02 9.08570130e-02 9.07898417e-02 + 9.07227352e-02 9.06556940e-02 9.05887187e-02 9.05218099e-02 9.04549680e-02 + 9.03881935e-02 9.03214871e-02 9.02548492e-02 9.01882804e-02 9.01217813e-02 + 9.00553522e-02 8.99889939e-02 8.99227068e-02 8.98564915e-02 8.97903485e-02 + 8.97242783e-02 8.96582816e-02 8.95923588e-02 8.95265104e-02 8.94607371e-02 + 8.93950394e-02 8.93294177e-02 8.92638728e-02 8.91984050e-02 8.91330150e-02 + 8.90677033e-02 8.90024705e-02 8.89373170e-02 8.88722435e-02 8.88072505e-02 + 8.87423386e-02 8.86775083e-02 8.86127602e-02 8.85480947e-02 8.84835126e-02 + 8.84190142e-02 8.83546003e-02 8.82902712e-02 8.82260277e-02 8.81618702e-02 + 8.80977994e-02 8.80338157e-02 8.79699197e-02 8.79061120e-02 8.78423932e-02 + 8.77787637e-02 8.77152243e-02 8.76517753e-02 8.75884175e-02 8.75251513e-02 + 8.74619773e-02 8.73988961e-02 8.73359083e-02 8.72730143e-02 8.72102149e-02 + 8.71475104e-02 8.70849016e-02 8.70223890e-02 8.69599731e-02 8.68976544e-02 + 8.68354337e-02 8.67733114e-02 8.67112881e-02 8.66493644e-02 8.65875409e-02 + 8.65258180e-02 8.64641964e-02 8.64026767e-02 8.63412594e-02 8.62799451e-02 + 8.62187344e-02 8.61576278e-02 8.60966259e-02 8.60357293e-02 8.59749386e-02 + 8.59142542e-02 8.58536769e-02 8.57932071e-02 8.57328455e-02 8.56725925e-02 + 8.56124489e-02 8.55524151e-02 8.54924918e-02 8.54326794e-02 8.53729787e-02 + 8.53133900e-02 8.52539141e-02 8.51945515e-02 8.51353028e-02 8.50761685e-02 + 8.50171493e-02 8.49582456e-02 8.48994581e-02 8.48407874e-02 8.47822340e-02 + 8.47237984e-02 8.46654813e-02 8.46072833e-02 8.45492049e-02 8.44912466e-02 + 8.44334092e-02 8.43756930e-02 8.43180988e-02 8.42606271e-02 8.42032784e-02 + 8.41460533e-02 8.40889525e-02 8.40319764e-02 8.39751257e-02 8.39184009e-02 + 8.38618026e-02 8.38053314e-02 8.37489878e-02 8.36927724e-02 8.36366859e-02 + 8.35807286e-02 8.35249013e-02 8.34692046e-02 8.34136388e-02 8.33582048e-02 + 8.33029029e-02 8.32477338e-02 8.31926981e-02 8.31377963e-02 8.30830290e-02 + 8.30283967e-02 8.29739001e-02 8.29195397e-02 8.28653161e-02 8.28112297e-02 + 8.27572813e-02 8.27034714e-02 8.26498005e-02 8.25962691e-02 8.25428780e-02 + 8.24896276e-02 8.24365184e-02 8.23835511e-02 8.23307263e-02 8.22780444e-02 + 8.22255060e-02 8.21731118e-02 8.21208622e-02 8.20687579e-02 8.20167993e-02 + 8.19649871e-02 8.19133218e-02 8.18618039e-02 8.18104341e-02 8.17592128e-02 + 8.17081407e-02 8.16572182e-02 8.16064460e-02 8.15558245e-02 8.15053545e-02 + 8.14550363e-02 8.14048705e-02 8.13548578e-02 8.13049986e-02 8.12552935e-02 + 8.12057430e-02 8.11563478e-02 8.11071082e-02 8.10580250e-02 8.10090986e-02 + 8.09603295e-02 8.09117184e-02 8.08632657e-02 8.08149721e-02 8.07668379e-02 + 8.07188639e-02 8.06710504e-02 8.06233982e-02 8.05759075e-02 8.05285792e-02 + 8.04814136e-02 8.04344112e-02 8.03875727e-02 8.03408986e-02 8.02943893e-02 + 8.02480455e-02 8.02018675e-02 8.01558561e-02 8.01100116e-02 8.00643347e-02 + 8.00188258e-02 7.99734855e-02 7.99283142e-02 7.98833126e-02 7.98384810e-02 + 7.97938201e-02 7.97493304e-02 7.97050123e-02 7.96608664e-02 7.96168932e-02 + 7.95730933e-02 7.95294670e-02 7.94860149e-02 7.94427376e-02 7.93996355e-02 + 7.93567091e-02 7.93139590e-02 7.92713856e-02 7.92289895e-02 7.91867711e-02 + 7.91447310e-02 7.91028695e-02 7.90611873e-02 7.90196849e-02 7.89783626e-02 + 7.89372210e-02 7.88962607e-02 7.88554819e-02 7.88148854e-02 7.87744715e-02 + 7.87342407e-02 7.86941935e-02 7.86543304e-02 7.86146519e-02 7.85751584e-02 + 7.85358504e-02 7.84967284e-02 7.84577929e-02 7.84190442e-02 7.83804830e-02 + 7.83421096e-02 7.83039245e-02 7.82659282e-02 7.82281212e-02 7.81905038e-02 + 7.81530766e-02 7.81158400e-02 7.80787945e-02 7.80419405e-02 7.80052784e-02 + 7.79688088e-02 7.79325320e-02 7.78964485e-02 7.78605587e-02 7.78248631e-02 + 7.77893622e-02 7.77540563e-02 7.77189459e-02 7.76840314e-02 7.76493132e-02 + 7.76147919e-02 7.75804677e-02 7.75463412e-02 7.75124127e-02 7.74786828e-02 + 7.74451517e-02 7.74118199e-02 7.73786878e-02 7.73457559e-02 7.73130245e-02 + 7.72804941e-02 7.72481650e-02 7.72160377e-02 7.71841125e-02 7.71523900e-02 + 7.71208703e-02 7.70895541e-02 7.70584416e-02 7.70275332e-02 7.69968293e-02 + 7.69663304e-02 7.69360368e-02 7.69059488e-02 7.68760670e-02 7.68463915e-02 + 7.68169229e-02 7.67876614e-02 7.67586075e-02 7.67297616e-02 7.67011239e-02 + 7.66726949e-02 7.66444749e-02 7.66164642e-02 7.65886633e-02 7.65610725e-02 + 7.65336921e-02 7.65065225e-02 7.64795641e-02 7.64528171e-02 7.64262819e-02 + 7.63999589e-02 7.63738484e-02 7.63479508e-02 7.63222662e-02 7.62967952e-02 + 7.62715380e-02 7.62464950e-02 7.62216664e-02 7.61970526e-02 7.61726539e-02 + 7.61484706e-02 7.61245031e-02 7.61007516e-02 7.60772164e-02 7.60538979e-02 + 7.60307964e-02 7.60079121e-02 7.59852453e-02 7.59627964e-02 7.59405657e-02 + 7.59185533e-02 7.58967597e-02 7.58751851e-02 7.58538297e-02 7.58326939e-02 + 7.58117779e-02 7.57910820e-02 7.57706065e-02 7.57503516e-02 7.57303176e-02 + 7.57105048e-02 7.56909134e-02 7.56715437e-02 7.56523959e-02 7.56334703e-02 + 7.56147671e-02 7.55962866e-02 7.55780290e-02 7.55599946e-02 7.55421835e-02 + 7.55245961e-02 7.55072326e-02 7.54900931e-02 7.54731780e-02 7.54564874e-02 + 7.54400215e-02 7.54237806e-02 7.54077649e-02 7.53919746e-02 7.53764099e-02 + 7.53610711e-02 7.53459582e-02 7.53310716e-02 7.53164113e-02 7.53019777e-02 + 7.52877708e-02 7.52737910e-02 7.52600383e-02 7.52465130e-02 7.52332152e-02 + 7.52201451e-02 7.52073028e-02 7.51946887e-02 7.51823027e-02 7.51701451e-02 + 7.51582161e-02 7.51465158e-02 7.51350443e-02 7.51238019e-02 7.51127886e-02 + 7.51020046e-02 7.50914500e-02 7.50811251e-02 7.50710299e-02 7.50611645e-02 + 7.50515291e-02 7.50421239e-02 7.50329489e-02 7.50240043e-02 7.50152901e-02 + 7.50068066e-02 7.49985538e-02 7.49905318e-02 7.49827407e-02 7.49751807e-02 + 7.49678518e-02 7.49607542e-02 7.49538879e-02 7.49472530e-02 7.49408496e-02 + 7.49346779e-02 7.49287378e-02 7.49230295e-02 7.49175530e-02 7.49123084e-02 + 7.49072958e-02 7.49025153e-02 7.48979669e-02 7.48936506e-02 7.48895666e-02 + 7.48857148e-02 7.48820954e-02 7.48787084e-02 7.48755538e-02 7.48726317e-02 + 7.48699421e-02 7.48674851e-02 7.48652606e-02 7.48632687e-02 7.48615095e-02 + 7.48599830e-02 7.48586891e-02 7.48576279e-02 7.48567994e-02 7.48562037e-02 + 7.48558407e-02 7.48557104e-02 7.48558129e-02 7.48561481e-02 7.48567160e-02 + 7.48575167e-02 7.48585501e-02 7.48598162e-02 7.48613149e-02 7.48630464e-02 + 7.48650104e-02 7.48672071e-02 7.48696364e-02 7.48722982e-02 7.48751926e-02 + 7.48783194e-02 7.48816786e-02 7.48852703e-02 7.48890943e-02 7.48931506e-02 + 7.48974391e-02 7.49019598e-02 7.49067126e-02 7.49116975e-02 7.49169143e-02 + 7.49223631e-02 7.49280438e-02 7.49339562e-02 7.49401003e-02 7.49464760e-02 + 7.49530832e-02 7.49599219e-02 7.49669919e-02 7.49742931e-02 7.49818255e-02 + 7.49895890e-02 7.49975834e-02 7.50058087e-02 7.50142646e-02 7.50229512e-02 + 7.50318684e-02 7.50410158e-02 7.50503936e-02 7.50600015e-02 7.50698394e-02 + 7.50799072e-02 7.50902047e-02 7.51007318e-02 7.51114884e-02 7.51224743e-02 + 7.51336894e-02 7.51451335e-02 7.51568065e-02 7.51687082e-02 7.51808385e-02 + 7.51931972e-02 7.52057841e-02 7.52185991e-02 7.52316420e-02 7.52449126e-02 + 7.52584108e-02 7.52721363e-02 7.52860890e-02 7.53002688e-02 7.53146753e-02 + 7.53293085e-02 7.53441681e-02 7.53592540e-02 7.53745659e-02 7.53901036e-02 + 7.54058670e-02 7.54218558e-02 7.54380698e-02 7.54545087e-02 7.54711725e-02 + 7.54880609e-02 7.55051735e-02 7.55225103e-02 7.55400710e-02 7.55578553e-02 + 7.55758631e-02 7.55940940e-02 7.56125479e-02 7.56312245e-02 7.56501236e-02 + 7.56692448e-02 7.56885881e-02 7.57081530e-02 7.57279394e-02 7.57479470e-02 + 7.57681755e-02 7.57886247e-02 7.58092942e-02 7.58301840e-02 7.58512935e-02 + 7.58726227e-02 7.58941712e-02 7.59159386e-02 7.59379249e-02 7.59601296e-02 + 7.59825524e-02 7.60051932e-02 7.60280515e-02 7.60511271e-02 7.60744197e-02 + 7.60979290e-02 7.61216547e-02 7.61455964e-02 7.61697540e-02 7.61941269e-02 + 7.62187151e-02 7.62435180e-02 7.62685354e-02 7.62937671e-02 7.63192126e-02 + 7.63448716e-02 7.63707438e-02 7.63968289e-02 7.64231266e-02 7.64496364e-02 + 7.64763581e-02 7.65032913e-02 7.65304357e-02 7.65577909e-02 7.65853566e-02 + 7.66131325e-02 7.66411181e-02 7.66693131e-02 7.66977171e-02 7.67263299e-02 + 7.67551510e-02 7.67841801e-02 7.68134168e-02 7.68428607e-02 7.68725114e-02 + 7.69023687e-02 7.69324320e-02 7.69627011e-02 7.69931756e-02 7.70238549e-02 + 7.70547389e-02 7.70858271e-02 7.71171190e-02 7.71486144e-02 7.71803127e-02 + 7.72122137e-02 7.72443169e-02 7.72766219e-02 7.73091283e-02 7.73418357e-02 + 7.73747437e-02 7.74078518e-02 7.74411598e-02 7.74746671e-02 7.75083734e-02 + 7.75422781e-02 7.75763810e-02 7.76106816e-02 7.76451794e-02 7.76798741e-02 + 7.77147651e-02 7.77498522e-02 7.77851347e-02 7.78206124e-02 7.78562848e-02 + 7.78921513e-02 7.79282117e-02 7.79644654e-02 7.80009121e-02 7.80375512e-02 + 7.80743823e-02 7.81114050e-02 7.81486188e-02 7.81860233e-02 7.82236179e-02 + 7.82614023e-02 7.82993761e-02 7.83375386e-02 7.83758895e-02 7.84144284e-02 + 7.84531546e-02 7.84920679e-02 7.85311676e-02 7.85704534e-02 7.86099248e-02 + 7.86495813e-02 7.86894223e-02 7.87294475e-02 7.87696564e-02 7.88100485e-02 + 7.88506232e-02 7.88913802e-02 7.89323189e-02 7.89734389e-02 7.90147396e-02 + 7.90562205e-02 7.90978813e-02 7.91397213e-02 7.91817402e-02 7.92239373e-02 + 7.92663122e-02 7.93088645e-02 7.93515935e-02 7.93944988e-02 7.94375800e-02 + 7.94808364e-02 7.95242676e-02 7.95678731e-02 7.96116524e-02 7.96556049e-02 + 7.96997302e-02 7.97440277e-02 7.97884970e-02 7.98331374e-02 7.98779486e-02 + 7.99229300e-02 7.99680810e-02 8.00134012e-02 8.00588900e-02 8.01045468e-02 + 8.01503713e-02 8.01963628e-02 8.02425209e-02 8.02888450e-02 8.03353345e-02 + 8.03819890e-02 8.04288079e-02 8.04757907e-02 8.05229368e-02 8.05702458e-02 + 8.06177170e-02 8.06653500e-02 8.07131443e-02 8.07610992e-02 8.08092142e-02 + 8.08574888e-02 8.09059225e-02 8.09545148e-02 8.10032650e-02 8.10521726e-02 + 8.11012372e-02 8.11504581e-02 8.11998347e-02 8.12493667e-02 8.12990534e-02 + 8.13488942e-02 8.13988886e-02 8.14490361e-02 8.14993361e-02 8.15497881e-02 + 8.16003915e-02 8.16511457e-02 8.17020502e-02 8.17531045e-02 8.18043080e-02 + 8.18556601e-02 8.19071604e-02 8.19588081e-02 8.20106028e-02 8.20625439e-02 + 8.21146309e-02 8.21668631e-02 8.22192401e-02 8.22717613e-02 8.23244260e-02 + 8.23772339e-02 8.24301842e-02 8.24832764e-02 8.25365100e-02 8.25898843e-02 + 8.26433990e-02 8.26970532e-02 8.27508466e-02 8.28047785e-02 8.28588484e-02 + 8.29130557e-02 8.29673998e-02 8.30218801e-02 8.30764962e-02 8.31312474e-02 + 8.31861332e-02 8.32411529e-02 8.32963061e-02 8.33515922e-02 8.34070105e-02 + 8.34625605e-02 8.35182417e-02 8.35740534e-02 8.36299951e-02 8.36860663e-02 + 8.37422663e-02 8.37985946e-02 8.38550506e-02 8.39116338e-02 8.39683435e-02 + 8.40251792e-02 8.40821403e-02 8.41392263e-02 8.41964365e-02 8.42537705e-02 + 8.43112275e-02 8.43688072e-02 8.44265088e-02 8.44843318e-02 8.45422756e-02 + 8.46003397e-02 8.46585235e-02 8.47168264e-02 8.47752478e-02 8.48337872e-02 + 8.48924439e-02 8.49512175e-02 8.50101073e-02 8.50691128e-02 8.51282334e-02 + 8.51874685e-02 8.52468175e-02 8.53062799e-02 8.53658551e-02 8.54255425e-02 + 8.54853415e-02 8.55452516e-02 8.56052723e-02 8.56654028e-02 8.57256427e-02 + 8.57859914e-02 8.58464483e-02 8.59070128e-02 8.59676844e-02 8.60284625e-02 + 8.60893465e-02 8.61503358e-02 8.62114299e-02 8.62726282e-02 8.63339302e-02 + 8.63953352e-02 8.64568427e-02 8.65184522e-02 8.65801629e-02 8.66419745e-02 + 8.67038863e-02 8.67658977e-02 8.68280082e-02 8.68902172e-02 8.69525242e-02 + 8.70149285e-02 8.70774296e-02 8.71400270e-02 8.72027200e-02 8.72655081e-02 + 8.73283908e-02 8.73913675e-02 8.74544376e-02 8.75176005e-02 8.75808557e-02 + 8.76442026e-02 8.77076407e-02 8.77711694e-02 8.78347881e-02 8.78984963e-02 + 8.79622934e-02 8.80261789e-02 8.80901521e-02 8.81542126e-02 8.82183598e-02 + 8.82825930e-02 8.83469119e-02 8.84113157e-02 8.84758040e-02 8.85403762e-02 + 8.86050317e-02 8.86697700e-02 8.87345905e-02 8.87994927e-02 8.88644761e-02 + 8.89295400e-02 8.89946839e-02 8.90599073e-02 8.91252096e-02 8.91905903e-02 + 8.92560488e-02 8.93215845e-02 8.93871970e-02 8.94528857e-02 8.95186500e-02 + 8.95844894e-02 8.96504034e-02 8.97163914e-02 8.97824528e-02 8.98485871e-02 + 8.99147938e-02 8.99810724e-02 9.00474222e-02 9.01138428e-02 9.01803336e-02 + 9.02468942e-02 9.03135238e-02 9.03802221e-02 9.04469884e-02 9.05138223e-02 + 9.05807232e-02 9.06476906e-02 9.07147239e-02 9.07818226e-02 9.08489862e-02 + 9.09162142e-02 9.09835060e-02 9.10508611e-02 9.11182790e-02 9.11857591e-02 + 9.12533009e-02 9.13209040e-02 9.13885677e-02 9.14562916e-02 9.15240751e-02 + 9.15919178e-02 9.16598190e-02 9.17277784e-02 9.17957953e-02 9.18638692e-02 + 9.19319997e-02 9.20001862e-02 9.20684282e-02 9.21367252e-02 9.22050767e-02 + 9.22734821e-02 9.23419411e-02 9.24104530e-02 9.24790173e-02 9.25476336e-02 + 9.26163013e-02 9.26850199e-02 9.27537890e-02 9.28226080e-02 9.28914765e-02 + 9.29603938e-02 9.30293596e-02 9.30983734e-02 9.31674346e-02 9.32365427e-02 + 9.33056973e-02 9.33748978e-02 9.34441438e-02 9.35134347e-02 9.35827701e-02 + 9.36521496e-02 9.37215725e-02 9.37910385e-02 9.38605469e-02 9.39300975e-02 + 9.39996895e-02 9.40693227e-02 9.41389965e-02 9.42087104e-02 9.42784639e-02 + 9.43482566e-02 9.44180880e-02 9.44879576e-02 9.45578649e-02 9.46278095e-02 + 9.46977909e-02 9.47678086e-02 9.48378622e-02 9.49079511e-02 9.49780750e-02 + 9.50482333e-02 9.51184256e-02 9.51886514e-02 9.52589103e-02 9.53292017e-02 + 9.53995254e-02 9.54698806e-02 9.55402671e-02 9.56106844e-02 9.56811320e-02 + 9.57516094e-02 9.58221162e-02 9.58926520e-02 9.59632163e-02 9.60338086e-02 + 9.61044286e-02 9.61750756e-02 9.62457494e-02 9.63164495e-02 9.63871754e-02 + 9.64579266e-02 9.65287028e-02 9.65995035e-02 9.66703283e-02 9.67411766e-02 + 9.68120482e-02 9.68829425e-02 9.69538592e-02 9.70247977e-02 9.70957577e-02 + 9.71667387e-02 9.72377403e-02 9.73087621e-02 9.73798037e-02 9.74508645e-02 + 9.75219443e-02 9.75930426e-02 9.76641589e-02 9.77352928e-02 9.78064440e-02 + 9.78776119e-02 9.79487963e-02 9.80199966e-02 9.80912125e-02 9.81624436e-02 + 9.82336894e-02 9.83049495e-02 9.83762235e-02 9.84475111e-02 9.85188118e-02 + 9.85901251e-02 9.86614508e-02 9.87327884e-02 9.88041375e-02 9.88754977e-02 + 9.89468687e-02 9.90182499e-02 9.90896410e-02 9.91610417e-02 9.92324515e-02 + 9.93038701e-02 9.93752970e-02 9.94467318e-02 9.95181743e-02 9.95896239e-02 + 9.96610804e-02 9.97325432e-02 9.98040122e-02 9.98754867e-02 9.99469666e-02 + 1.00018451e-01 1.00089941e-01 1.00161434e-01 1.00232931e-01 1.00304432e-01 + 1.00375936e-01 1.00447442e-01 1.00518951e-01 1.00590461e-01 1.00661973e-01 + 1.00733487e-01 1.00805001e-01 1.00876516e-01 1.00948030e-01 1.01019545e-01 + 1.01091059e-01 1.01162572e-01 1.01234084e-01 1.01305594e-01 1.01377102e-01 + 1.01448607e-01 1.01520110e-01 1.01591610e-01 1.01663106e-01 1.01734599e-01 + 1.01806088e-01 1.01877572e-01 1.01949051e-01 1.02020525e-01 1.02091994e-01 + 1.02163457e-01 1.02234914e-01 1.02306364e-01 1.02377807e-01 1.02449244e-01 + 1.02520672e-01 1.02592093e-01 1.02663506e-01 1.02734911e-01 1.02806306e-01 + 1.02877693e-01 1.02949070e-01 1.03020437e-01 1.03091794e-01 1.03163141e-01 + 1.03234477e-01 1.03305802e-01 1.03377115e-01 1.03448417e-01 1.03519707e-01 + 1.03590985e-01 1.03662250e-01 1.03733502e-01 1.03804741e-01 1.03875966e-01 + 1.03947178e-01 1.04018375e-01 1.04089558e-01 1.04160726e-01 1.04231879e-01 + 1.04303017e-01 1.04374139e-01 1.04445245e-01 1.04516335e-01 1.04587409e-01 + 1.04658465e-01 1.04729504e-01 1.04800527e-01 1.04871531e-01 1.04942517e-01 + 1.05013485e-01 1.05084435e-01 1.05155365e-01 1.05226277e-01 1.05297169e-01 + 1.05368041e-01 1.05438894e-01 1.05509726e-01 1.05580538e-01 1.05651329e-01 + 1.05722099e-01 1.05792847e-01 1.05863574e-01 1.05934279e-01 1.06004962e-01 + 1.06075622e-01 1.06146260e-01 1.06216875e-01 1.06287467e-01 1.06358035e-01 + 1.06428579e-01 1.06499100e-01 1.06569596e-01 1.06640067e-01 1.06710514e-01 + 1.06780936e-01 1.06851332e-01 1.06921703e-01 1.06992049e-01 1.07062368e-01 + 1.07132661e-01 1.07202927e-01 1.07273167e-01 1.07343379e-01 1.07413565e-01 + 1.07483722e-01 1.07553852e-01 1.07623955e-01 1.07694028e-01 1.07764074e-01 + 1.07834090e-01 1.07904078e-01 1.07974036e-01 1.08043966e-01 1.08113865e-01 + 1.08183735e-01 1.08253574e-01 1.08323383e-01 1.08393162e-01 1.08462910e-01 + 1.08532626e-01 1.08602312e-01 1.08671966e-01 1.08741588e-01 1.08811179e-01 + 1.08880737e-01 1.08950263e-01 1.09019757e-01 1.09089217e-01 1.09158645e-01 + 1.09228040e-01 1.09297401e-01 1.09366728e-01 1.09436022e-01 1.09505281e-01 + 1.09574507e-01 1.09643698e-01 1.09712854e-01 1.09781975e-01 1.09851061e-01 + 1.09920112e-01 1.09989128e-01 1.10058108e-01 1.10127052e-01 1.10195959e-01 + 1.10264831e-01 1.10333666e-01 1.10402465e-01 1.10471226e-01 1.10539951e-01 + 1.10608638e-01 1.10677288e-01 1.10745900e-01 1.10814475e-01 1.10883011e-01 + 1.10951510e-01 1.11019970e-01 1.11088391e-01 1.11156774e-01 1.11225117e-01 + 1.11293422e-01 1.11361687e-01 1.11429913e-01 1.11498100e-01 1.11566246e-01 + 1.11634353e-01 1.11702419e-01 1.11770445e-01 1.11838431e-01 1.11906376e-01 + 1.11974280e-01 1.12042143e-01 1.12109965e-01 1.12177745e-01 1.12245484e-01 + 1.12313182e-01 1.12380837e-01 1.12448451e-01 1.12516022e-01 1.12583551e-01 + 1.12651038e-01 1.12718482e-01 1.12785883e-01 1.12853241e-01 1.12920556e-01 + 1.12987828e-01 1.13055056e-01 1.13122241e-01 1.13189382e-01 1.13256480e-01 + 1.13323533e-01 1.13390542e-01 1.13457507e-01 1.13524427e-01 1.13591303e-01 + 1.13658134e-01 1.13724920e-01 1.13791661e-01 1.13858356e-01 1.13925007e-01 + 1.13991612e-01 1.14058171e-01 1.14124685e-01 1.14191153e-01 1.14257575e-01 + 1.14323950e-01 1.14390280e-01 1.14456562e-01 1.14522799e-01 1.14588988e-01 + 1.14655131e-01 1.14721227e-01 1.14787276e-01 1.14853278e-01 1.14919232e-01 + 1.14985139e-01 1.15050998e-01 1.15116810e-01 1.15182574e-01 1.15248290e-01 + 1.15313957e-01 1.15379577e-01 1.15445148e-01 1.15510671e-01 1.15576146e-01 + 1.15641571e-01 1.15706948e-01 1.15772276e-01 1.15837555e-01 1.15902785e-01 + 1.15967965e-01 1.16033097e-01 1.16098179e-01 1.16163211e-01 1.16228193e-01 + 1.16293126e-01 1.16358009e-01 1.16422842e-01 1.16487625e-01 1.16552357e-01 + 1.16617040e-01 1.16681672e-01 1.16746253e-01 1.16810784e-01 1.16875264e-01 + 1.16939693e-01 1.17004071e-01 1.17068398e-01 1.17132674e-01 1.17196899e-01 + 1.17261073e-01 1.17325195e-01 1.17389266e-01 1.17453285e-01 1.17517252e-01 + 1.17581168e-01 1.17645032e-01 1.17708843e-01 1.17772603e-01 1.17836311e-01 + 1.17899966e-01 1.17963569e-01 1.18027120e-01 1.18090618e-01 1.18154064e-01 + 1.18217457e-01 1.18280797e-01 1.18344084e-01 1.18407319e-01 1.18470500e-01 + 1.18533629e-01 1.18596704e-01 1.18659726e-01 1.18722695e-01 1.18785610e-01 + 1.18848472e-01 1.18911281e-01 1.18974035e-01 1.19036736e-01 1.19099384e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.65580254e-01 1.65563515e-01 1.65546741e-01 1.65529929e-01 1.65513082e-01 + 1.65496198e-01 1.65479277e-01 1.65462319e-01 1.65445324e-01 1.65428292e-01 + 1.65411223e-01 1.65394117e-01 1.65376974e-01 1.65359793e-01 1.65342574e-01 + 1.65325318e-01 1.65308025e-01 1.65290693e-01 1.65273323e-01 1.65255915e-01 + 1.65238469e-01 1.65220985e-01 1.65203462e-01 1.65185901e-01 1.65168301e-01 + 1.65150662e-01 1.65132985e-01 1.65115268e-01 1.65097513e-01 1.65079718e-01 + 1.65061884e-01 1.65044011e-01 1.65026098e-01 1.65008145e-01 1.64990153e-01 + 1.64972120e-01 1.64954048e-01 1.64935936e-01 1.64917783e-01 1.64899591e-01 + 1.64881357e-01 1.64863083e-01 1.64844769e-01 1.64826414e-01 1.64808017e-01 + 1.64789580e-01 1.64771102e-01 1.64752582e-01 1.64734021e-01 1.64715418e-01 + 1.64696774e-01 1.64678088e-01 1.64659360e-01 1.64640590e-01 1.64621778e-01 + 1.64602924e-01 1.64584027e-01 1.64565088e-01 1.64546107e-01 1.64527082e-01 + 1.64508015e-01 1.64488905e-01 1.64469751e-01 1.64450555e-01 1.64431315e-01 + 1.64412031e-01 1.64392704e-01 1.64373334e-01 1.64353919e-01 1.64334460e-01 + 1.64314958e-01 1.64295411e-01 1.64275819e-01 1.64256183e-01 1.64236503e-01 + 1.64216777e-01 1.64197007e-01 1.64177192e-01 1.64157331e-01 1.64137425e-01 + 1.64117474e-01 1.64097477e-01 1.64077435e-01 1.64057346e-01 1.64037212e-01 + 1.64017032e-01 1.63996805e-01 1.63976532e-01 1.63956212e-01 1.63935846e-01 + 1.63915433e-01 1.63894973e-01 1.63874465e-01 1.63853911e-01 1.63833309e-01 + 1.63812660e-01 1.63791963e-01 1.63771218e-01 1.63750426e-01 1.63729585e-01 + 1.63708696e-01 1.63687759e-01 1.63666773e-01 1.63645738e-01 1.63624655e-01 + 1.63603523e-01 1.63582341e-01 1.63561111e-01 1.63539831e-01 1.63518501e-01 + 1.63497122e-01 1.63475693e-01 1.63454214e-01 1.63432685e-01 1.63411106e-01 + 1.63389476e-01 1.63367795e-01 1.63346064e-01 1.63324282e-01 1.63302449e-01 + 1.63280565e-01 1.63258629e-01 1.63236642e-01 1.63214603e-01 1.63192512e-01 + 1.63170369e-01 1.63148174e-01 1.63125927e-01 1.63103628e-01 1.63081275e-01 + 1.63058870e-01 1.63036412e-01 1.63013901e-01 1.62991337e-01 1.62968719e-01 + 1.62946048e-01 1.62923323e-01 1.62900544e-01 1.62877710e-01 1.62854823e-01 + 1.62831881e-01 1.62808885e-01 1.62785834e-01 1.62762728e-01 1.62739567e-01 + 1.62716350e-01 1.62693078e-01 1.62669751e-01 1.62646368e-01 1.62622929e-01 + 1.62599433e-01 1.62575882e-01 1.62552274e-01 1.62528609e-01 1.62504888e-01 + 1.62481109e-01 1.62457274e-01 1.62433381e-01 1.62409431e-01 1.62385423e-01 + 1.62361357e-01 1.62337233e-01 1.62313050e-01 1.62288810e-01 1.62264510e-01 + 1.62240152e-01 1.62215735e-01 1.62191259e-01 1.62166724e-01 1.62142129e-01 + 1.62117474e-01 1.62092759e-01 1.62067985e-01 1.62043150e-01 1.62018255e-01 + 1.61993299e-01 1.61968282e-01 1.61943204e-01 1.61918065e-01 1.61892865e-01 + 1.61867603e-01 1.61842279e-01 1.61816893e-01 1.61791445e-01 1.61765935e-01 + 1.61740362e-01 1.61714726e-01 1.61689028e-01 1.61663266e-01 1.61637441e-01 + 1.61611552e-01 1.61585600e-01 1.61559583e-01 1.61533503e-01 1.61507358e-01 + 1.61481148e-01 1.61454874e-01 1.61428535e-01 1.61402130e-01 1.61375660e-01 + 1.61349125e-01 1.61322523e-01 1.61295856e-01 1.61269123e-01 1.61242323e-01 + 1.61215456e-01 1.61188522e-01 1.61161522e-01 1.61134454e-01 1.61107319e-01 + 1.61080115e-01 1.61052844e-01 1.61025505e-01 1.60998098e-01 1.60970621e-01 + 1.60943076e-01 1.60915462e-01 1.60887779e-01 1.60860026e-01 1.60832204e-01 + 1.60804311e-01 1.60776349e-01 1.60748316e-01 1.60720212e-01 1.60692038e-01 + 1.60663792e-01 1.60635475e-01 1.60607087e-01 1.60578627e-01 1.60550095e-01 + 1.60521491e-01 1.60492814e-01 1.60464065e-01 1.60435242e-01 1.60406347e-01 + 1.60377378e-01 1.60348335e-01 1.60319219e-01 1.60290028e-01 1.60260764e-01 + 1.60231424e-01 1.60202010e-01 1.60172520e-01 1.60142955e-01 1.60113315e-01 + 1.60083599e-01 1.60053807e-01 1.60023938e-01 1.59993993e-01 1.59963971e-01 + 1.59933872e-01 1.59903696e-01 1.59873442e-01 1.59843110e-01 1.59812700e-01 + 1.59782212e-01 1.59751645e-01 1.59720999e-01 1.59690274e-01 1.59659470e-01 + 1.59628586e-01 1.59597622e-01 1.59566578e-01 1.59535454e-01 1.59504249e-01 + 1.59472963e-01 1.59441595e-01 1.59410146e-01 1.59378616e-01 1.59347003e-01 + 1.59315308e-01 1.59283531e-01 1.59251670e-01 1.59219726e-01 1.59187699e-01 + 1.59155589e-01 1.59123394e-01 1.59091115e-01 1.59058751e-01 1.59026303e-01 + 1.58993770e-01 1.58961151e-01 1.58928446e-01 1.58895656e-01 1.58862779e-01 + 1.58829816e-01 1.58796766e-01 1.58763628e-01 1.58730404e-01 1.58697092e-01 + 1.58663691e-01 1.58630203e-01 1.58596625e-01 1.58562959e-01 1.58529204e-01 + 1.58495359e-01 1.58461425e-01 1.58427400e-01 1.58393285e-01 1.58359079e-01 + 1.58324782e-01 1.58290394e-01 1.58255915e-01 1.58221343e-01 1.58186679e-01 + 1.58151923e-01 1.58117073e-01 1.58082131e-01 1.58047095e-01 1.58011965e-01 + 1.57976741e-01 1.57941422e-01 1.57906009e-01 1.57870501e-01 1.57834897e-01 + 1.57799197e-01 1.57763402e-01 1.57727510e-01 1.57691521e-01 1.57655435e-01 + 1.57619252e-01 1.57582971e-01 1.57546592e-01 1.57510115e-01 1.57473538e-01 + 1.57436863e-01 1.57400088e-01 1.57363214e-01 1.57326239e-01 1.57289164e-01 + 1.57251989e-01 1.57214712e-01 1.57177333e-01 1.57139853e-01 1.57102271e-01 + 1.57064586e-01 1.57026798e-01 1.56988907e-01 1.56950912e-01 1.56912813e-01 + 1.56874610e-01 1.56836302e-01 1.56797890e-01 1.56759371e-01 1.56720748e-01 + 1.56682017e-01 1.56643181e-01 1.56604237e-01 1.56565187e-01 1.56526028e-01 + 1.56486762e-01 1.56447387e-01 1.56407903e-01 1.56368311e-01 1.56328609e-01 + 1.56288796e-01 1.56248874e-01 1.56208841e-01 1.56168697e-01 1.56128441e-01 + 1.56088074e-01 1.56047594e-01 1.56007002e-01 1.55966297e-01 1.55925478e-01 + 1.55884546e-01 1.55843499e-01 1.55802338e-01 1.55761062e-01 1.55719670e-01 + 1.55678163e-01 1.55636539e-01 1.55594799e-01 1.55552941e-01 1.55510966e-01 + 1.55468873e-01 1.55426662e-01 1.55384333e-01 1.55341884e-01 1.55299315e-01 + 1.55256627e-01 1.55213818e-01 1.55170888e-01 1.55127838e-01 1.55084665e-01 + 1.55041370e-01 1.54997953e-01 1.54954413e-01 1.54910749e-01 1.54866961e-01 + 1.54823050e-01 1.54779013e-01 1.54734851e-01 1.54690564e-01 1.54646150e-01 + 1.54601610e-01 1.54556943e-01 1.54512149e-01 1.54467226e-01 1.54422176e-01 + 1.54376996e-01 1.54331687e-01 1.54286249e-01 1.54240680e-01 1.54194981e-01 + 1.54149150e-01 1.54103188e-01 1.54057094e-01 1.54010867e-01 1.53964507e-01 + 1.53918014e-01 1.53871386e-01 1.53824625e-01 1.53777728e-01 1.53730696e-01 + 1.53683527e-01 1.53636223e-01 1.53588781e-01 1.53541202e-01 1.53493486e-01 + 1.53445630e-01 1.53397636e-01 1.53349503e-01 1.53301229e-01 1.53252815e-01 + 1.53204260e-01 1.53155564e-01 1.53106726e-01 1.53057745e-01 1.53008621e-01 + 1.52959354e-01 1.52909943e-01 1.52860387e-01 1.52810686e-01 1.52760840e-01 + 1.52710847e-01 1.52660708e-01 1.52610421e-01 1.52559987e-01 1.52509404e-01 + 1.52458673e-01 1.52407792e-01 1.52356762e-01 1.52305580e-01 1.52254248e-01 + 1.52202764e-01 1.52151129e-01 1.52099340e-01 1.52047398e-01 1.51995302e-01 + 1.51943052e-01 1.51890647e-01 1.51838087e-01 1.51785370e-01 1.51732497e-01 + 1.51679467e-01 1.51626279e-01 1.51572932e-01 1.51519426e-01 1.51465761e-01 + 1.51411936e-01 1.51357950e-01 1.51303802e-01 1.51249493e-01 1.51195021e-01 + 1.51140386e-01 1.51085587e-01 1.51030624e-01 1.50975496e-01 1.50920202e-01 + 1.50864742e-01 1.50809116e-01 1.50753322e-01 1.50697360e-01 1.50641229e-01 + 1.50584929e-01 1.50528459e-01 1.50471818e-01 1.50415007e-01 1.50358023e-01 + 1.50300867e-01 1.50243538e-01 1.50186035e-01 1.50128358e-01 1.50070506e-01 + 1.50012478e-01 1.49954274e-01 1.49895893e-01 1.49837334e-01 1.49778596e-01 + 1.49719680e-01 1.49660584e-01 1.49601308e-01 1.49541850e-01 1.49482211e-01 + 1.49422390e-01 1.49362385e-01 1.49302197e-01 1.49241824e-01 1.49181266e-01 + 1.49120523e-01 1.49059593e-01 1.48998475e-01 1.48937170e-01 1.48875676e-01 + 1.48813992e-01 1.48752119e-01 1.48690055e-01 1.48627799e-01 1.48565351e-01 + 1.48502710e-01 1.48439876e-01 1.48376847e-01 1.48313623e-01 1.48250203e-01 + 1.48186586e-01 1.48122773e-01 1.48058761e-01 1.47994550e-01 1.47930139e-01 + 1.47865528e-01 1.47800717e-01 1.47735703e-01 1.47670486e-01 1.47605066e-01 + 1.47539442e-01 1.47473613e-01 1.47407579e-01 1.47341337e-01 1.47274889e-01 + 1.47208232e-01 1.47141367e-01 1.47074292e-01 1.47007006e-01 1.46939509e-01 + 1.46871800e-01 1.46803878e-01 1.46735743e-01 1.46667393e-01 1.46598827e-01 + 1.46530046e-01 1.46461047e-01 1.46391831e-01 1.46322396e-01 1.46252742e-01 + 1.46182867e-01 1.46112772e-01 1.46042454e-01 1.45971913e-01 1.45901149e-01 + 1.45830160e-01 1.45758946e-01 1.45687506e-01 1.45615839e-01 1.45543943e-01 + 1.45471819e-01 1.45399465e-01 1.45326880e-01 1.45254064e-01 1.45181016e-01 + 1.45107734e-01 1.45034218e-01 1.44960467e-01 1.44886480e-01 1.44812256e-01 + 1.44737795e-01 1.44663094e-01 1.44588154e-01 1.44512974e-01 1.44437552e-01 + 1.44361888e-01 1.44285981e-01 1.44209829e-01 1.44133432e-01 1.44056789e-01 + 1.43979899e-01 1.43902761e-01 1.43825374e-01 1.43747737e-01 1.43669849e-01 + 1.43591710e-01 1.43513317e-01 1.43434671e-01 1.43355770e-01 1.43276613e-01 + 1.43197200e-01 1.43117528e-01 1.43037599e-01 1.42957409e-01 1.42876959e-01 + 1.42796247e-01 1.42715272e-01 1.42634034e-01 1.42552530e-01 1.42470761e-01 + 1.42388726e-01 1.42306422e-01 1.42223850e-01 1.42141007e-01 1.42057894e-01 + 1.41974509e-01 1.41890851e-01 1.41806919e-01 1.41722711e-01 1.41638228e-01 + 1.41553467e-01 1.41468428e-01 1.41383109e-01 1.41297511e-01 1.41211630e-01 + 1.41125467e-01 1.41039020e-01 1.40952288e-01 1.40865271e-01 1.40777966e-01 + 1.40690373e-01 1.40602491e-01 1.40514319e-01 1.40425855e-01 1.40337099e-01 + 1.40248048e-01 1.40158703e-01 1.40069062e-01 1.39979124e-01 1.39888888e-01 + 1.39798352e-01 1.39707515e-01 1.39616377e-01 1.39524936e-01 1.39433191e-01 + 1.39341140e-01 1.39248784e-01 1.39156119e-01 1.39063146e-01 1.38969862e-01 + 1.38876268e-01 1.38782361e-01 1.38688141e-01 1.38593606e-01 1.38498755e-01 + 1.38403586e-01 1.38308099e-01 1.38212293e-01 1.38116166e-01 1.38019716e-01 + 1.37922943e-01 1.37825846e-01 1.37728423e-01 1.37630672e-01 1.37532594e-01 + 1.37434185e-01 1.37335446e-01 1.37236375e-01 1.37136970e-01 1.37037230e-01 + 1.36937155e-01 1.36836742e-01 1.36735991e-01 1.36634900e-01 1.36533467e-01 + 1.36431692e-01 1.36329574e-01 1.36227110e-01 1.36124300e-01 1.36021142e-01 + 1.35917635e-01 1.35813778e-01 1.35709568e-01 1.35605006e-01 1.35500089e-01 + 1.35394817e-01 1.35289187e-01 1.35183199e-01 1.35076851e-01 1.34970142e-01 + 1.34863070e-01 1.34755634e-01 1.34647833e-01 1.34539665e-01 1.34431128e-01 + 1.34322223e-01 1.34212946e-01 1.34103297e-01 1.33993274e-01 1.33882876e-01 + 1.33772101e-01 1.33660948e-01 1.33549416e-01 1.33437503e-01 1.33325207e-01 + 1.33212528e-01 1.33099463e-01 1.32986012e-01 1.32872172e-01 1.32757943e-01 + 1.32643323e-01 1.32528310e-01 1.32412904e-01 1.32297101e-01 1.32180902e-01 + 1.32064305e-01 1.31947307e-01 1.31829908e-01 1.31712106e-01 1.31593899e-01 + 1.31475287e-01 1.31356267e-01 1.31236838e-01 1.31116998e-01 1.30996746e-01 + 1.30876081e-01 1.30755001e-01 1.30633504e-01 1.30511588e-01 1.30389253e-01 + 1.30266497e-01 1.30143318e-01 1.30019714e-01 1.29895684e-01 1.29771227e-01 + 1.29646341e-01 1.29521024e-01 1.29395274e-01 1.29269091e-01 1.29142472e-01 + 1.29015417e-01 1.28887922e-01 1.28759987e-01 1.28631611e-01 1.28502791e-01 + 1.28373525e-01 1.28243813e-01 1.28113653e-01 1.27983043e-01 1.27851981e-01 + 1.27720466e-01 1.27588496e-01 1.27456070e-01 1.27323186e-01 1.27189841e-01 + 1.27056036e-01 1.26921767e-01 1.26787033e-01 1.26651833e-01 1.26516166e-01 + 1.26380028e-01 1.26243419e-01 1.26106337e-01 1.25968780e-01 1.25830747e-01 + 1.25692235e-01 1.25553244e-01 1.25413771e-01 1.25273815e-01 1.25133375e-01 + 1.24992448e-01 1.24851032e-01 1.24709127e-01 1.24566730e-01 1.24423839e-01 + 1.24280454e-01 1.24136571e-01 1.23992190e-01 1.23847309e-01 1.23701926e-01 + 1.23556040e-01 1.23409647e-01 1.23262748e-01 1.23115340e-01 1.22967422e-01 + 1.22818991e-01 1.22670046e-01 1.22520585e-01 1.22370607e-01 1.22220110e-01 + 1.22069091e-01 1.21917550e-01 1.21765484e-01 1.21612892e-01 1.21459773e-01 + 1.21306123e-01 1.21151942e-01 1.20997228e-01 1.20841979e-01 1.20686193e-01 + 1.20529869e-01 1.20373004e-01 1.20215598e-01 1.20057648e-01 1.19899152e-01 + 1.19740109e-01 1.19580518e-01 1.19420375e-01 1.19259680e-01 1.19098431e-01 + 1.18936626e-01 1.18774263e-01 1.18611341e-01 1.18447857e-01 1.18283810e-01 + 1.18119199e-01 1.17954021e-01 1.17788276e-01 1.17621960e-01 1.17455072e-01 + 1.17287611e-01 1.17119575e-01 1.16950961e-01 1.16781770e-01 1.16611997e-01 + 1.16441643e-01 1.16270705e-01 1.16099181e-01 1.15927070e-01 1.15754370e-01 + 1.15581079e-01 1.15407195e-01 1.15232718e-01 1.15057644e-01 1.14881973e-01 + 1.14705703e-01 1.14528831e-01 1.14351357e-01 1.14173279e-01 1.13994594e-01 + 1.13815302e-01 1.13635400e-01 1.13454887e-01 1.13273762e-01 1.13092022e-01 + 1.12909666e-01 1.12726692e-01 1.12543099e-01 1.12358884e-01 1.12174047e-01 + 1.11988586e-01 1.11802499e-01 1.11615785e-01 1.11428441e-01 1.11240467e-01 + 1.11051860e-01 1.10862619e-01 1.10672743e-01 1.10482230e-01 1.10291079e-01 + 1.10099287e-01 1.09906853e-01 1.09713777e-01 1.09520055e-01 1.09325688e-01 + 1.09130672e-01 1.08935008e-01 1.08738692e-01 1.08541725e-01 1.08344104e-01 + 1.08145827e-01 1.07946894e-01 1.07747304e-01 1.07547053e-01 1.07346142e-01 + 1.07144569e-01 1.06942333e-01 1.06739431e-01 1.06535863e-01 1.06331627e-01 + 1.06126723e-01 1.05921148e-01 1.05714902e-01 1.05507982e-01 1.05300389e-01 + 1.05092120e-01 1.04883175e-01 1.04673552e-01 1.04463250e-01 1.04252268e-01 + 1.04040604e-01 1.03828258e-01 1.03615228e-01 1.03401513e-01 1.03187113e-01 + 1.02972026e-01 1.02756250e-01 1.02539786e-01 1.02322631e-01 1.02104785e-01 + 1.01886248e-01 1.01667017e-01 1.01447092e-01 1.01226473e-01 1.01005158e-01 + 1.00783146e-01 1.00560436e-01 1.00337028e-01 1.00112922e-01 9.98881150e-02 + 9.96626076e-02 9.94363989e-02 9.92094881e-02 9.89818746e-02 9.87535577e-02 + 9.85245367e-02 9.82948112e-02 9.80643804e-02 9.78332440e-02 9.76014013e-02 + 9.73688518e-02 9.71355952e-02 9.69016310e-02 9.66669588e-02 9.64315783e-02 + 9.61954891e-02 9.59586908e-02 9.57211834e-02 9.54829664e-02 9.52440398e-02 + 9.50044033e-02 9.47640568e-02 9.45230003e-02 9.42812335e-02 9.40387567e-02 + 9.37955696e-02 9.35516725e-02 9.33070653e-02 9.30617482e-02 9.28157214e-02 + 9.25689850e-02 9.23215393e-02 9.20733846e-02 9.18245212e-02 9.15749495e-02 + 9.13246699e-02 9.10736827e-02 9.08219886e-02 9.05695880e-02 9.03164816e-02 + 9.00626699e-02 8.98081536e-02 8.95529334e-02 8.92970102e-02 8.90403847e-02 + 8.87830577e-02 8.85250303e-02 8.82663032e-02 8.80068776e-02 8.77467546e-02 + 8.74859351e-02 8.72244204e-02 8.69622117e-02 8.66993103e-02 8.64357174e-02 + 8.61714345e-02 8.59064630e-02 8.56408044e-02 8.53744602e-02 8.51074320e-02 + 8.48397215e-02 8.45713304e-02 8.43022605e-02 8.40325136e-02 8.37620916e-02 + 8.34909965e-02 8.32192302e-02 8.29467950e-02 8.26736929e-02 8.23999262e-02 + 8.21254970e-02 8.18504079e-02 8.15746611e-02 8.12982592e-02 8.10212047e-02 + 8.07435002e-02 8.04651484e-02 8.01861521e-02 7.99065141e-02 7.96262372e-02 + 7.93453246e-02 7.90637791e-02 7.87816039e-02 7.84988023e-02 7.82153774e-02 + 7.79313327e-02 7.76466715e-02 7.73613974e-02 7.70755139e-02 7.67890246e-02 + 7.65019334e-02 7.62142440e-02 7.59259604e-02 7.56370865e-02 7.53476263e-02 + 7.50575841e-02 7.47669641e-02 7.44757706e-02 7.41840079e-02 7.38916807e-02 + 7.35987934e-02 7.33053507e-02 7.30113575e-02 7.27168185e-02 7.24217387e-02 + 7.21261231e-02 7.18299768e-02 7.15333051e-02 7.12361133e-02 7.09384067e-02 + 7.06401909e-02 7.03414715e-02 7.00422541e-02 6.97425446e-02 6.94423488e-02 + 6.91416728e-02 6.88405225e-02 6.85389043e-02 6.82368244e-02 6.79342891e-02 + 6.76313050e-02 6.73278787e-02 6.70240169e-02 6.67197264e-02 6.64150140e-02 + 6.61098869e-02 6.58043520e-02 6.54984168e-02 6.51920884e-02 6.48853744e-02 + 6.45782823e-02 6.42708198e-02 6.39629946e-02 6.36548146e-02 6.33462879e-02 + 6.30374225e-02 6.27282267e-02 6.24187088e-02 6.21088773e-02 6.17987406e-02 + 6.14883076e-02 6.11775870e-02 6.08665877e-02 6.05553188e-02 6.02437893e-02 + 5.99320086e-02 5.96199860e-02 5.93077311e-02 5.89952534e-02 5.86825627e-02 + 5.83696689e-02 5.80565818e-02 5.77433118e-02 5.74298688e-02 5.71162634e-02 + 5.68025058e-02 5.64886069e-02 5.61745771e-02 5.58604274e-02 5.55461687e-02 + 5.52318121e-02 5.49173687e-02 5.46028499e-02 5.42882672e-02 5.39736321e-02 + 5.36589562e-02 5.33442514e-02 5.30295296e-02 5.27148029e-02 5.24000835e-02 + 5.20853836e-02 5.17707158e-02 5.14560924e-02 5.11415263e-02 5.08270302e-02 + 5.05126170e-02 5.01982998e-02 4.98840918e-02 4.95700061e-02 4.92560564e-02 + 4.89422560e-02 4.86286186e-02 4.83151580e-02 4.80018882e-02 4.76888231e-02 + 4.73759769e-02 4.70633638e-02 4.67509982e-02 4.64388946e-02 4.61270676e-02 + 4.58155320e-02 4.55043026e-02 4.51933944e-02 4.48828225e-02 4.45726020e-02 + 4.42627483e-02 4.39532767e-02 4.36442030e-02 4.33355426e-02 4.30273114e-02 + 4.27195253e-02 4.24122002e-02 4.21053521e-02 4.17989974e-02 4.14931524e-02 + 4.11878333e-02 4.08830568e-02 4.05788395e-02 4.02751981e-02 3.99721494e-02 + 3.96697104e-02 3.93678979e-02 3.90667293e-02 3.87662217e-02 3.84663923e-02 + 3.81672586e-02 3.78688381e-02 3.75711484e-02 3.72742070e-02 3.69780319e-02 + 3.66826407e-02 3.63880515e-02 3.60942822e-02 3.58013509e-02 3.55092758e-02 + 3.52180750e-02 3.49277670e-02 3.46383700e-02 3.43499026e-02 3.40623832e-02 + 3.37758304e-02 3.34902629e-02 3.32056994e-02 3.29221586e-02 3.26396593e-02 + 3.23582205e-02 3.20778611e-02 3.17986000e-02 3.15204562e-02 3.12434489e-02 + 3.09675972e-02 3.06929202e-02 3.04194370e-02 3.01471670e-02 2.98761294e-02 + 2.96063435e-02 2.93378286e-02 2.90706040e-02 2.88046891e-02 2.85401033e-02 + 2.82768660e-02 2.80149966e-02 2.77545145e-02 2.74954392e-02 2.72377901e-02 + 2.69815866e-02 2.67268481e-02 2.64735941e-02 2.62218441e-02 2.59716174e-02 + 2.57229334e-02 2.54758115e-02 2.52302711e-02 2.49863315e-02 2.47440120e-02 + 2.45033320e-02 2.42643105e-02 2.40269669e-02 2.37913204e-02 2.35573900e-02 + 2.33251949e-02 2.30947540e-02 2.28660864e-02 2.26392110e-02 2.24141466e-02 + 2.21909120e-02 2.19695260e-02 2.17500072e-02 2.15323742e-02 2.13166455e-02 + 2.11028396e-02 2.08909747e-02 2.06810691e-02 2.04731411e-02 2.02672086e-02 + 2.00632896e-02 1.98614019e-02 1.96615634e-02 1.94637917e-02 1.92681043e-02 + 1.90745186e-02 1.88830519e-02 1.86937213e-02 1.85065440e-02 1.83215368e-02 + 1.81387165e-02 1.79580998e-02 1.77797030e-02 1.76035426e-02 1.74296348e-02 + 1.72579956e-02 1.70886409e-02 1.69215864e-02 1.67568478e-02 1.65944402e-02 + 1.64343791e-02 1.62766795e-02 1.61213562e-02 1.59684240e-02 1.58178973e-02 + 1.56697904e-02 1.55241176e-02 1.53808927e-02 1.52401295e-02 1.51018416e-02 + 1.49660422e-02 1.48327446e-02 1.47019616e-02 1.45737059e-02 1.44479901e-02 + 1.43248264e-02 1.42042269e-02 1.40862035e-02 1.39707676e-02 1.38579308e-02 + 1.37477041e-02 1.36400985e-02 1.35351246e-02 1.34327929e-02 1.33331135e-02 + 1.32360964e-02 1.31417514e-02 1.30500877e-02 1.29611147e-02 1.28748412e-02 + 1.27912760e-02 1.27104274e-02 1.26323037e-02 1.25569127e-02 1.24842620e-02 + 1.24143590e-02 1.23472109e-02 1.22828243e-02 1.22212060e-02 1.21623621e-02 + 1.21062986e-02 1.20530213e-02 1.20025356e-02 1.19548467e-02 1.19099595e-02 + 1.18678785e-02 1.18286081e-02 1.17921522e-02 1.17585148e-02 1.17276991e-02 + 1.16997084e-02 1.16745455e-02 1.16522130e-02 1.16327133e-02 1.16160484e-02 + 1.16022198e-02 1.15912292e-02 1.15830776e-02 1.15777658e-02 1.15752944e-02 + 1.15756637e-02 1.15788736e-02 1.15849238e-02 1.15938137e-02 1.16055423e-02 + 1.16201084e-02 1.16375106e-02 1.16577471e-02 1.16808156e-02 1.17067140e-02 + 1.17354395e-02 1.17669892e-02 1.18013598e-02 1.18385478e-02 1.18785493e-02 + 1.19213604e-02 1.19669765e-02 1.20153931e-02 1.20666051e-02 1.21206073e-02 + 1.21773942e-02 1.22369601e-02 1.22992988e-02 1.23644040e-02 1.24322691e-02 + 1.25028871e-02 1.25762510e-02 1.26523533e-02 1.27311863e-02 1.28127420e-02 + 1.28970121e-02 1.29839883e-02 1.30736618e-02 1.31660235e-02 1.32610642e-02 + 1.33587744e-02 1.34591444e-02 1.35621641e-02 1.36678232e-02 1.37761113e-02 + 1.38870177e-02 1.40005314e-02 1.41166411e-02 1.42353355e-02 1.43566028e-02 + 1.44804312e-02 1.46068085e-02 1.47357225e-02 1.48671606e-02 1.50011099e-02 + 1.51375576e-02 1.52764904e-02 1.54178949e-02 1.55617576e-02 1.57080646e-02 + 1.58568020e-02 1.60079555e-02 1.61615108e-02 1.63174534e-02 1.64757685e-02 + 1.66364411e-02 1.67994562e-02 1.69647985e-02 1.71324525e-02 1.73024027e-02 + 1.74746333e-02 1.76491283e-02 1.78258717e-02 1.80048472e-02 1.81860385e-02 + 1.83694290e-02 1.85550020e-02 1.87427408e-02 1.89326284e-02 1.91246477e-02 + 1.93187815e-02 1.95150125e-02 1.97133233e-02 1.99136963e-02 2.01161138e-02 + 2.03205580e-02 2.05270111e-02 2.07354551e-02 2.09458718e-02 2.11582431e-02 + 2.13725507e-02 2.15887763e-02 2.18069014e-02 2.20269075e-02 2.22487759e-02 + 2.24724880e-02 2.26980251e-02 2.29253683e-02 2.31544988e-02 2.33853976e-02 + 2.36180458e-02 2.38524242e-02 2.40885138e-02 2.43262955e-02 2.45657500e-02 + 2.48068582e-02 2.50496007e-02 2.52939584e-02 2.55399119e-02 2.57874418e-02 + 2.60365287e-02 2.62871534e-02 2.65392963e-02 2.67929381e-02 2.70480593e-02 + 2.73046406e-02 2.75626624e-02 2.78221053e-02 2.80829500e-02 2.83451769e-02 + 2.86087667e-02 2.88736999e-02 2.91399572e-02 2.94075191e-02 2.96763664e-02 + 2.99464796e-02 3.02178395e-02 3.04904267e-02 3.07642221e-02 3.10392064e-02 + 3.13153605e-02 3.15926651e-02 3.18711011e-02 3.21506496e-02 3.24312916e-02 + 3.27130079e-02 3.29957798e-02 3.32795883e-02 3.35644146e-02 3.38502401e-02 + 3.41370460e-02 3.44248137e-02 3.47135246e-02 3.50031602e-02 3.52937021e-02 + 3.55851319e-02 3.58774314e-02 3.61705823e-02 3.64645665e-02 3.67593660e-02 + 3.70549627e-02 3.73513388e-02 3.76484764e-02 3.79463579e-02 3.82449655e-02 + 3.85442817e-02 3.88442891e-02 3.91449703e-02 3.94463079e-02 3.97482849e-02 + 4.00508841e-02 4.03540886e-02 4.06578813e-02 4.09622456e-02 4.12671648e-02 + 4.15726221e-02 4.18786013e-02 4.21850858e-02 4.24920594e-02 4.27995060e-02 + 4.31074094e-02 4.34157537e-02 4.37245230e-02 4.40337017e-02 4.43432741e-02 + 4.46532246e-02 4.49635380e-02 4.52741988e-02 4.55851920e-02 4.58965024e-02 + 4.62081152e-02 4.65200155e-02 4.68321886e-02 4.71446199e-02 4.74572950e-02 + 4.77701996e-02 4.80833192e-02 4.83966400e-02 4.87101479e-02 4.90238289e-02 + 4.93376695e-02 4.96516559e-02 4.99657746e-02 5.02800123e-02 5.05943557e-02 + 5.09087917e-02 5.12233073e-02 5.15378895e-02 5.18525256e-02 5.21672030e-02 + 5.24819092e-02 5.27966317e-02 5.31113583e-02 5.34260768e-02 5.37407752e-02 + 5.40554416e-02 5.43700642e-02 5.46846314e-02 5.49991317e-02 5.53135536e-02 + 5.56278858e-02 5.59421172e-02 5.62562368e-02 5.65702336e-02 5.68840968e-02 + 5.71978158e-02 5.75113800e-02 5.78247790e-02 5.81380025e-02 5.84510402e-02 + 5.87638822e-02 5.90765185e-02 5.93889392e-02 5.97011346e-02 6.00130952e-02 + 6.03248115e-02 6.06362741e-02 6.09474738e-02 6.12584015e-02 6.15690482e-02 + 6.18794050e-02 6.21894631e-02 6.24992140e-02 6.28086489e-02 6.31177596e-02 + 6.34265377e-02 6.37349751e-02 6.40430636e-02 6.43507952e-02 6.46581622e-02 + 6.49651567e-02 6.52717712e-02 6.55779981e-02 6.58838299e-02 6.61892594e-02 + 6.64942794e-02 6.67988828e-02 6.71030625e-02 6.74068117e-02 6.77101237e-02 + 6.80129917e-02 6.83154092e-02 6.86173697e-02 6.89188669e-02 6.92198944e-02 + 6.95204462e-02 6.98205161e-02 7.01200982e-02 7.04191867e-02 7.07177757e-02 + 7.10158596e-02 7.13134329e-02 7.16104900e-02 7.19070256e-02 7.22030344e-02 + 7.24985112e-02 7.27934509e-02 7.30878484e-02 7.33816990e-02 7.36749977e-02 + 7.39677398e-02 7.42599207e-02 7.45515358e-02 7.48425807e-02 7.51330509e-02 + 7.54229421e-02 7.57122502e-02 7.60009711e-02 7.62891006e-02 7.65766348e-02 + 7.68635699e-02 7.71499020e-02 7.74356274e-02 7.77207425e-02 7.80052438e-02 + 7.82891277e-02 7.85723908e-02 7.88550299e-02 7.91370416e-02 7.94184229e-02 + 7.96991705e-02 7.99792815e-02 8.02587530e-02 8.05375820e-02 8.08157657e-02 + 8.10933015e-02 8.13701866e-02 8.16464184e-02 8.19219944e-02 8.21969122e-02 + 8.24711693e-02 8.27447635e-02 8.30176924e-02 8.32899539e-02 8.35615458e-02 + 8.38324661e-02 8.41027128e-02 8.43722839e-02 8.46411775e-02 8.49093918e-02 + 8.51769250e-02 8.54437756e-02 8.57099417e-02 8.59754218e-02 8.62402144e-02 + 8.65043180e-02 8.67677312e-02 8.70304527e-02 8.72924810e-02 8.75538151e-02 + 8.78144536e-02 8.80743954e-02 8.83336395e-02 8.85921847e-02 8.88500302e-02 + 8.91071748e-02 8.93636178e-02 8.96193583e-02 8.98743956e-02 9.01287287e-02 + 9.03823571e-02 9.06352801e-02 9.08874971e-02 9.11390074e-02 9.13898107e-02 + 9.16399063e-02 9.18892939e-02 9.21379731e-02 9.23859434e-02 9.26332047e-02 + 9.28797566e-02 9.31255989e-02 9.33707315e-02 9.36151540e-02 9.38588666e-02 + 9.41018690e-02 9.43441612e-02 9.45857433e-02 9.48266152e-02 9.50667771e-02 + 9.53062290e-02 9.55449711e-02 9.57830036e-02 9.60203266e-02 9.62569405e-02 + 9.64928454e-02 9.67280417e-02 9.69625298e-02 9.71963100e-02 9.74293827e-02 + 9.76617483e-02 9.78934074e-02 9.81243603e-02 9.83546076e-02 9.85841499e-02 + 9.88129878e-02 9.90411218e-02 9.92685525e-02 9.94952807e-02 9.97213070e-02 + 9.99466321e-02 1.00171257e-01 1.00395182e-01 1.00618408e-01 1.00840936e-01 + 1.01062766e-01 1.01283901e-01 1.01504340e-01 1.01724084e-01 1.01943134e-01 + 1.02161492e-01 1.02379158e-01 1.02596133e-01 1.02812418e-01 1.03028014e-01 + 1.03242923e-01 1.03457145e-01 1.03670682e-01 1.03883534e-01 1.04095702e-01 + 1.04307189e-01 1.04517994e-01 1.04728119e-01 1.04937566e-01 1.05146335e-01 + 1.05354428e-01 1.05561846e-01 1.05768590e-01 1.05974662e-01 1.06180062e-01 + 1.06384793e-01 1.06588855e-01 1.06792249e-01 1.06994978e-01 1.07197042e-01 + 1.07398443e-01 1.07599182e-01 1.07799261e-01 1.07998680e-01 1.08197442e-01 + 1.08395548e-01 1.08592999e-01 1.08789797e-01 1.08985943e-01 1.09181439e-01 + 1.09376286e-01 1.09570485e-01 1.09764039e-01 1.09956948e-01 1.10149214e-01 + 1.10340840e-01 1.10531825e-01 1.10722172e-01 1.10911883e-01 1.11100959e-01 + 1.11289401e-01 1.11477211e-01 1.11664391e-01 1.11850942e-01 1.12036866e-01 + 1.12222165e-01 1.12406840e-01 1.12590892e-01 1.12774325e-01 1.12957138e-01 + 1.13139333e-01 1.13320913e-01 1.13501880e-01 1.13682233e-01 1.13861976e-01 + 1.14041111e-01 1.14219637e-01 1.14397559e-01 1.14574876e-01 1.14751591e-01 + 1.14927705e-01 1.15103221e-01 1.15278139e-01 1.15452462e-01 1.15626191e-01 + 1.15799328e-01 1.15971875e-01 1.16143834e-01 1.16315205e-01 1.16485991e-01 + 1.16656194e-01 1.16825815e-01 1.16994856e-01 1.17163320e-01 1.17331206e-01 + 1.17498518e-01 1.17665257e-01 1.17831424e-01 1.17997022e-01 1.18162053e-01 + 1.18326517e-01 1.18490417e-01 1.18653754e-01 1.18816531e-01 1.18978749e-01 + 1.19140409e-01 1.19301514e-01 1.19462065e-01 1.19622064e-01 1.19781513e-01 + 1.19940414e-01 1.20098767e-01 1.20256576e-01 1.20413841e-01 1.20570565e-01 + 1.20726749e-01 1.20882395e-01 1.21037505e-01 1.21192080e-01 1.21346123e-01 + 1.21499635e-01 1.21652617e-01 1.21805072e-01 1.21957001e-01 1.22108406e-01 + 1.22259289e-01 1.22409651e-01 1.22559495e-01 1.22708821e-01 1.22857632e-01 + 1.23005930e-01 1.23153715e-01 1.23300991e-01 1.23447758e-01 1.23594019e-01 + 1.23739774e-01 1.23885027e-01 1.24029777e-01 1.24174028e-01 1.24317781e-01 + 1.24461038e-01 1.24603800e-01 1.24746069e-01 1.24887847e-01 1.25029136e-01 + 1.25169936e-01 1.25310251e-01 1.25450081e-01 1.25589428e-01 1.25728294e-01 + 1.25866681e-01 1.26004590e-01 1.26142024e-01 1.26278983e-01 1.26415469e-01 + 1.26551484e-01 1.26687030e-01 1.26822109e-01 1.26956721e-01 1.27090870e-01 + 1.27224555e-01 1.27357780e-01 1.27490545e-01 1.27622852e-01 1.27754704e-01 + 1.27886101e-01 1.28017045e-01 1.28147538e-01 1.28277582e-01 1.28407177e-01 + 1.28536327e-01 1.28665031e-01 1.28793293e-01 1.28921113e-01 1.29048493e-01 + 1.29175435e-01 1.29301941e-01 1.29428011e-01 1.29553648e-01 1.29678853e-01 + 1.29803627e-01 1.29927973e-01 1.30051892e-01 1.30175385e-01 1.30298454e-01 + 1.30421101e-01 1.30543327e-01 1.30665133e-01 1.30786522e-01 1.30907494e-01 + 1.31028051e-01 1.31148196e-01 1.31267929e-01 1.31387251e-01 1.31506165e-01 + 1.31624672e-01 1.31742773e-01 1.31860470e-01 1.31977765e-01 1.32094658e-01 + 1.32211152e-01 1.32327248e-01 1.32442947e-01 1.32558252e-01 1.32673162e-01 + 1.32787680e-01 1.32901808e-01 1.33015546e-01 1.33128897e-01 1.33241861e-01 + 1.33354441e-01 1.33466637e-01 1.33578451e-01 1.33689884e-01 1.33800939e-01 + 1.33911615e-01 1.34021916e-01 1.34131841e-01 1.34241394e-01 1.34350574e-01 + 1.34459383e-01 1.34567824e-01 1.34675896e-01 1.34783602e-01 1.34890944e-01 + 1.34997921e-01 1.35104536e-01 1.35210791e-01 1.35316685e-01 1.35422222e-01 + 1.35527402e-01 1.35632226e-01 1.35736697e-01 1.35840814e-01 1.35944580e-01 + 1.36047997e-01 1.36151064e-01 1.36253784e-01 1.36356158e-01 1.36458187e-01 + 1.36559873e-01 1.36661216e-01 1.36762219e-01 1.36862882e-01 1.36963207e-01 + 1.37063195e-01 1.37162847e-01 1.37262165e-01 1.37361150e-01 1.37459803e-01 + 1.37558126e-01 1.37656119e-01 1.37753784e-01 1.37851123e-01 1.37948136e-01 + 1.38044824e-01 1.38141190e-01 1.38237233e-01 1.38332957e-01 1.38428361e-01 + 1.38523446e-01 1.38618215e-01 1.38712668e-01 1.38806807e-01 1.38900633e-01 + 1.38994146e-01 1.39087349e-01 1.39180241e-01 1.39272826e-01 1.39365103e-01 + 1.39457074e-01 1.39548740e-01 1.39640102e-01 1.39731162e-01 1.39821920e-01 + 1.39912378e-01 1.40002537e-01 1.40092398e-01 1.40181961e-01 1.40271230e-01 + 1.40360203e-01 1.40448884e-01 1.40537272e-01 1.40625368e-01 1.40713175e-01 + 1.40800693e-01 1.40887923e-01 1.40974866e-01 1.41061523e-01 1.41147896e-01 + 1.41233986e-01 1.41319793e-01 1.41405319e-01 1.41490565e-01 1.41575532e-01 + 1.41660220e-01 1.41744632e-01 1.41828768e-01 1.41912628e-01 1.41996216e-01 + 1.42079530e-01 1.42162572e-01 1.42245344e-01 1.42327847e-01 1.42410081e-01 + 1.42492047e-01 1.42573747e-01 1.42655181e-01 1.42736351e-01 1.42817257e-01 + 1.42897901e-01 1.42978283e-01 1.43058405e-01 1.43138268e-01 1.43217872e-01 + 1.43297218e-01 1.43376309e-01 1.43455143e-01 1.43533723e-01 1.43612050e-01 + 1.43690124e-01 1.43767947e-01 1.43845519e-01 1.43922841e-01 1.43999914e-01 + 1.44076740e-01 1.44153319e-01 1.44229652e-01 1.44305740e-01 1.44381584e-01 + 1.44457185e-01 1.44532544e-01 1.44607662e-01 1.44682539e-01 1.44757177e-01 + 1.44831577e-01 1.44905739e-01 1.44979665e-01 1.45053355e-01 1.45126809e-01 + 1.45200031e-01 1.45273019e-01 1.45345774e-01 1.45418299e-01 1.45490593e-01 + 1.45562658e-01 1.45634494e-01 1.45706102e-01 1.45777484e-01 1.45848639e-01 + 1.45919569e-01 1.45990275e-01 1.46060758e-01 1.46131018e-01 1.46201056e-01 + 1.46270873e-01 1.46340470e-01 1.46409848e-01 1.46479008e-01 1.46547950e-01 + 1.46616675e-01 1.46685184e-01 1.46753479e-01 1.46821558e-01 1.46889425e-01 + 1.46957079e-01 1.47024520e-01 1.47091751e-01 1.47158772e-01 1.47225583e-01 + 1.47292185e-01 1.47358580e-01 1.47424768e-01 1.47490749e-01 1.47556524e-01 + 1.47622095e-01 1.47687462e-01 1.47752626e-01 1.47817587e-01 1.47882347e-01 + 1.38518338e-01 1.38476565e-01 1.38434740e-01 1.38392864e-01 1.38350938e-01 + 1.38308960e-01 1.38266931e-01 1.38224851e-01 1.38182720e-01 1.38140538e-01 + 1.38098305e-01 1.38056020e-01 1.38013684e-01 1.37971296e-01 1.37928857e-01 + 1.37886366e-01 1.37843824e-01 1.37801230e-01 1.37758585e-01 1.37715888e-01 + 1.37673139e-01 1.37630338e-01 1.37587486e-01 1.37544581e-01 1.37501625e-01 + 1.37458617e-01 1.37415556e-01 1.37372444e-01 1.37329279e-01 1.37286062e-01 + 1.37242794e-01 1.37199472e-01 1.37156099e-01 1.37112673e-01 1.37069195e-01 + 1.37025664e-01 1.36982081e-01 1.36938445e-01 1.36894757e-01 1.36851016e-01 + 1.36807222e-01 1.36763376e-01 1.36719477e-01 1.36675525e-01 1.36631520e-01 + 1.36587463e-01 1.36543352e-01 1.36499189e-01 1.36454972e-01 1.36410702e-01 + 1.36366380e-01 1.36322004e-01 1.36277574e-01 1.36233092e-01 1.36188556e-01 + 1.36143967e-01 1.36099325e-01 1.36054629e-01 1.36009880e-01 1.35965077e-01 + 1.35920221e-01 1.35875311e-01 1.35830347e-01 1.35785330e-01 1.35740259e-01 + 1.35695134e-01 1.35649956e-01 1.35604723e-01 1.35559437e-01 1.35514096e-01 + 1.35468702e-01 1.35423254e-01 1.35377752e-01 1.35332195e-01 1.35286585e-01 + 1.35240920e-01 1.35195201e-01 1.35149428e-01 1.35103600e-01 1.35057718e-01 + 1.35011782e-01 1.34965791e-01 1.34919746e-01 1.34873646e-01 1.34827492e-01 + 1.34781283e-01 1.34735020e-01 1.34688702e-01 1.34642329e-01 1.34595901e-01 + 1.34549419e-01 1.34502882e-01 1.34456290e-01 1.34409643e-01 1.34362941e-01 + 1.34316184e-01 1.34269372e-01 1.34222505e-01 1.34175583e-01 1.34128606e-01 + 1.34081573e-01 1.34034486e-01 1.33987343e-01 1.33940145e-01 1.33892892e-01 + 1.33845583e-01 1.33798219e-01 1.33750799e-01 1.33703324e-01 1.33655794e-01 + 1.33608207e-01 1.33560566e-01 1.33512869e-01 1.33465116e-01 1.33417307e-01 + 1.33369443e-01 1.33321523e-01 1.33273547e-01 1.33225515e-01 1.33177428e-01 + 1.33129285e-01 1.33081085e-01 1.33032830e-01 1.32984519e-01 1.32936152e-01 + 1.32887728e-01 1.32839249e-01 1.32790713e-01 1.32742122e-01 1.32693474e-01 + 1.32644770e-01 1.32596010e-01 1.32547193e-01 1.32498320e-01 1.32449391e-01 + 1.32400405e-01 1.32351363e-01 1.32302265e-01 1.32253110e-01 1.32203899e-01 + 1.32154631e-01 1.32105306e-01 1.32055925e-01 1.32006488e-01 1.31956993e-01 + 1.31907442e-01 1.31857835e-01 1.31808170e-01 1.31758449e-01 1.31708671e-01 + 1.31658836e-01 1.31608945e-01 1.31558996e-01 1.31508991e-01 1.31458929e-01 + 1.31408809e-01 1.31358633e-01 1.31308400e-01 1.31258110e-01 1.31207762e-01 + 1.31157358e-01 1.31106897e-01 1.31056378e-01 1.31005802e-01 1.30955169e-01 + 1.30904479e-01 1.30853732e-01 1.30802927e-01 1.30752065e-01 1.30701146e-01 + 1.30650170e-01 1.30599136e-01 1.30548045e-01 1.30496896e-01 1.30445690e-01 + 1.30394426e-01 1.30343106e-01 1.30291727e-01 1.30240291e-01 1.30188798e-01 + 1.30137247e-01 1.30085639e-01 1.30033973e-01 1.29982249e-01 1.29930468e-01 + 1.29878629e-01 1.29826732e-01 1.29774778e-01 1.29722766e-01 1.29670696e-01 + 1.29618569e-01 1.29566384e-01 1.29514141e-01 1.29461841e-01 1.29409482e-01 + 1.29357066e-01 1.29304592e-01 1.29252060e-01 1.29199470e-01 1.29146823e-01 + 1.29094117e-01 1.29041354e-01 1.28988533e-01 1.28935654e-01 1.28882717e-01 + 1.28829721e-01 1.28776668e-01 1.28723557e-01 1.28670388e-01 1.28617161e-01 + 1.28563876e-01 1.28510533e-01 1.28457132e-01 1.28403673e-01 1.28350156e-01 + 1.28296581e-01 1.28242948e-01 1.28189256e-01 1.28135507e-01 1.28081699e-01 + 1.28027834e-01 1.27973910e-01 1.27919928e-01 1.27865888e-01 1.27811790e-01 + 1.27757634e-01 1.27703420e-01 1.27649147e-01 1.27594816e-01 1.27540427e-01 + 1.27485980e-01 1.27431475e-01 1.27376912e-01 1.27322290e-01 1.27267611e-01 + 1.27212873e-01 1.27158077e-01 1.27103223e-01 1.27048310e-01 1.26993340e-01 + 1.26938311e-01 1.26883224e-01 1.26828079e-01 1.26772875e-01 1.26717614e-01 + 1.26662294e-01 1.26606916e-01 1.26551480e-01 1.26495986e-01 1.26440433e-01 + 1.26384823e-01 1.26329154e-01 1.26273427e-01 1.26217642e-01 1.26161799e-01 + 1.26105898e-01 1.26049938e-01 1.25993920e-01 1.25937845e-01 1.25881711e-01 + 1.25825519e-01 1.25769269e-01 1.25712961e-01 1.25656594e-01 1.25600170e-01 + 1.25543688e-01 1.25487147e-01 1.25430549e-01 1.25373892e-01 1.25317178e-01 + 1.25260405e-01 1.25203574e-01 1.25146686e-01 1.25089739e-01 1.25032735e-01 + 1.24975672e-01 1.24918552e-01 1.24861374e-01 1.24804137e-01 1.24746843e-01 + 1.24689491e-01 1.24632082e-01 1.24574614e-01 1.24517089e-01 1.24459505e-01 + 1.24401864e-01 1.24344166e-01 1.24286409e-01 1.24228595e-01 1.24170723e-01 + 1.24112794e-01 1.24054806e-01 1.23996762e-01 1.23938659e-01 1.23880499e-01 + 1.23822281e-01 1.23764006e-01 1.23705674e-01 1.23647284e-01 1.23588836e-01 + 1.23530331e-01 1.23471769e-01 1.23413149e-01 1.23354472e-01 1.23295737e-01 + 1.23236946e-01 1.23178097e-01 1.23119190e-01 1.23060227e-01 1.23001206e-01 + 1.22942129e-01 1.22882994e-01 1.22823802e-01 1.22764553e-01 1.22705247e-01 + 1.22645884e-01 1.22586464e-01 1.22526988e-01 1.22467454e-01 1.22407864e-01 + 1.22348217e-01 1.22288513e-01 1.22228752e-01 1.22168935e-01 1.22109061e-01 + 1.22049130e-01 1.21989143e-01 1.21929100e-01 1.21869000e-01 1.21808843e-01 + 1.21748630e-01 1.21688361e-01 1.21628036e-01 1.21567654e-01 1.21507216e-01 + 1.21446722e-01 1.21386172e-01 1.21325566e-01 1.21264904e-01 1.21204185e-01 + 1.21143411e-01 1.21082581e-01 1.21021696e-01 1.20960754e-01 1.20899757e-01 + 1.20838704e-01 1.20777596e-01 1.20716432e-01 1.20655212e-01 1.20593937e-01 + 1.20532607e-01 1.20471221e-01 1.20409780e-01 1.20348284e-01 1.20286733e-01 + 1.20225127e-01 1.20163465e-01 1.20101749e-01 1.20039978e-01 1.19978152e-01 + 1.19916271e-01 1.19854335e-01 1.19792345e-01 1.19730300e-01 1.19668200e-01 + 1.19606047e-01 1.19543838e-01 1.19481576e-01 1.19419259e-01 1.19356888e-01 + 1.19294463e-01 1.19231984e-01 1.19169450e-01 1.19106863e-01 1.19044222e-01 + 1.18981528e-01 1.18918779e-01 1.18855977e-01 1.18793122e-01 1.18730213e-01 + 1.18667250e-01 1.18604235e-01 1.18541166e-01 1.18478043e-01 1.18414868e-01 + 1.18351640e-01 1.18288359e-01 1.18225025e-01 1.18161638e-01 1.18098199e-01 + 1.18034707e-01 1.17971163e-01 1.17907566e-01 1.17843917e-01 1.17780216e-01 + 1.17716462e-01 1.17652656e-01 1.17588799e-01 1.17524889e-01 1.17460928e-01 + 1.17396915e-01 1.17332851e-01 1.17268735e-01 1.17204567e-01 1.17140349e-01 + 1.17076079e-01 1.17011757e-01 1.16947385e-01 1.16882962e-01 1.16818488e-01 + 1.16753964e-01 1.16689388e-01 1.16624762e-01 1.16560086e-01 1.16495360e-01 + 1.16430583e-01 1.16365756e-01 1.16300879e-01 1.16235952e-01 1.16170975e-01 + 1.16105949e-01 1.16040873e-01 1.15975748e-01 1.15910573e-01 1.15845349e-01 + 1.15780076e-01 1.15714754e-01 1.15649383e-01 1.15583963e-01 1.15518494e-01 + 1.15452977e-01 1.15387412e-01 1.15321798e-01 1.15256136e-01 1.15190426e-01 + 1.15124668e-01 1.15058862e-01 1.14993008e-01 1.14927107e-01 1.14861158e-01 + 1.14795162e-01 1.14729119e-01 1.14663029e-01 1.14596892e-01 1.14530707e-01 + 1.14464477e-01 1.14398199e-01 1.14331875e-01 1.14265505e-01 1.14199089e-01 + 1.14132627e-01 1.14066119e-01 1.13999565e-01 1.13932965e-01 1.13866320e-01 + 1.13799630e-01 1.13732894e-01 1.13666113e-01 1.13599288e-01 1.13532417e-01 + 1.13465503e-01 1.13398543e-01 1.13331539e-01 1.13264491e-01 1.13197399e-01 + 1.13130263e-01 1.13063084e-01 1.12995861e-01 1.12928594e-01 1.12861284e-01 + 1.12793931e-01 1.12726535e-01 1.12659096e-01 1.12591615e-01 1.12524091e-01 + 1.12456524e-01 1.12388916e-01 1.12321265e-01 1.12253573e-01 1.12185839e-01 + 1.12118063e-01 1.12050246e-01 1.11982388e-01 1.11914489e-01 1.11846549e-01 + 1.11778568e-01 1.11710547e-01 1.11642485e-01 1.11574383e-01 1.11506242e-01 + 1.11438060e-01 1.11369839e-01 1.11301578e-01 1.11233278e-01 1.11164939e-01 + 1.11096561e-01 1.11028144e-01 1.10959689e-01 1.10891195e-01 1.10822663e-01 + 1.10754093e-01 1.10685486e-01 1.10616840e-01 1.10548157e-01 1.10479437e-01 + 1.10410680e-01 1.10341886e-01 1.10273055e-01 1.10204188e-01 1.10135284e-01 + 1.10066345e-01 1.09997369e-01 1.09928358e-01 1.09859311e-01 1.09790229e-01 + 1.09721112e-01 1.09651960e-01 1.09582773e-01 1.09513552e-01 1.09444296e-01 + 1.09375007e-01 1.09305683e-01 1.09236326e-01 1.09166936e-01 1.09097512e-01 + 1.09028055e-01 1.08958566e-01 1.08889044e-01 1.08819489e-01 1.08749902e-01 + 1.08680284e-01 1.08610634e-01 1.08540952e-01 1.08471239e-01 1.08401495e-01 + 1.08331720e-01 1.08261914e-01 1.08192078e-01 1.08122212e-01 1.08052316e-01 + 1.07982391e-01 1.07912436e-01 1.07842452e-01 1.07772438e-01 1.07702397e-01 + 1.07632326e-01 1.07562227e-01 1.07492101e-01 1.07421946e-01 1.07351764e-01 + 1.07281555e-01 1.07211318e-01 1.07141055e-01 1.07070766e-01 1.07000449e-01 + 1.06930107e-01 1.06859739e-01 1.06789346e-01 1.06718927e-01 1.06648483e-01 + 1.06578015e-01 1.06507521e-01 1.06437004e-01 1.06366462e-01 1.06295897e-01 + 1.06225308e-01 1.06154696e-01 1.06084061e-01 1.06013403e-01 1.05942723e-01 + 1.05872021e-01 1.05801296e-01 1.05730551e-01 1.05659783e-01 1.05588995e-01 + 1.05518186e-01 1.05447356e-01 1.05376506e-01 1.05305636e-01 1.05234746e-01 + 1.05163837e-01 1.05092908e-01 1.05021961e-01 1.04950995e-01 1.04880011e-01 + 1.04809009e-01 1.04737989e-01 1.04666951e-01 1.04595897e-01 1.04524826e-01 + 1.04453738e-01 1.04382633e-01 1.04311513e-01 1.04240377e-01 1.04169226e-01 + 1.04098060e-01 1.04026878e-01 1.03955683e-01 1.03884473e-01 1.03813249e-01 + 1.03742012e-01 1.03670761e-01 1.03599498e-01 1.03528222e-01 1.03456933e-01 + 1.03385633e-01 1.03314321e-01 1.03242997e-01 1.03171662e-01 1.03100317e-01 + 1.03028961e-01 1.02957595e-01 1.02886219e-01 1.02814833e-01 1.02743439e-01 + 1.02672036e-01 1.02600624e-01 1.02529204e-01 1.02457776e-01 1.02386340e-01 + 1.02314898e-01 1.02243448e-01 1.02171992e-01 1.02100530e-01 1.02029062e-01 + 1.01957589e-01 1.01886110e-01 1.01814626e-01 1.01743138e-01 1.01671646e-01 + 1.01600150e-01 1.01528651e-01 1.01457148e-01 1.01385643e-01 1.01314135e-01 + 1.01242625e-01 1.01171114e-01 1.01099601e-01 1.01028087e-01 1.00956573e-01 + 1.00885058e-01 1.00813543e-01 1.00742029e-01 1.00670515e-01 1.00599003e-01 + 1.00527492e-01 1.00455983e-01 1.00384477e-01 1.00312973e-01 1.00241472e-01 + 1.00169974e-01 1.00098480e-01 1.00026990e-01 9.99555050e-02 9.98840245e-02 + 9.98125493e-02 9.97410797e-02 9.96696161e-02 9.95981588e-02 9.95267084e-02 + 9.94552650e-02 9.93838292e-02 9.93124014e-02 9.92409818e-02 9.91695709e-02 + 9.90981691e-02 9.90267768e-02 9.89553944e-02 9.88840222e-02 9.88126607e-02 + 9.87413103e-02 9.86699713e-02 9.85986441e-02 9.85273293e-02 9.84560271e-02 + 9.83847379e-02 9.83134622e-02 9.82422004e-02 9.81709529e-02 9.80997201e-02 + 9.80285023e-02 9.79573001e-02 9.78861138e-02 9.78149439e-02 9.77437907e-02 + 9.76726547e-02 9.76015362e-02 9.75304358e-02 9.74593538e-02 9.73882907e-02 + 9.73172468e-02 9.72462226e-02 9.71752186e-02 9.71042351e-02 9.70332725e-02 + 9.69623314e-02 9.68914121e-02 9.68205151e-02 9.67496408e-02 9.66787897e-02 + 9.66079621e-02 9.65371585e-02 9.64663793e-02 9.63956251e-02 9.63248961e-02 + 9.62541930e-02 9.61835160e-02 9.61128657e-02 9.60422425e-02 9.59716469e-02 + 9.59010792e-02 9.58305400e-02 9.57600297e-02 9.56895487e-02 9.56190976e-02 + 9.55486767e-02 9.54782865e-02 9.54079274e-02 9.53376000e-02 9.52673047e-02 + 9.51970419e-02 9.51268121e-02 9.50566158e-02 9.49864534e-02 9.49163254e-02 + 9.48462322e-02 9.47761744e-02 9.47061524e-02 9.46361667e-02 9.45662176e-02 + 9.44963058e-02 9.44264317e-02 9.43565957e-02 9.42867984e-02 9.42170402e-02 + 9.41473215e-02 9.40776429e-02 9.40080049e-02 9.39384078e-02 9.38688523e-02 + 9.37993388e-02 9.37298677e-02 9.36604397e-02 9.35910550e-02 9.35217143e-02 + 9.34524180e-02 9.33831666e-02 9.33139606e-02 9.32448006e-02 9.31756869e-02 + 9.31066201e-02 9.30376006e-02 9.29686291e-02 9.28997059e-02 9.28308316e-02 + 9.27620066e-02 9.26932315e-02 9.26245068e-02 9.25558330e-02 9.24872106e-02 + 9.24186400e-02 9.23501218e-02 9.22816566e-02 9.22132447e-02 9.21448867e-02 + 9.20765832e-02 9.20083346e-02 9.19401414e-02 9.18720042e-02 9.18039235e-02 + 9.17358998e-02 9.16679335e-02 9.16000253e-02 9.15321756e-02 9.14643850e-02 + 9.13966540e-02 9.13289830e-02 9.12613727e-02 9.11938235e-02 9.11263360e-02 + 9.10589106e-02 9.09915480e-02 9.09242486e-02 9.08570130e-02 9.07898417e-02 + 9.07227352e-02 9.06556940e-02 9.05887187e-02 9.05218099e-02 9.04549680e-02 + 9.03881935e-02 9.03214871e-02 9.02548492e-02 9.01882804e-02 9.01217813e-02 + 9.00553522e-02 8.99889939e-02 8.99227068e-02 8.98564915e-02 8.97903485e-02 + 8.97242783e-02 8.96582816e-02 8.95923588e-02 8.95265104e-02 8.94607371e-02 + 8.93950394e-02 8.93294177e-02 8.92638728e-02 8.91984050e-02 8.91330150e-02 + 8.90677033e-02 8.90024705e-02 8.89373170e-02 8.88722435e-02 8.88072505e-02 + 8.87423386e-02 8.86775083e-02 8.86127602e-02 8.85480947e-02 8.84835126e-02 + 8.84190142e-02 8.83546003e-02 8.82902712e-02 8.82260277e-02 8.81618702e-02 + 8.80977994e-02 8.80338157e-02 8.79699197e-02 8.79061120e-02 8.78423932e-02 + 8.77787637e-02 8.77152243e-02 8.76517753e-02 8.75884175e-02 8.75251513e-02 + 8.74619773e-02 8.73988961e-02 8.73359083e-02 8.72730143e-02 8.72102149e-02 + 8.71475104e-02 8.70849016e-02 8.70223890e-02 8.69599731e-02 8.68976544e-02 + 8.68354337e-02 8.67733114e-02 8.67112881e-02 8.66493644e-02 8.65875409e-02 + 8.65258180e-02 8.64641964e-02 8.64026767e-02 8.63412594e-02 8.62799451e-02 + 8.62187344e-02 8.61576278e-02 8.60966259e-02 8.60357293e-02 8.59749386e-02 + 8.59142542e-02 8.58536769e-02 8.57932071e-02 8.57328455e-02 8.56725925e-02 + 8.56124489e-02 8.55524151e-02 8.54924918e-02 8.54326794e-02 8.53729787e-02 + 8.53133900e-02 8.52539141e-02 8.51945515e-02 8.51353028e-02 8.50761685e-02 + 8.50171493e-02 8.49582456e-02 8.48994581e-02 8.48407874e-02 8.47822340e-02 + 8.47237984e-02 8.46654813e-02 8.46072833e-02 8.45492049e-02 8.44912466e-02 + 8.44334092e-02 8.43756930e-02 8.43180988e-02 8.42606271e-02 8.42032784e-02 + 8.41460533e-02 8.40889525e-02 8.40319764e-02 8.39751257e-02 8.39184009e-02 + 8.38618026e-02 8.38053314e-02 8.37489878e-02 8.36927724e-02 8.36366859e-02 + 8.35807286e-02 8.35249013e-02 8.34692046e-02 8.34136388e-02 8.33582048e-02 + 8.33029029e-02 8.32477338e-02 8.31926981e-02 8.31377963e-02 8.30830290e-02 + 8.30283967e-02 8.29739001e-02 8.29195397e-02 8.28653161e-02 8.28112297e-02 + 8.27572813e-02 8.27034714e-02 8.26498005e-02 8.25962691e-02 8.25428780e-02 + 8.24896276e-02 8.24365184e-02 8.23835511e-02 8.23307263e-02 8.22780444e-02 + 8.22255060e-02 8.21731118e-02 8.21208622e-02 8.20687579e-02 8.20167993e-02 + 8.19649871e-02 8.19133218e-02 8.18618039e-02 8.18104341e-02 8.17592128e-02 + 8.17081407e-02 8.16572182e-02 8.16064460e-02 8.15558245e-02 8.15053545e-02 + 8.14550363e-02 8.14048705e-02 8.13548578e-02 8.13049986e-02 8.12552935e-02 + 8.12057430e-02 8.11563478e-02 8.11071082e-02 8.10580250e-02 8.10090986e-02 + 8.09603295e-02 8.09117184e-02 8.08632657e-02 8.08149721e-02 8.07668379e-02 + 8.07188639e-02 8.06710504e-02 8.06233982e-02 8.05759075e-02 8.05285792e-02 + 8.04814136e-02 8.04344112e-02 8.03875727e-02 8.03408986e-02 8.02943893e-02 + 8.02480455e-02 8.02018675e-02 8.01558561e-02 8.01100116e-02 8.00643347e-02 + 8.00188258e-02 7.99734855e-02 7.99283142e-02 7.98833126e-02 7.98384810e-02 + 7.97938201e-02 7.97493304e-02 7.97050123e-02 7.96608664e-02 7.96168932e-02 + 7.95730933e-02 7.95294670e-02 7.94860149e-02 7.94427376e-02 7.93996355e-02 + 7.93567091e-02 7.93139590e-02 7.92713856e-02 7.92289895e-02 7.91867711e-02 + 7.91447310e-02 7.91028695e-02 7.90611873e-02 7.90196849e-02 7.89783626e-02 + 7.89372210e-02 7.88962607e-02 7.88554819e-02 7.88148854e-02 7.87744715e-02 + 7.87342407e-02 7.86941935e-02 7.86543304e-02 7.86146519e-02 7.85751584e-02 + 7.85358504e-02 7.84967284e-02 7.84577929e-02 7.84190442e-02 7.83804830e-02 + 7.83421096e-02 7.83039245e-02 7.82659282e-02 7.82281212e-02 7.81905038e-02 + 7.81530766e-02 7.81158400e-02 7.80787945e-02 7.80419405e-02 7.80052784e-02 + 7.79688088e-02 7.79325320e-02 7.78964485e-02 7.78605587e-02 7.78248631e-02 + 7.77893622e-02 7.77540563e-02 7.77189459e-02 7.76840314e-02 7.76493132e-02 + 7.76147919e-02 7.75804677e-02 7.75463412e-02 7.75124127e-02 7.74786828e-02 + 7.74451517e-02 7.74118199e-02 7.73786878e-02 7.73457559e-02 7.73130245e-02 + 7.72804941e-02 7.72481650e-02 7.72160377e-02 7.71841125e-02 7.71523900e-02 + 7.71208703e-02 7.70895541e-02 7.70584416e-02 7.70275332e-02 7.69968293e-02 + 7.69663304e-02 7.69360368e-02 7.69059488e-02 7.68760670e-02 7.68463915e-02 + 7.68169229e-02 7.67876614e-02 7.67586075e-02 7.67297616e-02 7.67011239e-02 + 7.66726949e-02 7.66444749e-02 7.66164642e-02 7.65886633e-02 7.65610725e-02 + 7.65336921e-02 7.65065225e-02 7.64795641e-02 7.64528171e-02 7.64262819e-02 + 7.63999589e-02 7.63738484e-02 7.63479508e-02 7.63222662e-02 7.62967952e-02 + 7.62715380e-02 7.62464950e-02 7.62216664e-02 7.61970526e-02 7.61726539e-02 + 7.61484706e-02 7.61245031e-02 7.61007516e-02 7.60772164e-02 7.60538979e-02 + 7.60307964e-02 7.60079121e-02 7.59852453e-02 7.59627964e-02 7.59405657e-02 + 7.59185533e-02 7.58967597e-02 7.58751851e-02 7.58538297e-02 7.58326939e-02 + 7.58117779e-02 7.57910820e-02 7.57706065e-02 7.57503516e-02 7.57303176e-02 + 7.57105048e-02 7.56909134e-02 7.56715437e-02 7.56523959e-02 7.56334703e-02 + 7.56147671e-02 7.55962866e-02 7.55780290e-02 7.55599946e-02 7.55421835e-02 + 7.55245961e-02 7.55072326e-02 7.54900931e-02 7.54731780e-02 7.54564874e-02 + 7.54400215e-02 7.54237806e-02 7.54077649e-02 7.53919746e-02 7.53764099e-02 + 7.53610711e-02 7.53459582e-02 7.53310716e-02 7.53164113e-02 7.53019777e-02 + 7.52877708e-02 7.52737910e-02 7.52600383e-02 7.52465130e-02 7.52332152e-02 + 7.52201451e-02 7.52073028e-02 7.51946887e-02 7.51823027e-02 7.51701451e-02 + 7.51582161e-02 7.51465158e-02 7.51350443e-02 7.51238019e-02 7.51127886e-02 + 7.51020046e-02 7.50914500e-02 7.50811251e-02 7.50710299e-02 7.50611645e-02 + 7.50515291e-02 7.50421239e-02 7.50329489e-02 7.50240043e-02 7.50152901e-02 + 7.50068066e-02 7.49985538e-02 7.49905318e-02 7.49827407e-02 7.49751807e-02 + 7.49678518e-02 7.49607542e-02 7.49538879e-02 7.49472530e-02 7.49408496e-02 + 7.49346779e-02 7.49287378e-02 7.49230295e-02 7.49175530e-02 7.49123084e-02 + 7.49072958e-02 7.49025153e-02 7.48979669e-02 7.48936506e-02 7.48895666e-02 + 7.48857148e-02 7.48820954e-02 7.48787084e-02 7.48755538e-02 7.48726317e-02 + 7.48699421e-02 7.48674851e-02 7.48652606e-02 7.48632687e-02 7.48615095e-02 + 7.48599830e-02 7.48586891e-02 7.48576279e-02 7.48567994e-02 7.48562037e-02 + 7.48558407e-02 7.48557104e-02 7.48558129e-02 7.48561481e-02 7.48567160e-02 + 7.48575167e-02 7.48585501e-02 7.48598162e-02 7.48613149e-02 7.48630464e-02 + 7.48650104e-02 7.48672071e-02 7.48696364e-02 7.48722982e-02 7.48751926e-02 + 7.48783194e-02 7.48816786e-02 7.48852703e-02 7.48890943e-02 7.48931506e-02 + 7.48974391e-02 7.49019598e-02 7.49067126e-02 7.49116975e-02 7.49169143e-02 + 7.49223631e-02 7.49280438e-02 7.49339562e-02 7.49401003e-02 7.49464760e-02 + 7.49530832e-02 7.49599219e-02 7.49669919e-02 7.49742931e-02 7.49818255e-02 + 7.49895890e-02 7.49975834e-02 7.50058087e-02 7.50142646e-02 7.50229512e-02 + 7.50318684e-02 7.50410158e-02 7.50503936e-02 7.50600015e-02 7.50698394e-02 + 7.50799072e-02 7.50902047e-02 7.51007318e-02 7.51114884e-02 7.51224743e-02 + 7.51336894e-02 7.51451335e-02 7.51568065e-02 7.51687082e-02 7.51808385e-02 + 7.51931972e-02 7.52057841e-02 7.52185991e-02 7.52316420e-02 7.52449126e-02 + 7.52584108e-02 7.52721363e-02 7.52860890e-02 7.53002688e-02 7.53146753e-02 + 7.53293085e-02 7.53441681e-02 7.53592540e-02 7.53745659e-02 7.53901036e-02 + 7.54058670e-02 7.54218558e-02 7.54380698e-02 7.54545087e-02 7.54711725e-02 + 7.54880609e-02 7.55051735e-02 7.55225103e-02 7.55400710e-02 7.55578553e-02 + 7.55758631e-02 7.55940940e-02 7.56125479e-02 7.56312245e-02 7.56501236e-02 + 7.56692448e-02 7.56885881e-02 7.57081530e-02 7.57279394e-02 7.57479470e-02 + 7.57681755e-02 7.57886247e-02 7.58092942e-02 7.58301840e-02 7.58512935e-02 + 7.58726227e-02 7.58941712e-02 7.59159386e-02 7.59379249e-02 7.59601296e-02 + 7.59825524e-02 7.60051932e-02 7.60280515e-02 7.60511271e-02 7.60744197e-02 + 7.60979290e-02 7.61216547e-02 7.61455964e-02 7.61697540e-02 7.61941269e-02 + 7.62187151e-02 7.62435180e-02 7.62685354e-02 7.62937671e-02 7.63192126e-02 + 7.63448716e-02 7.63707438e-02 7.63968289e-02 7.64231266e-02 7.64496364e-02 + 7.64763581e-02 7.65032913e-02 7.65304357e-02 7.65577909e-02 7.65853566e-02 + 7.66131325e-02 7.66411181e-02 7.66693131e-02 7.66977171e-02 7.67263299e-02 + 7.67551510e-02 7.67841801e-02 7.68134168e-02 7.68428607e-02 7.68725114e-02 + 7.69023687e-02 7.69324320e-02 7.69627011e-02 7.69931756e-02 7.70238549e-02 + 7.70547389e-02 7.70858271e-02 7.71171190e-02 7.71486144e-02 7.71803127e-02 + 7.72122137e-02 7.72443169e-02 7.72766219e-02 7.73091283e-02 7.73418357e-02 + 7.73747437e-02 7.74078518e-02 7.74411598e-02 7.74746671e-02 7.75083734e-02 + 7.75422781e-02 7.75763810e-02 7.76106816e-02 7.76451794e-02 7.76798741e-02 + 7.77147651e-02 7.77498522e-02 7.77851347e-02 7.78206124e-02 7.78562848e-02 + 7.78921513e-02 7.79282117e-02 7.79644654e-02 7.80009121e-02 7.80375512e-02 + 7.80743823e-02 7.81114050e-02 7.81486188e-02 7.81860233e-02 7.82236179e-02 + 7.82614023e-02 7.82993761e-02 7.83375386e-02 7.83758895e-02 7.84144284e-02 + 7.84531546e-02 7.84920679e-02 7.85311676e-02 7.85704534e-02 7.86099248e-02 + 7.86495813e-02 7.86894223e-02 7.87294475e-02 7.87696564e-02 7.88100485e-02 + 7.88506232e-02 7.88913802e-02 7.89323189e-02 7.89734389e-02 7.90147396e-02 + 7.90562205e-02 7.90978813e-02 7.91397213e-02 7.91817402e-02 7.92239373e-02 + 7.92663122e-02 7.93088645e-02 7.93515935e-02 7.93944988e-02 7.94375800e-02 + 7.94808364e-02 7.95242676e-02 7.95678731e-02 7.96116524e-02 7.96556049e-02 + 7.96997302e-02 7.97440277e-02 7.97884970e-02 7.98331374e-02 7.98779486e-02 + 7.99229300e-02 7.99680810e-02 8.00134012e-02 8.00588900e-02 8.01045468e-02 + 8.01503713e-02 8.01963628e-02 8.02425209e-02 8.02888450e-02 8.03353345e-02 + 8.03819890e-02 8.04288079e-02 8.04757907e-02 8.05229368e-02 8.05702458e-02 + 8.06177170e-02 8.06653500e-02 8.07131443e-02 8.07610992e-02 8.08092142e-02 + 8.08574888e-02 8.09059225e-02 8.09545148e-02 8.10032650e-02 8.10521726e-02 + 8.11012372e-02 8.11504581e-02 8.11998347e-02 8.12493667e-02 8.12990534e-02 + 8.13488942e-02 8.13988886e-02 8.14490361e-02 8.14993361e-02 8.15497881e-02 + 8.16003915e-02 8.16511457e-02 8.17020502e-02 8.17531045e-02 8.18043080e-02 + 8.18556601e-02 8.19071604e-02 8.19588081e-02 8.20106028e-02 8.20625439e-02 + 8.21146309e-02 8.21668631e-02 8.22192401e-02 8.22717613e-02 8.23244260e-02 + 8.23772339e-02 8.24301842e-02 8.24832764e-02 8.25365100e-02 8.25898843e-02 + 8.26433990e-02 8.26970532e-02 8.27508466e-02 8.28047785e-02 8.28588484e-02 + 8.29130557e-02 8.29673998e-02 8.30218801e-02 8.30764962e-02 8.31312474e-02 + 8.31861332e-02 8.32411529e-02 8.32963061e-02 8.33515922e-02 8.34070105e-02 + 8.34625605e-02 8.35182417e-02 8.35740534e-02 8.36299951e-02 8.36860663e-02 + 8.37422663e-02 8.37985946e-02 8.38550506e-02 8.39116338e-02 8.39683435e-02 + 8.40251792e-02 8.40821403e-02 8.41392263e-02 8.41964365e-02 8.42537705e-02 + 8.43112275e-02 8.43688072e-02 8.44265088e-02 8.44843318e-02 8.45422756e-02 + 8.46003397e-02 8.46585235e-02 8.47168264e-02 8.47752478e-02 8.48337872e-02 + 8.48924439e-02 8.49512175e-02 8.50101073e-02 8.50691128e-02 8.51282334e-02 + 8.51874685e-02 8.52468175e-02 8.53062799e-02 8.53658551e-02 8.54255425e-02 + 8.54853415e-02 8.55452516e-02 8.56052723e-02 8.56654028e-02 8.57256427e-02 + 8.57859914e-02 8.58464483e-02 8.59070128e-02 8.59676844e-02 8.60284625e-02 + 8.60893465e-02 8.61503358e-02 8.62114299e-02 8.62726282e-02 8.63339302e-02 + 8.63953352e-02 8.64568427e-02 8.65184522e-02 8.65801629e-02 8.66419745e-02 + 8.67038863e-02 8.67658977e-02 8.68280082e-02 8.68902172e-02 8.69525242e-02 + 8.70149285e-02 8.70774296e-02 8.71400270e-02 8.72027200e-02 8.72655081e-02 + 8.73283908e-02 8.73913675e-02 8.74544376e-02 8.75176005e-02 8.75808557e-02 + 8.76442026e-02 8.77076407e-02 8.77711694e-02 8.78347881e-02 8.78984963e-02 + 8.79622934e-02 8.80261789e-02 8.80901521e-02 8.81542126e-02 8.82183598e-02 + 8.82825930e-02 8.83469119e-02 8.84113157e-02 8.84758040e-02 8.85403762e-02 + 8.86050317e-02 8.86697700e-02 8.87345905e-02 8.87994927e-02 8.88644761e-02 + 8.89295400e-02 8.89946839e-02 8.90599073e-02 8.91252096e-02 8.91905903e-02 + 8.92560488e-02 8.93215845e-02 8.93871970e-02 8.94528857e-02 8.95186500e-02 + 8.95844894e-02 8.96504034e-02 8.97163914e-02 8.97824528e-02 8.98485871e-02 + 8.99147938e-02 8.99810724e-02 9.00474222e-02 9.01138428e-02 9.01803336e-02 + 9.02468942e-02 9.03135238e-02 9.03802221e-02 9.04469884e-02 9.05138223e-02 + 9.05807232e-02 9.06476906e-02 9.07147239e-02 9.07818226e-02 9.08489862e-02 + 9.09162142e-02 9.09835060e-02 9.10508611e-02 9.11182790e-02 9.11857591e-02 + 9.12533009e-02 9.13209040e-02 9.13885677e-02 9.14562916e-02 9.15240751e-02 + 9.15919178e-02 9.16598190e-02 9.17277784e-02 9.17957953e-02 9.18638692e-02 + 9.19319997e-02 9.20001862e-02 9.20684282e-02 9.21367252e-02 9.22050767e-02 + 9.22734821e-02 9.23419411e-02 9.24104530e-02 9.24790173e-02 9.25476336e-02 + 9.26163013e-02 9.26850199e-02 9.27537890e-02 9.28226080e-02 9.28914765e-02 + 9.29603938e-02 9.30293596e-02 9.30983734e-02 9.31674346e-02 9.32365427e-02 + 9.33056973e-02 9.33748978e-02 9.34441438e-02 9.35134347e-02 9.35827701e-02 + 9.36521496e-02 9.37215725e-02 9.37910385e-02 9.38605469e-02 9.39300975e-02 + 9.39996895e-02 9.40693227e-02 9.41389965e-02 9.42087104e-02 9.42784639e-02 + 9.43482566e-02 9.44180880e-02 9.44879576e-02 9.45578649e-02 9.46278095e-02 + 9.46977909e-02 9.47678086e-02 9.48378622e-02 9.49079511e-02 9.49780750e-02 + 9.50482333e-02 9.51184256e-02 9.51886514e-02 9.52589103e-02 9.53292017e-02 + 9.53995254e-02 9.54698806e-02 9.55402671e-02 9.56106844e-02 9.56811320e-02 + 9.57516094e-02 9.58221162e-02 9.58926520e-02 9.59632163e-02 9.60338086e-02 + 9.61044286e-02 9.61750756e-02 9.62457494e-02 9.63164495e-02 9.63871754e-02 + 9.64579266e-02 9.65287028e-02 9.65995035e-02 9.66703283e-02 9.67411766e-02 + 9.68120482e-02 9.68829425e-02 9.69538592e-02 9.70247977e-02 9.70957577e-02 + 9.71667387e-02 9.72377403e-02 9.73087621e-02 9.73798037e-02 9.74508645e-02 + 9.75219443e-02 9.75930426e-02 9.76641589e-02 9.77352928e-02 9.78064440e-02 + 9.78776119e-02 9.79487963e-02 9.80199966e-02 9.80912125e-02 9.81624436e-02 + 9.82336894e-02 9.83049495e-02 9.83762235e-02 9.84475111e-02 9.85188118e-02 + 9.85901251e-02 9.86614508e-02 9.87327884e-02 9.88041375e-02 9.88754977e-02 + 9.89468687e-02 9.90182499e-02 9.90896410e-02 9.91610417e-02 9.92324515e-02 + 9.93038701e-02 9.93752970e-02 9.94467318e-02 9.95181743e-02 9.95896239e-02 + 9.96610804e-02 9.97325432e-02 9.98040122e-02 9.98754867e-02 9.99469666e-02 + 1.00018451e-01 1.00089941e-01 1.00161434e-01 1.00232931e-01 1.00304432e-01 + 1.00375936e-01 1.00447442e-01 1.00518951e-01 1.00590461e-01 1.00661973e-01 + 1.00733487e-01 1.00805001e-01 1.00876516e-01 1.00948030e-01 1.01019545e-01 + 1.01091059e-01 1.01162572e-01 1.01234084e-01 1.01305594e-01 1.01377102e-01 + 1.01448607e-01 1.01520110e-01 1.01591610e-01 1.01663106e-01 1.01734599e-01 + 1.01806088e-01 1.01877572e-01 1.01949051e-01 1.02020525e-01 1.02091994e-01 + 1.02163457e-01 1.02234914e-01 1.02306364e-01 1.02377807e-01 1.02449244e-01 + 1.02520672e-01 1.02592093e-01 1.02663506e-01 1.02734911e-01 1.02806306e-01 + 1.02877693e-01 1.02949070e-01 1.03020437e-01 1.03091794e-01 1.03163141e-01 + 1.03234477e-01 1.03305802e-01 1.03377115e-01 1.03448417e-01 1.03519707e-01 + 1.03590985e-01 1.03662250e-01 1.03733502e-01 1.03804741e-01 1.03875966e-01 + 1.03947178e-01 1.04018375e-01 1.04089558e-01 1.04160726e-01 1.04231879e-01 + 1.04303017e-01 1.04374139e-01 1.04445245e-01 1.04516335e-01 1.04587409e-01 + 1.04658465e-01 1.04729504e-01 1.04800527e-01 1.04871531e-01 1.04942517e-01 + 1.05013485e-01 1.05084435e-01 1.05155365e-01 1.05226277e-01 1.05297169e-01 + 1.05368041e-01 1.05438894e-01 1.05509726e-01 1.05580538e-01 1.05651329e-01 + 1.05722099e-01 1.05792847e-01 1.05863574e-01 1.05934279e-01 1.06004962e-01 + 1.06075622e-01 1.06146260e-01 1.06216875e-01 1.06287467e-01 1.06358035e-01 + 1.06428579e-01 1.06499100e-01 1.06569596e-01 1.06640067e-01 1.06710514e-01 + 1.06780936e-01 1.06851332e-01 1.06921703e-01 1.06992049e-01 1.07062368e-01 + 1.07132661e-01 1.07202927e-01 1.07273167e-01 1.07343379e-01 1.07413565e-01 + 1.07483722e-01 1.07553852e-01 1.07623955e-01 1.07694028e-01 1.07764074e-01 + 1.07834090e-01 1.07904078e-01 1.07974036e-01 1.08043966e-01 1.08113865e-01 + 1.08183735e-01 1.08253574e-01 1.08323383e-01 1.08393162e-01 1.08462910e-01 + 1.08532626e-01 1.08602312e-01 1.08671966e-01 1.08741588e-01 1.08811179e-01 + 1.08880737e-01 1.08950263e-01 1.09019757e-01 1.09089217e-01 1.09158645e-01 + 1.09228040e-01 1.09297401e-01 1.09366728e-01 1.09436022e-01 1.09505281e-01 + 1.09574507e-01 1.09643698e-01 1.09712854e-01 1.09781975e-01 1.09851061e-01 + 1.09920112e-01 1.09989128e-01 1.10058108e-01 1.10127052e-01 1.10195959e-01 + 1.10264831e-01 1.10333666e-01 1.10402465e-01 1.10471226e-01 1.10539951e-01 + 1.10608638e-01 1.10677288e-01 1.10745900e-01 1.10814475e-01 1.10883011e-01 + 1.10951510e-01 1.11019970e-01 1.11088391e-01 1.11156774e-01 1.11225117e-01 + 1.11293422e-01 1.11361687e-01 1.11429913e-01 1.11498100e-01 1.11566246e-01 + 1.11634353e-01 1.11702419e-01 1.11770445e-01 1.11838431e-01 1.11906376e-01 + 1.11974280e-01 1.12042143e-01 1.12109965e-01 1.12177745e-01 1.12245484e-01 + 1.12313182e-01 1.12380837e-01 1.12448451e-01 1.12516022e-01 1.12583551e-01 + 1.12651038e-01 1.12718482e-01 1.12785883e-01 1.12853241e-01 1.12920556e-01 + 1.12987828e-01 1.13055056e-01 1.13122241e-01 1.13189382e-01 1.13256480e-01 + 1.13323533e-01 1.13390542e-01 1.13457507e-01 1.13524427e-01 1.13591303e-01 + 1.13658134e-01 1.13724920e-01 1.13791661e-01 1.13858356e-01 1.13925007e-01 + 1.13991612e-01 1.14058171e-01 1.14124685e-01 1.14191153e-01 1.14257575e-01 + 1.14323950e-01 1.14390280e-01 1.14456562e-01 1.14522799e-01 1.14588988e-01 + 1.14655131e-01 1.14721227e-01 1.14787276e-01 1.14853278e-01 1.14919232e-01 + 1.14985139e-01 1.15050998e-01 1.15116810e-01 1.15182574e-01 1.15248290e-01 + 1.15313957e-01 1.15379577e-01 1.15445148e-01 1.15510671e-01 1.15576146e-01 + 1.15641571e-01 1.15706948e-01 1.15772276e-01 1.15837555e-01 1.15902785e-01 + 1.15967965e-01 1.16033097e-01 1.16098179e-01 1.16163211e-01 1.16228193e-01 + 1.16293126e-01 1.16358009e-01 1.16422842e-01 1.16487625e-01 1.16552357e-01 + 1.16617040e-01 1.16681672e-01 1.16746253e-01 1.16810784e-01 1.16875264e-01 + 1.16939693e-01 1.17004071e-01 1.17068398e-01 1.17132674e-01 1.17196899e-01 + 1.17261073e-01 1.17325195e-01 1.17389266e-01 1.17453285e-01 1.17517252e-01 + 1.17581168e-01 1.17645032e-01 1.17708843e-01 1.17772603e-01 1.17836311e-01 + 1.17899966e-01 1.17963569e-01 1.18027120e-01 1.18090618e-01 1.18154064e-01 + 1.18217457e-01 1.18280797e-01 1.18344084e-01 1.18407319e-01 1.18470500e-01 + 1.18533629e-01 1.18596704e-01 1.18659726e-01 1.18722695e-01 1.18785610e-01 + 1.18848472e-01 1.18911281e-01 1.18974035e-01 1.19036736e-01 1.19099384e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.38518338e-01 1.38476565e-01 1.38434740e-01 1.38392864e-01 1.38350938e-01 + 1.38308960e-01 1.38266931e-01 1.38224851e-01 1.38182720e-01 1.38140538e-01 + 1.38098305e-01 1.38056020e-01 1.38013684e-01 1.37971296e-01 1.37928857e-01 + 1.37886366e-01 1.37843824e-01 1.37801230e-01 1.37758585e-01 1.37715888e-01 + 1.37673139e-01 1.37630338e-01 1.37587486e-01 1.37544581e-01 1.37501625e-01 + 1.37458617e-01 1.37415556e-01 1.37372444e-01 1.37329279e-01 1.37286062e-01 + 1.37242794e-01 1.37199472e-01 1.37156099e-01 1.37112673e-01 1.37069195e-01 + 1.37025664e-01 1.36982081e-01 1.36938445e-01 1.36894757e-01 1.36851016e-01 + 1.36807222e-01 1.36763376e-01 1.36719477e-01 1.36675525e-01 1.36631520e-01 + 1.36587463e-01 1.36543352e-01 1.36499189e-01 1.36454972e-01 1.36410702e-01 + 1.36366380e-01 1.36322004e-01 1.36277574e-01 1.36233092e-01 1.36188556e-01 + 1.36143967e-01 1.36099325e-01 1.36054629e-01 1.36009880e-01 1.35965077e-01 + 1.35920221e-01 1.35875311e-01 1.35830347e-01 1.35785330e-01 1.35740259e-01 + 1.35695134e-01 1.35649956e-01 1.35604723e-01 1.35559437e-01 1.35514096e-01 + 1.35468702e-01 1.35423254e-01 1.35377752e-01 1.35332195e-01 1.35286585e-01 + 1.35240920e-01 1.35195201e-01 1.35149428e-01 1.35103600e-01 1.35057718e-01 + 1.35011782e-01 1.34965791e-01 1.34919746e-01 1.34873646e-01 1.34827492e-01 + 1.34781283e-01 1.34735020e-01 1.34688702e-01 1.34642329e-01 1.34595901e-01 + 1.34549419e-01 1.34502882e-01 1.34456290e-01 1.34409643e-01 1.34362941e-01 + 1.34316184e-01 1.34269372e-01 1.34222505e-01 1.34175583e-01 1.34128606e-01 + 1.34081573e-01 1.34034486e-01 1.33987343e-01 1.33940145e-01 1.33892892e-01 + 1.33845583e-01 1.33798219e-01 1.33750799e-01 1.33703324e-01 1.33655794e-01 + 1.33608207e-01 1.33560566e-01 1.33512869e-01 1.33465116e-01 1.33417307e-01 + 1.33369443e-01 1.33321523e-01 1.33273547e-01 1.33225515e-01 1.33177428e-01 + 1.33129285e-01 1.33081085e-01 1.33032830e-01 1.32984519e-01 1.32936152e-01 + 1.32887728e-01 1.32839249e-01 1.32790713e-01 1.32742122e-01 1.32693474e-01 + 1.32644770e-01 1.32596010e-01 1.32547193e-01 1.32498320e-01 1.32449391e-01 + 1.32400405e-01 1.32351363e-01 1.32302265e-01 1.32253110e-01 1.32203899e-01 + 1.32154631e-01 1.32105306e-01 1.32055925e-01 1.32006488e-01 1.31956993e-01 + 1.31907442e-01 1.31857835e-01 1.31808170e-01 1.31758449e-01 1.31708671e-01 + 1.31658836e-01 1.31608945e-01 1.31558996e-01 1.31508991e-01 1.31458929e-01 + 1.31408809e-01 1.31358633e-01 1.31308400e-01 1.31258110e-01 1.31207762e-01 + 1.31157358e-01 1.31106897e-01 1.31056378e-01 1.31005802e-01 1.30955169e-01 + 1.30904479e-01 1.30853732e-01 1.30802927e-01 1.30752065e-01 1.30701146e-01 + 1.30650170e-01 1.30599136e-01 1.30548045e-01 1.30496896e-01 1.30445690e-01 + 1.30394426e-01 1.30343106e-01 1.30291727e-01 1.30240291e-01 1.30188798e-01 + 1.30137247e-01 1.30085639e-01 1.30033973e-01 1.29982249e-01 1.29930468e-01 + 1.29878629e-01 1.29826732e-01 1.29774778e-01 1.29722766e-01 1.29670696e-01 + 1.29618569e-01 1.29566384e-01 1.29514141e-01 1.29461841e-01 1.29409482e-01 + 1.29357066e-01 1.29304592e-01 1.29252060e-01 1.29199470e-01 1.29146823e-01 + 1.29094117e-01 1.29041354e-01 1.28988533e-01 1.28935654e-01 1.28882717e-01 + 1.28829721e-01 1.28776668e-01 1.28723557e-01 1.28670388e-01 1.28617161e-01 + 1.28563876e-01 1.28510533e-01 1.28457132e-01 1.28403673e-01 1.28350156e-01 + 1.28296581e-01 1.28242948e-01 1.28189256e-01 1.28135507e-01 1.28081699e-01 + 1.28027834e-01 1.27973910e-01 1.27919928e-01 1.27865888e-01 1.27811790e-01 + 1.27757634e-01 1.27703420e-01 1.27649147e-01 1.27594816e-01 1.27540427e-01 + 1.27485980e-01 1.27431475e-01 1.27376912e-01 1.27322290e-01 1.27267611e-01 + 1.27212873e-01 1.27158077e-01 1.27103223e-01 1.27048310e-01 1.26993340e-01 + 1.26938311e-01 1.26883224e-01 1.26828079e-01 1.26772875e-01 1.26717614e-01 + 1.26662294e-01 1.26606916e-01 1.26551480e-01 1.26495986e-01 1.26440433e-01 + 1.26384823e-01 1.26329154e-01 1.26273427e-01 1.26217642e-01 1.26161799e-01 + 1.26105898e-01 1.26049938e-01 1.25993920e-01 1.25937845e-01 1.25881711e-01 + 1.25825519e-01 1.25769269e-01 1.25712961e-01 1.25656594e-01 1.25600170e-01 + 1.25543688e-01 1.25487147e-01 1.25430549e-01 1.25373892e-01 1.25317178e-01 + 1.25260405e-01 1.25203574e-01 1.25146686e-01 1.25089739e-01 1.25032735e-01 + 1.24975672e-01 1.24918552e-01 1.24861374e-01 1.24804137e-01 1.24746843e-01 + 1.24689491e-01 1.24632082e-01 1.24574614e-01 1.24517089e-01 1.24459505e-01 + 1.24401864e-01 1.24344166e-01 1.24286409e-01 1.24228595e-01 1.24170723e-01 + 1.24112794e-01 1.24054806e-01 1.23996762e-01 1.23938659e-01 1.23880499e-01 + 1.23822281e-01 1.23764006e-01 1.23705674e-01 1.23647284e-01 1.23588836e-01 + 1.23530331e-01 1.23471769e-01 1.23413149e-01 1.23354472e-01 1.23295737e-01 + 1.23236946e-01 1.23178097e-01 1.23119190e-01 1.23060227e-01 1.23001206e-01 + 1.22942129e-01 1.22882994e-01 1.22823802e-01 1.22764553e-01 1.22705247e-01 + 1.22645884e-01 1.22586464e-01 1.22526988e-01 1.22467454e-01 1.22407864e-01 + 1.22348217e-01 1.22288513e-01 1.22228752e-01 1.22168935e-01 1.22109061e-01 + 1.22049130e-01 1.21989143e-01 1.21929100e-01 1.21869000e-01 1.21808843e-01 + 1.21748630e-01 1.21688361e-01 1.21628036e-01 1.21567654e-01 1.21507216e-01 + 1.21446722e-01 1.21386172e-01 1.21325566e-01 1.21264904e-01 1.21204185e-01 + 1.21143411e-01 1.21082581e-01 1.21021696e-01 1.20960754e-01 1.20899757e-01 + 1.20838704e-01 1.20777596e-01 1.20716432e-01 1.20655212e-01 1.20593937e-01 + 1.20532607e-01 1.20471221e-01 1.20409780e-01 1.20348284e-01 1.20286733e-01 + 1.20225127e-01 1.20163465e-01 1.20101749e-01 1.20039978e-01 1.19978152e-01 + 1.19916271e-01 1.19854335e-01 1.19792345e-01 1.19730300e-01 1.19668200e-01 + 1.19606047e-01 1.19543838e-01 1.19481576e-01 1.19419259e-01 1.19356888e-01 + 1.19294463e-01 1.19231984e-01 1.19169450e-01 1.19106863e-01 1.19044222e-01 + 1.18981528e-01 1.18918779e-01 1.18855977e-01 1.18793122e-01 1.18730213e-01 + 1.18667250e-01 1.18604235e-01 1.18541166e-01 1.18478043e-01 1.18414868e-01 + 1.18351640e-01 1.18288359e-01 1.18225025e-01 1.18161638e-01 1.18098199e-01 + 1.18034707e-01 1.17971163e-01 1.17907566e-01 1.17843917e-01 1.17780216e-01 + 1.17716462e-01 1.17652656e-01 1.17588799e-01 1.17524889e-01 1.17460928e-01 + 1.17396915e-01 1.17332851e-01 1.17268735e-01 1.17204567e-01 1.17140349e-01 + 1.17076079e-01 1.17011757e-01 1.16947385e-01 1.16882962e-01 1.16818488e-01 + 1.16753964e-01 1.16689388e-01 1.16624762e-01 1.16560086e-01 1.16495360e-01 + 1.16430583e-01 1.16365756e-01 1.16300879e-01 1.16235952e-01 1.16170975e-01 + 1.16105949e-01 1.16040873e-01 1.15975748e-01 1.15910573e-01 1.15845349e-01 + 1.15780076e-01 1.15714754e-01 1.15649383e-01 1.15583963e-01 1.15518494e-01 + 1.15452977e-01 1.15387412e-01 1.15321798e-01 1.15256136e-01 1.15190426e-01 + 1.15124668e-01 1.15058862e-01 1.14993008e-01 1.14927107e-01 1.14861158e-01 + 1.14795162e-01 1.14729119e-01 1.14663029e-01 1.14596892e-01 1.14530707e-01 + 1.14464477e-01 1.14398199e-01 1.14331875e-01 1.14265505e-01 1.14199089e-01 + 1.14132627e-01 1.14066119e-01 1.13999565e-01 1.13932965e-01 1.13866320e-01 + 1.13799630e-01 1.13732894e-01 1.13666113e-01 1.13599288e-01 1.13532417e-01 + 1.13465503e-01 1.13398543e-01 1.13331539e-01 1.13264491e-01 1.13197399e-01 + 1.13130263e-01 1.13063084e-01 1.12995861e-01 1.12928594e-01 1.12861284e-01 + 1.12793931e-01 1.12726535e-01 1.12659096e-01 1.12591615e-01 1.12524091e-01 + 1.12456524e-01 1.12388916e-01 1.12321265e-01 1.12253573e-01 1.12185839e-01 + 1.12118063e-01 1.12050246e-01 1.11982388e-01 1.11914489e-01 1.11846549e-01 + 1.11778568e-01 1.11710547e-01 1.11642485e-01 1.11574383e-01 1.11506242e-01 + 1.11438060e-01 1.11369839e-01 1.11301578e-01 1.11233278e-01 1.11164939e-01 + 1.11096561e-01 1.11028144e-01 1.10959689e-01 1.10891195e-01 1.10822663e-01 + 1.10754093e-01 1.10685486e-01 1.10616840e-01 1.10548157e-01 1.10479437e-01 + 1.10410680e-01 1.10341886e-01 1.10273055e-01 1.10204188e-01 1.10135284e-01 + 1.10066345e-01 1.09997369e-01 1.09928358e-01 1.09859311e-01 1.09790229e-01 + 1.09721112e-01 1.09651960e-01 1.09582773e-01 1.09513552e-01 1.09444296e-01 + 1.09375007e-01 1.09305683e-01 1.09236326e-01 1.09166936e-01 1.09097512e-01 + 1.09028055e-01 1.08958566e-01 1.08889044e-01 1.08819489e-01 1.08749902e-01 + 1.08680284e-01 1.08610634e-01 1.08540952e-01 1.08471239e-01 1.08401495e-01 + 1.08331720e-01 1.08261914e-01 1.08192078e-01 1.08122212e-01 1.08052316e-01 + 1.07982391e-01 1.07912436e-01 1.07842452e-01 1.07772438e-01 1.07702397e-01 + 1.07632326e-01 1.07562227e-01 1.07492101e-01 1.07421946e-01 1.07351764e-01 + 1.07281555e-01 1.07211318e-01 1.07141055e-01 1.07070766e-01 1.07000449e-01 + 1.06930107e-01 1.06859739e-01 1.06789346e-01 1.06718927e-01 1.06648483e-01 + 1.06578015e-01 1.06507521e-01 1.06437004e-01 1.06366462e-01 1.06295897e-01 + 1.06225308e-01 1.06154696e-01 1.06084061e-01 1.06013403e-01 1.05942723e-01 + 1.05872021e-01 1.05801296e-01 1.05730551e-01 1.05659783e-01 1.05588995e-01 + 1.05518186e-01 1.05447356e-01 1.05376506e-01 1.05305636e-01 1.05234746e-01 + 1.05163837e-01 1.05092908e-01 1.05021961e-01 1.04950995e-01 1.04880011e-01 + 1.04809009e-01 1.04737989e-01 1.04666951e-01 1.04595897e-01 1.04524826e-01 + 1.04453738e-01 1.04382633e-01 1.04311513e-01 1.04240377e-01 1.04169226e-01 + 1.04098060e-01 1.04026878e-01 1.03955683e-01 1.03884473e-01 1.03813249e-01 + 1.03742012e-01 1.03670761e-01 1.03599498e-01 1.03528222e-01 1.03456933e-01 + 1.03385633e-01 1.03314321e-01 1.03242997e-01 1.03171662e-01 1.03100317e-01 + 1.03028961e-01 1.02957595e-01 1.02886219e-01 1.02814833e-01 1.02743439e-01 + 1.02672036e-01 1.02600624e-01 1.02529204e-01 1.02457776e-01 1.02386340e-01 + 1.02314898e-01 1.02243448e-01 1.02171992e-01 1.02100530e-01 1.02029062e-01 + 1.01957589e-01 1.01886110e-01 1.01814626e-01 1.01743138e-01 1.01671646e-01 + 1.01600150e-01 1.01528651e-01 1.01457148e-01 1.01385643e-01 1.01314135e-01 + 1.01242625e-01 1.01171114e-01 1.01099601e-01 1.01028087e-01 1.00956573e-01 + 1.00885058e-01 1.00813543e-01 1.00742029e-01 1.00670515e-01 1.00599003e-01 + 1.00527492e-01 1.00455983e-01 1.00384477e-01 1.00312973e-01 1.00241472e-01 + 1.00169974e-01 1.00098480e-01 1.00026990e-01 9.99555050e-02 9.98840245e-02 + 9.98125493e-02 9.97410797e-02 9.96696161e-02 9.95981588e-02 9.95267084e-02 + 9.94552650e-02 9.93838292e-02 9.93124014e-02 9.92409818e-02 9.91695709e-02 + 9.90981691e-02 9.90267768e-02 9.89553944e-02 9.88840222e-02 9.88126607e-02 + 9.87413103e-02 9.86699713e-02 9.85986441e-02 9.85273293e-02 9.84560271e-02 + 9.83847379e-02 9.83134622e-02 9.82422004e-02 9.81709529e-02 9.80997201e-02 + 9.80285023e-02 9.79573001e-02 9.78861138e-02 9.78149439e-02 9.77437907e-02 + 9.76726547e-02 9.76015362e-02 9.75304358e-02 9.74593538e-02 9.73882907e-02 + 9.73172468e-02 9.72462226e-02 9.71752186e-02 9.71042351e-02 9.70332725e-02 + 9.69623314e-02 9.68914121e-02 9.68205151e-02 9.67496408e-02 9.66787897e-02 + 9.66079621e-02 9.65371585e-02 9.64663793e-02 9.63956251e-02 9.63248961e-02 + 9.62541930e-02 9.61835160e-02 9.61128657e-02 9.60422425e-02 9.59716469e-02 + 9.59010792e-02 9.58305400e-02 9.57600297e-02 9.56895487e-02 9.56190976e-02 + 9.55486767e-02 9.54782865e-02 9.54079274e-02 9.53376000e-02 9.52673047e-02 + 9.51970419e-02 9.51268121e-02 9.50566158e-02 9.49864534e-02 9.49163254e-02 + 9.48462322e-02 9.47761744e-02 9.47061524e-02 9.46361667e-02 9.45662176e-02 + 9.44963058e-02 9.44264317e-02 9.43565957e-02 9.42867984e-02 9.42170402e-02 + 9.41473215e-02 9.40776429e-02 9.40080049e-02 9.39384078e-02 9.38688523e-02 + 9.37993388e-02 9.37298677e-02 9.36604397e-02 9.35910550e-02 9.35217143e-02 + 9.34524180e-02 9.33831666e-02 9.33139606e-02 9.32448006e-02 9.31756869e-02 + 9.31066201e-02 9.30376006e-02 9.29686291e-02 9.28997059e-02 9.28308316e-02 + 9.27620066e-02 9.26932315e-02 9.26245068e-02 9.25558330e-02 9.24872106e-02 + 9.24186400e-02 9.23501218e-02 9.22816566e-02 9.22132447e-02 9.21448867e-02 + 9.20765832e-02 9.20083346e-02 9.19401414e-02 9.18720042e-02 9.18039235e-02 + 9.17358998e-02 9.16679335e-02 9.16000253e-02 9.15321756e-02 9.14643850e-02 + 9.13966540e-02 9.13289830e-02 9.12613727e-02 9.11938235e-02 9.11263360e-02 + 9.10589106e-02 9.09915480e-02 9.09242486e-02 9.08570130e-02 9.07898417e-02 + 9.07227352e-02 9.06556940e-02 9.05887187e-02 9.05218099e-02 9.04549680e-02 + 9.03881935e-02 9.03214871e-02 9.02548492e-02 9.01882804e-02 9.01217813e-02 + 9.00553522e-02 8.99889939e-02 8.99227068e-02 8.98564915e-02 8.97903485e-02 + 8.97242783e-02 8.96582816e-02 8.95923588e-02 8.95265104e-02 8.94607371e-02 + 8.93950394e-02 8.93294177e-02 8.92638728e-02 8.91984050e-02 8.91330150e-02 + 8.90677033e-02 8.90024705e-02 8.89373170e-02 8.88722435e-02 8.88072505e-02 + 8.87423386e-02 8.86775083e-02 8.86127602e-02 8.85480947e-02 8.84835126e-02 + 8.84190142e-02 8.83546003e-02 8.82902712e-02 8.82260277e-02 8.81618702e-02 + 8.80977994e-02 8.80338157e-02 8.79699197e-02 8.79061120e-02 8.78423932e-02 + 8.77787637e-02 8.77152243e-02 8.76517753e-02 8.75884175e-02 8.75251513e-02 + 8.74619773e-02 8.73988961e-02 8.73359083e-02 8.72730143e-02 8.72102149e-02 + 8.71475104e-02 8.70849016e-02 8.70223890e-02 8.69599731e-02 8.68976544e-02 + 8.68354337e-02 8.67733114e-02 8.67112881e-02 8.66493644e-02 8.65875409e-02 + 8.65258180e-02 8.64641964e-02 8.64026767e-02 8.63412594e-02 8.62799451e-02 + 8.62187344e-02 8.61576278e-02 8.60966259e-02 8.60357293e-02 8.59749386e-02 + 8.59142542e-02 8.58536769e-02 8.57932071e-02 8.57328455e-02 8.56725925e-02 + 8.56124489e-02 8.55524151e-02 8.54924918e-02 8.54326794e-02 8.53729787e-02 + 8.53133900e-02 8.52539141e-02 8.51945515e-02 8.51353028e-02 8.50761685e-02 + 8.50171493e-02 8.49582456e-02 8.48994581e-02 8.48407874e-02 8.47822340e-02 + 8.47237984e-02 8.46654813e-02 8.46072833e-02 8.45492049e-02 8.44912466e-02 + 8.44334092e-02 8.43756930e-02 8.43180988e-02 8.42606271e-02 8.42032784e-02 + 8.41460533e-02 8.40889525e-02 8.40319764e-02 8.39751257e-02 8.39184009e-02 + 8.38618026e-02 8.38053314e-02 8.37489878e-02 8.36927724e-02 8.36366859e-02 + 8.35807286e-02 8.35249013e-02 8.34692046e-02 8.34136388e-02 8.33582048e-02 + 8.33029029e-02 8.32477338e-02 8.31926981e-02 8.31377963e-02 8.30830290e-02 + 8.30283967e-02 8.29739001e-02 8.29195397e-02 8.28653161e-02 8.28112297e-02 + 8.27572813e-02 8.27034714e-02 8.26498005e-02 8.25962691e-02 8.25428780e-02 + 8.24896276e-02 8.24365184e-02 8.23835511e-02 8.23307263e-02 8.22780444e-02 + 8.22255060e-02 8.21731118e-02 8.21208622e-02 8.20687579e-02 8.20167993e-02 + 8.19649871e-02 8.19133218e-02 8.18618039e-02 8.18104341e-02 8.17592128e-02 + 8.17081407e-02 8.16572182e-02 8.16064460e-02 8.15558245e-02 8.15053545e-02 + 8.14550363e-02 8.14048705e-02 8.13548578e-02 8.13049986e-02 8.12552935e-02 + 8.12057430e-02 8.11563478e-02 8.11071082e-02 8.10580250e-02 8.10090986e-02 + 8.09603295e-02 8.09117184e-02 8.08632657e-02 8.08149721e-02 8.07668379e-02 + 8.07188639e-02 8.06710504e-02 8.06233982e-02 8.05759075e-02 8.05285792e-02 + 8.04814136e-02 8.04344112e-02 8.03875727e-02 8.03408986e-02 8.02943893e-02 + 8.02480455e-02 8.02018675e-02 8.01558561e-02 8.01100116e-02 8.00643347e-02 + 8.00188258e-02 7.99734855e-02 7.99283142e-02 7.98833126e-02 7.98384810e-02 + 7.97938201e-02 7.97493304e-02 7.97050123e-02 7.96608664e-02 7.96168932e-02 + 7.95730933e-02 7.95294670e-02 7.94860149e-02 7.94427376e-02 7.93996355e-02 + 7.93567091e-02 7.93139590e-02 7.92713856e-02 7.92289895e-02 7.91867711e-02 + 7.91447310e-02 7.91028695e-02 7.90611873e-02 7.90196849e-02 7.89783626e-02 + 7.89372210e-02 7.88962607e-02 7.88554819e-02 7.88148854e-02 7.87744715e-02 + 7.87342407e-02 7.86941935e-02 7.86543304e-02 7.86146519e-02 7.85751584e-02 + 7.85358504e-02 7.84967284e-02 7.84577929e-02 7.84190442e-02 7.83804830e-02 + 7.83421096e-02 7.83039245e-02 7.82659282e-02 7.82281212e-02 7.81905038e-02 + 7.81530766e-02 7.81158400e-02 7.80787945e-02 7.80419405e-02 7.80052784e-02 + 7.79688088e-02 7.79325320e-02 7.78964485e-02 7.78605587e-02 7.78248631e-02 + 7.77893622e-02 7.77540563e-02 7.77189459e-02 7.76840314e-02 7.76493132e-02 + 7.76147919e-02 7.75804677e-02 7.75463412e-02 7.75124127e-02 7.74786828e-02 + 7.74451517e-02 7.74118199e-02 7.73786878e-02 7.73457559e-02 7.73130245e-02 + 7.72804941e-02 7.72481650e-02 7.72160377e-02 7.71841125e-02 7.71523900e-02 + 7.71208703e-02 7.70895541e-02 7.70584416e-02 7.70275332e-02 7.69968293e-02 + 7.69663304e-02 7.69360368e-02 7.69059488e-02 7.68760670e-02 7.68463915e-02 + 7.68169229e-02 7.67876614e-02 7.67586075e-02 7.67297616e-02 7.67011239e-02 + 7.66726949e-02 7.66444749e-02 7.66164642e-02 7.65886633e-02 7.65610725e-02 + 7.65336921e-02 7.65065225e-02 7.64795641e-02 7.64528171e-02 7.64262819e-02 + 7.63999589e-02 7.63738484e-02 7.63479508e-02 7.63222662e-02 7.62967952e-02 + 7.62715380e-02 7.62464950e-02 7.62216664e-02 7.61970526e-02 7.61726539e-02 + 7.61484706e-02 7.61245031e-02 7.61007516e-02 7.60772164e-02 7.60538979e-02 + 7.60307964e-02 7.60079121e-02 7.59852453e-02 7.59627964e-02 7.59405657e-02 + 7.59185533e-02 7.58967597e-02 7.58751851e-02 7.58538297e-02 7.58326939e-02 + 7.58117779e-02 7.57910820e-02 7.57706065e-02 7.57503516e-02 7.57303176e-02 + 7.57105048e-02 7.56909134e-02 7.56715437e-02 7.56523959e-02 7.56334703e-02 + 7.56147671e-02 7.55962866e-02 7.55780290e-02 7.55599946e-02 7.55421835e-02 + 7.55245961e-02 7.55072326e-02 7.54900931e-02 7.54731780e-02 7.54564874e-02 + 7.54400215e-02 7.54237806e-02 7.54077649e-02 7.53919746e-02 7.53764099e-02 + 7.53610711e-02 7.53459582e-02 7.53310716e-02 7.53164113e-02 7.53019777e-02 + 7.52877708e-02 7.52737910e-02 7.52600383e-02 7.52465130e-02 7.52332152e-02 + 7.52201451e-02 7.52073028e-02 7.51946887e-02 7.51823027e-02 7.51701451e-02 + 7.51582161e-02 7.51465158e-02 7.51350443e-02 7.51238019e-02 7.51127886e-02 + 7.51020046e-02 7.50914500e-02 7.50811251e-02 7.50710299e-02 7.50611645e-02 + 7.50515291e-02 7.50421239e-02 7.50329489e-02 7.50240043e-02 7.50152901e-02 + 7.50068066e-02 7.49985538e-02 7.49905318e-02 7.49827407e-02 7.49751807e-02 + 7.49678518e-02 7.49607542e-02 7.49538879e-02 7.49472530e-02 7.49408496e-02 + 7.49346779e-02 7.49287378e-02 7.49230295e-02 7.49175530e-02 7.49123084e-02 + 7.49072958e-02 7.49025153e-02 7.48979669e-02 7.48936506e-02 7.48895666e-02 + 7.48857148e-02 7.48820954e-02 7.48787084e-02 7.48755538e-02 7.48726317e-02 + 7.48699421e-02 7.48674851e-02 7.48652606e-02 7.48632687e-02 7.48615095e-02 + 7.48599830e-02 7.48586891e-02 7.48576279e-02 7.48567994e-02 7.48562037e-02 + 7.48558407e-02 7.48557104e-02 7.48558129e-02 7.48561481e-02 7.48567160e-02 + 7.48575167e-02 7.48585501e-02 7.48598162e-02 7.48613149e-02 7.48630464e-02 + 7.48650104e-02 7.48672071e-02 7.48696364e-02 7.48722982e-02 7.48751926e-02 + 7.48783194e-02 7.48816786e-02 7.48852703e-02 7.48890943e-02 7.48931506e-02 + 7.48974391e-02 7.49019598e-02 7.49067126e-02 7.49116975e-02 7.49169143e-02 + 7.49223631e-02 7.49280438e-02 7.49339562e-02 7.49401003e-02 7.49464760e-02 + 7.49530832e-02 7.49599219e-02 7.49669919e-02 7.49742931e-02 7.49818255e-02 + 7.49895890e-02 7.49975834e-02 7.50058087e-02 7.50142646e-02 7.50229512e-02 + 7.50318684e-02 7.50410158e-02 7.50503936e-02 7.50600015e-02 7.50698394e-02 + 7.50799072e-02 7.50902047e-02 7.51007318e-02 7.51114884e-02 7.51224743e-02 + 7.51336894e-02 7.51451335e-02 7.51568065e-02 7.51687082e-02 7.51808385e-02 + 7.51931972e-02 7.52057841e-02 7.52185991e-02 7.52316420e-02 7.52449126e-02 + 7.52584108e-02 7.52721363e-02 7.52860890e-02 7.53002688e-02 7.53146753e-02 + 7.53293085e-02 7.53441681e-02 7.53592540e-02 7.53745659e-02 7.53901036e-02 + 7.54058670e-02 7.54218558e-02 7.54380698e-02 7.54545087e-02 7.54711725e-02 + 7.54880609e-02 7.55051735e-02 7.55225103e-02 7.55400710e-02 7.55578553e-02 + 7.55758631e-02 7.55940940e-02 7.56125479e-02 7.56312245e-02 7.56501236e-02 + 7.56692448e-02 7.56885881e-02 7.57081530e-02 7.57279394e-02 7.57479470e-02 + 7.57681755e-02 7.57886247e-02 7.58092942e-02 7.58301840e-02 7.58512935e-02 + 7.58726227e-02 7.58941712e-02 7.59159386e-02 7.59379249e-02 7.59601296e-02 + 7.59825524e-02 7.60051932e-02 7.60280515e-02 7.60511271e-02 7.60744197e-02 + 7.60979290e-02 7.61216547e-02 7.61455964e-02 7.61697540e-02 7.61941269e-02 + 7.62187151e-02 7.62435180e-02 7.62685354e-02 7.62937671e-02 7.63192126e-02 + 7.63448716e-02 7.63707438e-02 7.63968289e-02 7.64231266e-02 7.64496364e-02 + 7.64763581e-02 7.65032913e-02 7.65304357e-02 7.65577909e-02 7.65853566e-02 + 7.66131325e-02 7.66411181e-02 7.66693131e-02 7.66977171e-02 7.67263299e-02 + 7.67551510e-02 7.67841801e-02 7.68134168e-02 7.68428607e-02 7.68725114e-02 + 7.69023687e-02 7.69324320e-02 7.69627011e-02 7.69931756e-02 7.70238549e-02 + 7.70547389e-02 7.70858271e-02 7.71171190e-02 7.71486144e-02 7.71803127e-02 + 7.72122137e-02 7.72443169e-02 7.72766219e-02 7.73091283e-02 7.73418357e-02 + 7.73747437e-02 7.74078518e-02 7.74411598e-02 7.74746671e-02 7.75083734e-02 + 7.75422781e-02 7.75763810e-02 7.76106816e-02 7.76451794e-02 7.76798741e-02 + 7.77147651e-02 7.77498522e-02 7.77851347e-02 7.78206124e-02 7.78562848e-02 + 7.78921513e-02 7.79282117e-02 7.79644654e-02 7.80009121e-02 7.80375512e-02 + 7.80743823e-02 7.81114050e-02 7.81486188e-02 7.81860233e-02 7.82236179e-02 + 7.82614023e-02 7.82993761e-02 7.83375386e-02 7.83758895e-02 7.84144284e-02 + 7.84531546e-02 7.84920679e-02 7.85311676e-02 7.85704534e-02 7.86099248e-02 + 7.86495813e-02 7.86894223e-02 7.87294475e-02 7.87696564e-02 7.88100485e-02 + 7.88506232e-02 7.88913802e-02 7.89323189e-02 7.89734389e-02 7.90147396e-02 + 7.90562205e-02 7.90978813e-02 7.91397213e-02 7.91817402e-02 7.92239373e-02 + 7.92663122e-02 7.93088645e-02 7.93515935e-02 7.93944988e-02 7.94375800e-02 + 7.94808364e-02 7.95242676e-02 7.95678731e-02 7.96116524e-02 7.96556049e-02 + 7.96997302e-02 7.97440277e-02 7.97884970e-02 7.98331374e-02 7.98779486e-02 + 7.99229300e-02 7.99680810e-02 8.00134012e-02 8.00588900e-02 8.01045468e-02 + 8.01503713e-02 8.01963628e-02 8.02425209e-02 8.02888450e-02 8.03353345e-02 + 8.03819890e-02 8.04288079e-02 8.04757907e-02 8.05229368e-02 8.05702458e-02 + 8.06177170e-02 8.06653500e-02 8.07131443e-02 8.07610992e-02 8.08092142e-02 + 8.08574888e-02 8.09059225e-02 8.09545148e-02 8.10032650e-02 8.10521726e-02 + 8.11012372e-02 8.11504581e-02 8.11998347e-02 8.12493667e-02 8.12990534e-02 + 8.13488942e-02 8.13988886e-02 8.14490361e-02 8.14993361e-02 8.15497881e-02 + 8.16003915e-02 8.16511457e-02 8.17020502e-02 8.17531045e-02 8.18043080e-02 + 8.18556601e-02 8.19071604e-02 8.19588081e-02 8.20106028e-02 8.20625439e-02 + 8.21146309e-02 8.21668631e-02 8.22192401e-02 8.22717613e-02 8.23244260e-02 + 8.23772339e-02 8.24301842e-02 8.24832764e-02 8.25365100e-02 8.25898843e-02 + 8.26433990e-02 8.26970532e-02 8.27508466e-02 8.28047785e-02 8.28588484e-02 + 8.29130557e-02 8.29673998e-02 8.30218801e-02 8.30764962e-02 8.31312474e-02 + 8.31861332e-02 8.32411529e-02 8.32963061e-02 8.33515922e-02 8.34070105e-02 + 8.34625605e-02 8.35182417e-02 8.35740534e-02 8.36299951e-02 8.36860663e-02 + 8.37422663e-02 8.37985946e-02 8.38550506e-02 8.39116338e-02 8.39683435e-02 + 8.40251792e-02 8.40821403e-02 8.41392263e-02 8.41964365e-02 8.42537705e-02 + 8.43112275e-02 8.43688072e-02 8.44265088e-02 8.44843318e-02 8.45422756e-02 + 8.46003397e-02 8.46585235e-02 8.47168264e-02 8.47752478e-02 8.48337872e-02 + 8.48924439e-02 8.49512175e-02 8.50101073e-02 8.50691128e-02 8.51282334e-02 + 8.51874685e-02 8.52468175e-02 8.53062799e-02 8.53658551e-02 8.54255425e-02 + 8.54853415e-02 8.55452516e-02 8.56052723e-02 8.56654028e-02 8.57256427e-02 + 8.57859914e-02 8.58464483e-02 8.59070128e-02 8.59676844e-02 8.60284625e-02 + 8.60893465e-02 8.61503358e-02 8.62114299e-02 8.62726282e-02 8.63339302e-02 + 8.63953352e-02 8.64568427e-02 8.65184522e-02 8.65801629e-02 8.66419745e-02 + 8.67038863e-02 8.67658977e-02 8.68280082e-02 8.68902172e-02 8.69525242e-02 + 8.70149285e-02 8.70774296e-02 8.71400270e-02 8.72027200e-02 8.72655081e-02 + 8.73283908e-02 8.73913675e-02 8.74544376e-02 8.75176005e-02 8.75808557e-02 + 8.76442026e-02 8.77076407e-02 8.77711694e-02 8.78347881e-02 8.78984963e-02 + 8.79622934e-02 8.80261789e-02 8.80901521e-02 8.81542126e-02 8.82183598e-02 + 8.82825930e-02 8.83469119e-02 8.84113157e-02 8.84758040e-02 8.85403762e-02 + 8.86050317e-02 8.86697700e-02 8.87345905e-02 8.87994927e-02 8.88644761e-02 + 8.89295400e-02 8.89946839e-02 8.90599073e-02 8.91252096e-02 8.91905903e-02 + 8.92560488e-02 8.93215845e-02 8.93871970e-02 8.94528857e-02 8.95186500e-02 + 8.95844894e-02 8.96504034e-02 8.97163914e-02 8.97824528e-02 8.98485871e-02 + 8.99147938e-02 8.99810724e-02 9.00474222e-02 9.01138428e-02 9.01803336e-02 + 9.02468942e-02 9.03135238e-02 9.03802221e-02 9.04469884e-02 9.05138223e-02 + 9.05807232e-02 9.06476906e-02 9.07147239e-02 9.07818226e-02 9.08489862e-02 + 9.09162142e-02 9.09835060e-02 9.10508611e-02 9.11182790e-02 9.11857591e-02 + 9.12533009e-02 9.13209040e-02 9.13885677e-02 9.14562916e-02 9.15240751e-02 + 9.15919178e-02 9.16598190e-02 9.17277784e-02 9.17957953e-02 9.18638692e-02 + 9.19319997e-02 9.20001862e-02 9.20684282e-02 9.21367252e-02 9.22050767e-02 + 9.22734821e-02 9.23419411e-02 9.24104530e-02 9.24790173e-02 9.25476336e-02 + 9.26163013e-02 9.26850199e-02 9.27537890e-02 9.28226080e-02 9.28914765e-02 + 9.29603938e-02 9.30293596e-02 9.30983734e-02 9.31674346e-02 9.32365427e-02 + 9.33056973e-02 9.33748978e-02 9.34441438e-02 9.35134347e-02 9.35827701e-02 + 9.36521496e-02 9.37215725e-02 9.37910385e-02 9.38605469e-02 9.39300975e-02 + 9.39996895e-02 9.40693227e-02 9.41389965e-02 9.42087104e-02 9.42784639e-02 + 9.43482566e-02 9.44180880e-02 9.44879576e-02 9.45578649e-02 9.46278095e-02 + 9.46977909e-02 9.47678086e-02 9.48378622e-02 9.49079511e-02 9.49780750e-02 + 9.50482333e-02 9.51184256e-02 9.51886514e-02 9.52589103e-02 9.53292017e-02 + 9.53995254e-02 9.54698806e-02 9.55402671e-02 9.56106844e-02 9.56811320e-02 + 9.57516094e-02 9.58221162e-02 9.58926520e-02 9.59632163e-02 9.60338086e-02 + 9.61044286e-02 9.61750756e-02 9.62457494e-02 9.63164495e-02 9.63871754e-02 + 9.64579266e-02 9.65287028e-02 9.65995035e-02 9.66703283e-02 9.67411766e-02 + 9.68120482e-02 9.68829425e-02 9.69538592e-02 9.70247977e-02 9.70957577e-02 + 9.71667387e-02 9.72377403e-02 9.73087621e-02 9.73798037e-02 9.74508645e-02 + 9.75219443e-02 9.75930426e-02 9.76641589e-02 9.77352928e-02 9.78064440e-02 + 9.78776119e-02 9.79487963e-02 9.80199966e-02 9.80912125e-02 9.81624436e-02 + 9.82336894e-02 9.83049495e-02 9.83762235e-02 9.84475111e-02 9.85188118e-02 + 9.85901251e-02 9.86614508e-02 9.87327884e-02 9.88041375e-02 9.88754977e-02 + 9.89468687e-02 9.90182499e-02 9.90896410e-02 9.91610417e-02 9.92324515e-02 + 9.93038701e-02 9.93752970e-02 9.94467318e-02 9.95181743e-02 9.95896239e-02 + 9.96610804e-02 9.97325432e-02 9.98040122e-02 9.98754867e-02 9.99469666e-02 + 1.00018451e-01 1.00089941e-01 1.00161434e-01 1.00232931e-01 1.00304432e-01 + 1.00375936e-01 1.00447442e-01 1.00518951e-01 1.00590461e-01 1.00661973e-01 + 1.00733487e-01 1.00805001e-01 1.00876516e-01 1.00948030e-01 1.01019545e-01 + 1.01091059e-01 1.01162572e-01 1.01234084e-01 1.01305594e-01 1.01377102e-01 + 1.01448607e-01 1.01520110e-01 1.01591610e-01 1.01663106e-01 1.01734599e-01 + 1.01806088e-01 1.01877572e-01 1.01949051e-01 1.02020525e-01 1.02091994e-01 + 1.02163457e-01 1.02234914e-01 1.02306364e-01 1.02377807e-01 1.02449244e-01 + 1.02520672e-01 1.02592093e-01 1.02663506e-01 1.02734911e-01 1.02806306e-01 + 1.02877693e-01 1.02949070e-01 1.03020437e-01 1.03091794e-01 1.03163141e-01 + 1.03234477e-01 1.03305802e-01 1.03377115e-01 1.03448417e-01 1.03519707e-01 + 1.03590985e-01 1.03662250e-01 1.03733502e-01 1.03804741e-01 1.03875966e-01 + 1.03947178e-01 1.04018375e-01 1.04089558e-01 1.04160726e-01 1.04231879e-01 + 1.04303017e-01 1.04374139e-01 1.04445245e-01 1.04516335e-01 1.04587409e-01 + 1.04658465e-01 1.04729504e-01 1.04800527e-01 1.04871531e-01 1.04942517e-01 + 1.05013485e-01 1.05084435e-01 1.05155365e-01 1.05226277e-01 1.05297169e-01 + 1.05368041e-01 1.05438894e-01 1.05509726e-01 1.05580538e-01 1.05651329e-01 + 1.05722099e-01 1.05792847e-01 1.05863574e-01 1.05934279e-01 1.06004962e-01 + 1.06075622e-01 1.06146260e-01 1.06216875e-01 1.06287467e-01 1.06358035e-01 + 1.06428579e-01 1.06499100e-01 1.06569596e-01 1.06640067e-01 1.06710514e-01 + 1.06780936e-01 1.06851332e-01 1.06921703e-01 1.06992049e-01 1.07062368e-01 + 1.07132661e-01 1.07202927e-01 1.07273167e-01 1.07343379e-01 1.07413565e-01 + 1.07483722e-01 1.07553852e-01 1.07623955e-01 1.07694028e-01 1.07764074e-01 + 1.07834090e-01 1.07904078e-01 1.07974036e-01 1.08043966e-01 1.08113865e-01 + 1.08183735e-01 1.08253574e-01 1.08323383e-01 1.08393162e-01 1.08462910e-01 + 1.08532626e-01 1.08602312e-01 1.08671966e-01 1.08741588e-01 1.08811179e-01 + 1.08880737e-01 1.08950263e-01 1.09019757e-01 1.09089217e-01 1.09158645e-01 + 1.09228040e-01 1.09297401e-01 1.09366728e-01 1.09436022e-01 1.09505281e-01 + 1.09574507e-01 1.09643698e-01 1.09712854e-01 1.09781975e-01 1.09851061e-01 + 1.09920112e-01 1.09989128e-01 1.10058108e-01 1.10127052e-01 1.10195959e-01 + 1.10264831e-01 1.10333666e-01 1.10402465e-01 1.10471226e-01 1.10539951e-01 + 1.10608638e-01 1.10677288e-01 1.10745900e-01 1.10814475e-01 1.10883011e-01 + 1.10951510e-01 1.11019970e-01 1.11088391e-01 1.11156774e-01 1.11225117e-01 + 1.11293422e-01 1.11361687e-01 1.11429913e-01 1.11498100e-01 1.11566246e-01 + 1.11634353e-01 1.11702419e-01 1.11770445e-01 1.11838431e-01 1.11906376e-01 + 1.11974280e-01 1.12042143e-01 1.12109965e-01 1.12177745e-01 1.12245484e-01 + 1.12313182e-01 1.12380837e-01 1.12448451e-01 1.12516022e-01 1.12583551e-01 + 1.12651038e-01 1.12718482e-01 1.12785883e-01 1.12853241e-01 1.12920556e-01 + 1.12987828e-01 1.13055056e-01 1.13122241e-01 1.13189382e-01 1.13256480e-01 + 1.13323533e-01 1.13390542e-01 1.13457507e-01 1.13524427e-01 1.13591303e-01 + 1.13658134e-01 1.13724920e-01 1.13791661e-01 1.13858356e-01 1.13925007e-01 + 1.13991612e-01 1.14058171e-01 1.14124685e-01 1.14191153e-01 1.14257575e-01 + 1.14323950e-01 1.14390280e-01 1.14456562e-01 1.14522799e-01 1.14588988e-01 + 1.14655131e-01 1.14721227e-01 1.14787276e-01 1.14853278e-01 1.14919232e-01 + 1.14985139e-01 1.15050998e-01 1.15116810e-01 1.15182574e-01 1.15248290e-01 + 1.15313957e-01 1.15379577e-01 1.15445148e-01 1.15510671e-01 1.15576146e-01 + 1.15641571e-01 1.15706948e-01 1.15772276e-01 1.15837555e-01 1.15902785e-01 + 1.15967965e-01 1.16033097e-01 1.16098179e-01 1.16163211e-01 1.16228193e-01 + 1.16293126e-01 1.16358009e-01 1.16422842e-01 1.16487625e-01 1.16552357e-01 + 1.16617040e-01 1.16681672e-01 1.16746253e-01 1.16810784e-01 1.16875264e-01 + 1.16939693e-01 1.17004071e-01 1.17068398e-01 1.17132674e-01 1.17196899e-01 + 1.17261073e-01 1.17325195e-01 1.17389266e-01 1.17453285e-01 1.17517252e-01 + 1.17581168e-01 1.17645032e-01 1.17708843e-01 1.17772603e-01 1.17836311e-01 + 1.17899966e-01 1.17963569e-01 1.18027120e-01 1.18090618e-01 1.18154064e-01 + 1.18217457e-01 1.18280797e-01 1.18344084e-01 1.18407319e-01 1.18470500e-01 + 1.18533629e-01 1.18596704e-01 1.18659726e-01 1.18722695e-01 1.18785610e-01 + 1.18848472e-01 1.18911281e-01 1.18974035e-01 1.19036736e-01 1.19099384e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 2.08130000e-04 2.08281191e-04 2.08734762e-04 2.09490714e-04 2.10549046e-04 + 2.11909757e-04 2.13572846e-04 2.15538310e-04 2.17806148e-04 2.20376358e-04 + 2.23248936e-04 2.26423882e-04 2.29901190e-04 2.33680858e-04 2.37762883e-04 + 2.42147260e-04 2.46833984e-04 2.51823051e-04 2.57114457e-04 2.62708196e-04 + 2.68604263e-04 2.74802652e-04 2.81303356e-04 2.88106370e-04 2.95211687e-04 + 3.02619299e-04 3.10329200e-04 3.18341382e-04 3.26655837e-04 3.35272557e-04 + 3.44191533e-04 3.53412758e-04 3.62936221e-04 3.72761913e-04 3.82889825e-04 + 3.93319947e-04 4.04052269e-04 4.15086779e-04 4.26423468e-04 4.38062324e-04 + 4.50003336e-04 4.62246492e-04 4.74791780e-04 4.87639188e-04 5.00788703e-04 + 5.14240312e-04 5.27994002e-04 5.42049760e-04 5.56407572e-04 5.71067423e-04 + 5.86029300e-04 6.01293187e-04 6.16859071e-04 6.32726934e-04 6.48896763e-04 + 6.65368541e-04 6.82142252e-04 6.99217880e-04 7.16595407e-04 7.34274817e-04 + 7.52256092e-04 7.70539216e-04 7.89124169e-04 8.08010934e-04 8.27199493e-04 + 8.46689825e-04 8.66481913e-04 8.86575737e-04 9.06971278e-04 9.27668514e-04 + 9.48667427e-04 9.69967995e-04 9.91570198e-04 1.01347401e-03 1.03567942e-03 + 1.05818640e-03 1.08099493e-03 1.10410498e-03 1.12751654e-03 1.15122957e-03 + 1.17524406e-03 1.19955999e-03 1.22417733e-03 1.24909605e-03 1.27431613e-03 + 1.29983755e-03 1.32566029e-03 1.35178430e-03 1.37820958e-03 1.40493610e-03 + 1.43196382e-03 1.45929272e-03 1.48692278e-03 1.51485397e-03 1.54308626e-03 + 1.57161963e-03 1.60045404e-03 1.62958946e-03 1.65902588e-03 1.68876325e-03 + 1.71880156e-03 1.74914077e-03 1.77978085e-03 1.81072177e-03 1.84196351e-03 + 1.87350602e-03 1.90534929e-03 1.93749327e-03 1.96993795e-03 2.00268328e-03 + 2.03572923e-03 2.06907577e-03 2.10272288e-03 2.13667051e-03 2.17091863e-03 + 2.20546721e-03 2.24031622e-03 2.27546562e-03 2.31091538e-03 2.34666546e-03 + 2.38271583e-03 2.41906645e-03 2.45571729e-03 2.49266831e-03 2.52991947e-03 + 2.56747075e-03 2.60532209e-03 2.64347347e-03 2.68192485e-03 2.72067619e-03 + 2.75972745e-03 2.79907859e-03 2.83872959e-03 2.87868038e-03 2.91893095e-03 + 2.95948125e-03 3.00033123e-03 3.04148087e-03 3.08293011e-03 3.12467892e-03 + 3.16672726e-03 3.20907509e-03 3.25172236e-03 3.29466904e-03 3.33791508e-03 + 3.38146044e-03 3.42530507e-03 3.46944894e-03 3.51389201e-03 3.55863422e-03 + 3.60367554e-03 3.64901591e-03 3.69465531e-03 3.74059367e-03 3.78683096e-03 + 3.83336714e-03 3.88020215e-03 3.92733595e-03 3.97476850e-03 4.02249975e-03 + 4.07052965e-03 4.11885815e-03 4.16748522e-03 4.21641079e-03 4.26563483e-03 + 4.31515728e-03 4.36497811e-03 4.41509725e-03 4.46551466e-03 4.51623029e-03 + 4.56724409e-03 4.61855601e-03 4.67016601e-03 4.72207403e-03 4.77428002e-03 + 4.82678393e-03 4.87958570e-03 4.93268530e-03 4.98608266e-03 5.03977774e-03 + 5.09377048e-03 5.14806083e-03 5.20264873e-03 5.25753414e-03 5.31271700e-03 + 5.36819725e-03 5.42397485e-03 5.48004973e-03 5.53642185e-03 5.59309115e-03 + 5.65005757e-03 5.70732106e-03 5.76488157e-03 5.82273903e-03 5.88089339e-03 + 5.93934459e-03 5.99809258e-03 6.05713731e-03 6.11647870e-03 6.17611671e-03 + 6.23605128e-03 6.29628235e-03 6.35680986e-03 6.41763375e-03 6.47875396e-03 + 6.54017044e-03 6.60188312e-03 6.66389194e-03 6.72619685e-03 6.78879778e-03 + 6.85169468e-03 6.91488748e-03 6.97837611e-03 7.04216053e-03 7.10624066e-03 + 7.17061645e-03 7.23528783e-03 7.30025474e-03 7.36551712e-03 7.43107490e-03 + 7.49692802e-03 7.56307641e-03 7.62952002e-03 7.69625878e-03 7.76329262e-03 + 7.83062147e-03 7.89824528e-03 7.96616398e-03 8.03437750e-03 8.10288577e-03 + 8.17168874e-03 8.24078632e-03 8.31017847e-03 8.37986510e-03 8.44984615e-03 + 8.52012155e-03 8.59069124e-03 8.66155515e-03 8.73271321e-03 8.80416535e-03 + 8.87591149e-03 8.94795158e-03 9.02028554e-03 9.09291331e-03 9.16583480e-03 + 9.23904995e-03 9.31255870e-03 9.38636096e-03 9.46045668e-03 9.53484577e-03 + 9.60952816e-03 9.68450379e-03 9.75977258e-03 9.83533445e-03 9.91118934e-03 + 9.98733717e-03 1.00637779e-02 1.01405114e-02 1.02175376e-02 1.02948564e-02 + 1.03724679e-02 1.04503718e-02 1.05285681e-02 1.06070568e-02 1.06858378e-02 + 1.07649109e-02 1.08442762e-02 1.09239335e-02 1.10038828e-02 1.10841240e-02 + 1.11646570e-02 1.12454817e-02 1.13265980e-02 1.14080060e-02 1.14897054e-02 + 1.15716963e-02 1.16539785e-02 1.17365519e-02 1.18194166e-02 1.19025723e-02 + 1.19860191e-02 1.20697568e-02 1.21537854e-02 1.22381047e-02 1.23227148e-02 + 1.24076155e-02 1.24928067e-02 1.25782883e-02 1.26640604e-02 1.27501227e-02 + 1.28364752e-02 1.29231179e-02 1.30100506e-02 1.30972732e-02 1.31847858e-02 + 1.32725881e-02 1.33606801e-02 1.34490618e-02 1.35377329e-02 1.36266936e-02 + 1.37159436e-02 1.38054829e-02 1.38953113e-02 1.39854289e-02 1.40758355e-02 + 1.41665311e-02 1.42575155e-02 1.43487886e-02 1.44403504e-02 1.45322008e-02 + 1.46243398e-02 1.47167671e-02 1.48094827e-02 1.49024866e-02 1.49957786e-02 + 1.50893587e-02 1.51832267e-02 1.52773826e-02 1.53718263e-02 1.54665577e-02 + 1.55615767e-02 1.56568832e-02 1.57524771e-02 1.58483584e-02 1.59445269e-02 + 1.60409825e-02 1.61377252e-02 1.62347549e-02 1.63320714e-02 1.64296747e-02 + 1.65275647e-02 1.66257413e-02 1.67242043e-02 1.68229538e-02 1.69219896e-02 + 1.70213116e-02 1.71209197e-02 1.72208138e-02 1.73209939e-02 1.74214598e-02 + 1.75222114e-02 1.76232487e-02 1.77245715e-02 1.78261798e-02 1.79280734e-02 + 1.80302523e-02 1.81327163e-02 1.82354654e-02 1.83384994e-02 1.84418184e-02 + 1.85454220e-02 1.86493104e-02 1.87534833e-02 1.88579407e-02 1.89626824e-02 + 1.90677084e-02 1.91730186e-02 1.92786129e-02 1.93844911e-02 1.94906532e-02 + 1.95970991e-02 1.97038286e-02 1.98108417e-02 1.99181382e-02 2.00257182e-02 + 2.01335813e-02 2.02417277e-02 2.03501571e-02 2.04588694e-02 2.05678646e-02 + 2.06771425e-02 2.07867031e-02 2.08965462e-02 2.10066717e-02 2.11170796e-02 + 2.12277697e-02 2.13387419e-02 2.14499962e-02 2.15615323e-02 2.16733503e-02 + 2.17854499e-02 2.18978311e-02 2.20104938e-02 2.21234379e-02 2.22366633e-02 + 2.23501698e-02 2.24639574e-02 2.25780260e-02 2.26923753e-02 2.28070055e-02 + 2.29219162e-02 2.30371074e-02 2.31525791e-02 2.32683311e-02 2.33843632e-02 + 2.35006755e-02 2.36172677e-02 2.37341397e-02 2.38512915e-02 2.39687230e-02 + 2.40864339e-02 2.42044243e-02 2.43226940e-02 2.44412429e-02 2.45600709e-02 + 2.46791779e-02 2.47985637e-02 2.49182282e-02 2.50381714e-02 2.51583931e-02 + 2.52788932e-02 2.53996717e-02 2.55207283e-02 2.56420629e-02 2.57636755e-02 + 2.58855660e-02 2.60077341e-02 2.61301799e-02 2.62529032e-02 2.63759039e-02 + 2.64991818e-02 2.66227368e-02 2.67465689e-02 2.68706779e-02 2.69950637e-02 + 2.71197262e-02 2.72446653e-02 2.73698808e-02 2.74953726e-02 2.76211406e-02 + 2.77471848e-02 2.78735049e-02 2.80001009e-02 2.81269726e-02 2.82541199e-02 + 2.83815427e-02 2.85092409e-02 2.86372144e-02 2.87654630e-02 2.88939867e-02 + 2.90227852e-02 2.91518585e-02 2.92812065e-02 2.94108290e-02 2.95407260e-02 + 2.96708972e-02 2.98013426e-02 2.99320621e-02 3.00630555e-02 3.01943227e-02 + 3.03258636e-02 3.04576781e-02 3.05897660e-02 3.07221272e-02 3.08547616e-02 + 3.09876691e-02 3.11208496e-02 3.12543028e-02 3.13880288e-02 3.15220273e-02 + 3.16562983e-02 3.17908416e-02 3.19256571e-02 3.20607447e-02 3.21961042e-02 + 3.23317356e-02 3.24676386e-02 3.26038132e-02 3.27402593e-02 3.28769766e-02 + 3.30139652e-02 3.31512248e-02 3.32887554e-02 3.34265567e-02 3.35646288e-02 + 3.37029714e-02 3.38415844e-02 3.39804677e-02 3.41196212e-02 3.42590447e-02 + 3.43987381e-02 3.45387013e-02 3.46789341e-02 3.48194365e-02 3.49602082e-02 + 3.51012492e-02 3.52425593e-02 3.53841384e-02 3.55259864e-02 3.56681031e-02 + 3.58104884e-02 3.59531422e-02 3.60960643e-02 3.62392547e-02 3.63827131e-02 + 3.65264394e-02 3.66704335e-02 3.68146954e-02 3.69592247e-02 3.71040215e-02 + 3.72490856e-02 3.73944167e-02 3.75400149e-02 3.76858800e-02 3.78320118e-02 + 3.79784102e-02 3.81250751e-02 3.82720063e-02 3.84192037e-02 3.85666672e-02 + 3.87143966e-02 3.88623918e-02 3.90106526e-02 3.91591790e-02 3.93079707e-02 + 3.94570277e-02 3.96063498e-02 3.97559369e-02 3.99057888e-02 4.00559054e-02 + 4.02062865e-02 4.03569321e-02 4.05078419e-02 4.06590159e-02 4.08104539e-02 + 4.09621558e-02 4.11141214e-02 4.12663506e-02 4.14188432e-02 4.15715991e-02 + 4.17246182e-02 4.18779004e-02 4.20314454e-02 4.21852532e-02 4.23393235e-02 + 4.24936564e-02 4.26482515e-02 4.28031089e-02 4.29582283e-02 4.31136096e-02 + 4.32692526e-02 4.34251573e-02 4.35813234e-02 4.37377508e-02 4.38944395e-02 + 4.40513892e-02 4.42085998e-02 4.43660711e-02 4.45238031e-02 4.46817956e-02 + 4.48400483e-02 4.49985613e-02 4.51573343e-02 4.53163671e-02 4.54756598e-02 + 4.56352120e-02 4.57950237e-02 4.59550947e-02 4.61154249e-02 4.62760141e-02 + 4.64368622e-02 4.65979690e-02 4.67593344e-02 4.69209582e-02 4.70828403e-02 + 4.72449806e-02 4.74073789e-02 4.75700350e-02 4.77329488e-02 4.78961202e-02 + 4.80595489e-02 4.82232350e-02 4.83871781e-02 4.85513782e-02 4.87158351e-02 + 4.88805487e-02 4.90455188e-02 4.92107453e-02 4.93762280e-02 4.95419667e-02 + 4.97079614e-02 4.98742118e-02 5.00407179e-02 5.02074794e-02 5.03744963e-02 + 5.05417683e-02 5.07092953e-02 5.08770772e-02 5.10451138e-02 5.12134049e-02 + 5.13819505e-02 5.15507503e-02 5.17198043e-02 5.18891121e-02 5.20586738e-02 + 5.22284892e-02 5.23985580e-02 5.25688802e-02 5.27394555e-02 5.29102839e-02 + 5.30813652e-02 5.32526992e-02 5.34242858e-02 5.35961248e-02 5.37682161e-02 + 5.39405595e-02 5.41131548e-02 5.42860020e-02 5.44591008e-02 5.46324511e-02 + 5.48060527e-02 5.49799055e-02 5.51540094e-02 5.53283641e-02 5.55029695e-02 + 5.56778255e-02 5.58529319e-02 5.60282885e-02 5.62038952e-02 5.63797519e-02 + 5.65558583e-02 5.67322144e-02 5.69088199e-02 5.70856747e-02 5.72627786e-02 + 5.74401316e-02 5.76177334e-02 5.77955838e-02 5.79736828e-02 5.81520301e-02 + 5.83306256e-02 5.85094691e-02 5.86885605e-02 5.88678997e-02 5.90474864e-02 + 5.92273205e-02 5.94074018e-02 5.95877302e-02 5.97683055e-02 5.99491276e-02 + 6.01301963e-02 6.03115114e-02 6.04930728e-02 6.06748803e-02 6.08569338e-02 + 6.10392330e-02 6.12217779e-02 6.14045683e-02 6.15876039e-02 6.17708848e-02 + 6.19544105e-02 6.21381812e-02 6.23221964e-02 6.25064562e-02 6.26909603e-02 + 6.28757085e-02 6.30607008e-02 6.32459369e-02 6.34314167e-02 6.36171400e-02 + 6.38031067e-02 6.39893165e-02 6.41757694e-02 6.43624651e-02 6.45494036e-02 + 6.47365845e-02 6.49240078e-02 6.51116734e-02 6.52995809e-02 6.54877303e-02 + 6.56761215e-02 6.58647541e-02 6.60536282e-02 6.62427434e-02 6.64320997e-02 + 6.66216969e-02 6.68115348e-02 6.70016132e-02 6.71919320e-02 6.73824910e-02 + 6.75732900e-02 6.77643289e-02 6.79556075e-02 6.81471257e-02 6.83388832e-02 + 6.85308799e-02 6.87231157e-02 6.89155904e-02 6.91083037e-02 6.93012556e-02 + 6.94944458e-02 6.96878742e-02 6.98815407e-02 7.00754450e-02 7.02695870e-02 + 7.04639665e-02 7.06585833e-02 7.08534374e-02 7.10485284e-02 7.12438563e-02 + 7.14394208e-02 7.16352219e-02 7.18312593e-02 7.20275328e-02 7.22240423e-02 + 7.24207876e-02 7.26177686e-02 7.28149851e-02 7.30124368e-02 7.32101237e-02 + 7.34080456e-02 7.36062022e-02 7.38045935e-02 7.40032192e-02 7.42020791e-02 + 7.44011732e-02 7.46005012e-02 7.48000630e-02 7.49998583e-02 7.51998870e-02 + 7.54001490e-02 7.56006441e-02 7.58013720e-02 7.60023326e-02 7.62035258e-02 + 7.64049514e-02 7.66066092e-02 7.68084989e-02 7.70106206e-02 7.72129739e-02 + 7.74155587e-02 7.76183748e-02 7.78214221e-02 7.80247003e-02 7.82282094e-02 + 7.84319490e-02 7.86359192e-02 7.88401196e-02 7.90445501e-02 7.92492105e-02 + 7.94541007e-02 7.96592204e-02 7.98645695e-02 8.00701479e-02 8.02759553e-02 + 8.04819916e-02 8.06882565e-02 8.08947500e-02 8.11014718e-02 8.13084218e-02 + 8.15155998e-02 8.17230055e-02 8.19306389e-02 8.21384998e-02 8.23465879e-02 + 8.25549031e-02 8.27634452e-02 8.29722141e-02 8.31812095e-02 8.33904313e-02 + 8.35998794e-02 8.38095534e-02 8.40194533e-02 8.42295789e-02 8.44399299e-02 + 8.46505063e-02 8.48613078e-02 8.50723343e-02 8.52835855e-02 8.54950613e-02 + 8.57067616e-02 8.59186860e-02 8.61308346e-02 8.63432070e-02 8.65558031e-02 + 8.67686227e-02 8.69816656e-02 8.71949318e-02 8.74084208e-02 8.76221327e-02 + 8.78360672e-02 8.80502241e-02 8.82646033e-02 8.84792045e-02 8.86940276e-02 + 8.89090725e-02 8.91243388e-02 8.93398265e-02 8.95555354e-02 8.97714652e-02 + 8.99876159e-02 9.02039871e-02 9.04205788e-02 9.06373908e-02 9.08544228e-02 + 9.10716747e-02 9.12891463e-02 9.15068374e-02 9.17247478e-02 9.19428774e-02 + 9.21612260e-02 9.23797934e-02 9.25985793e-02 9.28175837e-02 9.30368064e-02 + 9.32562470e-02 9.34759056e-02 9.36957818e-02 9.39158756e-02 9.41361866e-02 + 9.43567148e-02 9.45774599e-02 9.47984219e-02 9.50196003e-02 9.52409952e-02 + 9.54626063e-02 9.56844334e-02 9.59064764e-02 9.61287350e-02 9.63512090e-02 + 9.65738984e-02 9.67968029e-02 9.70199222e-02 9.72432563e-02 9.74668050e-02 + 9.76905680e-02 9.79145452e-02 9.81387363e-02 9.83631413e-02 9.85877598e-02 + 9.88125918e-02 9.90376370e-02 9.92628953e-02 9.94883665e-02 9.97140503e-02 + 9.99399466e-02 1.00166055e-01 1.00392376e-01 1.00618909e-01 1.00845653e-01 + 1.01072609e-01 1.01299776e-01 1.01527155e-01 1.01754744e-01 1.01982545e-01 + 1.02210556e-01 1.02438777e-01 1.02667209e-01 1.02895850e-01 1.03124702e-01 + 1.03353763e-01 1.03583034e-01 1.03812514e-01 1.04042203e-01 1.04272101e-01 + 1.04502207e-01 1.04732523e-01 1.04963046e-01 1.05193778e-01 1.05424718e-01 + 1.05655865e-01 1.05887221e-01 1.06118783e-01 1.06350553e-01 1.06582530e-01 + 1.06814713e-01 1.07047104e-01 1.07279701e-01 1.07512504e-01 1.07745513e-01 + 1.07978728e-01 1.08212148e-01 1.08445775e-01 1.08679606e-01 1.08913643e-01 + 1.09147884e-01 1.09382331e-01 1.09616982e-01 1.09851837e-01 1.10086896e-01 + 1.10322160e-01 1.10557627e-01 1.10793298e-01 1.11029172e-01 1.11265249e-01 + 1.11501530e-01 1.11738013e-01 1.11974699e-01 1.12211587e-01 1.12448678e-01 + 1.12685971e-01 1.12923465e-01 1.13161162e-01 1.13399059e-01 1.13637158e-01 + 1.13875458e-01 1.14113960e-01 1.14352661e-01 1.14591564e-01 1.14830666e-01 + 1.15069969e-01 1.15309472e-01 1.15549174e-01 1.15789076e-01 1.16029178e-01 + 1.16269478e-01 1.16509978e-01 1.16750676e-01 1.16991573e-01 1.17232669e-01 + 1.17473962e-01 1.17715454e-01 1.17957143e-01 1.18199030e-01 1.18441115e-01 + 1.18683397e-01 1.18925875e-01 1.19168551e-01 1.19411423e-01 1.19654492e-01 + 1.19897757e-01 1.20141218e-01 1.20384875e-01 1.20628728e-01 1.20872776e-01 + 1.21117020e-01 1.21361458e-01 1.21606092e-01 1.21850920e-01 1.22095943e-01 + 1.22341160e-01 1.22586571e-01 1.22832176e-01 1.23077975e-01 1.23323967e-01 + 1.23570153e-01 1.23816532e-01 1.24063104e-01 1.24309869e-01 1.24556826e-01 + 1.24803975e-01 1.25051317e-01 1.25298851e-01 1.25546576e-01 1.25794494e-01 + 1.26042602e-01 1.26290902e-01 1.26539393e-01 1.26788074e-01 1.27036946e-01 + 1.27286009e-01 1.27535261e-01 1.27784704e-01 1.28034337e-01 1.28284159e-01 + 1.28534171e-01 1.28784372e-01 1.29034762e-01 1.29285340e-01 1.29536108e-01 + 1.29787064e-01 1.30038208e-01 1.30289540e-01 1.30541060e-01 1.30792768e-01 + 1.31044663e-01 1.31296746e-01 1.31549015e-01 1.31801471e-01 1.32054115e-01 + 1.32306944e-01 1.32559960e-01 1.32813162e-01 1.33066550e-01 1.33320123e-01 + 1.33573882e-01 1.33827826e-01 1.34081956e-01 1.34336270e-01 1.34590769e-01 + 1.34845452e-01 1.35100320e-01 1.35355372e-01 1.35610608e-01 1.35866027e-01 + 1.36121630e-01 1.36377417e-01 1.36633386e-01 1.36889538e-01 1.37145873e-01 + 1.37402391e-01 1.37659091e-01 1.37915973e-01 1.38173037e-01 1.38430283e-01 + 1.38687710e-01 1.38945318e-01 1.39203108e-01 1.39461079e-01 1.39719230e-01 + 1.39977562e-01 1.40236074e-01 1.40494766e-01 1.40753639e-01 1.41012691e-01 + 1.41271922e-01 1.41531333e-01 1.41790923e-01 1.42050692e-01 1.42310640e-01 + 1.42570766e-01 1.42831071e-01 1.43091554e-01 1.43352214e-01 1.43613053e-01 + 1.43874069e-01 1.44135262e-01 1.44396633e-01 1.44658180e-01 1.44919904e-01 + 1.45181805e-01 1.45443882e-01 1.45706135e-01 1.45968565e-01 1.46231170e-01 + 1.46493950e-01 1.46756906e-01 1.47020037e-01 1.47283343e-01 1.47546824e-01 + 1.47810479e-01 1.48074308e-01 1.48338312e-01 1.48602490e-01 1.48866841e-01 + 1.49131366e-01 1.49396065e-01 1.49660936e-01 1.49925981e-01 1.50191198e-01 + 1.50456588e-01 1.50722150e-01 1.50987884e-01 1.51253790e-01 1.51519868e-01 + 1.51786118e-01 1.52052539e-01 1.52319131e-01 1.52585894e-01 1.52852827e-01 + 1.53119932e-01 1.53387206e-01 1.53654651e-01 1.53922266e-01 1.54190050e-01 + 1.54458004e-01 1.54726127e-01 1.54994420e-01 1.55262881e-01 1.55531511e-01 + 1.55800310e-01 1.56069277e-01 1.56338412e-01 1.56607715e-01 1.56877186e-01 + 1.57146824e-01 1.57416630e-01 1.57686603e-01 1.57956743e-01 1.58227049e-01 + 1.58497522e-01 1.58768161e-01 1.59038967e-01 1.59309938e-01 1.59581075e-01 + 1.59852378e-01 1.60123846e-01 1.60395479e-01 1.60667277e-01 1.60939240e-01 + 1.61211367e-01 1.61483659e-01 1.61756114e-01 1.62028734e-01 1.62301517e-01 + 1.62574464e-01 1.62847574e-01 1.63120847e-01 1.63394283e-01 1.63667882e-01 + 1.63941644e-01 1.64215567e-01 1.64489653e-01 1.64763901e-01 1.65038310e-01 + 1.65312881e-01 1.65587613e-01 1.65862506e-01 1.66137560e-01 1.66412775e-01 + 1.66688150e-01 1.66963686e-01 1.67239381e-01 1.67515237e-01 1.67791252e-01 + 1.68067427e-01 1.68343761e-01 1.68620254e-01 1.68896906e-01 1.69173717e-01 + 1.69450686e-01 1.69727813e-01 1.70005098e-01 1.70282542e-01 1.70560143e-01 + 1.70837901e-01 1.71115817e-01 1.71393889e-01 1.71672119e-01 1.71950505e-01 + 1.72229048e-01 1.72507747e-01 1.72786602e-01 1.73065613e-01 1.73344779e-01 + 1.73624101e-01 1.73903579e-01 1.74183211e-01 1.74462998e-01 1.74742940e-01 + 1.75023036e-01 1.75303286e-01 1.75583691e-01 1.75864249e-01 1.76144961e-01 + 1.76425826e-01 1.76706845e-01 1.76988017e-01 1.77269341e-01 1.77550818e-01 + 1.77832448e-01 1.78114229e-01 1.78396163e-01 1.78678248e-01 1.78960486e-01 + 1.79242874e-01 1.79525414e-01 1.79808105e-01 1.80090946e-01 1.80373938e-01 + 1.80657081e-01 1.80940374e-01 1.81223816e-01 1.81507409e-01 1.81791151e-01 + 1.82075043e-01 1.82359084e-01 1.82643273e-01 1.82927612e-01 1.83212099e-01 + 1.83496734e-01 1.83781518e-01 1.84066450e-01 1.84351529e-01 1.84636756e-01 + 1.84922131e-01 1.85207652e-01 1.85493321e-01 1.85779136e-01 1.86065098e-01 + 1.86351206e-01 1.86637461e-01 1.86923861e-01 1.87210407e-01 1.87497099e-01 + 1.87783936e-01 1.88070919e-01 1.88358046e-01 1.88645318e-01 1.88932734e-01 + 1.89220295e-01 1.89508000e-01 1.89795849e-01 1.90083842e-01 1.90371978e-01 + 1.90660258e-01 1.90948681e-01 1.91237246e-01 1.91525955e-01 1.91814806e-01 + 1.92103799e-01 1.92392935e-01 1.92682212e-01 1.92971631e-01 1.93261192e-01 + 1.93550894e-01 1.93840737e-01 1.94130721e-01 1.94420846e-01 1.94711111e-01 + 1.95001517e-01 1.95292063e-01 1.95582748e-01 1.95873574e-01 1.96164539e-01 + 1.96455643e-01 1.96746886e-01 1.97038269e-01 1.97329790e-01 1.97621449e-01 + 1.97913247e-01 1.98205183e-01 1.98497257e-01 1.98789469e-01 1.99081818e-01 + 1.99374304e-01 1.99666928e-01 1.99959688e-01 2.00252585e-01 2.00545619e-01 + 2.00838789e-01 2.01132095e-01 2.01425537e-01 2.01719114e-01 2.02012828e-01 + 2.02306676e-01 2.02600660e-01 2.02894778e-01 2.03189031e-01 2.03483419e-01 + 2.03777941e-01 2.04072597e-01 2.04367387e-01 2.04662311e-01 2.04957368e-01 + 2.05252558e-01 2.05547882e-01 2.05843338e-01 2.06138928e-01 2.06434649e-01 + 2.06730503e-01 2.07026489e-01 2.07322607e-01 2.07618857e-01 2.07915238e-01 + 2.08211750e-01 2.08508394e-01 2.08805168e-01 2.09102073e-01 2.09399109e-01 + 2.09696275e-01 2.09993571e-01 2.10290997e-01 2.10588552e-01 2.10886237e-01 + 2.11184052e-01 2.11481995e-01 2.11780068e-01 2.12078269e-01 2.12376598e-01 + 2.12675056e-01 2.12973642e-01 2.13272356e-01 2.13571197e-01 2.13870166e-01 + 2.14169263e-01 2.14468486e-01 2.14767837e-01 2.15067314e-01 2.15366917e-01 + 2.15666647e-01 2.15966503e-01 2.16266485e-01 2.16566592e-01 2.16866825e-01 + 2.17167184e-01 2.17467667e-01 2.17768276e-01 2.18069009e-01 2.18369866e-01 + 2.18670848e-01 2.18971954e-01 2.19273184e-01 2.19574538e-01 2.19876015e-01 + 2.20177615e-01 2.20479339e-01 2.20781185e-01 2.21083155e-01 2.21385246e-01 + 2.21687460e-01 2.21989797e-01 2.22292255e-01 2.22594835e-01 2.22897536e-01 + 2.23200359e-01 2.23503303e-01 2.23806367e-01 2.24109553e-01 2.24412859e-01 + 2.24716285e-01 2.25019832e-01 2.25323498e-01 2.25627285e-01 2.25931191e-01 + 2.26235216e-01 2.26539360e-01 2.26843623e-01 2.27148005e-01 2.27452506e-01 + 2.27757125e-01 2.28061862e-01 2.28366717e-01 2.28671690e-01 2.28976780e-01 + 2.29281988e-01 2.29587313e-01 2.29892755e-01 2.30198313e-01 2.30503989e-01 + 2.30809780e-01 2.31115688e-01 2.31421712e-01 2.31727852e-01 2.32034107e-01 + 2.32340478e-01 2.32646964e-01 2.32953565e-01 2.33260280e-01 2.33567111e-01 + 2.33874055e-01 2.34181114e-01 2.34488287e-01 2.34795574e-01 2.35102975e-01 + 2.35410489e-01 2.35718116e-01 2.36025856e-01 2.36333709e-01 2.36641675e-01 + 2.36949753e-01 2.37257943e-01 2.37566246e-01 2.37874660e-01 2.38183186e-01 + 2.38491824e-01 2.38800572e-01 2.39109432e-01 2.39418403e-01 2.39727484e-01 + 2.40036676e-01 2.40345978e-01 2.40655391e-01 2.40964913e-01 2.41274545e-01 + 2.41584286e-01 2.41894137e-01 2.42204097e-01 2.42514166e-01 2.42824344e-01 + 2.43134630e-01 2.43445024e-01 2.43755527e-01 2.44066138e-01 2.44376856e-01 + 2.44687682e-01 2.44998615e-01 2.45309656e-01 2.45620803e-01 2.45932058e-01 + 2.46243419e-01 2.46554886e-01 2.46866459e-01 2.47178139e-01 2.47489924e-01 + 2.47801815e-01 2.48113812e-01 2.48425913e-01 2.48738120e-01 2.49050431e-01 + 2.49362848e-01 2.49675368e-01 2.49987993e-01 2.50300722e-01 2.50613555e-01 + 2.50926492e-01 2.51239532e-01 2.51552675e-01 2.51865922e-01 2.52179271e-01 + 2.52492723e-01 2.52806278e-01 2.53119935e-01 2.53433694e-01 2.53747555e-01 + 2.54061518e-01 2.54375582e-01 2.54689748e-01 2.55004015e-01 2.55318383e-01 + 2.55632851e-01 2.55947421e-01 2.56262090e-01 2.56576860e-01 2.56891730e-01 + 2.57206700e-01 2.57521770e-01 2.57836938e-01 2.58152207e-01 2.58467574e-01 + 2.58783040e-01 2.59098605e-01 2.59414268e-01 2.59730029e-01 2.60045889e-01 + 2.60361847e-01 2.60677902e-01 2.60994055e-01 2.61310305e-01 2.61626652e-01 + 2.61943096e-01 2.62259637e-01 2.62576275e-01 2.62893009e-01 2.63209839e-01 + 2.63526765e-01 2.63843787e-01 2.64160905e-01 2.64478118e-01 2.64795426e-01 + 2.65112830e-01 2.65430328e-01 2.65747921e-01 2.66065608e-01 2.66383390e-01 + 2.66701265e-01 2.67019235e-01 2.67337298e-01 2.67655455e-01 2.67973706e-01 + 2.68292049e-01 2.68610485e-01 2.68929014e-01 2.69247636e-01 2.69566350e-01 + 2.69885156e-01 2.70204055e-01 2.70523045e-01 2.70842127e-01 2.71161300e-01 + 2.71480564e-01 2.71799920e-01 2.72119366e-01 2.72438903e-01 2.72758531e-01 + 2.73078249e-01 2.73398057e-01 2.73717955e-01 2.74037942e-01 2.74358019e-01 + 2.74678186e-01 2.74998442e-01 2.75318787e-01 2.75639220e-01 2.75959743e-01 + 2.76280353e-01 2.76601052e-01 2.76921839e-01 2.77242714e-01 2.77563676e-01 + 2.77884726e-01 2.78205864e-01 2.78527088e-01 2.78848399e-01 2.79169798e-01 + 2.79491282e-01 2.79812853e-01 2.80134510e-01 2.80456254e-01 2.80778083e-01 + 2.81099997e-01 2.81421997e-01 2.81744083e-01 2.82066253e-01 2.82388508e-01 + 2.82710848e-01 2.83033273e-01 2.83355782e-01 2.83678374e-01 2.84001051e-01 + 2.84323812e-01 2.84646656e-01 2.84969584e-01 2.85292594e-01 2.85615688e-01 + 2.85938865e-01 2.86262124e-01 2.86585466e-01 2.86908890e-01 2.87232396e-01 + 2.87555984e-01 2.87879654e-01 2.88203405e-01 2.88527238e-01 2.88851152e-01 + 2.89175147e-01 2.89499222e-01 2.89823378e-01 2.90147615e-01 2.90471932e-01 + 2.90796329e-01 2.91120806e-01 2.91445362e-01 2.91769999e-01 2.92094714e-01 + 2.92419508e-01 2.92744382e-01 2.93069334e-01 2.93394365e-01 2.93719474e-01 + 2.94044662e-01 2.94369927e-01 2.94695271e-01 2.95020692e-01 2.95346191e-01 + 2.95671767e-01 2.95997420e-01 2.96323150e-01 2.96648956e-01 2.96974840e-01 + 2.97300799e-01 2.97626835e-01 2.97952947e-01 2.98279135e-01 2.98605399e-01 + 2.98931738e-01 2.99258152e-01 2.99584642e-01 2.99911206e-01 3.00237845e-01 + 3.00564559e-01 3.00891347e-01 3.01218209e-01 3.01545146e-01 3.01872156e-01 + 3.02199240e-01 3.02526398e-01 3.02853628e-01 3.03180932e-01 3.03508309e-01 + 3.03835759e-01 3.04163281e-01 3.04490876e-01 3.04818543e-01 3.05146281e-01 + 3.05474092e-01 3.05801975e-01 3.06129929e-01 3.06457954e-01 3.06786051e-01 + 3.07114218e-01 3.07442456e-01 3.07770765e-01 3.08099145e-01 3.08427594e-01 + 3.08756114e-01 3.09084703e-01 3.09413363e-01 3.09742091e-01 3.10070890e-01 + 3.10399757e-01 3.10728693e-01 3.11057699e-01 3.11386772e-01 3.11715915e-01 + 3.12045125e-01 3.12374404e-01 3.12703751e-01 3.13033165e-01 3.13362647e-01 + 3.13692197e-01 3.14021813e-01 3.14351497e-01 3.14681248e-01 3.15011065e-01 + 3.15340949e-01 3.15670899e-01 3.16000915e-01 3.16330997e-01 3.16661145e-01 + 3.16991359e-01 3.17321638e-01 3.17651983e-01 3.17982392e-01 3.18312867e-01 + 3.18643406e-01 3.18974010e-01 3.19304678e-01 3.19635411e-01 3.19966207e-01 + 3.20297067e-01 3.20627992e-01 3.20958979e-01 3.21290030e-01 3.21621144e-01 + 3.21952321e-01 3.22283561e-01 3.22614864e-01 3.22946229e-01 3.23277656e-01 + 3.23609146e-01 3.23940697e-01 3.24272310e-01 3.24603985e-01 3.24935721e-01 + 3.25267519e-01 3.25599377e-01 3.25931297e-01 3.26263277e-01 3.26595317e-01 + 3.26927419e-01 3.27259580e-01 3.27591801e-01 3.27924082e-01 3.28256423e-01 + 3.28588824e-01 3.28921283e-01 3.29253802e-01 3.29586380e-01 3.29919017e-01 + 3.30251712e-01 3.30584466e-01 3.30917278e-01 3.31250149e-01 3.31583077e-01 + 3.31916063e-01 3.32249107e-01 3.32582208e-01 3.32915366e-01 3.33248582e-01 + 3.33581854e-01 3.33915183e-01 3.34248569e-01 3.34582011e-01 3.34915510e-01 + 3.35249064e-01 3.35582675e-01 3.35916341e-01 3.36250062e-01 3.36583839e-01 + 3.36917672e-01 3.37251559e-01 3.37585501e-01 3.37919498e-01 3.38253550e-01 + 3.38587656e-01 3.38921816e-01 3.39256030e-01 3.39590298e-01 3.39924620e-01 + 3.40258995e-01 3.40593423e-01 3.40927905e-01 3.41262440e-01 3.41597027e-01 + 3.41931667e-01 3.42266360e-01 3.42601105e-01 3.42935903e-01 3.43270752e-01 + 3.43605653e-01 3.43940606e-01 3.44275610e-01 3.44610666e-01 3.44945772e-01 + 3.45280930e-01 3.45616139e-01 3.45951398e-01 3.46286708e-01 3.46622068e-01 + 3.46957478e-01 3.47292938e-01 3.47628448e-01 3.47964008e-01 3.48299617e-01 + 3.48635275e-01 3.48970983e-01 3.49306740e-01 3.49642545e-01 3.49978399e-01 + 3.50314302e-01 3.50650253e-01 3.50986252e-01 3.51322299e-01 3.51658394e-01 + 3.51994536e-01 3.52330726e-01 3.52666964e-01 3.53003248e-01 3.53339580e-01 + 3.53675958e-01 3.54012383e-01 3.54348855e-01 3.54685373e-01 3.55021937e-01 + 3.55358547e-01 3.55695203e-01 3.56031904e-01 3.56368651e-01 3.56705444e-01 + 3.57042281e-01 3.57379164e-01 3.57716092e-01 3.58053064e-01 3.58390081e-01 + 3.58727142e-01 3.59064247e-01 3.59401397e-01 3.59738590e-01 3.60075827e-01 + 3.60413107e-01 3.60750431e-01 3.61087799e-01 3.61425209e-01 3.61762662e-01 + 3.62100158e-01 3.62437696e-01 3.62775277e-01 3.63112900e-01 3.63450566e-01 + 3.63788273e-01 3.64126022e-01 3.64463812e-01 3.64801645e-01 3.65139518e-01 + 3.65477432e-01 3.65815388e-01 3.66153384e-01 3.66491421e-01 3.66829498e-01 + 3.67167616e-01 3.67505774e-01 3.67843971e-01 3.68182209e-01 3.68520487e-01 + 3.68858803e-01 3.69197160e-01 3.69535555e-01 3.69873990e-01 3.70212463e-01 + 3.70550975e-01 3.70889526e-01 3.71228115e-01 3.71566742e-01 3.71905408e-01 + 3.72244111e-01 3.72582852e-01 3.72921631e-01 3.73260447e-01 3.73599300e-01 + 3.73938191e-01 3.74277119e-01 3.74616083e-01 3.74955084e-01 3.75294122e-01 + 3.75633196e-01 3.75972306e-01 3.76311452e-01 3.76650634e-01 3.76989852e-01 + 3.77329105e-01 3.77668394e-01 3.78007718e-01 3.78347077e-01 3.78686471e-01 + 3.79025899e-01 3.79365363e-01 3.79704861e-01 3.80044393e-01 3.80383959e-01 + 3.80723559e-01 3.81063194e-01 3.81402861e-01 3.81742563e-01 3.82082298e-01 + 3.82422065e-01 3.82761866e-01 3.83101700e-01 3.83441567e-01 3.83781466e-01 + 3.84121398e-01 3.84461362e-01 3.84801358e-01 3.85141386e-01 3.85481446e-01 + 3.85821538e-01 3.86161661e-01 3.86501816e-01 3.86842001e-01 3.87182218e-01 + 3.87522466e-01 3.87862744e-01 3.88203053e-01 3.88543393e-01 3.88883763e-01 + 3.89224162e-01 3.89564592e-01 3.89905052e-01 3.90245541e-01 3.90586060e-01 + 3.90926609e-01 3.91267186e-01 3.91607793e-01 3.91948428e-01 3.92289093e-01 + 3.92629785e-01 3.92970507e-01 3.93311256e-01 3.93652034e-01 3.93992840e-01 + 3.94333674e-01 3.94674535e-01 3.95015424e-01 3.95356341e-01 3.95697284e-01 + 3.96038255e-01 3.96379253e-01 3.96720277e-01 3.97061328e-01 3.97402406e-01 + 3.97743510e-01 3.98084640e-01 3.98425796e-01 3.98766978e-01 3.99108186e-01 + 3.99449420e-01 3.99790679e-01 4.00131963e-01 4.00473272e-01 4.00814607e-01 + 4.01155966e-01 4.01497350e-01 4.01838759e-01 4.02180192e-01 4.02521649e-01 + 4.02863130e-01 4.03204636e-01 4.03546165e-01 4.03887718e-01 4.04229294e-01 + 4.04570894e-01 4.04912517e-01 4.05254163e-01 4.05595832e-01 4.05937524e-01 + 4.06279238e-01 4.06620975e-01 4.06962734e-01 4.07304516e-01 4.07646319e-01 + 4.07988145e-01 4.08329992e-01 4.08671861e-01 4.09013751e-01 4.09355663e-01 + 4.09697596e-01 4.10039549e-01 4.10381524e-01 4.10723520e-01 4.11065536e-01 + 4.11407572e-01 4.11749629e-01 4.12091706e-01 4.12433803e-01 4.12775920e-01 + 4.13118057e-01 4.13460213e-01 4.13802389e-01 4.14144583e-01 4.14486798e-01 + 4.14829031e-01 4.15171283e-01 4.15513553e-01 4.15855843e-01 4.16198150e-01 + 4.16540476e-01 4.16882821e-01 4.17225183e-01 4.17567563e-01 4.17909961e-01 + 4.18252376e-01 4.18594809e-01 4.18937259e-01 4.19279726e-01 4.19622210e-01 + 4.19964711e-01 4.20307229e-01 4.20649763e-01 4.20992314e-01 4.21334881e-01 + 4.21677465e-01 4.22020064e-01 4.22362679e-01 4.22705310e-01 4.23047957e-01 + 4.23390619e-01 4.23733296e-01 4.24075988e-01 4.24418696e-01 4.24761418e-01 + 4.25104155e-01 4.25446907e-01 4.25789673e-01 4.26132454e-01 4.26475249e-01 + 4.26818057e-01 4.27160880e-01 4.27503717e-01 4.27846567e-01 4.28189430e-01 + 4.28532307e-01 4.28875197e-01 4.29218101e-01 4.29561017e-01 4.29903946e-01 + 4.30246888e-01 4.30589842e-01 4.30932808e-01 4.31275787e-01 4.31618778e-01 + 4.31961781e-01 4.32304796e-01 4.32647822e-01 4.32990860e-01 4.33333909e-01 + 4.33676970e-01 4.34020042e-01 4.34363125e-01 4.34706219e-01 4.35049323e-01 + 4.35392438e-01 4.35735564e-01 4.36078700e-01 4.36421846e-01 4.36765002e-01 + 4.37108168e-01 4.37451344e-01 4.37794529e-01 4.38137724e-01 4.38480929e-01 + 4.38824142e-01 4.39167365e-01 4.39510597e-01 4.39853837e-01 4.40197087e-01 + 4.40540345e-01 4.40883611e-01 4.41226885e-01 4.41570168e-01 4.41913459e-01 + 4.42256758e-01 4.42600064e-01 4.42943378e-01 4.43286700e-01 4.43630029e-01 + 4.43973365e-01 4.44316708e-01 4.44660058e-01 4.45003416e-01 4.45346779e-01 + 4.45690150e-01 4.46033526e-01 4.46376910e-01 4.46720299e-01 4.47063694e-01 + 4.47407095e-01 4.47750502e-01 4.48093915e-01 4.48437333e-01 4.48780757e-01 + 4.49124185e-01 4.49467619e-01 4.49811058e-01 4.50154502e-01 4.50497950e-01 + 4.50841403e-01 4.51184861e-01 4.51528322e-01 4.51871788e-01 4.52215259e-01 + 4.52558733e-01 4.52902210e-01 4.53245692e-01 4.53589177e-01 4.53932665e-01 + 4.54276157e-01 4.54619652e-01 4.54963150e-01 4.55306651e-01 4.55650154e-01 + 1.03953624e+00 1.03772749e+00 1.03592023e+00 1.03411445e+00 1.03231016e+00 + 1.03050735e+00 1.02870603e+00 1.02690620e+00 1.02510785e+00 1.02331100e+00 + 1.02151562e+00 1.01972174e+00 1.01792935e+00 1.01613844e+00 1.01434902e+00 + 1.01256110e+00 1.01077466e+00 1.00898971e+00 1.00720626e+00 1.00542429e+00 + 1.00364382e+00 1.00186484e+00 1.00008735e+00 9.98311355e-01 9.96536852e-01 + 9.94763842e-01 9.92992326e-01 9.91222304e-01 9.89453777e-01 9.87686744e-01 + 9.85921207e-01 9.84157165e-01 9.82394619e-01 9.80633570e-01 9.78874017e-01 + 9.77115962e-01 9.75359404e-01 9.73604344e-01 9.71850782e-01 9.70098719e-01 + 9.68348155e-01 9.66599090e-01 9.64851525e-01 9.63105460e-01 9.61360895e-01 + 9.59617832e-01 9.57876269e-01 9.56136208e-01 9.54397649e-01 9.52660593e-01 + 9.50925039e-01 9.49190988e-01 9.47458441e-01 9.45727397e-01 9.43997858e-01 + 9.42269823e-01 9.40543293e-01 9.38818268e-01 9.37094749e-01 9.35372736e-01 + 9.33652230e-01 9.31933230e-01 9.30215737e-01 9.28499752e-01 9.26785274e-01 + 9.25072305e-01 9.23360844e-01 9.21650893e-01 9.19942450e-01 9.18235517e-01 + 9.16530094e-01 9.14826182e-01 9.13123780e-01 9.11422890e-01 9.09723511e-01 + 9.08025644e-01 9.06329289e-01 9.04634446e-01 9.02941117e-01 9.01249300e-01 + 8.99558998e-01 8.97870209e-01 8.96182935e-01 8.94497176e-01 8.92812931e-01 + 8.91130202e-01 8.89448989e-01 8.87769292e-01 8.86091112e-01 8.84414448e-01 + 8.82739302e-01 8.81065673e-01 8.79393562e-01 8.77722970e-01 8.76053896e-01 + 8.74386341e-01 8.72720306e-01 8.71055790e-01 8.69392795e-01 8.67731320e-01 + 8.66071366e-01 8.64412932e-01 8.62756021e-01 8.61100631e-01 8.59446764e-01 + 8.57794419e-01 8.56143597e-01 8.54494298e-01 8.52846523e-01 8.51200272e-01 + 8.49555545e-01 8.47912343e-01 8.46270666e-01 8.44630515e-01 8.42991889e-01 + 8.41354789e-01 8.39719216e-01 8.38085170e-01 8.36452650e-01 8.34821658e-01 + 8.33192195e-01 8.31564259e-01 8.29937852e-01 8.28312973e-01 8.26689624e-01 + 8.25067805e-01 8.23447515e-01 8.21828756e-01 8.20211528e-01 8.18595830e-01 + 8.16981664e-01 8.15369029e-01 8.13757927e-01 8.12148357e-01 8.10540319e-01 + 8.08933815e-01 8.07328844e-01 8.05725406e-01 8.04123503e-01 8.02523135e-01 + 8.00924301e-01 7.99327002e-01 7.97731239e-01 7.96137011e-01 7.94544320e-01 + 7.92953165e-01 7.91363547e-01 7.89775466e-01 7.88188923e-01 7.86603918e-01 + 7.85020450e-01 7.83438522e-01 7.81858132e-01 7.80279281e-01 7.78701970e-01 + 7.77126199e-01 7.75551968e-01 7.73979278e-01 7.72408129e-01 7.70838521e-01 + 7.69270454e-01 7.67703930e-01 7.66138947e-01 7.64575508e-01 7.63013611e-01 + 7.61453258e-01 7.59894448e-01 7.58337182e-01 7.56781460e-01 7.55227283e-01 + 7.53674651e-01 7.52123565e-01 7.50574024e-01 7.49026029e-01 7.47479580e-01 + 7.45934678e-01 7.44391322e-01 7.42849514e-01 7.41309254e-01 7.39770542e-01 + 7.38233378e-01 7.36697762e-01 7.35163696e-01 7.33631179e-01 7.32100211e-01 + 7.30570794e-01 7.29042926e-01 7.27516610e-01 7.25991844e-01 7.24468629e-01 + 7.22946966e-01 7.21426855e-01 7.19908297e-01 7.18391291e-01 7.16875837e-01 + 7.15361937e-01 7.13849591e-01 7.12338798e-01 7.10829560e-01 7.09321876e-01 + 7.07815747e-01 7.06311174e-01 7.04808155e-01 7.03306693e-01 7.01806787e-01 + 7.00308437e-01 6.98811644e-01 6.97316408e-01 6.95822730e-01 6.94330610e-01 + 6.92840047e-01 6.91351043e-01 6.89863598e-01 6.88377712e-01 6.86893385e-01 + 6.85410618e-01 6.83929411e-01 6.82449765e-01 6.80971679e-01 6.79495154e-01 + 6.78020190e-01 6.76546789e-01 6.75074949e-01 6.73604671e-01 6.72135956e-01 + 6.70668804e-01 6.69203215e-01 6.67739189e-01 6.66276728e-01 6.64815830e-01 + 6.63356498e-01 6.61898730e-01 6.60442527e-01 6.58987889e-01 6.57534818e-01 + 6.56083312e-01 6.54633373e-01 6.53185001e-01 6.51738195e-01 6.50292957e-01 + 6.48849287e-01 6.47407184e-01 6.45966650e-01 6.44527685e-01 6.43090288e-01 + 6.41654460e-01 6.40220202e-01 6.38787514e-01 6.37356396e-01 6.35926849e-01 + 6.34498872e-01 6.33072467e-01 6.31647633e-01 6.30224370e-01 6.28802680e-01 + 6.27382561e-01 6.25964016e-01 6.24547043e-01 6.23131644e-01 6.21717818e-01 + 6.20305566e-01 6.18894889e-01 6.17485785e-01 6.16078257e-01 6.14672303e-01 + 6.13267925e-01 6.11865123e-01 6.10463897e-01 6.09064247e-01 6.07666173e-01 + 6.06269677e-01 6.04874758e-01 6.03481416e-01 6.02089652e-01 6.00699467e-01 + 5.99310859e-01 5.97923831e-01 5.96538381e-01 5.95154511e-01 5.93772221e-01 + 5.92391510e-01 5.91012380e-01 5.89634830e-01 5.88258861e-01 5.86884473e-01 + 5.85511667e-01 5.84140442e-01 5.82770800e-01 5.81402740e-01 5.80036262e-01 + 5.78671367e-01 5.77308056e-01 5.75946328e-01 5.74586184e-01 5.73227624e-01 + 5.71870649e-01 5.70515258e-01 5.69161453e-01 5.67809232e-01 5.66458597e-01 + 5.65109548e-01 5.63762086e-01 5.62416210e-01 5.61071920e-01 5.59729218e-01 + 5.58388103e-01 5.57048576e-01 5.55710636e-01 5.54374285e-01 5.53039523e-01 + 5.51706349e-01 5.50374764e-01 5.49044769e-01 5.47716364e-01 5.46389548e-01 + 5.45064323e-01 5.43740689e-01 5.42418645e-01 5.41098192e-01 5.39779331e-01 + 5.38462062e-01 5.37146385e-01 5.35832299e-01 5.34519807e-01 5.33208907e-01 + 5.31899601e-01 5.30591888e-01 5.29285769e-01 5.27981244e-01 5.26678313e-01 + 5.25376977e-01 5.24077235e-01 5.22779089e-01 5.21482538e-01 5.20187583e-01 + 5.18894224e-01 5.17602461e-01 5.16312295e-01 5.15023726e-01 5.13736754e-01 + 5.12451379e-01 5.11167602e-01 5.09885423e-01 5.08604843e-01 5.07325861e-01 + 5.06048477e-01 5.04772693e-01 5.03498508e-01 5.02225923e-01 5.00954938e-01 + 4.99685553e-01 4.98417769e-01 4.97151585e-01 4.95887003e-01 4.94624021e-01 + 4.93362642e-01 4.92102864e-01 4.90844689e-01 4.89588116e-01 4.88333145e-01 + 4.87079778e-01 4.85828014e-01 4.84577853e-01 4.83329297e-01 4.82082344e-01 + 4.80836996e-01 4.79593252e-01 4.78351114e-01 4.77110580e-01 4.75871652e-01 + 4.74634330e-01 4.73398614e-01 4.72164504e-01 4.70932001e-01 4.69701104e-01 + 4.68471815e-01 4.67244132e-01 4.66018058e-01 4.64793591e-01 4.63570733e-01 + 4.62349483e-01 4.61129842e-01 4.59911810e-01 4.58695387e-01 4.57480573e-01 + 4.56267369e-01 4.55055776e-01 4.53845792e-01 4.52637419e-01 4.51430658e-01 + 4.50225507e-01 4.49021967e-01 4.47820039e-01 4.46619724e-01 4.45421020e-01 + 4.44223928e-01 4.43028450e-01 4.41834584e-01 4.40642332e-01 4.39451693e-01 + 4.38262668e-01 4.37075256e-01 4.35889459e-01 4.34705277e-01 4.33522709e-01 + 4.32341757e-01 4.31162420e-01 4.29984698e-01 4.28808592e-01 4.27634102e-01 + 4.26461229e-01 4.25289972e-01 4.24120332e-01 4.22952310e-01 4.21785904e-01 + 4.20621116e-01 4.19457946e-01 4.18296395e-01 4.17136461e-01 4.15978147e-01 + 4.14821451e-01 4.13666374e-01 4.12512917e-01 4.11361080e-01 4.10210862e-01 + 4.09062265e-01 4.07915288e-01 4.06769932e-01 4.05626197e-01 4.04484083e-01 + 4.03343590e-01 4.02204719e-01 4.01067470e-01 3.99931844e-01 3.98797839e-01 + 3.97665458e-01 3.96534699e-01 3.95405564e-01 3.94278052e-01 3.93152164e-01 + 3.92027900e-01 3.90905259e-01 3.89784244e-01 3.88664853e-01 3.87547087e-01 + 3.86430946e-01 3.85316431e-01 3.84203541e-01 3.83092278e-01 3.81982640e-01 + 3.80874629e-01 3.79768245e-01 3.78663487e-01 3.77560357e-01 3.76458854e-01 + 3.75358979e-01 3.74260731e-01 3.73164112e-01 3.72069121e-01 3.70975759e-01 + 3.69884025e-01 3.68793921e-01 3.67705446e-01 3.66618601e-01 3.65533385e-01 + 3.64449799e-01 3.63367844e-01 3.62287520e-01 3.61208826e-01 3.60131763e-01 + 3.59056331e-01 3.57982531e-01 3.56910363e-01 3.55839826e-01 3.54770922e-01 + 3.53703650e-01 3.52638011e-01 3.51574005e-01 3.50511632e-01 3.49450892e-01 + 3.48391786e-01 3.47334314e-01 3.46278476e-01 3.45224272e-01 3.44171703e-01 + 3.43120769e-01 3.42071469e-01 3.41023805e-01 3.39977776e-01 3.38933384e-01 + 3.37890627e-01 3.36849506e-01 3.35810021e-01 3.34772174e-01 3.33735963e-01 + 3.32701389e-01 3.31668453e-01 3.30637154e-01 3.29607493e-01 3.28579470e-01 + 3.27553085e-01 3.26528339e-01 3.25505231e-01 3.24483762e-01 3.23463933e-01 + 3.22445743e-01 3.21429192e-01 3.20414282e-01 3.19401011e-01 3.18389381e-01 + 3.17379391e-01 3.16371042e-01 3.15364334e-01 3.14359267e-01 3.13355841e-01 + 3.12354057e-01 3.11353915e-01 3.10355415e-01 3.09358557e-01 3.08363342e-01 + 3.07369770e-01 3.06377840e-01 3.05387554e-01 3.04398911e-01 3.03411912e-01 + 3.02426556e-01 3.01442845e-01 3.00460777e-01 2.99480355e-01 2.98501577e-01 + 2.97524444e-01 2.96548956e-01 2.95575113e-01 2.94602916e-01 2.93632365e-01 + 2.92663460e-01 2.91696201e-01 2.90730589e-01 2.89766623e-01 2.88804304e-01 + 2.87843632e-01 2.86884607e-01 2.85927230e-01 2.84971501e-01 2.84017420e-01 + 2.83064986e-01 2.82114201e-01 2.81165065e-01 2.80217578e-01 2.79271739e-01 + 2.78327550e-01 2.77385010e-01 2.76444119e-01 2.75504879e-01 2.74567288e-01 + 2.73631348e-01 2.72697059e-01 2.71764419e-01 2.70833431e-01 2.69904094e-01 + 2.68976408e-01 2.68050374e-01 2.67125991e-01 2.66203261e-01 2.65282182e-01 + 2.64362756e-01 2.63444982e-01 2.62528861e-01 2.61614393e-01 2.60701578e-01 + 2.59790416e-01 2.58880908e-01 2.57973054e-01 2.57066853e-01 2.56162307e-01 + 2.55259415e-01 2.54358178e-01 2.53458595e-01 2.52560668e-01 2.51664395e-01 + 2.50769778e-01 2.49876816e-01 2.48985511e-01 2.48095861e-01 2.47207867e-01 + 2.46321530e-01 2.45436849e-01 2.44553825e-01 2.43672457e-01 2.42792747e-01 + 2.41914695e-01 2.41038300e-01 2.40163562e-01 2.39290483e-01 2.38419061e-01 + 2.37549298e-01 2.36681193e-01 2.35814748e-01 2.34949961e-01 2.34086833e-01 + 2.33225364e-01 2.32365555e-01 2.31507405e-01 2.30650916e-01 2.29796086e-01 + 2.28942916e-01 2.28091407e-01 2.27241559e-01 2.26393372e-01 2.25546845e-01 + 2.24701980e-01 2.23858776e-01 2.23017233e-01 2.22177352e-01 2.21339134e-01 + 2.20502577e-01 2.19667682e-01 2.18834451e-01 2.18002881e-01 2.17172975e-01 + 2.16344732e-01 2.15518152e-01 2.14693235e-01 2.13869982e-01 2.13048393e-01 + 2.12228468e-01 2.11410207e-01 2.10593610e-01 2.09778678e-01 2.08965410e-01 + 2.08153807e-01 2.07343870e-01 2.06535598e-01 2.05728991e-01 2.04924049e-01 + 2.04120774e-01 2.03319164e-01 2.02519221e-01 2.01720944e-01 2.00924334e-01 + 2.00129390e-01 1.99336113e-01 1.98544503e-01 1.97754560e-01 1.96966285e-01 + 1.96179677e-01 1.95394737e-01 1.94611465e-01 1.93829861e-01 1.93049925e-01 + 1.92271658e-01 1.91495059e-01 1.90720129e-01 1.89946869e-01 1.89175277e-01 + 1.88405354e-01 1.87637101e-01 1.86870518e-01 1.86105605e-01 1.85342361e-01 + 1.84580788e-01 1.83820885e-01 1.83062653e-01 1.82306091e-01 1.81551200e-01 + 1.80797980e-01 1.80046431e-01 1.79296554e-01 1.78548348e-01 1.77801814e-01 + 1.77056952e-01 1.76313762e-01 1.75572244e-01 1.74832398e-01 1.74094225e-01 + 1.73357725e-01 1.72622897e-01 1.71889743e-01 1.71158261e-01 1.70428453e-01 + 1.69700319e-01 1.68973858e-01 1.68249071e-01 1.67525958e-01 1.66804519e-01 + 1.66084755e-01 1.65366665e-01 1.64650249e-01 1.63935509e-01 1.63222443e-01 + 1.62511053e-01 1.61801338e-01 1.61093298e-01 1.60386934e-01 1.59682246e-01 + 1.58979233e-01 1.58277897e-01 1.57578237e-01 1.56880253e-01 1.56183946e-01 + 1.55489316e-01 1.54796362e-01 1.54105086e-01 1.53415486e-01 1.52727564e-01 + 1.52041320e-01 1.51356753e-01 1.50673864e-01 1.49992653e-01 1.49313120e-01 + 1.48635265e-01 1.47959088e-01 1.47284591e-01 1.46611771e-01 1.45940631e-01 + 1.45271170e-01 1.44603388e-01 1.43937285e-01 1.43272862e-01 1.42610118e-01 + 1.41949054e-01 1.41289670e-01 1.40631966e-01 1.39975942e-01 1.39321598e-01 + 1.38668935e-01 1.38017953e-01 1.37368652e-01 1.36721031e-01 1.36075091e-01 + 1.35430833e-01 1.34788256e-01 1.34147361e-01 1.33508147e-01 1.32870615e-01 + 1.32234765e-01 1.31600597e-01 1.30968111e-01 1.30337308e-01 1.29708187e-01 + 1.29080749e-01 1.28454994e-01 1.27830921e-01 1.27208532e-01 1.26587826e-01 + 1.25968803e-01 1.25351464e-01 1.24735808e-01 1.24121836e-01 1.23509548e-01 + 1.22898944e-01 1.22290024e-01 1.21682789e-01 1.21077238e-01 1.20473372e-01 + 1.19871190e-01 1.19270693e-01 1.18671881e-01 1.18074755e-01 1.17479313e-01 + 1.16885558e-01 1.16293487e-01 1.15703102e-01 1.15114403e-01 1.14527390e-01 + 1.13942064e-01 1.13358423e-01 1.12776468e-01 1.12196200e-01 1.11617619e-01 + 1.11040725e-01 1.10465517e-01 1.09891996e-01 1.09320162e-01 1.08750016e-01 + 1.08181557e-01 1.07614785e-01 1.07049701e-01 1.06486305e-01 1.05924597e-01 + 1.05364577e-01 1.04806244e-01 1.04249601e-01 1.03694645e-01 1.03141378e-01 + 1.02589800e-01 1.02039910e-01 1.01491709e-01 1.00945198e-01 1.00400375e-01 + 9.98572416e-02 9.93157976e-02 9.87760431e-02 9.82379782e-02 9.77016030e-02 + 9.71669178e-02 9.66339224e-02 9.61026172e-02 9.55730022e-02 9.50450776e-02 + 9.45188434e-02 9.39942997e-02 9.34714468e-02 9.29502847e-02 9.24308135e-02 + 9.19130333e-02 9.13969443e-02 9.08825466e-02 9.03698403e-02 8.98588255e-02 + 8.93495023e-02 8.88418708e-02 8.83359312e-02 8.78316836e-02 8.73291281e-02 + 8.68282647e-02 8.63290937e-02 8.58316150e-02 8.53358290e-02 8.48417355e-02 + 8.43493348e-02 8.38586270e-02 8.33696121e-02 8.28822904e-02 8.23966618e-02 + 8.19127265e-02 8.14304847e-02 8.09499364e-02 8.04710817e-02 7.99939207e-02 + 7.95184537e-02 7.90446805e-02 7.85726014e-02 7.81022165e-02 7.76335259e-02 + 7.71665296e-02 7.67012279e-02 7.62376207e-02 7.57757082e-02 7.53154905e-02 + 7.48569677e-02 7.44001400e-02 7.39450073e-02 7.34915699e-02 7.30398277e-02 + 7.25897810e-02 7.21414298e-02 7.16947743e-02 7.12498144e-02 7.08065504e-02 + 7.03649822e-02 6.99251102e-02 6.94869342e-02 6.90504544e-02 6.86156710e-02 + 6.81825840e-02 6.77511935e-02 6.73214996e-02 6.68935024e-02 6.64672020e-02 + 6.60425985e-02 6.56196920e-02 6.51984826e-02 6.47789704e-02 6.43611555e-02 + 6.39450379e-02 6.35306178e-02 6.31178953e-02 6.27068704e-02 6.22975433e-02 + 6.18899141e-02 6.14839827e-02 6.10797494e-02 6.06772142e-02 6.02763772e-02 + 5.98772385e-02 5.94797982e-02 5.90840564e-02 5.86900131e-02 5.82976685e-02 + 5.79070227e-02 5.75180757e-02 5.71308276e-02 5.67452785e-02 5.63614285e-02 + 5.59792777e-02 5.55988261e-02 5.52200739e-02 5.48430212e-02 5.44676679e-02 + 5.40940143e-02 5.37220604e-02 5.33518062e-02 5.29832520e-02 5.26163976e-02 + 5.22512433e-02 5.18877891e-02 5.15260351e-02 5.11659814e-02 5.08076280e-02 + 5.04509751e-02 5.00960227e-02 4.97427708e-02 4.93912197e-02 4.90413693e-02 + 4.86932198e-02 4.83467711e-02 4.80020235e-02 4.76589769e-02 4.73176315e-02 + 4.69779873e-02 4.66400444e-02 4.63038029e-02 4.59692628e-02 4.56364243e-02 + 4.53052874e-02 4.49758521e-02 4.46481186e-02 4.43220870e-02 4.39977572e-02 + 4.36751294e-02 4.33542037e-02 4.30349801e-02 4.27174587e-02 4.24016395e-02 + 4.20875227e-02 4.17751083e-02 4.14643964e-02 4.11553870e-02 4.08480802e-02 + 4.05424762e-02 4.02385749e-02 3.99363764e-02 3.96358808e-02 3.93370881e-02 + 3.90399985e-02 3.87446120e-02 3.84509287e-02 3.81589486e-02 3.78686718e-02 + 3.75800983e-02 3.72932283e-02 3.70080618e-02 3.67245988e-02 3.64428394e-02 + 3.61627838e-02 3.58844318e-02 3.56077837e-02 3.53328395e-02 3.50595992e-02 + 3.47880629e-02 3.45182306e-02 3.42501025e-02 3.39836786e-02 3.37189589e-02 + 3.34559435e-02 3.31946324e-02 3.29350258e-02 3.26771236e-02 3.24209260e-02 + 3.21664330e-02 3.19136446e-02 3.16625610e-02 3.14131821e-02 3.11655080e-02 + 3.09195388e-02 3.06752746e-02 3.04327153e-02 3.01918611e-02 2.99527120e-02 + 2.97152680e-02 2.94795292e-02 2.92454957e-02 2.90131675e-02 2.87825447e-02 + 2.85536273e-02 2.83264153e-02 2.81009089e-02 2.78771081e-02 2.76550128e-02 + 2.74346233e-02 2.72159395e-02 2.69989614e-02 2.67836892e-02 2.65701228e-02 + 2.63582623e-02 2.61481079e-02 2.59396594e-02 2.57329170e-02 2.55278807e-02 + 2.53245505e-02 2.51229266e-02 2.49230089e-02 2.47247975e-02 2.45282924e-02 + 2.43334937e-02 2.41404014e-02 2.39490156e-02 2.37593363e-02 2.35713636e-02 + 2.33850975e-02 2.32005380e-02 2.30176851e-02 2.28365390e-02 2.26570997e-02 + 2.24793672e-02 2.23033415e-02 2.21290227e-02 2.19564108e-02 2.17855059e-02 + 2.16163080e-02 2.14488171e-02 2.12830333e-02 2.11189566e-02 2.09565871e-02 + 2.07959248e-02 2.06369696e-02 2.04797218e-02 2.03241812e-02 2.01703480e-02 + 2.00182221e-02 1.98678037e-02 1.97190927e-02 1.95720891e-02 1.94267931e-02 + 1.92832045e-02 1.91413236e-02 1.90011502e-02 1.88626845e-02 1.87259265e-02 + 1.85908761e-02 1.84575335e-02 1.83258986e-02 1.81959715e-02 1.80677522e-02 + 1.79412408e-02 1.78164372e-02 1.76933415e-02 1.75719538e-02 1.74522740e-02 + 1.73343022e-02 1.72180384e-02 1.71034827e-02 1.69906350e-02 1.68794954e-02 + 1.67700639e-02 1.66623405e-02 1.65563253e-02 1.64520183e-02 1.63494195e-02 + 1.62485289e-02 1.61493466e-02 1.60518726e-02 1.59561068e-02 1.58620494e-02 + 1.57697003e-02 1.56790596e-02 1.55901273e-02 1.55029034e-02 1.54173879e-02 + 1.53335808e-02 1.52514822e-02 1.51710921e-02 1.50924105e-02 1.50154374e-02 + 1.49401728e-02 1.48666168e-02 1.47947694e-02 1.47246305e-02 1.46562002e-02 + 1.45894786e-02 1.45244656e-02 1.44611612e-02 1.43995655e-02 1.43396785e-02 + 1.42815001e-02 1.42250305e-02 1.41702695e-02 1.41172173e-02 1.40658738e-02 + 1.40162391e-02 1.39683132e-02 1.39220960e-02 1.38775876e-02 1.38347880e-02 + 1.37936971e-02 1.37543151e-02 1.37166420e-02 1.36806776e-02 1.36464221e-02 + 1.36138754e-02 1.35830376e-02 1.35539086e-02 1.35264885e-02 1.35007773e-02 + 1.34767750e-02 1.34544815e-02 1.34338969e-02 1.34150212e-02 1.33978544e-02 + 1.33823966e-02 1.33686476e-02 1.33566075e-02 1.33462763e-02 1.33376541e-02 + 1.33307407e-02 1.33255363e-02 1.33220408e-02 1.33202542e-02 1.33201765e-02 + 1.33218078e-02 1.33251480e-02 1.33301970e-02 1.33369550e-02 1.33454220e-02 + 1.33555978e-02 1.33674825e-02 1.33810762e-02 1.33963787e-02 1.34133902e-02 + 1.34321105e-02 1.34525397e-02 1.34746779e-02 1.34985249e-02 1.35240808e-02 + 1.35513455e-02 1.35803192e-02 1.36110016e-02 1.36433930e-02 1.36774932e-02 + 1.37133022e-02 1.37508200e-02 1.37900467e-02 1.38309822e-02 1.38736265e-02 + 1.39179796e-02 1.39640414e-02 1.40118121e-02 1.40612914e-02 1.41124796e-02 + 1.41653765e-02 1.42199821e-02 1.42762964e-02 1.43343194e-02 1.43940512e-02 + 1.44554916e-02 1.45186406e-02 1.45834983e-02 1.46500646e-02 1.47183396e-02 + 1.47883231e-02 1.48600153e-02 1.49334160e-02 1.50085252e-02 1.50853430e-02 + 1.51638693e-02 1.52441041e-02 1.53260474e-02 1.54096992e-02 1.54950594e-02 + 1.55821280e-02 1.56709051e-02 1.57613905e-02 1.58535843e-02 1.59474864e-02 + 1.60430969e-02 1.61404156e-02 1.62394427e-02 1.63401780e-02 1.64426215e-02 + 1.65467732e-02 1.66526331e-02 1.67602012e-02 1.68694775e-02 1.69804618e-02 + 1.70931542e-02 1.72075547e-02 1.73236633e-02 1.74414798e-02 1.75610043e-02 + 1.76822368e-02 1.78051772e-02 1.79298256e-02 1.80561818e-02 1.81842458e-02 + 1.83140177e-02 1.84454973e-02 1.85786847e-02 1.87135798e-02 1.88501827e-02 + 1.89884931e-02 1.91285113e-02 1.92702370e-02 1.94136703e-02 1.95588111e-02 + 1.97056595e-02 1.98542153e-02 2.00044786e-02 2.01564492e-02 2.03101272e-02 + 2.04655126e-02 2.06226053e-02 2.07814052e-02 2.09419123e-02 2.11041267e-02 + 2.12680482e-02 2.14336768e-02 2.16010125e-02 2.17700553e-02 2.19408050e-02 + 2.21132617e-02 2.22874254e-02 2.24632959e-02 2.26408733e-02 2.28201575e-02 + 2.30011484e-02 2.31838461e-02 2.33682505e-02 2.35543615e-02 2.37421791e-02 + 2.39317033e-02 2.41229339e-02 2.43158711e-02 2.45105147e-02 2.47068647e-02 + 2.49049210e-02 2.51046836e-02 2.53061524e-02 2.55093275e-02 2.57142087e-02 + 2.59207960e-02 2.61290894e-02 2.63390888e-02 2.65507942e-02 2.67642055e-02 + 2.69793227e-02 2.71961457e-02 2.74146744e-02 2.76349090e-02 2.78568491e-02 + 2.80804949e-02 2.83058463e-02 2.85329032e-02 2.87616656e-02 2.89921334e-02 + 2.92243066e-02 2.94581851e-02 2.96937689e-02 2.99310578e-02 3.01700520e-02 + 3.04107512e-02 3.06531555e-02 3.08972648e-02 3.11430790e-02 3.13905981e-02 + 3.16398220e-02 3.18907507e-02 3.21433841e-02 3.23977222e-02 3.26537648e-02 + 3.29115120e-02 3.31709637e-02 3.34321199e-02 3.36949803e-02 3.39595451e-02 + 3.42258142e-02 3.44937874e-02 3.47634647e-02 3.50348461e-02 3.53079315e-02 + 3.55827209e-02 3.58592141e-02 3.61374112e-02 3.64173120e-02 3.66989165e-02 + 3.69822246e-02 3.72672363e-02 3.75539515e-02 3.78423701e-02 3.81324920e-02 + 3.84243173e-02 3.87178458e-02 3.90130775e-02 3.93100123e-02 3.96086502e-02 + 3.99089910e-02 4.02110347e-02 4.05147812e-02 4.08202305e-02 4.11273825e-02 + 4.14362371e-02 4.17467942e-02 4.20590539e-02 4.23730160e-02 4.26886804e-02 + 4.30060471e-02 4.33251159e-02 4.36458870e-02 4.39683600e-02 4.42925351e-02 + 4.46184120e-02 4.49459908e-02 4.52752714e-02 4.56062536e-02 4.59389375e-02 + 4.62733229e-02 4.66094097e-02 4.69471980e-02 4.72866875e-02 4.76278783e-02 + 4.79707703e-02 4.83153633e-02 4.86616573e-02 4.90096522e-02 4.93593480e-02 + 4.97107446e-02 5.00638418e-02 5.04186396e-02 5.07751380e-02 5.11333368e-02 + 5.14932360e-02 5.18548354e-02 5.22181351e-02 5.25831349e-02 5.29498347e-02 + 5.33182344e-02 5.36883341e-02 5.40601335e-02 5.44336326e-02 5.48088313e-02 + 5.51857296e-02 5.55643273e-02 5.59446244e-02 5.63266207e-02 5.67103163e-02 + 5.70957109e-02 5.74828046e-02 5.78715972e-02 5.82620886e-02 5.86542788e-02 + 5.90481677e-02 5.94437551e-02 5.98410410e-02 6.02400253e-02 6.06407080e-02 + 6.10430888e-02 6.14471678e-02 6.18529447e-02 6.22604197e-02 6.26695925e-02 + 6.30804630e-02 6.34930312e-02 6.39072970e-02 6.43232602e-02 6.47409209e-02 + 6.51602788e-02 6.55813340e-02 6.60040862e-02 6.64285354e-02 6.68546816e-02 + 6.72825245e-02 6.77120642e-02 6.81433005e-02 6.85762333e-02 6.90108625e-02 + 6.94471881e-02 6.98852099e-02 7.03249278e-02 7.07663417e-02 7.12094516e-02 + 7.16542573e-02 7.21007588e-02 7.25489558e-02 7.29988484e-02 7.34504365e-02 + 7.39037198e-02 7.43586984e-02 7.48153721e-02 7.52737408e-02 7.57338044e-02 + 7.61955628e-02 7.66590160e-02 7.71241637e-02 7.75910059e-02 7.80595425e-02 + 7.85297734e-02 7.90016985e-02 7.94753177e-02 7.99506308e-02 8.04276378e-02 + 8.09063385e-02 8.13867329e-02 8.18688208e-02 8.23526021e-02 8.28380768e-02 + 8.33252446e-02 8.38141056e-02 8.43046595e-02 8.47969063e-02 8.52908459e-02 + 8.57864782e-02 8.62838029e-02 8.67828201e-02 8.72835297e-02 8.77859314e-02 + 8.82900252e-02 8.87958110e-02 8.93032887e-02 8.98124581e-02 9.03233191e-02 + 9.08358717e-02 9.13501157e-02 9.18660509e-02 9.23836774e-02 9.29029949e-02 + 9.34240033e-02 9.39467025e-02 9.44710925e-02 9.49971730e-02 9.55249440e-02 + 9.60544054e-02 9.65855570e-02 9.71183987e-02 9.76529303e-02 9.81891519e-02 + 9.87270632e-02 9.92666641e-02 9.98079545e-02 1.00350934e-01 1.00895603e-01 + 1.01441962e-01 1.01990009e-01 1.02539745e-01 1.03091170e-01 1.03644283e-01 + 1.04199085e-01 1.04755576e-01 1.05313754e-01 1.05873621e-01 1.06435176e-01 + 1.06998419e-01 1.07563349e-01 1.08129968e-01 1.08698273e-01 1.09268266e-01 + 1.09839947e-01 1.10413314e-01 1.10988368e-01 1.11565110e-01 1.12143538e-01 + 1.12723652e-01 1.13305453e-01 1.13888941e-01 1.14474115e-01 1.15060974e-01 + 1.15649520e-01 1.16239751e-01 1.16831669e-01 1.17425271e-01 1.18020560e-01 + 1.18617533e-01 1.19216192e-01 1.19816535e-01 1.20418564e-01 1.21022277e-01 + 1.21627675e-01 1.22234757e-01 1.22843524e-01 1.23453975e-01 1.24066109e-01 + 1.24679928e-01 1.25295431e-01 1.25912617e-01 1.26531487e-01 1.27152040e-01 + 1.27774276e-01 1.28398196e-01 1.29023798e-01 1.29651083e-01 1.30280051e-01 + 1.30910702e-01 1.31543034e-01 1.32177050e-01 1.32812747e-01 1.33450126e-01 + 1.34089187e-01 1.34729929e-01 1.35372353e-01 1.36016459e-01 1.36662246e-01 + 1.37309713e-01 1.37958862e-01 1.38609692e-01 1.39262202e-01 1.39916393e-01 + 1.40572264e-01 1.41229815e-01 1.41889046e-01 1.42549958e-01 1.43212549e-01 + 1.43876819e-01 1.44542770e-01 1.45210399e-01 1.45879708e-01 1.46550695e-01 + 1.47223362e-01 1.47897707e-01 1.48573731e-01 1.49251433e-01 1.49930814e-01 + 1.50611872e-01 1.51294609e-01 1.51979023e-01 1.52665115e-01 1.53352885e-01 + 1.54042332e-01 1.54733456e-01 1.55426257e-01 1.56120735e-01 1.56816890e-01 + 1.57514721e-01 1.58214229e-01 1.58915413e-01 1.59618273e-01 1.60322809e-01 + 1.61029020e-01 1.61736908e-01 1.62446471e-01 1.63157709e-01 1.63870622e-01 + 1.64585210e-01 1.65301473e-01 1.66019411e-01 1.66739023e-01 1.67460310e-01 + 1.68183271e-01 1.68907906e-01 1.69634214e-01 1.70362197e-01 1.71091853e-01 + 1.71823182e-01 1.72556184e-01 1.73290860e-01 1.74027208e-01 1.74765229e-01 + 1.75504923e-01 1.76246289e-01 1.76989327e-01 1.77734037e-01 1.78480419e-01 + 1.79228473e-01 1.79978199e-01 1.80729595e-01 1.81482663e-01 1.82237402e-01 + 1.82993812e-01 1.83751893e-01 1.84511644e-01 1.85273065e-01 1.86036157e-01 + 1.86800919e-01 1.87567350e-01 1.88335451e-01 1.89105222e-01 1.89876662e-01 + 1.90649771e-01 1.91424549e-01 1.92200996e-01 1.92979112e-01 1.93758896e-01 + 1.94540348e-01 1.95323469e-01 1.96108257e-01 1.96894713e-01 1.97682837e-01 + 1.98472628e-01 1.99264087e-01 2.00057212e-01 2.00852004e-01 2.01648463e-01 + 2.02446589e-01 2.03246381e-01 2.04047839e-01 2.04850963e-01 2.05655753e-01 + 2.06462208e-01 2.07270329e-01 2.08080115e-01 2.08891567e-01 2.09704683e-01 + 2.10519464e-01 2.11335909e-01 2.12154019e-01 2.12973793e-01 2.13795231e-01 + 2.14618333e-01 2.15443098e-01 2.16269527e-01 2.17097619e-01 2.17927374e-01 + 2.18758792e-01 2.19591873e-01 2.20426616e-01 2.21263022e-01 2.22101090e-01 + 2.22940819e-01 2.23782211e-01 2.24625264e-01 2.25469978e-01 2.26316354e-01 + 2.27164390e-01 2.28014088e-01 2.28865446e-01 2.29718464e-01 2.30573143e-01 + 2.31429482e-01 2.32287480e-01 2.33147139e-01 2.34008457e-01 2.34871434e-01 + 2.35736070e-01 2.36602365e-01 2.37470319e-01 2.38339931e-01 2.39211202e-01 + 2.40084131e-01 2.40958717e-01 2.41834962e-01 2.42712864e-01 2.43592423e-01 + 2.44473640e-01 2.45356513e-01 2.46241044e-01 2.47127230e-01 2.48015074e-01 + 2.48904573e-01 2.49795728e-01 2.50688539e-01 2.51583006e-01 2.52479128e-01 + 2.53376905e-01 2.54276337e-01 2.55177424e-01 2.56080166e-01 2.56984562e-01 + 2.57890612e-01 2.58798316e-01 2.59707674e-01 2.60618685e-01 2.61531350e-01 + 2.62445667e-01 2.63361638e-01 2.64279262e-01 2.65198538e-01 2.66119466e-01 + 2.67042047e-01 2.67966279e-01 2.68892164e-01 2.69819699e-01 2.70748886e-01 + 2.71679724e-01 2.72612213e-01 2.73546353e-01 2.74482143e-01 2.75419584e-01 + 2.76358674e-01 2.77299415e-01 2.78241805e-01 2.79185844e-01 2.80131533e-01 + 2.81078870e-01 2.82027857e-01 2.82978492e-01 2.83930775e-01 2.84884707e-01 + 2.85840287e-01 2.86797514e-01 2.87756389e-01 2.88716911e-01 2.89679080e-01 + 2.90642896e-01 2.91608359e-01 2.92575468e-01 2.93544224e-01 2.94514625e-01 + 2.95486673e-01 2.96460366e-01 2.97435704e-01 2.98412687e-01 2.99391316e-01 + 3.00371589e-01 3.01353507e-01 3.02337069e-01 3.03322275e-01 3.04309125e-01 + 3.05297618e-01 3.06287755e-01 3.07279535e-01 3.08272958e-01 3.09268024e-01 + 3.10264733e-01 3.11263084e-01 3.12263076e-01 3.13264711e-01 3.14267987e-01 + 3.15272905e-01 3.16279464e-01 3.17287664e-01 3.18297505e-01 3.19308986e-01 + 3.20322108e-01 3.21336869e-01 3.22353271e-01 3.23371312e-01 3.24390992e-01 + 3.25412312e-01 3.26435271e-01 3.27459868e-01 3.28486104e-01 3.29513978e-01 + 3.30543490e-01 3.31574640e-01 3.32607428e-01 3.33641852e-01 3.34677914e-01 + 3.35715613e-01 3.36754949e-01 3.37795921e-01 3.38838529e-01 3.39882774e-01 + 3.40928653e-01 3.41976169e-01 3.43025320e-01 3.44076105e-01 3.45128526e-01 + 3.46182581e-01 3.47238271e-01 3.48295594e-01 3.49354552e-01 3.50415143e-01 + 3.51477368e-01 3.52541225e-01 3.53606716e-01 3.54673839e-01 3.55742595e-01 + 3.56812983e-01 3.57885003e-01 3.58958655e-01 3.60033939e-01 3.61110853e-01 + 3.62189399e-01 3.63269575e-01 3.64351382e-01 3.65434820e-01 3.66519887e-01 + 3.67606584e-01 3.68694911e-01 3.69784868e-01 3.70876453e-01 3.71969667e-01 + 3.73064510e-01 3.74160981e-01 3.75259081e-01 3.76358808e-01 3.77460163e-01 + 3.78563145e-01 3.79667755e-01 3.80773992e-01 3.81881855e-01 3.82991344e-01 + 3.84102460e-01 3.85215202e-01 3.86329570e-01 3.87445563e-01 3.88563181e-01 + 3.89682424e-01 3.90803292e-01 3.91925784e-01 3.93049901e-01 3.94175642e-01 + 3.95303006e-01 3.96431994e-01 3.97562605e-01 3.98694839e-01 3.99828696e-01 + 4.00964175e-01 4.02101276e-01 4.03240000e-01 4.04380345e-01 4.05522312e-01 + 4.06665899e-01 4.07811108e-01 4.08957938e-01 4.10106388e-01 4.11256458e-01 + 4.12408148e-01 4.13561458e-01 4.14716388e-01 4.15872936e-01 4.17031104e-01 + 4.18190890e-01 4.19352295e-01 4.20515317e-01 4.21679958e-01 4.22846216e-01 + 4.24014092e-01 4.25183585e-01 4.26354695e-01 4.27527421e-01 4.28701764e-01 + 4.29877723e-01 4.31055298e-01 4.32234488e-01 4.33415294e-01 4.34597715e-01 + 4.35781751e-01 4.36967401e-01 4.38154665e-01 4.39343544e-01 4.40534036e-01 + 4.41726142e-01 4.42919861e-01 4.44115193e-01 4.45312138e-01 4.46510695e-01 + 4.47710864e-01 4.48912645e-01 4.50116038e-01 4.51321043e-01 4.52527658e-01 + 4.53735885e-01 4.54945722e-01 4.56157169e-01 4.57370226e-01 4.58584894e-01 + 4.59801170e-01 4.61019056e-01 4.62238551e-01 4.63459655e-01 4.64682367e-01 + 4.65906688e-01 4.67132616e-01 4.68360152e-01 4.69589295e-01 4.70820046e-01 + 4.72052403e-01 4.73286367e-01 4.74521937e-01 4.75759113e-01 4.76997895e-01 + 4.78238283e-01 4.79480276e-01 4.80723873e-01 4.81969076e-01 4.83215882e-01 + 4.84464293e-01 4.85714308e-01 4.86965926e-01 4.88219148e-01 4.89473972e-01 + 4.90730400e-01 4.91988430e-01 4.93248062e-01 4.94509296e-01 4.95772131e-01 + 4.97036568e-01 4.98302606e-01 4.99570245e-01 5.00839485e-01 5.02110324e-01 + 5.03382764e-01 5.04656804e-01 5.05932442e-01 5.07209680e-01 5.08488517e-01 + 5.09768953e-01 5.11050986e-01 5.12334618e-01 5.13619847e-01 5.14906674e-01 + 5.16195098e-01 5.17485119e-01 5.18776737e-01 5.20069951e-01 5.21364761e-01 + 5.22661167e-01 5.23959168e-01 5.25258764e-01 5.26559955e-01 5.27862741e-01 + 5.29167122e-01 5.30473096e-01 5.31780664e-01 5.33089826e-01 5.34400580e-01 + 5.35712928e-01 5.37026868e-01 5.38342401e-01 5.39659526e-01 5.40978242e-01 + 5.42298550e-01 5.43620449e-01 5.44943939e-01 5.46269020e-01 5.47595691e-01 + 5.48923952e-01 5.50253802e-01 5.51585242e-01 5.52918272e-01 5.54252890e-01 + 5.55589096e-01 5.56926891e-01 5.58266274e-01 5.59607245e-01 5.60949803e-01 + 5.62293948e-01 5.63639680e-01 5.64986999e-01 5.66335903e-01 5.67686394e-01 + 5.69038470e-01 5.70392132e-01 5.71747378e-01 5.73104210e-01 5.74462626e-01 + 5.75822626e-01 5.77184210e-01 5.78547377e-01 5.79912128e-01 5.81278461e-01 + 5.82646378e-01 5.84015876e-01 5.85386957e-01 5.86759620e-01 5.88133864e-01 + 5.89509689e-01 5.90887095e-01 5.92266082e-01 5.93646649e-01 5.95028796e-01 + 5.96412522e-01 5.97797828e-01 5.99184713e-01 6.00573177e-01 6.01963219e-01 + 6.03354840e-01 6.04748038e-01 6.06142814e-01 6.07539167e-01 6.08937097e-01 + 6.10336603e-01 6.11737686e-01 6.13140346e-01 6.14544580e-01 6.15950391e-01 + 6.17357776e-01 6.18766736e-01 6.20177271e-01 6.21589379e-01 6.23003062e-01 + 6.24418319e-01 6.25835148e-01 6.27253551e-01 6.28673526e-01 6.30095073e-01 + 6.31518193e-01 6.32942884e-01 6.34369147e-01 6.35796981e-01 6.37226386e-01 + 6.38657361e-01 6.40089906e-01 6.41524022e-01 6.42959706e-01 6.44396960e-01 + 6.45835783e-01 6.47276175e-01 6.48718135e-01 6.50161663e-01 6.51606758e-01 + 6.53053421e-01 6.54501651e-01 6.55951448e-01 6.57402811e-01 6.58855740e-01 + 6.60310236e-01 6.61766296e-01 6.63223922e-01 6.64683112e-01 6.66143868e-01 + 6.67606187e-01 6.69070070e-01 6.70535517e-01 6.72002527e-01 6.73471100e-01 + 6.74941236e-01 6.76412934e-01 6.77886194e-01 6.79361015e-01 6.80837398e-01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 1.23300000e+01 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 + 1.00000000e+00 9.75894263e-01 9.53451752e-01 9.32489601e-01 9.12851907e-01 + 8.94404826e-01 8.77032714e-01 8.60635068e-01 8.45124065e-01 8.30422576e-01 + 8.16462554e-01 8.03183696e-01 7.90532350e-01 7.78460602e-01 7.66925506e-01 + 7.55888443e-01 7.45314577e-01 7.35172390e-01 7.25433287e-01 7.16071258e-01 + 7.07062580e-01 6.98385572e-01 6.90020370e-01 6.81948734e-01 6.74153887e-01 + 6.66620364e-01 6.59333880e-01 6.52281224e-01 6.45450150e-01 6.38829295e-01 + 6.32408091e-01 6.26176704e-01 6.20125961e-01 6.14247300e-01 6.08532716e-01 + 6.02974715e-01 5.97566276e-01 5.92300808e-01 5.87172122e-01 5.82174396e-01 + 5.77302151e-01 5.72550221e-01 5.67913735e-01 5.63388093e-01 5.58968948e-01 + 5.54652188e-01 5.50433918e-01 5.46310451e-01 5.42278287e-01 5.38334105e-01 + 5.34474753e-01 5.30697232e-01 5.26998691e-01 5.23376415e-01 5.19827818e-01 + 5.16350438e-01 5.12941922e-01 5.09600027e-01 5.06322612e-01 5.03107629e-01 + 4.99953120e-01 4.96857213e-01 4.93818117e-01 4.90834114e-01 4.87903560e-01 + 4.85024878e-01 4.82196556e-01 4.79417141e-01 4.76685242e-01 4.73999519e-01 + 4.71358685e-01 4.68761505e-01 4.66206788e-01 4.63693390e-01 4.61220209e-01 + 4.58786184e-01 4.56390292e-01 4.54031548e-01 4.51709002e-01 4.49421737e-01 + 4.47168870e-01 4.44949545e-01 4.42762941e-01 4.40608259e-01 4.38484731e-01 + 4.36391613e-01 4.34328187e-01 4.32293756e-01 4.30287649e-01 4.28309213e-01 + 4.26357819e-01 4.24432857e-01 4.22533734e-01 4.20659877e-01 4.18810733e-01 + 4.16985761e-01 4.15184441e-01 4.13406264e-01 4.11650741e-01 4.09917394e-01 + 4.08205761e-01 4.06515390e-01 4.04845847e-01 4.03196706e-01 4.01567556e-01 + 3.99957996e-01 3.98367636e-01 3.96796098e-01 3.95243014e-01 3.93708024e-01 + 3.92190780e-01 3.90690944e-01 3.89208184e-01 3.87742180e-01 3.86292617e-01 + 3.84859191e-01 3.83441605e-01 3.82039569e-01 3.80652800e-01 3.79281024e-01 + 3.77923973e-01 3.76581385e-01 3.75253005e-01 3.73938583e-01 3.72637878e-01 + 3.71350652e-01 3.70076675e-01 3.68815719e-01 3.67567566e-01 3.66332000e-01 + 3.65108810e-01 3.63897792e-01 3.62698745e-01 3.61511473e-01 3.60335785e-01 + 3.59171493e-01 3.58018415e-01 3.56876371e-01 3.55745187e-01 3.54624691e-01 + 3.53514717e-01 3.52415101e-01 3.51325683e-01 3.50246306e-01 3.49176816e-01 + 3.48117064e-01 3.47066903e-01 3.46026189e-01 3.44994782e-01 3.43972542e-01 + 3.42959337e-01 3.41955032e-01 3.40959498e-01 3.39972609e-01 3.38994241e-01 + 3.38024270e-01 3.37062579e-01 3.36109049e-01 3.35163566e-01 3.34226018e-01 + 3.33296293e-01 3.32374284e-01 3.31459885e-01 3.30552992e-01 3.29653502e-01 + 3.28761315e-01 3.27876333e-01 3.26998460e-01 3.26127600e-01 3.25263662e-01 + 3.24406553e-01 3.23556184e-01 3.22712468e-01 3.21875318e-01 3.21044649e-01 + 3.20220378e-01 3.19402424e-01 3.18590706e-01 3.17785145e-01 3.16985665e-01 + 3.16192188e-01 3.15404639e-01 3.14622947e-01 3.13847038e-01 3.13076841e-01 + 3.12312287e-01 3.11553306e-01 3.10799833e-01 3.10051800e-01 3.09309142e-01 + 3.08571795e-01 3.07839697e-01 3.07112784e-01 3.06390997e-01 3.05674275e-01 + 3.04962560e-01 3.04255793e-01 3.03553917e-01 3.02856876e-01 3.02164615e-01 + 3.01477079e-01 3.00794216e-01 3.00115971e-01 2.99442294e-01 2.98773134e-01 + 2.98108439e-01 2.97448161e-01 2.96792252e-01 2.96140662e-01 2.95493345e-01 + 2.94850254e-01 2.94211344e-01 2.93576570e-01 2.92945886e-01 2.92319250e-01 + 2.91696618e-01 2.91077947e-01 2.90463197e-01 2.89852325e-01 2.89245291e-01 + 2.88642055e-01 2.88042577e-01 2.87446820e-01 2.86854743e-01 2.86266311e-01 + 2.85681484e-01 2.85100228e-01 2.84522505e-01 2.83948280e-01 2.83377517e-01 + 2.82810183e-01 2.82246243e-01 2.81685662e-01 2.81128409e-01 2.80574450e-01 + 2.80023753e-01 2.79476286e-01 2.78932017e-01 2.78390916e-01 2.77852951e-01 + 2.77318094e-01 2.76786313e-01 2.76257580e-01 2.75731865e-01 2.75209140e-01 + 2.74689377e-01 2.74172548e-01 2.73658625e-01 2.73147581e-01 2.72639389e-01 + 2.72134024e-01 2.71631458e-01 2.71131667e-01 2.70634624e-01 2.70140305e-01 + 2.69648684e-01 2.69159738e-01 2.68673442e-01 2.68189772e-01 2.67708706e-01 + 2.67230218e-01 2.66754287e-01 2.66280890e-01 2.65810005e-01 2.65341608e-01 + 2.64875680e-01 2.64412197e-01 2.63951138e-01 2.63492483e-01 2.63036211e-01 + 2.62582301e-01 2.62130732e-01 2.61681486e-01 2.61234541e-01 2.60789879e-01 + 2.60347479e-01 2.59907323e-01 2.59469393e-01 2.59033668e-01 2.58600131e-01 + 2.58168764e-01 2.57739549e-01 2.57312467e-01 2.56887501e-01 2.56464633e-01 + 2.56043847e-01 2.55625126e-01 2.55208452e-01 2.54793809e-01 2.54381180e-01 + 2.53970550e-01 2.53561902e-01 2.53155220e-01 2.52750489e-01 2.52347693e-01 + 2.51946816e-01 2.51547844e-01 2.51150761e-01 2.50755553e-01 2.50362204e-01 + 2.49970701e-01 2.49581029e-01 2.49193173e-01 2.48807120e-01 2.48422856e-01 + 2.48040367e-01 2.47659639e-01 2.47280658e-01 2.46903413e-01 2.46527888e-01 + 2.46154072e-01 2.45781951e-01 2.45411513e-01 2.45042745e-01 2.44675634e-01 + 2.44310168e-01 2.43946335e-01 2.43584122e-01 2.43223518e-01 2.42864511e-01 + 2.42507089e-01 2.42151241e-01 2.41796954e-01 2.41444218e-01 2.41093021e-01 + 2.40743352e-01 2.40395201e-01 2.40048555e-01 2.39703404e-01 2.39359739e-01 + 2.39017547e-01 2.38676818e-01 2.38337542e-01 2.37999710e-01 2.37663309e-01 + 2.37328332e-01 2.36994766e-01 2.36662603e-01 2.36331833e-01 2.36002446e-01 + 2.35674432e-01 2.35347783e-01 2.35022487e-01 2.34698537e-01 2.34375923e-01 + 2.34054635e-01 2.33734666e-01 2.33416004e-01 2.33098643e-01 2.32782573e-01 + 2.32467784e-01 2.32154270e-01 2.31842020e-01 2.31531028e-01 2.31221283e-01 + 2.30912778e-01 2.30605504e-01 2.30299454e-01 2.29994620e-01 2.29690992e-01 + 2.29388564e-01 2.29087328e-01 2.28787275e-01 2.28488398e-01 2.28190689e-01 + 2.27894141e-01 2.27598746e-01 2.27304497e-01 2.27011386e-01 2.26719406e-01 + 2.26428550e-01 2.26138810e-01 2.25850180e-01 2.25562652e-01 2.25276219e-01 + 2.24990875e-01 2.24706613e-01 2.24423425e-01 2.24141305e-01 2.23860246e-01 + 2.23580243e-01 2.23301287e-01 2.23023372e-01 2.22746493e-01 2.22470643e-01 + 2.22195814e-01 2.21922002e-01 2.21649200e-01 2.21377401e-01 2.21106599e-01 + 2.20836789e-01 2.20567964e-01 2.20300119e-01 2.20033247e-01 2.19767342e-01 + 2.19502400e-01 2.19238413e-01 2.18975376e-01 2.18713284e-01 2.18452130e-01 + 2.18191910e-01 2.17932618e-01 2.17674247e-01 2.17416794e-01 2.17160252e-01 + 2.16904616e-01 2.16649880e-01 2.16396040e-01 2.16143090e-01 2.15891025e-01 + 2.15639840e-01 2.15389530e-01 2.15140089e-01 2.14891513e-01 2.14643796e-01 + 2.14396935e-01 2.14150923e-01 2.13905756e-01 2.13661429e-01 2.13417937e-01 + 2.13175276e-01 2.12933441e-01 2.12692427e-01 2.12452229e-01 2.12212843e-01 + 2.11974265e-01 2.11736490e-01 2.11499513e-01 2.11263330e-01 2.11027936e-01 + 2.10793328e-01 2.10559500e-01 2.10326449e-01 2.10094169e-01 2.09862658e-01 + 2.09631910e-01 2.09401922e-01 2.09172689e-01 2.08944208e-01 2.08716473e-01 + 2.08489481e-01 2.08263229e-01 2.08037711e-01 2.07812924e-01 2.07588865e-01 + 2.07365528e-01 2.07142911e-01 2.06921010e-01 2.06699820e-01 2.06479337e-01 + 2.06259559e-01 2.06040481e-01 2.05822100e-01 2.05604412e-01 2.05387413e-01 + 2.05171099e-01 2.04955468e-01 2.04740515e-01 2.04526237e-01 2.04312630e-01 + 2.04099691e-01 2.03887417e-01 2.03675803e-01 2.03464847e-01 2.03254545e-01 + 2.03044894e-01 2.02835891e-01 2.02627531e-01 2.02419812e-01 2.02212731e-01 + 2.02006284e-01 2.01800468e-01 2.01595280e-01 2.01390716e-01 2.01186774e-01 + 2.00983451e-01 2.00780742e-01 2.00578646e-01 2.00377158e-01 2.00176277e-01 + 1.99975998e-01 1.99776320e-01 1.99577238e-01 1.99378751e-01 1.99180854e-01 + 1.98983546e-01 1.98786822e-01 1.98590681e-01 1.98395120e-01 1.98200135e-01 + 1.98005724e-01 1.97811884e-01 1.97618612e-01 1.97425905e-01 1.97233761e-01 + 1.97042177e-01 1.96851151e-01 1.96660678e-01 1.96470758e-01 1.96281387e-01 + 1.96092562e-01 1.95904281e-01 1.95716541e-01 1.95529341e-01 1.95342676e-01 + 1.95156545e-01 1.94970945e-01 1.94785873e-01 1.94601328e-01 1.94417306e-01 + 1.94233805e-01 1.94050823e-01 1.93868357e-01 1.93686404e-01 1.93504963e-01 + 1.93324031e-01 1.93143606e-01 1.92963685e-01 1.92784265e-01 1.92605345e-01 + 1.92426923e-01 1.92248995e-01 1.92071560e-01 1.91894616e-01 1.91718159e-01 + 1.91542189e-01 1.91366702e-01 1.91191696e-01 1.91017170e-01 1.90843121e-01 + 1.90669546e-01 1.90496445e-01 1.90323814e-01 1.90151652e-01 1.89979956e-01 + 1.89808724e-01 1.89637954e-01 1.89467644e-01 1.89297793e-01 1.89128397e-01 + 1.88959456e-01 1.88790966e-01 1.88622926e-01 1.88455335e-01 1.88288189e-01 + 1.88121487e-01 1.87955227e-01 1.87789407e-01 1.87624025e-01 1.87459079e-01 + 1.87294568e-01 1.87130489e-01 1.86966840e-01 1.86803620e-01 1.86640827e-01 + 1.86478458e-01 1.86316513e-01 1.86154989e-01 1.85993884e-01 1.85833197e-01 + 1.85672925e-01 1.85513068e-01 1.85353622e-01 1.85194587e-01 1.85035961e-01 + 1.84877742e-01 1.84719927e-01 1.84562517e-01 1.84405508e-01 1.84248899e-01 + 1.84092688e-01 1.83936874e-01 1.83781455e-01 1.83626429e-01 1.83471795e-01 + 1.83317551e-01 1.83163695e-01 1.83010226e-01 1.82857142e-01 1.82704442e-01 + 1.82552123e-01 1.82400185e-01 1.82248626e-01 1.82097444e-01 1.81946637e-01 + 1.81796204e-01 1.81646144e-01 1.81496455e-01 1.81347136e-01 1.81198184e-01 + 1.81049599e-01 1.80901378e-01 1.80753522e-01 1.80606027e-01 1.80458892e-01 + 1.80312117e-01 1.80165699e-01 1.80019637e-01 1.79873930e-01 1.79728576e-01 + 1.79583574e-01 1.79438922e-01 1.79294620e-01 1.79150665e-01 1.79007056e-01 + 1.78863792e-01 1.78720871e-01 1.78578292e-01 1.78436054e-01 1.78294156e-01 + 1.78152595e-01 1.78011371e-01 1.77870482e-01 1.77729928e-01 1.77589706e-01 + 1.77449815e-01 1.77310255e-01 1.77171023e-01 1.77032119e-01 1.76893540e-01 + 1.76755287e-01 1.76617358e-01 1.76479751e-01 1.76342465e-01 1.76205499e-01 + 1.76068851e-01 1.75932521e-01 1.75796507e-01 1.75660808e-01 1.75525423e-01 + 1.75390351e-01 1.75255589e-01 1.75121138e-01 1.74986996e-01 1.74853162e-01 + 1.74719634e-01 1.74586412e-01 1.74453494e-01 1.74320879e-01 1.74188566e-01 + 1.74056554e-01 1.73924842e-01 1.73793428e-01 1.73662312e-01 1.73531492e-01 + 1.73400967e-01 1.73270736e-01 1.73140798e-01 1.73011152e-01 1.72881797e-01 + 1.72752732e-01 1.72623955e-01 1.72495466e-01 1.72367263e-01 1.72239346e-01 + 1.72111713e-01 1.71984363e-01 1.71857296e-01 1.71730510e-01 1.71604004e-01 + 1.71477777e-01 1.71351828e-01 1.71226157e-01 1.71100761e-01 1.70975641e-01 + 1.70850795e-01 1.70726222e-01 1.70601921e-01 1.70477891e-01 1.70354131e-01 + 1.70230640e-01 1.70107418e-01 1.69984462e-01 1.69861773e-01 1.69739349e-01 + 1.69617190e-01 1.69495294e-01 1.69373660e-01 1.69252288e-01 1.69131176e-01 + 1.69010324e-01 1.68889731e-01 1.68769395e-01 1.68649317e-01 1.68529494e-01 + 1.68409926e-01 1.68290613e-01 1.68171552e-01 1.68052744e-01 1.67934188e-01 + 1.67815882e-01 1.67697825e-01 1.67580018e-01 1.67462458e-01 1.67345146e-01 + 1.67228079e-01 1.67111258e-01 1.66994682e-01 1.66878349e-01 1.66762259e-01 + 1.66646411e-01 1.66530804e-01 1.66415437e-01 1.66300309e-01 1.66185421e-01 + 1.66070770e-01 1.65956356e-01 1.65842178e-01 1.65728235e-01 1.65614527e-01 + 1.65501053e-01 1.65387812e-01 1.65274803e-01 1.65162025e-01 1.65049477e-01 + 1.64937160e-01 1.64825071e-01 1.64713211e-01 1.64601578e-01 1.64490172e-01 + 1.64378991e-01 1.64268036e-01 1.64157305e-01 1.64046798e-01 1.63936514e-01 + 1.63826452e-01 1.63716611e-01 1.63606991e-01 1.63497591e-01 1.63388409e-01 + 1.63279447e-01 1.63170702e-01 1.63062174e-01 1.62953862e-01 1.62845766e-01 + 1.62737885e-01 1.62630217e-01 1.62522764e-01 1.62415523e-01 1.62308493e-01 + 1.62201676e-01 1.62095069e-01 1.61988671e-01 1.61882483e-01 1.61776504e-01 + 1.61670732e-01 1.61565168e-01 1.61459810e-01 1.61354658e-01 1.61249711e-01 + 1.61144969e-01 1.61040431e-01 1.60936095e-01 1.60831963e-01 1.60728032e-01 + 1.60624302e-01 1.60520773e-01 1.60417444e-01 1.60314314e-01 1.60211383e-01 + 1.60108650e-01 1.60006114e-01 1.59903775e-01 1.59801632e-01 1.59699684e-01 + 1.59597932e-01 1.59496373e-01 1.59395009e-01 1.59293837e-01 1.59192858e-01 + 1.59092070e-01 1.58991474e-01 1.58891068e-01 1.58790852e-01 1.58690826e-01 + 1.58590988e-01 1.58491339e-01 1.58391877e-01 1.58292602e-01 1.58193514e-01 + 1.58094612e-01 1.57995894e-01 1.57897362e-01 1.57799013e-01 1.57700849e-01 + 1.57602867e-01 1.57505067e-01 1.57407450e-01 1.57310013e-01 1.57212758e-01 + 1.57115682e-01 1.57018786e-01 1.56922069e-01 1.56825531e-01 1.56729171e-01 + 1.56632988e-01 1.56536982e-01 1.56441152e-01 1.56345498e-01 1.56250019e-01 + 1.56154715e-01 1.56059585e-01 1.55964629e-01 1.55869846e-01 1.55775235e-01 + 1.55680797e-01 1.55586530e-01 1.55492434e-01 1.55398509e-01 1.55304754e-01 + 1.55211168e-01 1.55117751e-01 1.55024502e-01 1.54931422e-01 1.54838509e-01 + 1.54745763e-01 1.54653183e-01 1.54560770e-01 1.54468522e-01 1.54376439e-01 + 1.54284520e-01 1.54192765e-01 1.54101174e-01 1.54009746e-01 1.53918481e-01 + 1.53827377e-01 1.53736435e-01 1.53645654e-01 1.53555034e-01 1.53464574e-01 + 1.53374274e-01 1.53284132e-01 1.53194150e-01 1.53104326e-01 1.53014660e-01 + 1.52925151e-01 1.52835798e-01 1.52746603e-01 1.52657563e-01 1.52568679e-01 + 1.52479950e-01 1.52391376e-01 1.52302955e-01 1.52214689e-01 1.52126576e-01 + 1.52038615e-01 1.51950807e-01 1.51863151e-01 1.51775647e-01 1.51688293e-01 + 1.51601091e-01 1.51514038e-01 1.51427135e-01 1.51340382e-01 1.51253778e-01 + 1.51167322e-01 1.51081014e-01 1.50994854e-01 1.50908841e-01 1.50822975e-01 + 1.50737255e-01 1.50651681e-01 1.50566253e-01 1.50480970e-01 1.50395832e-01 + 1.50310838e-01 1.50225988e-01 1.50141281e-01 1.50056718e-01 1.49972298e-01 + 1.49888019e-01 1.49803883e-01 1.49719888e-01 1.49636035e-01 1.49552322e-01 + 1.49468749e-01 1.49385316e-01 1.49302023e-01 1.49218869e-01 1.49135854e-01 + 1.49052977e-01 1.48970239e-01 1.48887638e-01 1.48805174e-01 1.48722847e-01 + 1.48640656e-01 1.48558602e-01 1.48476683e-01 1.48394900e-01 1.48313252e-01 + 1.48231738e-01 1.48150359e-01 1.48069113e-01 1.47988001e-01 1.47907022e-01 + 1.47826176e-01 1.47745463e-01 1.47664881e-01 1.47584431e-01 1.47504113e-01 + 1.47423925e-01 1.47343868e-01 1.47263942e-01 1.47184145e-01 1.47104478e-01 + 1.47024940e-01 1.46945531e-01 1.46866251e-01 1.46787099e-01 1.46708074e-01 + 1.46629177e-01 1.46550407e-01 1.46471764e-01 1.46393248e-01 1.46314857e-01 + 1.46236593e-01 1.46158454e-01 1.46080440e-01 1.46002551e-01 1.45924786e-01 + 1.45847145e-01 1.45769628e-01 1.45692235e-01 1.45614965e-01 1.45537817e-01 + 1.45460792e-01 1.45383890e-01 1.45307109e-01 1.45230449e-01 1.45153911e-01 + 1.45077494e-01 1.45001197e-01 1.44925021e-01 1.44848964e-01 1.44773027e-01 + 1.44697209e-01 1.44621511e-01 1.44545931e-01 1.44470469e-01 1.44395126e-01 + 1.44319900e-01 1.44244791e-01 1.44169800e-01 1.44094926e-01 1.44020168e-01 + 1.43945527e-01 1.43871001e-01 1.43796591e-01 1.43722296e-01 1.43648117e-01 + 1.43574052e-01 1.43500101e-01 1.43426265e-01 1.43352542e-01 1.43278934e-01 + 1.43205438e-01 1.43132055e-01 1.43058785e-01 1.42985628e-01 1.42912583e-01 + 1.42839649e-01 1.42766827e-01 1.42694116e-01 1.42621516e-01 1.42549027e-01 + 1.42476649e-01 1.42404380e-01 1.42332222e-01 1.42260172e-01 1.42188233e-01 + 1.42116402e-01 1.42044680e-01 1.41973066e-01 1.41901561e-01 1.41830164e-01 + 1.41758874e-01 1.41687692e-01 1.41616617e-01 1.41545648e-01 1.41474786e-01 + 1.41404031e-01 1.41333382e-01 1.41262838e-01 1.41192400e-01 1.41122067e-01 + 1.41051839e-01 1.40981716e-01 1.40911698e-01 1.40841783e-01 1.40771973e-01 + 1.40702266e-01 1.40632663e-01 1.40563163e-01 1.40493766e-01 1.40424471e-01 + 1.40355279e-01 1.40286189e-01 1.40217202e-01 1.40148315e-01 1.40079531e-01 + 1.40010847e-01 1.39942264e-01 1.39873782e-01 1.39805401e-01 1.39737119e-01 + 1.39668938e-01 1.39600856e-01 1.39532874e-01 1.39464991e-01 1.39397207e-01 + 1.39329522e-01 1.39261935e-01 1.39194446e-01 1.39127056e-01 1.39059763e-01 + 1.38992568e-01 1.38925470e-01 1.38858469e-01 1.38791565e-01 1.38724758e-01 + 1.38658047e-01 1.38591432e-01 1.38524913e-01 1.38458490e-01 1.38392162e-01 + 1.38325930e-01 1.38259792e-01 1.38193750e-01 1.38127801e-01 1.38061947e-01 + 1.37996188e-01 1.37930522e-01 1.37864950e-01 1.37799471e-01 1.37734085e-01 + 1.37668793e-01 1.37603593e-01 1.37538485e-01 1.37473471e-01 1.37408548e-01 + 1.37343717e-01 1.37278977e-01 1.37214330e-01 1.37149773e-01 1.37085308e-01 + 1.37020933e-01 1.36956649e-01 1.36892455e-01 1.36828351e-01 1.36764338e-01 + 1.36700414e-01 1.36636580e-01 1.36572835e-01 1.36509179e-01 1.36445612e-01 + 1.36382134e-01 1.36318745e-01 1.36255443e-01 1.36192230e-01 1.36129105e-01 + 1.36066067e-01 1.36003117e-01 1.35940254e-01 1.35877478e-01 1.35814789e-01 + 1.35752187e-01 1.35689672e-01 1.35627242e-01 1.35564899e-01 1.35502641e-01 + 1.35440470e-01 1.35378384e-01 1.35316383e-01 1.35254467e-01 1.35192636e-01 + 1.35130890e-01 1.35069228e-01 1.35007651e-01 1.34946158e-01 1.34884748e-01 + 1.34823423e-01 1.34762181e-01 1.34701022e-01 1.34639947e-01 1.34578955e-01 + 1.34518045e-01 1.34457218e-01 1.34396474e-01 1.34335812e-01 1.34275232e-01 + 1.34214733e-01 1.34154317e-01 1.34093982e-01 1.34033728e-01 1.33973556e-01 + 1.33913464e-01 1.33853453e-01 1.33793523e-01 1.33733673e-01 1.33673904e-01 + 1.33614214e-01 1.33554605e-01 1.33495075e-01 1.33435625e-01 1.33376254e-01 + 1.33316962e-01 1.33257749e-01 1.33198615e-01 1.33139560e-01 1.33080583e-01 + 1.33021685e-01 1.32962864e-01 1.32904122e-01 1.32845457e-01 1.32786870e-01 + 1.32728361e-01 1.32669928e-01 1.32611573e-01 1.32553295e-01 1.32495093e-01 + 1.32436968e-01 1.32378920e-01 1.32320948e-01 1.32263052e-01 1.32205232e-01 + 1.32147487e-01 1.32089818e-01 1.32032225e-01 1.31974707e-01 1.31917264e-01 + 1.31859896e-01 1.31802603e-01 1.31745384e-01 1.31688240e-01 1.31631170e-01 + 1.31574174e-01 1.31517252e-01 1.31460404e-01 1.31403630e-01 1.31346929e-01 + 1.31290301e-01 1.31233747e-01 1.31177266e-01 1.31120857e-01 1.31064522e-01 + 1.31008258e-01 1.30952068e-01 1.30895949e-01 1.30839903e-01 1.30783928e-01 + 1.30728025e-01 1.30672194e-01 1.30616435e-01 1.30560746e-01 1.30505129e-01 + 1.30449583e-01 1.30394108e-01 1.30338703e-01 1.30283369e-01 1.30228105e-01 + 1.30172912e-01 1.30117789e-01 1.30062736e-01 1.30007752e-01 1.29952839e-01 + 1.29897994e-01 1.29843219e-01 1.29788514e-01 1.29733877e-01 1.29679310e-01 + 1.29624811e-01 1.29570381e-01 1.29516019e-01 1.29461726e-01 1.29407501e-01 + 1.29353344e-01 1.29299255e-01 1.29245234e-01 1.29191280e-01 1.29137394e-01 + 1.29083575e-01 1.29029824e-01 1.28976140e-01 1.28922522e-01 1.28868972e-01 + 1.28815488e-01 1.28762070e-01 1.28708719e-01 1.28655435e-01 1.28602216e-01 + 1.28549063e-01 1.28495977e-01 1.28442955e-01 1.28390000e-01 1.28337110e-01 + 1.28284285e-01 1.28231526e-01 1.28178831e-01 1.28126202e-01 1.28073637e-01 + 1.28021137e-01 1.27968701e-01 1.27916330e-01 1.27864023e-01 1.27811780e-01 + 1.27759601e-01 1.27707486e-01 1.27655434e-01 1.27603447e-01 1.27551522e-01 + 1.27499661e-01 1.27447864e-01 1.27396129e-01 1.27344457e-01 1.27292848e-01 + 1.27241302e-01 1.27189818e-01 1.27138397e-01 1.27087038e-01 1.27035742e-01 + 1.26984507e-01 1.26933334e-01 1.26882223e-01 1.26831174e-01 1.26780187e-01 + 1.26729260e-01 1.26678396e-01 1.26627592e-01 1.26576849e-01 1.26526168e-01 + 1.26475547e-01 1.26424987e-01 1.26374487e-01 1.26324048e-01 1.26273670e-01 + 1.26223351e-01 1.26173093e-01 1.26122894e-01 1.26072756e-01 1.26022677e-01 + 1.25972658e-01 1.25922698e-01 1.25872798e-01 1.25822957e-01 1.25773176e-01 + 1.25723453e-01 1.25673789e-01 1.25624184e-01 1.25574638e-01 1.25525150e-01 + 1.25475721e-01 1.25426350e-01 1.25377037e-01 1.25327782e-01 1.25278586e-01 + 1.25229447e-01 1.25180366e-01 1.25131343e-01 1.25082377e-01 1.25033469e-01 + 1.24984618e-01 1.24935824e-01 1.24887088e-01 1.24838408e-01 1.24789785e-01 + 1.24741219e-01 1.24692710e-01 1.24644257e-01 1.24595861e-01 1.24547521e-01 + 1.24499237e-01 1.24451010e-01 1.24402838e-01 1.24354722e-01 1.24306662e-01 + 1.24258658e-01 1.24210709e-01 1.24162816e-01 1.24114978e-01 1.24067195e-01 + 1.24019468e-01 1.23971795e-01 1.23924178e-01 1.23876615e-01 1.23829107e-01 + 1.23781654e-01 1.23734255e-01 1.23686910e-01 1.23639620e-01 1.23592384e-01 + 1.23545202e-01 1.23498075e-01 1.23451001e-01 1.23403980e-01 1.23357014e-01 + 1.23310101e-01 1.23263242e-01 1.23216436e-01 1.23169683e-01 1.23122983e-01 + 1.23076337e-01 1.23029743e-01 1.22983202e-01 1.22936715e-01 1.22890279e-01 + 1.22843897e-01 1.22797567e-01 1.22751289e-01 1.22705063e-01 1.22658890e-01 + 1.22612769e-01 1.22566700e-01 1.22520682e-01 1.22474717e-01 1.22428803e-01 + 1.22382941e-01 1.22337130e-01 1.22291371e-01 1.22245663e-01 1.22200006e-01 + 1.22154400e-01 1.22108845e-01 1.22063342e-01 1.22017889e-01 1.21972487e-01 + 1.21927135e-01 1.21881834e-01 1.21836584e-01 1.21791383e-01 1.21746234e-01 + 1.21701134e-01 1.21656084e-01 1.21611085e-01 1.21566135e-01 1.21521235e-01 + 1.21476385e-01 1.21431584e-01 1.21386833e-01 1.21342131e-01 1.21297479e-01 + 1.21252876e-01 1.21208322e-01 1.21163817e-01 1.21119362e-01 1.21074955e-01 + 1.21030597e-01 1.20986287e-01 1.20942026e-01 1.20897814e-01 1.20853651e-01 + 1.20809535e-01 1.20765468e-01 1.20721449e-01 1.20677478e-01 1.20633555e-01 + 1.20589681e-01 1.20545854e-01 1.20502074e-01 1.20458343e-01 1.20414659e-01 + 1.20371022e-01 1.20327433e-01 1.20283891e-01 1.20240396e-01 1.20196949e-01 + 1.20153549e-01 1.20110195e-01 1.20066889e-01 1.20023629e-01 1.19980416e-01 + 1.19937250e-01 1.19894130e-01 1.19851056e-01 1.19808030e-01 1.19765049e-01 + 1.19722115e-01 1.19679226e-01 1.19636384e-01 1.19593588e-01 1.19550838e-01 + 1.19508133e-01 1.19465474e-01 1.19422861e-01 1.19380294e-01 1.19337772e-01 + 1.19295295e-01 1.19252863e-01 1.19210477e-01 1.19168136e-01 1.19125841e-01 + 1.19083590e-01 1.19041384e-01 1.18999223e-01 1.18957106e-01 1.18915035e-01 + 1.18873008e-01 1.18831025e-01 1.18789087e-01 1.18747194e-01 1.18705344e-01 + 1.18663539e-01 1.18621778e-01 1.18580061e-01 1.18538388e-01 1.18496759e-01 + 1.18455174e-01 1.18413632e-01 1.18372134e-01 1.18330680e-01 1.18289269e-01 + 1.18247902e-01 1.18206578e-01 1.18165298e-01 1.18124060e-01 1.18082866e-01 + 1.18041715e-01 1.18000607e-01 1.17959541e-01 1.17918519e-01 1.17877539e-01 + 1.17836602e-01 1.17795708e-01 1.17754856e-01 1.17714047e-01 1.17673280e-01 + 1.17632556e-01 1.17591873e-01 1.17551233e-01 1.17510635e-01 1.17470079e-01 + 1.17429565e-01 1.17389093e-01 1.17348662e-01 1.17308274e-01 1.17267927e-01 + 1.17227622e-01 1.17187358e-01 1.17147135e-01 1.17106955e-01 1.17066815e-01 + 1.17026717e-01 1.16986659e-01 1.16946643e-01 1.16906668e-01 1.16866734e-01 + 1.16826841e-01 1.16786988e-01 1.16747177e-01 1.16707406e-01 1.16667676e-01 + 1.16627986e-01 1.16588337e-01 1.16548728e-01 1.16509159e-01 1.16469631e-01 + 1.16430143e-01 1.16390695e-01 1.16351287e-01 1.16311919e-01 1.16272591e-01 + 1.16233303e-01 1.16194055e-01 1.16154846e-01 1.16115678e-01 1.16076548e-01 + 1.16037459e-01 1.15998408e-01 1.15959397e-01 1.15920426e-01 1.15881494e-01 + 1.15842601e-01 1.15803747e-01 1.15764932e-01 1.15726156e-01 1.15687419e-01 + 1.15648721e-01 1.15610062e-01 1.15571441e-01 1.15532859e-01 1.15494316e-01 + 1.15455812e-01 1.15417345e-01 1.15378918e-01 1.15340528e-01 1.15302177e-01 + 1.15263864e-01 1.15225590e-01 1.15187353e-01 1.15149155e-01 1.15110994e-01 + 1.15072871e-01 1.15034786e-01 1.14996739e-01 1.14958730e-01 1.14920759e-01 + 1.14882824e-01 1.14844928e-01 1.14807069e-01 1.14769247e-01 1.14731463e-01 + 1.14693716e-01 1.14656006e-01 1.14618334e-01 1.14580699e-01 1.14543100e-01 + 1.14505539e-01 1.14468014e-01 1.14430527e-01 1.14393076e-01 1.14355662e-01 + 1.14318284e-01 1.14280944e-01 1.14243640e-01 1.14206372e-01 1.14169141e-01 + 1.14131946e-01 1.14094787e-01 1.14057665e-01 1.14020579e-01 1.13983529e-01 + 1.13946515e-01 1.13909538e-01 1.13872596e-01 1.13835690e-01 1.13798820e-01 + 1.13761986e-01 1.13725188e-01 1.13688425e-01 1.13651698e-01 1.13615006e-01 + 1.13578350e-01 1.13541730e-01 1.13505144e-01 1.13468595e-01 1.13432080e-01 + 1.13395601e-01 1.13359156e-01 1.13322747e-01 1.13286373e-01 1.13250035e-01 + 1.13213730e-01 1.13177461e-01 1.13141227e-01 1.13105028e-01 1.13068863e-01 + 1.13032733e-01 1.12996637e-01 1.12960576e-01 1.12924550e-01 1.12888558e-01 + 1.12852600e-01 1.12816677e-01 1.12780788e-01 1.12744933e-01 1.12709112e-01 + 1.12673326e-01 1.12637574e-01 1.12601855e-01 1.12566171e-01 1.12530520e-01 + 1.12494904e-01 1.12459321e-01 1.12423772e-01 1.12388256e-01 1.12352774e-01 + 1.12317326e-01 1.12281911e-01 1.12246530e-01 1.12211182e-01 1.12175868e-01 + 1.12140587e-01 1.12105339e-01 1.12070125e-01 1.12034943e-01 1.11999795e-01 + 1.11964679e-01 1.11929597e-01 1.11894548e-01 1.11859532e-01 1.11824548e-01 + 1.11789597e-01 1.11754679e-01 1.11719794e-01 1.11684941e-01 1.11650121e-01 + 1.11615334e-01 1.11580579e-01 1.11545856e-01 1.11511166e-01 1.11476508e-01 + 1.11441883e-01 1.11407289e-01 1.11372728e-01 1.11338199e-01 1.11303703e-01 + 1.11269238e-01 1.11234805e-01 1.11200404e-01 1.11166035e-01 1.11131698e-01 + 1.11097393e-01 1.11063119e-01 1.11028877e-01 1.10994667e-01 1.10960489e-01 + 1.10926342e-01 1.10892226e-01 1.10858142e-01 1.10824089e-01 1.10790068e-01 + 1.10756078e-01 1.10722119e-01 1.10688192e-01 1.10654295e-01 1.10620430e-01 + 1.10586596e-01 1.10552793e-01 1.10519021e-01 1.10485279e-01 1.10451569e-01 + 1.10417890e-01 1.10384241e-01 1.10350623e-01 1.10317036e-01 1.10283479e-01 + 1.10249953e-01 1.10216458e-01 1.10182993e-01 1.10149558e-01 1.10116154e-01 + 1.10082780e-01 1.10049437e-01 1.10016124e-01 1.09982841e-01 1.09949588e-01 + 1.09916366e-01 1.09883174e-01 1.09850011e-01 1.09816879e-01 1.09783776e-01 + 1.09750704e-01 1.09717661e-01 1.09684648e-01 1.09651665e-01 1.09618712e-01 + 1.09585789e-01 1.09552895e-01 1.09520030e-01 1.09487196e-01 1.09454390e-01 + 1.09421615e-01 1.09388868e-01 1.09356151e-01 1.09323464e-01 1.09290805e-01 + 1.09258176e-01 1.09225576e-01 1.09193006e-01 1.09160464e-01 1.09127951e-01 + 1.09095468e-01 1.09063013e-01 1.09030588e-01 1.08998191e-01 1.08965824e-01 + 1.08933485e-01 1.08901174e-01 1.08868893e-01 1.08836640e-01 1.08804416e-01 + 1.08772220e-01 1.08740054e-01 1.08707915e-01 1.08675805e-01 1.08643724e-01 + 1.08611671e-01 1.08579646e-01 1.08547649e-01 1.08515681e-01 1.08483741e-01 + 1.08451829e-01 1.08419946e-01 1.08388090e-01 1.08356263e-01 1.08324463e-01 + 1.08292692e-01 1.08260948e-01 1.08229233e-01 1.08197545e-01 1.08165885e-01 + 1.08134253e-01 1.08102648e-01 1.08071072e-01 1.08039523e-01 1.08008001e-01 + 1.07976507e-01 1.07945041e-01 1.07913602e-01 1.07882191e-01 1.07850807e-01 + 1.07819450e-01 1.07788121e-01 1.07756819e-01 1.07725544e-01 1.07694296e-01 + 1.07663076e-01 1.07631883e-01 1.07600717e-01 1.07569578e-01 1.07538466e-01 + 1.07507381e-01 1.07476322e-01 1.07445291e-01 1.07414287e-01 1.07383309e-01 + 1.07352359e-01 1.07321435e-01 1.07290537e-01 1.07259667e-01 1.07228823e-01 + 1.07198005e-01 1.07167214e-01 1.07136450e-01 1.07105712e-01 1.07075001e-01 + 1.07044316e-01 1.07013657e-01 1.06983025e-01 1.06952419e-01 1.06921839e-01 + 1.06891286e-01 1.06860758e-01 1.06830257e-01 1.06799782e-01 1.06769333e-01 + 1.06738910e-01 1.06708513e-01 1.06678142e-01 1.06647796e-01 1.06617477e-01 + 1.06587184e-01 1.06556916e-01 1.06526674e-01 1.06496458e-01 1.06466268e-01 + 1.06436103e-01 1.06405964e-01 1.06375850e-01 1.06345762e-01 1.06315700e-01 + 1.06285663e-01 1.06255651e-01 1.06225665e-01 1.06195704e-01 1.06165769e-01 + 1.06135859e-01 1.06105974e-01 1.06076114e-01 1.06046280e-01 1.06016470e-01 + 1.05986686e-01 1.05956927e-01 1.05927193e-01 1.05897484e-01 1.05867800e-01 + 1.05838141e-01 1.05808507e-01 1.05778897e-01 1.05749313e-01 1.05719753e-01 + 1.05690218e-01 1.05660708e-01 1.05631223e-01 1.05601762e-01 1.05572326e-01 + 1.05542914e-01 1.05513528e-01 1.05484165e-01 1.05454827e-01 1.05425514e-01 + 1.05396225e-01 1.05366960e-01 1.05337720e-01 1.05308504e-01 1.05279312e-01 + 1.05250145e-01 1.05221002e-01 1.05191883e-01 1.05162788e-01 1.05133717e-01 + 1.05104671e-01 1.05075648e-01 1.05046650e-01 1.05017675e-01 1.04988725e-01 + 1.04959798e-01 1.04930896e-01 1.04902017e-01 1.04873162e-01 1.04844331e-01 + 1.04815523e-01 1.04786740e-01 1.04757980e-01 1.04729243e-01 1.04700531e-01 + 1.04671841e-01 1.04643176e-01 1.04614534e-01 1.04585916e-01 1.04557321e-01 + 1.04528749e-01 1.04500201e-01 1.04471676e-01 1.04443175e-01 1.04414697e-01 + 1.04386242e-01 1.04357810e-01 1.04329402e-01 1.04301017e-01 1.04272655e-01 + 1.04244316e-01 1.04216000e-01 1.04187707e-01 1.04159437e-01 1.04131191e-01 + 1.04102967e-01 1.04074766e-01 1.04046588e-01 1.04018433e-01 1.03990301e-01 + 1.03962192e-01 1.03934105e-01 1.03906041e-01 1.03878000e-01 1.03849982e-01 + 1.03821986e-01 1.03794013e-01 1.03766062e-01 1.03738134e-01 1.03710229e-01 + 1.03682346e-01 1.03654486e-01 1.03626648e-01 1.03598832e-01 1.03571039e-01 + 1.03543268e-01 1.03515520e-01 1.03487793e-01 1.03460089e-01 1.03432408e-01 + 1.03404748e-01 1.03377111e-01 1.03349496e-01 1.03321903e-01 1.03294332e-01 + 1.03266783e-01 1.03239256e-01 1.03211751e-01 1.03184268e-01 1.03156807e-01 + 1.03129368e-01 1.03101951e-01 1.03074556e-01 1.03047182e-01 1.03019831e-01 + 1.02992501e-01 1.02965192e-01 1.02937906e-01 1.02910641e-01 1.02883398e-01 + 1.02856177e-01 1.02828977e-01 1.02801798e-01 1.02774642e-01 1.02747506e-01 + 1.02720392e-01 1.02693300e-01 1.02666229e-01 1.02639180e-01 1.02612151e-01 + 1.02585145e-01 1.02558159e-01 1.02531195e-01 1.02504252e-01 1.02477330e-01 + 1.02450430e-01 1.02423550e-01 1.02396692e-01 1.02369855e-01 1.02343039e-01 + 1.02316244e-01 1.02289470e-01 1.02262717e-01 1.02235985e-01 1.02209274e-01 + 1.02182584e-01 1.02155915e-01 1.02129267e-01 1.02102639e-01 1.02076033e-01 + 1.02049447e-01 1.02022882e-01 1.01996338e-01 1.01969814e-01 1.01943311e-01 + 1.01916829e-01 1.01890367e-01 1.01863926e-01 1.01837505e-01 1.01811106e-01 + 1.01784726e-01 1.01758367e-01 1.01732029e-01 1.01705711e-01 1.01679413e-01 + 1.01653136e-01 1.01626879e-01 1.01600643e-01 1.01574426e-01 1.01548230e-01 + 1.01522055e-01 1.01495899e-01 1.01469764e-01 1.01443649e-01 1.01417554e-01 + 1.01391479e-01 1.01365425e-01 1.01339390e-01 1.01313376e-01 1.01287381e-01 + 1.01261406e-01 1.01235452e-01 1.01209517e-01 1.01183603e-01 1.01157708e-01 + 1.01131833e-01 1.01105978e-01 1.01080143e-01 1.01054327e-01 1.01028532e-01 + 1.01002756e-01 1.00976999e-01 1.00951263e-01 1.00925546e-01 1.00899849e-01 + 1.00874171e-01 1.00848513e-01 1.00822875e-01 1.00797256e-01 1.00771656e-01 + 1.00746077e-01 1.00720516e-01 1.00694975e-01 1.00669454e-01 1.00643952e-01 + 1.00618469e-01 1.00593005e-01 1.00567561e-01 1.00542136e-01 1.00516731e-01 + 1.00491345e-01 1.00465978e-01 1.00440630e-01 1.00415301e-01 1.00389992e-01 + 1.00364701e-01 1.00339430e-01 1.00314178e-01 1.00288944e-01 1.00263730e-01 + 1.00238535e-01 1.00213359e-01 1.00188202e-01 1.00163064e-01 1.00137944e-01 + 1.00112844e-01 1.00087762e-01 1.00062700e-01 1.00037656e-01 1.00012631e-01 + 9.99876242e-02 9.99626366e-02 9.99376677e-02 9.99127176e-02 9.98877861e-02 + 9.98628732e-02 9.98379790e-02 9.98131034e-02 9.97882464e-02 9.97634079e-02 + 9.97385880e-02 9.97137866e-02 9.96890037e-02 9.96642393e-02 9.96394933e-02 + 9.96147657e-02 9.95900565e-02 9.95653657e-02 9.95406933e-02 9.95160392e-02 + 9.94914034e-02 9.94667859e-02 9.94421867e-02 9.94176057e-02 9.93930429e-02 + 9.93684983e-02 9.93439719e-02 9.93194636e-02 9.92949735e-02 9.92705015e-02 + 9.92460476e-02 9.92216117e-02 9.91971939e-02 9.91727940e-02 9.91484122e-02 + 9.91240484e-02 9.90997025e-02 9.90753745e-02 9.90510645e-02 9.90267723e-02 + 9.90024980e-02 9.89782415e-02 9.89540029e-02 9.89297821e-02 9.89055790e-02 + 9.88813937e-02 9.88572261e-02 9.88330763e-02 9.88089441e-02 9.87848296e-02 + 9.87607327e-02 9.87366535e-02 9.87125919e-02 9.86885478e-02 9.86645213e-02 + 9.86405124e-02 9.86165209e-02 9.85925470e-02 9.85685906e-02 9.85446516e-02 + 9.85207300e-02 9.84968258e-02 9.84729391e-02 9.84490697e-02 9.84252176e-02 + 9.84013829e-02 9.83775655e-02 9.83537654e-02 9.83299825e-02 9.83062169e-02 + 9.82824685e-02 9.82587374e-02 9.82350233e-02 9.82113265e-02 9.81876468e-02 + 9.81639842e-02 9.81403387e-02 9.81167103e-02 9.80930990e-02 9.80695047e-02 + 9.80459274e-02 9.80223671e-02 9.79988238e-02 9.79752974e-02 9.79517880e-02 + 9.79282955e-02 9.79048199e-02 9.78813611e-02 9.78579192e-02 9.78344942e-02 + 9.78110859e-02 9.77876945e-02 9.77643198e-02 9.77409619e-02 9.77176207e-02 + 9.76942963e-02 9.76709885e-02 9.76476974e-02 9.76244230e-02 9.76011651e-02 + 9.75779239e-02 9.75546993e-02 9.75314913e-02 9.75082999e-02 9.74851249e-02 + 9.74619665e-02 9.74388246e-02 9.74156991e-02 9.73925901e-02 9.73694976e-02 + 9.73464215e-02 9.73233617e-02 9.73003184e-02 9.72772914e-02 9.72542807e-02 + 9.72312864e-02 9.72083084e-02 9.71853467e-02 9.71624012e-02 9.71394719e-02 + 9.71165589e-02 9.70936621e-02 9.70707815e-02 9.70479171e-02 9.70250688e-02 + 9.70022366e-02 9.69794205e-02 9.69566206e-02 9.69338367e-02 9.69110688e-02 + 9.68883170e-02 9.68655813e-02 9.68428615e-02 9.68201577e-02 9.67974698e-02 + 9.67747979e-02 9.67521419e-02 9.67295019e-02 9.67068777e-02 9.66842693e-02 + 9.66616769e-02 9.66391002e-02 9.66165394e-02 9.65939943e-02 9.65714651e-02 + 9.65489516e-02 9.65264538e-02 9.65039718e-02 9.64815054e-02 9.64590547e-02 + 9.64366197e-02 9.64142004e-02 9.63917967e-02 9.63694086e-02 9.63470360e-02 + 9.63246791e-02 9.63023377e-02 9.62800118e-02 9.62577015e-02 9.62354067e-02 + 9.62131273e-02 9.61908635e-02 9.61686150e-02 9.61463820e-02 9.61241644e-02 + 9.61019623e-02 9.60797754e-02 9.60576040e-02 9.60354479e-02 9.60133071e-02 + 9.59911816e-02 9.59690714e-02 9.59469765e-02 9.59248968e-02 9.59028324e-02 + 9.58807832e-02 9.58587492e-02 9.58367303e-02 9.58147267e-02 9.57927382e-02 + 9.57707648e-02 9.57488065e-02 9.57268633e-02 9.57049352e-02 9.56830222e-02 + 9.56611242e-02 9.56392413e-02 9.56173733e-02 9.55955204e-02 9.55736824e-02 + 9.55518594e-02 9.55300513e-02 9.55082582e-02 9.54864799e-02 9.54647166e-02 + 9.54429681e-02 9.54212345e-02 9.53995157e-02 9.53778117e-02 9.53561226e-02 + 9.53344482e-02 9.53127886e-02 9.52911438e-02 9.52695137e-02 9.52478984e-02 + 9.52262977e-02 9.52047117e-02 9.51831404e-02 9.51615838e-02 9.51400418e-02 + 9.51185144e-02 9.50970016e-02 9.50755034e-02 9.50540198e-02 9.50325508e-02 + 9.50110963e-02 9.49896563e-02 9.49682308e-02 9.49468198e-02 9.49254233e-02 + 9.49040412e-02 9.48826736e-02 9.48613204e-02 9.48399817e-02 9.48186573e-02 + 9.47973473e-02 9.47760516e-02 9.47547703e-02 9.47335034e-02 9.47122507e-02 + 9.46910123e-02 9.46697883e-02 9.46485784e-02 9.46273829e-02 9.46062015e-02 + 9.45850344e-02 9.45638815e-02 9.45427428e-02 9.45216182e-02 9.45005078e-02 + 9.44794116e-02 9.44583294e-02 9.44372614e-02 9.44162074e-02 9.43951676e-02 + 9.43741418e-02 9.43531300e-02 9.43321323e-02 9.43111485e-02 9.42901788e-02 + 9.42692231e-02 9.42482813e-02 9.42273534e-02 9.42064395e-02 9.41855396e-02 + 9.41646535e-02 9.41437813e-02 9.41229230e-02 9.41020785e-02 9.40812479e-02 + 9.40604311e-02 9.40396282e-02 9.40188390e-02 9.39980636e-02 9.39773020e-02 + 9.39565541e-02 9.39358200e-02 9.39150995e-02 9.38943928e-02 9.38736998e-02 + 9.38530204e-02 9.38323548e-02 9.38117027e-02 9.37910643e-02 9.37704395e-02 + 9.37498283e-02 9.37292307e-02 9.37086466e-02 9.36880762e-02 9.36675192e-02 + 9.36469758e-02 9.36264459e-02 9.36059295e-02 9.35854265e-02 9.35649371e-02 + 9.35444611e-02 9.35239985e-02 9.35035493e-02 9.34831136e-02 9.34626912e-02 + 9.34422823e-02 9.34218866e-02 9.34015044e-02 9.33811355e-02 9.33607798e-02 + 9.33404375e-02 9.33201085e-02 9.32997928e-02 9.32794903e-02 9.32592011e-02 + 9.32389251e-02 9.32186624e-02 9.31984128e-02 9.31781764e-02 9.31579532e-02 + 9.31377432e-02 9.31175463e-02 9.30973626e-02 9.30771919e-02 9.30570344e-02 + 9.30368899e-02 9.30167586e-02 9.29966403e-02 9.29765350e-02 9.29564428e-02 + 9.29363636e-02 9.29162974e-02 9.28962442e-02 9.28762040e-02 9.28561768e-02 + 9.28361624e-02 9.28161611e-02 9.27961726e-02 9.27761971e-02 9.27562344e-02 + 9.27362847e-02 9.27163478e-02 9.26964237e-02 9.26765125e-02 9.26566141e-02 + 9.26367286e-02 9.26168558e-02 9.25969958e-02 9.25771486e-02 9.25573141e-02 + 9.25374924e-02 9.25176834e-02 9.24978871e-02 9.24781036e-02 9.24583327e-02 + 9.24385745e-02 9.24188289e-02 9.23990960e-02 9.23793758e-02 9.23596681e-02 + 9.23399731e-02 9.23202907e-02 9.23006208e-02 9.22809635e-02 9.22613188e-02 + 9.22416866e-02 9.22220669e-02 9.22024597e-02 9.21828651e-02 9.21632829e-02 + 9.21437132e-02 9.21241560e-02 9.21046112e-02 9.20850788e-02 9.20655589e-02 + 9.20460514e-02 9.20265563e-02 9.20070735e-02 9.19876031e-02 9.19681451e-02 + 9.19486994e-02 9.19292661e-02 9.19098451e-02 9.18904363e-02 9.18710399e-02 + 9.18516557e-02 9.18322838e-02 9.18129242e-02 9.17935768e-02 9.17742416e-02 + 9.17549186e-02 9.17356079e-02 9.17163093e-02 9.16970229e-02 9.16777486e-02 + 9.16584865e-02 9.16392366e-02 9.16199987e-02 9.16007730e-02 9.15815594e-02 + 9.15623578e-02 9.15431684e-02 9.15239910e-02 9.15048256e-02 9.14856723e-02 + 9.14665310e-02 9.14474017e-02 9.14282844e-02 9.14091791e-02 9.13900857e-02 + 9.13710043e-02 9.13519349e-02 9.13328774e-02 9.13138318e-02 9.12947982e-02 + 9.12757764e-02 9.12567665e-02 9.12377685e-02 9.12187823e-02 9.11998080e-02 + 9.11808456e-02 9.11618949e-02 9.11429561e-02 9.11240290e-02 9.11051138e-02 + 9.10862103e-02 9.10673186e-02 9.10484386e-02 9.10295704e-02 9.10107139e-02 + 9.09918691e-02 9.09730360e-02 9.09542146e-02 9.09354049e-02 9.09166069e-02 + 9.08978205e-02 9.08790457e-02 9.08602826e-02 9.08415311e-02 9.08227911e-02 + 9.08040628e-02 9.07853461e-02 9.07666409e-02 9.07479473e-02 9.07292652e-02 + 9.07105947e-02 9.06919357e-02 9.06732882e-02 9.06546522e-02 9.06360277e-02 + 9.06174146e-02 9.05988131e-02 9.05802229e-02 9.05616442e-02 9.05430770e-02 + 9.05245211e-02 9.05059767e-02 9.04874436e-02 9.04689219e-02 9.04504116e-02 + 9.04319127e-02 9.04134251e-02 9.03949488e-02 9.03764839e-02 9.03580303e-02 + 9.03395879e-02 9.03211569e-02 9.03027371e-02 9.02843286e-02 9.02659313e-02 + 9.02475453e-02 9.02291706e-02 9.02108070e-02 9.01924546e-02 9.01741135e-02 + 9.01557835e-02 9.01374647e-02 9.01191571e-02 9.01008606e-02 9.00825752e-02 + 9.00643010e-02 9.00460379e-02 9.00277859e-02 9.00095450e-02 8.99913152e-02 + 8.99730965e-02 8.99548888e-02 8.99366921e-02 8.99185065e-02 8.99003320e-02 + 8.98821684e-02 8.98640159e-02 8.98458743e-02 8.98277437e-02 8.98096241e-02 + 8.97915155e-02 8.97734178e-02 8.97553311e-02 8.97372552e-02 8.97191903e-02 + 8.97011363e-02 8.96830932e-02 8.96650610e-02 8.96470396e-02 8.96290291e-02 + 8.96110295e-02 8.95930407e-02 8.95750627e-02 8.95570956e-02 8.95391392e-02 + 8.95211937e-02 8.95032589e-02 8.94853349e-02 8.94674217e-02 8.94495192e-02 + 8.94316275e-02 8.94137465e-02 8.93958762e-02 8.93780167e-02 8.93601678e-02 + 8.93423296e-02 8.93245021e-02 8.93066853e-02 8.92888791e-02 8.92710836e-02 + 8.92532987e-02 8.92355244e-02 8.92177608e-02 8.92000077e-02 8.91822653e-02 + 8.91645334e-02 8.91468121e-02 8.91291014e-02 8.91114012e-02 8.90937115e-02 + 8.90760324e-02 8.90583638e-02 8.90407057e-02 8.90230582e-02 8.90054211e-02 + 8.89877945e-02 8.89701783e-02 8.89525726e-02 8.89349774e-02 8.89173926e-02 + 8.88998182e-02 8.88822542e-02 8.88647007e-02 8.88471575e-02 8.88296247e-02 + 8.88121023e-02 8.87945903e-02 8.87770886e-02 8.87595973e-02 8.87421163e-02 + 8.87246456e-02 8.87071853e-02 8.86897352e-02 8.86722954e-02 8.86548660e-02 + 8.86374468e-02 8.86200378e-02 8.86026391e-02 8.85852507e-02 8.85678725e-02 + 8.85505045e-02 8.85331467e-02 8.85157991e-02 8.84984618e-02 8.84811346e-02 + 8.84638176e-02 8.84465107e-02 8.84292140e-02 8.84119274e-02 8.83946510e-02 + 8.83773847e-02 8.83601285e-02 8.83428825e-02 8.83256465e-02 8.83084206e-02 + 8.82912047e-02 8.82739990e-02 8.82568033e-02 8.82396176e-02 8.82224420e-02 + 8.82052764e-02 8.81881208e-02 8.81709752e-02 8.81538396e-02 8.81367140e-02 + 8.81195984e-02 8.81024927e-02 8.80853970e-02 8.80683113e-02 8.80512355e-02 + 8.80341696e-02 8.80171137e-02 8.80000676e-02 8.79830314e-02 8.79660052e-02 + 8.79489888e-02 8.79319823e-02 8.79149857e-02 8.78979989e-02 8.78810219e-02 + 8.78640548e-02 8.78470975e-02 8.78301500e-02 8.78132123e-02 8.77962845e-02 + 8.77793664e-02 8.77624580e-02 8.77455595e-02 8.77286707e-02 8.77117916e-02 + 8.76949223e-02 8.76780628e-02 8.76612129e-02 8.76443728e-02 8.76275423e-02 + 8.76107216e-02 8.75939105e-02 8.75771091e-02 8.75603174e-02 8.75435353e-02 + 8.75267629e-02 8.75100001e-02 8.74932469e-02 8.74765033e-02 8.74597694e-02 + 8.74430451e-02 8.74263303e-02 8.74096251e-02 8.73929296e-02 8.73762435e-02 + 8.73595670e-02 8.73429001e-02 8.73262427e-02 8.73095948e-02 8.72929565e-02 + 8.72763276e-02 8.72597083e-02 8.72430984e-02 8.72264981e-02 8.72099072e-02 + 8.71933257e-02 8.71767537e-02 8.71601912e-02 8.71436381e-02 8.71270944e-02 + 8.71105602e-02 8.70940353e-02 8.70775199e-02 8.70610138e-02 8.70445172e-02 + 8.70280299e-02 8.70115519e-02 8.69950834e-02 8.69786241e-02 8.69621742e-02 + 8.69457337e-02 8.69293024e-02 8.69128805e-02 8.68964679e-02 8.68800646e-02 + 8.68636705e-02 8.68472857e-02 8.68309103e-02 8.68145440e-02 8.67981870e-02 + 8.67818393e-02 8.67655008e-02 8.67491715e-02 8.67328514e-02 8.67165406e-02 + 8.67002389e-02 8.66839464e-02 8.66676631e-02 8.66513890e-02 8.66351240e-02 + 8.66188682e-02 8.66026216e-02 8.65863841e-02 8.65701557e-02 8.65539364e-02 + 8.65377263e-02 8.65215252e-02 8.65053333e-02 8.64891504e-02 8.64729766e-02 + 8.64568119e-02 8.64406563e-02 8.64245097e-02 8.64083721e-02 8.63922436e-02 + 8.63761241e-02 8.63600136e-02 8.63439122e-02 8.63278197e-02 8.63117363e-02 + 8.62956618e-02 8.62795963e-02 8.62635398e-02 8.62474922e-02 8.62314536e-02 + 8.62154239e-02 8.61994032e-02 8.61833914e-02 8.61673885e-02 8.61513945e-02 + 8.61354094e-02 8.61194332e-02 8.61034659e-02 8.60875075e-02 8.60715580e-02 + 8.60556173e-02 8.60396855e-02 8.60237625e-02 8.60078483e-02 8.59919430e-02 + 8.59760465e-02 8.59601588e-02 8.59442800e-02 8.59284099e-02 8.59125486e-02 + 8.58966961e-02 8.58808523e-02 8.58650173e-02 8.58491911e-02 8.58333736e-02 + 8.58175649e-02 8.58017649e-02 8.57859736e-02 8.57701911e-02 8.57544172e-02 + 8.57386520e-02 8.57228956e-02 8.57071478e-02 8.56914087e-02 8.56756782e-02 + 8.56599565e-02 8.56442433e-02 8.56285389e-02 8.56128430e-02 8.55971558e-02 + 8.55814772e-02 8.55658072e-02 8.55501458e-02 8.55344930e-02 8.55188488e-02 + 8.55032132e-02 8.54875862e-02 8.54719677e-02 8.54563578e-02 8.54407564e-02 + 8.54251636e-02 8.54095793e-02 8.53940035e-02 8.53784363e-02 8.53628775e-02 + 8.53473273e-02 8.53317855e-02 8.53162523e-02 8.53007275e-02 8.52852112e-02 + 8.52697034e-02 8.52542040e-02 8.52387130e-02 8.52232305e-02 8.52077565e-02 + 8.51922909e-02 8.51768336e-02 8.51613848e-02 8.51459444e-02 8.51305124e-02 + 8.51150888e-02 8.50996736e-02 8.50842667e-02 8.50688682e-02 8.50534780e-02 + 8.50380963e-02 8.50227228e-02 8.50073577e-02 8.49920009e-02 8.49766524e-02 + 8.49613123e-02 8.49459804e-02 8.49306569e-02 8.49153416e-02 8.49000346e-02 + 8.48847359e-02 8.48694455e-02 8.48541633e-02 8.48388893e-02 8.48236237e-02 + 8.48083662e-02 8.47931170e-02 8.47778760e-02 8.47626432e-02 8.47474187e-02 + 8.47322023e-02 8.47169941e-02 8.47017941e-02 8.46866023e-02 8.46714187e-02 + 8.46562432e-02 8.46410759e-02 8.46259167e-02 8.46107657e-02 8.45956228e-02 + 8.45804880e-02 8.45653614e-02 8.45502428e-02 8.45351324e-02 8.45200301e-02 + 8.45049358e-02 8.44898497e-02 8.44747716e-02 8.44597016e-02 8.44446397e-02 + 8.44295858e-02 8.44145399e-02 8.43995021e-02 8.43844724e-02 8.43694506e-02 + 8.43544369e-02 8.43394312e-02 8.43244335e-02 8.43094438e-02 8.42944621e-02 + 8.42794883e-02 8.42645226e-02 8.42495648e-02 8.42346150e-02 8.42196731e-02 + 8.42047392e-02 8.41898132e-02 8.41748952e-02 8.41599851e-02 8.41450829e-02 + 8.41301886e-02 8.41153022e-02 8.41004238e-02 8.40855532e-02 8.40706905e-02 + 8.40558357e-02 8.40409887e-02 8.40261496e-02 8.40113184e-02 8.39964950e-02 + 8.39816795e-02 8.39668718e-02 8.39520719e-02 8.39372799e-02 8.39224957e-02 + 8.39077193e-02 8.38929507e-02 8.38781898e-02 8.38634368e-02 8.38486916e-02 + 8.38339541e-02 8.38192244e-02 8.38045025e-02 8.37897883e-02 8.37750818e-02 + 8.37603831e-02 8.37456922e-02 8.37310089e-02 8.37163334e-02 8.37016656e-02 + 8.36870055e-02 8.36723531e-02 8.36577084e-02 8.36430714e-02 8.36284421e-02 + 8.36138204e-02 8.35992064e-02 8.35846001e-02 8.35700014e-02 8.35554104e-02 + 8.35408270e-02 8.35262512e-02 8.35116831e-02 8.34971226e-02 8.34825697e-02 + 8.34680244e-02 8.34534867e-02 8.34389566e-02 8.34244341e-02 8.34099191e-02 + 8.33954118e-02 8.33809120e-02 8.33664197e-02 8.33519351e-02 8.33374579e-02 + 8.33229883e-02 8.33085263e-02 8.32940718e-02 8.32796248e-02 8.32651853e-02 + 8.32507533e-02 8.32363288e-02 8.32219118e-02 8.32075023e-02 8.31931003e-02 + 8.31787058e-02 8.31643187e-02 8.31499391e-02 8.31355669e-02 8.31212022e-02 + 8.31068450e-02 8.30924951e-02 8.30781528e-02 8.30638178e-02 8.30494902e-02 + 8.30351701e-02 8.30208574e-02 8.30065520e-02 8.29922541e-02 8.29779635e-02 + 8.29636804e-02 8.29494046e-02 8.29351361e-02 8.29208751e-02 8.29066213e-02 + 8.28923750e-02 8.28781359e-02 8.28639042e-02 8.28496799e-02 8.28354628e-02 + 8.28212531e-02 8.28070507e-02 8.27928556e-02 8.27786678e-02 8.27644872e-02 + 8.27503140e-02 8.27361480e-02 8.27219893e-02 8.27078379e-02 8.26936938e-02 + 8.26795569e-02 8.26654272e-02 8.26513048e-02 8.26371896e-02 8.26230816e-02 + 8.26089809e-02 8.25948874e-02 8.25808011e-02 8.25667220e-02 8.25526501e-02 + 8.25385854e-02 8.25245279e-02 8.25104775e-02 8.24964344e-02 8.24823984e-02 + 8.24683695e-02 8.24543479e-02 8.24403333e-02 8.24263259e-02 8.24123257e-02 + 8.23983326e-02 8.23843466e-02 8.23703677e-02 8.23563960e-02 8.23424313e-02 + 8.23284737e-02 8.23145233e-02 8.23005799e-02 8.22866436e-02 8.22727144e-02 + 8.22587923e-02 8.22448772e-02 8.22309692e-02 8.22170683e-02 8.22031744e-02 + 8.21892875e-02 8.21754077e-02 8.21615349e-02 8.21476691e-02 8.21338103e-02 + 8.21199586e-02 8.21061138e-02 8.20922761e-02 8.20784453e-02 8.20646216e-02 + 8.20508048e-02 8.20369950e-02 8.20231922e-02 8.20093963e-02 8.19956074e-02 + 8.19818254e-02 8.19680504e-02 8.19542823e-02 8.19405212e-02 8.19267670e-02 + 8.19130197e-02 8.18992794e-02 8.18855459e-02 8.18718194e-02 8.18580997e-02 + 8.18443870e-02 8.18306811e-02 8.18169822e-02 8.18032901e-02 8.17896048e-02 + 8.17759265e-02 8.17622550e-02 8.17485903e-02 8.17349326e-02 8.17212816e-02 + 8.17076375e-02 8.16940002e-02 8.16803697e-02 8.16667461e-02 8.16531293e-02 + 8.16395193e-02 8.16259161e-02 8.16123197e-02 8.15987300e-02 8.15851472e-02 + 8.15715712e-02 8.15580019e-02 8.15444394e-02 8.15308836e-02 8.15173346e-02 + 8.15037924e-02 8.14902569e-02 8.14767282e-02 8.14632062e-02 8.14496909e-02 + 8.14361823e-02 8.14226805e-02 8.14091854e-02 8.13956970e-02 8.13822153e-02 + 8.13687402e-02 8.13552719e-02 8.13418103e-02 8.13283553e-02 8.13149070e-02 + 8.13014654e-02 8.12880305e-02 8.12746022e-02 8.12611805e-02 8.12477656e-02 + 8.12343572e-02 8.12209555e-02 8.12075604e-02 8.11941719e-02 8.11807901e-02 + 8.11674149e-02 8.11540463e-02 8.11406843e-02 8.11273288e-02 8.11139800e-02 + 8.11006378e-02 8.10873021e-02 8.10739731e-02 8.10606506e-02 8.10473346e-02 + 8.10340252e-02 8.10207224e-02 8.10074261e-02 8.09941364e-02 8.09808532e-02 + 8.09675765e-02 8.09543064e-02 8.09410428e-02 8.09277857e-02 8.09145351e-02 + 8.09012911e-02 8.08880535e-02 8.08748224e-02 8.08615978e-02 8.08483797e-02 + 8.08351681e-02 8.08219630e-02 8.08087643e-02 8.07955721e-02 8.07823863e-02 + 8.07692070e-02 8.07560342e-02 8.07428678e-02 8.07297078e-02 8.07165542e-02 + 8.07034071e-02 8.06902664e-02 8.06771322e-02 8.06640043e-02 8.06508829e-02 + 8.06377678e-02 8.06246592e-02 8.06115569e-02 8.05984610e-02 8.05853715e-02 + 8.05722884e-02 8.05592116e-02 8.05461412e-02 8.05330772e-02 8.05200195e-02 + 8.05069682e-02 8.04939232e-02 8.04808846e-02 8.04678523e-02 8.04548263e-02 + 8.04418066e-02 8.04287933e-02 8.04157863e-02 8.04027856e-02 8.03897912e-02 + 8.03768031e-02 8.03638212e-02 8.03508457e-02 8.03378765e-02 8.03249135e-02 + 8.03119568e-02 8.02990064e-02 8.02860622e-02 8.02731243e-02 8.02601926e-02 + 8.02472672e-02 8.02343481e-02 8.02214351e-02 8.02085284e-02 8.01956280e-02 + 8.01827337e-02 8.01698457e-02 8.01569639e-02 8.01440883e-02 8.01312189e-02 + 8.01183557e-02 8.01054986e-02 8.00926478e-02 8.00798032e-02 8.00669647e-02 + 8.00541324e-02 8.00413063e-02 8.00284863e-02 8.00156725e-02 8.00028649e-02 + 7.99900634e-02 7.99772680e-02 7.99644788e-02 7.99516957e-02 7.99389187e-02 + 7.99261479e-02 7.99133832e-02 7.99006246e-02 7.98878721e-02 7.98751257e-02 + 7.98623854e-02 7.98496512e-02 7.98369231e-02 7.98242011e-02 7.98114851e-02 + 7.97987753e-02 7.97860715e-02 7.97733737e-02 7.97606821e-02 7.97479965e-02 + 7.97353169e-02 7.97226434e-02 7.97099759e-02 7.96973145e-02 7.96846590e-02 + 7.96720097e-02 7.96593663e-02 7.96467290e-02 7.96340976e-02 7.96214723e-02 + 7.96088530e-02 7.95962397e-02 7.95836323e-02 7.95710310e-02 7.95584356e-02 + 7.95458463e-02 7.95332629e-02 7.95206854e-02 7.95081140e-02 7.94955485e-02 + 7.94829889e-02 7.94704353e-02 7.94578877e-02 7.94453459e-02 7.94328102e-02 + 7.94202803e-02 7.94077564e-02 7.93952384e-02 7.93827263e-02 7.93702202e-02 + 7.93577199e-02 7.93452256e-02 7.93327371e-02 7.93202546e-02 7.93077779e-02 + 7.92953071e-02 7.92828423e-02 7.92703832e-02 7.92579301e-02 7.92454828e-02 + 7.92330414e-02 7.92206058e-02 7.92081761e-02 7.91957523e-02 7.91833343e-02 + 7.91709221e-02 7.91585157e-02 7.91461152e-02 7.91337206e-02 7.91213317e-02 + 7.91089486e-02 7.90965714e-02 7.90842000e-02 7.90718344e-02 7.90594746e-02 + 7.90471205e-02 7.90347723e-02 7.90224298e-02 7.90100932e-02 7.89977623e-02 + 7.89854371e-02 7.89731178e-02 7.89608042e-02 7.89484964e-02 7.89361943e-02 + 7.89238979e-02 7.89116073e-02 7.88993225e-02 7.88870434e-02 7.88747700e-02 + 7.88625023e-02 7.88502404e-02 7.88379842e-02 7.88257337e-02 7.88134889e-02 + 7.88012498e-02 7.87890164e-02 7.87767887e-02 7.87645667e-02 7.87523504e-02 + 7.87401398e-02 7.87279348e-02 7.87157355e-02 7.87035419e-02 7.86913540e-02 + 7.86791717e-02 7.86669951e-02 7.86548241e-02 7.86426588e-02 7.86304991e-02 + 7.86183450e-02 7.86061966e-02 7.85940538e-02 7.85819167e-02 7.85697851e-02 + 7.85576592e-02 7.85455389e-02 7.85334242e-02 7.85213151e-02 7.85092116e-02 + 7.84971137e-02 7.84850214e-02 7.84729347e-02 7.84608535e-02 7.84487780e-02 + 7.84367080e-02 7.84246436e-02 7.84125847e-02 7.84005314e-02 7.83884837e-02 + 7.83764415e-02 7.83644048e-02 7.83523737e-02 7.83403482e-02 7.83283282e-02 + 7.83163137e-02 7.83043047e-02 7.82923013e-02 7.82803034e-02 7.82683110e-02 + 7.82563241e-02 7.82443427e-02 7.82323668e-02 7.82203964e-02 7.82084315e-02 + 7.81964721e-02 7.81845182e-02 7.81725697e-02 7.81606268e-02 7.81486893e-02 + 7.81367572e-02 7.81248307e-02 7.81129096e-02 7.81009939e-02 7.80890837e-02 + 7.80771790e-02 7.80652797e-02 7.80533858e-02 7.80414974e-02 7.80296144e-02 + 7.80177368e-02 7.80058646e-02 7.79939979e-02 7.79821366e-02 7.79702807e-02 + 7.79584302e-02 7.79465851e-02 7.79347454e-02 7.79229111e-02 7.79110821e-02 + 7.78992586e-02 7.78874404e-02 7.78756277e-02 7.78638202e-02 7.78520182e-02 + 7.78402215e-02 7.78284302e-02 7.78166443e-02 7.78048637e-02 7.77930884e-02 + 7.77813185e-02 7.77695539e-02 7.77577947e-02 7.77460408e-02 7.77342922e-02 + 7.77225490e-02 7.77108111e-02 7.76990785e-02 7.76873512e-02 7.76756292e-02 + 7.76639125e-02 7.76522011e-02 7.76404950e-02 7.76287942e-02 7.76170987e-02 + 7.76054085e-02 7.75937236e-02 7.75820439e-02 7.75703695e-02 7.75587004e-02 + 7.75470365e-02 7.75353780e-02 7.75237246e-02 7.75120765e-02 7.75004337e-02 + 7.74887961e-02 7.74771637e-02 7.74655366e-02 7.74539147e-02 7.74422981e-02 + 7.74306867e-02 7.74190805e-02 7.74074795e-02 7.73958837e-02 7.73842931e-02 + 7.73727078e-02 7.73611276e-02 7.73495527e-02 7.73379829e-02 7.73264183e-02 + 7.73148589e-02 7.73033047e-02 7.72917557e-02 7.72802118e-02 7.72686732e-02 + 7.72571396e-02 7.72456113e-02 7.72340881e-02 7.72225701e-02 7.72110572e-02 + 7.71995494e-02 7.71880468e-02 7.71765494e-02 7.71650571e-02 7.71535699e-02 + 7.71420878e-02 7.71306109e-02 7.71191391e-02 7.71076724e-02 7.70962108e-02 + 7.70847543e-02 7.70733030e-02 7.70618567e-02 7.70504155e-02 7.70389795e-02 + 7.70275485e-02 7.70161226e-02 7.70047018e-02 7.69932860e-02 7.69818754e-02 + 7.69704698e-02 7.69590693e-02 7.69476738e-02 7.69362834e-02 7.69248981e-02 + 7.69135178e-02 7.69021426e-02 7.68907724e-02 7.68794073e-02 7.68680472e-02 + 7.68566921e-02 7.68453420e-02 7.68339970e-02 7.68226570e-02 7.68113221e-02 + 7.67999921e-02 7.67886672e-02 7.67773472e-02 7.67660323e-02 7.67547224e-02 + 7.67434174e-02 7.67321175e-02 7.67208226e-02 7.67095326e-02 7.66982476e-02 + 7.66869676e-02 7.66756926e-02 7.66644225e-02 7.66531574e-02 7.66418973e-02 + 7.66306422e-02 7.66193920e-02 7.66081467e-02 7.65969064e-02 7.65856711e-02 + 7.65744407e-02 7.65632152e-02 7.65519946e-02 7.65407790e-02 7.65295684e-02 + 7.65183626e-02 7.65071618e-02 7.64959659e-02 7.64847749e-02 7.64735888e-02 + 7.64624076e-02 7.64512313e-02 7.64400599e-02 7.64288935e-02 7.64177319e-02 + 7.64065752e-02 7.63954233e-02 7.63842764e-02 7.63731343e-02 7.63619972e-02 + 7.63508648e-02 7.63397374e-02 7.63286148e-02 7.63174971e-02 7.63063842e-02 + 7.62952762e-02 7.62841730e-02 7.62730747e-02 7.62619813e-02 7.62508926e-02 + 7.62398088e-02 7.62287298e-02 7.62176557e-02 7.62065864e-02 7.61955219e-02 + 7.61844622e-02 7.61734074e-02 7.61623573e-02 7.61513121e-02 7.61402716e-02 + 7.61292360e-02 7.61182052e-02 7.61071791e-02 7.60961579e-02 7.60851414e-02 + 7.60741297e-02 7.60631228e-02 7.60521207e-02 7.60411233e-02 7.60301307e-02 + 7.60191429e-02 7.60081598e-02 7.59971815e-02 7.59862080e-02 7.59752392e-02 + 7.59642751e-02 7.59533158e-02 7.59423613e-02 7.59314115e-02 7.59204664e-02 + 7.59095260e-02 7.58985904e-02 7.58876595e-02 7.58767333e-02 7.58658119e-02 + 7.58548951e-02 7.58439831e-02 7.58330758e-02 7.58221731e-02 7.58112752e-02 + 7.58003820e-02 7.57894935e-02 7.57786096e-02 7.57677305e-02 7.57568560e-02 + 7.57459862e-02 7.57351211e-02 7.57242607e-02 7.57134049e-02 7.57025538e-02 + 7.56917074e-02 7.56808656e-02 7.56700285e-02 7.56591961e-02 7.56483683e-02 + 7.56375451e-02 7.56267266e-02 7.56159127e-02 7.56051035e-02 7.55942989e-02 + 7.55834989e-02 7.55727035e-02 7.55619128e-02 7.55511267e-02 7.55403452e-02 + 7.55295684e-02 7.55187961e-02 7.55080285e-02 7.54972654e-02 7.54865070e-02 + 7.54757531e-02 7.54650039e-02 7.54542592e-02 7.54435192e-02 7.54327837e-02 + 7.54220528e-02 7.54113264e-02 7.54006047e-02 7.53898875e-02 7.53791749e-02 + 7.53684669e-02 7.53577634e-02 7.53470644e-02 7.53363701e-02 7.53256803e-02 + 7.53149950e-02 7.53043143e-02 7.52936381e-02 7.52829665e-02 7.52722994e-02 + 7.52616368e-02 7.52509787e-02 7.52403252e-02 7.52296762e-02 7.52190318e-02 + 7.52083918e-02 7.51977564e-02 7.51871255e-02 7.51764990e-02 7.51658771e-02 + 7.51552597e-02 7.51446468e-02 7.51340384e-02 7.51234344e-02 7.51128350e-02 + 7.51022400e-02 7.50916496e-02 7.50810636e-02 7.50704821e-02 7.50599050e-02 + 7.50493324e-02 7.50387643e-02 7.50282007e-02 7.50176415e-02 7.50070868e-02 + 7.49965365e-02 7.49859907e-02 7.49754493e-02 7.49649123e-02 7.49543799e-02 + 7.49438518e-02 7.49333282e-02 7.49228090e-02 7.49122942e-02 7.49017839e-02 + 7.48912780e-02 7.48807765e-02 7.48702794e-02 7.48597868e-02 7.48492985e-02 + 7.48388147e-02 7.48283352e-02 7.48178602e-02 7.48073895e-02 7.47969233e-02 + 7.47864614e-02 7.47760040e-02 7.47655509e-02 7.47551022e-02 7.47446579e-02 + 7.47342179e-02 7.47237824e-02 7.47133512e-02 7.47029243e-02 7.46925019e-02 + 7.46820838e-02 7.46716700e-02 7.46612606e-02 7.46508556e-02 7.46404549e-02 + 7.46300586e-02 7.46196666e-02 7.46092789e-02 7.45988956e-02 7.45885166e-02 + 7.45781419e-02 7.45677716e-02 7.45574056e-02 7.45470439e-02 7.45366865e-02 + 7.45263335e-02 7.45159847e-02 7.45056403e-02 7.44953002e-02 7.44849644e-02 + 7.44746329e-02 7.44643056e-02 7.44539827e-02 7.44436641e-02 7.44333497e-02 + 7.44230397e-02 7.44127339e-02 7.44024324e-02 7.43921352e-02 7.43818423e-02 + 7.43715536e-02 7.43612692e-02 7.43509890e-02 7.43407132e-02 7.43304416e-02 + 7.43201742e-02 7.43099111e-02 7.42996522e-02 7.42893976e-02 7.42791473e-02 + 7.42689011e-02 7.42586593e-02 7.42484216e-02 7.42381882e-02 7.42279590e-02 + 7.42177341e-02 7.42075133e-02 7.41972968e-02 7.41870845e-02 7.41768765e-02 + 7.41666726e-02 7.41564729e-02 7.41462775e-02 7.41360863e-02 7.41258992e-02 + 7.41157164e-02 7.41055377e-02 7.40953633e-02 7.40851930e-02 7.40750269e-02 + 7.40648650e-02 7.40547073e-02 7.40445538e-02 7.40344044e-02 7.40242592e-02 + 7.40141182e-02 7.40039814e-02 7.39938487e-02 7.39837202e-02 7.39735958e-02 + 7.39634756e-02 7.39533595e-02 7.39432476e-02 7.39331398e-02 7.39230362e-02 + 7.39129367e-02 7.39028414e-02 7.38927502e-02 7.38826631e-02 7.38725802e-02 + 7.38625014e-02 7.38524267e-02 7.38423561e-02 7.38322896e-02 7.38222273e-02 + 7.38121691e-02 7.38021150e-02 7.37920650e-02 7.37820191e-02 7.37719773e-02 + 7.37619396e-02 7.37519060e-02 7.37418765e-02 7.37318510e-02 7.37218297e-02 + 7.37118125e-02 7.37017993e-02 7.36917902e-02 7.36817852e-02 7.36717843e-02 + 7.36617874e-02 7.36517946e-02 7.36418059e-02 7.36318212e-02 7.36218406e-02 + 7.36118641e-02 7.36018916e-02 7.35919231e-02 7.35819587e-02 7.35719984e-02 + 7.35620421e-02 7.35520898e-02 7.35421416e-02 7.35321974e-02 7.35222572e-02 + 7.35123211e-02 7.35023890e-02 7.34924610e-02 7.34825369e-02 7.34726169e-02 + 7.34627009e-02 7.34527889e-02 7.34428809e-02 7.34329769e-02 7.34230769e-02 + 7.34131809e-02 7.34032890e-02 7.33934010e-02 7.33835170e-02 7.33736370e-02 + 7.33637610e-02 7.33538890e-02 7.33440210e-02 7.33341569e-02 7.33242969e-02 + 7.33144408e-02 7.33045886e-02 7.32947405e-02 7.32848963e-02 7.32750561e-02 + 7.32652199e-02 7.32553876e-02 7.32455592e-02 7.32357348e-02 7.32259144e-02 + 7.32160979e-02 7.32062854e-02 7.31964768e-02 7.31866722e-02 7.31768715e-02 + 7.31670747e-02 7.31572819e-02 7.31474930e-02 7.31377080e-02 7.31279269e-02 + 7.31181498e-02 7.31083766e-02 7.30986073e-02 7.30888419e-02 7.30790805e-02 + 7.30693229e-02 7.30595693e-02 7.30498195e-02 7.30400737e-02 7.30303318e-02 + 7.30205937e-02 7.30108596e-02 7.30011293e-02 7.29914030e-02 7.29816805e-02 + 7.29719619e-02 7.29622472e-02 7.29525364e-02 7.29428294e-02 7.29331263e-02 + 7.29234271e-02 7.29137318e-02 7.29040403e-02 7.28943527e-02 7.28846689e-02 + 7.28749890e-02 7.28653130e-02 7.28556408e-02 7.28459725e-02 7.28363080e-02 + 7.28266473e-02 7.28169905e-02 7.28073376e-02 7.27976885e-02 7.27880432e-02 + 7.27784017e-02 7.27687641e-02 7.27591303e-02 7.27495003e-02 7.27398742e-02 + 7.27302519e-02 7.27206334e-02 7.27110187e-02 7.27014078e-02 7.26918007e-02 + 7.26821975e-02 7.26725980e-02 7.26630023e-02 7.26534105e-02 7.26438224e-02 + 7.26342382e-02 7.26246577e-02 7.26150810e-02 7.26055081e-02 7.25959390e-02 + 7.25863737e-02 7.25768121e-02 7.25672544e-02 7.25577004e-02 7.25481502e-02 + 7.25386037e-02 7.25290610e-02 7.25195221e-02 7.25099870e-02 7.25004556e-02 + 7.24909279e-02 7.24814040e-02 7.24718839e-02 7.24623675e-02 7.24528549e-02 + 7.24433460e-02 7.24338409e-02 7.24243395e-02 7.24148418e-02 7.24053479e-02 + 7.23958577e-02 7.23863712e-02 7.23768885e-02 7.23674095e-02 7.23579342e-02 + 7.23484626e-02 7.23389948e-02 7.23295307e-02 7.23200702e-02 7.23106135e-02 + 7.23011605e-02 7.22917112e-02 7.22822656e-02 7.22728238e-02 7.22633856e-02 + 7.22539511e-02 7.22445203e-02 7.22350932e-02 7.22256698e-02 7.22162500e-02 + 7.22068340e-02 7.21974216e-02 7.21880130e-02 7.21786080e-02 7.21692066e-02 + 7.21598090e-02 7.21504150e-02 7.21410247e-02 7.21316380e-02 7.21222550e-02 + 7.21128757e-02 7.21035000e-02 7.20941280e-02 7.20847596e-02 7.20753949e-02 + 7.20660339e-02 7.20566765e-02 7.20473227e-02 7.20379726e-02 7.20286261e-02 + 7.20192832e-02 7.20099440e-02 7.20006084e-02 7.19912765e-02 7.19819481e-02 + 7.19726234e-02 7.19633024e-02 7.19539849e-02 7.19446711e-02 7.19353608e-02 + 7.19260542e-02 7.19167512e-02 7.19074518e-02 7.18981560e-02 7.18888639e-02 + 7.18795753e-02 7.18702903e-02 7.18610089e-02 7.18517311e-02 7.18424569e-02 + 7.18331863e-02 7.18239193e-02 7.18146559e-02 7.18053960e-02 7.17961398e-02 + 7.17868871e-02 7.17776380e-02 7.17683924e-02 7.17591505e-02 7.17499121e-02 + 7.17406772e-02 7.17314460e-02 7.17222183e-02 7.17129941e-02 7.17037735e-02 + 7.16945565e-02 7.16853430e-02 7.16761331e-02 7.16669267e-02 7.16577239e-02 + 7.16485246e-02 7.16393289e-02 7.16301367e-02 7.16209480e-02 7.16117629e-02 + 7.16025813e-02 7.15934032e-02 7.15842287e-02 7.15750577e-02 7.15658902e-02 + 7.15567262e-02 7.15475658e-02 7.15384089e-02 7.15292555e-02 7.15201056e-02 + 7.15109592e-02 7.15018163e-02 7.14926769e-02 7.14835410e-02 7.14744087e-02 + 7.14652798e-02 7.14561544e-02 7.14470325e-02 7.14379142e-02 7.14287993e-02 + 7.14196878e-02 7.14105799e-02 7.14014755e-02 7.13923745e-02 7.13832770e-02 + 7.13741830e-02 7.13650925e-02 7.13560055e-02 7.13469219e-02 7.13378418e-02 + 7.13287651e-02 7.13196919e-02 7.13106222e-02 7.13015559e-02 7.12924931e-02 + 7.12834338e-02 7.12743779e-02 7.12653254e-02 7.12562764e-02 7.12472309e-02 + 7.12381888e-02 7.12291501e-02 7.12201149e-02 7.12110831e-02 7.12020547e-02 + 7.11930298e-02 7.11840083e-02 7.11749902e-02 7.11659756e-02 7.11569644e-02 + 7.11479566e-02 7.11389522e-02 7.11299512e-02 7.11209537e-02 7.11119596e-02 + 7.11029689e-02 7.10939816e-02 7.10849977e-02 7.10760172e-02 7.10670401e-02 + 7.10580664e-02 7.10490961e-02 7.10401292e-02 7.10311657e-02 7.10222056e-02 + 7.10132489e-02 7.10042956e-02 7.09953456e-02 7.09863990e-02 7.09774559e-02 + 7.09685161e-02 7.09595796e-02 7.09506466e-02 7.09417169e-02 7.09327906e-02 + 7.09238677e-02 7.09149481e-02 7.09060319e-02 7.08971191e-02 7.08882096e-02 + 7.08793035e-02 7.08704007e-02 7.08615013e-02 7.08526052e-02 7.08437125e-02 + 7.08348231e-02 7.08259371e-02 7.08170544e-02 7.08081751e-02 7.07992991e-02 + 7.07904264e-02 7.07815571e-02 7.07726911e-02 7.07638285e-02 7.07549691e-02 + 7.07461131e-02 7.07372604e-02 7.07284111e-02 7.07195650e-02 7.07107223e-02 + 7.07018829e-02 7.06930468e-02 7.06842141e-02 7.06753846e-02 7.06665584e-02 + 7.06577356e-02 7.06489160e-02 7.06400998e-02 7.06312868e-02 7.06224772e-02 + 7.06136708e-02 7.06048678e-02 7.05960680e-02 7.05872715e-02 7.05784783e-02 + 7.05696884e-02 7.05609018e-02 7.05521184e-02 7.05433384e-02 7.05345616e-02 diff --git a/potentials/TlBr_msw.poly b/potentials/TlBr_msw.poly new file mode 100644 index 0000000000000000000000000000000000000000..451d72ef3d11f03751a511d1bb28d98655306047 --- /dev/null +++ b/potentials/TlBr_msw.poly @@ -0,0 +1,8014 @@ +### DATA: 2015-04-30 CONTRIBUTOR: X. W. Zhou, xzhou@sandia.gov, CITATION: Zhou, Foster, Jones, Yang, Fan, and Doty, J. Mater. Sci. Res., 4, 15 (2015) + 2 0 + 81 2.04380000e+02 Tl + 35 7.99000000e+01 Br + 2000 2000 10 1.00000000e+04 + 4.26900000e+00 0.00000000e+00 + 4.05800000e+00 0.00000000e+00 + 4.73600000e+00 0.00000000e+00 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 1.59066741e+02 + 1.59066741e+02 1.59066741e+02 1.58946820e+02 1.58259480e+02 1.57574997e+02 + 1.56893359e+02 1.56214555e+02 1.55538572e+02 1.54865399e+02 1.54195026e+02 + 1.53527439e+02 1.52862629e+02 1.52200584e+02 1.51541292e+02 1.50884743e+02 + 1.50230924e+02 1.49579826e+02 1.48931437e+02 1.48285746e+02 1.47642742e+02 + 1.47002414e+02 1.46364752e+02 1.45729743e+02 1.45097378e+02 1.44467646e+02 + 1.43840536e+02 1.43216038e+02 1.42594140e+02 1.41974832e+02 1.41358104e+02 + 1.40743945e+02 1.40132345e+02 1.39523293e+02 1.38916779e+02 1.38312792e+02 + 1.37711322e+02 1.37112360e+02 1.36515894e+02 1.35921914e+02 1.35330412e+02 + 1.34741375e+02 1.34154795e+02 1.33570661e+02 1.32988963e+02 1.32409692e+02 + 1.31832838e+02 1.31258390e+02 1.30686338e+02 1.30116674e+02 1.29549387e+02 + 1.28984468e+02 1.28421907e+02 1.27861694e+02 1.27303821e+02 1.26748276e+02 + 1.26195051e+02 1.25644136e+02 1.25095523e+02 1.24549201e+02 1.24005161e+02 + 1.23463393e+02 1.22923890e+02 1.22386641e+02 1.21851636e+02 1.21318868e+02 + 1.20788327e+02 1.20260004e+02 1.19733889e+02 1.19209974e+02 1.18688250e+02 + 1.18168707e+02 1.17651338e+02 1.17136132e+02 1.16623082e+02 1.16112178e+02 + 1.15603411e+02 1.15096774e+02 1.14592257e+02 1.14089851e+02 1.13589548e+02 + 1.13091340e+02 1.12595217e+02 1.12101172e+02 1.11609196e+02 1.11119280e+02 + 1.10631415e+02 1.10145595e+02 1.09661809e+02 1.09180050e+02 1.08700310e+02 + 1.08222581e+02 1.07746853e+02 1.07273120e+02 1.06801372e+02 1.06331602e+02 + 1.05863801e+02 1.05397962e+02 1.04934077e+02 1.04472137e+02 1.04012135e+02 + 1.03554063e+02 1.03097912e+02 1.02643675e+02 1.02191344e+02 1.01740912e+02 + 1.01292370e+02 1.00845711e+02 1.00400927e+02 9.99580109e+01 9.95169543e+01 + 9.90777499e+01 9.86403901e+01 9.82048674e+01 9.77711743e+01 9.73393032e+01 + 9.69092468e+01 9.64809975e+01 9.60545481e+01 9.56298911e+01 9.52070191e+01 + 9.47859250e+01 9.43666014e+01 9.39490411e+01 9.35332368e+01 9.31191813e+01 + 9.27068676e+01 9.22962884e+01 9.18874367e+01 9.14803054e+01 9.10748874e+01 + 9.06711758e+01 9.02691635e+01 8.98688436e+01 8.94702091e+01 8.90732531e+01 + 8.86779689e+01 8.82843494e+01 8.78923879e+01 8.75020776e+01 8.71134118e+01 + 8.67263836e+01 8.63409865e+01 8.59572136e+01 8.55750584e+01 8.51945141e+01 + 8.48155743e+01 8.44382323e+01 8.40624816e+01 8.36883156e+01 8.33157279e+01 + 8.29447120e+01 8.25752613e+01 8.22073696e+01 8.18410305e+01 8.14762374e+01 + 8.11129842e+01 8.07512645e+01 8.03910720e+01 8.00324004e+01 7.96752435e+01 + 7.93195951e+01 7.89654489e+01 7.86127989e+01 7.82616389e+01 7.79119627e+01 + 7.75637643e+01 7.72170377e+01 7.68717766e+01 7.65279753e+01 7.61856276e+01 + 7.58447276e+01 7.55052693e+01 7.51672468e+01 7.48306543e+01 7.44954858e+01 + 7.41617355e+01 7.38293977e+01 7.34984663e+01 7.31689358e+01 7.28408003e+01 + 7.25140541e+01 7.21886916e+01 7.18647069e+01 7.15420945e+01 7.12208487e+01 + 7.09009639e+01 7.05824344e+01 7.02652549e+01 6.99494196e+01 6.96349230e+01 + 6.93217597e+01 6.90099241e+01 6.86994109e+01 6.83902145e+01 6.80823296e+01 + 6.77757507e+01 6.74704725e+01 6.71664897e+01 6.68637968e+01 6.65623886e+01 + 6.62622599e+01 6.59634053e+01 6.56658196e+01 6.53694976e+01 6.50744340e+01 + 6.47806238e+01 6.44880616e+01 6.41967425e+01 6.39066613e+01 6.36178129e+01 + 6.33301922e+01 6.30437941e+01 6.27586136e+01 6.24746458e+01 6.21918856e+01 + 6.19103280e+01 6.16299681e+01 6.13508009e+01 6.10728216e+01 6.07960252e+01 + 6.05204069e+01 6.02459618e+01 5.99726850e+01 5.97005719e+01 5.94296175e+01 + 5.91598171e+01 5.88911659e+01 5.86236592e+01 5.83572923e+01 5.80920605e+01 + 5.78279590e+01 5.75649833e+01 5.73031287e+01 5.70423906e+01 5.67827643e+01 + 5.65242453e+01 5.62668290e+01 5.60105109e+01 5.57552864e+01 5.55011510e+01 + 5.52481002e+01 5.49961296e+01 5.47452346e+01 5.44954109e+01 5.42466541e+01 + 5.39989596e+01 5.37523232e+01 5.35067404e+01 5.32622070e+01 5.30187186e+01 + 5.27762708e+01 5.25348594e+01 5.22944800e+01 5.20551285e+01 5.18168006e+01 + 5.15794920e+01 5.13431986e+01 5.11079161e+01 5.08736403e+01 5.06403672e+01 + 5.04080925e+01 5.01768122e+01 4.99465221e+01 4.97172181e+01 4.94888962e+01 + 4.92615523e+01 4.90351823e+01 4.88097822e+01 4.85853481e+01 4.83618758e+01 + 4.81393615e+01 4.79178012e+01 4.76971909e+01 4.74775267e+01 4.72588047e+01 + 4.70410210e+01 4.68241716e+01 4.66082528e+01 4.63932607e+01 4.61791914e+01 + 4.59660412e+01 4.57538062e+01 4.55424826e+01 4.53320666e+01 4.51225546e+01 + 4.49139427e+01 4.47062273e+01 4.44994045e+01 4.42934708e+01 4.40884224e+01 + 4.38842557e+01 4.36809670e+01 4.34785527e+01 4.32770091e+01 4.30763326e+01 + 4.28765198e+01 4.26775668e+01 4.24794703e+01 4.22822267e+01 4.20858323e+01 + 4.18902838e+01 4.16955775e+01 4.15017100e+01 4.13086779e+01 4.11164776e+01 + 4.09251057e+01 4.07345588e+01 4.05448334e+01 4.03559261e+01 4.01678336e+01 + 3.99805524e+01 3.97940792e+01 3.96084107e+01 3.94235435e+01 3.92394742e+01 + 3.90561996e+01 3.88737163e+01 3.86920211e+01 3.85111107e+01 3.83309818e+01 + 3.81516312e+01 3.79730557e+01 3.77952520e+01 3.76182170e+01 3.74419474e+01 + 3.72664400e+01 3.70916918e+01 3.69176994e+01 3.67444599e+01 3.65719700e+01 + 3.64002267e+01 3.62292268e+01 3.60589673e+01 3.58894450e+01 3.57206569e+01 + 3.55526000e+01 3.53852712e+01 3.52186675e+01 3.50527858e+01 3.48876232e+01 + 3.47231767e+01 3.45594433e+01 3.43964200e+01 3.42341038e+01 3.40724919e+01 + 3.39115813e+01 3.37513690e+01 3.35918522e+01 3.34330279e+01 3.32748934e+01 + 3.31174456e+01 3.29606818e+01 3.28045991e+01 3.26491947e+01 3.24944657e+01 + 3.23404093e+01 3.21870227e+01 3.20343032e+01 3.18822479e+01 3.17308541e+01 + 3.15801190e+01 3.14300399e+01 3.12806140e+01 3.11318386e+01 3.09837111e+01 + 3.08362286e+01 3.06893886e+01 3.05431882e+01 3.03976250e+01 3.02526961e+01 + 3.01083990e+01 2.99647310e+01 2.98216895e+01 2.96792719e+01 2.95374755e+01 + 2.93962979e+01 2.92557363e+01 2.91157882e+01 2.89764511e+01 2.88377225e+01 + 2.86995996e+01 2.85620802e+01 2.84251615e+01 2.82888412e+01 2.81531166e+01 + 2.80179854e+01 2.78834450e+01 2.77494930e+01 2.76161269e+01 2.74833442e+01 + 2.73511426e+01 2.72195195e+01 2.70884726e+01 2.69579995e+01 2.68280978e+01 + 2.66987650e+01 2.65699988e+01 2.64417968e+01 2.63141567e+01 2.61870760e+01 + 2.60605526e+01 2.59345840e+01 2.58091679e+01 2.56843019e+01 2.55599839e+01 + 2.54362115e+01 2.53129824e+01 2.51902943e+01 2.50681450e+01 2.49465323e+01 + 2.48254537e+01 2.47049073e+01 2.45848906e+01 2.44654015e+01 2.43464377e+01 + 2.42279972e+01 2.41100775e+01 2.39926767e+01 2.38757925e+01 2.37594228e+01 + 2.36435653e+01 2.35282180e+01 2.34133786e+01 2.32990452e+01 2.31852155e+01 + 2.30718874e+01 2.29590588e+01 2.28467277e+01 2.27348919e+01 2.26235494e+01 + 2.25126981e+01 2.24023359e+01 2.22924607e+01 2.21830706e+01 2.20741635e+01 + 2.19657374e+01 2.18577902e+01 2.17503199e+01 2.16433245e+01 2.15368021e+01 + 2.14307507e+01 2.13251681e+01 2.12200526e+01 2.11154021e+01 2.10112147e+01 + 2.09074884e+01 2.08042213e+01 2.07014114e+01 2.05990569e+01 2.04971557e+01 + 2.03957061e+01 2.02947061e+01 2.01941538e+01 2.00940473e+01 1.99943848e+01 + 1.98951644e+01 1.97963842e+01 1.96980423e+01 1.96001370e+01 1.95026663e+01 + 1.94056286e+01 1.93090218e+01 1.92128442e+01 1.91170941e+01 1.90217695e+01 + 1.89268688e+01 1.88323901e+01 1.87383316e+01 1.86446916e+01 1.85514683e+01 + 1.84586599e+01 1.83662647e+01 1.82742810e+01 1.81827070e+01 1.80915410e+01 + 1.80007813e+01 1.79104261e+01 1.78204738e+01 1.77309226e+01 1.76417708e+01 + 1.75530168e+01 1.74646589e+01 1.73766954e+01 1.72891247e+01 1.72019450e+01 + 1.71151548e+01 1.70287524e+01 1.69427361e+01 1.68571043e+01 1.67718555e+01 + 1.66869879e+01 1.66024999e+01 1.65183900e+01 1.64346566e+01 1.63512980e+01 + 1.62683127e+01 1.61856991e+01 1.61034557e+01 1.60215808e+01 1.59400729e+01 + 1.58589304e+01 1.57781518e+01 1.56977356e+01 1.56176803e+01 1.55379842e+01 + 1.54586459e+01 1.53796638e+01 1.53010365e+01 1.52227625e+01 1.51448402e+01 + 1.50672681e+01 1.49900448e+01 1.49131689e+01 1.48366387e+01 1.47604529e+01 + 1.46846100e+01 1.46091085e+01 1.45339471e+01 1.44591241e+01 1.43846383e+01 + 1.43104882e+01 1.42366724e+01 1.41631893e+01 1.40900377e+01 1.40172162e+01 + 1.39447232e+01 1.38725575e+01 1.38007176e+01 1.37292021e+01 1.36580097e+01 + 1.35871390e+01 1.35165887e+01 1.34463573e+01 1.33764435e+01 1.33068460e+01 + 1.32375634e+01 1.31685944e+01 1.30999376e+01 1.30315918e+01 1.29635555e+01 + 1.28958275e+01 1.28284065e+01 1.27612911e+01 1.26944801e+01 1.26279721e+01 + 1.25617660e+01 1.24958603e+01 1.24302538e+01 1.23649452e+01 1.22999333e+01 + 1.22352168e+01 1.21707945e+01 1.21066650e+01 1.20428272e+01 1.19792797e+01 + 1.19160215e+01 1.18530511e+01 1.17903674e+01 1.17279692e+01 1.16658553e+01 + 1.16040244e+01 1.15424753e+01 1.14812069e+01 1.14202179e+01 1.13595071e+01 + 1.12990734e+01 1.12389156e+01 1.11790324e+01 1.11194228e+01 1.10600855e+01 + 1.10010194e+01 1.09422233e+01 1.08836961e+01 1.08254366e+01 1.07674437e+01 + 1.07097162e+01 1.06522531e+01 1.05950531e+01 1.05381151e+01 1.04814381e+01 + 1.04250209e+01 1.03688624e+01 1.03129614e+01 1.02573170e+01 1.02019279e+01 + 1.01467932e+01 1.00919116e+01 1.00372822e+01 9.98290383e+00 9.92877541e+00 + 9.87489588e+00 9.82126418e+00 9.76787925e+00 9.71474003e+00 9.66184546e+00 + 9.60919449e+00 9.55678608e+00 9.50461920e+00 9.45269279e+00 9.40100584e+00 + 9.34955731e+00 9.29834619e+00 9.24737144e+00 9.19663206e+00 9.14612703e+00 + 9.09585535e+00 9.04581602e+00 8.99600803e+00 8.94643040e+00 8.89708213e+00 + 8.84796224e+00 8.79906975e+00 8.75040368e+00 8.70196304e+00 8.65374689e+00 + 8.60575424e+00 8.55798414e+00 8.51043563e+00 8.46310776e+00 8.41599957e+00 + 8.36911012e+00 8.32243847e+00 8.27598368e+00 8.22974482e+00 8.18372096e+00 + 8.13791116e+00 8.09231451e+00 8.04693009e+00 8.00175699e+00 7.95679428e+00 + 7.91204108e+00 7.86749646e+00 7.82315954e+00 7.77902941e+00 7.73510518e+00 + 7.69138598e+00 7.64787090e+00 7.60455907e+00 7.56144961e+00 7.51854165e+00 + 7.47583431e+00 7.43332674e+00 7.39101806e+00 7.34890742e+00 7.30699397e+00 + 7.26527684e+00 7.22375519e+00 7.18242817e+00 7.14129495e+00 7.10035469e+00 + 7.05960654e+00 7.01904969e+00 6.97868329e+00 6.93850653e+00 6.89851859e+00 + 6.85871864e+00 6.81910588e+00 6.77967948e+00 6.74043866e+00 6.70138259e+00 + 6.66251049e+00 6.62382154e+00 6.58531497e+00 6.54698997e+00 6.50884577e+00 + 6.47088157e+00 6.43309659e+00 6.39549006e+00 6.35806121e+00 6.32080926e+00 + 6.28373344e+00 6.24683299e+00 6.21010714e+00 6.17355514e+00 6.13717624e+00 + 6.10096968e+00 6.06493471e+00 6.02907059e+00 5.99337657e+00 5.95785191e+00 + 5.92249588e+00 5.88730774e+00 5.85228676e+00 5.81743222e+00 5.78274340e+00 + 5.74821956e+00 5.71385999e+00 5.67966397e+00 5.64563080e+00 5.61175977e+00 + 5.57805016e+00 5.54450127e+00 5.51111241e+00 5.47788287e+00 5.44481196e+00 + 5.41189900e+00 5.37914328e+00 5.34654412e+00 5.31410085e+00 5.28181277e+00 + 5.24967922e+00 5.21769951e+00 5.18587298e+00 5.15419896e+00 5.12267678e+00 + 5.09130577e+00 5.06008528e+00 5.02901465e+00 4.99809322e+00 4.96732034e+00 + 4.93669537e+00 4.90621764e+00 4.87588653e+00 4.84570138e+00 4.81566156e+00 + 4.78576643e+00 4.75601536e+00 4.72640772e+00 4.69694288e+00 4.66762021e+00 + 4.63843909e+00 4.60939891e+00 4.58049903e+00 4.55173885e+00 4.52311776e+00 + 4.49463514e+00 4.46629038e+00 4.43808289e+00 4.41001205e+00 4.38207728e+00 + 4.35427796e+00 4.32661351e+00 4.29908334e+00 4.27168685e+00 4.24442345e+00 + 4.21729257e+00 4.19029361e+00 4.16342600e+00 4.13668917e+00 4.11008252e+00 + 4.08360550e+00 4.05725754e+00 4.03103805e+00 4.00494648e+00 3.97898227e+00 + 3.95314485e+00 3.92743367e+00 3.90184816e+00 3.87638778e+00 3.85105197e+00 + 3.82584019e+00 3.80075188e+00 3.77578651e+00 3.75094352e+00 3.72622238e+00 + 3.70162255e+00 3.67714350e+00 3.65278469e+00 3.62854560e+00 3.60442568e+00 + 3.58042442e+00 3.55654129e+00 3.53277577e+00 3.50912734e+00 3.48559548e+00 + 3.46217968e+00 3.43887941e+00 3.41569418e+00 3.39262347e+00 3.36966677e+00 + 3.34682358e+00 3.32409340e+00 3.30147572e+00 3.27897005e+00 3.25657589e+00 + 3.23429274e+00 3.21212012e+00 3.19005753e+00 3.16810449e+00 3.14626050e+00 + 3.12452509e+00 3.10289777e+00 3.08137807e+00 3.05996550e+00 3.03865959e+00 + 3.01745986e+00 2.99636585e+00 2.97537708e+00 2.95449308e+00 2.93371339e+00 + 2.91303755e+00 2.89246509e+00 2.87199555e+00 2.85162848e+00 2.83136341e+00 + 2.81119989e+00 2.79113748e+00 2.77117572e+00 2.75131416e+00 2.73155235e+00 + 2.71188986e+00 2.69232623e+00 2.67286103e+00 2.65349381e+00 2.63422415e+00 + 2.61505160e+00 2.59597572e+00 2.57699610e+00 2.55811229e+00 2.53932388e+00 + 2.52063043e+00 2.50203151e+00 2.48352671e+00 2.46511561e+00 2.44679779e+00 + 2.42857282e+00 2.41044029e+00 2.39239979e+00 2.37445091e+00 2.35659324e+00 + 2.33882636e+00 2.32114987e+00 2.30356337e+00 2.28606645e+00 2.26865871e+00 + 2.25133974e+00 2.23410916e+00 2.21696656e+00 2.19991156e+00 2.18294374e+00 + 2.16606273e+00 2.14926814e+00 2.13255957e+00 2.11593664e+00 2.09939896e+00 + 2.08294615e+00 2.06657783e+00 2.05029362e+00 2.03409313e+00 2.01797600e+00 + 2.00194185e+00 1.98599029e+00 1.97012097e+00 1.95433351e+00 1.93862754e+00 + 1.92300269e+00 1.90745860e+00 1.89199490e+00 1.87661123e+00 1.86130723e+00 + 1.84608254e+00 1.83093680e+00 1.81586965e+00 1.80088074e+00 1.78596972e+00 + 1.77113623e+00 1.75637992e+00 1.74170044e+00 1.72709745e+00 1.71257059e+00 + 1.69811953e+00 1.68374392e+00 1.66944342e+00 1.65521768e+00 1.64106637e+00 + 1.62698916e+00 1.61298570e+00 1.59905566e+00 1.58519871e+00 1.57141452e+00 + 1.55770275e+00 1.54406307e+00 1.53049517e+00 1.51699871e+00 1.50357336e+00 + 1.49021881e+00 1.47693473e+00 1.46372080e+00 1.45057671e+00 1.43750213e+00 + 1.42449675e+00 1.41156025e+00 1.39869231e+00 1.38589264e+00 1.37316091e+00 + 1.36049681e+00 1.34790004e+00 1.33537029e+00 1.32290725e+00 1.31051063e+00 + 1.29818010e+00 1.28591538e+00 1.27371616e+00 1.26158215e+00 1.24951304e+00 + 1.23750854e+00 1.22556835e+00 1.21369217e+00 1.20187973e+00 1.19013071e+00 + 1.17844484e+00 1.16682182e+00 1.15526137e+00 1.14376319e+00 1.13232701e+00 + 1.12095253e+00 1.10963948e+00 1.09838757e+00 1.08719652e+00 1.07606606e+00 + 1.06499590e+00 1.05398576e+00 1.04303538e+00 1.03214447e+00 1.02131277e+00 + 1.01053999e+00 9.99825872e-01 9.89170142e-01 9.78572531e-01 9.68032772e-01 + 9.57550597e-01 9.47125741e-01 9.36757940e-01 9.26446931e-01 9.16192450e-01 + 9.05994238e-01 8.95852034e-01 8.85765579e-01 8.75734617e-01 8.65758890e-01 + 8.55838142e-01 8.45972120e-01 8.36160571e-01 8.26403241e-01 8.16699880e-01 + 8.07050238e-01 7.97454067e-01 7.87911117e-01 7.78421143e-01 7.68983898e-01 + 7.59599138e-01 7.50266619e-01 7.40986099e-01 7.31757336e-01 7.22580090e-01 + 7.13454121e-01 7.04379191e-01 6.95355062e-01 6.86381499e-01 6.77458264e-01 + 6.68585126e-01 6.59761849e-01 6.50988201e-01 6.42263952e-01 6.33588871e-01 + 6.24962729e-01 6.16385297e-01 6.07856348e-01 5.99375655e-01 5.90942994e-01 + 5.82558139e-01 5.74220867e-01 5.65930957e-01 5.57688185e-01 5.49492333e-01 + 5.41343179e-01 5.33240506e-01 5.25184095e-01 5.17173731e-01 5.09209196e-01 + 5.01290276e-01 4.93416758e-01 4.85588427e-01 4.77805073e-01 4.70066483e-01 + 4.62372448e-01 4.54722758e-01 4.47117204e-01 4.39555579e-01 4.32037677e-01 + 4.24563291e-01 4.17132216e-01 4.09744249e-01 4.02399187e-01 3.95096827e-01 + 3.87836967e-01 3.80619408e-01 3.73443950e-01 3.66310393e-01 3.59218541e-01 + 3.52168196e-01 3.45159161e-01 3.38191243e-01 3.31264245e-01 3.24377974e-01 + 3.17532238e-01 3.10726845e-01 3.03961604e-01 2.97236323e-01 2.90550815e-01 + 2.83904889e-01 2.77298359e-01 2.70731037e-01 2.64202737e-01 2.57713274e-01 + 2.51262463e-01 2.44850121e-01 2.38476064e-01 2.32140110e-01 2.25842078e-01 + 2.19581787e-01 2.13359058e-01 2.07173711e-01 2.01025569e-01 1.94914453e-01 + 1.88840187e-01 1.82802595e-01 1.76801503e-01 1.70836735e-01 1.64908118e-01 + 1.59015479e-01 1.53158646e-01 1.47337448e-01 1.41551713e-01 1.35801273e-01 + 1.30085958e-01 1.24405600e-01 1.18760030e-01 1.13149083e-01 1.07572591e-01 + 1.02030390e-01 9.65223148e-02 9.10482010e-02 8.56078855e-02 8.02012058e-02 + 7.48280000e-02 6.94881069e-02 6.41813661e-02 5.89076178e-02 5.36667029e-02 + 4.84584631e-02 4.32827407e-02 3.81393787e-02 3.30282209e-02 2.79491117e-02 + 2.29018961e-02 1.78864198e-02 1.29025294e-02 7.95007189e-03 3.02889510e-03 + -1.86115254e-03 -6.72022191e-03 -1.15484632e-02 -1.63460261e-02 -2.11130593e-02 + -2.58497113e-02 -3.05561295e-02 -3.52324610e-02 -3.98788520e-02 -4.44954482e-02 + -4.90823946e-02 -5.36398356e-02 -5.81679150e-02 -6.26667758e-02 -6.71365606e-02 + -7.15774112e-02 -7.59894689e-02 -8.03728742e-02 -8.47277672e-02 -8.90542872e-02 + -9.33525729e-02 -9.76227626e-02 -1.01864994e-01 -1.06079403e-01 -1.10266128e-01 + -1.14425303e-01 -1.18557063e-01 -1.22661543e-01 -1.26738878e-01 -1.30789200e-01 + -1.34812642e-01 -1.38809337e-01 -1.42779415e-01 -1.46723008e-01 -1.50640247e-01 + -1.54531261e-01 -1.58396179e-01 -1.62235131e-01 -1.66048243e-01 -1.69835645e-01 + -1.73597463e-01 -1.77333822e-01 -1.81044851e-01 -1.84730672e-01 -1.88391412e-01 + -1.92027194e-01 -1.95638143e-01 -1.99224381e-01 -2.02786030e-01 -2.06323214e-01 + -2.09836053e-01 -2.13324668e-01 -2.16789180e-01 -2.20229708e-01 -2.23646372e-01 + -2.27039291e-01 -2.30408583e-01 -2.33754366e-01 -2.37076757e-01 -2.40375872e-01 + -2.43651829e-01 -2.46904742e-01 -2.50134726e-01 -2.53341897e-01 -2.56526369e-01 + -2.59688255e-01 -2.62827668e-01 -2.65944721e-01 -2.69039526e-01 -2.72112194e-01 + -2.75162837e-01 -2.78191566e-01 -2.81198490e-01 -2.84183720e-01 -2.87147363e-01 + -2.90089530e-01 -2.93010328e-01 -2.95909864e-01 -2.98788247e-01 -3.01645582e-01 + -3.04481977e-01 -3.07297536e-01 -3.10092366e-01 -3.12866570e-01 -3.15620254e-01 + -3.18353521e-01 -3.21066475e-01 -3.23759218e-01 -3.26431854e-01 -3.29084484e-01 + -3.31717210e-01 -3.34330133e-01 -3.36923354e-01 -3.39496972e-01 -3.42051089e-01 + -3.44585802e-01 -3.47101211e-01 -3.49597415e-01 -3.52074511e-01 -3.54532597e-01 + -3.56971771e-01 -3.59392128e-01 -3.61793765e-01 -3.64176779e-01 -3.66541263e-01 + -3.68887314e-01 -3.71215026e-01 -3.73524493e-01 -3.75815808e-01 -3.78089065e-01 + -3.80344357e-01 -3.82581777e-01 -3.84801415e-01 -3.87003365e-01 -3.89187716e-01 + -3.91354561e-01 -3.93503988e-01 -3.95636089e-01 -3.97750952e-01 -3.99848667e-01 + -4.01929323e-01 -4.03993008e-01 -4.06039810e-01 -4.08069816e-01 -4.10083114e-01 + -4.12079790e-01 -4.14059931e-01 -4.16023623e-01 -4.17970951e-01 -4.19902001e-01 + -4.21816857e-01 -4.23715604e-01 -4.25598325e-01 -4.27465106e-01 -4.29316028e-01 + -4.31151174e-01 -4.32970628e-01 -4.34774472e-01 -4.36562786e-01 -4.38335654e-01 + -4.40093155e-01 -4.41835370e-01 -4.43562380e-01 -4.45274265e-01 -4.46971104e-01 + -4.48652977e-01 -4.50319962e-01 -4.51972137e-01 -4.53609582e-01 -4.55232374e-01 + -4.56840589e-01 -4.58434307e-01 -4.60013602e-01 -4.61578551e-01 -4.63129231e-01 + -4.64665718e-01 -4.66188086e-01 -4.67696410e-01 -4.69190766e-01 -4.70671227e-01 + -4.72137867e-01 -4.73590761e-01 -4.75029981e-01 -4.76455601e-01 -4.77867693e-01 + -4.79266329e-01 -4.80651581e-01 -4.82023522e-01 -4.83382222e-01 -4.84727752e-01 + -4.86060183e-01 -4.87379586e-01 -4.88686030e-01 -4.89979585e-01 -4.91260320e-01 + -4.92528305e-01 -4.93783608e-01 -4.95026298e-01 -4.96256443e-01 -4.97474110e-01 + -4.98679367e-01 -4.99872282e-01 -5.01052921e-01 -5.02221351e-01 -5.03377637e-01 + -5.04521847e-01 -5.05654045e-01 -5.06774297e-01 -5.07882668e-01 -5.08979223e-01 + -5.10064026e-01 -5.11137142e-01 -5.12198633e-01 -5.13248565e-01 -5.14286999e-01 + -5.15314000e-01 -5.16329629e-01 -5.17333949e-01 -5.18327023e-01 -5.19308912e-01 + -5.20279677e-01 -5.21239380e-01 -5.22188082e-01 -5.23125844e-01 -5.24052725e-01 + -5.24968787e-01 -5.25874088e-01 -5.26768689e-01 -5.27652649e-01 -5.28526026e-01 + -5.29388880e-01 -5.30241269e-01 -5.31083251e-01 -5.31914885e-01 -5.32736227e-01 + -5.33547335e-01 -5.34348267e-01 -5.35139079e-01 -5.35919828e-01 -5.36690570e-01 + -5.37451361e-01 -5.38202257e-01 -5.38943313e-01 -5.39674586e-01 -5.40396130e-01 + -5.41107999e-01 -5.41810248e-01 -5.42502932e-01 -5.43186105e-01 -5.43859819e-01 + -5.44524130e-01 -5.45179090e-01 -5.45824751e-01 -5.46461168e-01 -5.47088392e-01 + -5.47706475e-01 -5.48315470e-01 -5.48915429e-01 -5.49506403e-01 -5.50088443e-01 + -5.50661600e-01 -5.51225926e-01 -5.51781470e-01 -5.52328283e-01 -5.52866416e-01 + -5.53395918e-01 -5.53916838e-01 -5.54429227e-01 -5.54933133e-01 -5.55428606e-01 + -5.55915693e-01 -5.56394444e-01 -5.56864906e-01 -5.57327129e-01 -5.57781159e-01 + -5.58227044e-01 -5.58664831e-01 -5.59094569e-01 -5.59516303e-01 -5.59930080e-01 + -5.60335947e-01 -5.60733949e-01 -5.61124134e-01 -5.61506547e-01 -5.61881233e-01 + -5.62248237e-01 -5.62607606e-01 -5.62959384e-01 -5.63303615e-01 -5.63640344e-01 + -5.63969616e-01 -5.64291475e-01 -5.64605964e-01 -5.64913127e-01 -5.65213008e-01 + -5.65505649e-01 -5.65791095e-01 -5.66069387e-01 -5.66340569e-01 -5.66604683e-01 + -5.66861772e-01 -5.67111876e-01 -5.67355039e-01 -5.67591301e-01 -5.67820705e-01 + -5.68043291e-01 -5.68259100e-01 -5.68468175e-01 -5.68670554e-01 -5.68866278e-01 + -5.69055389e-01 -5.69237926e-01 -5.69413928e-01 -5.69583436e-01 -5.69746489e-01 + -5.69903126e-01 -5.70053387e-01 -5.70197311e-01 -5.70334935e-01 -5.70466300e-01 + -5.70591443e-01 -5.70710402e-01 -5.70823215e-01 -5.70929921e-01 -5.71030557e-01 + -5.71125160e-01 -5.71213768e-01 -5.71296418e-01 -5.71373147e-01 -5.71443991e-01 + -5.71508988e-01 -5.71568173e-01 -5.71621583e-01 -5.71669253e-01 -5.71711221e-01 + -5.71747521e-01 -5.71778189e-01 -5.71803260e-01 -5.71822770e-01 -5.71836753e-01 + -5.71845245e-01 -5.71848280e-01 -5.71845893e-01 -5.71838118e-01 -5.71824988e-01 + -5.71806540e-01 -5.71782805e-01 -5.71753818e-01 -5.71719612e-01 -5.71680221e-01 + -5.71635678e-01 -5.71586016e-01 -5.71531267e-01 -5.71471465e-01 -5.71406642e-01 + -5.71336831e-01 -5.71262063e-01 -5.71182371e-01 -5.71097787e-01 -5.71008343e-01 + -5.70914069e-01 -5.70814998e-01 -5.70711161e-01 -5.70602589e-01 -5.70489313e-01 + -5.70371364e-01 -5.70248773e-01 -5.70121569e-01 -5.69989785e-01 -5.69853449e-01 + -5.69712592e-01 -5.69567244e-01 -5.69417434e-01 -5.69263193e-01 -5.69104550e-01 + -5.68941534e-01 -5.68774174e-01 -5.68602500e-01 -5.68426541e-01 -5.68246325e-01 + -5.68061880e-01 -5.67873236e-01 -5.67680421e-01 -5.67483463e-01 -5.67282390e-01 + -5.67077231e-01 -5.66868012e-01 -5.66654761e-01 -5.66437507e-01 -5.66216276e-01 + -5.65991097e-01 -5.65761995e-01 -5.65528997e-01 -5.65292132e-01 -5.65051425e-01 + -5.64806903e-01 -5.64558593e-01 -5.64306521e-01 -5.64050713e-01 -5.63791195e-01 + -5.63527993e-01 -5.63261133e-01 -5.62990640e-01 -5.62716541e-01 -5.62438860e-01 + -5.62157624e-01 -5.61872856e-01 -5.61584582e-01 -5.61292827e-01 -5.60997617e-01 + -5.60698974e-01 -5.60396925e-01 -5.60091493e-01 -5.59782703e-01 -5.59470579e-01 + -5.59155144e-01 -5.58836424e-01 -5.58514441e-01 -5.58189220e-01 -5.57860784e-01 + -5.57529156e-01 -5.57194360e-01 -5.56856420e-01 -5.56515357e-01 -5.56171195e-01 + -5.55823958e-01 -5.55473667e-01 -5.55120345e-01 -5.54764016e-01 -5.54404701e-01 + -5.54042422e-01 -5.53677202e-01 -5.53309063e-01 -5.52938027e-01 -5.52564116e-01 + -5.52187351e-01 -5.51807754e-01 -5.51425346e-01 -5.51040150e-01 -5.50652186e-01 + -5.50261475e-01 -5.49868039e-01 -5.49471898e-01 -5.49073073e-01 -5.48671586e-01 + -5.48267456e-01 -5.47860705e-01 -5.47451353e-01 -5.47039419e-01 -5.46624925e-01 + -5.46207890e-01 -5.45788335e-01 -5.45366279e-01 -5.44941743e-01 -5.44514745e-01 + -5.44085306e-01 -5.43653444e-01 -5.43219181e-01 -5.42782534e-01 -5.42343522e-01 + -5.41902166e-01 -5.41458484e-01 -5.41012495e-01 -5.40564218e-01 -5.40113671e-01 + -5.39660874e-01 -5.39205844e-01 -5.38748600e-01 -5.38289161e-01 -5.37827544e-01 + -5.37363768e-01 -5.36897851e-01 -5.36429810e-01 -5.35959665e-01 -5.35487431e-01 + -5.35013128e-01 -5.34536772e-01 -5.34058382e-01 -5.33577974e-01 -5.33095565e-01 + -5.32611174e-01 -5.32124817e-01 -5.31636511e-01 -5.31146273e-01 -5.30654120e-01 + -5.30160069e-01 -5.29664136e-01 -5.29166338e-01 -5.28666691e-01 -5.28165213e-01 + -5.27661918e-01 -5.27156824e-01 -5.26649946e-01 -5.26141301e-01 -5.25630905e-01 + -5.25118773e-01 -5.24604921e-01 -5.24089365e-01 -5.23572121e-01 -5.23053204e-01 + -5.22532629e-01 -5.22010413e-01 -5.21486570e-01 -5.20961115e-01 -5.20434064e-01 + -5.19905431e-01 -5.19375232e-01 -5.18843482e-01 -5.18310194e-01 -5.17775385e-01 + -5.17239069e-01 -5.16701260e-01 -5.16161972e-01 -5.15621221e-01 -5.15079020e-01 + -5.14535383e-01 -5.13990325e-01 -5.13443861e-01 -5.12896003e-01 -5.12346766e-01 + -5.11796163e-01 -5.11244210e-01 -5.10690918e-01 -5.10136302e-01 -5.09580375e-01 + -5.09023150e-01 -5.08464642e-01 -5.07904864e-01 -5.07343828e-01 -5.06781547e-01 + -5.06218036e-01 -5.05653306e-01 -5.05087372e-01 -5.04520244e-01 -5.03951937e-01 + -5.03382464e-01 -5.02811836e-01 -5.02240066e-01 -5.01667167e-01 -5.01093151e-01 + -5.00518030e-01 -4.99941817e-01 -4.99364524e-01 -4.98786163e-01 -4.98206745e-01 + -4.97626284e-01 -4.97044791e-01 -4.96462276e-01 -4.95878754e-01 -4.95294234e-01 + -4.94708728e-01 -4.94122249e-01 -4.93534807e-01 -4.92946414e-01 -4.92357080e-01 + -4.91766818e-01 -4.91175639e-01 -4.90583552e-01 -4.89990570e-01 -4.89396703e-01 + -4.88801963e-01 -4.88206359e-01 -4.87609902e-01 -4.87012603e-01 -4.86414473e-01 + -4.85815522e-01 -4.85215760e-01 -4.84615198e-01 -4.84013846e-01 -4.83411713e-01 + -4.82808810e-01 -4.82205147e-01 -4.81600734e-01 -4.80995580e-01 -4.80389695e-01 + -4.79783089e-01 -4.79175772e-01 -4.78567752e-01 -4.77959039e-01 -4.77349643e-01 + -4.76739573e-01 -4.76128837e-01 -4.75517444e-01 -4.74905405e-01 -4.74292727e-01 + -4.73679419e-01 -4.73065490e-01 -4.72450948e-01 -4.71835802e-01 -4.71220061e-01 + -4.70603732e-01 -4.69986823e-01 -4.69369343e-01 -4.68751300e-01 -4.68132701e-01 + -4.67513554e-01 -4.66893867e-01 -4.66273647e-01 -4.65652902e-01 -4.65031639e-01 + -4.64409865e-01 -4.63787588e-01 -4.63164813e-01 -4.62541548e-01 -4.61917800e-01 + -4.61293575e-01 -4.60668879e-01 -4.60043719e-01 -4.59418101e-01 -4.58792030e-01 + -4.58165514e-01 -4.57538556e-01 -4.56911164e-01 -4.56283341e-01 -4.55655094e-01 + -4.55026428e-01 -4.54397347e-01 -4.53767856e-01 -4.53137959e-01 -4.52507661e-01 + -4.51876967e-01 -4.51245879e-01 -4.50614402e-01 -4.49982539e-01 -4.49350293e-01 + -4.48717668e-01 -4.48084667e-01 -4.47451292e-01 -4.46817545e-01 -4.46183429e-01 + -4.45548945e-01 -4.44914096e-01 -4.44278882e-01 -4.43643305e-01 -4.43007366e-01 + -4.42371064e-01 -4.41734400e-01 -4.41097375e-01 -4.40459987e-01 -4.39822236e-01 + -4.39184120e-01 -4.38545639e-01 -4.37906790e-01 -4.37267571e-01 -4.36627979e-01 + -4.35988012e-01 -4.35347666e-01 -4.34706936e-01 -4.34065819e-01 -4.33424310e-01 + -4.32782403e-01 -4.32140093e-01 -4.31497373e-01 -4.30854237e-01 -4.30210676e-01 + -4.29566683e-01 -4.28922249e-01 -4.28277366e-01 -4.27632022e-01 -4.26986208e-01 + -4.26339913e-01 -4.25693124e-01 -4.25045828e-01 -4.24398014e-01 -4.23749665e-01 + -4.23100768e-01 -4.22451306e-01 -4.21801263e-01 -4.21150620e-01 -4.20499361e-01 + -4.19847464e-01 -4.19194909e-01 -4.18541676e-01 -4.17887740e-01 -4.17233079e-01 + -4.16577668e-01 -4.15921480e-01 -4.15264487e-01 -4.14606663e-01 -4.13947976e-01 + -4.13288394e-01 -4.12627887e-01 -4.11966418e-01 -4.11303953e-01 -4.10640454e-01 + -4.09975882e-01 -4.09310196e-01 -4.08643354e-01 -4.07975312e-01 -4.07306023e-01 + -4.06635440e-01 -4.05963512e-01 -4.05290187e-01 -4.04615410e-01 -4.03939126e-01 + -4.03261274e-01 -4.02581795e-01 -4.01900623e-01 -4.01217692e-01 -4.00532934e-01 + -3.99846276e-01 -3.99157643e-01 -3.98466959e-01 -3.97774141e-01 -3.97079107e-01 + -3.96381768e-01 -3.95682035e-01 -3.94979813e-01 -3.94275004e-01 -3.93567506e-01 + -3.92857215e-01 -3.92144021e-01 -3.91427810e-01 -3.90708464e-01 -3.89985860e-01 + -3.89259873e-01 -3.88530369e-01 -3.87797212e-01 -3.87060261e-01 -3.86319368e-01 + -3.85574381e-01 -3.84825141e-01 -3.84071485e-01 -3.83313243e-01 -3.82550239e-01 + -3.81782290e-01 -3.81009207e-01 -3.80230795e-01 -3.79446850e-01 -3.78657162e-01 + -3.77861514e-01 -3.77059680e-01 -3.76251427e-01 -3.75436513e-01 -3.74614689e-01 + -3.73785696e-01 -3.72949266e-01 -3.72105122e-01 -3.71252978e-01 -3.70392537e-01 + -3.69523494e-01 -3.68645532e-01 -3.67758323e-01 -3.66861529e-01 -3.65954801e-01 + -3.65037777e-01 -3.64110084e-01 -3.63171337e-01 -3.62221139e-01 -3.61259079e-01 + -3.60284733e-01 -3.59297664e-01 -3.58297420e-01 -3.57283538e-01 -3.56255536e-01 + -3.55212921e-01 -3.54155184e-01 -3.53081799e-01 -3.51992226e-01 -3.50885908e-01 + -3.49762272e-01 -3.48620730e-01 -3.47460674e-01 -3.46281482e-01 -3.45082512e-01 + -3.43863106e-01 -3.42622589e-01 -3.41360265e-01 -3.40075422e-01 -3.38767331e-01 + -3.37435241e-01 -3.36078386e-01 -3.34695979e-01 -3.33287216e-01 -3.31851274e-01 + -3.30387312e-01 -3.28894470e-01 -3.27371871e-01 -3.25818619e-01 -3.24233802e-01 + -3.22616489e-01 -3.20965736e-01 -3.19280578e-01 -3.17560039e-01 -3.15803127e-01 + -3.14008835e-01 -3.12176145e-01 -3.10304027e-01 -3.08391440e-01 -3.06437334e-01 + -3.04440652e-01 -3.02400330e-01 -3.00315300e-01 -2.98184493e-01 -2.96006839e-01 + -2.93781270e-01 -2.91506723e-01 -2.89182144e-01 -2.86806488e-01 -2.84378723e-01 + -2.81897836e-01 -2.79362834e-01 -2.76772748e-01 -2.74126639e-01 -2.71423602e-01 + -2.68662768e-01 -2.65843311e-01 -2.62964456e-01 -2.60025480e-01 -2.57025720e-01 + -2.53964578e-01 -2.50841531e-01 -2.47656133e-01 -2.44408025e-01 -2.41096940e-01 + -2.37722713e-01 -2.34285290e-01 -2.30784728e-01 -2.27221216e-01 -2.23595069e-01 + -2.19906751e-01 -2.16156870e-01 -2.12346197e-01 -2.08475670e-01 -2.04546403e-01 + -2.00559695e-01 -1.96517039e-01 -1.92420129e-01 -1.88270867e-01 -1.84071375e-01 + -1.79823996e-01 -1.75531303e-01 -1.71196106e-01 -1.66821454e-01 -1.62410640e-01 + -1.57967206e-01 -1.53494938e-01 -1.48997875e-01 -1.44480302e-01 -1.39946746e-01 + -1.35401977e-01 -1.30850997e-01 -1.26299032e-01 -1.21751524e-01 -1.17214115e-01 + -1.12692635e-01 -1.08193080e-01 -1.03721599e-01 -9.92844631e-02 -9.48880474e-02 + -9.05387997e-02 -8.62432123e-02 -8.20077888e-02 -7.78390103e-02 -7.37432981e-02 + -6.97269763e-02 -6.57962311e-02 -6.19570698e-02 -5.82152789e-02 -5.45763816e-02 + -5.10455950e-02 -4.76277880e-02 -4.43274408e-02 -4.11486044e-02 -3.80948645e-02 + -3.51693060e-02 -3.23744824e-02 -2.97123890e-02 -2.71844398e-02 -2.47914507e-02 + -2.25336279e-02 -2.04105624e-02 -1.84212308e-02 -1.65640035e-02 -1.48366591e-02 + -1.32364061e-02 -1.17599112e-02 -1.04033349e-02 -9.16237201e-03 -8.03229914e-03 + -7.00802647e-03 -6.08415391e-03 -5.25503063e-03 -4.51481676e-03 -3.85754635e-03 + -3.27719036e-03 -2.76771858e-03 -2.32315928e-03 -1.93765556e-03 -1.60551741e-03 + -1.32126846e-03 -1.07968684e-03 -8.75839483e-04 -7.05109467e-04 -5.63216214e-04 + -4.46228565e-04 -3.50570902e-04 -2.73022712e-04 -2.10712128e-04 -1.61104137e-04 + -1.21984250e-04 -9.14384753e-05 -6.78305122e-05 -4.97770498e-05 -3.61220304e-05 + -2.59106753e-05 -1.83639752e-05 -1.28542408e-05 -8.88218889e-06 -6.05591675e-06 + -4.07199229e-06 -2.69877730e-06 -1.76199872e-06 -1.13249903e-06 -7.16031265e-07 + -4.44916328e-07 -2.71351442e-07 -1.62145156e-07 -9.46547803e-08 -5.37131977e-08 + -2.93506097e-08 -1.51400925e-08 -7.02125004e-09 -2.48169531e-09 0.00000000e+00 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 4.65278880e+02 + 4.63463739e+02 4.61019483e+02 4.58587846e+02 4.56168764e+02 4.53762172e+02 + 4.51368008e+02 4.48986207e+02 4.46616707e+02 4.44259445e+02 4.41914358e+02 + 4.39581384e+02 4.37260463e+02 4.34951531e+02 4.32654528e+02 4.30369393e+02 + 4.28096066e+02 4.25834486e+02 4.23584594e+02 4.21346329e+02 4.19119633e+02 + 4.16904447e+02 4.14700710e+02 4.12508367e+02 4.10327357e+02 4.08157624e+02 + 4.05999109e+02 4.03851756e+02 4.01715507e+02 3.99590306e+02 3.97476097e+02 + 3.95372823e+02 3.93280429e+02 3.91198858e+02 3.89128057e+02 3.87067969e+02 + 3.85018540e+02 3.82979716e+02 3.80951442e+02 3.78933665e+02 3.76926331e+02 + 3.74929387e+02 3.72942779e+02 3.70966455e+02 3.69000363e+02 3.67044450e+02 + 3.65098663e+02 3.63162953e+02 3.61237266e+02 3.59321552e+02 3.57415759e+02 + 3.55519838e+02 3.53633737e+02 3.51757407e+02 3.49890797e+02 3.48033859e+02 + 3.46186541e+02 3.44348796e+02 3.42520575e+02 3.40701828e+02 3.38892508e+02 + 3.37092565e+02 3.35301953e+02 3.33520624e+02 3.31748529e+02 3.29985623e+02 + 3.28231857e+02 3.26487185e+02 3.24751562e+02 3.23024939e+02 3.21307272e+02 + 3.19598515e+02 3.17898622e+02 3.16207547e+02 3.14525246e+02 3.12851674e+02 + 3.11186786e+02 3.09530538e+02 3.07882885e+02 3.06243784e+02 3.04613191e+02 + 3.02991062e+02 3.01377354e+02 2.99772024e+02 2.98175029e+02 2.96586327e+02 + 2.95005875e+02 2.93433630e+02 2.91869551e+02 2.90313596e+02 2.88765724e+02 + 2.87225893e+02 2.85694062e+02 2.84170189e+02 2.82654235e+02 2.81146159e+02 + 2.79645920e+02 2.78153479e+02 2.76668794e+02 2.75191828e+02 2.73722539e+02 + 2.72260890e+02 2.70806840e+02 2.69360351e+02 2.67921384e+02 2.66489901e+02 + 2.65065863e+02 2.63649232e+02 2.62239970e+02 2.60838040e+02 2.59443403e+02 + 2.58056023e+02 2.56675863e+02 2.55302885e+02 2.53937052e+02 2.52578329e+02 + 2.51226678e+02 2.49882063e+02 2.48544449e+02 2.47213799e+02 2.45890078e+02 + 2.44573250e+02 2.43263280e+02 2.41960132e+02 2.40663773e+02 2.39374166e+02 + 2.38091278e+02 2.36815073e+02 2.35545518e+02 2.34282579e+02 2.33026222e+02 + 2.31776412e+02 2.30533117e+02 2.29296302e+02 2.28065935e+02 2.26841983e+02 + 2.25624413e+02 2.24413191e+02 2.23208287e+02 2.22009666e+02 2.20817296e+02 + 2.19631147e+02 2.18451185e+02 2.17277380e+02 2.16109699e+02 2.14948111e+02 + 2.13792585e+02 2.12643089e+02 2.11499594e+02 2.10362067e+02 2.09230479e+02 + 2.08104798e+02 2.06984995e+02 2.05871039e+02 2.04762901e+02 2.03660550e+02 + 2.02563957e+02 2.01473092e+02 2.00387926e+02 1.99308430e+02 1.98234574e+02 + 1.97166329e+02 1.96103667e+02 1.95046559e+02 1.93994977e+02 1.92948891e+02 + 1.91908275e+02 1.90873099e+02 1.89843336e+02 1.88818958e+02 1.87799937e+02 + 1.86786246e+02 1.85777858e+02 1.84774744e+02 1.83776879e+02 1.82784235e+02 + 1.81796785e+02 1.80814503e+02 1.79837361e+02 1.78865335e+02 1.77898396e+02 + 1.76936520e+02 1.75979680e+02 1.75027850e+02 1.74081004e+02 1.73139117e+02 + 1.72202164e+02 1.71270119e+02 1.70342956e+02 1.69420651e+02 1.68503179e+02 + 1.67590514e+02 1.66682633e+02 1.65779509e+02 1.64881120e+02 1.63987441e+02 + 1.63098447e+02 1.62214114e+02 1.61334418e+02 1.60459336e+02 1.59588843e+02 + 1.58722917e+02 1.57861533e+02 1.57004668e+02 1.56152300e+02 1.55304404e+02 + 1.54460957e+02 1.53621938e+02 1.52787323e+02 1.51957089e+02 1.51131214e+02 + 1.50309675e+02 1.49492450e+02 1.48679518e+02 1.47870854e+02 1.47066439e+02 + 1.46266249e+02 1.45470264e+02 1.44678461e+02 1.43890819e+02 1.43107316e+02 + 1.42327932e+02 1.41552644e+02 1.40781432e+02 1.40014275e+02 1.39251152e+02 + 1.38492042e+02 1.37736924e+02 1.36985778e+02 1.36238583e+02 1.35495320e+02 + 1.34755967e+02 1.34020505e+02 1.33288913e+02 1.32561172e+02 1.31837261e+02 + 1.31117162e+02 1.30400853e+02 1.29688317e+02 1.28979533e+02 1.28274481e+02 + 1.27573143e+02 1.26875500e+02 1.26181532e+02 1.25491221e+02 1.24804547e+02 + 1.24121492e+02 1.23442037e+02 1.22766164e+02 1.22093854e+02 1.21425089e+02 + 1.20759850e+02 1.20098119e+02 1.19439878e+02 1.18785110e+02 1.18133795e+02 + 1.17485917e+02 1.16841457e+02 1.16200398e+02 1.15562723e+02 1.14928414e+02 + 1.14297452e+02 1.13669823e+02 1.13045507e+02 1.12424488e+02 1.11806748e+02 + 1.11192272e+02 1.10581042e+02 1.09973041e+02 1.09368252e+02 1.08766660e+02 + 1.08168246e+02 1.07572996e+02 1.06980893e+02 1.06391920e+02 1.05806061e+02 + 1.05223300e+02 1.04643621e+02 1.04067008e+02 1.03493446e+02 1.02922918e+02 + 1.02355409e+02 1.01790903e+02 1.01229385e+02 1.00670839e+02 1.00115250e+02 + 9.95626022e+01 9.90128809e+01 9.84660707e+01 9.79221566e+01 9.73811236e+01 + 9.68429569e+01 9.63076415e+01 9.57751627e+01 9.52455058e+01 9.47186562e+01 + 9.41945994e+01 9.36733209e+01 9.31548063e+01 9.26390414e+01 9.21260118e+01 + 9.16157035e+01 9.11081022e+01 9.06031940e+01 9.01009650e+01 8.96014012e+01 + 8.91044889e+01 8.86102143e+01 8.81185637e+01 8.76295236e+01 8.71430804e+01 + 8.66592206e+01 8.61779309e+01 8.56991979e+01 8.52230085e+01 8.47493493e+01 + 8.42782073e+01 8.38095694e+01 8.33434227e+01 8.28797542e+01 8.24185510e+01 + 8.19598004e+01 8.15034897e+01 8.10496062e+01 8.05981373e+01 8.01490705e+01 + 7.97023933e+01 7.92580933e+01 7.88161582e+01 7.83765757e+01 7.79393336e+01 + 7.75044198e+01 7.70718221e+01 7.66415285e+01 7.62135271e+01 7.57878060e+01 + 7.53643534e+01 7.49431573e+01 7.45242062e+01 7.41074884e+01 7.36929922e+01 + 7.32807062e+01 7.28706188e+01 7.24627187e+01 7.20569944e+01 7.16534347e+01 + 7.12520282e+01 7.08527639e+01 7.04556305e+01 7.00606171e+01 6.96677126e+01 + 6.92769059e+01 6.88881863e+01 6.85015428e+01 6.81169647e+01 6.77344412e+01 + 6.73539617e+01 6.69755155e+01 6.65990920e+01 6.62246807e+01 6.58522711e+01 + 6.54818529e+01 6.51134156e+01 6.47469490e+01 6.43824427e+01 6.40198867e+01 + 6.36592707e+01 6.33005847e+01 6.29438185e+01 6.25889623e+01 6.22360060e+01 + 6.18849398e+01 6.15357538e+01 6.11884382e+01 6.08429833e+01 6.04993794e+01 + 6.01576169e+01 5.98176861e+01 5.94795775e+01 5.91432817e+01 5.88087891e+01 + 5.84760904e+01 5.81451762e+01 5.78160373e+01 5.74886643e+01 5.71630481e+01 + 5.68391795e+01 5.65170493e+01 5.61966487e+01 5.58779684e+01 5.55609995e+01 + 5.52457331e+01 5.49321604e+01 5.46202725e+01 5.43100605e+01 5.40015159e+01 + 5.36946297e+01 5.33893935e+01 5.30857986e+01 5.27838363e+01 5.24834983e+01 + 5.21847760e+01 5.18876610e+01 5.15921448e+01 5.12982192e+01 5.10058759e+01 + 5.07151065e+01 5.04259028e+01 5.01382567e+01 4.98521601e+01 4.95676048e+01 + 4.92845828e+01 4.90030860e+01 4.87231065e+01 4.84446364e+01 4.81676678e+01 + 4.78921928e+01 4.76182037e+01 4.73456926e+01 4.70746518e+01 4.68050736e+01 + 4.65369504e+01 4.62702746e+01 4.60050386e+01 4.57412349e+01 4.54788559e+01 + 4.52178943e+01 4.49583426e+01 4.47001933e+01 4.44434393e+01 4.41880732e+01 + 4.39340877e+01 4.36814755e+01 4.34302296e+01 4.31803427e+01 4.29318077e+01 + 4.26846176e+01 4.24387652e+01 4.21942437e+01 4.19510460e+01 4.17091651e+01 + 4.14685943e+01 4.12293265e+01 4.09913551e+01 4.07546731e+01 4.05192739e+01 + 4.02851507e+01 4.00522968e+01 3.98207056e+01 3.95903704e+01 3.93612847e+01 + 3.91334419e+01 3.89068354e+01 3.86814589e+01 3.84573058e+01 3.82343697e+01 + 3.80126443e+01 3.77921231e+01 3.75727999e+01 3.73546684e+01 3.71377223e+01 + 3.69219554e+01 3.67073615e+01 3.64939344e+01 3.62816680e+01 3.60705563e+01 + 3.58605931e+01 3.56517724e+01 3.54440883e+01 3.52375346e+01 3.50321056e+01 + 3.48277953e+01 3.46245978e+01 3.44225072e+01 3.42215178e+01 3.40216237e+01 + 3.38228193e+01 3.36250987e+01 3.34284562e+01 3.32328862e+01 3.30383831e+01 + 3.28449412e+01 3.26525550e+01 3.24612189e+01 3.22709273e+01 3.20816748e+01 + 3.18934559e+01 3.17062652e+01 3.15200972e+01 3.13349465e+01 3.11508079e+01 + 3.09676759e+01 3.07855453e+01 3.06044108e+01 3.04242672e+01 3.02451092e+01 + 3.00669316e+01 2.98897292e+01 2.97134970e+01 2.95382298e+01 2.93639225e+01 + 2.91905701e+01 2.90181675e+01 2.88467097e+01 2.86761917e+01 2.85066087e+01 + 2.83379555e+01 2.81702274e+01 2.80034195e+01 2.78375268e+01 2.76725447e+01 + 2.75084681e+01 2.73452925e+01 2.71830130e+01 2.70216249e+01 2.68611234e+01 + 2.67015040e+01 2.65427619e+01 2.63848925e+01 2.62278912e+01 2.60717534e+01 + 2.59164746e+01 2.57620501e+01 2.56084756e+01 2.54557464e+01 2.53038582e+01 + 2.51528065e+01 2.50025868e+01 2.48531947e+01 2.47046260e+01 2.45568762e+01 + 2.44099409e+01 2.42638160e+01 2.41184970e+01 2.39739797e+01 2.38302600e+01 + 2.36873335e+01 2.35451960e+01 2.34038435e+01 2.32632716e+01 2.31234764e+01 + 2.29844536e+01 2.28461992e+01 2.27087091e+01 2.25719793e+01 2.24360057e+01 + 2.23007843e+01 2.21663111e+01 2.20325823e+01 2.18995937e+01 2.17673416e+01 + 2.16358219e+01 2.15050308e+01 2.13749645e+01 2.12456191e+01 2.11169907e+01 + 2.09890756e+01 2.08618700e+01 2.07353701e+01 2.06095721e+01 2.04844724e+01 + 2.03600673e+01 2.02363529e+01 2.01133257e+01 1.99909821e+01 1.98693183e+01 + 1.97483308e+01 1.96280160e+01 1.95083703e+01 1.93893901e+01 1.92710720e+01 + 1.91534123e+01 1.90364076e+01 1.89200544e+01 1.88043493e+01 1.86892888e+01 + 1.85748694e+01 1.84610877e+01 1.83479404e+01 1.82354241e+01 1.81235354e+01 + 1.80122710e+01 1.79016276e+01 1.77916017e+01 1.76821903e+01 1.75733899e+01 + 1.74651973e+01 1.73576093e+01 1.72506227e+01 1.71442343e+01 1.70384408e+01 + 1.69332391e+01 1.68286261e+01 1.67245986e+01 1.66211534e+01 1.65182875e+01 + 1.64159978e+01 1.63142812e+01 1.62131347e+01 1.61125551e+01 1.60125396e+01 + 1.59130850e+01 1.58141884e+01 1.57158468e+01 1.56180572e+01 1.55208167e+01 + 1.54241223e+01 1.53279712e+01 1.52323603e+01 1.51372870e+01 1.50427481e+01 + 1.49487410e+01 1.48552628e+01 1.47623106e+01 1.46698816e+01 1.45779730e+01 + 1.44865821e+01 1.43957060e+01 1.43053420e+01 1.42154874e+01 1.41261395e+01 + 1.40372954e+01 1.39489526e+01 1.38611084e+01 1.37737600e+01 1.36869048e+01 + 1.36005403e+01 1.35146636e+01 1.34292723e+01 1.33443637e+01 1.32599353e+01 + 1.31759844e+01 1.30925085e+01 1.30095051e+01 1.29269716e+01 1.28449055e+01 + 1.27633043e+01 1.26821655e+01 1.26014866e+01 1.25212652e+01 1.24414987e+01 + 1.23621848e+01 1.22833210e+01 1.22049049e+01 1.21269341e+01 1.20494062e+01 + 1.19723188e+01 1.18956695e+01 1.18194561e+01 1.17436760e+01 1.16683271e+01 + 1.15934070e+01 1.15189134e+01 1.14448440e+01 1.13711965e+01 1.12979687e+01 + 1.12251582e+01 1.11527629e+01 1.10807804e+01 1.10092087e+01 1.09380454e+01 + 1.08672883e+01 1.07969354e+01 1.07269843e+01 1.06574330e+01 1.05882792e+01 + 1.05195209e+01 1.04511559e+01 1.03831820e+01 1.03155972e+01 1.02483994e+01 + 1.01815865e+01 1.01151564e+01 1.00491069e+01 9.98343622e+00 9.91814213e+00 + 9.85322264e+00 9.78867573e+00 9.72449937e+00 9.66069158e+00 9.59725035e+00 + 9.53417371e+00 9.47145969e+00 9.40910632e+00 9.34711165e+00 9.28547375e+00 + 9.22419068e+00 9.16326052e+00 9.10268136e+00 9.04245131e+00 8.98256847e+00 + 8.92303096e+00 8.86383691e+00 8.80498446e+00 8.74647176e+00 8.68829697e+00 + 8.63045826e+00 8.57295380e+00 8.51578178e+00 8.45894041e+00 8.40242788e+00 + 8.34624242e+00 8.29038224e+00 8.23484558e+00 8.17963070e+00 8.12473583e+00 + 8.07015924e+00 8.01589921e+00 7.96195401e+00 7.90832194e+00 7.85500128e+00 + 7.80199036e+00 7.74928748e+00 7.69689098e+00 7.64479918e+00 7.59301042e+00 + 7.54152307e+00 7.49033547e+00 7.43944601e+00 7.38885304e+00 7.33855497e+00 + 7.28855019e+00 7.23883709e+00 7.18941409e+00 7.14027961e+00 7.09143208e+00 + 7.04286993e+00 6.99459161e+00 6.94659556e+00 6.89888026e+00 6.85144416e+00 + 6.80428575e+00 6.75740351e+00 6.71079593e+00 6.66446152e+00 6.61839878e+00 + 6.57260622e+00 6.52708238e+00 6.48182579e+00 6.43683498e+00 6.39210850e+00 + 6.34764490e+00 6.30344276e+00 6.25950063e+00 6.21581711e+00 6.17239077e+00 + 6.12922020e+00 6.08630401e+00 6.04364080e+00 6.00122919e+00 5.95906780e+00 + 5.91715525e+00 5.87549020e+00 5.83407128e+00 5.79289713e+00 5.75196643e+00 + 5.71127783e+00 5.67083001e+00 5.63062164e+00 5.59065142e+00 5.55091803e+00 + 5.51142018e+00 5.47215657e+00 5.43312591e+00 5.39432693e+00 5.35575836e+00 + 5.31741892e+00 5.27930736e+00 5.24142243e+00 5.20376288e+00 5.16632747e+00 + 5.12911496e+00 5.09212414e+00 5.05535378e+00 5.01880266e+00 4.98246959e+00 + 4.94635335e+00 4.91045277e+00 4.87476664e+00 4.83929378e+00 4.80403303e+00 + 4.76898320e+00 4.73414315e+00 4.69951171e+00 4.66508772e+00 4.63087006e+00 + 4.59685757e+00 4.56304912e+00 4.52944360e+00 4.49603987e+00 4.46283682e+00 + 4.42983335e+00 4.39702835e+00 4.36442072e+00 4.33200937e+00 4.29979323e+00 + 4.26777120e+00 4.23594221e+00 4.20430520e+00 4.17285910e+00 4.14160285e+00 + 4.11053541e+00 4.07965573e+00 4.04896277e+00 4.01845549e+00 3.98813286e+00 + 3.95799386e+00 3.92803748e+00 3.89826269e+00 3.86866850e+00 3.83925389e+00 + 3.81001788e+00 3.78095946e+00 3.75207766e+00 3.72337150e+00 3.69483999e+00 + 3.66648216e+00 3.63829706e+00 3.61028372e+00 3.58244118e+00 3.55476850e+00 + 3.52726473e+00 3.49992892e+00 3.47276015e+00 3.44575749e+00 3.41892000e+00 + 3.39224677e+00 3.36573689e+00 3.33938943e+00 3.31320351e+00 3.28717821e+00 + 3.26131264e+00 3.23560591e+00 3.21005713e+00 3.18466542e+00 3.15942990e+00 + 3.13434970e+00 3.10942396e+00 3.08465180e+00 3.06003238e+00 3.03556483e+00 + 3.01124831e+00 2.98708198e+00 2.96306498e+00 2.93919649e+00 2.91547568e+00 + 2.89190171e+00 2.86847377e+00 2.84519103e+00 2.82205269e+00 2.79905793e+00 + 2.77620595e+00 2.75349594e+00 2.73092712e+00 2.70849868e+00 2.68620984e+00 + 2.66405982e+00 2.64204784e+00 2.62017311e+00 2.59843488e+00 2.57683236e+00 + 2.55536481e+00 2.53403145e+00 2.51283154e+00 2.49176432e+00 2.47082905e+00 + 2.45002498e+00 2.42935138e+00 2.40880750e+00 2.38839262e+00 2.36810602e+00 + 2.34794696e+00 2.32791472e+00 2.30800860e+00 2.28822788e+00 2.26857186e+00 + 2.24903982e+00 2.22963107e+00 2.21034491e+00 2.19118065e+00 2.17213760e+00 + 2.15321507e+00 2.13441238e+00 2.11572886e+00 2.09716382e+00 2.07871661e+00 + 2.06038654e+00 2.04217296e+00 2.02407521e+00 2.00609263e+00 1.98822456e+00 + 1.97047037e+00 1.95282939e+00 1.93530099e+00 1.91788454e+00 1.90057938e+00 + 1.88338490e+00 1.86630046e+00 1.84932544e+00 1.83245921e+00 1.81570116e+00 + 1.79905067e+00 1.78250713e+00 1.76606992e+00 1.74973846e+00 1.73351212e+00 + 1.71739031e+00 1.70137244e+00 1.68545791e+00 1.66964614e+00 1.65393654e+00 + 1.63832852e+00 1.62282150e+00 1.60741492e+00 1.59210818e+00 1.57690073e+00 + 1.56179200e+00 1.54678141e+00 1.53186842e+00 1.51705246e+00 1.50233297e+00 + 1.48770940e+00 1.47318121e+00 1.45874785e+00 1.44440877e+00 1.43016343e+00 + 1.41601130e+00 1.40195184e+00 1.38798451e+00 1.37410880e+00 1.36032417e+00 + 1.34663009e+00 1.33302606e+00 1.31951155e+00 1.30608605e+00 1.29274904e+00 + 1.27950001e+00 1.26633846e+00 1.25326389e+00 1.24027580e+00 1.22737367e+00 + 1.21455703e+00 1.20182537e+00 1.18917821e+00 1.17661506e+00 1.16413543e+00 + 1.15173884e+00 1.13942481e+00 1.12719287e+00 1.11504254e+00 1.10297334e+00 + 1.09098481e+00 1.07907648e+00 1.06724789e+00 1.05549857e+00 1.04382807e+00 + 1.03223593e+00 1.02072169e+00 1.00928490e+00 9.97925112e-01 9.86641881e-01 + 9.75434761e-01 9.64303309e-01 9.53247087e-01 9.42265655e-01 9.31358580e-01 + 9.20525428e-01 9.09765770e-01 8.99079177e-01 8.88465224e-01 8.77923487e-01 + 8.67453546e-01 8.57054981e-01 8.46727377e-01 8.36470319e-01 8.26283395e-01 + 8.16166196e-01 8.06118314e-01 7.96139344e-01 7.86228882e-01 7.76386529e-01 + 7.66611885e-01 7.56904555e-01 7.47264143e-01 7.37690257e-01 7.28182509e-01 + 7.18740509e-01 7.09363872e-01 7.00052215e-01 6.90805156e-01 6.81622315e-01 + 6.72503315e-01 6.63447781e-01 6.54455339e-01 6.45525619e-01 6.36658251e-01 + 6.27852868e-01 6.19109104e-01 6.10426597e-01 6.01804986e-01 5.93243911e-01 + 5.84743015e-01 5.76301942e-01 5.67920340e-01 5.59597857e-01 5.51334144e-01 + 5.43128853e-01 5.34981638e-01 5.26892155e-01 5.18860064e-01 5.10885023e-01 + 5.02966695e-01 4.95104744e-01 4.87298834e-01 4.79548634e-01 4.71853813e-01 + 4.64214041e-01 4.56628992e-01 4.49098341e-01 4.41621763e-01 4.34198937e-01 + 4.26829543e-01 4.19513263e-01 4.12249780e-01 4.05038780e-01 3.97879949e-01 + 3.90772977e-01 3.83717553e-01 3.76713370e-01 3.69760122e-01 3.62857504e-01 + 3.56005214e-01 3.49202950e-01 3.42450412e-01 3.35747304e-01 3.29093328e-01 + 3.22488191e-01 3.15931599e-01 3.09423261e-01 3.02962888e-01 2.96550191e-01 + 2.90184883e-01 2.83866681e-01 2.77595300e-01 2.71370459e-01 2.65191877e-01 + 2.59059276e-01 2.52972379e-01 2.46930910e-01 2.40934595e-01 2.34983162e-01 + 2.29076339e-01 2.23213858e-01 2.17395449e-01 2.11620846e-01 2.05889785e-01 + 2.00202002e-01 1.94557234e-01 1.88955220e-01 1.83395703e-01 1.77878423e-01 + 1.72403125e-01 1.66969553e-01 1.61577453e-01 1.56226575e-01 1.50916667e-01 + 1.45647479e-01 1.40418764e-01 1.35230275e-01 1.30081768e-01 1.24972997e-01 + 1.19903721e-01 1.14873698e-01 1.09882689e-01 1.04930456e-01 1.00016760e-01 + 9.51413669e-02 9.03040415e-02 8.55045508e-02 8.07426628e-02 7.60181470e-02 + 7.13307740e-02 6.66803158e-02 6.20665457e-02 5.74892382e-02 5.29481691e-02 + 4.84431153e-02 4.39738552e-02 3.95401682e-02 3.51418352e-02 3.07786380e-02 + 2.64503598e-02 2.21567851e-02 1.78976994e-02 1.36728896e-02 9.48214365e-03 + 5.32525073e-03 1.20200121e-03 -2.88781336e-03 -6.94440028e-03 -1.09679657e-02 + -1.49587145e-02 -1.89168506e-02 -2.28425767e-02 -2.67360942e-02 -3.05976037e-02 + -3.44273043e-02 -3.82253943e-02 -4.19920708e-02 -4.57275295e-02 -4.94319655e-02 + -5.31055725e-02 -5.67485430e-02 -6.03610687e-02 -6.39433401e-02 -6.74955466e-02 + -7.10178766e-02 -7.45105174e-02 -7.79736551e-02 -8.14074751e-02 -8.48121614e-02 + -8.81878972e-02 -9.15348645e-02 -9.48532444e-02 -9.81432169e-02 -1.01404961e-01 + -1.04638655e-01 -1.07844475e-01 -1.11022598e-01 -1.14173199e-01 -1.17296451e-01 + -1.20392528e-01 -1.23461602e-01 -1.26503843e-01 -1.29519423e-01 -1.32508509e-01 + -1.35471271e-01 -1.38407875e-01 -1.41318488e-01 -1.44203275e-01 -1.47062401e-01 + -1.49896028e-01 -1.52704320e-01 -1.55487438e-01 -1.58245544e-01 -1.60978795e-01 + -1.63687353e-01 -1.66371373e-01 -1.69031015e-01 -1.71666433e-01 -1.74277784e-01 + -1.76865220e-01 -1.79428897e-01 -1.81968967e-01 -1.84485581e-01 -1.86978891e-01 + -1.89449046e-01 -1.91896196e-01 -1.94320490e-01 -1.96722074e-01 -1.99101095e-01 + -2.01457699e-01 -2.03792032e-01 -2.06104237e-01 -2.08394457e-01 -2.10662836e-01 + -2.12909515e-01 -2.15134635e-01 -2.17338336e-01 -2.19520757e-01 -2.21682038e-01 + -2.23822314e-01 -2.25941724e-01 -2.28040404e-01 -2.30118489e-01 -2.32176113e-01 + -2.34213411e-01 -2.36230515e-01 -2.38227558e-01 -2.40204671e-01 -2.42161985e-01 + -2.44099630e-01 -2.46017735e-01 -2.47916430e-01 -2.49795841e-01 -2.51656095e-01 + -2.53497320e-01 -2.55319640e-01 -2.57123180e-01 -2.58908065e-01 -2.60674419e-01 + -2.62422363e-01 -2.64152019e-01 -2.65863510e-01 -2.67556956e-01 -2.69232476e-01 + -2.70890190e-01 -2.72530216e-01 -2.74152673e-01 -2.75757677e-01 -2.77345345e-01 + -2.78915792e-01 -2.80469135e-01 -2.82005487e-01 -2.83524962e-01 -2.85027673e-01 + -2.86513733e-01 -2.87983254e-01 -2.89436347e-01 -2.90873122e-01 -2.92293689e-01 + -2.93698158e-01 -2.95086637e-01 -2.96459235e-01 -2.97816058e-01 -2.99157214e-01 + -3.00482808e-01 -3.01792946e-01 -3.03087733e-01 -3.04367274e-01 -3.05631671e-01 + -3.06881028e-01 -3.08115448e-01 -3.09335032e-01 -3.10539882e-01 -3.11730098e-01 + -3.12905781e-01 -3.14067030e-01 -3.15213944e-01 -3.16346621e-01 -3.17465159e-01 + -3.18569655e-01 -3.19660206e-01 -3.20736909e-01 -3.21799858e-01 -3.22849148e-01 + -3.23884874e-01 -3.24907130e-01 -3.25916009e-01 -3.26911604e-01 -3.27894007e-01 + -3.28863310e-01 -3.29819603e-01 -3.30762978e-01 -3.31693524e-01 -3.32611331e-01 + -3.33516488e-01 -3.34409084e-01 -3.35289206e-01 -3.36156941e-01 -3.37012378e-01 + -3.37855601e-01 -3.38686698e-01 -3.39505753e-01 -3.40312851e-01 -3.41108077e-01 + -3.41891514e-01 -3.42663247e-01 -3.43423357e-01 -3.44171927e-01 -3.44909040e-01 + -3.45634776e-01 -3.46349217e-01 -3.47052442e-01 -3.47744533e-01 -3.48425568e-01 + -3.49095627e-01 -3.49754788e-01 -3.50403129e-01 -3.51040727e-01 -3.51667661e-01 + -3.52284007e-01 -3.52889840e-01 -3.53485238e-01 -3.54070274e-01 -3.54645025e-01 + -3.55209564e-01 -3.55763965e-01 -3.56308303e-01 -3.56842650e-01 -3.57367079e-01 + -3.57881662e-01 -3.58386471e-01 -3.58881577e-01 -3.59367052e-01 -3.59842965e-01 + -3.60309388e-01 -3.60766390e-01 -3.61214039e-01 -3.61652405e-01 -3.62081557e-01 + -3.62501562e-01 -3.62912488e-01 -3.63314403e-01 -3.63707372e-01 -3.64091463e-01 + -3.64466741e-01 -3.64833273e-01 -3.65191122e-01 -3.65540355e-01 -3.65881036e-01 + -3.66213228e-01 -3.66536996e-01 -3.66852402e-01 -3.67159509e-01 -3.67458381e-01 + -3.67749078e-01 -3.68031664e-01 -3.68306198e-01 -3.68572743e-01 -3.68831359e-01 + -3.69082107e-01 -3.69325045e-01 -3.69560234e-01 -3.69787732e-01 -3.70007599e-01 + -3.70219894e-01 -3.70424673e-01 -3.70621996e-01 -3.70811918e-01 -3.70994499e-01 + -3.71169793e-01 -3.71337857e-01 -3.71498749e-01 -3.71652522e-01 -3.71799232e-01 + -3.71938935e-01 -3.72071685e-01 -3.72197537e-01 -3.72316543e-01 -3.72428759e-01 + -3.72534237e-01 -3.72633030e-01 -3.72725191e-01 -3.72810773e-01 -3.72889827e-01 + -3.72962404e-01 -3.73028557e-01 -3.73088337e-01 -3.73141794e-01 -3.73188978e-01 + -3.73229940e-01 -3.73264730e-01 -3.73293396e-01 -3.73315989e-01 -3.73332557e-01 + -3.73343148e-01 -3.73347812e-01 -3.73346595e-01 -3.73339546e-01 -3.73326712e-01 + -3.73308140e-01 -3.73283877e-01 -3.73253970e-01 -3.73218464e-01 -3.73177405e-01 + -3.73130840e-01 -3.73078813e-01 -3.73021370e-01 -3.72958555e-01 -3.72890413e-01 + -3.72816988e-01 -3.72738325e-01 -3.72654466e-01 -3.72565455e-01 -3.72471335e-01 + -3.72372149e-01 -3.72267940e-01 -3.72158750e-01 -3.72044622e-01 -3.71925595e-01 + -3.71801714e-01 -3.71673017e-01 -3.71539548e-01 -3.71401345e-01 -3.71258451e-01 + -3.71110904e-01 -3.70958745e-01 -3.70802014e-01 -3.70640750e-01 -3.70474993e-01 + -3.70304780e-01 -3.70130151e-01 -3.69951145e-01 -3.69767799e-01 -3.69580152e-01 + -3.69388241e-01 -3.69192104e-01 -3.68991778e-01 -3.68787299e-01 -3.68578706e-01 + -3.68366033e-01 -3.68149318e-01 -3.67928596e-01 -3.67703904e-01 -3.67475277e-01 + -3.67242750e-01 -3.67006358e-01 -3.66766136e-01 -3.66522120e-01 -3.66274343e-01 + -3.66022839e-01 -3.65767643e-01 -3.65508788e-01 -3.65246307e-01 -3.64980235e-01 + -3.64710605e-01 -3.64437448e-01 -3.64160798e-01 -3.63880687e-01 -3.63597148e-01 + -3.63310212e-01 -3.63019912e-01 -3.62726278e-01 -3.62429343e-01 -3.62129137e-01 + -3.61825691e-01 -3.61519036e-01 -3.61209204e-01 -3.60896223e-01 -3.60580124e-01 + -3.60260938e-01 -3.59938693e-01 -3.59613420e-01 -3.59285147e-01 -3.58953904e-01 + -3.58619720e-01 -3.58282624e-01 -3.57942644e-01 -3.57599807e-01 -3.57254144e-01 + -3.56905681e-01 -3.56554446e-01 -3.56200467e-01 -3.55843771e-01 -3.55484386e-01 + -3.55122338e-01 -3.54757654e-01 -3.54390361e-01 -3.54020485e-01 -3.53648052e-01 + -3.53273090e-01 -3.52895622e-01 -3.52515676e-01 -3.52133276e-01 -3.51748448e-01 + -3.51361217e-01 -3.50971609e-01 -3.50579647e-01 -3.50185356e-01 -3.49788762e-01 + -3.49389887e-01 -3.48988757e-01 -3.48585395e-01 -3.48179824e-01 -3.47772069e-01 + -3.47362152e-01 -3.46950097e-01 -3.46535928e-01 -3.46119665e-01 -3.45701334e-01 + -3.45280955e-01 -3.44858551e-01 -3.44434144e-01 -3.44007757e-01 -3.43579412e-01 + -3.43149128e-01 -3.42716930e-01 -3.42282836e-01 -3.41846870e-01 -3.41409051e-01 + -3.40969401e-01 -3.40527939e-01 -3.40084688e-01 -3.39639666e-01 -3.39192894e-01 + -3.38744393e-01 -3.38294181e-01 -3.37842278e-01 -3.37388705e-01 -3.36933480e-01 + -3.36476622e-01 -3.36018151e-01 -3.35558085e-01 -3.35096442e-01 -3.34633242e-01 + -3.34168503e-01 -3.33702243e-01 -3.33234480e-01 -3.32765231e-01 -3.32294515e-01 + -3.31822348e-01 -3.31348749e-01 -3.30873735e-01 -3.30397322e-01 -3.29919527e-01 + -3.29440368e-01 -3.28959860e-01 -3.28478021e-01 -3.27994865e-01 -3.27510410e-01 + -3.27024672e-01 -3.26537665e-01 -3.26049406e-01 -3.25559910e-01 -3.25069192e-01 + -3.24577267e-01 -3.24084151e-01 -3.23589857e-01 -3.23094401e-01 -3.22597798e-01 + -3.22100060e-01 -3.21601203e-01 -3.21101240e-01 -3.20600185e-01 -3.20098052e-01 + -3.19594854e-01 -3.19090604e-01 -3.18585316e-01 -3.18079002e-01 -3.17571675e-01 + -3.17063348e-01 -3.16554033e-01 -3.16043742e-01 -3.15532488e-01 -3.15020282e-01 + -3.14507136e-01 -3.13993062e-01 -3.13478070e-01 -3.12962173e-01 -3.12445381e-01 + -3.11927705e-01 -3.11409156e-01 -3.10889743e-01 -3.10369478e-01 -3.09848371e-01 + -3.09326431e-01 -3.08803668e-01 -3.08280091e-01 -3.07755711e-01 -3.07230536e-01 + -3.06704576e-01 -3.06177838e-01 -3.05650332e-01 -3.05122065e-01 -3.04593047e-01 + -3.04063285e-01 -3.03532787e-01 -3.03001561e-01 -3.02469613e-01 -3.01936952e-01 + -3.01403583e-01 -3.00869515e-01 -3.00334753e-01 -2.99799303e-01 -2.99263173e-01 + -2.98726367e-01 -2.98188891e-01 -2.97650751e-01 -2.97111953e-01 -2.96572500e-01 + -2.96032398e-01 -2.95491652e-01 -2.94950265e-01 -2.94408242e-01 -2.93865586e-01 + -2.93322302e-01 -2.92778392e-01 -2.92233859e-01 -2.91688707e-01 -2.91142937e-01 + -2.90596553e-01 -2.90049556e-01 -2.89501948e-01 -2.88953730e-01 -2.88404904e-01 + -2.87855471e-01 -2.87305431e-01 -2.86754785e-01 -2.86203532e-01 -2.85651673e-01 + -2.85099207e-01 -2.84546134e-01 -2.83992451e-01 -2.83438159e-01 -2.82883254e-01 + -2.82327736e-01 -2.81771601e-01 -2.81214847e-01 -2.80657471e-01 -2.80099470e-01 + -2.79540840e-01 -2.78981576e-01 -2.78421675e-01 -2.77861132e-01 -2.77299942e-01 + -2.76738098e-01 -2.76175596e-01 -2.75612428e-01 -2.75048590e-01 -2.74484072e-01 + -2.73918869e-01 -2.73352971e-01 -2.72786372e-01 -2.72219062e-01 -2.71651032e-01 + -2.71082273e-01 -2.70512775e-01 -2.69942527e-01 -2.69371519e-01 -2.68799739e-01 + -2.68227176e-01 -2.67653817e-01 -2.67079650e-01 -2.66504662e-01 -2.65928838e-01 + -2.65352166e-01 -2.64774629e-01 -2.64196213e-01 -2.63616903e-01 -2.63036681e-01 + -2.62455531e-01 -2.61873437e-01 -2.61290379e-01 -2.60706339e-01 -2.60121299e-01 + -2.59535239e-01 -2.58948138e-01 -2.58359975e-01 -2.57770730e-01 -2.57180380e-01 + -2.56588902e-01 -2.55996273e-01 -2.55402470e-01 -2.54807466e-01 -2.54211238e-01 + -2.53613758e-01 -2.53015001e-01 -2.52414938e-01 -2.51813542e-01 -2.51210784e-01 + -2.50606633e-01 -2.50001061e-01 -2.49394035e-01 -2.48785523e-01 -2.48175494e-01 + -2.47563913e-01 -2.46950746e-01 -2.46335958e-01 -2.45719514e-01 -2.45101375e-01 + -2.44481506e-01 -2.43859866e-01 -2.43236418e-01 -2.42611120e-01 -2.41983931e-01 + -2.41354809e-01 -2.40723712e-01 -2.40090595e-01 -2.39455414e-01 -2.38818122e-01 + -2.38178672e-01 -2.37537018e-01 -2.36893110e-01 -2.36246897e-01 -2.35598331e-01 + -2.34947357e-01 -2.34293925e-01 -2.33637979e-01 -2.32979464e-01 -2.32318325e-01 + -2.31654504e-01 -2.30987943e-01 -2.30318583e-01 -2.29646362e-01 -2.28971220e-01 + -2.28293093e-01 -2.27611917e-01 -2.26927628e-01 -2.26240159e-01 -2.25549442e-01 + -2.24855410e-01 -2.24157991e-01 -2.23457115e-01 -2.22752711e-01 -2.22044703e-01 + -2.21333018e-01 -2.20617580e-01 -2.19898312e-01 -2.19175135e-01 -2.18447970e-01 + -2.17716735e-01 -2.16981350e-01 -2.16241730e-01 -2.15497792e-01 -2.14749449e-01 + -2.13996614e-01 -2.13239200e-01 -2.12477117e-01 -2.11710274e-01 -2.10938580e-01 + -2.10161942e-01 -2.09380265e-01 -2.08593455e-01 -2.07801414e-01 -2.07004046e-01 + -2.06201251e-01 -2.05392930e-01 -2.04578982e-01 -2.03759305e-01 -2.02933795e-01 + -2.02102350e-01 -2.01264865e-01 -2.00421232e-01 -1.99571346e-01 -1.98715099e-01 + -1.97852383e-01 -1.96983088e-01 -1.96107105e-01 -1.95224322e-01 -1.94334629e-01 + -1.93437914e-01 -1.92534064e-01 -1.91622967e-01 -1.90704510e-01 -1.89778578e-01 + -1.88845059e-01 -1.87903839e-01 -1.86954803e-01 -1.85997837e-01 -1.85032828e-01 + -1.84059661e-01 -1.83078225e-01 -1.82088405e-01 -1.81090089e-01 -1.80083164e-01 + -1.79067521e-01 -1.78043049e-01 -1.77009638e-01 -1.75967181e-01 -1.74915569e-01 + -1.73854699e-01 -1.72784466e-01 -1.71704767e-01 -1.70615503e-01 -1.69516576e-01 + -1.68407889e-01 -1.67289349e-01 -1.66160865e-01 -1.65022349e-01 -1.63873717e-01 + -1.62714886e-01 -1.61545778e-01 -1.60366318e-01 -1.59176437e-01 -1.57976067e-01 + -1.56765147e-01 -1.55543618e-01 -1.54311430e-01 -1.53068533e-01 -1.51814888e-01 + -1.50550457e-01 -1.49275211e-01 -1.47989126e-01 -1.46692185e-01 -1.45384379e-01 + -1.44065704e-01 -1.42736166e-01 -1.41395777e-01 -1.40044559e-01 -1.38682540e-01 + -1.37309761e-01 -1.35926268e-01 -1.34532119e-01 -1.33127381e-01 -1.31712132e-01 + -1.30286461e-01 -1.28850467e-01 -1.27404261e-01 -1.25947965e-01 -1.24481714e-01 + -1.23005655e-01 -1.21519948e-01 -1.20024766e-01 -1.18520294e-01 -1.17006735e-01 + -1.15484301e-01 -1.13953221e-01 -1.12413739e-01 -1.10866114e-01 -1.09310620e-01 + -1.07747545e-01 -1.06177195e-01 -1.04599892e-01 -1.03015972e-01 -1.01425791e-01 + -9.98297178e-02 -9.82281413e-02 -9.66214653e-02 -9.50101113e-02 -9.33945177e-02 + -9.17751402e-02 -9.01524512e-02 -8.85269406e-02 -8.68991149e-02 -8.52694975e-02 + -8.36386287e-02 -8.20070652e-02 -8.03753796e-02 -7.87441609e-02 -7.71140134e-02 + -7.54855567e-02 -7.38594249e-02 -7.22362666e-02 -7.06167438e-02 -6.90015316e-02 + -6.73913175e-02 -6.57868005e-02 -6.41886904e-02 -6.25977069e-02 -6.10145787e-02 + -5.94400425e-02 -5.78748417e-02 -5.63197260e-02 -5.47754491e-02 -5.32427687e-02 + -5.17224440e-02 -5.02152354e-02 -4.87219023e-02 -4.72432019e-02 -4.57798880e-02 + -4.43327089e-02 -4.29024059e-02 -4.14897120e-02 -4.00953498e-02 -3.87200300e-02 + -3.73644495e-02 -3.60292898e-02 -3.47152149e-02 -3.34228699e-02 -3.21528790e-02 + -3.09058435e-02 -2.96823405e-02 -2.84829208e-02 -2.73081072e-02 -2.61583928e-02 + -2.50342396e-02 -2.39360766e-02 -2.28642984e-02 -2.18192640e-02 -2.08012951e-02 + -1.98106749e-02 -1.88476472e-02 -1.79124150e-02 -1.70051400e-02 -1.61259413e-02 + -1.52748953e-02 -1.44520347e-02 -1.36573486e-02 -1.28907819e-02 -1.21522356e-02 + -1.14415667e-02 -1.07585887e-02 -1.01030720e-02 -9.47474459e-03 -8.87329287e-03 + -8.29836274e-03 -7.74956073e-03 -7.22645543e-03 -6.72857898e-03 -6.25542881e-03 + -5.80646946e-03 -5.38113458e-03 -4.97882911e-03 -4.59893146e-03 -4.24079595e-03 + -3.90375522e-03 -3.58712281e-03 -3.29019579e-03 -3.01225738e-03 -2.75257971e-03 + -2.51042650e-03 -2.28505583e-03 -2.07572280e-03 -1.88168219e-03 -1.70219116e-03 + -1.53651170e-03 -1.38391314e-03 -1.24367451e-03 -1.11508676e-03 -9.97454879e-04 + -8.90099873e-04 -7.92360551e-04 -7.03595185e-04 -6.23182986e-04 -5.50525391e-04 + -4.85047182e-04 -4.26197410e-04 -3.73450139e-04 -3.26304997e-04 -2.84287557e-04 + -2.46949530e-04 -2.13868796e-04 -1.84649264e-04 -1.58920587e-04 -1.36337730e-04 + -1.16580404e-04 -9.93523900e-05 -8.43807493e-05 -7.14149460e-05 -6.02258921e-05 + -5.06049271e-05 -4.23627497e-05 -3.53283117e-05 -2.93476901e-05 -2.42829478e-05 + -2.00109953e-05 -1.64224645e-05 -1.34206037e-05 -1.09202024e-05 -8.84655474e-06 + -7.13446549e-06 -5.72730630e-06 -4.57612466e-06 -3.63880915e-06 -2.87931270e-06 + -2.26693489e-06 -1.77566315e-06 -1.38357233e-06 -1.07228097e-06 -8.26462211e-07 + -6.33407021e-07 -4.82636499e-07 -3.65560252e-07 -2.75177336e-07 -2.05816266e-07 + -1.52910556e-07 -1.12806264e-07 -8.25981543e-08 -5.99912045e-08 -4.31843728e-08 + -3.07737665e-08 -2.16725592e-08 -1.50452580e-08 -1.02541552e-08 -6.81604222e-09 + -4.36749115e-09 -2.63722754e-09 -1.42432372e-09 -5.81126127e-10 0.00000000e+00 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49783707e+02 + 1.49783707e+02 1.49783707e+02 1.49783707e+02 1.49179292e+02 1.48418948e+02 + 1.47662380e+02 1.46909571e+02 1.46160501e+02 1.45415152e+02 1.44673507e+02 + 1.43935545e+02 1.43201251e+02 1.42470604e+02 1.41743588e+02 1.41020184e+02 + 1.40300375e+02 1.39584143e+02 1.38871471e+02 1.38162340e+02 1.37456733e+02 + 1.36754634e+02 1.36056024e+02 1.35360887e+02 1.34669205e+02 1.33980961e+02 + 1.33296139e+02 1.32614721e+02 1.31936692e+02 1.31262033e+02 1.30590728e+02 + 1.29922762e+02 1.29258117e+02 1.28596777e+02 1.27938726e+02 1.27283948e+02 + 1.26632426e+02 1.25984144e+02 1.25339087e+02 1.24697239e+02 1.24058583e+02 + 1.23423104e+02 1.22790787e+02 1.22161615e+02 1.21535573e+02 1.20912647e+02 + 1.20292820e+02 1.19676076e+02 1.19062402e+02 1.18451782e+02 1.17844201e+02 + 1.17239643e+02 1.16638094e+02 1.16039540e+02 1.15443964e+02 1.14851353e+02 + 1.14261692e+02 1.13674967e+02 1.13091163e+02 1.12510265e+02 1.11932259e+02 + 1.11357132e+02 1.10784868e+02 1.10215454e+02 1.09648875e+02 1.09085118e+02 + 1.08524169e+02 1.07966014e+02 1.07410638e+02 1.06858029e+02 1.06308173e+02 + 1.05761056e+02 1.05216665e+02 1.04674986e+02 1.04136006e+02 1.03599711e+02 + 1.03066088e+02 1.02535125e+02 1.02006807e+02 1.01481123e+02 1.00958058e+02 + 1.00437601e+02 9.99197376e+01 9.94044556e+01 9.88917423e+01 9.83815849e+01 + 9.78739708e+01 9.73688876e+01 9.68663227e+01 9.63662637e+01 9.58686982e+01 + 9.53736140e+01 9.48809987e+01 9.43908403e+01 9.39031266e+01 9.34178455e+01 + 9.29349850e+01 9.24545333e+01 9.19764783e+01 9.15008083e+01 9.10275115e+01 + 9.05565762e+01 9.00879908e+01 8.96217436e+01 8.91578231e+01 8.86962179e+01 + 8.82369165e+01 8.77799075e+01 8.73251797e+01 8.68727217e+01 8.64225224e+01 + 8.59745706e+01 8.55288552e+01 8.50853653e+01 8.46440897e+01 8.42050177e+01 + 8.37681382e+01 8.33334405e+01 8.29009139e+01 8.24705475e+01 8.20423308e+01 + 8.16162531e+01 8.11923039e+01 8.07704726e+01 8.03507489e+01 7.99331223e+01 + 7.95175824e+01 7.91041189e+01 7.86927217e+01 7.82833805e+01 7.78760851e+01 + 7.74708255e+01 7.70675915e+01 7.66663733e+01 7.62671608e+01 7.58699442e+01 + 7.54747135e+01 7.50814591e+01 7.46901710e+01 7.43008397e+01 7.39134555e+01 + 7.35280086e+01 7.31444897e+01 7.27628891e+01 7.23831974e+01 7.20054051e+01 + 7.16295030e+01 7.12554815e+01 7.08833316e+01 7.05130438e+01 7.01446090e+01 + 6.97780181e+01 6.94132620e+01 6.90503316e+01 6.86892178e+01 6.83299117e+01 + 6.79724044e+01 6.76166870e+01 6.72627507e+01 6.69105866e+01 6.65601860e+01 + 6.62115401e+01 6.58646404e+01 6.55194782e+01 6.51760449e+01 6.48343319e+01 + 6.44943309e+01 6.41560332e+01 6.38194305e+01 6.34845144e+01 6.31512767e+01 + 6.28197089e+01 6.24898028e+01 6.21615503e+01 6.18349431e+01 6.15099732e+01 + 6.11866324e+01 6.08649127e+01 6.05448061e+01 6.02263045e+01 5.99094002e+01 + 5.95940851e+01 5.92803515e+01 5.89681914e+01 5.86575972e+01 5.83485611e+01 + 5.80410754e+01 5.77351324e+01 5.74307245e+01 5.71278441e+01 5.68264837e+01 + 5.65266357e+01 5.62282927e+01 5.59314473e+01 5.56360919e+01 5.53422194e+01 + 5.50498223e+01 5.47588933e+01 5.44694252e+01 5.41814107e+01 5.38948427e+01 + 5.36097141e+01 5.33260176e+01 5.30437463e+01 5.27628930e+01 5.24834508e+01 + 5.22054127e+01 5.19287717e+01 5.16535209e+01 5.13796535e+01 5.11071627e+01 + 5.08360415e+01 5.05662832e+01 5.02978812e+01 5.00308286e+01 4.97651188e+01 + 4.95007453e+01 4.92377012e+01 4.89759802e+01 4.87155755e+01 4.84564808e+01 + 4.81986896e+01 4.79421953e+01 4.76869917e+01 4.74330722e+01 4.71804306e+01 + 4.69290604e+01 4.66789555e+01 4.64301096e+01 4.61825164e+01 4.59361698e+01 + 4.56910635e+01 4.54471915e+01 4.52045476e+01 4.49631257e+01 4.47229199e+01 + 4.44839240e+01 4.42461321e+01 4.40095382e+01 4.37741365e+01 4.35399210e+01 + 4.33068858e+01 4.30750251e+01 4.28443330e+01 4.26148039e+01 4.23864319e+01 + 4.21592113e+01 4.19331365e+01 4.17082016e+01 4.14844012e+01 4.12617295e+01 + 4.10401810e+01 4.08197502e+01 4.06004314e+01 4.03822193e+01 4.01651082e+01 + 3.99490928e+01 3.97341677e+01 3.95203273e+01 3.93075664e+01 3.90958797e+01 + 3.88852617e+01 3.86757072e+01 3.84672110e+01 3.82597677e+01 3.80533723e+01 + 3.78480194e+01 3.76437039e+01 3.74404208e+01 3.72381648e+01 3.70369308e+01 + 3.68367139e+01 3.66375090e+01 3.64393110e+01 3.62421151e+01 3.60459161e+01 + 3.58507092e+01 3.56564895e+01 3.54632520e+01 3.52709919e+01 3.50797044e+01 + 3.48893846e+01 3.47000278e+01 3.45116291e+01 3.43241838e+01 3.41376873e+01 + 3.39521347e+01 3.37675214e+01 3.35838428e+01 3.34010942e+01 3.32192711e+01 + 3.30383687e+01 3.28583827e+01 3.26793083e+01 3.25011411e+01 3.23238767e+01 + 3.21475104e+01 3.19720380e+01 3.17974549e+01 3.16237567e+01 3.14509390e+01 + 3.12789976e+01 3.11079279e+01 3.09377258e+01 3.07683869e+01 3.05999069e+01 + 3.04322815e+01 3.02655066e+01 3.00995779e+01 2.99344912e+01 2.97702424e+01 + 2.96068272e+01 2.94442415e+01 2.92824813e+01 2.91215424e+01 2.89614208e+01 + 2.88021124e+01 2.86436131e+01 2.84859190e+01 2.83290261e+01 2.81729303e+01 + 2.80176277e+01 2.78631145e+01 2.77093866e+01 2.75564402e+01 2.74042714e+01 + 2.72528763e+01 2.71022511e+01 2.69523920e+01 2.68032952e+01 2.66549568e+01 + 2.65073732e+01 2.63605406e+01 2.62144552e+01 2.60691133e+01 2.59245113e+01 + 2.57806454e+01 2.56375121e+01 2.54951076e+01 2.53534285e+01 2.52124709e+01 + 2.50722315e+01 2.49327065e+01 2.47938925e+01 2.46557860e+01 2.45183833e+01 + 2.43816811e+01 2.42456758e+01 2.41103640e+01 2.39757422e+01 2.38418071e+01 + 2.37085551e+01 2.35759829e+01 2.34440871e+01 2.33128644e+01 2.31823115e+01 + 2.30524249e+01 2.29232013e+01 2.27946376e+01 2.26667304e+01 2.25394764e+01 + 2.24128724e+01 2.22869151e+01 2.21616014e+01 2.20369281e+01 2.19128919e+01 + 2.17894897e+01 2.16667184e+01 2.15445748e+01 2.14230557e+01 2.13021582e+01 + 2.11818790e+01 2.10622152e+01 2.09431636e+01 2.08247212e+01 2.07068850e+01 + 2.05896520e+01 2.04730192e+01 2.03569835e+01 2.02415420e+01 2.01266918e+01 + 2.00124300e+01 1.98987535e+01 1.97856594e+01 1.96731450e+01 1.95612073e+01 + 1.94498434e+01 1.93390504e+01 1.92288256e+01 1.91191661e+01 1.90100691e+01 + 1.89015317e+01 1.87935513e+01 1.86861250e+01 1.85792501e+01 1.84729238e+01 + 1.83671434e+01 1.82619062e+01 1.81572095e+01 1.80530505e+01 1.79494267e+01 + 1.78463353e+01 1.77437737e+01 1.76417392e+01 1.75402293e+01 1.74392413e+01 + 1.73387726e+01 1.72388207e+01 1.71393829e+01 1.70404567e+01 1.69420395e+01 + 1.68441289e+01 1.67467222e+01 1.66498171e+01 1.65534109e+01 1.64575012e+01 + 1.63620855e+01 1.62671614e+01 1.61727263e+01 1.60787780e+01 1.59853139e+01 + 1.58923316e+01 1.57998288e+01 1.57078030e+01 1.56162518e+01 1.55251730e+01 + 1.54345641e+01 1.53444228e+01 1.52547467e+01 1.51655336e+01 1.50767812e+01 + 1.49884871e+01 1.49006490e+01 1.48132647e+01 1.47263319e+01 1.46398484e+01 + 1.45538120e+01 1.44682203e+01 1.43830712e+01 1.42983624e+01 1.42140919e+01 + 1.41302573e+01 1.40468565e+01 1.39638874e+01 1.38813477e+01 1.37992354e+01 + 1.37175484e+01 1.36362844e+01 1.35554414e+01 1.34750172e+01 1.33950099e+01 + 1.33154172e+01 1.32362372e+01 1.31574678e+01 1.30791069e+01 1.30011525e+01 + 1.29236025e+01 1.28464550e+01 1.27697079e+01 1.26933592e+01 1.26174070e+01 + 1.25418492e+01 1.24666839e+01 1.23919091e+01 1.23175229e+01 1.22435233e+01 + 1.21699084e+01 1.20966763e+01 1.20238251e+01 1.19513528e+01 1.18792576e+01 + 1.18075376e+01 1.17361909e+01 1.16652156e+01 1.15946099e+01 1.15243720e+01 + 1.14544999e+01 1.13849919e+01 1.13158462e+01 1.12470609e+01 1.11786342e+01 + 1.11105644e+01 1.10428496e+01 1.09754881e+01 1.09084781e+01 1.08418179e+01 + 1.07755057e+01 1.07095397e+01 1.06439183e+01 1.05786397e+01 1.05137021e+01 + 1.04491040e+01 1.03848435e+01 1.03209190e+01 1.02573288e+01 1.01940713e+01 + 1.01311448e+01 1.00685475e+01 1.00062780e+01 9.94433443e+00 9.88271528e+00 + 9.82141891e+00 9.76044369e+00 9.69978801e+00 9.63945028e+00 9.57942890e+00 + 9.51972228e+00 9.46032886e+00 9.40124705e+00 9.34247531e+00 9.28401207e+00 + 9.22585579e+00 9.16800493e+00 9.11045796e+00 9.05321336e+00 8.99626961e+00 + 8.93962520e+00 8.88327864e+00 8.82722842e+00 8.77147307e+00 8.71601110e+00 + 8.66084104e+00 8.60596143e+00 8.55137081e+00 8.49706774e+00 8.44305077e+00 + 8.38931846e+00 8.33586938e+00 8.28270212e+00 8.22981527e+00 8.17720740e+00 + 8.12487713e+00 8.07282306e+00 8.02104381e+00 7.96953799e+00 7.91830423e+00 + 7.86734116e+00 7.81664743e+00 7.76622169e+00 7.71606259e+00 7.66616878e+00 + 7.61653894e+00 7.56717174e+00 7.51806586e+00 7.46921999e+00 7.42063283e+00 + 7.37230306e+00 7.32422941e+00 7.27641057e+00 7.22884528e+00 7.18153226e+00 + 7.13447023e+00 7.08765794e+00 7.04109413e+00 6.99477755e+00 6.94870697e+00 + 6.90288113e+00 6.85729882e+00 6.81195880e+00 6.76685986e+00 6.72200078e+00 + 6.67738036e+00 6.63299740e+00 6.58885070e+00 6.54493908e+00 6.50126134e+00 + 6.45781632e+00 6.41460284e+00 6.37161974e+00 6.32886585e+00 6.28634003e+00 + 6.24404112e+00 6.20196799e+00 6.16011949e+00 6.11849449e+00 6.07709187e+00 + 6.03591051e+00 5.99494929e+00 5.95420710e+00 5.91368284e+00 5.87337542e+00 + 5.83328374e+00 5.79340670e+00 5.75374324e+00 5.71429227e+00 5.67505272e+00 + 5.63602353e+00 5.59720364e+00 5.55859198e+00 5.52018752e+00 5.48198920e+00 + 5.44399598e+00 5.40620683e+00 5.36862073e+00 5.33123664e+00 5.29405355e+00 + 5.25707044e+00 5.22028630e+00 5.18370014e+00 5.14731094e+00 5.11111772e+00 + 5.07511948e+00 5.03931525e+00 5.00370403e+00 4.96828487e+00 4.93305677e+00 + 4.89801879e+00 4.86316997e+00 4.82850933e+00 4.79403594e+00 4.75974885e+00 + 4.72564712e+00 4.69172980e+00 4.65799598e+00 4.62444471e+00 4.59107508e+00 + 4.55788617e+00 4.52487706e+00 4.49204685e+00 4.45939462e+00 4.42691949e+00 + 4.39462055e+00 4.36249691e+00 4.33054769e+00 4.29877201e+00 4.26716897e+00 + 4.23573772e+00 4.20447738e+00 4.17338708e+00 4.14246597e+00 4.11171318e+00 + 4.08112787e+00 4.05070919e+00 4.02045629e+00 3.99036834e+00 3.96044449e+00 + 3.93068392e+00 3.90108579e+00 3.87164929e+00 3.84237360e+00 3.81325790e+00 + 3.78430138e+00 3.75550323e+00 3.72686265e+00 3.69837884e+00 3.67005100e+00 + 3.64187835e+00 3.61386009e+00 3.58599545e+00 3.55828364e+00 3.53072389e+00 + 3.50331543e+00 3.47605748e+00 3.44894929e+00 3.42199009e+00 3.39517912e+00 + 3.36851565e+00 3.34199890e+00 3.31562815e+00 3.28940264e+00 3.26332165e+00 + 3.23738442e+00 3.21159025e+00 3.18593839e+00 3.16042813e+00 3.13505874e+00 + 3.10982950e+00 3.08473972e+00 3.05978867e+00 3.03497565e+00 3.01029995e+00 + 2.98576089e+00 2.96135776e+00 2.93708988e+00 2.91295654e+00 2.88895708e+00 + 2.86509080e+00 2.84135704e+00 2.81775511e+00 2.79428434e+00 2.77094406e+00 + 2.74773362e+00 2.72465235e+00 2.70169958e+00 2.67887468e+00 2.65617697e+00 + 2.63360582e+00 2.61116059e+00 2.58884062e+00 2.56664528e+00 2.54457393e+00 + 2.52262595e+00 2.50080069e+00 2.47909755e+00 2.45751588e+00 2.43605508e+00 + 2.41471452e+00 2.39349360e+00 2.37239170e+00 2.35140821e+00 2.33054253e+00 + 2.30979405e+00 2.28916219e+00 2.26864633e+00 2.24824590e+00 2.22796030e+00 + 2.20778893e+00 2.18773123e+00 2.16778660e+00 2.14795448e+00 2.12823427e+00 + 2.10862542e+00 2.08912735e+00 2.06973950e+00 2.05046129e+00 2.03129218e+00 + 2.01223160e+00 1.99327899e+00 1.97443380e+00 1.95569549e+00 1.93706350e+00 + 1.91853730e+00 1.90011633e+00 1.88180006e+00 1.86358796e+00 1.84547948e+00 + 1.82747410e+00 1.80957130e+00 1.79177053e+00 1.77407128e+00 1.75647304e+00 + 1.73897527e+00 1.72157747e+00 1.70427912e+00 1.68707972e+00 1.66997874e+00 + 1.65297570e+00 1.63607008e+00 1.61926139e+00 1.60254913e+00 1.58593279e+00 + 1.56941190e+00 1.55298595e+00 1.53665447e+00 1.52041696e+00 1.50427294e+00 + 1.48822194e+00 1.47226347e+00 1.45639705e+00 1.44062222e+00 1.42493849e+00 + 1.40934542e+00 1.39384251e+00 1.37842932e+00 1.36310538e+00 1.34787023e+00 + 1.33272342e+00 1.31766448e+00 1.30269297e+00 1.28780843e+00 1.27301042e+00 + 1.25829849e+00 1.24367219e+00 1.22913109e+00 1.21467475e+00 1.20030272e+00 + 1.18601458e+00 1.17180988e+00 1.15768821e+00 1.14364913e+00 1.12969221e+00 + 1.11581703e+00 1.10202317e+00 1.08831021e+00 1.07467773e+00 1.06112531e+00 + 1.04765254e+00 1.03425901e+00 1.02094431e+00 1.00770803e+00 9.94549760e-01 + 9.81469105e-01 9.68465661e-01 9.55539027e-01 9.42688806e-01 9.29914602e-01 + 9.17216021e-01 9.04592672e-01 8.92044165e-01 8.79570112e-01 8.67170128e-01 + 8.54843828e-01 8.42590831e-01 8.30410756e-01 8.18303225e-01 8.06267861e-01 + 7.94304292e-01 7.82412143e-01 7.70591044e-01 7.58840626e-01 7.47160522e-01 + 7.35550368e-01 7.24009799e-01 7.12538455e-01 7.01135975e-01 6.89802001e-01 + 6.78536178e-01 6.67338150e-01 6.56207566e-01 6.45144075e-01 6.34147327e-01 + 6.23216975e-01 6.12352673e-01 6.01554078e-01 5.90820848e-01 5.80152642e-01 + 5.69549121e-01 5.59009948e-01 5.48534788e-01 5.38123307e-01 5.27775174e-01 + 5.17490057e-01 5.07267629e-01 4.97107561e-01 4.87009530e-01 4.76973210e-01 + 4.66998279e-01 4.57084418e-01 4.47231307e-01 4.37438629e-01 4.27706068e-01 + 4.18033309e-01 4.08420041e-01 3.98865952e-01 3.89370732e-01 3.79934074e-01 + 3.70555672e-01 3.61235220e-01 3.51972415e-01 3.42766955e-01 3.33618540e-01 + 3.24526871e-01 3.15491651e-01 3.06512584e-01 2.97589375e-01 2.88721732e-01 + 2.79909364e-01 2.71151979e-01 2.62449291e-01 2.53801012e-01 2.45206855e-01 + 2.36666538e-01 2.28179777e-01 2.19746291e-01 2.11365800e-01 2.03038026e-01 + 1.94762691e-01 1.86539519e-01 1.78368237e-01 1.70248571e-01 1.62180250e-01 + 1.54163003e-01 1.46196562e-01 1.38280659e-01 1.30415028e-01 1.22599404e-01 + 1.14833523e-01 1.07117123e-01 9.94499436e-02 9.18317249e-02 8.42622086e-02 + 7.67411378e-02 6.92682567e-02 6.18433109e-02 5.44660472e-02 4.71362139e-02 + 3.98535603e-02 3.26178371e-02 2.54287961e-02 1.82861905e-02 1.11897747e-02 + 4.13930434e-03 -2.86546373e-03 -9.82477145e-03 -1.67388595e-02 -2.36079675e-02 + -3.04323335e-02 -3.72121949e-02 -4.39477874e-02 -5.06393458e-02 -5.72871036e-02 + -6.38912932e-02 -7.04521458e-02 -7.69698915e-02 -8.34447591e-02 -8.98769763e-02 + -9.62667698e-02 -1.02614365e-01 -1.08919986e-01 -1.15183857e-01 -1.21406198e-01 + -1.27587232e-01 -1.33727178e-01 -1.39826254e-01 -1.45884679e-01 -1.51902669e-01 + -1.57880439e-01 -1.63818204e-01 -1.69716177e-01 -1.75574570e-01 -1.81393594e-01 + -1.87173460e-01 -1.92914376e-01 -1.98616551e-01 -2.04280191e-01 -2.09905502e-01 + -2.15492689e-01 -2.21041955e-01 -2.26553505e-01 -2.32027538e-01 -2.37464257e-01 + -2.42863861e-01 -2.48226548e-01 -2.53552516e-01 -2.58841962e-01 -2.64095082e-01 + -2.69312070e-01 -2.74493121e-01 -2.79638426e-01 -2.84748179e-01 -2.89822568e-01 + -2.94861786e-01 -2.99866020e-01 -3.04835458e-01 -3.09770287e-01 -3.14670694e-01 + -3.19536864e-01 -3.24368981e-01 -3.29167227e-01 -3.33931786e-01 -3.38662839e-01 + -3.43360567e-01 -3.48025148e-01 -3.52656762e-01 -3.57255587e-01 -3.61821799e-01 + -3.66355574e-01 -3.70857088e-01 -3.75326514e-01 -3.79764027e-01 -3.84169798e-01 + -3.88543999e-01 -3.92886801e-01 -3.97198374e-01 -4.01478887e-01 -4.05728507e-01 + -4.09947403e-01 -4.14135740e-01 -4.18293685e-01 -4.22421401e-01 -4.26519054e-01 + -4.30586805e-01 -4.34624818e-01 -4.38633254e-01 -4.42612274e-01 -4.46562036e-01 + -4.50482701e-01 -4.54374427e-01 -4.58237371e-01 -4.62071689e-01 -4.65877538e-01 + -4.69655072e-01 -4.73404446e-01 -4.77125814e-01 -4.80819327e-01 -4.84485138e-01 + -4.88123398e-01 -4.91734258e-01 -4.95317866e-01 -4.98874373e-01 -5.02403925e-01 + -5.05906671e-01 -5.09382757e-01 -5.12832329e-01 -5.16255532e-01 -5.19652510e-01 + -5.23023407e-01 -5.26368366e-01 -5.29687529e-01 -5.32981038e-01 -5.36249034e-01 + -5.39491656e-01 -5.42709043e-01 -5.45901336e-01 -5.49068670e-01 -5.52211184e-01 + -5.55329015e-01 -5.58422297e-01 -5.61491167e-01 -5.64535758e-01 -5.67556204e-01 + -5.70552639e-01 -5.73525195e-01 -5.76474004e-01 -5.79399196e-01 -5.82300903e-01 + -5.85179253e-01 -5.88034376e-01 -5.90866401e-01 -5.93675455e-01 -5.96461665e-01 + -5.99225158e-01 -6.01966060e-01 -6.04684495e-01 -6.07380589e-01 -6.10054465e-01 + -6.12706247e-01 -6.15336057e-01 -6.17944018e-01 -6.20530250e-01 -6.23094875e-01 + -6.25638012e-01 -6.28159782e-01 -6.30660303e-01 -6.33139693e-01 -6.35598071e-01 + -6.38035554e-01 -6.40452257e-01 -6.42848298e-01 -6.45223791e-01 -6.47578851e-01 + -6.49913592e-01 -6.52228129e-01 -6.54522573e-01 -6.56797038e-01 -6.59051635e-01 + -6.61286476e-01 -6.63501672e-01 -6.65697332e-01 -6.67873566e-01 -6.70030483e-01 + -6.72168192e-01 -6.74286801e-01 -6.76386416e-01 -6.78467146e-01 -6.80529096e-01 + -6.82572371e-01 -6.84597078e-01 -6.86603321e-01 -6.88591203e-01 -6.90560829e-01 + -6.92512302e-01 -6.94445723e-01 -6.96361196e-01 -6.98258822e-01 -7.00138701e-01 + -7.02000934e-01 -7.03845621e-01 -7.05672862e-01 -7.07482755e-01 -7.09275398e-01 + -7.11050891e-01 -7.12809329e-01 -7.14550810e-01 -7.16275431e-01 -7.17983287e-01 + -7.19674474e-01 -7.21349087e-01 -7.23007219e-01 -7.24648966e-01 -7.26274420e-01 + -7.27883675e-01 -7.29476822e-01 -7.31053955e-01 -7.32615164e-01 -7.34160541e-01 + -7.35690177e-01 -7.37204161e-01 -7.38702583e-01 -7.40185533e-01 -7.41653099e-01 + -7.43105369e-01 -7.44542432e-01 -7.45964375e-01 -7.47371285e-01 -7.48763248e-01 + -7.50140350e-01 -7.51502678e-01 -7.52850315e-01 -7.54183348e-01 -7.55501859e-01 + -7.56805934e-01 -7.58095656e-01 -7.59371107e-01 -7.60632370e-01 -7.61879527e-01 + -7.63112661e-01 -7.64331852e-01 -7.65537181e-01 -7.66728729e-01 -7.67906575e-01 + -7.69070800e-01 -7.70221483e-01 -7.71358701e-01 -7.72482535e-01 -7.73593062e-01 + -7.74690359e-01 -7.75774504e-01 -7.76845573e-01 -7.77903643e-01 -7.78948790e-01 + -7.79981089e-01 -7.81000616e-01 -7.82007445e-01 -7.83001652e-01 -7.83983309e-01 + -7.84952491e-01 -7.85909271e-01 -7.86853722e-01 -7.87785916e-01 -7.88705925e-01 + -7.89613822e-01 -7.90509678e-01 -7.91393563e-01 -7.92265549e-01 -7.93125705e-01 + -7.93974102e-01 -7.94810809e-01 -7.95635895e-01 -7.96449429e-01 -7.97251480e-01 + -7.98042116e-01 -7.98821405e-01 -7.99589413e-01 -8.00346208e-01 -8.01091857e-01 + -8.01826426e-01 -8.02549981e-01 -8.03262588e-01 -8.03964312e-01 -8.04655218e-01 + -8.05335370e-01 -8.06004834e-01 -8.06663672e-01 -8.07311949e-01 -8.07949728e-01 + -8.08577072e-01 -8.09194043e-01 -8.09800704e-01 -8.10397117e-01 -8.10983343e-01 + -8.11559444e-01 -8.12125480e-01 -8.12681513e-01 -8.13227603e-01 -8.13763809e-01 + -8.14290192e-01 -8.14806811e-01 -8.15313725e-01 -8.15810993e-01 -8.16298673e-01 + -8.16776824e-01 -8.17245503e-01 -8.17704767e-01 -8.18154675e-01 -8.18595283e-01 + -8.19026648e-01 -8.19448826e-01 -8.19861873e-01 -8.20265845e-01 -8.20660797e-01 + -8.21046784e-01 -8.21423862e-01 -8.21792085e-01 -8.22151507e-01 -8.22502182e-01 + -8.22844164e-01 -8.23177506e-01 -8.23502262e-01 -8.23818484e-01 -8.24126225e-01 + -8.24425537e-01 -8.24716472e-01 -8.24999082e-01 -8.25273418e-01 -8.25539531e-01 + -8.25797473e-01 -8.26047294e-01 -8.26289045e-01 -8.26522774e-01 -8.26748533e-01 + -8.26966371e-01 -8.27176336e-01 -8.27378479e-01 -8.27572848e-01 -8.27759490e-01 + -8.27938455e-01 -8.28109791e-01 -8.28273545e-01 -8.28429764e-01 -8.28578496e-01 + -8.28719788e-01 -8.28853686e-01 -8.28980236e-01 -8.29099486e-01 -8.29211480e-01 + -8.29316265e-01 -8.29413885e-01 -8.29504387e-01 -8.29587814e-01 -8.29664212e-01 + -8.29733626e-01 -8.29796098e-01 -8.29851673e-01 -8.29900395e-01 -8.29942307e-01 + -8.29977453e-01 -8.30005874e-01 -8.30027615e-01 -8.30042718e-01 -8.30051224e-01 + -8.30053177e-01 -8.30048616e-01 -8.30037585e-01 -8.30020125e-01 -8.29996276e-01 + -8.29966079e-01 -8.29929575e-01 -8.29886805e-01 -8.29837808e-01 -8.29782625e-01 + -8.29721295e-01 -8.29653858e-01 -8.29580352e-01 -8.29500818e-01 -8.29415294e-01 + -8.29323818e-01 -8.29226428e-01 -8.29123164e-01 -8.29014062e-01 -8.28899162e-01 + -8.28778499e-01 -8.28652111e-01 -8.28520036e-01 -8.28382311e-01 -8.28238971e-01 + -8.28090053e-01 -8.27935594e-01 -8.27775630e-01 -8.27610196e-01 -8.27439328e-01 + -8.27263061e-01 -8.27081431e-01 -8.26894472e-01 -8.26702219e-01 -8.26504707e-01 + -8.26301970e-01 -8.26094042e-01 -8.25880957e-01 -8.25662749e-01 -8.25439451e-01 + -8.25211097e-01 -8.24977719e-01 -8.24739351e-01 -8.24496025e-01 -8.24247774e-01 + -8.23994630e-01 -8.23736626e-01 -8.23473792e-01 -8.23206162e-01 -8.22933765e-01 + -8.22656635e-01 -8.22374801e-01 -8.22088295e-01 -8.21797147e-01 -8.21501388e-01 + -8.21201048e-01 -8.20896158e-01 -8.20586748e-01 -8.20272846e-01 -8.19954483e-01 + -8.19631689e-01 -8.19304491e-01 -8.18972920e-01 -8.18637004e-01 -8.18296771e-01 + -8.17952251e-01 -8.17603471e-01 -8.17250460e-01 -8.16893244e-01 -8.16531853e-01 + -8.16166313e-01 -8.15796652e-01 -8.15422896e-01 -8.15045073e-01 -8.14663210e-01 + -8.14277333e-01 -8.13887468e-01 -8.13493641e-01 -8.13095879e-01 -8.12694208e-01 + -8.12288652e-01 -8.11879238e-01 -8.11465990e-01 -8.11048934e-01 -8.10628095e-01 + -8.10203497e-01 -8.09775165e-01 -8.09343123e-01 -8.08907395e-01 -8.08468006e-01 + -8.08024978e-01 -8.07578336e-01 -8.07128104e-01 -8.06674303e-01 -8.06216958e-01 + -8.05756092e-01 -8.05291726e-01 -8.04823883e-01 -8.04352587e-01 -8.03877858e-01 + -8.03399719e-01 -8.02918192e-01 -8.02433298e-01 -8.01945059e-01 -8.01453496e-01 + -8.00958629e-01 -8.00460481e-01 -7.99959071e-01 -7.99454420e-01 -7.98946548e-01 + -7.98435475e-01 -7.97921223e-01 -7.97403809e-01 -7.96883254e-01 -7.96359577e-01 + -7.95832798e-01 -7.95302935e-01 -7.94770007e-01 -7.94234034e-01 -7.93695032e-01 + -7.93153022e-01 -7.92608020e-01 -7.92060045e-01 -7.91509115e-01 -7.90955247e-01 + -7.90398458e-01 -7.89838766e-01 -7.89276187e-01 -7.88710739e-01 -7.88142437e-01 + -7.87571300e-01 -7.86997342e-01 -7.86420579e-01 -7.85841029e-01 -7.85258705e-01 + -7.84673625e-01 -7.84085802e-01 -7.83495253e-01 -7.82901991e-01 -7.82306032e-01 + -7.81707391e-01 -7.81106081e-01 -7.80502117e-01 -7.79895513e-01 -7.79286281e-01 + -7.78674437e-01 -7.78059993e-01 -7.77442962e-01 -7.76823358e-01 -7.76201193e-01 + -7.75576479e-01 -7.74949229e-01 -7.74319455e-01 -7.73687169e-01 -7.73052383e-01 + -7.72415108e-01 -7.71775355e-01 -7.71133137e-01 -7.70488462e-01 -7.69841343e-01 + -7.69191789e-01 -7.68539812e-01 -7.67885420e-01 -7.67228624e-01 -7.66569433e-01 + -7.65907857e-01 -7.65243906e-01 -7.64577587e-01 -7.63908910e-01 -7.63237883e-01 + -7.62564514e-01 -7.61888813e-01 -7.61210785e-01 -7.60530440e-01 -7.59847785e-01 + -7.59162825e-01 -7.58475570e-01 -7.57786025e-01 -7.57094197e-01 -7.56400091e-01 + -7.55703715e-01 -7.55005074e-01 -7.54304173e-01 -7.53601018e-01 -7.52895613e-01 + -7.52187964e-01 -7.51478075e-01 -7.50765950e-01 -7.50051594e-01 -7.49335009e-01 + -7.48616201e-01 -7.47895172e-01 -7.47171925e-01 -7.46446463e-01 -7.45718788e-01 + -7.44988903e-01 -7.44256810e-01 -7.43522510e-01 -7.42786005e-01 -7.42047296e-01 + -7.41306385e-01 -7.40563271e-01 -7.39817955e-01 -7.39070437e-01 -7.38320717e-01 + -7.37568795e-01 -7.36814670e-01 -7.36058340e-01 -7.35299805e-01 -7.34539063e-01 + -7.33776111e-01 -7.33010948e-01 -7.32243571e-01 -7.31473978e-01 -7.30702165e-01 + -7.29928129e-01 -7.29151865e-01 -7.28373371e-01 -7.27592642e-01 -7.26809672e-01 + -7.26024458e-01 -7.25236993e-01 -7.24447272e-01 -7.23655289e-01 -7.22861038e-01 + -7.22064513e-01 -7.21265705e-01 -7.20464608e-01 -7.19661214e-01 -7.18855516e-01 + -7.18047504e-01 -7.17237171e-01 -7.16424507e-01 -7.15609502e-01 -7.14792147e-01 + -7.13972432e-01 -7.13150346e-01 -7.12325879e-01 -7.11499018e-01 -7.10669753e-01 + -7.09838072e-01 -7.09003962e-01 -7.08167410e-01 -7.07328403e-01 -7.06486927e-01 + -7.05642970e-01 -7.04796515e-01 -7.03947549e-01 -7.03096056e-01 -7.02242021e-01 + -7.01385428e-01 -7.00526259e-01 -6.99664500e-01 -6.98800131e-01 -6.97933136e-01 + -6.97063496e-01 -6.96191192e-01 -6.95316207e-01 -6.94438519e-01 -6.93558110e-01 + -6.92674959e-01 -6.91789044e-01 -6.90900346e-01 -6.90008841e-01 -6.89114509e-01 + -6.88217325e-01 -6.87317267e-01 -6.86414312e-01 -6.85508434e-01 -6.84599610e-01 + -6.83687814e-01 -6.82773021e-01 -6.81855205e-01 -6.80934338e-01 -6.80010394e-01 + -6.79083345e-01 -6.78153163e-01 -6.77219819e-01 -6.76283284e-01 -6.75343528e-01 + -6.74400521e-01 -6.73454232e-01 -6.72504629e-01 -6.71551681e-01 -6.70595355e-01 + -6.69635618e-01 -6.68672437e-01 -6.67705776e-01 -6.66735602e-01 -6.65761880e-01 + -6.64784572e-01 -6.63803643e-01 -6.62819056e-01 -6.61830772e-01 -6.60838754e-01 + -6.59842963e-01 -6.58843360e-01 -6.57839903e-01 -6.56832553e-01 -6.55821268e-01 + -6.54806006e-01 -6.53786725e-01 -6.52763382e-01 -6.51735932e-01 -6.50704331e-01 + -6.49668534e-01 -6.48628496e-01 -6.47584169e-01 -6.46535507e-01 -6.45482463e-01 + -6.44424987e-01 -6.43363031e-01 -6.42296546e-01 -6.41225480e-01 -6.40149782e-01 + -6.39069402e-01 -6.37984286e-01 -6.36894382e-01 -6.35799636e-01 -6.34699994e-01 + -6.33595399e-01 -6.32485797e-01 -6.31371131e-01 -6.30251345e-01 -6.29126378e-01 + -6.27996175e-01 -6.26860674e-01 -6.25719817e-01 -6.24573542e-01 -6.23421788e-01 + -6.22264492e-01 -6.21101593e-01 -6.19933027e-01 -6.18758729e-01 -6.17578634e-01 + -6.16392677e-01 -6.15200791e-01 -6.14002910e-01 -6.12798966e-01 -6.11588889e-01 + -6.10372612e-01 -6.09150063e-01 -6.07921173e-01 -6.06685870e-01 -6.05444083e-01 + -6.04195738e-01 -6.02940762e-01 -6.01679081e-01 -6.00410620e-01 -5.99135305e-01 + -5.97853058e-01 -5.96563803e-01 -5.95267462e-01 -5.93963958e-01 -5.92653212e-01 + -5.91335143e-01 -5.90009673e-01 -5.88676720e-01 -5.87336202e-01 -5.85988039e-01 + -5.84632147e-01 -5.83268443e-01 -5.81896843e-01 -5.80517264e-01 -5.79129619e-01 + -5.77733823e-01 -5.76329791e-01 -5.74917434e-01 -5.73496668e-01 -5.72067402e-01 + -5.70629551e-01 -5.69183023e-01 -5.67727731e-01 -5.66263585e-01 -5.64790494e-01 + -5.63308368e-01 -5.61817116e-01 -5.60316647e-01 -5.58806868e-01 -5.57287689e-01 + -5.55759015e-01 -5.54220755e-01 -5.52672816e-01 -5.51115104e-01 -5.49547525e-01 + -5.47969986e-01 -5.46382393e-01 -5.44784651e-01 -5.43176667e-01 -5.41558346e-01 + -5.39929592e-01 -5.38290313e-01 -5.36640412e-01 -5.34979796e-01 -5.33308370e-01 + -5.31626039e-01 -5.29932710e-01 -5.28228287e-01 -5.26512676e-01 -5.24785785e-01 + -5.23047519e-01 -5.21297785e-01 -5.19536490e-01 -5.17763541e-01 -5.15978846e-01 + -5.14182315e-01 -5.12373854e-01 -5.10553375e-01 -5.08720787e-01 -5.06876000e-01 + -5.05018926e-01 -5.03149478e-01 -5.01267568e-01 -4.99373110e-01 -4.97466019e-01 + -4.95546212e-01 -4.93613604e-01 -4.91668114e-01 -4.89709661e-01 -4.87738166e-01 + -4.85753551e-01 -4.83755738e-01 -4.81744652e-01 -4.79720220e-01 -4.77682369e-01 + -4.75631029e-01 -4.73566131e-01 -4.71487607e-01 -4.69395393e-01 -4.67289426e-01 + -4.65169644e-01 -4.63035989e-01 -4.60888403e-01 -4.58726833e-01 -4.56551227e-01 + -4.54361534e-01 -4.52157709e-01 -4.49939707e-01 -4.47707486e-01 -4.45461007e-01 + -4.43200236e-01 -4.40925140e-01 -4.38635688e-01 -4.36331855e-01 -4.34013618e-01 + -4.31680958e-01 -4.29333858e-01 -4.26972307e-01 -4.24596297e-01 -4.22205821e-01 + -4.19800882e-01 -4.17381480e-01 -4.14947626e-01 -4.12499330e-01 -4.10036609e-01 + -4.07559485e-01 -4.05067983e-01 -4.02562134e-01 -4.00041973e-01 -3.97507541e-01 + -3.94958883e-01 -3.92396051e-01 -3.89819100e-01 -3.87228093e-01 -3.84623096e-01 + -3.82004184e-01 -3.79371434e-01 -3.76724932e-01 -3.74064769e-01 -3.71391042e-01 + -3.68703855e-01 -3.66003318e-01 -3.63289546e-01 -3.60562665e-01 -3.57822803e-01 + -3.55070098e-01 -3.52304693e-01 -3.49526740e-01 -3.46736396e-01 -3.43933829e-01 + -3.41119210e-01 -3.38292721e-01 -3.35454550e-01 -3.32604893e-01 -3.29743954e-01 + -3.26871944e-01 -3.23989085e-01 -3.21095603e-01 -3.18191736e-01 -3.15277727e-01 + -3.12353830e-01 -3.09420306e-01 -3.06477424e-01 -3.03525464e-01 -3.00564711e-01 + -2.97595463e-01 -2.94618022e-01 -2.91632703e-01 -2.88639827e-01 -2.85639725e-01 + -2.82632736e-01 -2.79619209e-01 -2.76599501e-01 -2.73573978e-01 -2.70543015e-01 + -2.67506995e-01 -2.64466312e-01 -2.61421367e-01 -2.58372570e-01 -2.55320339e-01 + -2.52265102e-01 -2.49207296e-01 -2.46147364e-01 -2.43085759e-01 -2.40022943e-01 + -2.36959385e-01 -2.33895563e-01 -2.30831961e-01 -2.27769074e-01 -2.24707401e-01 + -2.21647452e-01 -2.18589741e-01 -2.15534793e-01 -2.12483136e-01 -2.09435307e-01 + -2.06391849e-01 -2.03353312e-01 -2.00320250e-01 -1.97293224e-01 -1.94272801e-01 + -1.91259553e-01 -1.88254056e-01 -1.85256891e-01 -1.82268644e-01 -1.79289904e-01 + -1.76321263e-01 -1.73363318e-01 -1.70416668e-01 -1.67481913e-01 -1.64559658e-01 + -1.61650506e-01 -1.58755065e-01 -1.55873940e-01 -1.53007739e-01 -1.50157068e-01 + -1.47322535e-01 -1.44504743e-01 -1.41704297e-01 -1.38921798e-01 -1.36157844e-01 + -1.33413031e-01 -1.30687950e-01 -1.27983190e-01 -1.25299332e-01 -1.22636955e-01 + -1.19996629e-01 -1.17378920e-01 -1.14784386e-01 -1.12213577e-01 -1.09667035e-01 + -1.07145293e-01 -1.04648876e-01 -1.02178298e-01 -9.97340616e-02 -9.73166605e-02 + -9.49265751e-02 -9.25642743e-02 -9.02302138e-02 -8.79248363e-02 -8.56485705e-02 + -8.34018305e-02 -8.11850158e-02 -7.89985101e-02 -7.68426811e-02 -7.47178803e-02 + -7.26244420e-02 -7.05626829e-02 -6.85329022e-02 -6.65353805e-02 -6.45703797e-02 + -6.26381426e-02 -6.07388924e-02 -5.88728324e-02 -5.70401460e-02 -5.52409958e-02 + -5.34755237e-02 -5.17438507e-02 -5.00460763e-02 -4.83822789e-02 -4.67525150e-02 + -4.51568196e-02 -4.35952056e-02 -4.20676644e-02 -4.05741649e-02 -3.91146547e-02 + -3.76890589e-02 -3.62972811e-02 -3.49392031e-02 -3.36146850e-02 -3.23235655e-02 + -3.10656621e-02 -2.98407714e-02 -2.86486689e-02 -2.74891102e-02 -2.63618306e-02 + -2.52665456e-02 -2.42029516e-02 -2.31707262e-02 -2.21695287e-02 -2.11990004e-02 + -2.02587655e-02 -1.93484316e-02 -1.84675899e-02 -1.76158165e-02 -1.67926724e-02 + -1.59977047e-02 -1.52304470e-02 -1.44904203e-02 -1.37771336e-02 -1.30900849e-02 + -1.24287617e-02 -1.17926418e-02 -1.11811947e-02 -1.05938815e-02 -1.00301566e-02 + -9.48946778e-03 -8.97125774e-03 -8.47496447e-03 -8.00002229e-03 -7.54586267e-03 + -7.11191505e-03 -6.69760771e-03 -6.30236856e-03 -5.92562598e-03 -5.56680964e-03 + -5.22535124e-03 -4.90068533e-03 -4.59225004e-03 -4.29948781e-03 -4.02184611e-03 + -3.75877813e-03 -3.50974341e-03 -3.27420852e-03 -3.05164762e-03 -2.84154304e-03 + -2.64338584e-03 -2.45667632e-03 -2.28092446e-03 -2.11565039e-03 -1.96038480e-03 + -1.81466930e-03 -1.67805673e-03 -1.55011152e-03 -1.43040988e-03 -1.31854010e-03 + -1.21410266e-03 -1.11671047e-03 -1.02598891e-03 -9.41575982e-04 -8.63122311e-04 + -7.90291195e-04 -7.22758579e-04 -6.60213014e-04 -6.02355579e-04 -5.48899783e-04 + -4.99571436e-04 -4.54108489e-04 -4.12260857e-04 -3.73790220e-04 -3.38469796e-04 + -3.06084100e-04 -2.76428684e-04 -2.49309860e-04 -2.24544412e-04 -2.01959290e-04 + -1.81391298e-04 -1.62686771e-04 -1.45701242e-04 -1.30299105e-04 -1.16353279e-04 + -1.03744855e-04 -9.23627580e-05 -8.21033971e-05 -7.28703214e-05 -6.45738783e-05 + -5.71308746e-05 -5.04642428e-05 -4.45027130e-05 -3.91804914e-05 -3.44369461e-05 + -3.02163020e-05 -2.64673434e-05 -2.31431269e-05 -2.02007038e-05 -1.76008533e-05 + -1.53078260e-05 -1.32890983e-05 -1.15151383e-05 -9.95918234e-06 -8.59702333e-06 + -7.40680967e-06 -6.36885574e-06 -5.46546311e-06 -4.68075258e-06 -4.00050669e-06 + -3.41202254e-06 -2.90397453e-06 -2.46628666e-06 -2.09001414e-06 -1.76723382e-06 + -1.49094306e-06 -1.25496673e-06 -1.05387178e-06 -8.82889028e-07 -7.37841824e-07 + -6.15081008e-07 -5.11425893e-07 -4.24110800e-07 -3.50736768e-07 -2.89228062e-07 + -2.37793102e-07 -1.94889468e-07 -1.59192641e-07 -1.29568160e-07 -1.05046889e-07 + -8.48031182e-08 -6.81352185e-08 -5.44486135e-08 -4.32408265e-08 -3.40883923e-08 + -2.66354353e-08 -2.05837314e-08 -1.56840870e-08 -1.17288835e-08 -8.54565102e-09 + -5.99154433e-09 -3.94861124e-09 -2.31975185e-09 -1.02527898e-09 0.00000000e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26547462e+00 7.25551627e+00 7.24557157e+00 + 7.23564051e+00 7.22572305e+00 7.21581919e+00 7.20592890e+00 7.19605217e+00 + 7.18618898e+00 7.17633930e+00 7.16650313e+00 7.15668044e+00 7.14687121e+00 + 7.13707542e+00 7.12729307e+00 7.11752412e+00 7.10776856e+00 7.09802637e+00 + 7.08829753e+00 7.07858203e+00 7.06887985e+00 7.05919096e+00 7.04951536e+00 + 7.03985301e+00 7.03020391e+00 7.02056804e+00 7.01094537e+00 7.00133589e+00 + 6.99173958e+00 6.98215643e+00 6.97258641e+00 6.96302950e+00 6.95348570e+00 + 6.94395498e+00 6.93443732e+00 6.92493271e+00 6.91544112e+00 6.90596254e+00 + 6.89649696e+00 6.88704435e+00 6.87760469e+00 6.86817797e+00 6.85876418e+00 + 6.84936328e+00 6.83997528e+00 6.83060014e+00 6.82123785e+00 6.81188839e+00 + 6.80255174e+00 6.79322790e+00 6.78391683e+00 6.77461853e+00 6.76533297e+00 + 6.75606013e+00 6.74680001e+00 6.73755258e+00 6.72831782e+00 6.71909573e+00 + 6.70988627e+00 6.70068943e+00 6.69150520e+00 6.68233356e+00 6.67317449e+00 + 6.66402797e+00 6.65489399e+00 6.64577253e+00 6.63666357e+00 6.62756710e+00 + 6.61848310e+00 6.60941154e+00 6.60035242e+00 6.59130572e+00 6.58227141e+00 + 6.57324949e+00 6.56423994e+00 6.55524273e+00 6.54625785e+00 6.53728530e+00 + 6.52832503e+00 6.51937705e+00 6.51044134e+00 6.50151787e+00 6.49260663e+00 + 6.48370761e+00 6.47482078e+00 6.46594614e+00 6.45708366e+00 6.44823332e+00 + 6.43939512e+00 6.43056903e+00 6.42175504e+00 6.41295313e+00 6.40416328e+00 + 6.39538548e+00 6.38661971e+00 6.37786596e+00 6.36912420e+00 6.36039443e+00 + 6.35167662e+00 6.34297076e+00 6.33427684e+00 6.32559483e+00 6.31692472e+00 + 6.30826649e+00 6.29962013e+00 6.29098562e+00 6.28236295e+00 6.27375209e+00 + 6.26515304e+00 6.25656577e+00 6.24799028e+00 6.23942654e+00 6.23087453e+00 + 6.22233425e+00 6.21380567e+00 6.20528878e+00 6.19678357e+00 6.18829001e+00 + 6.17980810e+00 6.17133781e+00 6.16287913e+00 6.15443204e+00 6.14599654e+00 + 6.13757259e+00 6.12916019e+00 6.12075932e+00 6.11236997e+00 6.10399211e+00 + 6.09562574e+00 6.08727083e+00 6.07892738e+00 6.07059536e+00 6.06227476e+00 + 6.05396557e+00 6.04566776e+00 6.03738133e+00 6.02910626e+00 6.02084253e+00 + 6.01259012e+00 6.00434903e+00 5.99611923e+00 5.98790071e+00 5.97969346e+00 + 5.97149746e+00 5.96331269e+00 5.95513913e+00 5.94697679e+00 5.93882562e+00 + 5.93068563e+00 5.92255680e+00 5.91443911e+00 5.90633255e+00 5.89823710e+00 + 5.89015274e+00 5.88207946e+00 5.87401725e+00 5.86596609e+00 5.85792597e+00 + 5.84989686e+00 5.84187876e+00 5.83387165e+00 5.82587552e+00 5.81789034e+00 + 5.80991611e+00 5.80195281e+00 5.79400043e+00 5.78605894e+00 5.77812834e+00 + 5.77020861e+00 5.76229973e+00 5.75440170e+00 5.74651449e+00 5.73863809e+00 + 5.73077248e+00 5.72291766e+00 5.71507360e+00 5.70724030e+00 5.69941773e+00 + 5.69160588e+00 5.68380474e+00 5.67601429e+00 5.66823452e+00 5.66046542e+00 + 5.65270696e+00 5.64495913e+00 5.63722193e+00 5.62949533e+00 5.62177932e+00 + 5.61407389e+00 5.60637902e+00 5.59869469e+00 5.59102090e+00 5.58335763e+00 + 5.57570486e+00 5.56806258e+00 5.56043077e+00 5.55280942e+00 5.54519852e+00 + 5.53759805e+00 5.53000800e+00 5.52242836e+00 5.51485910e+00 5.50730021e+00 + 5.49975169e+00 5.49221351e+00 5.48468567e+00 5.47716814e+00 5.46966092e+00 + 5.46216398e+00 5.45467733e+00 5.44720093e+00 5.43973478e+00 5.43227887e+00 + 5.42483317e+00 5.41739768e+00 5.40997238e+00 5.40255726e+00 5.39515230e+00 + 5.38775749e+00 5.38037282e+00 5.37299827e+00 5.36563382e+00 5.35827947e+00 + 5.35093520e+00 5.34360100e+00 5.33627685e+00 5.32896274e+00 5.32165865e+00 + 5.31436457e+00 5.30708050e+00 5.29980640e+00 5.29254228e+00 5.28528811e+00 + 5.27804389e+00 5.27080959e+00 5.26358521e+00 5.25637073e+00 5.24916614e+00 + 5.24197143e+00 5.23478657e+00 5.22761157e+00 5.22044640e+00 5.21329105e+00 + 5.20614551e+00 5.19900976e+00 5.19188379e+00 5.18476759e+00 5.17766114e+00 + 5.17056443e+00 5.16347745e+00 5.15640019e+00 5.14933262e+00 5.14227474e+00 + 5.13522654e+00 5.12818799e+00 5.12115910e+00 5.11413983e+00 5.10713019e+00 + 5.10013016e+00 5.09313972e+00 5.08615886e+00 5.07918757e+00 5.07222583e+00 + 5.06527364e+00 5.05833097e+00 5.05139783e+00 5.04447418e+00 5.03756002e+00 + 5.03065535e+00 5.02376013e+00 5.01687437e+00 5.00999804e+00 5.00313114e+00 + 4.99627365e+00 4.98942556e+00 4.98258686e+00 4.97575753e+00 4.96893756e+00 + 4.96212693e+00 4.95532565e+00 4.94853368e+00 4.94175103e+00 4.93497767e+00 + 4.92821359e+00 4.92145879e+00 4.91471324e+00 4.90797694e+00 4.90124987e+00 + 4.89453203e+00 4.88782339e+00 4.88112394e+00 4.87443368e+00 4.86775259e+00 + 4.86108066e+00 4.85441787e+00 4.84776421e+00 4.84111967e+00 4.83448424e+00 + 4.82785791e+00 4.82124066e+00 4.81463247e+00 4.80803335e+00 4.80144327e+00 + 4.79486222e+00 4.78829019e+00 4.78172717e+00 4.77517315e+00 4.76862811e+00 + 4.76209204e+00 4.75556492e+00 4.74904676e+00 4.74253753e+00 4.73603722e+00 + 4.72954582e+00 4.72306332e+00 4.71658970e+00 4.71012495e+00 4.70366907e+00 + 4.69722204e+00 4.69078384e+00 4.68435446e+00 4.67793390e+00 4.67152214e+00 + 4.66511917e+00 4.65872497e+00 4.65233954e+00 4.64596286e+00 4.63959492e+00 + 4.63323571e+00 4.62688521e+00 4.62054342e+00 4.61421032e+00 4.60788590e+00 + 4.60157015e+00 4.59526306e+00 4.58896461e+00 4.58267479e+00 4.57639360e+00 + 4.57012101e+00 4.56385702e+00 4.55760162e+00 4.55135479e+00 4.54511652e+00 + 4.53888681e+00 4.53266563e+00 4.52645298e+00 4.52024884e+00 4.51405321e+00 + 4.50786607e+00 4.50168741e+00 4.49551722e+00 4.48935549e+00 4.48320220e+00 + 4.47705735e+00 4.47092091e+00 4.46479289e+00 4.45867327e+00 4.45256204e+00 + 4.44645918e+00 4.44036469e+00 4.43427855e+00 4.42820075e+00 4.42213128e+00 + 4.41607014e+00 4.41001730e+00 4.40397275e+00 4.39793649e+00 4.39190851e+00 + 4.38588878e+00 4.37987731e+00 4.37387408e+00 4.36787907e+00 4.36189229e+00 + 4.35591370e+00 4.34994332e+00 4.34398111e+00 4.33802708e+00 4.33208121e+00 + 4.32614349e+00 4.32021390e+00 4.31429245e+00 4.30837911e+00 4.30247387e+00 + 4.29657673e+00 4.29068768e+00 4.28480669e+00 4.27893376e+00 4.27306889e+00 + 4.26721205e+00 4.26136324e+00 4.25552245e+00 4.24968966e+00 4.24386487e+00 + 4.23804806e+00 4.23223922e+00 4.22643835e+00 4.22064543e+00 4.21486044e+00 + 4.20908339e+00 4.20331425e+00 4.19755302e+00 4.19179969e+00 4.18605425e+00 + 4.18031667e+00 4.17458697e+00 4.16886511e+00 4.16315110e+00 4.15744492e+00 + 4.15174656e+00 4.14605602e+00 4.14037327e+00 4.13469831e+00 4.12903113e+00 + 4.12337171e+00 4.11772006e+00 4.11207615e+00 4.10643997e+00 4.10081153e+00 + 4.09519079e+00 4.08957776e+00 4.08397242e+00 4.07837477e+00 4.07278479e+00 + 4.06720247e+00 4.06162780e+00 4.05606077e+00 4.05050137e+00 4.04494960e+00 + 4.03940543e+00 4.03386886e+00 4.02833988e+00 4.02281848e+00 4.01730465e+00 + 4.01179837e+00 4.00629964e+00 4.00080845e+00 3.99532478e+00 3.98984863e+00 + 3.98437999e+00 3.97891884e+00 3.97346517e+00 3.96801899e+00 3.96258026e+00 + 3.95714899e+00 3.95172517e+00 3.94630878e+00 3.94089981e+00 3.93549826e+00 + 3.93010411e+00 3.92471735e+00 3.91933798e+00 3.91396598e+00 3.90860134e+00 + 3.90324406e+00 3.89789412e+00 3.89255151e+00 3.88721623e+00 3.88188825e+00 + 3.87656759e+00 3.87125421e+00 3.86594811e+00 3.86064929e+00 3.85535773e+00 + 3.85007343e+00 3.84479637e+00 3.83952654e+00 3.83426393e+00 3.82900854e+00 + 3.82376035e+00 3.81851935e+00 3.81328554e+00 3.80805890e+00 3.80283942e+00 + 3.79762710e+00 3.79242192e+00 3.78722388e+00 3.78203296e+00 3.77684915e+00 + 3.77167245e+00 3.76650285e+00 3.76134033e+00 3.75618489e+00 3.75103652e+00 + 3.74589520e+00 3.74076093e+00 3.73563369e+00 3.73051348e+00 3.72540029e+00 + 3.72029411e+00 3.71519493e+00 3.71010274e+00 3.70501753e+00 3.69993928e+00 + 3.69486800e+00 3.68980367e+00 3.68474628e+00 3.67969582e+00 3.67465228e+00 + 3.66961566e+00 3.66458594e+00 3.65956311e+00 3.65454717e+00 3.64953810e+00 + 3.64453590e+00 3.63954056e+00 3.63455206e+00 3.62957040e+00 3.62459556e+00 + 3.61962755e+00 3.61466635e+00 3.60971194e+00 3.60476433e+00 3.59982349e+00 + 3.59488943e+00 3.58996214e+00 3.58504159e+00 3.58012779e+00 3.57522073e+00 + 3.57032039e+00 3.56542677e+00 3.56053985e+00 3.55565964e+00 3.55078611e+00 + 3.54591926e+00 3.54105908e+00 3.53620557e+00 3.53135871e+00 3.52651849e+00 + 3.52168490e+00 3.51685794e+00 3.51203759e+00 3.50722386e+00 3.50241672e+00 + 3.49761617e+00 3.49282220e+00 3.48803480e+00 3.48325396e+00 3.47847967e+00 + 3.47371193e+00 3.46895072e+00 3.46419604e+00 3.45944788e+00 3.45470622e+00 + 3.44997107e+00 3.44524240e+00 3.44052021e+00 3.43580450e+00 3.43109525e+00 + 3.42639246e+00 3.42169611e+00 3.41700620e+00 3.41232271e+00 3.40764565e+00 + 3.40297499e+00 3.39831074e+00 3.39365288e+00 3.38900141e+00 3.38435631e+00 + 3.37971758e+00 3.37508520e+00 3.37045918e+00 3.36583949e+00 3.36122614e+00 + 3.35661911e+00 3.35201840e+00 3.34742399e+00 3.34283587e+00 3.33825405e+00 + 3.33367851e+00 3.32910924e+00 3.32454623e+00 3.31998947e+00 3.31543897e+00 + 3.31089469e+00 3.30635665e+00 3.30182483e+00 3.29729922e+00 3.29277981e+00 + 3.28826659e+00 3.28375956e+00 3.27925871e+00 3.27476403e+00 3.27027551e+00 + 3.26579314e+00 3.26131692e+00 3.25684683e+00 3.25238286e+00 3.24792502e+00 + 3.24347329e+00 3.23902765e+00 3.23458811e+00 3.23015466e+00 3.22572728e+00 + 3.22130597e+00 3.21689072e+00 3.21248153e+00 3.20807837e+00 3.20368125e+00 + 3.19929016e+00 3.19490509e+00 3.19052602e+00 3.18615296e+00 3.18178590e+00 + 3.17742481e+00 3.17306971e+00 3.16872058e+00 3.16437740e+00 3.16004018e+00 + 3.15570891e+00 3.15138357e+00 3.14706416e+00 3.14275066e+00 3.13844309e+00 + 3.13414141e+00 3.12984563e+00 3.12555574e+00 3.12127173e+00 3.11699360e+00 + 3.11272132e+00 3.10845490e+00 3.10419433e+00 3.09993960e+00 3.09569070e+00 + 3.09144762e+00 3.08721036e+00 3.08297891e+00 3.07875326e+00 3.07453340e+00 + 3.07031932e+00 3.06611102e+00 3.06190849e+00 3.05771171e+00 3.05352069e+00 + 3.04933542e+00 3.04515588e+00 3.04098207e+00 3.03681398e+00 3.03265160e+00 + 3.02849493e+00 3.02434395e+00 3.02019867e+00 3.01605906e+00 3.01192513e+00 + 3.00779687e+00 3.00367426e+00 2.99955731e+00 2.99544600e+00 2.99134032e+00 + 2.98724027e+00 2.98314584e+00 2.97905702e+00 2.97497381e+00 2.97089619e+00 + 2.96682417e+00 2.96275772e+00 2.95869685e+00 2.95464154e+00 2.95059179e+00 + 2.94654759e+00 2.94250894e+00 2.93847582e+00 2.93444823e+00 2.93042616e+00 + 2.92640960e+00 2.92239855e+00 2.91839299e+00 2.91439293e+00 2.91039835e+00 + 2.90640924e+00 2.90242560e+00 2.89844742e+00 2.89447469e+00 2.89050741e+00 + 2.88654557e+00 2.88258916e+00 2.87863817e+00 2.87469259e+00 2.87075242e+00 + 2.86681766e+00 2.86288828e+00 2.85896429e+00 2.85504569e+00 2.85113245e+00 + 2.84722457e+00 2.84332205e+00 2.83942488e+00 2.83553306e+00 2.83164656e+00 + 2.82776540e+00 2.82388955e+00 2.82001901e+00 2.81615378e+00 2.81229385e+00 + 2.80843921e+00 2.80458985e+00 2.80074577e+00 2.79690696e+00 2.79307341e+00 + 2.78924511e+00 2.78542206e+00 2.78160425e+00 2.77779168e+00 2.77398432e+00 + 2.77018219e+00 2.76638527e+00 2.76259355e+00 2.75880703e+00 2.75502570e+00 + 2.75124956e+00 2.74747859e+00 2.74371278e+00 2.73995214e+00 2.73619666e+00 + 2.73244632e+00 2.72870112e+00 2.72496105e+00 2.72122611e+00 2.71749629e+00 + 2.71377158e+00 2.71005198e+00 2.70633748e+00 2.70262806e+00 2.69892374e+00 + 2.69522448e+00 2.69153030e+00 2.68784118e+00 2.68415712e+00 2.68047811e+00 + 2.67680414e+00 2.67313521e+00 2.66947130e+00 2.66581242e+00 2.66215855e+00 + 2.65850969e+00 2.65486584e+00 2.65122697e+00 2.64759309e+00 2.64396420e+00 + 2.64034028e+00 2.63672132e+00 2.63310733e+00 2.62949829e+00 2.62589419e+00 + 2.62229504e+00 2.61870082e+00 2.61511152e+00 2.61152715e+00 2.60794768e+00 + 2.60437313e+00 2.60080347e+00 2.59723871e+00 2.59367883e+00 2.59012383e+00 + 2.58657371e+00 2.58302845e+00 2.57948804e+00 2.57595250e+00 2.57242179e+00 + 2.56889593e+00 2.56537490e+00 2.56185870e+00 2.55834731e+00 2.55484074e+00 + 2.55133897e+00 2.54784201e+00 2.54434983e+00 2.54086245e+00 2.53737984e+00 + 2.53390201e+00 2.53042894e+00 2.52696064e+00 2.52349708e+00 2.52003828e+00 + 2.51658422e+00 2.51313489e+00 2.50969028e+00 2.50625040e+00 2.50281524e+00 + 2.49938478e+00 2.49595902e+00 2.49253796e+00 2.48912159e+00 2.48570990e+00 + 2.48230289e+00 2.47890055e+00 2.47550287e+00 2.47210985e+00 2.46872148e+00 + 2.46533775e+00 2.46195866e+00 2.45858420e+00 2.45521437e+00 2.45184916e+00 + 2.44848856e+00 2.44513256e+00 2.44178116e+00 2.43843436e+00 2.43509215e+00 + 2.43175451e+00 2.42842146e+00 2.42509297e+00 2.42176904e+00 2.41844967e+00 + 2.41513484e+00 2.41182456e+00 2.40851882e+00 2.40521761e+00 2.40192092e+00 + 2.39862876e+00 2.39534110e+00 2.39205795e+00 2.38877930e+00 2.38550515e+00 + 2.38223548e+00 2.37897029e+00 2.37570958e+00 2.37245334e+00 2.36920156e+00 + 2.36595424e+00 2.36271137e+00 2.35947295e+00 2.35623896e+00 2.35300940e+00 + 2.34978428e+00 2.34656357e+00 2.34334728e+00 2.34013539e+00 2.33692791e+00 + 2.33372482e+00 2.33052613e+00 2.32733182e+00 2.32414188e+00 2.32095632e+00 + 2.31777513e+00 2.31459830e+00 2.31142582e+00 2.30825768e+00 2.30509389e+00 + 2.30193444e+00 2.29877932e+00 2.29562852e+00 2.29248204e+00 2.28933988e+00 + 2.28620202e+00 2.28306846e+00 2.27993919e+00 2.27681422e+00 2.27369353e+00 + 2.27057711e+00 2.26746497e+00 2.26435709e+00 2.26125348e+00 2.25815411e+00 + 2.25505900e+00 2.25196812e+00 2.24888149e+00 2.24579908e+00 2.24272090e+00 + 2.23964694e+00 2.23657719e+00 2.23351165e+00 2.23045031e+00 2.22739317e+00 + 2.22434021e+00 2.22129145e+00 2.21824686e+00 2.21520644e+00 2.21217019e+00 + 2.20913810e+00 2.20611017e+00 2.20308639e+00 2.20006675e+00 2.19705125e+00 + 2.19403989e+00 2.19103265e+00 2.18802953e+00 2.18503053e+00 2.18203564e+00 + 2.17904486e+00 2.17605817e+00 2.17307558e+00 2.17009708e+00 2.16712266e+00 + 2.16415232e+00 2.16118604e+00 2.15822384e+00 2.15526569e+00 2.15231160e+00 + 2.14936155e+00 2.14641555e+00 2.14347359e+00 2.14053566e+00 2.13760176e+00 + 2.13467188e+00 2.13174601e+00 2.12882416e+00 2.12590631e+00 2.12299245e+00 + 2.12008260e+00 2.11717673e+00 2.11427484e+00 2.11137693e+00 2.10848300e+00 + 2.10559303e+00 2.10270702e+00 2.09982496e+00 2.09694686e+00 2.09407270e+00 + 2.09120248e+00 2.08833620e+00 2.08547384e+00 2.08261541e+00 2.07976090e+00 + 2.07691029e+00 2.07406360e+00 2.07122080e+00 2.06838191e+00 2.06554690e+00 + 2.06271578e+00 2.05988854e+00 2.05706518e+00 2.05424568e+00 2.05143005e+00 + 2.04861828e+00 2.04581036e+00 2.04300629e+00 2.04020607e+00 2.03740968e+00 + 2.03461713e+00 2.03182840e+00 2.02904350e+00 2.02626241e+00 2.02348513e+00 + 2.02071167e+00 2.01794200e+00 2.01517613e+00 2.01241405e+00 2.00965575e+00 + 2.00690124e+00 2.00415050e+00 2.00140353e+00 1.99866033e+00 1.99592089e+00 + 1.99318520e+00 1.99045326e+00 1.98772507e+00 1.98500061e+00 1.98227989e+00 + 1.97956290e+00 1.97684963e+00 1.97414009e+00 1.97143425e+00 1.96873213e+00 + 1.96603370e+00 1.96333898e+00 1.96064795e+00 1.95796061e+00 1.95527695e+00 + 1.95259697e+00 1.94992066e+00 1.94724803e+00 1.94457905e+00 1.94191373e+00 + 1.93925207e+00 1.93659405e+00 1.93393968e+00 1.93128895e+00 1.92864185e+00 + 1.92599837e+00 1.92335853e+00 1.92072229e+00 1.91808968e+00 1.91546067e+00 + 1.91283526e+00 1.91021345e+00 1.90759524e+00 1.90498061e+00 1.90236957e+00 + 1.89976211e+00 1.89715822e+00 1.89455790e+00 1.89196114e+00 1.88936795e+00 + 1.88677830e+00 1.88419221e+00 1.88160966e+00 1.87903066e+00 1.87645518e+00 + 1.87388324e+00 1.87131482e+00 1.86874992e+00 1.86618854e+00 1.86363067e+00 + 1.86107630e+00 1.85852544e+00 1.85597807e+00 1.85343419e+00 1.85089380e+00 + 1.84835689e+00 1.84582346e+00 1.84329350e+00 1.84076701e+00 1.83824398e+00 + 1.83572441e+00 1.83320830e+00 1.83069563e+00 1.82818641e+00 1.82568062e+00 + 1.82317827e+00 1.82067935e+00 1.81818386e+00 1.81569178e+00 1.81320312e+00 + 1.81071788e+00 1.80823603e+00 1.80575759e+00 1.80328255e+00 1.80081090e+00 + 1.79834264e+00 1.79587776e+00 1.79341626e+00 1.79095813e+00 1.78850337e+00 + 1.78605198e+00 1.78360395e+00 1.78115927e+00 1.77871794e+00 1.77627996e+00 + 1.77384532e+00 1.77141402e+00 1.76898605e+00 1.76656141e+00 1.76414009e+00 + 1.76172209e+00 1.75930740e+00 1.75689602e+00 1.75448795e+00 1.75208318e+00 + 1.74968171e+00 1.74728353e+00 1.74488863e+00 1.74249702e+00 1.74010868e+00 + 1.73772362e+00 1.73534183e+00 1.73296330e+00 1.73058803e+00 1.72821602e+00 + 1.72584726e+00 1.72348174e+00 1.72111947e+00 1.71876044e+00 1.71640463e+00 + 1.71405206e+00 1.71170272e+00 1.70935659e+00 1.70701368e+00 1.70467398e+00 + 1.70233748e+00 1.70000419e+00 1.69767410e+00 1.69534720e+00 1.69302349e+00 + 1.69070296e+00 1.68838562e+00 1.68607145e+00 1.68376046e+00 1.68145263e+00 + 1.67914796e+00 1.67684646e+00 1.67454810e+00 1.67225290e+00 1.66996085e+00 + 1.66767193e+00 1.66538615e+00 1.66310351e+00 1.66082399e+00 1.65854760e+00 + 1.65627433e+00 1.65400418e+00 1.65173713e+00 1.64947320e+00 1.64721236e+00 + 1.64495463e+00 1.64269999e+00 1.64044844e+00 1.63819998e+00 1.63595460e+00 + 1.63371229e+00 1.63147306e+00 1.62923690e+00 1.62700380e+00 1.62477377e+00 + 1.62254679e+00 1.62032286e+00 1.61810198e+00 1.61588415e+00 1.61366935e+00 + 1.61145759e+00 1.60924887e+00 1.60704317e+00 1.60484049e+00 1.60264083e+00 + 1.60044419e+00 1.59825056e+00 1.59605993e+00 1.59387231e+00 1.59168769e+00 + 1.58950606e+00 1.58732742e+00 1.58515176e+00 1.58297909e+00 1.58080940e+00 + 1.57864268e+00 1.57647893e+00 1.57431814e+00 1.57216032e+00 1.57000545e+00 + 1.56785354e+00 1.56570458e+00 1.56355856e+00 1.56141549e+00 1.55927535e+00 + 1.55713815e+00 1.55500387e+00 1.55287252e+00 1.55074409e+00 1.54861858e+00 + 1.54649598e+00 1.54437630e+00 1.54225951e+00 1.54014563e+00 1.53803465e+00 + 1.53592656e+00 1.53382135e+00 1.53171904e+00 1.52961960e+00 1.52752305e+00 + 1.52542936e+00 1.52333855e+00 1.52125060e+00 1.51916551e+00 1.51708329e+00 + 1.51500391e+00 1.51292739e+00 1.51085371e+00 1.50878287e+00 1.50671488e+00 + 1.50464971e+00 1.50258738e+00 1.50052788e+00 1.49847119e+00 1.49641733e+00 + 1.49436628e+00 1.49231804e+00 1.49027261e+00 1.48822999e+00 1.48619016e+00 + 1.48415313e+00 1.48211889e+00 1.48008744e+00 1.47805877e+00 1.47603289e+00 + 1.47400978e+00 1.47198944e+00 1.46997187e+00 1.46795707e+00 1.46594503e+00 + 1.46393575e+00 1.46192922e+00 1.45992544e+00 1.45792441e+00 1.45592612e+00 + 1.45393057e+00 1.45193776e+00 1.44994768e+00 1.44796032e+00 1.44597569e+00 + 1.44399378e+00 1.44201458e+00 1.44003810e+00 1.43806433e+00 1.43609326e+00 + 1.43412489e+00 1.43215923e+00 1.43019625e+00 1.42823597e+00 1.42627837e+00 + 1.42432346e+00 1.42237122e+00 1.42042167e+00 1.41847478e+00 1.41653056e+00 + 1.41458901e+00 1.41265012e+00 1.41071388e+00 1.40878030e+00 1.40684937e+00 + 1.40492109e+00 1.40299545e+00 1.40107245e+00 1.39915208e+00 1.39723435e+00 + 1.39531925e+00 1.39340677e+00 1.39149691e+00 1.38958967e+00 1.38768504e+00 + 1.38578302e+00 1.38388362e+00 1.38198681e+00 1.38009260e+00 1.37820099e+00 + 1.37631198e+00 1.37442555e+00 1.37254171e+00 1.37066045e+00 1.36878177e+00 + 1.36690566e+00 1.36503213e+00 1.36316116e+00 1.36129276e+00 1.35942691e+00 + 1.35756363e+00 1.35570290e+00 1.35384472e+00 1.35198909e+00 1.35013600e+00 + 1.34828545e+00 1.34643743e+00 1.34459195e+00 1.34274900e+00 1.34090858e+00 + 1.33907068e+00 1.33723529e+00 1.33540242e+00 1.33357207e+00 1.33174422e+00 + 1.32991888e+00 1.32809604e+00 1.32627570e+00 1.32445786e+00 1.32264250e+00 + 1.32082964e+00 1.31901925e+00 1.31721135e+00 1.31540593e+00 1.31360298e+00 + 1.31180251e+00 1.31000450e+00 1.30820896e+00 1.30641587e+00 1.30462525e+00 + 1.30283708e+00 1.30105136e+00 1.29926808e+00 1.29748726e+00 1.29570887e+00 + 1.29393292e+00 1.29215940e+00 1.29038832e+00 1.28861966e+00 1.28685343e+00 + 1.28508962e+00 1.28332822e+00 1.28156924e+00 1.27981267e+00 1.27805851e+00 + 1.27630675e+00 1.27455740e+00 1.27281044e+00 1.27106587e+00 1.26932370e+00 + 1.26758392e+00 1.26584651e+00 1.26411150e+00 1.26237885e+00 1.26064859e+00 + 1.25892069e+00 1.25719517e+00 1.25547201e+00 1.25375121e+00 1.25203276e+00 + 1.25031668e+00 1.24860295e+00 1.24689156e+00 1.24518252e+00 1.24347583e+00 + 1.24177147e+00 1.24006945e+00 1.23836976e+00 1.23667240e+00 1.23497737e+00 + 1.23328466e+00 1.23159427e+00 1.22990620e+00 1.22822044e+00 1.22653699e+00 + 1.22485585e+00 1.22317702e+00 1.22150048e+00 1.21982625e+00 1.21815430e+00 + 1.21648465e+00 1.21481729e+00 1.21315222e+00 1.21148942e+00 1.20982891e+00 + 1.20817067e+00 1.20651470e+00 1.20486100e+00 1.20320957e+00 1.20156041e+00 + 1.19991350e+00 1.19826885e+00 1.19662646e+00 1.19498631e+00 1.19334842e+00 + 1.19171277e+00 1.19007936e+00 1.18844819e+00 1.18681926e+00 1.18519255e+00 + 1.18356808e+00 1.18194584e+00 1.18032582e+00 1.17870801e+00 1.17709243e+00 + 1.17547906e+00 1.17386790e+00 1.17225895e+00 1.17065221e+00 1.16904767e+00 + 1.16744532e+00 1.16584518e+00 1.16424722e+00 1.16265146e+00 1.16105788e+00 + 1.15946649e+00 1.15787728e+00 1.15629025e+00 1.15470539e+00 1.15312271e+00 + 1.15154219e+00 1.14996384e+00 1.14838766e+00 1.14681363e+00 1.14524176e+00 + 1.14367205e+00 1.14210449e+00 1.14053907e+00 1.13897581e+00 1.13741468e+00 + 1.13585569e+00 1.13429885e+00 1.13274413e+00 1.13119155e+00 1.12964109e+00 + 1.12809276e+00 1.12654655e+00 1.12500246e+00 1.12346049e+00 1.12192063e+00 + 1.12038288e+00 1.11884724e+00 1.11731370e+00 1.11578227e+00 1.11425294e+00 + 1.11272570e+00 1.11120055e+00 1.10967749e+00 1.10815653e+00 1.10663764e+00 + 1.10512084e+00 1.10360612e+00 1.10209347e+00 1.10058290e+00 1.09907440e+00 + 1.09756796e+00 1.09606359e+00 1.09456129e+00 1.09306104e+00 1.09156284e+00 + 1.09006670e+00 1.08857262e+00 1.08708058e+00 1.08559058e+00 1.08410263e+00 + 1.08261671e+00 1.08113284e+00 1.07965099e+00 1.07817118e+00 1.07669340e+00 + 1.07521764e+00 1.07374390e+00 1.07227218e+00 1.07080249e+00 1.06933480e+00 + 1.06786913e+00 1.06640547e+00 1.06494381e+00 1.06348415e+00 1.06202650e+00 + 1.06057084e+00 1.05911718e+00 1.05766552e+00 1.05621584e+00 1.05476815e+00 + 1.05332244e+00 1.05187871e+00 1.05043697e+00 1.04899720e+00 1.04755940e+00 + 1.04612357e+00 1.04468971e+00 1.04325782e+00 1.04182789e+00 1.04039992e+00 + 1.03897391e+00 1.03754985e+00 1.03612774e+00 1.03470758e+00 1.03328937e+00 + 1.03187310e+00 1.03045878e+00 1.02904639e+00 1.02763594e+00 1.02622742e+00 + 1.02482083e+00 1.02341617e+00 1.02201344e+00 1.02061262e+00 1.01921373e+00 + 1.01781676e+00 1.01642170e+00 1.01502855e+00 1.01363731e+00 1.01224798e+00 + 1.01086055e+00 1.00947502e+00 1.00809140e+00 1.00670967e+00 1.00532983e+00 + 1.00395188e+00 1.00257583e+00 1.00120166e+00 9.99829370e-01 9.98458963e-01 + 9.97090435e-01 9.95723783e-01 9.94359004e-01 9.92996095e-01 9.91635054e-01 + 9.90275879e-01 9.88918567e-01 9.87563115e-01 9.86209521e-01 9.84857782e-01 + 9.83507896e-01 9.82159860e-01 9.80813671e-01 9.79469328e-01 9.78126827e-01 + 9.76786166e-01 9.75447343e-01 9.74110354e-01 9.72775198e-01 9.71441872e-01 + 9.70110374e-01 9.68780700e-01 9.67452849e-01 9.66126818e-01 9.64802604e-01 + 9.63480205e-01 9.62159618e-01 9.60840841e-01 9.59523872e-01 9.58208708e-01 + 9.56895346e-01 9.55583784e-01 9.54274020e-01 9.52966051e-01 9.51659874e-01 + 9.50355488e-01 9.49052889e-01 9.47752076e-01 9.46453045e-01 9.45155794e-01 + 9.43860322e-01 9.42566624e-01 9.41274700e-01 9.39984546e-01 9.38696161e-01 + 9.37409540e-01 9.36124684e-01 9.34841588e-01 9.33560250e-01 9.32280668e-01 + 9.31002840e-01 9.29726763e-01 9.28452435e-01 9.27179852e-01 9.25909014e-01 + 9.24639917e-01 9.23372560e-01 9.22106939e-01 9.20843052e-01 9.19580897e-01 + 9.18320471e-01 9.17061773e-01 9.15804799e-01 9.14549547e-01 9.13296016e-01 + 9.12044202e-01 9.10794103e-01 9.09545716e-01 9.08299041e-01 9.07054073e-01 + 9.05810811e-01 9.04569252e-01 9.03329394e-01 9.02091234e-01 9.00854771e-01 + 8.99620001e-01 8.98386923e-01 8.97155534e-01 8.95925831e-01 8.94697813e-01 + 8.93471477e-01 8.92246821e-01 8.91023842e-01 8.89802537e-01 8.88582905e-01 + 8.87364944e-01 8.86148650e-01 8.84934022e-01 8.83721057e-01 8.82509753e-01 + 8.81300107e-01 8.80092117e-01 8.78885781e-01 8.77681097e-01 8.76478061e-01 + 8.75276672e-01 8.74076928e-01 8.72878825e-01 8.71682362e-01 8.70487536e-01 + 8.69294345e-01 8.68102787e-01 8.66912859e-01 8.65724558e-01 8.64537884e-01 + 8.63352832e-01 8.62169400e-01 8.60987588e-01 8.59807391e-01 8.58628807e-01 + 8.57451835e-01 8.56276472e-01 8.55102714e-01 8.53930561e-01 8.52760010e-01 + 8.51591058e-01 8.50423702e-01 8.49257941e-01 8.48093771e-01 8.46931191e-01 + 8.45770199e-01 8.44610790e-01 8.43452964e-01 8.42296717e-01 8.41142048e-01 + 8.39988953e-01 8.38837431e-01 8.37687478e-01 8.36539092e-01 8.35392271e-01 + 8.34247012e-01 8.33103313e-01 8.31961170e-01 8.30820582e-01 8.29681546e-01 + 8.28544059e-01 8.27408118e-01 8.26273721e-01 8.25140866e-01 8.24009549e-01 + 8.22879768e-01 8.21751519e-01 8.20624802e-01 8.19499611e-01 8.18375946e-01 + 8.17253803e-01 8.16133178e-01 8.15014070e-01 8.13896475e-01 8.12780391e-01 + 8.11665814e-01 8.10552741e-01 8.09441170e-01 8.08331097e-01 8.07222519e-01 + 8.06115433e-01 8.05009836e-01 8.03905725e-01 8.02803096e-01 8.01701946e-01 + 8.00602272e-01 7.99504070e-01 7.98407337e-01 7.97312069e-01 7.96218263e-01 + 7.95125915e-01 7.94035021e-01 7.92945578e-01 7.91857581e-01 7.90771028e-01 + 7.89685913e-01 7.88602232e-01 7.87519983e-01 7.86439160e-01 7.85359759e-01 + 7.84281776e-01 7.83205206e-01 7.82130045e-01 7.81056287e-01 7.79983929e-01 + 7.78912966e-01 7.77843391e-01 7.76775201e-01 7.75708390e-01 7.74642952e-01 + 7.73578882e-01 7.72516175e-01 7.71454824e-01 7.70394824e-01 7.69336169e-01 + 7.68278852e-01 7.67222866e-01 7.66168206e-01 7.65114865e-01 7.64062835e-01 + 7.63012109e-01 7.61962680e-01 7.60914541e-01 7.59867683e-01 7.58822098e-01 + 7.57777779e-01 7.56734717e-01 7.55692902e-01 7.54652326e-01 7.53612980e-01 + 7.52574853e-01 7.51537937e-01 7.50502220e-01 7.49467692e-01 7.48434342e-01 + 7.47402159e-01 7.46371131e-01 7.45341247e-01 7.44312493e-01 7.43284857e-01 + 7.42258326e-01 7.41232886e-01 7.40208523e-01 7.39185222e-01 7.38162968e-01 + 7.37141745e-01 7.36121538e-01 7.35102329e-01 7.34084101e-01 7.33066837e-01 + 7.32050516e-01 7.31035122e-01 7.30020632e-01 7.29007028e-01 7.27994287e-01 + 7.26982387e-01 7.25971306e-01 7.24961020e-01 7.23951505e-01 7.22942734e-01 + 7.21934682e-01 7.20927321e-01 7.19920623e-01 7.18914559e-01 7.17909098e-01 + 7.16904209e-01 7.15899860e-01 7.14896016e-01 7.13892643e-01 7.12889703e-01 + 7.11887161e-01 7.10884976e-01 7.09883108e-01 7.08881516e-01 7.07880155e-01 + 7.06878980e-01 7.05877946e-01 7.04877003e-01 7.03876101e-01 7.02875188e-01 + 7.01874211e-01 7.00873112e-01 6.99871834e-01 6.98870317e-01 6.97868499e-01 + 6.96866313e-01 6.95863694e-01 6.94860571e-01 6.93856872e-01 6.92852523e-01 + 6.91847445e-01 6.90841558e-01 6.89834779e-01 6.88827020e-01 6.87818192e-01 + 6.86808201e-01 6.85796952e-01 6.84784343e-01 6.83770270e-01 6.82754627e-01 + 6.81737300e-01 6.80718175e-01 6.79697130e-01 6.78674042e-01 6.77648780e-01 + 6.76621212e-01 6.75591198e-01 6.74558594e-01 6.73523250e-01 6.72485013e-01 + 6.71443720e-01 6.70399207e-01 6.69351300e-01 6.68299821e-01 6.67244585e-01 + 6.66185399e-01 6.65122064e-01 6.64054373e-01 6.62982114e-01 6.61905065e-01 + 6.60822995e-01 6.59735668e-01 6.58642836e-01 6.57544244e-01 6.56439627e-01 + 6.55328713e-01 6.54211215e-01 6.53086841e-01 6.51955286e-01 6.50816235e-01 + 6.49669360e-01 6.48514324e-01 6.47350776e-01 6.46178354e-01 6.44996683e-01 + 6.43805374e-01 6.42604025e-01 6.41392220e-01 6.40169528e-01 6.38935504e-01 + 6.37689687e-01 6.36431601e-01 6.35160751e-01 6.33876629e-01 6.32578706e-01 + 6.31266438e-01 6.29939261e-01 6.28596592e-01 6.27237829e-01 6.25862351e-01 + 6.24469514e-01 6.23058654e-01 6.21629085e-01 6.20180101e-01 6.18710969e-01 + 6.17220935e-01 6.15709221e-01 6.14175024e-01 6.12617513e-01 6.11035836e-01 + 6.09429111e-01 6.07796429e-01 6.06136855e-01 6.04449424e-01 6.02733144e-01 + 6.00986991e-01 5.99209913e-01 5.97400828e-01 5.95558621e-01 5.93682146e-01 + 5.91770226e-01 5.89821652e-01 5.87835180e-01 5.85809535e-01 5.83743407e-01 + 5.81635454e-01 5.79484299e-01 5.77288531e-01 5.75046705e-01 5.72757343e-01 + 5.70418930e-01 5.68029921e-01 5.65588735e-01 5.63093758e-01 5.60543345e-01 + 5.57935816e-01 5.55269463e-01 5.52542545e-01 5.49753293e-01 5.46899910e-01 + 5.43980570e-01 5.40993427e-01 5.37936605e-01 5.34808213e-01 5.31606337e-01 + 5.28329048e-01 5.24974404e-01 5.21540450e-01 5.18025227e-01 5.14426771e-01 + 5.10743118e-01 5.06972310e-01 5.03112399e-01 4.99161450e-01 4.95117550e-01 + 4.90978812e-01 4.86743382e-01 4.82409446e-01 4.77975236e-01 4.73439039e-01 + 4.68799206e-01 4.64054160e-01 4.59202405e-01 4.54242535e-01 4.49173247e-01 + 4.43993352e-01 4.38701781e-01 4.33297606e-01 4.27780043e-01 4.22148472e-01 + 4.16402449e-01 4.10541717e-01 4.04566224e-01 3.98476134e-01 3.92271848e-01 + 3.85954012e-01 3.79523540e-01 3.72981624e-01 3.66329751e-01 3.59569723e-01 + 3.52703668e-01 3.45734056e-01 3.38663718e-01 3.31495853e-01 3.24234051e-01 + 3.16882299e-01 3.09444996e-01 3.01926963e-01 2.94333453e-01 2.86670156e-01 + 2.78943210e-01 2.71159201e-01 2.63325162e-01 2.55448579e-01 2.47537380e-01 + 2.39599931e-01 2.31645027e-01 2.23681875e-01 2.15720077e-01 2.07769608e-01 + 1.99840793e-01 1.91944274e-01 1.84090973e-01 1.76292060e-01 1.68558901e-01 + 1.60903017e-01 1.53336024e-01 1.45869584e-01 1.38515337e-01 1.31284838e-01 + 1.24189492e-01 1.17240477e-01 1.10448676e-01 1.03824595e-01 9.73782939e-02 + 9.11193025e-02 8.50565488e-02 7.91982826e-02 7.35520037e-02 6.81243941e-02 + 6.29212538e-02 5.79474436e-02 5.32068346e-02 4.87022656e-02 4.44355099e-02 + 4.04072521e-02 3.66170759e-02 3.30634633e-02 2.97438060e-02 2.66544291e-02 + 2.37906280e-02 2.11467162e-02 1.87160870e-02 1.64912847e-02 1.44640875e-02 + 1.26255995e-02 1.09663495e-02 9.47639731e-03 8.14544397e-03 6.96294412e-03 + 5.91821927e-03 5.00056914e-03 4.19937944e-03 3.50422377e-03 2.90495820e-03 + 2.39180651e-03 1.95543501e-03 1.58701559e-03 1.27827650e-03 1.02154025e-03 + 8.09748707e-04 6.36475675e-04 4.95927573e-04 3.82933206e-04 2.92923820e-04 + 2.21904822e-04 1.66420727e-04 1.23514936e-04 9.06859386e-05 6.58415198e-05 + 4.72523917e-05 3.35065418e-05 2.34653835e-05 1.62225835e-05 1.10662166e-05 + 7.44467847e-06 4.93658073e-06 3.22467124e-06 2.07366607e-06 1.31176054e-06 + 8.15498138e-07 4.97621665e-07 2.97504885e-07 1.73762522e-07 9.86548547e-08 + 5.39360246e-08 2.78365328e-08 1.29159488e-08 4.56757882e-09 0.00000000e+00 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00440764e+01 2.00010572e+01 1.99581303e+01 1.99152956e+01 1.98725528e+01 + 1.98299017e+01 1.97873421e+01 1.97448739e+01 1.97024969e+01 1.96602108e+01 + 1.96180154e+01 1.95759107e+01 1.95338962e+01 1.94919720e+01 1.94501377e+01 + 1.94083933e+01 1.93667384e+01 1.93251729e+01 1.92836966e+01 1.92423094e+01 + 1.92010109e+01 1.91598011e+01 1.91186798e+01 1.90776467e+01 1.90367017e+01 + 1.89958445e+01 1.89550750e+01 1.89143931e+01 1.88737984e+01 1.88332909e+01 + 1.87928703e+01 1.87525365e+01 1.87122892e+01 1.86721283e+01 1.86320537e+01 + 1.85920650e+01 1.85521621e+01 1.85123449e+01 1.84726131e+01 1.84329667e+01 + 1.83934053e+01 1.83539288e+01 1.83145370e+01 1.82752298e+01 1.82360069e+01 + 1.81968683e+01 1.81578136e+01 1.81188427e+01 1.80799555e+01 1.80411518e+01 + 1.80024313e+01 1.79637939e+01 1.79252395e+01 1.78867678e+01 1.78483787e+01 + 1.78100719e+01 1.77718474e+01 1.77337049e+01 1.76956443e+01 1.76576654e+01 + 1.76197680e+01 1.75819519e+01 1.75442170e+01 1.75065630e+01 1.74689899e+01 + 1.74314974e+01 1.73940854e+01 1.73567537e+01 1.73195021e+01 1.72823305e+01 + 1.72452386e+01 1.72082263e+01 1.71712935e+01 1.71344400e+01 1.70976655e+01 + 1.70609700e+01 1.70243532e+01 1.69878150e+01 1.69513552e+01 1.69149737e+01 + 1.68786703e+01 1.68424448e+01 1.68062970e+01 1.67702268e+01 1.67342341e+01 + 1.66983185e+01 1.66624801e+01 1.66267186e+01 1.65910338e+01 1.65554256e+01 + 1.65198939e+01 1.64844384e+01 1.64490590e+01 1.64137555e+01 1.63785278e+01 + 1.63433757e+01 1.63082990e+01 1.62732977e+01 1.62383714e+01 1.62035201e+01 + 1.61687436e+01 1.61340418e+01 1.60994144e+01 1.60648614e+01 1.60303825e+01 + 1.59959776e+01 1.59616465e+01 1.59273891e+01 1.58932053e+01 1.58590948e+01 + 1.58250575e+01 1.57910933e+01 1.57572020e+01 1.57233834e+01 1.56896374e+01 + 1.56559638e+01 1.56223625e+01 1.55888333e+01 1.55553761e+01 1.55219907e+01 + 1.54886769e+01 1.54554346e+01 1.54222637e+01 1.53891640e+01 1.53561353e+01 + 1.53231775e+01 1.52902904e+01 1.52574739e+01 1.52247279e+01 1.51920521e+01 + 1.51594464e+01 1.51269108e+01 1.50944449e+01 1.50620488e+01 1.50297221e+01 + 1.49974649e+01 1.49652769e+01 1.49331579e+01 1.49011079e+01 1.48691267e+01 + 1.48372142e+01 1.48053701e+01 1.47735943e+01 1.47418868e+01 1.47102473e+01 + 1.46786757e+01 1.46471719e+01 1.46157357e+01 1.45843670e+01 1.45530656e+01 + 1.45218313e+01 1.44906641e+01 1.44595638e+01 1.44285303e+01 1.43975633e+01 + 1.43666628e+01 1.43358286e+01 1.43050607e+01 1.42743587e+01 1.42437226e+01 + 1.42131523e+01 1.41826476e+01 1.41522084e+01 1.41218345e+01 1.40915258e+01 + 1.40612821e+01 1.40311034e+01 1.40009894e+01 1.39709400e+01 1.39409552e+01 + 1.39110347e+01 1.38811784e+01 1.38513862e+01 1.38216579e+01 1.37919934e+01 + 1.37623926e+01 1.37328554e+01 1.37033815e+01 1.36739709e+01 1.36446234e+01 + 1.36153389e+01 1.35861172e+01 1.35569583e+01 1.35278619e+01 1.34988280e+01 + 1.34698564e+01 1.34409470e+01 1.34120996e+01 1.33833142e+01 1.33545905e+01 + 1.33259285e+01 1.32973280e+01 1.32687888e+01 1.32403110e+01 1.32118942e+01 + 1.31835384e+01 1.31552435e+01 1.31270093e+01 1.30988357e+01 1.30707226e+01 + 1.30426698e+01 1.30146773e+01 1.29867448e+01 1.29588722e+01 1.29310595e+01 + 1.29033065e+01 1.28756130e+01 1.28479790e+01 1.28204042e+01 1.27928887e+01 + 1.27654322e+01 1.27380346e+01 1.27106959e+01 1.26834158e+01 1.26561943e+01 + 1.26290312e+01 1.26019263e+01 1.25748797e+01 1.25478911e+01 1.25209604e+01 + 1.24940876e+01 1.24672724e+01 1.24405147e+01 1.24138145e+01 1.23871716e+01 + 1.23605859e+01 1.23340572e+01 1.23075855e+01 1.22811706e+01 1.22548124e+01 + 1.22285107e+01 1.22022655e+01 1.21760766e+01 1.21499440e+01 1.21238674e+01 + 1.20978468e+01 1.20718820e+01 1.20459730e+01 1.20201195e+01 1.19943216e+01 + 1.19685790e+01 1.19428917e+01 1.19172595e+01 1.18916823e+01 1.18661600e+01 + 1.18406925e+01 1.18152796e+01 1.17899213e+01 1.17646174e+01 1.17393678e+01 + 1.17141725e+01 1.16890311e+01 1.16639438e+01 1.16389103e+01 1.16139305e+01 + 1.15890043e+01 1.15641316e+01 1.15393124e+01 1.15145463e+01 1.14898335e+01 + 1.14651736e+01 1.14405667e+01 1.14160126e+01 1.13915112e+01 1.13670624e+01 + 1.13426661e+01 1.13183221e+01 1.12940304e+01 1.12697908e+01 1.12456032e+01 + 1.12214676e+01 1.11973837e+01 1.11733515e+01 1.11493710e+01 1.11254418e+01 + 1.11015641e+01 1.10777376e+01 1.10539622e+01 1.10302378e+01 1.10065644e+01 + 1.09829418e+01 1.09593698e+01 1.09358485e+01 1.09123777e+01 1.08889572e+01 + 1.08655870e+01 1.08422669e+01 1.08189969e+01 1.07957769e+01 1.07726066e+01 + 1.07494861e+01 1.07264153e+01 1.07033939e+01 1.06804219e+01 1.06574993e+01 + 1.06346258e+01 1.06118015e+01 1.05890261e+01 1.05662996e+01 1.05436219e+01 + 1.05209929e+01 1.04984124e+01 1.04758804e+01 1.04533967e+01 1.04309613e+01 + 1.04085741e+01 1.03862349e+01 1.03639436e+01 1.03417002e+01 1.03195045e+01 + 1.02973565e+01 1.02752560e+01 1.02532029e+01 1.02311972e+01 1.02092387e+01 + 1.01873273e+01 1.01654630e+01 1.01436455e+01 1.01218749e+01 1.01001511e+01 + 1.00784738e+01 1.00568431e+01 1.00352588e+01 1.00137208e+01 9.99222904e+00 + 9.97078341e+00 9.94938381e+00 9.92803014e+00 9.90672230e+00 9.88546019e+00 + 9.86424372e+00 9.84307278e+00 9.82194727e+00 9.80086711e+00 9.77983219e+00 + 9.75884242e+00 9.73789769e+00 9.71699792e+00 9.69614300e+00 9.67533284e+00 + 9.65456735e+00 9.63384642e+00 9.61316997e+00 9.59253789e+00 9.57195009e+00 + 9.55140648e+00 9.53090696e+00 9.51045144e+00 9.49003981e+00 9.46967200e+00 + 9.44934790e+00 9.42906742e+00 9.40883047e+00 9.38863695e+00 9.36848677e+00 + 9.34837984e+00 9.32831606e+00 9.30829535e+00 9.28831760e+00 9.26838273e+00 + 9.24849064e+00 9.22864125e+00 9.20883446e+00 9.18907018e+00 9.16934832e+00 + 9.14966878e+00 9.13003148e+00 9.11043633e+00 9.09088323e+00 9.07137210e+00 + 9.05190285e+00 9.03247538e+00 9.01308960e+00 8.99374544e+00 8.97444278e+00 + 8.95518156e+00 8.93596168e+00 8.91678304e+00 8.89764557e+00 8.87854917e+00 + 8.85949376e+00 8.84047925e+00 8.82150554e+00 8.80257256e+00 8.78368021e+00 + 8.76482840e+00 8.74601706e+00 8.72724609e+00 8.70851541e+00 8.68982493e+00 + 8.67117456e+00 8.65256422e+00 8.63399383e+00 8.61546328e+00 8.59697251e+00 + 8.57852143e+00 8.56010995e+00 8.54173798e+00 8.52340544e+00 8.50511224e+00 + 8.48685831e+00 8.46864356e+00 8.45046790e+00 8.43233125e+00 8.41423352e+00 + 8.39617463e+00 8.37815451e+00 8.36017306e+00 8.34223020e+00 8.32432585e+00 + 8.30645993e+00 8.28863235e+00 8.27084304e+00 8.25309190e+00 8.23537886e+00 + 8.21770384e+00 8.20006675e+00 8.18246752e+00 8.16490606e+00 8.14738229e+00 + 8.12989613e+00 8.11244750e+00 8.09503632e+00 8.07766250e+00 8.06032598e+00 + 8.04302666e+00 8.02576447e+00 8.00853933e+00 7.99135116e+00 7.97419988e+00 + 7.95708540e+00 7.94000767e+00 7.92296658e+00 7.90596207e+00 7.88899405e+00 + 7.87206245e+00 7.85516719e+00 7.83830819e+00 7.82148537e+00 7.80469866e+00 + 7.78794798e+00 7.77123325e+00 7.75455439e+00 7.73791133e+00 7.72130399e+00 + 7.70473229e+00 7.68819616e+00 7.67169552e+00 7.65523029e+00 7.63880040e+00 + 7.62240578e+00 7.60604634e+00 7.58972201e+00 7.57343271e+00 7.55717838e+00 + 7.54095894e+00 7.52477430e+00 7.50862440e+00 7.49250916e+00 7.47642851e+00 + 7.46038237e+00 7.44437067e+00 7.42839333e+00 7.41245029e+00 7.39654146e+00 + 7.38066678e+00 7.36482617e+00 7.34901955e+00 7.33324686e+00 7.31750803e+00 + 7.30180297e+00 7.28613161e+00 7.27049390e+00 7.25488974e+00 7.23931907e+00 + 7.22378183e+00 7.20827793e+00 7.19280730e+00 7.17736988e+00 7.16196559e+00 + 7.14659436e+00 7.13125612e+00 7.11595080e+00 7.10067833e+00 7.08543864e+00 + 7.07023165e+00 7.05505731e+00 7.03991553e+00 7.02480625e+00 7.00972939e+00 + 6.99468490e+00 6.97967269e+00 6.96469270e+00 6.94974487e+00 6.93482911e+00 + 6.91994537e+00 6.90509357e+00 6.89027365e+00 6.87548554e+00 6.86072916e+00 + 6.84600445e+00 6.83131135e+00 6.81664978e+00 6.80201968e+00 6.78742098e+00 + 6.77285361e+00 6.75831750e+00 6.74381260e+00 6.72933882e+00 6.71489611e+00 + 6.70048439e+00 6.68610361e+00 6.67175369e+00 6.65743457e+00 6.64314618e+00 + 6.62888845e+00 6.61466133e+00 6.60046474e+00 6.58629863e+00 6.57216291e+00 + 6.55805753e+00 6.54398243e+00 6.52993754e+00 6.51592279e+00 6.50193811e+00 + 6.48798346e+00 6.47405875e+00 6.46016392e+00 6.44629892e+00 6.43246368e+00 + 6.41865813e+00 6.40488221e+00 6.39113586e+00 6.37741901e+00 6.36373160e+00 + 6.35007356e+00 6.33644484e+00 6.32284537e+00 6.30927508e+00 6.29573393e+00 + 6.28222183e+00 6.26873873e+00 6.25528457e+00 6.24185929e+00 6.22846282e+00 + 6.21509511e+00 6.20175608e+00 6.18844568e+00 6.17516385e+00 6.16191053e+00 + 6.14868565e+00 6.13548915e+00 6.12232097e+00 6.10918106e+00 6.09606935e+00 + 6.08298578e+00 6.06993029e+00 6.05690282e+00 6.04390331e+00 6.03093170e+00 + 6.01798793e+00 6.00507194e+00 5.99218368e+00 5.97932307e+00 5.96649006e+00 + 5.95368460e+00 5.94090662e+00 5.92815607e+00 5.91543288e+00 5.90273699e+00 + 5.89006836e+00 5.87742692e+00 5.86481260e+00 5.85222536e+00 5.83966514e+00 + 5.82713187e+00 5.81462550e+00 5.80214598e+00 5.78969323e+00 5.77726722e+00 + 5.76486787e+00 5.75249513e+00 5.74014895e+00 5.72782927e+00 5.71553603e+00 + 5.70326917e+00 5.69102864e+00 5.67881438e+00 5.66662634e+00 5.65446445e+00 + 5.64232867e+00 5.63021893e+00 5.61813518e+00 5.60607737e+00 5.59404543e+00 + 5.58203932e+00 5.57005898e+00 5.55810435e+00 5.54617538e+00 5.53427201e+00 + 5.52239418e+00 5.51054185e+00 5.49871496e+00 5.48691345e+00 5.47513727e+00 + 5.46338636e+00 5.45166067e+00 5.43996015e+00 5.42828475e+00 5.41663440e+00 + 5.40500905e+00 5.39340865e+00 5.38183316e+00 5.37028250e+00 5.35875664e+00 + 5.34725551e+00 5.33577907e+00 5.32432726e+00 5.31290002e+00 5.30149731e+00 + 5.29011908e+00 5.27876526e+00 5.26743582e+00 5.25613069e+00 5.24484982e+00 + 5.23359316e+00 5.22236066e+00 5.21115227e+00 5.19996794e+00 5.18880761e+00 + 5.17767123e+00 5.16655876e+00 5.15547013e+00 5.14440530e+00 5.13336422e+00 + 5.12234684e+00 5.11135310e+00 5.10038296e+00 5.08943636e+00 5.07851326e+00 + 5.06761360e+00 5.05673733e+00 5.04588441e+00 5.03505478e+00 5.02424839e+00 + 5.01346520e+00 5.00270514e+00 4.99196819e+00 4.98125427e+00 4.97056335e+00 + 4.95989538e+00 4.94925030e+00 4.93862807e+00 4.92802863e+00 4.91745195e+00 + 4.90689796e+00 4.89636663e+00 4.88585790e+00 4.87537172e+00 4.86490805e+00 + 4.85446683e+00 4.84404803e+00 4.83365158e+00 4.82327745e+00 4.81292559e+00 + 4.80259594e+00 4.79228846e+00 4.78200311e+00 4.77173983e+00 4.76149857e+00 + 4.75127930e+00 4.74108196e+00 4.73090650e+00 4.72075289e+00 4.71062106e+00 + 4.70051099e+00 4.69042261e+00 4.68035588e+00 4.67031076e+00 4.66028719e+00 + 4.65028514e+00 4.64030456e+00 4.63034539e+00 4.62040761e+00 4.61049115e+00 + 4.60059597e+00 4.59072203e+00 4.58086928e+00 4.57103768e+00 4.56122718e+00 + 4.55143774e+00 4.54166930e+00 4.53192183e+00 4.52219528e+00 4.51248961e+00 + 4.50280477e+00 4.49314071e+00 4.48349739e+00 4.47387478e+00 4.46427281e+00 + 4.45469145e+00 4.44513066e+00 4.43559038e+00 4.42607058e+00 4.41657121e+00 + 4.40709223e+00 4.39763360e+00 4.38819526e+00 4.37877718e+00 4.36937932e+00 + 4.36000162e+00 4.35064406e+00 4.34130657e+00 4.33198913e+00 4.32269168e+00 + 4.31341419e+00 4.30415660e+00 4.29491889e+00 4.28570101e+00 4.27650290e+00 + 4.26732454e+00 4.25816588e+00 4.24902688e+00 4.23990748e+00 4.23080767e+00 + 4.22172738e+00 4.21266658e+00 4.20362522e+00 4.19460328e+00 4.18560069e+00 + 4.17661743e+00 4.16765344e+00 4.15870870e+00 4.14978315e+00 4.14087676e+00 + 4.13198948e+00 4.12312128e+00 4.11427211e+00 4.10544194e+00 4.09663071e+00 + 4.08783840e+00 4.07906495e+00 4.07031034e+00 4.06157452e+00 4.05285744e+00 + 4.04415907e+00 4.03547938e+00 4.02681831e+00 4.01817583e+00 4.00955190e+00 + 4.00094647e+00 3.99235952e+00 3.98379100e+00 3.97524086e+00 3.96670908e+00 + 3.95819561e+00 3.94970041e+00 3.94122344e+00 3.93276467e+00 3.92432405e+00 + 3.91590154e+00 3.90749711e+00 3.89911073e+00 3.89074234e+00 3.88239191e+00 + 3.87405940e+00 3.86574477e+00 3.85744799e+00 3.84916902e+00 3.84090782e+00 + 3.83266434e+00 3.82443856e+00 3.81623044e+00 3.80803993e+00 3.79986699e+00 + 3.79171160e+00 3.78357372e+00 3.77545330e+00 3.76735030e+00 3.75926470e+00 + 3.75119645e+00 3.74314552e+00 3.73511187e+00 3.72709545e+00 3.71909625e+00 + 3.71111421e+00 3.70314930e+00 3.69520149e+00 3.68727074e+00 3.67935701e+00 + 3.67146026e+00 3.66358046e+00 3.65571757e+00 3.64787156e+00 3.64004238e+00 + 3.63223001e+00 3.62443441e+00 3.61665554e+00 3.60889336e+00 3.60114785e+00 + 3.59341895e+00 3.58570665e+00 3.57801089e+00 3.57033166e+00 3.56266890e+00 + 3.55502259e+00 3.54739270e+00 3.53977917e+00 3.53218199e+00 3.52460112e+00 + 3.51703651e+00 3.50948814e+00 3.50195597e+00 3.49443996e+00 3.48694009e+00 + 3.47945631e+00 3.47198860e+00 3.46453691e+00 3.45710121e+00 3.44968148e+00 + 3.44227767e+00 3.43488974e+00 3.42751768e+00 3.42016144e+00 3.41282098e+00 + 3.40549628e+00 3.39818730e+00 3.39089401e+00 3.38361637e+00 3.37635435e+00 + 3.36910791e+00 3.36187703e+00 3.35466167e+00 3.34746179e+00 3.34027737e+00 + 3.33310836e+00 3.32595474e+00 3.31881648e+00 3.31169353e+00 3.30458587e+00 + 3.29749347e+00 3.29041629e+00 3.28335430e+00 3.27630746e+00 3.26927575e+00 + 3.26225913e+00 3.25525757e+00 3.24827104e+00 3.24129950e+00 3.23434292e+00 + 3.22740128e+00 3.22047453e+00 3.21356265e+00 3.20666561e+00 3.19978336e+00 + 3.19291589e+00 3.18606316e+00 3.17922513e+00 3.17240178e+00 3.16559307e+00 + 3.15879898e+00 3.15201947e+00 3.14525451e+00 3.13850407e+00 3.13176812e+00 + 3.12504662e+00 3.11833955e+00 3.11164687e+00 3.10496856e+00 3.09830458e+00 + 3.09165491e+00 3.08501950e+00 3.07839834e+00 3.07179139e+00 3.06519862e+00 + 3.05861999e+00 3.05205549e+00 3.04550508e+00 3.03896872e+00 3.03244639e+00 + 3.02593806e+00 3.01944370e+00 3.01296328e+00 3.00649677e+00 3.00004413e+00 + 2.99360535e+00 2.98718038e+00 2.98076920e+00 2.97437178e+00 2.96798810e+00 + 2.96161811e+00 2.95526179e+00 2.94891912e+00 2.94259006e+00 2.93627458e+00 + 2.92997266e+00 2.92368427e+00 2.91740937e+00 2.91114793e+00 2.90489994e+00 + 2.89866535e+00 2.89244415e+00 2.88623630e+00 2.88004177e+00 2.87386054e+00 + 2.86769257e+00 2.86153784e+00 2.85539632e+00 2.84926798e+00 2.84315279e+00 + 2.83705073e+00 2.83096177e+00 2.82488587e+00 2.81882302e+00 2.81277317e+00 + 2.80673631e+00 2.80071241e+00 2.79470143e+00 2.78870336e+00 2.78271816e+00 + 2.77674581e+00 2.77078627e+00 2.76483952e+00 2.75890554e+00 2.75298429e+00 + 2.74707575e+00 2.74117990e+00 2.73529669e+00 2.72942612e+00 2.72356814e+00 + 2.71772273e+00 2.71188987e+00 2.70606953e+00 2.70026168e+00 2.69446630e+00 + 2.68868335e+00 2.68291282e+00 2.67715467e+00 2.67140888e+00 2.66567542e+00 + 2.65995427e+00 2.65424539e+00 2.64854877e+00 2.64286437e+00 2.63719218e+00 + 2.63153215e+00 2.62588428e+00 2.62024853e+00 2.61462487e+00 2.60901328e+00 + 2.60341374e+00 2.59782621e+00 2.59225068e+00 2.58668711e+00 2.58113548e+00 + 2.57559577e+00 2.57006795e+00 2.56455199e+00 2.55904787e+00 2.55355557e+00 + 2.54807505e+00 2.54260629e+00 2.53714927e+00 2.53170396e+00 2.52627034e+00 + 2.52084839e+00 2.51543806e+00 2.51003935e+00 2.50465223e+00 2.49927667e+00 + 2.49391265e+00 2.48856013e+00 2.48321911e+00 2.47788955e+00 2.47257143e+00 + 2.46726472e+00 2.46196940e+00 2.45668545e+00 2.45141283e+00 2.44615154e+00 + 2.44090153e+00 2.43566279e+00 2.43043530e+00 2.42521903e+00 2.42001395e+00 + 2.41482004e+00 2.40963728e+00 2.40446564e+00 2.39930510e+00 2.39415564e+00 + 2.38901723e+00 2.38388985e+00 2.37877347e+00 2.37366808e+00 2.36857364e+00 + 2.36349013e+00 2.35841754e+00 2.35335583e+00 2.34830499e+00 2.34326498e+00 + 2.33823580e+00 2.33321740e+00 2.32820978e+00 2.32321291e+00 2.31822676e+00 + 2.31325131e+00 2.30828654e+00 2.30333242e+00 2.29838894e+00 2.29345607e+00 + 2.28853378e+00 2.28362206e+00 2.27872088e+00 2.27383022e+00 2.26895006e+00 + 2.26408037e+00 2.25922113e+00 2.25437232e+00 2.24953392e+00 2.24470590e+00 + 2.23988824e+00 2.23508093e+00 2.23028393e+00 2.22549722e+00 2.22072079e+00 + 2.21595462e+00 2.21119867e+00 2.20645292e+00 2.20171737e+00 2.19699197e+00 + 2.19227672e+00 2.18757159e+00 2.18287656e+00 2.17819160e+00 2.17351670e+00 + 2.16885183e+00 2.16419698e+00 2.15955211e+00 2.15491722e+00 2.15029227e+00 + 2.14567724e+00 2.14107213e+00 2.13647689e+00 2.13189152e+00 2.12731599e+00 + 2.12275028e+00 2.11819437e+00 2.11364823e+00 2.10911186e+00 2.10458522e+00 + 2.10006829e+00 2.09556106e+00 2.09106350e+00 2.08657560e+00 2.08209733e+00 + 2.07762867e+00 2.07316960e+00 2.06872010e+00 2.06428015e+00 2.05984973e+00 + 2.05542881e+00 2.05101739e+00 2.04661543e+00 2.04222293e+00 2.03783984e+00 + 2.03346617e+00 2.02910188e+00 2.02474696e+00 2.02040139e+00 2.01606514e+00 + 2.01173820e+00 2.00742055e+00 2.00311216e+00 1.99881302e+00 1.99452311e+00 + 1.99024240e+00 1.98597088e+00 1.98170853e+00 1.97745533e+00 1.97321125e+00 + 1.96897629e+00 1.96475041e+00 1.96053360e+00 1.95632584e+00 1.95212712e+00 + 1.94793740e+00 1.94375668e+00 1.93958493e+00 1.93542213e+00 1.93126827e+00 + 1.92712332e+00 1.92298727e+00 1.91886010e+00 1.91474178e+00 1.91063231e+00 + 1.90653165e+00 1.90243979e+00 1.89835672e+00 1.89428241e+00 1.89021684e+00 + 1.88616000e+00 1.88211187e+00 1.87807242e+00 1.87404164e+00 1.87001952e+00 + 1.86600602e+00 1.86200115e+00 1.85800486e+00 1.85401715e+00 1.85003801e+00 + 1.84606740e+00 1.84210531e+00 1.83815173e+00 1.83420663e+00 1.83027000e+00 + 1.82634182e+00 1.82242207e+00 1.81851073e+00 1.81460779e+00 1.81071322e+00 + 1.80682701e+00 1.80294915e+00 1.79907960e+00 1.79521836e+00 1.79136541e+00 + 1.78752073e+00 1.78368429e+00 1.77985610e+00 1.77603612e+00 1.77222433e+00 + 1.76842073e+00 1.76462529e+00 1.76083800e+00 1.75705883e+00 1.75328778e+00 + 1.74952482e+00 1.74576994e+00 1.74202311e+00 1.73828433e+00 1.73455357e+00 + 1.73083082e+00 1.72711606e+00 1.72340927e+00 1.71971043e+00 1.71601954e+00 + 1.71233656e+00 1.70866149e+00 1.70499431e+00 1.70133500e+00 1.69768354e+00 + 1.69403992e+00 1.69040412e+00 1.68677613e+00 1.68315592e+00 1.67954347e+00 + 1.67593879e+00 1.67234184e+00 1.66875260e+00 1.66517108e+00 1.66159723e+00 + 1.65803106e+00 1.65447255e+00 1.65092167e+00 1.64737841e+00 1.64384275e+00 + 1.64031469e+00 1.63679419e+00 1.63328125e+00 1.62977586e+00 1.62627798e+00 + 1.62278761e+00 1.61930474e+00 1.61582933e+00 1.61236139e+00 1.60890089e+00 + 1.60544782e+00 1.60200216e+00 1.59856389e+00 1.59513300e+00 1.59170948e+00 + 1.58829330e+00 1.58488446e+00 1.58148293e+00 1.57808870e+00 1.57470176e+00 + 1.57132209e+00 1.56794967e+00 1.56458448e+00 1.56122652e+00 1.55787577e+00 + 1.55453221e+00 1.55119582e+00 1.54786660e+00 1.54454452e+00 1.54122957e+00 + 1.53792173e+00 1.53462100e+00 1.53132735e+00 1.52804076e+00 1.52476123e+00 + 1.52148874e+00 1.51822328e+00 1.51496482e+00 1.51171335e+00 1.50846886e+00 + 1.50523134e+00 1.50200077e+00 1.49877712e+00 1.49556040e+00 1.49235058e+00 + 1.48914765e+00 1.48595159e+00 1.48276240e+00 1.47958005e+00 1.47640452e+00 + 1.47323582e+00 1.47007391e+00 1.46691879e+00 1.46377044e+00 1.46062885e+00 + 1.45749400e+00 1.45436588e+00 1.45124447e+00 1.44812976e+00 1.44502174e+00 + 1.44192039e+00 1.43882569e+00 1.43573763e+00 1.43265621e+00 1.42958139e+00 + 1.42651318e+00 1.42345155e+00 1.42039649e+00 1.41734799e+00 1.41430603e+00 + 1.41127059e+00 1.40824168e+00 1.40521926e+00 1.40220333e+00 1.39919388e+00 + 1.39619088e+00 1.39319433e+00 1.39020420e+00 1.38722050e+00 1.38424320e+00 + 1.38127229e+00 1.37830775e+00 1.37534958e+00 1.37239776e+00 1.36945227e+00 + 1.36651310e+00 1.36358024e+00 1.36065367e+00 1.35773339e+00 1.35481937e+00 + 1.35191161e+00 1.34901009e+00 1.34611479e+00 1.34322571e+00 1.34034283e+00 + 1.33746613e+00 1.33459561e+00 1.33173125e+00 1.32887304e+00 1.32602096e+00 + 1.32317500e+00 1.32033515e+00 1.31750140e+00 1.31467372e+00 1.31185212e+00 + 1.30903657e+00 1.30622706e+00 1.30342358e+00 1.30062612e+00 1.29783466e+00 + 1.29504919e+00 1.29226970e+00 1.28949618e+00 1.28672861e+00 1.28396697e+00 + 1.28121127e+00 1.27846147e+00 1.27571758e+00 1.27297958e+00 1.27024745e+00 + 1.26752119e+00 1.26480077e+00 1.26208620e+00 1.25937745e+00 1.25667451e+00 + 1.25397737e+00 1.25128603e+00 1.24860045e+00 1.24592064e+00 1.24324658e+00 + 1.24057826e+00 1.23791567e+00 1.23525878e+00 1.23260760e+00 1.22996211e+00 + 1.22732230e+00 1.22468815e+00 1.22205965e+00 1.21943680e+00 1.21681957e+00 + 1.21420796e+00 1.21160195e+00 1.20900153e+00 1.20640670e+00 1.20381743e+00 + 1.20123372e+00 1.19865555e+00 1.19608291e+00 1.19351580e+00 1.19095419e+00 + 1.18839808e+00 1.18584745e+00 1.18330230e+00 1.18076261e+00 1.17822836e+00 + 1.17569956e+00 1.17317618e+00 1.17065821e+00 1.16814565e+00 1.16563847e+00 + 1.16313668e+00 1.16064025e+00 1.15814918e+00 1.15566346e+00 1.15318306e+00 + 1.15070799e+00 1.14823823e+00 1.14577377e+00 1.14331459e+00 1.14086069e+00 + 1.13841205e+00 1.13596867e+00 1.13353053e+00 1.13109762e+00 1.12866992e+00 + 1.12624744e+00 1.12383015e+00 1.12141805e+00 1.11901112e+00 1.11660935e+00 + 1.11421273e+00 1.11182126e+00 1.10943491e+00 1.10705368e+00 1.10467756e+00 + 1.10230654e+00 1.09994060e+00 1.09757973e+00 1.09522393e+00 1.09287318e+00 + 1.09052747e+00 1.08818679e+00 1.08585113e+00 1.08352048e+00 1.08119483e+00 + 1.07887416e+00 1.07655847e+00 1.07424774e+00 1.07194197e+00 1.06964114e+00 + 1.06734525e+00 1.06505427e+00 1.06276821e+00 1.06048705e+00 1.05821077e+00 + 1.05593938e+00 1.05367285e+00 1.05141119e+00 1.04915437e+00 1.04690238e+00 + 1.04465523e+00 1.04241289e+00 1.04017535e+00 1.03794261e+00 1.03571465e+00 + 1.03349147e+00 1.03127304e+00 1.02905938e+00 1.02685045e+00 1.02464626e+00 + 1.02244678e+00 1.02025202e+00 1.01806196e+00 1.01587659e+00 1.01369590e+00 + 1.01151988e+00 1.00934851e+00 1.00718180e+00 1.00501973e+00 1.00286228e+00 + 1.00070946e+00 9.98561236e-01 9.96417615e-01 9.94278581e-01 9.92144125e-01 + 9.90014236e-01 9.87888904e-01 9.85768119e-01 9.83651871e-01 9.81540149e-01 + 9.79432944e-01 9.77330246e-01 9.75232044e-01 9.73138328e-01 9.71049088e-01 + 9.68964314e-01 9.66883996e-01 9.64808125e-01 9.62736689e-01 9.60669679e-01 + 9.58607085e-01 9.56548897e-01 9.54495105e-01 9.52445699e-01 9.50400669e-01 + 9.48360004e-01 9.46323696e-01 9.44291733e-01 9.42264107e-01 9.40240807e-01 + 9.38221822e-01 9.36207144e-01 9.34196763e-01 9.32190667e-01 9.30188848e-01 + 9.28191295e-01 9.26197999e-01 9.24208949e-01 9.22224136e-01 9.20243549e-01 + 9.18267179e-01 9.16295016e-01 9.14327050e-01 9.12363271e-01 9.10403669e-01 + 9.08448234e-01 9.06496956e-01 9.04549825e-01 9.02606832e-01 9.00667966e-01 + 8.98733217e-01 8.96802576e-01 8.94876032e-01 8.92953575e-01 8.91035196e-01 + 8.89120885e-01 8.87210631e-01 8.85304424e-01 8.83402255e-01 8.81504113e-01 + 8.79609989e-01 8.77719872e-01 8.75833752e-01 8.73951619e-01 8.72073464e-01 + 8.70199275e-01 8.68329043e-01 8.66462758e-01 8.64600409e-01 8.62741986e-01 + 8.60887479e-01 8.59036879e-01 8.57190173e-01 8.55347353e-01 8.53508408e-01 + 8.51673328e-01 8.49842102e-01 8.48014719e-01 8.46191170e-01 8.44371444e-01 + 8.42555531e-01 8.40743420e-01 8.38935100e-01 8.37130561e-01 8.35329792e-01 + 8.33532782e-01 8.31739522e-01 8.29950000e-01 8.28164205e-01 8.26382127e-01 + 8.24603754e-01 8.22829076e-01 8.21058082e-01 8.19290760e-01 8.17527101e-01 + 8.15767091e-01 8.14010722e-01 8.12257980e-01 8.10508856e-01 8.08763337e-01 + 8.07021412e-01 8.05283069e-01 8.03548298e-01 8.01817087e-01 8.00089423e-01 + 7.98365295e-01 7.96644692e-01 7.94927601e-01 7.93214010e-01 7.91503908e-01 + 7.89797282e-01 7.88094120e-01 7.86394410e-01 7.84698139e-01 7.83005295e-01 + 7.81315865e-01 7.79629836e-01 7.77947197e-01 7.76267933e-01 7.74592033e-01 + 7.72919482e-01 7.71250267e-01 7.69584376e-01 7.67921795e-01 7.66262510e-01 + 7.64606508e-01 7.62953775e-01 7.61304297e-01 7.59658059e-01 7.58015048e-01 + 7.56375250e-01 7.54738649e-01 7.53105231e-01 7.51474982e-01 7.49847887e-01 + 7.48223929e-01 7.46603095e-01 7.44985369e-01 7.43370735e-01 7.41759177e-01 + 7.40150680e-01 7.38545227e-01 7.36942802e-01 7.35343389e-01 7.33746970e-01 + 7.32153529e-01 7.30563049e-01 7.28975513e-01 7.27390903e-01 7.25809201e-01 + 7.24230389e-01 7.22654449e-01 7.21081363e-01 7.19511112e-01 7.17943676e-01 + 7.16379038e-01 7.14817176e-01 7.13258073e-01 7.11701707e-01 7.10148058e-01 + 7.08597106e-01 7.07048830e-01 7.05503209e-01 7.03960221e-01 7.02419845e-01 + 7.00882058e-01 6.99346838e-01 6.97814163e-01 6.96284009e-01 6.94756352e-01 + 6.93231170e-01 6.91708437e-01 6.90188130e-01 6.88670223e-01 6.87154691e-01 + 6.85641509e-01 6.84130649e-01 6.82622086e-01 6.81115793e-01 6.79611743e-01 + 6.78109907e-01 6.76610256e-01 6.75112764e-01 6.73617399e-01 6.72124133e-01 + 6.70632935e-01 6.69143774e-01 6.67656619e-01 6.66171439e-01 6.64688201e-01 + 6.63206872e-01 6.61727419e-01 6.60249807e-01 6.58774002e-01 6.57299969e-01 + 6.55827672e-01 6.54357074e-01 6.52888139e-01 6.51420829e-01 6.49955104e-01 + 6.48490927e-01 6.47028257e-01 6.45567053e-01 6.44107275e-01 6.42648880e-01 + 6.41191826e-01 6.39736069e-01 6.38281565e-01 6.36828269e-01 6.35376134e-01 + 6.33925114e-01 6.32475162e-01 6.31026228e-01 6.29578264e-01 6.28131219e-01 + 6.26685041e-01 6.25239679e-01 6.23795080e-01 6.22351189e-01 6.20907951e-01 + 6.19465310e-01 6.18023208e-01 6.16581589e-01 6.15140391e-01 6.13699555e-01 + 6.12259019e-01 6.10818721e-01 6.09378596e-01 6.07938579e-01 6.06498604e-01 + 6.05058604e-01 6.03618509e-01 6.02178250e-01 6.00737754e-01 5.99296950e-01 + 5.97855763e-01 5.96414118e-01 5.94971938e-01 5.93529144e-01 5.92085657e-01 + 5.90641395e-01 5.89196275e-01 5.87750214e-01 5.86303125e-01 5.84854920e-01 + 5.83405511e-01 5.81954807e-01 5.80502715e-01 5.79049141e-01 5.77593989e-01 + 5.76137162e-01 5.74678560e-01 5.73218082e-01 5.71755624e-01 5.70291081e-01 + 5.68824347e-01 5.67355312e-01 5.65883866e-01 5.64409896e-01 5.62933287e-01 + 5.61453921e-01 5.59971680e-01 5.58486443e-01 5.56998085e-01 5.55506482e-01 + 5.54011505e-01 5.52513025e-01 5.51010909e-01 5.49505022e-01 5.47995227e-01 + 5.46481386e-01 5.44963355e-01 5.43440991e-01 5.41914147e-01 5.40382673e-01 + 5.38846419e-01 5.37305229e-01 5.35758946e-01 5.34207411e-01 5.32650462e-01 + 5.31087934e-01 5.29519659e-01 5.27945467e-01 5.26365185e-01 5.24778637e-01 + 5.23185644e-01 5.21586025e-01 5.19979596e-01 5.18366169e-01 5.16745554e-01 + 5.15117559e-01 5.13481987e-01 5.11838640e-01 5.10187316e-01 5.08527810e-01 + 5.06859916e-01 5.05183421e-01 5.03498113e-01 5.01803775e-01 5.00100187e-01 + 4.98387128e-01 4.96664371e-01 4.94931688e-01 4.93188848e-01 4.91435617e-01 + 4.89671756e-01 4.87897027e-01 4.86111186e-01 4.84313987e-01 4.82505182e-01 + 4.80684518e-01 4.78851743e-01 4.77006599e-01 4.75148825e-01 4.73278161e-01 + 4.71394342e-01 4.69497099e-01 4.67586165e-01 4.65661265e-01 4.63722128e-01 + 4.61768475e-01 4.59800029e-01 4.57816510e-01 4.55817634e-01 4.53803118e-01 + 4.51772676e-01 4.49726022e-01 4.47662866e-01 4.45582919e-01 4.43485891e-01 + 4.41371488e-01 4.39239420e-01 4.37089394e-01 4.34921115e-01 4.32734292e-01 + 4.30528630e-01 4.28303837e-01 4.26059620e-01 4.23795689e-01 4.21511752e-01 + 4.19207520e-01 4.16882707e-01 4.14537026e-01 4.12170195e-01 4.09781933e-01 + 4.07371963e-01 4.04940009e-01 4.02485802e-01 4.00009075e-01 3.97509566e-01 + 3.94987017e-01 3.92441177e-01 3.89871799e-01 3.87278645e-01 3.84661480e-01 + 3.82020079e-01 3.79354224e-01 3.76663705e-01 3.73948321e-01 3.71207881e-01 + 3.68442203e-01 3.65651117e-01 3.62834463e-01 3.59992093e-01 3.57123872e-01 + 3.54229679e-01 3.51309405e-01 3.48362957e-01 3.45390258e-01 3.42391245e-01 + 3.39365874e-01 3.36314117e-01 3.33235967e-01 3.30131432e-01 3.27000544e-01 + 3.23843354e-01 3.20659935e-01 3.17450383e-01 3.14214817e-01 3.10953381e-01 + 3.07666242e-01 3.04353596e-01 3.01015664e-01 2.97652696e-01 2.94264969e-01 + 2.90852790e-01 2.87416499e-01 2.83956463e-01 2.80473085e-01 2.76966798e-01 + 2.73438070e-01 2.69887404e-01 2.66315338e-01 2.62722445e-01 2.59109338e-01 + 2.55476663e-01 2.51825108e-01 2.48155397e-01 2.44468296e-01 2.40764610e-01 + 2.37045183e-01 2.33310901e-01 2.29562691e-01 2.25801522e-01 2.22028404e-01 + 2.18244389e-01 2.14450570e-01 2.10648085e-01 2.06838110e-01 2.03021865e-01 + 1.99200609e-01 1.95375646e-01 1.91548315e-01 1.87719999e-01 1.83892119e-01 + 1.80066132e-01 1.76243534e-01 1.72425858e-01 1.68614668e-01 1.64811566e-01 + 1.61018182e-01 1.57236178e-01 1.53467243e-01 1.49713092e-01 1.45975466e-01 + 1.42256126e-01 1.38556852e-01 1.34879442e-01 1.31225705e-01 1.27597466e-01 + 1.23996551e-01 1.20424797e-01 1.16884039e-01 1.13376108e-01 1.09902834e-01 + 1.06466032e-01 1.03067507e-01 9.97090454e-02 9.63924113e-02 9.31193435e-02 + 8.98915508e-02 8.67107074e-02 8.35784489e-02 8.04963677e-02 7.74660087e-02 + 7.44888648e-02 7.15663729e-02 6.86999091e-02 6.58907847e-02 6.31402418e-02 + 6.04494498e-02 5.78195005e-02 5.52514054e-02 5.27460911e-02 5.03043967e-02 + 4.79270698e-02 4.56147642e-02 4.33680371e-02 4.11873461e-02 3.90730481e-02 + 3.70253965e-02 3.50445405e-02 3.31305238e-02 3.12832841e-02 2.95026522e-02 + 2.77883531e-02 2.61400057e-02 2.45571244e-02 2.30391200e-02 2.15853019e-02 + 2.01948803e-02 1.88669688e-02 1.76005877e-02 1.63946672e-02 1.52480519e-02 + 1.41595045e-02 1.31277111e-02 1.21512857e-02 1.12287758e-02 1.03586680e-02 + 9.53939392e-03 8.76933619e-03 8.04683477e-03 7.37019339e-03 6.73768606e-03 + 6.14756365e-03 5.59806047e-03 5.08740088e-03 4.61380575e-03 4.17549890e-03 + 3.77071328e-03 3.39769704e-03 3.05471932e-03 2.74007581e-03 2.45209391e-03 + 2.18913767e-03 1.94961227e-03 1.73196817e-03 1.53470479e-03 1.35637382e-03 + 1.19558204e-03 1.05099372e-03 9.21332559e-04 8.05383193e-04 7.01992213e-04 + 6.10068796e-04 5.28584903e-04 4.56575066e-04 3.93135809e-04 3.37424713e-04 + 2.88659146e-04 2.46114711e-04 2.09123417e-04 1.77071629e-04 1.49397813e-04 + 1.25590119e-04 1.05183840e-04 8.77587673e-05 7.29364877e-05 6.03776430e-05 + 4.97791872e-05 4.08716659e-05 3.34165405e-05 2.72035814e-05 2.20483479e-05 + 1.77897704e-05 1.42878490e-05 1.14214793e-05 9.08641104e-06 7.19334759e-06 + 5.66618684e-06 4.44040494e-06 3.46158128e-06 2.68406139e-06 2.06975312e-06 + 1.58705007e-06 1.20987538e-06 9.16838150e-07 6.90494318e-07 5.16703483e-07 + 3.84073119e-07 2.83481627e-07 2.07671932e-07 1.50907666e-07 1.08684371e-07 + 7.74887026e-08 5.45991257e-08 3.79221873e-08 2.58590381e-08 1.71974474e-08 + 1.10251239e-08 6.66069066e-09 3.59915934e-09 1.46921029e-09 0.00000000e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.30248929e+00 9.28626121e+00 + 9.27006144e+00 9.25388993e+00 9.23774663e+00 9.22163150e+00 9.20554447e+00 + 9.18948551e+00 9.17345456e+00 9.15745158e+00 9.14147652e+00 9.12552932e+00 + 9.10960995e+00 9.09371834e+00 9.07785446e+00 9.06201825e+00 9.04620967e+00 + 9.03042867e+00 9.01467520e+00 8.99894920e+00 8.98325065e+00 8.96757947e+00 + 8.95193564e+00 8.93631910e+00 8.92072979e+00 8.90516769e+00 8.88963273e+00 + 8.87412487e+00 8.85864407e+00 8.84319027e+00 8.82776344e+00 8.81236351e+00 + 8.79699045e+00 8.78164420e+00 8.76632473e+00 8.75103198e+00 8.73576591e+00 + 8.72052648e+00 8.70531362e+00 8.69012731e+00 8.67496749e+00 8.65983411e+00 + 8.64472713e+00 8.62964651e+00 8.61459220e+00 8.59956415e+00 8.58456231e+00 + 8.56958664e+00 8.55463710e+00 8.53971364e+00 8.52481622e+00 8.50994478e+00 + 8.49509928e+00 8.48027968e+00 8.46548594e+00 8.45071800e+00 8.43597582e+00 + 8.42125937e+00 8.40656858e+00 8.39190342e+00 8.37726385e+00 8.36264981e+00 + 8.34806127e+00 8.33349818e+00 8.31896049e+00 8.30444817e+00 8.28996116e+00 + 8.27549942e+00 8.26106291e+00 8.24665159e+00 8.23226540e+00 8.21790432e+00 + 8.20356828e+00 8.18925725e+00 8.17497119e+00 8.16071006e+00 8.14647380e+00 + 8.13226237e+00 8.11807574e+00 8.10391385e+00 8.08977667e+00 8.07566415e+00 + 8.06157626e+00 8.04751293e+00 8.03347414e+00 8.01945985e+00 8.00546999e+00 + 7.99150455e+00 7.97756347e+00 7.96364670e+00 7.94975422e+00 7.93588597e+00 + 7.92204191e+00 7.90822200e+00 7.89442621e+00 7.88065447e+00 7.86690677e+00 + 7.85318304e+00 7.83948326e+00 7.82580738e+00 7.81215535e+00 7.79852714e+00 + 7.78492270e+00 7.77134200e+00 7.75778499e+00 7.74425163e+00 7.73074187e+00 + 7.71725569e+00 7.70379303e+00 7.69035385e+00 7.67693812e+00 7.66354580e+00 + 7.65017684e+00 7.63683119e+00 7.62350883e+00 7.61020972e+00 7.59693380e+00 + 7.58368104e+00 7.57045140e+00 7.55724484e+00 7.54406131e+00 7.53090079e+00 + 7.51776322e+00 7.50464858e+00 7.49155681e+00 7.47848788e+00 7.46544175e+00 + 7.45241837e+00 7.43941772e+00 7.42643975e+00 7.41348441e+00 7.40055168e+00 + 7.38764150e+00 7.37475385e+00 7.36188868e+00 7.34904596e+00 7.33622564e+00 + 7.32342768e+00 7.31065205e+00 7.29789870e+00 7.28516761e+00 7.27245872e+00 + 7.25977200e+00 7.24710742e+00 7.23446493e+00 7.22184449e+00 7.20924607e+00 + 7.19666963e+00 7.18411512e+00 7.17158252e+00 7.15907178e+00 7.14658287e+00 + 7.13411574e+00 7.12167036e+00 7.10924669e+00 7.09684470e+00 7.08446434e+00 + 7.07210558e+00 7.05976837e+00 7.04745269e+00 7.03515850e+00 7.02288575e+00 + 7.01063441e+00 6.99840444e+00 6.98619581e+00 6.97400848e+00 6.96184240e+00 + 6.94969755e+00 6.93757389e+00 6.92547138e+00 6.91338997e+00 6.90132965e+00 + 6.88929036e+00 6.87727208e+00 6.86527476e+00 6.85329837e+00 6.84134288e+00 + 6.82940824e+00 6.81749442e+00 6.80560138e+00 6.79372909e+00 6.78187751e+00 + 6.77004661e+00 6.75823634e+00 6.74644668e+00 6.73467759e+00 6.72292902e+00 + 6.71120095e+00 6.69949335e+00 6.68780616e+00 6.67613936e+00 6.66449292e+00 + 6.65286679e+00 6.64126095e+00 6.62967535e+00 6.61810996e+00 6.60656474e+00 + 6.59503967e+00 6.58353471e+00 6.57204981e+00 6.56058495e+00 6.54914009e+00 + 6.53771519e+00 6.52631022e+00 6.51492516e+00 6.50355995e+00 6.49221457e+00 + 6.48088898e+00 6.46958314e+00 6.45829703e+00 6.44703061e+00 6.43578385e+00 + 6.42455670e+00 6.41334914e+00 6.40216113e+00 6.39099263e+00 6.37984362e+00 + 6.36871406e+00 6.35760392e+00 6.34651316e+00 6.33544174e+00 6.32438964e+00 + 6.31335682e+00 6.30234324e+00 6.29134888e+00 6.28037370e+00 6.26941766e+00 + 6.25848074e+00 6.24756290e+00 6.23666410e+00 6.22578431e+00 6.21492351e+00 + 6.20408165e+00 6.19325870e+00 6.18245464e+00 6.17166942e+00 6.16090302e+00 + 6.15015540e+00 6.13942652e+00 6.12871637e+00 6.11802490e+00 6.10735208e+00 + 6.09669787e+00 6.08606226e+00 6.07544520e+00 6.06484666e+00 6.05426660e+00 + 6.04370501e+00 6.03316184e+00 6.02263706e+00 6.01213064e+00 6.00164255e+00 + 5.99117276e+00 5.98072123e+00 5.97028794e+00 5.95987284e+00 5.94947592e+00 + 5.93909713e+00 5.92873644e+00 5.91839383e+00 5.90806927e+00 5.89776271e+00 + 5.88747414e+00 5.87720351e+00 5.86695080e+00 5.85671597e+00 5.84649900e+00 + 5.83629986e+00 5.82611850e+00 5.81595491e+00 5.80580905e+00 5.79568088e+00 + 5.78557039e+00 5.77547753e+00 5.76540228e+00 5.75534460e+00 5.74530447e+00 + 5.73528186e+00 5.72527673e+00 5.71528905e+00 5.70531880e+00 5.69536594e+00 + 5.68543044e+00 5.67551228e+00 5.66561142e+00 5.65572783e+00 5.64586148e+00 + 5.63601234e+00 5.62618038e+00 5.61636558e+00 5.60656790e+00 5.59678731e+00 + 5.58702378e+00 5.57727729e+00 5.56754779e+00 5.55783527e+00 5.54813970e+00 + 5.53846103e+00 5.52879926e+00 5.51915433e+00 5.50952623e+00 5.49991493e+00 + 5.49032040e+00 5.48074260e+00 5.47118151e+00 5.46163710e+00 5.45210934e+00 + 5.44259820e+00 5.43310365e+00 5.42362567e+00 5.41416422e+00 5.40471928e+00 + 5.39529081e+00 5.38587879e+00 5.37648319e+00 5.36710398e+00 5.35774113e+00 + 5.34839462e+00 5.33906441e+00 5.32975047e+00 5.32045279e+00 5.31117132e+00 + 5.30190605e+00 5.29265694e+00 5.28342396e+00 5.27420709e+00 5.26500630e+00 + 5.25582156e+00 5.24665284e+00 5.23750012e+00 5.22836337e+00 5.21924255e+00 + 5.21013764e+00 5.20104862e+00 5.19197545e+00 5.18291812e+00 5.17387658e+00 + 5.16485081e+00 5.15584079e+00 5.14684649e+00 5.13786788e+00 5.12890493e+00 + 5.11995762e+00 5.11102591e+00 5.10210979e+00 5.09320922e+00 5.08432418e+00 + 5.07545464e+00 5.06660057e+00 5.05776195e+00 5.04893874e+00 5.04013093e+00 + 5.03133848e+00 5.02256137e+00 5.01379957e+00 5.00505306e+00 4.99632181e+00 + 4.98760578e+00 4.97890496e+00 4.97021933e+00 4.96154884e+00 4.95289348e+00 + 4.94425321e+00 4.93562802e+00 4.92701788e+00 4.91842276e+00 4.90984263e+00 + 4.90127747e+00 4.89272725e+00 4.88419194e+00 4.87567153e+00 4.86716598e+00 + 4.85867527e+00 4.85019937e+00 4.84173825e+00 4.83329190e+00 4.82486028e+00 + 4.81644337e+00 4.80804114e+00 4.79965357e+00 4.79128063e+00 4.78292230e+00 + 4.77457855e+00 4.76624936e+00 4.75793469e+00 4.74963453e+00 4.74134885e+00 + 4.73307763e+00 4.72482083e+00 4.71657844e+00 4.70835042e+00 4.70013676e+00 + 4.69193743e+00 4.68375240e+00 4.67558165e+00 4.66742516e+00 4.65928289e+00 + 4.65115483e+00 4.64304095e+00 4.63494122e+00 4.62685562e+00 4.61878412e+00 + 4.61072671e+00 4.60268335e+00 4.59465403e+00 4.58663871e+00 4.57863737e+00 + 4.57065000e+00 4.56267655e+00 4.55471702e+00 4.54677137e+00 4.53883958e+00 + 4.53092163e+00 4.52301749e+00 4.51512714e+00 4.50725056e+00 4.49938771e+00 + 4.49153859e+00 4.48370315e+00 4.47588139e+00 4.46807327e+00 4.46027877e+00 + 4.45249786e+00 4.44473053e+00 4.43697676e+00 4.42923650e+00 4.42150975e+00 + 4.41379648e+00 4.40609667e+00 4.39841029e+00 4.39073731e+00 4.38307772e+00 + 4.37543150e+00 4.36779861e+00 4.36017904e+00 4.35257276e+00 4.34497975e+00 + 4.33739998e+00 4.32983344e+00 4.32228010e+00 4.31473993e+00 4.30721292e+00 + 4.29969904e+00 4.29219827e+00 4.28471058e+00 4.27723595e+00 4.26977437e+00 + 4.26232580e+00 4.25489022e+00 4.24746762e+00 4.24005796e+00 4.23266123e+00 + 4.22527741e+00 4.21790646e+00 4.21054837e+00 4.20320312e+00 4.19587069e+00 + 4.18855104e+00 4.18124416e+00 4.17395003e+00 4.16666863e+00 4.15939992e+00 + 4.15214390e+00 4.14490054e+00 4.13766981e+00 4.13045169e+00 4.12324617e+00 + 4.11605322e+00 4.10887281e+00 4.10170493e+00 4.09454956e+00 4.08740667e+00 + 4.08027623e+00 4.07315824e+00 4.06605267e+00 4.05895949e+00 4.05187868e+00 + 4.04481023e+00 4.03775410e+00 4.03071029e+00 4.02367877e+00 4.01665951e+00 + 4.00965249e+00 4.00265770e+00 3.99567511e+00 3.98870471e+00 3.98174646e+00 + 3.97480035e+00 3.96786636e+00 3.96094447e+00 3.95403465e+00 3.94713688e+00 + 3.94025115e+00 3.93337743e+00 3.92651570e+00 3.91966594e+00 3.91282813e+00 + 3.90600225e+00 3.89918827e+00 3.89238619e+00 3.88559597e+00 3.87881759e+00 + 3.87205104e+00 3.86529629e+00 3.85855333e+00 3.85182213e+00 3.84510267e+00 + 3.83839494e+00 3.83169891e+00 3.82501455e+00 3.81834186e+00 3.81168081e+00 + 3.80503138e+00 3.79839355e+00 3.79176730e+00 3.78515260e+00 3.77854945e+00 + 3.77195782e+00 3.76537768e+00 3.75880903e+00 3.75225183e+00 3.74570607e+00 + 3.73917173e+00 3.73264879e+00 3.72613723e+00 3.71963703e+00 3.71314817e+00 + 3.70667063e+00 3.70020438e+00 3.69374942e+00 3.68730572e+00 3.68087326e+00 + 3.67445202e+00 3.66804198e+00 3.66164313e+00 3.65525544e+00 3.64887889e+00 + 3.64251346e+00 3.63615914e+00 3.62981591e+00 3.62348374e+00 3.61716261e+00 + 3.61085252e+00 3.60455343e+00 3.59826533e+00 3.59198820e+00 3.58572202e+00 + 3.57946677e+00 3.57322243e+00 3.56698899e+00 3.56076642e+00 3.55455471e+00 + 3.54835383e+00 3.54216377e+00 3.53598451e+00 3.52981602e+00 3.52365830e+00 + 3.51751132e+00 3.51137507e+00 3.50524952e+00 3.49913465e+00 3.49303045e+00 + 3.48693690e+00 3.48085398e+00 3.47478168e+00 3.46871996e+00 3.46266882e+00 + 3.45662824e+00 3.45059819e+00 3.44457866e+00 3.43856964e+00 3.43257109e+00 + 3.42658302e+00 3.42060538e+00 3.41463818e+00 3.40868138e+00 3.40273498e+00 + 3.39679895e+00 3.39087327e+00 3.38495794e+00 3.37905292e+00 3.37315820e+00 + 3.36727377e+00 3.36139960e+00 3.35553568e+00 3.34968199e+00 3.34383851e+00 + 3.33800522e+00 3.33218211e+00 3.32636916e+00 3.32056635e+00 3.31477366e+00 + 3.30899108e+00 3.30321858e+00 3.29745616e+00 3.29170379e+00 3.28596145e+00 + 3.28022913e+00 3.27450681e+00 3.26879447e+00 3.26309210e+00 3.25739967e+00 + 3.25171718e+00 3.24604460e+00 3.24038191e+00 3.23472911e+00 3.22908616e+00 + 3.22345306e+00 3.21782978e+00 3.21221632e+00 3.20661265e+00 3.20101875e+00 + 3.19543461e+00 3.18986021e+00 3.18429554e+00 3.17874058e+00 3.17319530e+00 + 3.16765970e+00 3.16213376e+00 3.15661745e+00 3.15111077e+00 3.14561370e+00 + 3.14012621e+00 3.13464830e+00 3.12917994e+00 3.12372113e+00 3.11827183e+00 + 3.11283204e+00 3.10740175e+00 3.10198092e+00 3.09656955e+00 3.09116763e+00 + 3.08577512e+00 3.08039202e+00 3.07501832e+00 3.06965398e+00 3.06429901e+00 + 3.05895338e+00 3.05361707e+00 3.04829007e+00 3.04297237e+00 3.03766394e+00 + 3.03236477e+00 3.02707485e+00 3.02179415e+00 3.01652267e+00 3.01126038e+00 + 3.00600727e+00 3.00076333e+00 2.99552853e+00 2.99030287e+00 2.98508632e+00 + 2.97987888e+00 2.97468051e+00 2.96949122e+00 2.96431098e+00 2.95913977e+00 + 2.95397759e+00 2.94882441e+00 2.94368022e+00 2.93854501e+00 2.93341875e+00 + 2.92830144e+00 2.92319305e+00 2.91809358e+00 2.91300300e+00 2.90792130e+00 + 2.90284847e+00 2.89778448e+00 2.89272933e+00 2.88768300e+00 2.88264547e+00 + 2.87761673e+00 2.87259676e+00 2.86758555e+00 2.86258309e+00 2.85758934e+00 + 2.85260431e+00 2.84762798e+00 2.84266033e+00 2.83770134e+00 2.83275101e+00 + 2.82780931e+00 2.82287623e+00 2.81795175e+00 2.81303587e+00 2.80812856e+00 + 2.80322982e+00 2.79833962e+00 2.79345795e+00 2.78858479e+00 2.78372014e+00 + 2.77886397e+00 2.77401628e+00 2.76917704e+00 2.76434625e+00 2.75952388e+00 + 2.75470992e+00 2.74990436e+00 2.74510719e+00 2.74031838e+00 2.73553793e+00 + 2.73076582e+00 2.72600203e+00 2.72124655e+00 2.71649937e+00 2.71176047e+00 + 2.70702984e+00 2.70230745e+00 2.69759331e+00 2.69288739e+00 2.68818968e+00 + 2.68350017e+00 2.67881883e+00 2.67414567e+00 2.66948065e+00 2.66482378e+00 + 2.66017502e+00 2.65553438e+00 2.65090183e+00 2.64627737e+00 2.64166097e+00 + 2.63705262e+00 2.63245232e+00 2.62786003e+00 2.62327576e+00 2.61869949e+00 + 2.61413120e+00 2.60957088e+00 2.60501852e+00 2.60047409e+00 2.59593760e+00 + 2.59140902e+00 2.58688833e+00 2.58237554e+00 2.57787061e+00 2.57337355e+00 + 2.56888433e+00 2.56440294e+00 2.55992937e+00 2.55546361e+00 2.55100563e+00 + 2.54655543e+00 2.54211300e+00 2.53767831e+00 2.53325136e+00 2.52883214e+00 + 2.52442062e+00 2.52001680e+00 2.51562066e+00 2.51123219e+00 2.50685138e+00 + 2.50247820e+00 2.49811266e+00 2.49375473e+00 2.48940441e+00 2.48506167e+00 + 2.48072651e+00 2.47639892e+00 2.47207887e+00 2.46776636e+00 2.46346137e+00 + 2.45916389e+00 2.45487391e+00 2.45059141e+00 2.44631638e+00 2.44204881e+00 + 2.43778869e+00 2.43353599e+00 2.42929072e+00 2.42505285e+00 2.42082238e+00 + 2.41659928e+00 2.41238355e+00 2.40817518e+00 2.40397415e+00 2.39978044e+00 + 2.39559405e+00 2.39141497e+00 2.38724317e+00 2.38307866e+00 2.37892141e+00 + 2.37477141e+00 2.37062865e+00 2.36649311e+00 2.36236479e+00 2.35824368e+00 + 2.35412975e+00 2.35002300e+00 2.34592341e+00 2.34183098e+00 2.33774568e+00 + 2.33366751e+00 2.32959646e+00 2.32553250e+00 2.32147564e+00 2.31742585e+00 + 2.31338313e+00 2.30934746e+00 2.30531883e+00 2.30129723e+00 2.29728265e+00 + 2.29327507e+00 2.28927447e+00 2.28528086e+00 2.28129422e+00 2.27731453e+00 + 2.27334178e+00 2.26937596e+00 2.26541706e+00 2.26146507e+00 2.25751997e+00 + 2.25358176e+00 2.24965041e+00 2.24572592e+00 2.24180828e+00 2.23789747e+00 + 2.23399349e+00 2.23009631e+00 2.22620593e+00 2.22232235e+00 2.21844553e+00 + 2.21457548e+00 2.21071218e+00 2.20685562e+00 2.20300578e+00 2.19916267e+00 + 2.19532625e+00 2.19149653e+00 2.18767349e+00 2.18385712e+00 2.18004741e+00 + 2.17624434e+00 2.17244791e+00 2.16865810e+00 2.16487490e+00 2.16109831e+00 + 2.15732830e+00 2.15356486e+00 2.14980799e+00 2.14605768e+00 2.14231391e+00 + 2.13857667e+00 2.13484594e+00 2.13112173e+00 2.12740401e+00 2.12369278e+00 + 2.11998803e+00 2.11628973e+00 2.11259789e+00 2.10891249e+00 2.10523352e+00 + 2.10156096e+00 2.09789481e+00 2.09423506e+00 2.09058169e+00 2.08693470e+00 + 2.08329406e+00 2.07965978e+00 2.07603184e+00 2.07241023e+00 2.06879493e+00 + 2.06518594e+00 2.06158325e+00 2.05798684e+00 2.05439671e+00 2.05081284e+00 + 2.04723522e+00 2.04366384e+00 2.04009869e+00 2.03653976e+00 2.03298704e+00 + 2.02944052e+00 2.02590019e+00 2.02236603e+00 2.01883803e+00 2.01531619e+00 + 2.01180050e+00 2.00829094e+00 2.00478749e+00 2.00129017e+00 1.99779894e+00 + 1.99431380e+00 1.99083474e+00 1.98736176e+00 1.98389483e+00 1.98043394e+00 + 1.97697910e+00 1.97353028e+00 1.97008748e+00 1.96665069e+00 1.96321989e+00 + 1.95979507e+00 1.95637623e+00 1.95296335e+00 1.94955643e+00 1.94615545e+00 + 1.94276041e+00 1.93937128e+00 1.93598807e+00 1.93261076e+00 1.92923934e+00 + 1.92587381e+00 1.92251414e+00 1.91916034e+00 1.91581238e+00 1.91247027e+00 + 1.90913398e+00 1.90580352e+00 1.90247887e+00 1.89916001e+00 1.89584695e+00 + 1.89253966e+00 1.88923815e+00 1.88594239e+00 1.88265239e+00 1.87936812e+00 + 1.87608958e+00 1.87281676e+00 1.86954965e+00 1.86628824e+00 1.86303252e+00 + 1.85978248e+00 1.85653811e+00 1.85329940e+00 1.85006634e+00 1.84683892e+00 + 1.84361712e+00 1.84040095e+00 1.83719039e+00 1.83398543e+00 1.83078606e+00 + 1.82759227e+00 1.82440406e+00 1.82122140e+00 1.81804430e+00 1.81487274e+00 + 1.81170671e+00 1.80854620e+00 1.80539121e+00 1.80224172e+00 1.79909773e+00 + 1.79595922e+00 1.79282619e+00 1.78969862e+00 1.78657650e+00 1.78345984e+00 + 1.78034861e+00 1.77724280e+00 1.77414242e+00 1.77104744e+00 1.76795786e+00 + 1.76487368e+00 1.76179487e+00 1.75872143e+00 1.75565336e+00 1.75259063e+00 + 1.74953325e+00 1.74648120e+00 1.74343448e+00 1.74039307e+00 1.73735697e+00 + 1.73432616e+00 1.73130064e+00 1.72828040e+00 1.72526543e+00 1.72225571e+00 + 1.71925125e+00 1.71625203e+00 1.71325804e+00 1.71026927e+00 1.70728571e+00 + 1.70430736e+00 1.70133421e+00 1.69836624e+00 1.69540345e+00 1.69244583e+00 + 1.68949336e+00 1.68654605e+00 1.68360388e+00 1.68066684e+00 1.67773492e+00 + 1.67480812e+00 1.67188642e+00 1.66896982e+00 1.66605831e+00 1.66315188e+00 + 1.66025051e+00 1.65735421e+00 1.65446296e+00 1.65157675e+00 1.64869558e+00 + 1.64581943e+00 1.64294830e+00 1.64008218e+00 1.63722106e+00 1.63436493e+00 + 1.63151378e+00 1.62866760e+00 1.62582639e+00 1.62299013e+00 1.62015883e+00 + 1.61733246e+00 1.61451102e+00 1.61169450e+00 1.60888289e+00 1.60607619e+00 + 1.60327439e+00 1.60047747e+00 1.59768543e+00 1.59489826e+00 1.59211595e+00 + 1.58933850e+00 1.58656589e+00 1.58379812e+00 1.58103517e+00 1.57827704e+00 + 1.57552373e+00 1.57277521e+00 1.57003149e+00 1.56729256e+00 1.56455840e+00 + 1.56182902e+00 1.55910439e+00 1.55638451e+00 1.55366938e+00 1.55095899e+00 + 1.54825332e+00 1.54555237e+00 1.54285614e+00 1.54016460e+00 1.53747776e+00 + 1.53479561e+00 1.53211813e+00 1.52944532e+00 1.52677718e+00 1.52411369e+00 + 1.52145484e+00 1.51880063e+00 1.51615105e+00 1.51350609e+00 1.51086575e+00 + 1.50823001e+00 1.50559886e+00 1.50297231e+00 1.50035033e+00 1.49773293e+00 + 1.49512009e+00 1.49251181e+00 1.48990808e+00 1.48730889e+00 1.48471423e+00 + 1.48212410e+00 1.47953849e+00 1.47695738e+00 1.47438077e+00 1.47180866e+00 + 1.46924103e+00 1.46667789e+00 1.46411921e+00 1.46156499e+00 1.45901522e+00 + 1.45646991e+00 1.45392903e+00 1.45139258e+00 1.44886055e+00 1.44633294e+00 + 1.44380974e+00 1.44129094e+00 1.43877653e+00 1.43626650e+00 1.43376085e+00 + 1.43125957e+00 1.42876265e+00 1.42627008e+00 1.42378186e+00 1.42129798e+00 + 1.41881843e+00 1.41634320e+00 1.41387229e+00 1.41140568e+00 1.40894338e+00 + 1.40648536e+00 1.40403164e+00 1.40158219e+00 1.39913701e+00 1.39669609e+00 + 1.39425943e+00 1.39182702e+00 1.38939885e+00 1.38697491e+00 1.38455519e+00 + 1.38213970e+00 1.37972841e+00 1.37732133e+00 1.37491844e+00 1.37251974e+00 + 1.37012522e+00 1.36773488e+00 1.36534870e+00 1.36296668e+00 1.36058881e+00 + 1.35821509e+00 1.35584550e+00 1.35348004e+00 1.35111870e+00 1.34876148e+00 + 1.34640837e+00 1.34405936e+00 1.34171444e+00 1.33937361e+00 1.33703685e+00 + 1.33470417e+00 1.33237555e+00 1.33005099e+00 1.32773048e+00 1.32541401e+00 + 1.32310158e+00 1.32079318e+00 1.31848880e+00 1.31618843e+00 1.31389207e+00 + 1.31159971e+00 1.30931134e+00 1.30702696e+00 1.30474655e+00 1.30247012e+00 + 1.30019766e+00 1.29792915e+00 1.29566459e+00 1.29340397e+00 1.29114730e+00 + 1.28889455e+00 1.28664572e+00 1.28440081e+00 1.28215981e+00 1.27992271e+00 + 1.27768951e+00 1.27546019e+00 1.27323475e+00 1.27101319e+00 1.26879549e+00 + 1.26658166e+00 1.26437168e+00 1.26216554e+00 1.25996324e+00 1.25776478e+00 + 1.25557014e+00 1.25337932e+00 1.25119231e+00 1.24900911e+00 1.24682971e+00 + 1.24465410e+00 1.24248227e+00 1.24031422e+00 1.23814994e+00 1.23598942e+00 + 1.23383267e+00 1.23167966e+00 1.22953040e+00 1.22738487e+00 1.22524308e+00 + 1.22310501e+00 1.22097065e+00 1.21884001e+00 1.21671307e+00 1.21458982e+00 + 1.21247027e+00 1.21035440e+00 1.20824220e+00 1.20613368e+00 1.20402882e+00 + 1.20192762e+00 1.19983006e+00 1.19773615e+00 1.19564588e+00 1.19355924e+00 + 1.19147622e+00 1.18939681e+00 1.18732102e+00 1.18524883e+00 1.18318024e+00 + 1.18111524e+00 1.17905382e+00 1.17699598e+00 1.17494171e+00 1.17289100e+00 + 1.17084385e+00 1.16880025e+00 1.16676020e+00 1.16472368e+00 1.16269069e+00 + 1.16066123e+00 1.15863529e+00 1.15661286e+00 1.15459393e+00 1.15257850e+00 + 1.15056656e+00 1.14855811e+00 1.14655314e+00 1.14455164e+00 1.14255360e+00 + 1.14055902e+00 1.13856790e+00 1.13658022e+00 1.13459599e+00 1.13261518e+00 + 1.13063780e+00 1.12866385e+00 1.12669330e+00 1.12472616e+00 1.12276243e+00 + 1.12080209e+00 1.11884513e+00 1.11689156e+00 1.11494136e+00 1.11299453e+00 + 1.11105106e+00 1.10911094e+00 1.10717418e+00 1.10524076e+00 1.10331067e+00 + 1.10138391e+00 1.09946048e+00 1.09754036e+00 1.09562355e+00 1.09371004e+00 + 1.09179983e+00 1.08989291e+00 1.08798928e+00 1.08608892e+00 1.08419183e+00 + 1.08229801e+00 1.08040745e+00 1.07852014e+00 1.07663607e+00 1.07475524e+00 + 1.07287764e+00 1.07100327e+00 1.06913211e+00 1.06726417e+00 1.06539944e+00 + 1.06353790e+00 1.06167956e+00 1.05982440e+00 1.05797242e+00 1.05612362e+00 + 1.05427798e+00 1.05243550e+00 1.05059618e+00 1.04876000e+00 1.04692697e+00 + 1.04509706e+00 1.04327029e+00 1.04144663e+00 1.03962609e+00 1.03780866e+00 + 1.03599433e+00 1.03418309e+00 1.03237494e+00 1.03056987e+00 1.02876787e+00 + 1.02696894e+00 1.02517308e+00 1.02338026e+00 1.02159050e+00 1.01980377e+00 + 1.01802009e+00 1.01623942e+00 1.01446178e+00 1.01268715e+00 1.01091553e+00 + 1.00914691e+00 1.00738129e+00 1.00561865e+00 1.00385899e+00 1.00210230e+00 + 1.00034859e+00 9.98597826e-01 9.96850019e-01 9.95105158e-01 9.93363237e-01 + 9.91624247e-01 9.89888182e-01 9.88155036e-01 9.86424801e-01 9.84697470e-01 + 9.82973037e-01 9.81251494e-01 9.79532833e-01 9.77817050e-01 9.76104135e-01 + 9.74394082e-01 9.72686884e-01 9.70982534e-01 9.69281024e-01 9.67582348e-01 + 9.65886497e-01 9.64193466e-01 9.62503247e-01 9.60815831e-01 9.59131213e-01 + 9.57449385e-01 9.55770339e-01 9.54094068e-01 9.52420565e-01 9.50749822e-01 + 9.49081831e-01 9.47416586e-01 9.45754078e-01 9.44094301e-01 9.42437246e-01 + 9.40782906e-01 9.39131273e-01 9.37482340e-01 9.35836098e-01 9.34192541e-01 + 9.32551660e-01 9.30913448e-01 9.29277896e-01 9.27644997e-01 9.26014743e-01 + 9.24387126e-01 9.22762138e-01 9.21139771e-01 9.19520016e-01 9.17902866e-01 + 9.16288312e-01 9.14676347e-01 9.13066962e-01 9.11460149e-01 9.09855898e-01 + 9.08254203e-01 9.06655055e-01 9.05058445e-01 9.03464364e-01 9.01872805e-01 + 9.00283757e-01 8.98697214e-01 8.97113166e-01 8.95531604e-01 8.93952519e-01 + 8.92375903e-01 8.90801747e-01 8.89230041e-01 8.87660777e-01 8.86093946e-01 + 8.84529538e-01 8.82967544e-01 8.81407955e-01 8.79850762e-01 8.78295955e-01 + 8.76743525e-01 8.75193462e-01 8.73645756e-01 8.72100399e-01 8.70557380e-01 + 8.69016689e-01 8.67478317e-01 8.65942254e-01 8.64408489e-01 8.62877013e-01 + 8.61347816e-01 8.59820887e-01 8.58296216e-01 8.56773792e-01 8.55253606e-01 + 8.53735646e-01 8.52219903e-01 8.50706365e-01 8.49195021e-01 8.47685862e-01 + 8.46178875e-01 8.44674050e-01 8.43171375e-01 8.41670840e-01 8.40172434e-01 + 8.38676144e-01 8.37181959e-01 8.35689868e-01 8.34199860e-01 8.32711921e-01 + 8.31226041e-01 8.29742208e-01 8.28260409e-01 8.26780632e-01 8.25302865e-01 + 8.23827096e-01 8.22353311e-01 8.20881500e-01 8.19411648e-01 8.17943742e-01 + 8.16477771e-01 8.15013721e-01 8.13551579e-01 8.12091331e-01 8.10632964e-01 + 8.09176465e-01 8.07721819e-01 8.06269013e-01 8.04818034e-01 8.03368867e-01 + 8.01921497e-01 8.00475911e-01 7.99032095e-01 7.97590032e-01 7.96149710e-01 + 7.94711113e-01 7.93274225e-01 7.91839032e-01 7.90405519e-01 7.88973670e-01 + 7.87543469e-01 7.86114901e-01 7.84687949e-01 7.83262598e-01 7.81838832e-01 + 7.80416634e-01 7.78995987e-01 7.77576875e-01 7.76159281e-01 7.74743187e-01 + 7.73328577e-01 7.71915434e-01 7.70503739e-01 7.69093474e-01 7.67684623e-01 + 7.66277166e-01 7.64871086e-01 7.63466364e-01 7.62062981e-01 7.60660918e-01 + 7.59260157e-01 7.57860677e-01 7.56462460e-01 7.55065486e-01 7.53669734e-01 + 7.52275185e-01 7.50881819e-01 7.49489615e-01 7.48098551e-01 7.46708608e-01 + 7.45319764e-01 7.43931997e-01 7.42545287e-01 7.41159610e-01 7.39774945e-01 + 7.38391270e-01 7.37008562e-01 7.35626797e-01 7.34245954e-01 7.32866009e-01 + 7.31486938e-01 7.30108717e-01 7.28731322e-01 7.27354729e-01 7.25978913e-01 + 7.24603850e-01 7.23229514e-01 7.21855879e-01 7.20482921e-01 7.19110613e-01 + 7.17738929e-01 7.16367842e-01 7.14997325e-01 7.13627352e-01 7.12257895e-01 + 7.10888926e-01 7.09520417e-01 7.08152340e-01 7.06784667e-01 7.05417367e-01 + 7.04050413e-01 7.02683774e-01 7.01317421e-01 6.99951322e-01 6.98585449e-01 + 6.97219770e-01 6.95854253e-01 6.94488867e-01 6.93123580e-01 6.91758361e-01 + 6.90393175e-01 6.89027991e-01 6.87662775e-01 6.86297494e-01 6.84932112e-01 + 6.83566597e-01 6.82200913e-01 6.80835024e-01 6.79468897e-01 6.78102493e-01 + 6.76735778e-01 6.75368715e-01 6.74001266e-01 6.72633394e-01 6.71265061e-01 + 6.69896229e-01 6.68526859e-01 6.67156913e-01 6.65786349e-01 6.64415130e-01 + 6.63043213e-01 6.61670559e-01 6.60297127e-01 6.58922874e-01 6.57547758e-01 + 6.56171737e-01 6.54794769e-01 6.53416809e-01 6.52037814e-01 6.50657740e-01 + 6.49276541e-01 6.47894172e-01 6.46510589e-01 6.45125744e-01 6.43739591e-01 + 6.42352084e-01 6.40963173e-01 6.39572812e-01 6.38180952e-01 6.36787543e-01 + 6.35392537e-01 6.33995883e-01 6.32597530e-01 6.31197429e-01 6.29795527e-01 + 6.28391772e-01 6.26986112e-01 6.25578493e-01 6.24168864e-01 6.22757168e-01 + 6.21343352e-01 6.19927361e-01 6.18509139e-01 6.17088630e-01 6.15665778e-01 + 6.14240525e-01 6.12812814e-01 6.11382586e-01 6.09949783e-01 6.08514346e-01 + 6.07076214e-01 6.05635329e-01 6.04191627e-01 6.02745049e-01 6.01295533e-01 + 5.99843016e-01 5.98387434e-01 5.96928726e-01 5.95466826e-01 5.94001669e-01 + 5.92533192e-01 5.91061329e-01 5.89586012e-01 5.88107176e-01 5.86624753e-01 + 5.85138676e-01 5.83648877e-01 5.82155286e-01 5.80657834e-01 5.79156452e-01 + 5.77651069e-01 5.76141614e-01 5.74628017e-01 5.73110204e-01 5.71588105e-01 + 5.70061645e-01 5.68530753e-01 5.66995353e-01 5.65455372e-01 5.63910735e-01 + 5.62361367e-01 5.60807191e-01 5.59248133e-01 5.57684115e-01 5.56115060e-01 + 5.54540891e-01 5.52961531e-01 5.51376899e-01 5.49786919e-01 5.48191511e-01 + 5.46590595e-01 5.44984092e-01 5.43371922e-01 5.41754003e-01 5.40130255e-01 + 5.38500598e-01 5.36864948e-01 5.35223225e-01 5.33575346e-01 5.31921229e-01 + 5.30260792e-01 5.28593951e-01 5.26920623e-01 5.25240726e-01 5.23554175e-01 + 5.21860887e-01 5.20160779e-01 5.18453766e-01 5.16739764e-01 5.15018690e-01 + 5.13290458e-01 5.11554986e-01 5.09812188e-01 5.08061981e-01 5.06304281e-01 + 5.04539002e-01 5.02766062e-01 5.00985377e-01 4.99196862e-01 4.97400434e-01 + 4.95596010e-01 4.93783507e-01 4.91962842e-01 4.90133933e-01 4.88296696e-01 + 4.86451051e-01 4.84596916e-01 4.82734210e-01 4.80862853e-01 4.78982764e-01 + 4.77093865e-01 4.75196076e-01 4.73289320e-01 4.71373519e-01 4.69448596e-01 + 4.67514476e-01 4.65571083e-01 4.63618344e-01 4.61656185e-01 4.59684533e-01 + 4.57703319e-01 4.55712470e-01 4.53711920e-01 4.51701599e-01 4.49681441e-01 + 4.47651381e-01 4.45611356e-01 4.43561302e-01 4.41501158e-01 4.39430866e-01 + 4.37350368e-01 4.35259607e-01 4.33158529e-01 4.31047082e-01 4.28925214e-01 + 4.26792878e-01 4.24650026e-01 4.22496614e-01 4.20332600e-01 4.18157943e-01 + 4.15972606e-01 4.13776552e-01 4.11569750e-01 4.09352169e-01 4.07123781e-01 + 4.04884561e-01 4.02634487e-01 4.00373539e-01 3.98101701e-01 3.95818960e-01 + 3.93525306e-01 3.91220732e-01 3.88905233e-01 3.86578811e-01 3.84241469e-01 + 3.81893212e-01 3.79534053e-01 3.77164006e-01 3.74783088e-01 3.72391322e-01 + 3.69988735e-01 3.67575357e-01 3.65151223e-01 3.62716372e-01 3.60270847e-01 + 3.57814698e-01 3.55347977e-01 3.52870741e-01 3.50383054e-01 3.47884982e-01 + 3.45376598e-01 3.42857980e-01 3.40329210e-01 3.37790377e-01 3.35241576e-01 + 3.32682904e-01 3.30114466e-01 3.27536375e-01 3.24948745e-01 3.22351700e-01 + 3.19745367e-01 3.17129881e-01 3.14505384e-01 3.11872021e-01 3.09229947e-01 + 3.06579321e-01 3.03920309e-01 3.01253084e-01 2.98577826e-01 2.95894721e-01 + 2.93203963e-01 2.90505751e-01 2.87800293e-01 2.85087802e-01 2.82368500e-01 + 2.79642616e-01 2.76910384e-01 2.74172047e-01 2.71427856e-01 2.68678067e-01 + 2.65922946e-01 2.63162764e-01 2.60397802e-01 2.57628345e-01 2.54854688e-01 + 2.52077134e-01 2.49295990e-01 2.46511575e-01 2.43724211e-01 2.40934231e-01 + 2.38141974e-01 2.35347785e-01 2.32552018e-01 2.29755035e-01 2.26957202e-01 + 2.24158896e-01 2.21360498e-01 2.18562398e-01 2.15764992e-01 2.12968683e-01 + 2.10173881e-01 2.07381001e-01 2.04590467e-01 2.01802708e-01 1.99018159e-01 + 1.96237262e-01 1.93460463e-01 1.90688215e-01 1.87920978e-01 1.85159214e-01 + 1.82403393e-01 1.79653988e-01 1.76911478e-01 1.74176346e-01 1.71449078e-01 + 1.68730166e-01 1.66020105e-01 1.63319392e-01 1.60628529e-01 1.57948020e-01 + 1.55278370e-01 1.52620090e-01 1.49973688e-01 1.47339678e-01 1.44718571e-01 + 1.42110882e-01 1.39517125e-01 1.36937815e-01 1.34373464e-01 1.31824585e-01 + 1.29291692e-01 1.26775293e-01 1.24275896e-01 1.21794008e-01 1.19330131e-01 + 1.16884763e-01 1.14458401e-01 1.12051535e-01 1.09664652e-01 1.07298233e-01 + 1.04952752e-01 1.02628679e-01 1.00326477e-01 9.80465996e-02 9.57894954e-02 + 9.35556034e-02 9.13453541e-02 8.91591692e-02 8.69974604e-02 8.48606296e-02 + 8.27490678e-02 8.06631552e-02 7.86032603e-02 7.65697396e-02 7.45629372e-02 + 7.25831842e-02 7.06307984e-02 6.87060837e-02 6.68093301e-02 6.49408125e-02 + 6.31007911e-02 6.12895107e-02 5.95072002e-02 5.77540725e-02 5.60303240e-02 + 5.43361344e-02 5.26716661e-02 5.10370645e-02 4.94324572e-02 4.78579541e-02 + 4.63136469e-02 4.47996091e-02 4.33158961e-02 4.18625443e-02 4.04395719e-02 + 3.90469781e-02 3.76847434e-02 3.63528295e-02 3.50511794e-02 3.37797170e-02 + 3.25383477e-02 3.13269583e-02 3.01454169e-02 2.89935733e-02 2.78712591e-02 + 2.67782878e-02 2.57144551e-02 2.46795395e-02 2.36733018e-02 2.26954864e-02 + 2.17458207e-02 2.08240164e-02 1.99297691e-02 1.90627592e-02 1.82226524e-02 + 1.74090997e-02 1.66217387e-02 1.58601934e-02 1.51240750e-02 1.44129830e-02 + 1.37265047e-02 1.30642170e-02 1.24256863e-02 1.18104693e-02 1.12181139e-02 + 1.06481597e-02 1.01001386e-02 9.57357566e-03 9.06798994e-03 8.58289491e-03 + 8.11779939e-03 7.67220821e-03 7.24562293e-03 6.83754260e-03 6.44746449e-03 + 6.07488475e-03 5.71929920e-03 5.38020397e-03 5.05709623e-03 4.74947488e-03 + 4.45684120e-03 4.17869948e-03 3.91455770e-03 3.66392815e-03 3.42632795e-03 + 3.20127973e-03 2.98831211e-03 2.78696025e-03 2.59676634e-03 2.41728009e-03 + 2.24805918e-03 2.08866967e-03 1.93868637e-03 1.79769324e-03 1.66528371e-03 + 1.54106094e-03 1.42463814e-03 1.31563879e-03 1.21369684e-03 1.11845687e-03 + 1.02957427e-03 9.46715341e-04 8.69557372e-04 7.97788699e-04 7.31108735e-04 + 6.69227965e-04 6.11867923e-04 5.58761133e-04 5.09651031e-04 4.64291866e-04 + 4.22448569e-04 3.83896609e-04 3.48421824e-04 3.15820237e-04 2.85897853e-04 + 2.58470437e-04 2.33363282e-04 2.10410963e-04 1.89457075e-04 1.70353970e-04 + 1.52962472e-04 1.37151601e-04 1.22798276e-04 1.09787020e-04 9.80096661e-05 + 8.73650533e-05 7.77587264e-05 6.91026357e-05 6.13148375e-05 5.43191980e-05 + 4.80451002e-05 4.24271553e-05 3.74049201e-05 3.29226193e-05 2.89288760e-05 + 2.53764482e-05 2.22219741e-05 1.94257256e-05 1.69513701e-05 1.47657424e-05 + 1.28386246e-05 1.11425370e-05 9.65253704e-06 8.34602949e-06 7.20258529e-06 + 6.20377051e-06 5.33298481e-06 4.57530930e-06 3.91736368e-06 3.34717241e-06 + 2.85403968e-06 2.42843291e-06 2.06187442e-06 1.74684104e-06 1.47667131e-06 + 1.24547984e-06 1.04807854e-06 8.79904460e-07 7.36953603e-07 6.15720668e-07 + 5.13144134e-07 4.26556442e-07 3.53638890e-07 2.92380919e-07 2.41043461e-07 + 1.98126025e-07 1.62337233e-07 1.32568519e-07 1.07870701e-07 8.74331951e-08 + 7.05656042e-08 5.66814737e-08 4.52839905e-08 3.59534344e-08 2.83361988e-08 + 2.21352123e-08 1.71016087e-08 1.30275039e-08 9.73975193e-09 7.09456503e-09 + 4.97289096e-09 3.27645509e-09 1.92438159e-09 8.50318607e-10 0.00000000e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 7.26720922e+00 + 7.26720922e+00 7.26720922e+00 7.26547462e+00 7.25551627e+00 7.24557157e+00 + 7.23564051e+00 7.22572305e+00 7.21581919e+00 7.20592890e+00 7.19605217e+00 + 7.18618898e+00 7.17633930e+00 7.16650313e+00 7.15668044e+00 7.14687121e+00 + 7.13707542e+00 7.12729307e+00 7.11752412e+00 7.10776856e+00 7.09802637e+00 + 7.08829753e+00 7.07858203e+00 7.06887985e+00 7.05919096e+00 7.04951536e+00 + 7.03985301e+00 7.03020391e+00 7.02056804e+00 7.01094537e+00 7.00133589e+00 + 6.99173958e+00 6.98215643e+00 6.97258641e+00 6.96302950e+00 6.95348570e+00 + 6.94395498e+00 6.93443732e+00 6.92493271e+00 6.91544112e+00 6.90596254e+00 + 6.89649696e+00 6.88704435e+00 6.87760469e+00 6.86817797e+00 6.85876418e+00 + 6.84936328e+00 6.83997528e+00 6.83060014e+00 6.82123785e+00 6.81188839e+00 + 6.80255174e+00 6.79322790e+00 6.78391683e+00 6.77461853e+00 6.76533297e+00 + 6.75606013e+00 6.74680001e+00 6.73755258e+00 6.72831782e+00 6.71909573e+00 + 6.70988627e+00 6.70068943e+00 6.69150520e+00 6.68233356e+00 6.67317449e+00 + 6.66402797e+00 6.65489399e+00 6.64577253e+00 6.63666357e+00 6.62756710e+00 + 6.61848310e+00 6.60941154e+00 6.60035242e+00 6.59130572e+00 6.58227141e+00 + 6.57324949e+00 6.56423994e+00 6.55524273e+00 6.54625785e+00 6.53728530e+00 + 6.52832503e+00 6.51937705e+00 6.51044134e+00 6.50151787e+00 6.49260663e+00 + 6.48370761e+00 6.47482078e+00 6.46594614e+00 6.45708366e+00 6.44823332e+00 + 6.43939512e+00 6.43056903e+00 6.42175504e+00 6.41295313e+00 6.40416328e+00 + 6.39538548e+00 6.38661971e+00 6.37786596e+00 6.36912420e+00 6.36039443e+00 + 6.35167662e+00 6.34297076e+00 6.33427684e+00 6.32559483e+00 6.31692472e+00 + 6.30826649e+00 6.29962013e+00 6.29098562e+00 6.28236295e+00 6.27375209e+00 + 6.26515304e+00 6.25656577e+00 6.24799028e+00 6.23942654e+00 6.23087453e+00 + 6.22233425e+00 6.21380567e+00 6.20528878e+00 6.19678357e+00 6.18829001e+00 + 6.17980810e+00 6.17133781e+00 6.16287913e+00 6.15443204e+00 6.14599654e+00 + 6.13757259e+00 6.12916019e+00 6.12075932e+00 6.11236997e+00 6.10399211e+00 + 6.09562574e+00 6.08727083e+00 6.07892738e+00 6.07059536e+00 6.06227476e+00 + 6.05396557e+00 6.04566776e+00 6.03738133e+00 6.02910626e+00 6.02084253e+00 + 6.01259012e+00 6.00434903e+00 5.99611923e+00 5.98790071e+00 5.97969346e+00 + 5.97149746e+00 5.96331269e+00 5.95513913e+00 5.94697679e+00 5.93882562e+00 + 5.93068563e+00 5.92255680e+00 5.91443911e+00 5.90633255e+00 5.89823710e+00 + 5.89015274e+00 5.88207946e+00 5.87401725e+00 5.86596609e+00 5.85792597e+00 + 5.84989686e+00 5.84187876e+00 5.83387165e+00 5.82587552e+00 5.81789034e+00 + 5.80991611e+00 5.80195281e+00 5.79400043e+00 5.78605894e+00 5.77812834e+00 + 5.77020861e+00 5.76229973e+00 5.75440170e+00 5.74651449e+00 5.73863809e+00 + 5.73077248e+00 5.72291766e+00 5.71507360e+00 5.70724030e+00 5.69941773e+00 + 5.69160588e+00 5.68380474e+00 5.67601429e+00 5.66823452e+00 5.66046542e+00 + 5.65270696e+00 5.64495913e+00 5.63722193e+00 5.62949533e+00 5.62177932e+00 + 5.61407389e+00 5.60637902e+00 5.59869469e+00 5.59102090e+00 5.58335763e+00 + 5.57570486e+00 5.56806258e+00 5.56043077e+00 5.55280942e+00 5.54519852e+00 + 5.53759805e+00 5.53000800e+00 5.52242836e+00 5.51485910e+00 5.50730021e+00 + 5.49975169e+00 5.49221351e+00 5.48468567e+00 5.47716814e+00 5.46966092e+00 + 5.46216398e+00 5.45467733e+00 5.44720093e+00 5.43973478e+00 5.43227887e+00 + 5.42483317e+00 5.41739768e+00 5.40997238e+00 5.40255726e+00 5.39515230e+00 + 5.38775749e+00 5.38037282e+00 5.37299827e+00 5.36563382e+00 5.35827947e+00 + 5.35093520e+00 5.34360100e+00 5.33627685e+00 5.32896274e+00 5.32165865e+00 + 5.31436457e+00 5.30708050e+00 5.29980640e+00 5.29254228e+00 5.28528811e+00 + 5.27804389e+00 5.27080959e+00 5.26358521e+00 5.25637073e+00 5.24916614e+00 + 5.24197143e+00 5.23478657e+00 5.22761157e+00 5.22044640e+00 5.21329105e+00 + 5.20614551e+00 5.19900976e+00 5.19188379e+00 5.18476759e+00 5.17766114e+00 + 5.17056443e+00 5.16347745e+00 5.15640019e+00 5.14933262e+00 5.14227474e+00 + 5.13522654e+00 5.12818799e+00 5.12115910e+00 5.11413983e+00 5.10713019e+00 + 5.10013016e+00 5.09313972e+00 5.08615886e+00 5.07918757e+00 5.07222583e+00 + 5.06527364e+00 5.05833097e+00 5.05139783e+00 5.04447418e+00 5.03756002e+00 + 5.03065535e+00 5.02376013e+00 5.01687437e+00 5.00999804e+00 5.00313114e+00 + 4.99627365e+00 4.98942556e+00 4.98258686e+00 4.97575753e+00 4.96893756e+00 + 4.96212693e+00 4.95532565e+00 4.94853368e+00 4.94175103e+00 4.93497767e+00 + 4.92821359e+00 4.92145879e+00 4.91471324e+00 4.90797694e+00 4.90124987e+00 + 4.89453203e+00 4.88782339e+00 4.88112394e+00 4.87443368e+00 4.86775259e+00 + 4.86108066e+00 4.85441787e+00 4.84776421e+00 4.84111967e+00 4.83448424e+00 + 4.82785791e+00 4.82124066e+00 4.81463247e+00 4.80803335e+00 4.80144327e+00 + 4.79486222e+00 4.78829019e+00 4.78172717e+00 4.77517315e+00 4.76862811e+00 + 4.76209204e+00 4.75556492e+00 4.74904676e+00 4.74253753e+00 4.73603722e+00 + 4.72954582e+00 4.72306332e+00 4.71658970e+00 4.71012495e+00 4.70366907e+00 + 4.69722204e+00 4.69078384e+00 4.68435446e+00 4.67793390e+00 4.67152214e+00 + 4.66511917e+00 4.65872497e+00 4.65233954e+00 4.64596286e+00 4.63959492e+00 + 4.63323571e+00 4.62688521e+00 4.62054342e+00 4.61421032e+00 4.60788590e+00 + 4.60157015e+00 4.59526306e+00 4.58896461e+00 4.58267479e+00 4.57639360e+00 + 4.57012101e+00 4.56385702e+00 4.55760162e+00 4.55135479e+00 4.54511652e+00 + 4.53888681e+00 4.53266563e+00 4.52645298e+00 4.52024884e+00 4.51405321e+00 + 4.50786607e+00 4.50168741e+00 4.49551722e+00 4.48935549e+00 4.48320220e+00 + 4.47705735e+00 4.47092091e+00 4.46479289e+00 4.45867327e+00 4.45256204e+00 + 4.44645918e+00 4.44036469e+00 4.43427855e+00 4.42820075e+00 4.42213128e+00 + 4.41607014e+00 4.41001730e+00 4.40397275e+00 4.39793649e+00 4.39190851e+00 + 4.38588878e+00 4.37987731e+00 4.37387408e+00 4.36787907e+00 4.36189229e+00 + 4.35591370e+00 4.34994332e+00 4.34398111e+00 4.33802708e+00 4.33208121e+00 + 4.32614349e+00 4.32021390e+00 4.31429245e+00 4.30837911e+00 4.30247387e+00 + 4.29657673e+00 4.29068768e+00 4.28480669e+00 4.27893376e+00 4.27306889e+00 + 4.26721205e+00 4.26136324e+00 4.25552245e+00 4.24968966e+00 4.24386487e+00 + 4.23804806e+00 4.23223922e+00 4.22643835e+00 4.22064543e+00 4.21486044e+00 + 4.20908339e+00 4.20331425e+00 4.19755302e+00 4.19179969e+00 4.18605425e+00 + 4.18031667e+00 4.17458697e+00 4.16886511e+00 4.16315110e+00 4.15744492e+00 + 4.15174656e+00 4.14605602e+00 4.14037327e+00 4.13469831e+00 4.12903113e+00 + 4.12337171e+00 4.11772006e+00 4.11207615e+00 4.10643997e+00 4.10081153e+00 + 4.09519079e+00 4.08957776e+00 4.08397242e+00 4.07837477e+00 4.07278479e+00 + 4.06720247e+00 4.06162780e+00 4.05606077e+00 4.05050137e+00 4.04494960e+00 + 4.03940543e+00 4.03386886e+00 4.02833988e+00 4.02281848e+00 4.01730465e+00 + 4.01179837e+00 4.00629964e+00 4.00080845e+00 3.99532478e+00 3.98984863e+00 + 3.98437999e+00 3.97891884e+00 3.97346517e+00 3.96801899e+00 3.96258026e+00 + 3.95714899e+00 3.95172517e+00 3.94630878e+00 3.94089981e+00 3.93549826e+00 + 3.93010411e+00 3.92471735e+00 3.91933798e+00 3.91396598e+00 3.90860134e+00 + 3.90324406e+00 3.89789412e+00 3.89255151e+00 3.88721623e+00 3.88188825e+00 + 3.87656759e+00 3.87125421e+00 3.86594811e+00 3.86064929e+00 3.85535773e+00 + 3.85007343e+00 3.84479637e+00 3.83952654e+00 3.83426393e+00 3.82900854e+00 + 3.82376035e+00 3.81851935e+00 3.81328554e+00 3.80805890e+00 3.80283942e+00 + 3.79762710e+00 3.79242192e+00 3.78722388e+00 3.78203296e+00 3.77684915e+00 + 3.77167245e+00 3.76650285e+00 3.76134033e+00 3.75618489e+00 3.75103652e+00 + 3.74589520e+00 3.74076093e+00 3.73563369e+00 3.73051348e+00 3.72540029e+00 + 3.72029411e+00 3.71519493e+00 3.71010274e+00 3.70501753e+00 3.69993928e+00 + 3.69486800e+00 3.68980367e+00 3.68474628e+00 3.67969582e+00 3.67465228e+00 + 3.66961566e+00 3.66458594e+00 3.65956311e+00 3.65454717e+00 3.64953810e+00 + 3.64453590e+00 3.63954056e+00 3.63455206e+00 3.62957040e+00 3.62459556e+00 + 3.61962755e+00 3.61466635e+00 3.60971194e+00 3.60476433e+00 3.59982349e+00 + 3.59488943e+00 3.58996214e+00 3.58504159e+00 3.58012779e+00 3.57522073e+00 + 3.57032039e+00 3.56542677e+00 3.56053985e+00 3.55565964e+00 3.55078611e+00 + 3.54591926e+00 3.54105908e+00 3.53620557e+00 3.53135871e+00 3.52651849e+00 + 3.52168490e+00 3.51685794e+00 3.51203759e+00 3.50722386e+00 3.50241672e+00 + 3.49761617e+00 3.49282220e+00 3.48803480e+00 3.48325396e+00 3.47847967e+00 + 3.47371193e+00 3.46895072e+00 3.46419604e+00 3.45944788e+00 3.45470622e+00 + 3.44997107e+00 3.44524240e+00 3.44052021e+00 3.43580450e+00 3.43109525e+00 + 3.42639246e+00 3.42169611e+00 3.41700620e+00 3.41232271e+00 3.40764565e+00 + 3.40297499e+00 3.39831074e+00 3.39365288e+00 3.38900141e+00 3.38435631e+00 + 3.37971758e+00 3.37508520e+00 3.37045918e+00 3.36583949e+00 3.36122614e+00 + 3.35661911e+00 3.35201840e+00 3.34742399e+00 3.34283587e+00 3.33825405e+00 + 3.33367851e+00 3.32910924e+00 3.32454623e+00 3.31998947e+00 3.31543897e+00 + 3.31089469e+00 3.30635665e+00 3.30182483e+00 3.29729922e+00 3.29277981e+00 + 3.28826659e+00 3.28375956e+00 3.27925871e+00 3.27476403e+00 3.27027551e+00 + 3.26579314e+00 3.26131692e+00 3.25684683e+00 3.25238286e+00 3.24792502e+00 + 3.24347329e+00 3.23902765e+00 3.23458811e+00 3.23015466e+00 3.22572728e+00 + 3.22130597e+00 3.21689072e+00 3.21248153e+00 3.20807837e+00 3.20368125e+00 + 3.19929016e+00 3.19490509e+00 3.19052602e+00 3.18615296e+00 3.18178590e+00 + 3.17742481e+00 3.17306971e+00 3.16872058e+00 3.16437740e+00 3.16004018e+00 + 3.15570891e+00 3.15138357e+00 3.14706416e+00 3.14275066e+00 3.13844309e+00 + 3.13414141e+00 3.12984563e+00 3.12555574e+00 3.12127173e+00 3.11699360e+00 + 3.11272132e+00 3.10845490e+00 3.10419433e+00 3.09993960e+00 3.09569070e+00 + 3.09144762e+00 3.08721036e+00 3.08297891e+00 3.07875326e+00 3.07453340e+00 + 3.07031932e+00 3.06611102e+00 3.06190849e+00 3.05771171e+00 3.05352069e+00 + 3.04933542e+00 3.04515588e+00 3.04098207e+00 3.03681398e+00 3.03265160e+00 + 3.02849493e+00 3.02434395e+00 3.02019867e+00 3.01605906e+00 3.01192513e+00 + 3.00779687e+00 3.00367426e+00 2.99955731e+00 2.99544600e+00 2.99134032e+00 + 2.98724027e+00 2.98314584e+00 2.97905702e+00 2.97497381e+00 2.97089619e+00 + 2.96682417e+00 2.96275772e+00 2.95869685e+00 2.95464154e+00 2.95059179e+00 + 2.94654759e+00 2.94250894e+00 2.93847582e+00 2.93444823e+00 2.93042616e+00 + 2.92640960e+00 2.92239855e+00 2.91839299e+00 2.91439293e+00 2.91039835e+00 + 2.90640924e+00 2.90242560e+00 2.89844742e+00 2.89447469e+00 2.89050741e+00 + 2.88654557e+00 2.88258916e+00 2.87863817e+00 2.87469259e+00 2.87075242e+00 + 2.86681766e+00 2.86288828e+00 2.85896429e+00 2.85504569e+00 2.85113245e+00 + 2.84722457e+00 2.84332205e+00 2.83942488e+00 2.83553306e+00 2.83164656e+00 + 2.82776540e+00 2.82388955e+00 2.82001901e+00 2.81615378e+00 2.81229385e+00 + 2.80843921e+00 2.80458985e+00 2.80074577e+00 2.79690696e+00 2.79307341e+00 + 2.78924511e+00 2.78542206e+00 2.78160425e+00 2.77779168e+00 2.77398432e+00 + 2.77018219e+00 2.76638527e+00 2.76259355e+00 2.75880703e+00 2.75502570e+00 + 2.75124956e+00 2.74747859e+00 2.74371278e+00 2.73995214e+00 2.73619666e+00 + 2.73244632e+00 2.72870112e+00 2.72496105e+00 2.72122611e+00 2.71749629e+00 + 2.71377158e+00 2.71005198e+00 2.70633748e+00 2.70262806e+00 2.69892374e+00 + 2.69522448e+00 2.69153030e+00 2.68784118e+00 2.68415712e+00 2.68047811e+00 + 2.67680414e+00 2.67313521e+00 2.66947130e+00 2.66581242e+00 2.66215855e+00 + 2.65850969e+00 2.65486584e+00 2.65122697e+00 2.64759309e+00 2.64396420e+00 + 2.64034028e+00 2.63672132e+00 2.63310733e+00 2.62949829e+00 2.62589419e+00 + 2.62229504e+00 2.61870082e+00 2.61511152e+00 2.61152715e+00 2.60794768e+00 + 2.60437313e+00 2.60080347e+00 2.59723871e+00 2.59367883e+00 2.59012383e+00 + 2.58657371e+00 2.58302845e+00 2.57948804e+00 2.57595250e+00 2.57242179e+00 + 2.56889593e+00 2.56537490e+00 2.56185870e+00 2.55834731e+00 2.55484074e+00 + 2.55133897e+00 2.54784201e+00 2.54434983e+00 2.54086245e+00 2.53737984e+00 + 2.53390201e+00 2.53042894e+00 2.52696064e+00 2.52349708e+00 2.52003828e+00 + 2.51658422e+00 2.51313489e+00 2.50969028e+00 2.50625040e+00 2.50281524e+00 + 2.49938478e+00 2.49595902e+00 2.49253796e+00 2.48912159e+00 2.48570990e+00 + 2.48230289e+00 2.47890055e+00 2.47550287e+00 2.47210985e+00 2.46872148e+00 + 2.46533775e+00 2.46195866e+00 2.45858420e+00 2.45521437e+00 2.45184916e+00 + 2.44848856e+00 2.44513256e+00 2.44178116e+00 2.43843436e+00 2.43509215e+00 + 2.43175451e+00 2.42842146e+00 2.42509297e+00 2.42176904e+00 2.41844967e+00 + 2.41513484e+00 2.41182456e+00 2.40851882e+00 2.40521761e+00 2.40192092e+00 + 2.39862876e+00 2.39534110e+00 2.39205795e+00 2.38877930e+00 2.38550515e+00 + 2.38223548e+00 2.37897029e+00 2.37570958e+00 2.37245334e+00 2.36920156e+00 + 2.36595424e+00 2.36271137e+00 2.35947295e+00 2.35623896e+00 2.35300940e+00 + 2.34978428e+00 2.34656357e+00 2.34334728e+00 2.34013539e+00 2.33692791e+00 + 2.33372482e+00 2.33052613e+00 2.32733182e+00 2.32414188e+00 2.32095632e+00 + 2.31777513e+00 2.31459830e+00 2.31142582e+00 2.30825768e+00 2.30509389e+00 + 2.30193444e+00 2.29877932e+00 2.29562852e+00 2.29248204e+00 2.28933988e+00 + 2.28620202e+00 2.28306846e+00 2.27993919e+00 2.27681422e+00 2.27369353e+00 + 2.27057711e+00 2.26746497e+00 2.26435709e+00 2.26125348e+00 2.25815411e+00 + 2.25505900e+00 2.25196812e+00 2.24888149e+00 2.24579908e+00 2.24272090e+00 + 2.23964694e+00 2.23657719e+00 2.23351165e+00 2.23045031e+00 2.22739317e+00 + 2.22434021e+00 2.22129145e+00 2.21824686e+00 2.21520644e+00 2.21217019e+00 + 2.20913810e+00 2.20611017e+00 2.20308639e+00 2.20006675e+00 2.19705125e+00 + 2.19403989e+00 2.19103265e+00 2.18802953e+00 2.18503053e+00 2.18203564e+00 + 2.17904486e+00 2.17605817e+00 2.17307558e+00 2.17009708e+00 2.16712266e+00 + 2.16415232e+00 2.16118604e+00 2.15822384e+00 2.15526569e+00 2.15231160e+00 + 2.14936155e+00 2.14641555e+00 2.14347359e+00 2.14053566e+00 2.13760176e+00 + 2.13467188e+00 2.13174601e+00 2.12882416e+00 2.12590631e+00 2.12299245e+00 + 2.12008260e+00 2.11717673e+00 2.11427484e+00 2.11137693e+00 2.10848300e+00 + 2.10559303e+00 2.10270702e+00 2.09982496e+00 2.09694686e+00 2.09407270e+00 + 2.09120248e+00 2.08833620e+00 2.08547384e+00 2.08261541e+00 2.07976090e+00 + 2.07691029e+00 2.07406360e+00 2.07122080e+00 2.06838191e+00 2.06554690e+00 + 2.06271578e+00 2.05988854e+00 2.05706518e+00 2.05424568e+00 2.05143005e+00 + 2.04861828e+00 2.04581036e+00 2.04300629e+00 2.04020607e+00 2.03740968e+00 + 2.03461713e+00 2.03182840e+00 2.02904350e+00 2.02626241e+00 2.02348513e+00 + 2.02071167e+00 2.01794200e+00 2.01517613e+00 2.01241405e+00 2.00965575e+00 + 2.00690124e+00 2.00415050e+00 2.00140353e+00 1.99866033e+00 1.99592089e+00 + 1.99318520e+00 1.99045326e+00 1.98772507e+00 1.98500061e+00 1.98227989e+00 + 1.97956290e+00 1.97684963e+00 1.97414009e+00 1.97143425e+00 1.96873213e+00 + 1.96603370e+00 1.96333898e+00 1.96064795e+00 1.95796061e+00 1.95527695e+00 + 1.95259697e+00 1.94992066e+00 1.94724803e+00 1.94457905e+00 1.94191373e+00 + 1.93925207e+00 1.93659405e+00 1.93393968e+00 1.93128895e+00 1.92864185e+00 + 1.92599837e+00 1.92335853e+00 1.92072229e+00 1.91808968e+00 1.91546067e+00 + 1.91283526e+00 1.91021345e+00 1.90759524e+00 1.90498061e+00 1.90236957e+00 + 1.89976211e+00 1.89715822e+00 1.89455790e+00 1.89196114e+00 1.88936795e+00 + 1.88677830e+00 1.88419221e+00 1.88160966e+00 1.87903066e+00 1.87645518e+00 + 1.87388324e+00 1.87131482e+00 1.86874992e+00 1.86618854e+00 1.86363067e+00 + 1.86107630e+00 1.85852544e+00 1.85597807e+00 1.85343419e+00 1.85089380e+00 + 1.84835689e+00 1.84582346e+00 1.84329350e+00 1.84076701e+00 1.83824398e+00 + 1.83572441e+00 1.83320830e+00 1.83069563e+00 1.82818641e+00 1.82568062e+00 + 1.82317827e+00 1.82067935e+00 1.81818386e+00 1.81569178e+00 1.81320312e+00 + 1.81071788e+00 1.80823603e+00 1.80575759e+00 1.80328255e+00 1.80081090e+00 + 1.79834264e+00 1.79587776e+00 1.79341626e+00 1.79095813e+00 1.78850337e+00 + 1.78605198e+00 1.78360395e+00 1.78115927e+00 1.77871794e+00 1.77627996e+00 + 1.77384532e+00 1.77141402e+00 1.76898605e+00 1.76656141e+00 1.76414009e+00 + 1.76172209e+00 1.75930740e+00 1.75689602e+00 1.75448795e+00 1.75208318e+00 + 1.74968171e+00 1.74728353e+00 1.74488863e+00 1.74249702e+00 1.74010868e+00 + 1.73772362e+00 1.73534183e+00 1.73296330e+00 1.73058803e+00 1.72821602e+00 + 1.72584726e+00 1.72348174e+00 1.72111947e+00 1.71876044e+00 1.71640463e+00 + 1.71405206e+00 1.71170272e+00 1.70935659e+00 1.70701368e+00 1.70467398e+00 + 1.70233748e+00 1.70000419e+00 1.69767410e+00 1.69534720e+00 1.69302349e+00 + 1.69070296e+00 1.68838562e+00 1.68607145e+00 1.68376046e+00 1.68145263e+00 + 1.67914796e+00 1.67684646e+00 1.67454810e+00 1.67225290e+00 1.66996085e+00 + 1.66767193e+00 1.66538615e+00 1.66310351e+00 1.66082399e+00 1.65854760e+00 + 1.65627433e+00 1.65400418e+00 1.65173713e+00 1.64947320e+00 1.64721236e+00 + 1.64495463e+00 1.64269999e+00 1.64044844e+00 1.63819998e+00 1.63595460e+00 + 1.63371229e+00 1.63147306e+00 1.62923690e+00 1.62700380e+00 1.62477377e+00 + 1.62254679e+00 1.62032286e+00 1.61810198e+00 1.61588415e+00 1.61366935e+00 + 1.61145759e+00 1.60924887e+00 1.60704317e+00 1.60484049e+00 1.60264083e+00 + 1.60044419e+00 1.59825056e+00 1.59605993e+00 1.59387231e+00 1.59168769e+00 + 1.58950606e+00 1.58732742e+00 1.58515176e+00 1.58297909e+00 1.58080940e+00 + 1.57864268e+00 1.57647893e+00 1.57431814e+00 1.57216032e+00 1.57000545e+00 + 1.56785354e+00 1.56570458e+00 1.56355856e+00 1.56141549e+00 1.55927535e+00 + 1.55713815e+00 1.55500387e+00 1.55287252e+00 1.55074409e+00 1.54861858e+00 + 1.54649598e+00 1.54437630e+00 1.54225951e+00 1.54014563e+00 1.53803465e+00 + 1.53592656e+00 1.53382135e+00 1.53171904e+00 1.52961960e+00 1.52752305e+00 + 1.52542936e+00 1.52333855e+00 1.52125060e+00 1.51916551e+00 1.51708329e+00 + 1.51500391e+00 1.51292739e+00 1.51085371e+00 1.50878287e+00 1.50671488e+00 + 1.50464971e+00 1.50258738e+00 1.50052788e+00 1.49847119e+00 1.49641733e+00 + 1.49436628e+00 1.49231804e+00 1.49027261e+00 1.48822999e+00 1.48619016e+00 + 1.48415313e+00 1.48211889e+00 1.48008744e+00 1.47805877e+00 1.47603289e+00 + 1.47400978e+00 1.47198944e+00 1.46997187e+00 1.46795707e+00 1.46594503e+00 + 1.46393575e+00 1.46192922e+00 1.45992544e+00 1.45792441e+00 1.45592612e+00 + 1.45393057e+00 1.45193776e+00 1.44994768e+00 1.44796032e+00 1.44597569e+00 + 1.44399378e+00 1.44201458e+00 1.44003810e+00 1.43806433e+00 1.43609326e+00 + 1.43412489e+00 1.43215923e+00 1.43019625e+00 1.42823597e+00 1.42627837e+00 + 1.42432346e+00 1.42237122e+00 1.42042167e+00 1.41847478e+00 1.41653056e+00 + 1.41458901e+00 1.41265012e+00 1.41071388e+00 1.40878030e+00 1.40684937e+00 + 1.40492109e+00 1.40299545e+00 1.40107245e+00 1.39915208e+00 1.39723435e+00 + 1.39531925e+00 1.39340677e+00 1.39149691e+00 1.38958967e+00 1.38768504e+00 + 1.38578302e+00 1.38388362e+00 1.38198681e+00 1.38009260e+00 1.37820099e+00 + 1.37631198e+00 1.37442555e+00 1.37254171e+00 1.37066045e+00 1.36878177e+00 + 1.36690566e+00 1.36503213e+00 1.36316116e+00 1.36129276e+00 1.35942691e+00 + 1.35756363e+00 1.35570290e+00 1.35384472e+00 1.35198909e+00 1.35013600e+00 + 1.34828545e+00 1.34643743e+00 1.34459195e+00 1.34274900e+00 1.34090858e+00 + 1.33907068e+00 1.33723529e+00 1.33540242e+00 1.33357207e+00 1.33174422e+00 + 1.32991888e+00 1.32809604e+00 1.32627570e+00 1.32445786e+00 1.32264250e+00 + 1.32082964e+00 1.31901925e+00 1.31721135e+00 1.31540593e+00 1.31360298e+00 + 1.31180251e+00 1.31000450e+00 1.30820896e+00 1.30641587e+00 1.30462525e+00 + 1.30283708e+00 1.30105136e+00 1.29926808e+00 1.29748726e+00 1.29570887e+00 + 1.29393292e+00 1.29215940e+00 1.29038832e+00 1.28861966e+00 1.28685343e+00 + 1.28508962e+00 1.28332822e+00 1.28156924e+00 1.27981267e+00 1.27805851e+00 + 1.27630675e+00 1.27455740e+00 1.27281044e+00 1.27106587e+00 1.26932370e+00 + 1.26758392e+00 1.26584651e+00 1.26411150e+00 1.26237885e+00 1.26064859e+00 + 1.25892069e+00 1.25719517e+00 1.25547201e+00 1.25375121e+00 1.25203276e+00 + 1.25031668e+00 1.24860295e+00 1.24689156e+00 1.24518252e+00 1.24347583e+00 + 1.24177147e+00 1.24006945e+00 1.23836976e+00 1.23667240e+00 1.23497737e+00 + 1.23328466e+00 1.23159427e+00 1.22990620e+00 1.22822044e+00 1.22653699e+00 + 1.22485585e+00 1.22317702e+00 1.22150048e+00 1.21982625e+00 1.21815430e+00 + 1.21648465e+00 1.21481729e+00 1.21315222e+00 1.21148942e+00 1.20982891e+00 + 1.20817067e+00 1.20651470e+00 1.20486100e+00 1.20320957e+00 1.20156041e+00 + 1.19991350e+00 1.19826885e+00 1.19662646e+00 1.19498631e+00 1.19334842e+00 + 1.19171277e+00 1.19007936e+00 1.18844819e+00 1.18681926e+00 1.18519255e+00 + 1.18356808e+00 1.18194584e+00 1.18032582e+00 1.17870801e+00 1.17709243e+00 + 1.17547906e+00 1.17386790e+00 1.17225895e+00 1.17065221e+00 1.16904767e+00 + 1.16744532e+00 1.16584518e+00 1.16424722e+00 1.16265146e+00 1.16105788e+00 + 1.15946649e+00 1.15787728e+00 1.15629025e+00 1.15470539e+00 1.15312271e+00 + 1.15154219e+00 1.14996384e+00 1.14838766e+00 1.14681363e+00 1.14524176e+00 + 1.14367205e+00 1.14210449e+00 1.14053907e+00 1.13897581e+00 1.13741468e+00 + 1.13585569e+00 1.13429885e+00 1.13274413e+00 1.13119155e+00 1.12964109e+00 + 1.12809276e+00 1.12654655e+00 1.12500246e+00 1.12346049e+00 1.12192063e+00 + 1.12038288e+00 1.11884724e+00 1.11731370e+00 1.11578227e+00 1.11425294e+00 + 1.11272570e+00 1.11120055e+00 1.10967749e+00 1.10815653e+00 1.10663764e+00 + 1.10512084e+00 1.10360612e+00 1.10209347e+00 1.10058290e+00 1.09907440e+00 + 1.09756796e+00 1.09606359e+00 1.09456129e+00 1.09306104e+00 1.09156284e+00 + 1.09006670e+00 1.08857262e+00 1.08708058e+00 1.08559058e+00 1.08410263e+00 + 1.08261671e+00 1.08113284e+00 1.07965099e+00 1.07817118e+00 1.07669340e+00 + 1.07521764e+00 1.07374390e+00 1.07227218e+00 1.07080249e+00 1.06933480e+00 + 1.06786913e+00 1.06640547e+00 1.06494381e+00 1.06348415e+00 1.06202650e+00 + 1.06057084e+00 1.05911718e+00 1.05766552e+00 1.05621584e+00 1.05476815e+00 + 1.05332244e+00 1.05187871e+00 1.05043697e+00 1.04899720e+00 1.04755940e+00 + 1.04612357e+00 1.04468971e+00 1.04325782e+00 1.04182789e+00 1.04039992e+00 + 1.03897391e+00 1.03754985e+00 1.03612774e+00 1.03470758e+00 1.03328937e+00 + 1.03187310e+00 1.03045878e+00 1.02904639e+00 1.02763594e+00 1.02622742e+00 + 1.02482083e+00 1.02341617e+00 1.02201344e+00 1.02061262e+00 1.01921373e+00 + 1.01781676e+00 1.01642170e+00 1.01502855e+00 1.01363731e+00 1.01224798e+00 + 1.01086055e+00 1.00947502e+00 1.00809140e+00 1.00670967e+00 1.00532983e+00 + 1.00395188e+00 1.00257583e+00 1.00120166e+00 9.99829370e-01 9.98458963e-01 + 9.97090435e-01 9.95723783e-01 9.94359004e-01 9.92996095e-01 9.91635054e-01 + 9.90275879e-01 9.88918567e-01 9.87563115e-01 9.86209521e-01 9.84857782e-01 + 9.83507896e-01 9.82159860e-01 9.80813671e-01 9.79469328e-01 9.78126827e-01 + 9.76786166e-01 9.75447343e-01 9.74110354e-01 9.72775198e-01 9.71441872e-01 + 9.70110374e-01 9.68780700e-01 9.67452849e-01 9.66126818e-01 9.64802604e-01 + 9.63480205e-01 9.62159618e-01 9.60840841e-01 9.59523872e-01 9.58208708e-01 + 9.56895346e-01 9.55583784e-01 9.54274020e-01 9.52966051e-01 9.51659874e-01 + 9.50355488e-01 9.49052889e-01 9.47752076e-01 9.46453045e-01 9.45155794e-01 + 9.43860322e-01 9.42566624e-01 9.41274700e-01 9.39984546e-01 9.38696161e-01 + 9.37409540e-01 9.36124684e-01 9.34841588e-01 9.33560250e-01 9.32280668e-01 + 9.31002840e-01 9.29726763e-01 9.28452435e-01 9.27179852e-01 9.25909014e-01 + 9.24639917e-01 9.23372560e-01 9.22106939e-01 9.20843052e-01 9.19580897e-01 + 9.18320471e-01 9.17061773e-01 9.15804799e-01 9.14549547e-01 9.13296016e-01 + 9.12044202e-01 9.10794103e-01 9.09545716e-01 9.08299041e-01 9.07054073e-01 + 9.05810811e-01 9.04569252e-01 9.03329394e-01 9.02091234e-01 9.00854771e-01 + 8.99620001e-01 8.98386923e-01 8.97155534e-01 8.95925831e-01 8.94697813e-01 + 8.93471477e-01 8.92246821e-01 8.91023842e-01 8.89802537e-01 8.88582905e-01 + 8.87364944e-01 8.86148650e-01 8.84934022e-01 8.83721057e-01 8.82509753e-01 + 8.81300107e-01 8.80092117e-01 8.78885781e-01 8.77681097e-01 8.76478061e-01 + 8.75276672e-01 8.74076928e-01 8.72878825e-01 8.71682362e-01 8.70487536e-01 + 8.69294345e-01 8.68102787e-01 8.66912859e-01 8.65724558e-01 8.64537884e-01 + 8.63352832e-01 8.62169400e-01 8.60987588e-01 8.59807391e-01 8.58628807e-01 + 8.57451835e-01 8.56276472e-01 8.55102714e-01 8.53930561e-01 8.52760010e-01 + 8.51591058e-01 8.50423702e-01 8.49257941e-01 8.48093771e-01 8.46931191e-01 + 8.45770199e-01 8.44610790e-01 8.43452964e-01 8.42296717e-01 8.41142048e-01 + 8.39988953e-01 8.38837431e-01 8.37687478e-01 8.36539092e-01 8.35392271e-01 + 8.34247012e-01 8.33103313e-01 8.31961170e-01 8.30820582e-01 8.29681546e-01 + 8.28544059e-01 8.27408118e-01 8.26273721e-01 8.25140866e-01 8.24009549e-01 + 8.22879768e-01 8.21751519e-01 8.20624802e-01 8.19499611e-01 8.18375946e-01 + 8.17253803e-01 8.16133178e-01 8.15014070e-01 8.13896475e-01 8.12780391e-01 + 8.11665814e-01 8.10552741e-01 8.09441170e-01 8.08331097e-01 8.07222519e-01 + 8.06115433e-01 8.05009836e-01 8.03905725e-01 8.02803096e-01 8.01701946e-01 + 8.00602272e-01 7.99504070e-01 7.98407337e-01 7.97312069e-01 7.96218263e-01 + 7.95125915e-01 7.94035021e-01 7.92945578e-01 7.91857581e-01 7.90771028e-01 + 7.89685913e-01 7.88602232e-01 7.87519983e-01 7.86439160e-01 7.85359759e-01 + 7.84281776e-01 7.83205206e-01 7.82130045e-01 7.81056287e-01 7.79983929e-01 + 7.78912966e-01 7.77843391e-01 7.76775201e-01 7.75708390e-01 7.74642952e-01 + 7.73578882e-01 7.72516175e-01 7.71454824e-01 7.70394824e-01 7.69336169e-01 + 7.68278852e-01 7.67222866e-01 7.66168206e-01 7.65114865e-01 7.64062835e-01 + 7.63012109e-01 7.61962680e-01 7.60914541e-01 7.59867683e-01 7.58822098e-01 + 7.57777779e-01 7.56734717e-01 7.55692902e-01 7.54652326e-01 7.53612980e-01 + 7.52574853e-01 7.51537937e-01 7.50502220e-01 7.49467692e-01 7.48434342e-01 + 7.47402159e-01 7.46371131e-01 7.45341247e-01 7.44312493e-01 7.43284857e-01 + 7.42258326e-01 7.41232886e-01 7.40208523e-01 7.39185222e-01 7.38162968e-01 + 7.37141745e-01 7.36121538e-01 7.35102329e-01 7.34084101e-01 7.33066837e-01 + 7.32050516e-01 7.31035122e-01 7.30020632e-01 7.29007028e-01 7.27994287e-01 + 7.26982387e-01 7.25971306e-01 7.24961020e-01 7.23951505e-01 7.22942734e-01 + 7.21934682e-01 7.20927321e-01 7.19920623e-01 7.18914559e-01 7.17909098e-01 + 7.16904209e-01 7.15899860e-01 7.14896016e-01 7.13892643e-01 7.12889703e-01 + 7.11887161e-01 7.10884976e-01 7.09883108e-01 7.08881516e-01 7.07880155e-01 + 7.06878980e-01 7.05877946e-01 7.04877003e-01 7.03876101e-01 7.02875188e-01 + 7.01874211e-01 7.00873112e-01 6.99871834e-01 6.98870317e-01 6.97868499e-01 + 6.96866313e-01 6.95863694e-01 6.94860571e-01 6.93856872e-01 6.92852523e-01 + 6.91847445e-01 6.90841558e-01 6.89834779e-01 6.88827020e-01 6.87818192e-01 + 6.86808201e-01 6.85796952e-01 6.84784343e-01 6.83770270e-01 6.82754627e-01 + 6.81737300e-01 6.80718175e-01 6.79697130e-01 6.78674042e-01 6.77648780e-01 + 6.76621212e-01 6.75591198e-01 6.74558594e-01 6.73523250e-01 6.72485013e-01 + 6.71443720e-01 6.70399207e-01 6.69351300e-01 6.68299821e-01 6.67244585e-01 + 6.66185399e-01 6.65122064e-01 6.64054373e-01 6.62982114e-01 6.61905065e-01 + 6.60822995e-01 6.59735668e-01 6.58642836e-01 6.57544244e-01 6.56439627e-01 + 6.55328713e-01 6.54211215e-01 6.53086841e-01 6.51955286e-01 6.50816235e-01 + 6.49669360e-01 6.48514324e-01 6.47350776e-01 6.46178354e-01 6.44996683e-01 + 6.43805374e-01 6.42604025e-01 6.41392220e-01 6.40169528e-01 6.38935504e-01 + 6.37689687e-01 6.36431601e-01 6.35160751e-01 6.33876629e-01 6.32578706e-01 + 6.31266438e-01 6.29939261e-01 6.28596592e-01 6.27237829e-01 6.25862351e-01 + 6.24469514e-01 6.23058654e-01 6.21629085e-01 6.20180101e-01 6.18710969e-01 + 6.17220935e-01 6.15709221e-01 6.14175024e-01 6.12617513e-01 6.11035836e-01 + 6.09429111e-01 6.07796429e-01 6.06136855e-01 6.04449424e-01 6.02733144e-01 + 6.00986991e-01 5.99209913e-01 5.97400828e-01 5.95558621e-01 5.93682146e-01 + 5.91770226e-01 5.89821652e-01 5.87835180e-01 5.85809535e-01 5.83743407e-01 + 5.81635454e-01 5.79484299e-01 5.77288531e-01 5.75046705e-01 5.72757343e-01 + 5.70418930e-01 5.68029921e-01 5.65588735e-01 5.63093758e-01 5.60543345e-01 + 5.57935816e-01 5.55269463e-01 5.52542545e-01 5.49753293e-01 5.46899910e-01 + 5.43980570e-01 5.40993427e-01 5.37936605e-01 5.34808213e-01 5.31606337e-01 + 5.28329048e-01 5.24974404e-01 5.21540450e-01 5.18025227e-01 5.14426771e-01 + 5.10743118e-01 5.06972310e-01 5.03112399e-01 4.99161450e-01 4.95117550e-01 + 4.90978812e-01 4.86743382e-01 4.82409446e-01 4.77975236e-01 4.73439039e-01 + 4.68799206e-01 4.64054160e-01 4.59202405e-01 4.54242535e-01 4.49173247e-01 + 4.43993352e-01 4.38701781e-01 4.33297606e-01 4.27780043e-01 4.22148472e-01 + 4.16402449e-01 4.10541717e-01 4.04566224e-01 3.98476134e-01 3.92271848e-01 + 3.85954012e-01 3.79523540e-01 3.72981624e-01 3.66329751e-01 3.59569723e-01 + 3.52703668e-01 3.45734056e-01 3.38663718e-01 3.31495853e-01 3.24234051e-01 + 3.16882299e-01 3.09444996e-01 3.01926963e-01 2.94333453e-01 2.86670156e-01 + 2.78943210e-01 2.71159201e-01 2.63325162e-01 2.55448579e-01 2.47537380e-01 + 2.39599931e-01 2.31645027e-01 2.23681875e-01 2.15720077e-01 2.07769608e-01 + 1.99840793e-01 1.91944274e-01 1.84090973e-01 1.76292060e-01 1.68558901e-01 + 1.60903017e-01 1.53336024e-01 1.45869584e-01 1.38515337e-01 1.31284838e-01 + 1.24189492e-01 1.17240477e-01 1.10448676e-01 1.03824595e-01 9.73782939e-02 + 9.11193025e-02 8.50565488e-02 7.91982826e-02 7.35520037e-02 6.81243941e-02 + 6.29212538e-02 5.79474436e-02 5.32068346e-02 4.87022656e-02 4.44355099e-02 + 4.04072521e-02 3.66170759e-02 3.30634633e-02 2.97438060e-02 2.66544291e-02 + 2.37906280e-02 2.11467162e-02 1.87160870e-02 1.64912847e-02 1.44640875e-02 + 1.26255995e-02 1.09663495e-02 9.47639731e-03 8.14544397e-03 6.96294412e-03 + 5.91821927e-03 5.00056914e-03 4.19937944e-03 3.50422377e-03 2.90495820e-03 + 2.39180651e-03 1.95543501e-03 1.58701559e-03 1.27827650e-03 1.02154025e-03 + 8.09748707e-04 6.36475675e-04 4.95927573e-04 3.82933206e-04 2.92923820e-04 + 2.21904822e-04 1.66420727e-04 1.23514936e-04 9.06859386e-05 6.58415198e-05 + 4.72523917e-05 3.35065418e-05 2.34653835e-05 1.62225835e-05 1.10662166e-05 + 7.44467847e-06 4.93658073e-06 3.22467124e-06 2.07366607e-06 1.31176054e-06 + 8.15498138e-07 4.97621665e-07 2.97504885e-07 1.73762522e-07 9.86548547e-08 + 5.39360246e-08 2.78365328e-08 1.29159488e-08 4.56757882e-09 0.00000000e+00 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 2.00759391e+01 + 2.00440764e+01 2.00010572e+01 1.99581303e+01 1.99152956e+01 1.98725528e+01 + 1.98299017e+01 1.97873421e+01 1.97448739e+01 1.97024969e+01 1.96602108e+01 + 1.96180154e+01 1.95759107e+01 1.95338962e+01 1.94919720e+01 1.94501377e+01 + 1.94083933e+01 1.93667384e+01 1.93251729e+01 1.92836966e+01 1.92423094e+01 + 1.92010109e+01 1.91598011e+01 1.91186798e+01 1.90776467e+01 1.90367017e+01 + 1.89958445e+01 1.89550750e+01 1.89143931e+01 1.88737984e+01 1.88332909e+01 + 1.87928703e+01 1.87525365e+01 1.87122892e+01 1.86721283e+01 1.86320537e+01 + 1.85920650e+01 1.85521621e+01 1.85123449e+01 1.84726131e+01 1.84329667e+01 + 1.83934053e+01 1.83539288e+01 1.83145370e+01 1.82752298e+01 1.82360069e+01 + 1.81968683e+01 1.81578136e+01 1.81188427e+01 1.80799555e+01 1.80411518e+01 + 1.80024313e+01 1.79637939e+01 1.79252395e+01 1.78867678e+01 1.78483787e+01 + 1.78100719e+01 1.77718474e+01 1.77337049e+01 1.76956443e+01 1.76576654e+01 + 1.76197680e+01 1.75819519e+01 1.75442170e+01 1.75065630e+01 1.74689899e+01 + 1.74314974e+01 1.73940854e+01 1.73567537e+01 1.73195021e+01 1.72823305e+01 + 1.72452386e+01 1.72082263e+01 1.71712935e+01 1.71344400e+01 1.70976655e+01 + 1.70609700e+01 1.70243532e+01 1.69878150e+01 1.69513552e+01 1.69149737e+01 + 1.68786703e+01 1.68424448e+01 1.68062970e+01 1.67702268e+01 1.67342341e+01 + 1.66983185e+01 1.66624801e+01 1.66267186e+01 1.65910338e+01 1.65554256e+01 + 1.65198939e+01 1.64844384e+01 1.64490590e+01 1.64137555e+01 1.63785278e+01 + 1.63433757e+01 1.63082990e+01 1.62732977e+01 1.62383714e+01 1.62035201e+01 + 1.61687436e+01 1.61340418e+01 1.60994144e+01 1.60648614e+01 1.60303825e+01 + 1.59959776e+01 1.59616465e+01 1.59273891e+01 1.58932053e+01 1.58590948e+01 + 1.58250575e+01 1.57910933e+01 1.57572020e+01 1.57233834e+01 1.56896374e+01 + 1.56559638e+01 1.56223625e+01 1.55888333e+01 1.55553761e+01 1.55219907e+01 + 1.54886769e+01 1.54554346e+01 1.54222637e+01 1.53891640e+01 1.53561353e+01 + 1.53231775e+01 1.52902904e+01 1.52574739e+01 1.52247279e+01 1.51920521e+01 + 1.51594464e+01 1.51269108e+01 1.50944449e+01 1.50620488e+01 1.50297221e+01 + 1.49974649e+01 1.49652769e+01 1.49331579e+01 1.49011079e+01 1.48691267e+01 + 1.48372142e+01 1.48053701e+01 1.47735943e+01 1.47418868e+01 1.47102473e+01 + 1.46786757e+01 1.46471719e+01 1.46157357e+01 1.45843670e+01 1.45530656e+01 + 1.45218313e+01 1.44906641e+01 1.44595638e+01 1.44285303e+01 1.43975633e+01 + 1.43666628e+01 1.43358286e+01 1.43050607e+01 1.42743587e+01 1.42437226e+01 + 1.42131523e+01 1.41826476e+01 1.41522084e+01 1.41218345e+01 1.40915258e+01 + 1.40612821e+01 1.40311034e+01 1.40009894e+01 1.39709400e+01 1.39409552e+01 + 1.39110347e+01 1.38811784e+01 1.38513862e+01 1.38216579e+01 1.37919934e+01 + 1.37623926e+01 1.37328554e+01 1.37033815e+01 1.36739709e+01 1.36446234e+01 + 1.36153389e+01 1.35861172e+01 1.35569583e+01 1.35278619e+01 1.34988280e+01 + 1.34698564e+01 1.34409470e+01 1.34120996e+01 1.33833142e+01 1.33545905e+01 + 1.33259285e+01 1.32973280e+01 1.32687888e+01 1.32403110e+01 1.32118942e+01 + 1.31835384e+01 1.31552435e+01 1.31270093e+01 1.30988357e+01 1.30707226e+01 + 1.30426698e+01 1.30146773e+01 1.29867448e+01 1.29588722e+01 1.29310595e+01 + 1.29033065e+01 1.28756130e+01 1.28479790e+01 1.28204042e+01 1.27928887e+01 + 1.27654322e+01 1.27380346e+01 1.27106959e+01 1.26834158e+01 1.26561943e+01 + 1.26290312e+01 1.26019263e+01 1.25748797e+01 1.25478911e+01 1.25209604e+01 + 1.24940876e+01 1.24672724e+01 1.24405147e+01 1.24138145e+01 1.23871716e+01 + 1.23605859e+01 1.23340572e+01 1.23075855e+01 1.22811706e+01 1.22548124e+01 + 1.22285107e+01 1.22022655e+01 1.21760766e+01 1.21499440e+01 1.21238674e+01 + 1.20978468e+01 1.20718820e+01 1.20459730e+01 1.20201195e+01 1.19943216e+01 + 1.19685790e+01 1.19428917e+01 1.19172595e+01 1.18916823e+01 1.18661600e+01 + 1.18406925e+01 1.18152796e+01 1.17899213e+01 1.17646174e+01 1.17393678e+01 + 1.17141725e+01 1.16890311e+01 1.16639438e+01 1.16389103e+01 1.16139305e+01 + 1.15890043e+01 1.15641316e+01 1.15393124e+01 1.15145463e+01 1.14898335e+01 + 1.14651736e+01 1.14405667e+01 1.14160126e+01 1.13915112e+01 1.13670624e+01 + 1.13426661e+01 1.13183221e+01 1.12940304e+01 1.12697908e+01 1.12456032e+01 + 1.12214676e+01 1.11973837e+01 1.11733515e+01 1.11493710e+01 1.11254418e+01 + 1.11015641e+01 1.10777376e+01 1.10539622e+01 1.10302378e+01 1.10065644e+01 + 1.09829418e+01 1.09593698e+01 1.09358485e+01 1.09123777e+01 1.08889572e+01 + 1.08655870e+01 1.08422669e+01 1.08189969e+01 1.07957769e+01 1.07726066e+01 + 1.07494861e+01 1.07264153e+01 1.07033939e+01 1.06804219e+01 1.06574993e+01 + 1.06346258e+01 1.06118015e+01 1.05890261e+01 1.05662996e+01 1.05436219e+01 + 1.05209929e+01 1.04984124e+01 1.04758804e+01 1.04533967e+01 1.04309613e+01 + 1.04085741e+01 1.03862349e+01 1.03639436e+01 1.03417002e+01 1.03195045e+01 + 1.02973565e+01 1.02752560e+01 1.02532029e+01 1.02311972e+01 1.02092387e+01 + 1.01873273e+01 1.01654630e+01 1.01436455e+01 1.01218749e+01 1.01001511e+01 + 1.00784738e+01 1.00568431e+01 1.00352588e+01 1.00137208e+01 9.99222904e+00 + 9.97078341e+00 9.94938381e+00 9.92803014e+00 9.90672230e+00 9.88546019e+00 + 9.86424372e+00 9.84307278e+00 9.82194727e+00 9.80086711e+00 9.77983219e+00 + 9.75884242e+00 9.73789769e+00 9.71699792e+00 9.69614300e+00 9.67533284e+00 + 9.65456735e+00 9.63384642e+00 9.61316997e+00 9.59253789e+00 9.57195009e+00 + 9.55140648e+00 9.53090696e+00 9.51045144e+00 9.49003981e+00 9.46967200e+00 + 9.44934790e+00 9.42906742e+00 9.40883047e+00 9.38863695e+00 9.36848677e+00 + 9.34837984e+00 9.32831606e+00 9.30829535e+00 9.28831760e+00 9.26838273e+00 + 9.24849064e+00 9.22864125e+00 9.20883446e+00 9.18907018e+00 9.16934832e+00 + 9.14966878e+00 9.13003148e+00 9.11043633e+00 9.09088323e+00 9.07137210e+00 + 9.05190285e+00 9.03247538e+00 9.01308960e+00 8.99374544e+00 8.97444278e+00 + 8.95518156e+00 8.93596168e+00 8.91678304e+00 8.89764557e+00 8.87854917e+00 + 8.85949376e+00 8.84047925e+00 8.82150554e+00 8.80257256e+00 8.78368021e+00 + 8.76482840e+00 8.74601706e+00 8.72724609e+00 8.70851541e+00 8.68982493e+00 + 8.67117456e+00 8.65256422e+00 8.63399383e+00 8.61546328e+00 8.59697251e+00 + 8.57852143e+00 8.56010995e+00 8.54173798e+00 8.52340544e+00 8.50511224e+00 + 8.48685831e+00 8.46864356e+00 8.45046790e+00 8.43233125e+00 8.41423352e+00 + 8.39617463e+00 8.37815451e+00 8.36017306e+00 8.34223020e+00 8.32432585e+00 + 8.30645993e+00 8.28863235e+00 8.27084304e+00 8.25309190e+00 8.23537886e+00 + 8.21770384e+00 8.20006675e+00 8.18246752e+00 8.16490606e+00 8.14738229e+00 + 8.12989613e+00 8.11244750e+00 8.09503632e+00 8.07766250e+00 8.06032598e+00 + 8.04302666e+00 8.02576447e+00 8.00853933e+00 7.99135116e+00 7.97419988e+00 + 7.95708540e+00 7.94000767e+00 7.92296658e+00 7.90596207e+00 7.88899405e+00 + 7.87206245e+00 7.85516719e+00 7.83830819e+00 7.82148537e+00 7.80469866e+00 + 7.78794798e+00 7.77123325e+00 7.75455439e+00 7.73791133e+00 7.72130399e+00 + 7.70473229e+00 7.68819616e+00 7.67169552e+00 7.65523029e+00 7.63880040e+00 + 7.62240578e+00 7.60604634e+00 7.58972201e+00 7.57343271e+00 7.55717838e+00 + 7.54095894e+00 7.52477430e+00 7.50862440e+00 7.49250916e+00 7.47642851e+00 + 7.46038237e+00 7.44437067e+00 7.42839333e+00 7.41245029e+00 7.39654146e+00 + 7.38066678e+00 7.36482617e+00 7.34901955e+00 7.33324686e+00 7.31750803e+00 + 7.30180297e+00 7.28613161e+00 7.27049390e+00 7.25488974e+00 7.23931907e+00 + 7.22378183e+00 7.20827793e+00 7.19280730e+00 7.17736988e+00 7.16196559e+00 + 7.14659436e+00 7.13125612e+00 7.11595080e+00 7.10067833e+00 7.08543864e+00 + 7.07023165e+00 7.05505731e+00 7.03991553e+00 7.02480625e+00 7.00972939e+00 + 6.99468490e+00 6.97967269e+00 6.96469270e+00 6.94974487e+00 6.93482911e+00 + 6.91994537e+00 6.90509357e+00 6.89027365e+00 6.87548554e+00 6.86072916e+00 + 6.84600445e+00 6.83131135e+00 6.81664978e+00 6.80201968e+00 6.78742098e+00 + 6.77285361e+00 6.75831750e+00 6.74381260e+00 6.72933882e+00 6.71489611e+00 + 6.70048439e+00 6.68610361e+00 6.67175369e+00 6.65743457e+00 6.64314618e+00 + 6.62888845e+00 6.61466133e+00 6.60046474e+00 6.58629863e+00 6.57216291e+00 + 6.55805753e+00 6.54398243e+00 6.52993754e+00 6.51592279e+00 6.50193811e+00 + 6.48798346e+00 6.47405875e+00 6.46016392e+00 6.44629892e+00 6.43246368e+00 + 6.41865813e+00 6.40488221e+00 6.39113586e+00 6.37741901e+00 6.36373160e+00 + 6.35007356e+00 6.33644484e+00 6.32284537e+00 6.30927508e+00 6.29573393e+00 + 6.28222183e+00 6.26873873e+00 6.25528457e+00 6.24185929e+00 6.22846282e+00 + 6.21509511e+00 6.20175608e+00 6.18844568e+00 6.17516385e+00 6.16191053e+00 + 6.14868565e+00 6.13548915e+00 6.12232097e+00 6.10918106e+00 6.09606935e+00 + 6.08298578e+00 6.06993029e+00 6.05690282e+00 6.04390331e+00 6.03093170e+00 + 6.01798793e+00 6.00507194e+00 5.99218368e+00 5.97932307e+00 5.96649006e+00 + 5.95368460e+00 5.94090662e+00 5.92815607e+00 5.91543288e+00 5.90273699e+00 + 5.89006836e+00 5.87742692e+00 5.86481260e+00 5.85222536e+00 5.83966514e+00 + 5.82713187e+00 5.81462550e+00 5.80214598e+00 5.78969323e+00 5.77726722e+00 + 5.76486787e+00 5.75249513e+00 5.74014895e+00 5.72782927e+00 5.71553603e+00 + 5.70326917e+00 5.69102864e+00 5.67881438e+00 5.66662634e+00 5.65446445e+00 + 5.64232867e+00 5.63021893e+00 5.61813518e+00 5.60607737e+00 5.59404543e+00 + 5.58203932e+00 5.57005898e+00 5.55810435e+00 5.54617538e+00 5.53427201e+00 + 5.52239418e+00 5.51054185e+00 5.49871496e+00 5.48691345e+00 5.47513727e+00 + 5.46338636e+00 5.45166067e+00 5.43996015e+00 5.42828475e+00 5.41663440e+00 + 5.40500905e+00 5.39340865e+00 5.38183316e+00 5.37028250e+00 5.35875664e+00 + 5.34725551e+00 5.33577907e+00 5.32432726e+00 5.31290002e+00 5.30149731e+00 + 5.29011908e+00 5.27876526e+00 5.26743582e+00 5.25613069e+00 5.24484982e+00 + 5.23359316e+00 5.22236066e+00 5.21115227e+00 5.19996794e+00 5.18880761e+00 + 5.17767123e+00 5.16655876e+00 5.15547013e+00 5.14440530e+00 5.13336422e+00 + 5.12234684e+00 5.11135310e+00 5.10038296e+00 5.08943636e+00 5.07851326e+00 + 5.06761360e+00 5.05673733e+00 5.04588441e+00 5.03505478e+00 5.02424839e+00 + 5.01346520e+00 5.00270514e+00 4.99196819e+00 4.98125427e+00 4.97056335e+00 + 4.95989538e+00 4.94925030e+00 4.93862807e+00 4.92802863e+00 4.91745195e+00 + 4.90689796e+00 4.89636663e+00 4.88585790e+00 4.87537172e+00 4.86490805e+00 + 4.85446683e+00 4.84404803e+00 4.83365158e+00 4.82327745e+00 4.81292559e+00 + 4.80259594e+00 4.79228846e+00 4.78200311e+00 4.77173983e+00 4.76149857e+00 + 4.75127930e+00 4.74108196e+00 4.73090650e+00 4.72075289e+00 4.71062106e+00 + 4.70051099e+00 4.69042261e+00 4.68035588e+00 4.67031076e+00 4.66028719e+00 + 4.65028514e+00 4.64030456e+00 4.63034539e+00 4.62040761e+00 4.61049115e+00 + 4.60059597e+00 4.59072203e+00 4.58086928e+00 4.57103768e+00 4.56122718e+00 + 4.55143774e+00 4.54166930e+00 4.53192183e+00 4.52219528e+00 4.51248961e+00 + 4.50280477e+00 4.49314071e+00 4.48349739e+00 4.47387478e+00 4.46427281e+00 + 4.45469145e+00 4.44513066e+00 4.43559038e+00 4.42607058e+00 4.41657121e+00 + 4.40709223e+00 4.39763360e+00 4.38819526e+00 4.37877718e+00 4.36937932e+00 + 4.36000162e+00 4.35064406e+00 4.34130657e+00 4.33198913e+00 4.32269168e+00 + 4.31341419e+00 4.30415660e+00 4.29491889e+00 4.28570101e+00 4.27650290e+00 + 4.26732454e+00 4.25816588e+00 4.24902688e+00 4.23990748e+00 4.23080767e+00 + 4.22172738e+00 4.21266658e+00 4.20362522e+00 4.19460328e+00 4.18560069e+00 + 4.17661743e+00 4.16765344e+00 4.15870870e+00 4.14978315e+00 4.14087676e+00 + 4.13198948e+00 4.12312128e+00 4.11427211e+00 4.10544194e+00 4.09663071e+00 + 4.08783840e+00 4.07906495e+00 4.07031034e+00 4.06157452e+00 4.05285744e+00 + 4.04415907e+00 4.03547938e+00 4.02681831e+00 4.01817583e+00 4.00955190e+00 + 4.00094647e+00 3.99235952e+00 3.98379100e+00 3.97524086e+00 3.96670908e+00 + 3.95819561e+00 3.94970041e+00 3.94122344e+00 3.93276467e+00 3.92432405e+00 + 3.91590154e+00 3.90749711e+00 3.89911073e+00 3.89074234e+00 3.88239191e+00 + 3.87405940e+00 3.86574477e+00 3.85744799e+00 3.84916902e+00 3.84090782e+00 + 3.83266434e+00 3.82443856e+00 3.81623044e+00 3.80803993e+00 3.79986699e+00 + 3.79171160e+00 3.78357372e+00 3.77545330e+00 3.76735030e+00 3.75926470e+00 + 3.75119645e+00 3.74314552e+00 3.73511187e+00 3.72709545e+00 3.71909625e+00 + 3.71111421e+00 3.70314930e+00 3.69520149e+00 3.68727074e+00 3.67935701e+00 + 3.67146026e+00 3.66358046e+00 3.65571757e+00 3.64787156e+00 3.64004238e+00 + 3.63223001e+00 3.62443441e+00 3.61665554e+00 3.60889336e+00 3.60114785e+00 + 3.59341895e+00 3.58570665e+00 3.57801089e+00 3.57033166e+00 3.56266890e+00 + 3.55502259e+00 3.54739270e+00 3.53977917e+00 3.53218199e+00 3.52460112e+00 + 3.51703651e+00 3.50948814e+00 3.50195597e+00 3.49443996e+00 3.48694009e+00 + 3.47945631e+00 3.47198860e+00 3.46453691e+00 3.45710121e+00 3.44968148e+00 + 3.44227767e+00 3.43488974e+00 3.42751768e+00 3.42016144e+00 3.41282098e+00 + 3.40549628e+00 3.39818730e+00 3.39089401e+00 3.38361637e+00 3.37635435e+00 + 3.36910791e+00 3.36187703e+00 3.35466167e+00 3.34746179e+00 3.34027737e+00 + 3.33310836e+00 3.32595474e+00 3.31881648e+00 3.31169353e+00 3.30458587e+00 + 3.29749347e+00 3.29041629e+00 3.28335430e+00 3.27630746e+00 3.26927575e+00 + 3.26225913e+00 3.25525757e+00 3.24827104e+00 3.24129950e+00 3.23434292e+00 + 3.22740128e+00 3.22047453e+00 3.21356265e+00 3.20666561e+00 3.19978336e+00 + 3.19291589e+00 3.18606316e+00 3.17922513e+00 3.17240178e+00 3.16559307e+00 + 3.15879898e+00 3.15201947e+00 3.14525451e+00 3.13850407e+00 3.13176812e+00 + 3.12504662e+00 3.11833955e+00 3.11164687e+00 3.10496856e+00 3.09830458e+00 + 3.09165491e+00 3.08501950e+00 3.07839834e+00 3.07179139e+00 3.06519862e+00 + 3.05861999e+00 3.05205549e+00 3.04550508e+00 3.03896872e+00 3.03244639e+00 + 3.02593806e+00 3.01944370e+00 3.01296328e+00 3.00649677e+00 3.00004413e+00 + 2.99360535e+00 2.98718038e+00 2.98076920e+00 2.97437178e+00 2.96798810e+00 + 2.96161811e+00 2.95526179e+00 2.94891912e+00 2.94259006e+00 2.93627458e+00 + 2.92997266e+00 2.92368427e+00 2.91740937e+00 2.91114793e+00 2.90489994e+00 + 2.89866535e+00 2.89244415e+00 2.88623630e+00 2.88004177e+00 2.87386054e+00 + 2.86769257e+00 2.86153784e+00 2.85539632e+00 2.84926798e+00 2.84315279e+00 + 2.83705073e+00 2.83096177e+00 2.82488587e+00 2.81882302e+00 2.81277317e+00 + 2.80673631e+00 2.80071241e+00 2.79470143e+00 2.78870336e+00 2.78271816e+00 + 2.77674581e+00 2.77078627e+00 2.76483952e+00 2.75890554e+00 2.75298429e+00 + 2.74707575e+00 2.74117990e+00 2.73529669e+00 2.72942612e+00 2.72356814e+00 + 2.71772273e+00 2.71188987e+00 2.70606953e+00 2.70026168e+00 2.69446630e+00 + 2.68868335e+00 2.68291282e+00 2.67715467e+00 2.67140888e+00 2.66567542e+00 + 2.65995427e+00 2.65424539e+00 2.64854877e+00 2.64286437e+00 2.63719218e+00 + 2.63153215e+00 2.62588428e+00 2.62024853e+00 2.61462487e+00 2.60901328e+00 + 2.60341374e+00 2.59782621e+00 2.59225068e+00 2.58668711e+00 2.58113548e+00 + 2.57559577e+00 2.57006795e+00 2.56455199e+00 2.55904787e+00 2.55355557e+00 + 2.54807505e+00 2.54260629e+00 2.53714927e+00 2.53170396e+00 2.52627034e+00 + 2.52084839e+00 2.51543806e+00 2.51003935e+00 2.50465223e+00 2.49927667e+00 + 2.49391265e+00 2.48856013e+00 2.48321911e+00 2.47788955e+00 2.47257143e+00 + 2.46726472e+00 2.46196940e+00 2.45668545e+00 2.45141283e+00 2.44615154e+00 + 2.44090153e+00 2.43566279e+00 2.43043530e+00 2.42521903e+00 2.42001395e+00 + 2.41482004e+00 2.40963728e+00 2.40446564e+00 2.39930510e+00 2.39415564e+00 + 2.38901723e+00 2.38388985e+00 2.37877347e+00 2.37366808e+00 2.36857364e+00 + 2.36349013e+00 2.35841754e+00 2.35335583e+00 2.34830499e+00 2.34326498e+00 + 2.33823580e+00 2.33321740e+00 2.32820978e+00 2.32321291e+00 2.31822676e+00 + 2.31325131e+00 2.30828654e+00 2.30333242e+00 2.29838894e+00 2.29345607e+00 + 2.28853378e+00 2.28362206e+00 2.27872088e+00 2.27383022e+00 2.26895006e+00 + 2.26408037e+00 2.25922113e+00 2.25437232e+00 2.24953392e+00 2.24470590e+00 + 2.23988824e+00 2.23508093e+00 2.23028393e+00 2.22549722e+00 2.22072079e+00 + 2.21595462e+00 2.21119867e+00 2.20645292e+00 2.20171737e+00 2.19699197e+00 + 2.19227672e+00 2.18757159e+00 2.18287656e+00 2.17819160e+00 2.17351670e+00 + 2.16885183e+00 2.16419698e+00 2.15955211e+00 2.15491722e+00 2.15029227e+00 + 2.14567724e+00 2.14107213e+00 2.13647689e+00 2.13189152e+00 2.12731599e+00 + 2.12275028e+00 2.11819437e+00 2.11364823e+00 2.10911186e+00 2.10458522e+00 + 2.10006829e+00 2.09556106e+00 2.09106350e+00 2.08657560e+00 2.08209733e+00 + 2.07762867e+00 2.07316960e+00 2.06872010e+00 2.06428015e+00 2.05984973e+00 + 2.05542881e+00 2.05101739e+00 2.04661543e+00 2.04222293e+00 2.03783984e+00 + 2.03346617e+00 2.02910188e+00 2.02474696e+00 2.02040139e+00 2.01606514e+00 + 2.01173820e+00 2.00742055e+00 2.00311216e+00 1.99881302e+00 1.99452311e+00 + 1.99024240e+00 1.98597088e+00 1.98170853e+00 1.97745533e+00 1.97321125e+00 + 1.96897629e+00 1.96475041e+00 1.96053360e+00 1.95632584e+00 1.95212712e+00 + 1.94793740e+00 1.94375668e+00 1.93958493e+00 1.93542213e+00 1.93126827e+00 + 1.92712332e+00 1.92298727e+00 1.91886010e+00 1.91474178e+00 1.91063231e+00 + 1.90653165e+00 1.90243979e+00 1.89835672e+00 1.89428241e+00 1.89021684e+00 + 1.88616000e+00 1.88211187e+00 1.87807242e+00 1.87404164e+00 1.87001952e+00 + 1.86600602e+00 1.86200115e+00 1.85800486e+00 1.85401715e+00 1.85003801e+00 + 1.84606740e+00 1.84210531e+00 1.83815173e+00 1.83420663e+00 1.83027000e+00 + 1.82634182e+00 1.82242207e+00 1.81851073e+00 1.81460779e+00 1.81071322e+00 + 1.80682701e+00 1.80294915e+00 1.79907960e+00 1.79521836e+00 1.79136541e+00 + 1.78752073e+00 1.78368429e+00 1.77985610e+00 1.77603612e+00 1.77222433e+00 + 1.76842073e+00 1.76462529e+00 1.76083800e+00 1.75705883e+00 1.75328778e+00 + 1.74952482e+00 1.74576994e+00 1.74202311e+00 1.73828433e+00 1.73455357e+00 + 1.73083082e+00 1.72711606e+00 1.72340927e+00 1.71971043e+00 1.71601954e+00 + 1.71233656e+00 1.70866149e+00 1.70499431e+00 1.70133500e+00 1.69768354e+00 + 1.69403992e+00 1.69040412e+00 1.68677613e+00 1.68315592e+00 1.67954347e+00 + 1.67593879e+00 1.67234184e+00 1.66875260e+00 1.66517108e+00 1.66159723e+00 + 1.65803106e+00 1.65447255e+00 1.65092167e+00 1.64737841e+00 1.64384275e+00 + 1.64031469e+00 1.63679419e+00 1.63328125e+00 1.62977586e+00 1.62627798e+00 + 1.62278761e+00 1.61930474e+00 1.61582933e+00 1.61236139e+00 1.60890089e+00 + 1.60544782e+00 1.60200216e+00 1.59856389e+00 1.59513300e+00 1.59170948e+00 + 1.58829330e+00 1.58488446e+00 1.58148293e+00 1.57808870e+00 1.57470176e+00 + 1.57132209e+00 1.56794967e+00 1.56458448e+00 1.56122652e+00 1.55787577e+00 + 1.55453221e+00 1.55119582e+00 1.54786660e+00 1.54454452e+00 1.54122957e+00 + 1.53792173e+00 1.53462100e+00 1.53132735e+00 1.52804076e+00 1.52476123e+00 + 1.52148874e+00 1.51822328e+00 1.51496482e+00 1.51171335e+00 1.50846886e+00 + 1.50523134e+00 1.50200077e+00 1.49877712e+00 1.49556040e+00 1.49235058e+00 + 1.48914765e+00 1.48595159e+00 1.48276240e+00 1.47958005e+00 1.47640452e+00 + 1.47323582e+00 1.47007391e+00 1.46691879e+00 1.46377044e+00 1.46062885e+00 + 1.45749400e+00 1.45436588e+00 1.45124447e+00 1.44812976e+00 1.44502174e+00 + 1.44192039e+00 1.43882569e+00 1.43573763e+00 1.43265621e+00 1.42958139e+00 + 1.42651318e+00 1.42345155e+00 1.42039649e+00 1.41734799e+00 1.41430603e+00 + 1.41127059e+00 1.40824168e+00 1.40521926e+00 1.40220333e+00 1.39919388e+00 + 1.39619088e+00 1.39319433e+00 1.39020420e+00 1.38722050e+00 1.38424320e+00 + 1.38127229e+00 1.37830775e+00 1.37534958e+00 1.37239776e+00 1.36945227e+00 + 1.36651310e+00 1.36358024e+00 1.36065367e+00 1.35773339e+00 1.35481937e+00 + 1.35191161e+00 1.34901009e+00 1.34611479e+00 1.34322571e+00 1.34034283e+00 + 1.33746613e+00 1.33459561e+00 1.33173125e+00 1.32887304e+00 1.32602096e+00 + 1.32317500e+00 1.32033515e+00 1.31750140e+00 1.31467372e+00 1.31185212e+00 + 1.30903657e+00 1.30622706e+00 1.30342358e+00 1.30062612e+00 1.29783466e+00 + 1.29504919e+00 1.29226970e+00 1.28949618e+00 1.28672861e+00 1.28396697e+00 + 1.28121127e+00 1.27846147e+00 1.27571758e+00 1.27297958e+00 1.27024745e+00 + 1.26752119e+00 1.26480077e+00 1.26208620e+00 1.25937745e+00 1.25667451e+00 + 1.25397737e+00 1.25128603e+00 1.24860045e+00 1.24592064e+00 1.24324658e+00 + 1.24057826e+00 1.23791567e+00 1.23525878e+00 1.23260760e+00 1.22996211e+00 + 1.22732230e+00 1.22468815e+00 1.22205965e+00 1.21943680e+00 1.21681957e+00 + 1.21420796e+00 1.21160195e+00 1.20900153e+00 1.20640670e+00 1.20381743e+00 + 1.20123372e+00 1.19865555e+00 1.19608291e+00 1.19351580e+00 1.19095419e+00 + 1.18839808e+00 1.18584745e+00 1.18330230e+00 1.18076261e+00 1.17822836e+00 + 1.17569956e+00 1.17317618e+00 1.17065821e+00 1.16814565e+00 1.16563847e+00 + 1.16313668e+00 1.16064025e+00 1.15814918e+00 1.15566346e+00 1.15318306e+00 + 1.15070799e+00 1.14823823e+00 1.14577377e+00 1.14331459e+00 1.14086069e+00 + 1.13841205e+00 1.13596867e+00 1.13353053e+00 1.13109762e+00 1.12866992e+00 + 1.12624744e+00 1.12383015e+00 1.12141805e+00 1.11901112e+00 1.11660935e+00 + 1.11421273e+00 1.11182126e+00 1.10943491e+00 1.10705368e+00 1.10467756e+00 + 1.10230654e+00 1.09994060e+00 1.09757973e+00 1.09522393e+00 1.09287318e+00 + 1.09052747e+00 1.08818679e+00 1.08585113e+00 1.08352048e+00 1.08119483e+00 + 1.07887416e+00 1.07655847e+00 1.07424774e+00 1.07194197e+00 1.06964114e+00 + 1.06734525e+00 1.06505427e+00 1.06276821e+00 1.06048705e+00 1.05821077e+00 + 1.05593938e+00 1.05367285e+00 1.05141119e+00 1.04915437e+00 1.04690238e+00 + 1.04465523e+00 1.04241289e+00 1.04017535e+00 1.03794261e+00 1.03571465e+00 + 1.03349147e+00 1.03127304e+00 1.02905938e+00 1.02685045e+00 1.02464626e+00 + 1.02244678e+00 1.02025202e+00 1.01806196e+00 1.01587659e+00 1.01369590e+00 + 1.01151988e+00 1.00934851e+00 1.00718180e+00 1.00501973e+00 1.00286228e+00 + 1.00070946e+00 9.98561236e-01 9.96417615e-01 9.94278581e-01 9.92144125e-01 + 9.90014236e-01 9.87888904e-01 9.85768119e-01 9.83651871e-01 9.81540149e-01 + 9.79432944e-01 9.77330246e-01 9.75232044e-01 9.73138328e-01 9.71049088e-01 + 9.68964314e-01 9.66883996e-01 9.64808125e-01 9.62736689e-01 9.60669679e-01 + 9.58607085e-01 9.56548897e-01 9.54495105e-01 9.52445699e-01 9.50400669e-01 + 9.48360004e-01 9.46323696e-01 9.44291733e-01 9.42264107e-01 9.40240807e-01 + 9.38221822e-01 9.36207144e-01 9.34196763e-01 9.32190667e-01 9.30188848e-01 + 9.28191295e-01 9.26197999e-01 9.24208949e-01 9.22224136e-01 9.20243549e-01 + 9.18267179e-01 9.16295016e-01 9.14327050e-01 9.12363271e-01 9.10403669e-01 + 9.08448234e-01 9.06496956e-01 9.04549825e-01 9.02606832e-01 9.00667966e-01 + 8.98733217e-01 8.96802576e-01 8.94876032e-01 8.92953575e-01 8.91035196e-01 + 8.89120885e-01 8.87210631e-01 8.85304424e-01 8.83402255e-01 8.81504113e-01 + 8.79609989e-01 8.77719872e-01 8.75833752e-01 8.73951619e-01 8.72073464e-01 + 8.70199275e-01 8.68329043e-01 8.66462758e-01 8.64600409e-01 8.62741986e-01 + 8.60887479e-01 8.59036879e-01 8.57190173e-01 8.55347353e-01 8.53508408e-01 + 8.51673328e-01 8.49842102e-01 8.48014719e-01 8.46191170e-01 8.44371444e-01 + 8.42555531e-01 8.40743420e-01 8.38935100e-01 8.37130561e-01 8.35329792e-01 + 8.33532782e-01 8.31739522e-01 8.29950000e-01 8.28164205e-01 8.26382127e-01 + 8.24603754e-01 8.22829076e-01 8.21058082e-01 8.19290760e-01 8.17527101e-01 + 8.15767091e-01 8.14010722e-01 8.12257980e-01 8.10508856e-01 8.08763337e-01 + 8.07021412e-01 8.05283069e-01 8.03548298e-01 8.01817087e-01 8.00089423e-01 + 7.98365295e-01 7.96644692e-01 7.94927601e-01 7.93214010e-01 7.91503908e-01 + 7.89797282e-01 7.88094120e-01 7.86394410e-01 7.84698139e-01 7.83005295e-01 + 7.81315865e-01 7.79629836e-01 7.77947197e-01 7.76267933e-01 7.74592033e-01 + 7.72919482e-01 7.71250267e-01 7.69584376e-01 7.67921795e-01 7.66262510e-01 + 7.64606508e-01 7.62953775e-01 7.61304297e-01 7.59658059e-01 7.58015048e-01 + 7.56375250e-01 7.54738649e-01 7.53105231e-01 7.51474982e-01 7.49847887e-01 + 7.48223929e-01 7.46603095e-01 7.44985369e-01 7.43370735e-01 7.41759177e-01 + 7.40150680e-01 7.38545227e-01 7.36942802e-01 7.35343389e-01 7.33746970e-01 + 7.32153529e-01 7.30563049e-01 7.28975513e-01 7.27390903e-01 7.25809201e-01 + 7.24230389e-01 7.22654449e-01 7.21081363e-01 7.19511112e-01 7.17943676e-01 + 7.16379038e-01 7.14817176e-01 7.13258073e-01 7.11701707e-01 7.10148058e-01 + 7.08597106e-01 7.07048830e-01 7.05503209e-01 7.03960221e-01 7.02419845e-01 + 7.00882058e-01 6.99346838e-01 6.97814163e-01 6.96284009e-01 6.94756352e-01 + 6.93231170e-01 6.91708437e-01 6.90188130e-01 6.88670223e-01 6.87154691e-01 + 6.85641509e-01 6.84130649e-01 6.82622086e-01 6.81115793e-01 6.79611743e-01 + 6.78109907e-01 6.76610256e-01 6.75112764e-01 6.73617399e-01 6.72124133e-01 + 6.70632935e-01 6.69143774e-01 6.67656619e-01 6.66171439e-01 6.64688201e-01 + 6.63206872e-01 6.61727419e-01 6.60249807e-01 6.58774002e-01 6.57299969e-01 + 6.55827672e-01 6.54357074e-01 6.52888139e-01 6.51420829e-01 6.49955104e-01 + 6.48490927e-01 6.47028257e-01 6.45567053e-01 6.44107275e-01 6.42648880e-01 + 6.41191826e-01 6.39736069e-01 6.38281565e-01 6.36828269e-01 6.35376134e-01 + 6.33925114e-01 6.32475162e-01 6.31026228e-01 6.29578264e-01 6.28131219e-01 + 6.26685041e-01 6.25239679e-01 6.23795080e-01 6.22351189e-01 6.20907951e-01 + 6.19465310e-01 6.18023208e-01 6.16581589e-01 6.15140391e-01 6.13699555e-01 + 6.12259019e-01 6.10818721e-01 6.09378596e-01 6.07938579e-01 6.06498604e-01 + 6.05058604e-01 6.03618509e-01 6.02178250e-01 6.00737754e-01 5.99296950e-01 + 5.97855763e-01 5.96414118e-01 5.94971938e-01 5.93529144e-01 5.92085657e-01 + 5.90641395e-01 5.89196275e-01 5.87750214e-01 5.86303125e-01 5.84854920e-01 + 5.83405511e-01 5.81954807e-01 5.80502715e-01 5.79049141e-01 5.77593989e-01 + 5.76137162e-01 5.74678560e-01 5.73218082e-01 5.71755624e-01 5.70291081e-01 + 5.68824347e-01 5.67355312e-01 5.65883866e-01 5.64409896e-01 5.62933287e-01 + 5.61453921e-01 5.59971680e-01 5.58486443e-01 5.56998085e-01 5.55506482e-01 + 5.54011505e-01 5.52513025e-01 5.51010909e-01 5.49505022e-01 5.47995227e-01 + 5.46481386e-01 5.44963355e-01 5.43440991e-01 5.41914147e-01 5.40382673e-01 + 5.38846419e-01 5.37305229e-01 5.35758946e-01 5.34207411e-01 5.32650462e-01 + 5.31087934e-01 5.29519659e-01 5.27945467e-01 5.26365185e-01 5.24778637e-01 + 5.23185644e-01 5.21586025e-01 5.19979596e-01 5.18366169e-01 5.16745554e-01 + 5.15117559e-01 5.13481987e-01 5.11838640e-01 5.10187316e-01 5.08527810e-01 + 5.06859916e-01 5.05183421e-01 5.03498113e-01 5.01803775e-01 5.00100187e-01 + 4.98387128e-01 4.96664371e-01 4.94931688e-01 4.93188848e-01 4.91435617e-01 + 4.89671756e-01 4.87897027e-01 4.86111186e-01 4.84313987e-01 4.82505182e-01 + 4.80684518e-01 4.78851743e-01 4.77006599e-01 4.75148825e-01 4.73278161e-01 + 4.71394342e-01 4.69497099e-01 4.67586165e-01 4.65661265e-01 4.63722128e-01 + 4.61768475e-01 4.59800029e-01 4.57816510e-01 4.55817634e-01 4.53803118e-01 + 4.51772676e-01 4.49726022e-01 4.47662866e-01 4.45582919e-01 4.43485891e-01 + 4.41371488e-01 4.39239420e-01 4.37089394e-01 4.34921115e-01 4.32734292e-01 + 4.30528630e-01 4.28303837e-01 4.26059620e-01 4.23795689e-01 4.21511752e-01 + 4.19207520e-01 4.16882707e-01 4.14537026e-01 4.12170195e-01 4.09781933e-01 + 4.07371963e-01 4.04940009e-01 4.02485802e-01 4.00009075e-01 3.97509566e-01 + 3.94987017e-01 3.92441177e-01 3.89871799e-01 3.87278645e-01 3.84661480e-01 + 3.82020079e-01 3.79354224e-01 3.76663705e-01 3.73948321e-01 3.71207881e-01 + 3.68442203e-01 3.65651117e-01 3.62834463e-01 3.59992093e-01 3.57123872e-01 + 3.54229679e-01 3.51309405e-01 3.48362957e-01 3.45390258e-01 3.42391245e-01 + 3.39365874e-01 3.36314117e-01 3.33235967e-01 3.30131432e-01 3.27000544e-01 + 3.23843354e-01 3.20659935e-01 3.17450383e-01 3.14214817e-01 3.10953381e-01 + 3.07666242e-01 3.04353596e-01 3.01015664e-01 2.97652696e-01 2.94264969e-01 + 2.90852790e-01 2.87416499e-01 2.83956463e-01 2.80473085e-01 2.76966798e-01 + 2.73438070e-01 2.69887404e-01 2.66315338e-01 2.62722445e-01 2.59109338e-01 + 2.55476663e-01 2.51825108e-01 2.48155397e-01 2.44468296e-01 2.40764610e-01 + 2.37045183e-01 2.33310901e-01 2.29562691e-01 2.25801522e-01 2.22028404e-01 + 2.18244389e-01 2.14450570e-01 2.10648085e-01 2.06838110e-01 2.03021865e-01 + 1.99200609e-01 1.95375646e-01 1.91548315e-01 1.87719999e-01 1.83892119e-01 + 1.80066132e-01 1.76243534e-01 1.72425858e-01 1.68614668e-01 1.64811566e-01 + 1.61018182e-01 1.57236178e-01 1.53467243e-01 1.49713092e-01 1.45975466e-01 + 1.42256126e-01 1.38556852e-01 1.34879442e-01 1.31225705e-01 1.27597466e-01 + 1.23996551e-01 1.20424797e-01 1.16884039e-01 1.13376108e-01 1.09902834e-01 + 1.06466032e-01 1.03067507e-01 9.97090454e-02 9.63924113e-02 9.31193435e-02 + 8.98915508e-02 8.67107074e-02 8.35784489e-02 8.04963677e-02 7.74660087e-02 + 7.44888648e-02 7.15663729e-02 6.86999091e-02 6.58907847e-02 6.31402418e-02 + 6.04494498e-02 5.78195005e-02 5.52514054e-02 5.27460911e-02 5.03043967e-02 + 4.79270698e-02 4.56147642e-02 4.33680371e-02 4.11873461e-02 3.90730481e-02 + 3.70253965e-02 3.50445405e-02 3.31305238e-02 3.12832841e-02 2.95026522e-02 + 2.77883531e-02 2.61400057e-02 2.45571244e-02 2.30391200e-02 2.15853019e-02 + 2.01948803e-02 1.88669688e-02 1.76005877e-02 1.63946672e-02 1.52480519e-02 + 1.41595045e-02 1.31277111e-02 1.21512857e-02 1.12287758e-02 1.03586680e-02 + 9.53939392e-03 8.76933619e-03 8.04683477e-03 7.37019339e-03 6.73768606e-03 + 6.14756365e-03 5.59806047e-03 5.08740088e-03 4.61380575e-03 4.17549890e-03 + 3.77071328e-03 3.39769704e-03 3.05471932e-03 2.74007581e-03 2.45209391e-03 + 2.18913767e-03 1.94961227e-03 1.73196817e-03 1.53470479e-03 1.35637382e-03 + 1.19558204e-03 1.05099372e-03 9.21332559e-04 8.05383193e-04 7.01992213e-04 + 6.10068796e-04 5.28584903e-04 4.56575066e-04 3.93135809e-04 3.37424713e-04 + 2.88659146e-04 2.46114711e-04 2.09123417e-04 1.77071629e-04 1.49397813e-04 + 1.25590119e-04 1.05183840e-04 8.77587673e-05 7.29364877e-05 6.03776430e-05 + 4.97791872e-05 4.08716659e-05 3.34165405e-05 2.72035814e-05 2.20483479e-05 + 1.77897704e-05 1.42878490e-05 1.14214793e-05 9.08641104e-06 7.19334759e-06 + 5.66618684e-06 4.44040494e-06 3.46158128e-06 2.68406139e-06 2.06975312e-06 + 1.58705007e-06 1.20987538e-06 9.16838150e-07 6.90494318e-07 5.16703483e-07 + 3.84073119e-07 2.83481627e-07 2.07671932e-07 1.50907666e-07 1.08684371e-07 + 7.74887026e-08 5.45991257e-08 3.79221873e-08 2.58590381e-08 1.71974474e-08 + 1.10251239e-08 6.66069066e-09 3.59915934e-09 1.46921029e-09 0.00000000e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.31535205e+00 + 9.31535205e+00 9.31535205e+00 9.31535205e+00 9.30248929e+00 9.28626121e+00 + 9.27006144e+00 9.25388993e+00 9.23774663e+00 9.22163150e+00 9.20554447e+00 + 9.18948551e+00 9.17345456e+00 9.15745158e+00 9.14147652e+00 9.12552932e+00 + 9.10960995e+00 9.09371834e+00 9.07785446e+00 9.06201825e+00 9.04620967e+00 + 9.03042867e+00 9.01467520e+00 8.99894920e+00 8.98325065e+00 8.96757947e+00 + 8.95193564e+00 8.93631910e+00 8.92072979e+00 8.90516769e+00 8.88963273e+00 + 8.87412487e+00 8.85864407e+00 8.84319027e+00 8.82776344e+00 8.81236351e+00 + 8.79699045e+00 8.78164420e+00 8.76632473e+00 8.75103198e+00 8.73576591e+00 + 8.72052648e+00 8.70531362e+00 8.69012731e+00 8.67496749e+00 8.65983411e+00 + 8.64472713e+00 8.62964651e+00 8.61459220e+00 8.59956415e+00 8.58456231e+00 + 8.56958664e+00 8.55463710e+00 8.53971364e+00 8.52481622e+00 8.50994478e+00 + 8.49509928e+00 8.48027968e+00 8.46548594e+00 8.45071800e+00 8.43597582e+00 + 8.42125937e+00 8.40656858e+00 8.39190342e+00 8.37726385e+00 8.36264981e+00 + 8.34806127e+00 8.33349818e+00 8.31896049e+00 8.30444817e+00 8.28996116e+00 + 8.27549942e+00 8.26106291e+00 8.24665159e+00 8.23226540e+00 8.21790432e+00 + 8.20356828e+00 8.18925725e+00 8.17497119e+00 8.16071006e+00 8.14647380e+00 + 8.13226237e+00 8.11807574e+00 8.10391385e+00 8.08977667e+00 8.07566415e+00 + 8.06157626e+00 8.04751293e+00 8.03347414e+00 8.01945985e+00 8.00546999e+00 + 7.99150455e+00 7.97756347e+00 7.96364670e+00 7.94975422e+00 7.93588597e+00 + 7.92204191e+00 7.90822200e+00 7.89442621e+00 7.88065447e+00 7.86690677e+00 + 7.85318304e+00 7.83948326e+00 7.82580738e+00 7.81215535e+00 7.79852714e+00 + 7.78492270e+00 7.77134200e+00 7.75778499e+00 7.74425163e+00 7.73074187e+00 + 7.71725569e+00 7.70379303e+00 7.69035385e+00 7.67693812e+00 7.66354580e+00 + 7.65017684e+00 7.63683119e+00 7.62350883e+00 7.61020972e+00 7.59693380e+00 + 7.58368104e+00 7.57045140e+00 7.55724484e+00 7.54406131e+00 7.53090079e+00 + 7.51776322e+00 7.50464858e+00 7.49155681e+00 7.47848788e+00 7.46544175e+00 + 7.45241837e+00 7.43941772e+00 7.42643975e+00 7.41348441e+00 7.40055168e+00 + 7.38764150e+00 7.37475385e+00 7.36188868e+00 7.34904596e+00 7.33622564e+00 + 7.32342768e+00 7.31065205e+00 7.29789870e+00 7.28516761e+00 7.27245872e+00 + 7.25977200e+00 7.24710742e+00 7.23446493e+00 7.22184449e+00 7.20924607e+00 + 7.19666963e+00 7.18411512e+00 7.17158252e+00 7.15907178e+00 7.14658287e+00 + 7.13411574e+00 7.12167036e+00 7.10924669e+00 7.09684470e+00 7.08446434e+00 + 7.07210558e+00 7.05976837e+00 7.04745269e+00 7.03515850e+00 7.02288575e+00 + 7.01063441e+00 6.99840444e+00 6.98619581e+00 6.97400848e+00 6.96184240e+00 + 6.94969755e+00 6.93757389e+00 6.92547138e+00 6.91338997e+00 6.90132965e+00 + 6.88929036e+00 6.87727208e+00 6.86527476e+00 6.85329837e+00 6.84134288e+00 + 6.82940824e+00 6.81749442e+00 6.80560138e+00 6.79372909e+00 6.78187751e+00 + 6.77004661e+00 6.75823634e+00 6.74644668e+00 6.73467759e+00 6.72292902e+00 + 6.71120095e+00 6.69949335e+00 6.68780616e+00 6.67613936e+00 6.66449292e+00 + 6.65286679e+00 6.64126095e+00 6.62967535e+00 6.61810996e+00 6.60656474e+00 + 6.59503967e+00 6.58353471e+00 6.57204981e+00 6.56058495e+00 6.54914009e+00 + 6.53771519e+00 6.52631022e+00 6.51492516e+00 6.50355995e+00 6.49221457e+00 + 6.48088898e+00 6.46958314e+00 6.45829703e+00 6.44703061e+00 6.43578385e+00 + 6.42455670e+00 6.41334914e+00 6.40216113e+00 6.39099263e+00 6.37984362e+00 + 6.36871406e+00 6.35760392e+00 6.34651316e+00 6.33544174e+00 6.32438964e+00 + 6.31335682e+00 6.30234324e+00 6.29134888e+00 6.28037370e+00 6.26941766e+00 + 6.25848074e+00 6.24756290e+00 6.23666410e+00 6.22578431e+00 6.21492351e+00 + 6.20408165e+00 6.19325870e+00 6.18245464e+00 6.17166942e+00 6.16090302e+00 + 6.15015540e+00 6.13942652e+00 6.12871637e+00 6.11802490e+00 6.10735208e+00 + 6.09669787e+00 6.08606226e+00 6.07544520e+00 6.06484666e+00 6.05426660e+00 + 6.04370501e+00 6.03316184e+00 6.02263706e+00 6.01213064e+00 6.00164255e+00 + 5.99117276e+00 5.98072123e+00 5.97028794e+00 5.95987284e+00 5.94947592e+00 + 5.93909713e+00 5.92873644e+00 5.91839383e+00 5.90806927e+00 5.89776271e+00 + 5.88747414e+00 5.87720351e+00 5.86695080e+00 5.85671597e+00 5.84649900e+00 + 5.83629986e+00 5.82611850e+00 5.81595491e+00 5.80580905e+00 5.79568088e+00 + 5.78557039e+00 5.77547753e+00 5.76540228e+00 5.75534460e+00 5.74530447e+00 + 5.73528186e+00 5.72527673e+00 5.71528905e+00 5.70531880e+00 5.69536594e+00 + 5.68543044e+00 5.67551228e+00 5.66561142e+00 5.65572783e+00 5.64586148e+00 + 5.63601234e+00 5.62618038e+00 5.61636558e+00 5.60656790e+00 5.59678731e+00 + 5.58702378e+00 5.57727729e+00 5.56754779e+00 5.55783527e+00 5.54813970e+00 + 5.53846103e+00 5.52879926e+00 5.51915433e+00 5.50952623e+00 5.49991493e+00 + 5.49032040e+00 5.48074260e+00 5.47118151e+00 5.46163710e+00 5.45210934e+00 + 5.44259820e+00 5.43310365e+00 5.42362567e+00 5.41416422e+00 5.40471928e+00 + 5.39529081e+00 5.38587879e+00 5.37648319e+00 5.36710398e+00 5.35774113e+00 + 5.34839462e+00 5.33906441e+00 5.32975047e+00 5.32045279e+00 5.31117132e+00 + 5.30190605e+00 5.29265694e+00 5.28342396e+00 5.27420709e+00 5.26500630e+00 + 5.25582156e+00 5.24665284e+00 5.23750012e+00 5.22836337e+00 5.21924255e+00 + 5.21013764e+00 5.20104862e+00 5.19197545e+00 5.18291812e+00 5.17387658e+00 + 5.16485081e+00 5.15584079e+00 5.14684649e+00 5.13786788e+00 5.12890493e+00 + 5.11995762e+00 5.11102591e+00 5.10210979e+00 5.09320922e+00 5.08432418e+00 + 5.07545464e+00 5.06660057e+00 5.05776195e+00 5.04893874e+00 5.04013093e+00 + 5.03133848e+00 5.02256137e+00 5.01379957e+00 5.00505306e+00 4.99632181e+00 + 4.98760578e+00 4.97890496e+00 4.97021933e+00 4.96154884e+00 4.95289348e+00 + 4.94425321e+00 4.93562802e+00 4.92701788e+00 4.91842276e+00 4.90984263e+00 + 4.90127747e+00 4.89272725e+00 4.88419194e+00 4.87567153e+00 4.86716598e+00 + 4.85867527e+00 4.85019937e+00 4.84173825e+00 4.83329190e+00 4.82486028e+00 + 4.81644337e+00 4.80804114e+00 4.79965357e+00 4.79128063e+00 4.78292230e+00 + 4.77457855e+00 4.76624936e+00 4.75793469e+00 4.74963453e+00 4.74134885e+00 + 4.73307763e+00 4.72482083e+00 4.71657844e+00 4.70835042e+00 4.70013676e+00 + 4.69193743e+00 4.68375240e+00 4.67558165e+00 4.66742516e+00 4.65928289e+00 + 4.65115483e+00 4.64304095e+00 4.63494122e+00 4.62685562e+00 4.61878412e+00 + 4.61072671e+00 4.60268335e+00 4.59465403e+00 4.58663871e+00 4.57863737e+00 + 4.57065000e+00 4.56267655e+00 4.55471702e+00 4.54677137e+00 4.53883958e+00 + 4.53092163e+00 4.52301749e+00 4.51512714e+00 4.50725056e+00 4.49938771e+00 + 4.49153859e+00 4.48370315e+00 4.47588139e+00 4.46807327e+00 4.46027877e+00 + 4.45249786e+00 4.44473053e+00 4.43697676e+00 4.42923650e+00 4.42150975e+00 + 4.41379648e+00 4.40609667e+00 4.39841029e+00 4.39073731e+00 4.38307772e+00 + 4.37543150e+00 4.36779861e+00 4.36017904e+00 4.35257276e+00 4.34497975e+00 + 4.33739998e+00 4.32983344e+00 4.32228010e+00 4.31473993e+00 4.30721292e+00 + 4.29969904e+00 4.29219827e+00 4.28471058e+00 4.27723595e+00 4.26977437e+00 + 4.26232580e+00 4.25489022e+00 4.24746762e+00 4.24005796e+00 4.23266123e+00 + 4.22527741e+00 4.21790646e+00 4.21054837e+00 4.20320312e+00 4.19587069e+00 + 4.18855104e+00 4.18124416e+00 4.17395003e+00 4.16666863e+00 4.15939992e+00 + 4.15214390e+00 4.14490054e+00 4.13766981e+00 4.13045169e+00 4.12324617e+00 + 4.11605322e+00 4.10887281e+00 4.10170493e+00 4.09454956e+00 4.08740667e+00 + 4.08027623e+00 4.07315824e+00 4.06605267e+00 4.05895949e+00 4.05187868e+00 + 4.04481023e+00 4.03775410e+00 4.03071029e+00 4.02367877e+00 4.01665951e+00 + 4.00965249e+00 4.00265770e+00 3.99567511e+00 3.98870471e+00 3.98174646e+00 + 3.97480035e+00 3.96786636e+00 3.96094447e+00 3.95403465e+00 3.94713688e+00 + 3.94025115e+00 3.93337743e+00 3.92651570e+00 3.91966594e+00 3.91282813e+00 + 3.90600225e+00 3.89918827e+00 3.89238619e+00 3.88559597e+00 3.87881759e+00 + 3.87205104e+00 3.86529629e+00 3.85855333e+00 3.85182213e+00 3.84510267e+00 + 3.83839494e+00 3.83169891e+00 3.82501455e+00 3.81834186e+00 3.81168081e+00 + 3.80503138e+00 3.79839355e+00 3.79176730e+00 3.78515260e+00 3.77854945e+00 + 3.77195782e+00 3.76537768e+00 3.75880903e+00 3.75225183e+00 3.74570607e+00 + 3.73917173e+00 3.73264879e+00 3.72613723e+00 3.71963703e+00 3.71314817e+00 + 3.70667063e+00 3.70020438e+00 3.69374942e+00 3.68730572e+00 3.68087326e+00 + 3.67445202e+00 3.66804198e+00 3.66164313e+00 3.65525544e+00 3.64887889e+00 + 3.64251346e+00 3.63615914e+00 3.62981591e+00 3.62348374e+00 3.61716261e+00 + 3.61085252e+00 3.60455343e+00 3.59826533e+00 3.59198820e+00 3.58572202e+00 + 3.57946677e+00 3.57322243e+00 3.56698899e+00 3.56076642e+00 3.55455471e+00 + 3.54835383e+00 3.54216377e+00 3.53598451e+00 3.52981602e+00 3.52365830e+00 + 3.51751132e+00 3.51137507e+00 3.50524952e+00 3.49913465e+00 3.49303045e+00 + 3.48693690e+00 3.48085398e+00 3.47478168e+00 3.46871996e+00 3.46266882e+00 + 3.45662824e+00 3.45059819e+00 3.44457866e+00 3.43856964e+00 3.43257109e+00 + 3.42658302e+00 3.42060538e+00 3.41463818e+00 3.40868138e+00 3.40273498e+00 + 3.39679895e+00 3.39087327e+00 3.38495794e+00 3.37905292e+00 3.37315820e+00 + 3.36727377e+00 3.36139960e+00 3.35553568e+00 3.34968199e+00 3.34383851e+00 + 3.33800522e+00 3.33218211e+00 3.32636916e+00 3.32056635e+00 3.31477366e+00 + 3.30899108e+00 3.30321858e+00 3.29745616e+00 3.29170379e+00 3.28596145e+00 + 3.28022913e+00 3.27450681e+00 3.26879447e+00 3.26309210e+00 3.25739967e+00 + 3.25171718e+00 3.24604460e+00 3.24038191e+00 3.23472911e+00 3.22908616e+00 + 3.22345306e+00 3.21782978e+00 3.21221632e+00 3.20661265e+00 3.20101875e+00 + 3.19543461e+00 3.18986021e+00 3.18429554e+00 3.17874058e+00 3.17319530e+00 + 3.16765970e+00 3.16213376e+00 3.15661745e+00 3.15111077e+00 3.14561370e+00 + 3.14012621e+00 3.13464830e+00 3.12917994e+00 3.12372113e+00 3.11827183e+00 + 3.11283204e+00 3.10740175e+00 3.10198092e+00 3.09656955e+00 3.09116763e+00 + 3.08577512e+00 3.08039202e+00 3.07501832e+00 3.06965398e+00 3.06429901e+00 + 3.05895338e+00 3.05361707e+00 3.04829007e+00 3.04297237e+00 3.03766394e+00 + 3.03236477e+00 3.02707485e+00 3.02179415e+00 3.01652267e+00 3.01126038e+00 + 3.00600727e+00 3.00076333e+00 2.99552853e+00 2.99030287e+00 2.98508632e+00 + 2.97987888e+00 2.97468051e+00 2.96949122e+00 2.96431098e+00 2.95913977e+00 + 2.95397759e+00 2.94882441e+00 2.94368022e+00 2.93854501e+00 2.93341875e+00 + 2.92830144e+00 2.92319305e+00 2.91809358e+00 2.91300300e+00 2.90792130e+00 + 2.90284847e+00 2.89778448e+00 2.89272933e+00 2.88768300e+00 2.88264547e+00 + 2.87761673e+00 2.87259676e+00 2.86758555e+00 2.86258309e+00 2.85758934e+00 + 2.85260431e+00 2.84762798e+00 2.84266033e+00 2.83770134e+00 2.83275101e+00 + 2.82780931e+00 2.82287623e+00 2.81795175e+00 2.81303587e+00 2.80812856e+00 + 2.80322982e+00 2.79833962e+00 2.79345795e+00 2.78858479e+00 2.78372014e+00 + 2.77886397e+00 2.77401628e+00 2.76917704e+00 2.76434625e+00 2.75952388e+00 + 2.75470992e+00 2.74990436e+00 2.74510719e+00 2.74031838e+00 2.73553793e+00 + 2.73076582e+00 2.72600203e+00 2.72124655e+00 2.71649937e+00 2.71176047e+00 + 2.70702984e+00 2.70230745e+00 2.69759331e+00 2.69288739e+00 2.68818968e+00 + 2.68350017e+00 2.67881883e+00 2.67414567e+00 2.66948065e+00 2.66482378e+00 + 2.66017502e+00 2.65553438e+00 2.65090183e+00 2.64627737e+00 2.64166097e+00 + 2.63705262e+00 2.63245232e+00 2.62786003e+00 2.62327576e+00 2.61869949e+00 + 2.61413120e+00 2.60957088e+00 2.60501852e+00 2.60047409e+00 2.59593760e+00 + 2.59140902e+00 2.58688833e+00 2.58237554e+00 2.57787061e+00 2.57337355e+00 + 2.56888433e+00 2.56440294e+00 2.55992937e+00 2.55546361e+00 2.55100563e+00 + 2.54655543e+00 2.54211300e+00 2.53767831e+00 2.53325136e+00 2.52883214e+00 + 2.52442062e+00 2.52001680e+00 2.51562066e+00 2.51123219e+00 2.50685138e+00 + 2.50247820e+00 2.49811266e+00 2.49375473e+00 2.48940441e+00 2.48506167e+00 + 2.48072651e+00 2.47639892e+00 2.47207887e+00 2.46776636e+00 2.46346137e+00 + 2.45916389e+00 2.45487391e+00 2.45059141e+00 2.44631638e+00 2.44204881e+00 + 2.43778869e+00 2.43353599e+00 2.42929072e+00 2.42505285e+00 2.42082238e+00 + 2.41659928e+00 2.41238355e+00 2.40817518e+00 2.40397415e+00 2.39978044e+00 + 2.39559405e+00 2.39141497e+00 2.38724317e+00 2.38307866e+00 2.37892141e+00 + 2.37477141e+00 2.37062865e+00 2.36649311e+00 2.36236479e+00 2.35824368e+00 + 2.35412975e+00 2.35002300e+00 2.34592341e+00 2.34183098e+00 2.33774568e+00 + 2.33366751e+00 2.32959646e+00 2.32553250e+00 2.32147564e+00 2.31742585e+00 + 2.31338313e+00 2.30934746e+00 2.30531883e+00 2.30129723e+00 2.29728265e+00 + 2.29327507e+00 2.28927447e+00 2.28528086e+00 2.28129422e+00 2.27731453e+00 + 2.27334178e+00 2.26937596e+00 2.26541706e+00 2.26146507e+00 2.25751997e+00 + 2.25358176e+00 2.24965041e+00 2.24572592e+00 2.24180828e+00 2.23789747e+00 + 2.23399349e+00 2.23009631e+00 2.22620593e+00 2.22232235e+00 2.21844553e+00 + 2.21457548e+00 2.21071218e+00 2.20685562e+00 2.20300578e+00 2.19916267e+00 + 2.19532625e+00 2.19149653e+00 2.18767349e+00 2.18385712e+00 2.18004741e+00 + 2.17624434e+00 2.17244791e+00 2.16865810e+00 2.16487490e+00 2.16109831e+00 + 2.15732830e+00 2.15356486e+00 2.14980799e+00 2.14605768e+00 2.14231391e+00 + 2.13857667e+00 2.13484594e+00 2.13112173e+00 2.12740401e+00 2.12369278e+00 + 2.11998803e+00 2.11628973e+00 2.11259789e+00 2.10891249e+00 2.10523352e+00 + 2.10156096e+00 2.09789481e+00 2.09423506e+00 2.09058169e+00 2.08693470e+00 + 2.08329406e+00 2.07965978e+00 2.07603184e+00 2.07241023e+00 2.06879493e+00 + 2.06518594e+00 2.06158325e+00 2.05798684e+00 2.05439671e+00 2.05081284e+00 + 2.04723522e+00 2.04366384e+00 2.04009869e+00 2.03653976e+00 2.03298704e+00 + 2.02944052e+00 2.02590019e+00 2.02236603e+00 2.01883803e+00 2.01531619e+00 + 2.01180050e+00 2.00829094e+00 2.00478749e+00 2.00129017e+00 1.99779894e+00 + 1.99431380e+00 1.99083474e+00 1.98736176e+00 1.98389483e+00 1.98043394e+00 + 1.97697910e+00 1.97353028e+00 1.97008748e+00 1.96665069e+00 1.96321989e+00 + 1.95979507e+00 1.95637623e+00 1.95296335e+00 1.94955643e+00 1.94615545e+00 + 1.94276041e+00 1.93937128e+00 1.93598807e+00 1.93261076e+00 1.92923934e+00 + 1.92587381e+00 1.92251414e+00 1.91916034e+00 1.91581238e+00 1.91247027e+00 + 1.90913398e+00 1.90580352e+00 1.90247887e+00 1.89916001e+00 1.89584695e+00 + 1.89253966e+00 1.88923815e+00 1.88594239e+00 1.88265239e+00 1.87936812e+00 + 1.87608958e+00 1.87281676e+00 1.86954965e+00 1.86628824e+00 1.86303252e+00 + 1.85978248e+00 1.85653811e+00 1.85329940e+00 1.85006634e+00 1.84683892e+00 + 1.84361712e+00 1.84040095e+00 1.83719039e+00 1.83398543e+00 1.83078606e+00 + 1.82759227e+00 1.82440406e+00 1.82122140e+00 1.81804430e+00 1.81487274e+00 + 1.81170671e+00 1.80854620e+00 1.80539121e+00 1.80224172e+00 1.79909773e+00 + 1.79595922e+00 1.79282619e+00 1.78969862e+00 1.78657650e+00 1.78345984e+00 + 1.78034861e+00 1.77724280e+00 1.77414242e+00 1.77104744e+00 1.76795786e+00 + 1.76487368e+00 1.76179487e+00 1.75872143e+00 1.75565336e+00 1.75259063e+00 + 1.74953325e+00 1.74648120e+00 1.74343448e+00 1.74039307e+00 1.73735697e+00 + 1.73432616e+00 1.73130064e+00 1.72828040e+00 1.72526543e+00 1.72225571e+00 + 1.71925125e+00 1.71625203e+00 1.71325804e+00 1.71026927e+00 1.70728571e+00 + 1.70430736e+00 1.70133421e+00 1.69836624e+00 1.69540345e+00 1.69244583e+00 + 1.68949336e+00 1.68654605e+00 1.68360388e+00 1.68066684e+00 1.67773492e+00 + 1.67480812e+00 1.67188642e+00 1.66896982e+00 1.66605831e+00 1.66315188e+00 + 1.66025051e+00 1.65735421e+00 1.65446296e+00 1.65157675e+00 1.64869558e+00 + 1.64581943e+00 1.64294830e+00 1.64008218e+00 1.63722106e+00 1.63436493e+00 + 1.63151378e+00 1.62866760e+00 1.62582639e+00 1.62299013e+00 1.62015883e+00 + 1.61733246e+00 1.61451102e+00 1.61169450e+00 1.60888289e+00 1.60607619e+00 + 1.60327439e+00 1.60047747e+00 1.59768543e+00 1.59489826e+00 1.59211595e+00 + 1.58933850e+00 1.58656589e+00 1.58379812e+00 1.58103517e+00 1.57827704e+00 + 1.57552373e+00 1.57277521e+00 1.57003149e+00 1.56729256e+00 1.56455840e+00 + 1.56182902e+00 1.55910439e+00 1.55638451e+00 1.55366938e+00 1.55095899e+00 + 1.54825332e+00 1.54555237e+00 1.54285614e+00 1.54016460e+00 1.53747776e+00 + 1.53479561e+00 1.53211813e+00 1.52944532e+00 1.52677718e+00 1.52411369e+00 + 1.52145484e+00 1.51880063e+00 1.51615105e+00 1.51350609e+00 1.51086575e+00 + 1.50823001e+00 1.50559886e+00 1.50297231e+00 1.50035033e+00 1.49773293e+00 + 1.49512009e+00 1.49251181e+00 1.48990808e+00 1.48730889e+00 1.48471423e+00 + 1.48212410e+00 1.47953849e+00 1.47695738e+00 1.47438077e+00 1.47180866e+00 + 1.46924103e+00 1.46667789e+00 1.46411921e+00 1.46156499e+00 1.45901522e+00 + 1.45646991e+00 1.45392903e+00 1.45139258e+00 1.44886055e+00 1.44633294e+00 + 1.44380974e+00 1.44129094e+00 1.43877653e+00 1.43626650e+00 1.43376085e+00 + 1.43125957e+00 1.42876265e+00 1.42627008e+00 1.42378186e+00 1.42129798e+00 + 1.41881843e+00 1.41634320e+00 1.41387229e+00 1.41140568e+00 1.40894338e+00 + 1.40648536e+00 1.40403164e+00 1.40158219e+00 1.39913701e+00 1.39669609e+00 + 1.39425943e+00 1.39182702e+00 1.38939885e+00 1.38697491e+00 1.38455519e+00 + 1.38213970e+00 1.37972841e+00 1.37732133e+00 1.37491844e+00 1.37251974e+00 + 1.37012522e+00 1.36773488e+00 1.36534870e+00 1.36296668e+00 1.36058881e+00 + 1.35821509e+00 1.35584550e+00 1.35348004e+00 1.35111870e+00 1.34876148e+00 + 1.34640837e+00 1.34405936e+00 1.34171444e+00 1.33937361e+00 1.33703685e+00 + 1.33470417e+00 1.33237555e+00 1.33005099e+00 1.32773048e+00 1.32541401e+00 + 1.32310158e+00 1.32079318e+00 1.31848880e+00 1.31618843e+00 1.31389207e+00 + 1.31159971e+00 1.30931134e+00 1.30702696e+00 1.30474655e+00 1.30247012e+00 + 1.30019766e+00 1.29792915e+00 1.29566459e+00 1.29340397e+00 1.29114730e+00 + 1.28889455e+00 1.28664572e+00 1.28440081e+00 1.28215981e+00 1.27992271e+00 + 1.27768951e+00 1.27546019e+00 1.27323475e+00 1.27101319e+00 1.26879549e+00 + 1.26658166e+00 1.26437168e+00 1.26216554e+00 1.25996324e+00 1.25776478e+00 + 1.25557014e+00 1.25337932e+00 1.25119231e+00 1.24900911e+00 1.24682971e+00 + 1.24465410e+00 1.24248227e+00 1.24031422e+00 1.23814994e+00 1.23598942e+00 + 1.23383267e+00 1.23167966e+00 1.22953040e+00 1.22738487e+00 1.22524308e+00 + 1.22310501e+00 1.22097065e+00 1.21884001e+00 1.21671307e+00 1.21458982e+00 + 1.21247027e+00 1.21035440e+00 1.20824220e+00 1.20613368e+00 1.20402882e+00 + 1.20192762e+00 1.19983006e+00 1.19773615e+00 1.19564588e+00 1.19355924e+00 + 1.19147622e+00 1.18939681e+00 1.18732102e+00 1.18524883e+00 1.18318024e+00 + 1.18111524e+00 1.17905382e+00 1.17699598e+00 1.17494171e+00 1.17289100e+00 + 1.17084385e+00 1.16880025e+00 1.16676020e+00 1.16472368e+00 1.16269069e+00 + 1.16066123e+00 1.15863529e+00 1.15661286e+00 1.15459393e+00 1.15257850e+00 + 1.15056656e+00 1.14855811e+00 1.14655314e+00 1.14455164e+00 1.14255360e+00 + 1.14055902e+00 1.13856790e+00 1.13658022e+00 1.13459599e+00 1.13261518e+00 + 1.13063780e+00 1.12866385e+00 1.12669330e+00 1.12472616e+00 1.12276243e+00 + 1.12080209e+00 1.11884513e+00 1.11689156e+00 1.11494136e+00 1.11299453e+00 + 1.11105106e+00 1.10911094e+00 1.10717418e+00 1.10524076e+00 1.10331067e+00 + 1.10138391e+00 1.09946048e+00 1.09754036e+00 1.09562355e+00 1.09371004e+00 + 1.09179983e+00 1.08989291e+00 1.08798928e+00 1.08608892e+00 1.08419183e+00 + 1.08229801e+00 1.08040745e+00 1.07852014e+00 1.07663607e+00 1.07475524e+00 + 1.07287764e+00 1.07100327e+00 1.06913211e+00 1.06726417e+00 1.06539944e+00 + 1.06353790e+00 1.06167956e+00 1.05982440e+00 1.05797242e+00 1.05612362e+00 + 1.05427798e+00 1.05243550e+00 1.05059618e+00 1.04876000e+00 1.04692697e+00 + 1.04509706e+00 1.04327029e+00 1.04144663e+00 1.03962609e+00 1.03780866e+00 + 1.03599433e+00 1.03418309e+00 1.03237494e+00 1.03056987e+00 1.02876787e+00 + 1.02696894e+00 1.02517308e+00 1.02338026e+00 1.02159050e+00 1.01980377e+00 + 1.01802009e+00 1.01623942e+00 1.01446178e+00 1.01268715e+00 1.01091553e+00 + 1.00914691e+00 1.00738129e+00 1.00561865e+00 1.00385899e+00 1.00210230e+00 + 1.00034859e+00 9.98597826e-01 9.96850019e-01 9.95105158e-01 9.93363237e-01 + 9.91624247e-01 9.89888182e-01 9.88155036e-01 9.86424801e-01 9.84697470e-01 + 9.82973037e-01 9.81251494e-01 9.79532833e-01 9.77817050e-01 9.76104135e-01 + 9.74394082e-01 9.72686884e-01 9.70982534e-01 9.69281024e-01 9.67582348e-01 + 9.65886497e-01 9.64193466e-01 9.62503247e-01 9.60815831e-01 9.59131213e-01 + 9.57449385e-01 9.55770339e-01 9.54094068e-01 9.52420565e-01 9.50749822e-01 + 9.49081831e-01 9.47416586e-01 9.45754078e-01 9.44094301e-01 9.42437246e-01 + 9.40782906e-01 9.39131273e-01 9.37482340e-01 9.35836098e-01 9.34192541e-01 + 9.32551660e-01 9.30913448e-01 9.29277896e-01 9.27644997e-01 9.26014743e-01 + 9.24387126e-01 9.22762138e-01 9.21139771e-01 9.19520016e-01 9.17902866e-01 + 9.16288312e-01 9.14676347e-01 9.13066962e-01 9.11460149e-01 9.09855898e-01 + 9.08254203e-01 9.06655055e-01 9.05058445e-01 9.03464364e-01 9.01872805e-01 + 9.00283757e-01 8.98697214e-01 8.97113166e-01 8.95531604e-01 8.93952519e-01 + 8.92375903e-01 8.90801747e-01 8.89230041e-01 8.87660777e-01 8.86093946e-01 + 8.84529538e-01 8.82967544e-01 8.81407955e-01 8.79850762e-01 8.78295955e-01 + 8.76743525e-01 8.75193462e-01 8.73645756e-01 8.72100399e-01 8.70557380e-01 + 8.69016689e-01 8.67478317e-01 8.65942254e-01 8.64408489e-01 8.62877013e-01 + 8.61347816e-01 8.59820887e-01 8.58296216e-01 8.56773792e-01 8.55253606e-01 + 8.53735646e-01 8.52219903e-01 8.50706365e-01 8.49195021e-01 8.47685862e-01 + 8.46178875e-01 8.44674050e-01 8.43171375e-01 8.41670840e-01 8.40172434e-01 + 8.38676144e-01 8.37181959e-01 8.35689868e-01 8.34199860e-01 8.32711921e-01 + 8.31226041e-01 8.29742208e-01 8.28260409e-01 8.26780632e-01 8.25302865e-01 + 8.23827096e-01 8.22353311e-01 8.20881500e-01 8.19411648e-01 8.17943742e-01 + 8.16477771e-01 8.15013721e-01 8.13551579e-01 8.12091331e-01 8.10632964e-01 + 8.09176465e-01 8.07721819e-01 8.06269013e-01 8.04818034e-01 8.03368867e-01 + 8.01921497e-01 8.00475911e-01 7.99032095e-01 7.97590032e-01 7.96149710e-01 + 7.94711113e-01 7.93274225e-01 7.91839032e-01 7.90405519e-01 7.88973670e-01 + 7.87543469e-01 7.86114901e-01 7.84687949e-01 7.83262598e-01 7.81838832e-01 + 7.80416634e-01 7.78995987e-01 7.77576875e-01 7.76159281e-01 7.74743187e-01 + 7.73328577e-01 7.71915434e-01 7.70503739e-01 7.69093474e-01 7.67684623e-01 + 7.66277166e-01 7.64871086e-01 7.63466364e-01 7.62062981e-01 7.60660918e-01 + 7.59260157e-01 7.57860677e-01 7.56462460e-01 7.55065486e-01 7.53669734e-01 + 7.52275185e-01 7.50881819e-01 7.49489615e-01 7.48098551e-01 7.46708608e-01 + 7.45319764e-01 7.43931997e-01 7.42545287e-01 7.41159610e-01 7.39774945e-01 + 7.38391270e-01 7.37008562e-01 7.35626797e-01 7.34245954e-01 7.32866009e-01 + 7.31486938e-01 7.30108717e-01 7.28731322e-01 7.27354729e-01 7.25978913e-01 + 7.24603850e-01 7.23229514e-01 7.21855879e-01 7.20482921e-01 7.19110613e-01 + 7.17738929e-01 7.16367842e-01 7.14997325e-01 7.13627352e-01 7.12257895e-01 + 7.10888926e-01 7.09520417e-01 7.08152340e-01 7.06784667e-01 7.05417367e-01 + 7.04050413e-01 7.02683774e-01 7.01317421e-01 6.99951322e-01 6.98585449e-01 + 6.97219770e-01 6.95854253e-01 6.94488867e-01 6.93123580e-01 6.91758361e-01 + 6.90393175e-01 6.89027991e-01 6.87662775e-01 6.86297494e-01 6.84932112e-01 + 6.83566597e-01 6.82200913e-01 6.80835024e-01 6.79468897e-01 6.78102493e-01 + 6.76735778e-01 6.75368715e-01 6.74001266e-01 6.72633394e-01 6.71265061e-01 + 6.69896229e-01 6.68526859e-01 6.67156913e-01 6.65786349e-01 6.64415130e-01 + 6.63043213e-01 6.61670559e-01 6.60297127e-01 6.58922874e-01 6.57547758e-01 + 6.56171737e-01 6.54794769e-01 6.53416809e-01 6.52037814e-01 6.50657740e-01 + 6.49276541e-01 6.47894172e-01 6.46510589e-01 6.45125744e-01 6.43739591e-01 + 6.42352084e-01 6.40963173e-01 6.39572812e-01 6.38180952e-01 6.36787543e-01 + 6.35392537e-01 6.33995883e-01 6.32597530e-01 6.31197429e-01 6.29795527e-01 + 6.28391772e-01 6.26986112e-01 6.25578493e-01 6.24168864e-01 6.22757168e-01 + 6.21343352e-01 6.19927361e-01 6.18509139e-01 6.17088630e-01 6.15665778e-01 + 6.14240525e-01 6.12812814e-01 6.11382586e-01 6.09949783e-01 6.08514346e-01 + 6.07076214e-01 6.05635329e-01 6.04191627e-01 6.02745049e-01 6.01295533e-01 + 5.99843016e-01 5.98387434e-01 5.96928726e-01 5.95466826e-01 5.94001669e-01 + 5.92533192e-01 5.91061329e-01 5.89586012e-01 5.88107176e-01 5.86624753e-01 + 5.85138676e-01 5.83648877e-01 5.82155286e-01 5.80657834e-01 5.79156452e-01 + 5.77651069e-01 5.76141614e-01 5.74628017e-01 5.73110204e-01 5.71588105e-01 + 5.70061645e-01 5.68530753e-01 5.66995353e-01 5.65455372e-01 5.63910735e-01 + 5.62361367e-01 5.60807191e-01 5.59248133e-01 5.57684115e-01 5.56115060e-01 + 5.54540891e-01 5.52961531e-01 5.51376899e-01 5.49786919e-01 5.48191511e-01 + 5.46590595e-01 5.44984092e-01 5.43371922e-01 5.41754003e-01 5.40130255e-01 + 5.38500598e-01 5.36864948e-01 5.35223225e-01 5.33575346e-01 5.31921229e-01 + 5.30260792e-01 5.28593951e-01 5.26920623e-01 5.25240726e-01 5.23554175e-01 + 5.21860887e-01 5.20160779e-01 5.18453766e-01 5.16739764e-01 5.15018690e-01 + 5.13290458e-01 5.11554986e-01 5.09812188e-01 5.08061981e-01 5.06304281e-01 + 5.04539002e-01 5.02766062e-01 5.00985377e-01 4.99196862e-01 4.97400434e-01 + 4.95596010e-01 4.93783507e-01 4.91962842e-01 4.90133933e-01 4.88296696e-01 + 4.86451051e-01 4.84596916e-01 4.82734210e-01 4.80862853e-01 4.78982764e-01 + 4.77093865e-01 4.75196076e-01 4.73289320e-01 4.71373519e-01 4.69448596e-01 + 4.67514476e-01 4.65571083e-01 4.63618344e-01 4.61656185e-01 4.59684533e-01 + 4.57703319e-01 4.55712470e-01 4.53711920e-01 4.51701599e-01 4.49681441e-01 + 4.47651381e-01 4.45611356e-01 4.43561302e-01 4.41501158e-01 4.39430866e-01 + 4.37350368e-01 4.35259607e-01 4.33158529e-01 4.31047082e-01 4.28925214e-01 + 4.26792878e-01 4.24650026e-01 4.22496614e-01 4.20332600e-01 4.18157943e-01 + 4.15972606e-01 4.13776552e-01 4.11569750e-01 4.09352169e-01 4.07123781e-01 + 4.04884561e-01 4.02634487e-01 4.00373539e-01 3.98101701e-01 3.95818960e-01 + 3.93525306e-01 3.91220732e-01 3.88905233e-01 3.86578811e-01 3.84241469e-01 + 3.81893212e-01 3.79534053e-01 3.77164006e-01 3.74783088e-01 3.72391322e-01 + 3.69988735e-01 3.67575357e-01 3.65151223e-01 3.62716372e-01 3.60270847e-01 + 3.57814698e-01 3.55347977e-01 3.52870741e-01 3.50383054e-01 3.47884982e-01 + 3.45376598e-01 3.42857980e-01 3.40329210e-01 3.37790377e-01 3.35241576e-01 + 3.32682904e-01 3.30114466e-01 3.27536375e-01 3.24948745e-01 3.22351700e-01 + 3.19745367e-01 3.17129881e-01 3.14505384e-01 3.11872021e-01 3.09229947e-01 + 3.06579321e-01 3.03920309e-01 3.01253084e-01 2.98577826e-01 2.95894721e-01 + 2.93203963e-01 2.90505751e-01 2.87800293e-01 2.85087802e-01 2.82368500e-01 + 2.79642616e-01 2.76910384e-01 2.74172047e-01 2.71427856e-01 2.68678067e-01 + 2.65922946e-01 2.63162764e-01 2.60397802e-01 2.57628345e-01 2.54854688e-01 + 2.52077134e-01 2.49295990e-01 2.46511575e-01 2.43724211e-01 2.40934231e-01 + 2.38141974e-01 2.35347785e-01 2.32552018e-01 2.29755035e-01 2.26957202e-01 + 2.24158896e-01 2.21360498e-01 2.18562398e-01 2.15764992e-01 2.12968683e-01 + 2.10173881e-01 2.07381001e-01 2.04590467e-01 2.01802708e-01 1.99018159e-01 + 1.96237262e-01 1.93460463e-01 1.90688215e-01 1.87920978e-01 1.85159214e-01 + 1.82403393e-01 1.79653988e-01 1.76911478e-01 1.74176346e-01 1.71449078e-01 + 1.68730166e-01 1.66020105e-01 1.63319392e-01 1.60628529e-01 1.57948020e-01 + 1.55278370e-01 1.52620090e-01 1.49973688e-01 1.47339678e-01 1.44718571e-01 + 1.42110882e-01 1.39517125e-01 1.36937815e-01 1.34373464e-01 1.31824585e-01 + 1.29291692e-01 1.26775293e-01 1.24275896e-01 1.21794008e-01 1.19330131e-01 + 1.16884763e-01 1.14458401e-01 1.12051535e-01 1.09664652e-01 1.07298233e-01 + 1.04952752e-01 1.02628679e-01 1.00326477e-01 9.80465996e-02 9.57894954e-02 + 9.35556034e-02 9.13453541e-02 8.91591692e-02 8.69974604e-02 8.48606296e-02 + 8.27490678e-02 8.06631552e-02 7.86032603e-02 7.65697396e-02 7.45629372e-02 + 7.25831842e-02 7.06307984e-02 6.87060837e-02 6.68093301e-02 6.49408125e-02 + 6.31007911e-02 6.12895107e-02 5.95072002e-02 5.77540725e-02 5.60303240e-02 + 5.43361344e-02 5.26716661e-02 5.10370645e-02 4.94324572e-02 4.78579541e-02 + 4.63136469e-02 4.47996091e-02 4.33158961e-02 4.18625443e-02 4.04395719e-02 + 3.90469781e-02 3.76847434e-02 3.63528295e-02 3.50511794e-02 3.37797170e-02 + 3.25383477e-02 3.13269583e-02 3.01454169e-02 2.89935733e-02 2.78712591e-02 + 2.67782878e-02 2.57144551e-02 2.46795395e-02 2.36733018e-02 2.26954864e-02 + 2.17458207e-02 2.08240164e-02 1.99297691e-02 1.90627592e-02 1.82226524e-02 + 1.74090997e-02 1.66217387e-02 1.58601934e-02 1.51240750e-02 1.44129830e-02 + 1.37265047e-02 1.30642170e-02 1.24256863e-02 1.18104693e-02 1.12181139e-02 + 1.06481597e-02 1.01001386e-02 9.57357566e-03 9.06798994e-03 8.58289491e-03 + 8.11779939e-03 7.67220821e-03 7.24562293e-03 6.83754260e-03 6.44746449e-03 + 6.07488475e-03 5.71929920e-03 5.38020397e-03 5.05709623e-03 4.74947488e-03 + 4.45684120e-03 4.17869948e-03 3.91455770e-03 3.66392815e-03 3.42632795e-03 + 3.20127973e-03 2.98831211e-03 2.78696025e-03 2.59676634e-03 2.41728009e-03 + 2.24805918e-03 2.08866967e-03 1.93868637e-03 1.79769324e-03 1.66528371e-03 + 1.54106094e-03 1.42463814e-03 1.31563879e-03 1.21369684e-03 1.11845687e-03 + 1.02957427e-03 9.46715341e-04 8.69557372e-04 7.97788699e-04 7.31108735e-04 + 6.69227965e-04 6.11867923e-04 5.58761133e-04 5.09651031e-04 4.64291866e-04 + 4.22448569e-04 3.83896609e-04 3.48421824e-04 3.15820237e-04 2.85897853e-04 + 2.58470437e-04 2.33363282e-04 2.10410963e-04 1.89457075e-04 1.70353970e-04 + 1.52962472e-04 1.37151601e-04 1.22798276e-04 1.09787020e-04 9.80096661e-05 + 8.73650533e-05 7.77587264e-05 6.91026357e-05 6.13148375e-05 5.43191980e-05 + 4.80451002e-05 4.24271553e-05 3.74049201e-05 3.29226193e-05 2.89288760e-05 + 2.53764482e-05 2.22219741e-05 1.94257256e-05 1.69513701e-05 1.47657424e-05 + 1.28386246e-05 1.11425370e-05 9.65253704e-06 8.34602949e-06 7.20258529e-06 + 6.20377051e-06 5.33298481e-06 4.57530930e-06 3.91736368e-06 3.34717241e-06 + 2.85403968e-06 2.42843291e-06 2.06187442e-06 1.74684104e-06 1.47667131e-06 + 1.24547984e-06 1.04807854e-06 8.79904460e-07 7.36953603e-07 6.15720668e-07 + 5.13144134e-07 4.26556442e-07 3.53638890e-07 2.92380919e-07 2.41043461e-07 + 1.98126025e-07 1.62337233e-07 1.32568519e-07 1.07870701e-07 8.74331951e-08 + 7.05656042e-08 5.66814737e-08 4.52839905e-08 3.59534344e-08 2.83361988e-08 + 2.21352123e-08 1.71016087e-08 1.30275039e-08 9.73975193e-09 7.09456503e-09 + 4.97289096e-09 3.27645509e-09 1.92438159e-09 8.50318607e-10 0.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 + 4.53389467e-02 4.53327431e-02 4.53265031e-02 4.53202265e-02 4.53139129e-02 + 4.53075623e-02 4.53011743e-02 4.52947488e-02 4.52882855e-02 4.52817842e-02 + 4.52752446e-02 4.52686667e-02 4.52620500e-02 4.52553944e-02 4.52486996e-02 + 4.52419655e-02 4.52351917e-02 4.52283781e-02 4.52215244e-02 4.52146304e-02 + 4.52076958e-02 4.52007205e-02 4.51937041e-02 4.51866464e-02 4.51795473e-02 + 4.51724064e-02 4.51652235e-02 4.51579983e-02 4.51507307e-02 4.51434204e-02 + 4.51360671e-02 4.51286707e-02 4.51212307e-02 4.51137471e-02 4.51062196e-02 + 4.50986478e-02 4.50910316e-02 4.50833707e-02 4.50756649e-02 4.50679139e-02 + 4.50601174e-02 4.50522752e-02 4.50443871e-02 4.50364528e-02 4.50284720e-02 + 4.50204445e-02 4.50123701e-02 4.50042484e-02 4.49960792e-02 4.49878623e-02 + 4.49795973e-02 4.49712841e-02 4.49629224e-02 4.49545118e-02 4.49460523e-02 + 4.49375433e-02 4.49289849e-02 4.49203765e-02 4.49117180e-02 4.49030092e-02 + 4.48942497e-02 4.48854393e-02 4.48765777e-02 4.48676646e-02 4.48586999e-02 + 4.48496831e-02 4.48406140e-02 4.48314924e-02 4.48223180e-02 4.48130905e-02 + 4.48038096e-02 4.47944750e-02 4.47850866e-02 4.47756439e-02 4.47661468e-02 + 4.47565949e-02 4.47469880e-02 4.47373257e-02 4.47276079e-02 4.47178342e-02 + 4.47080043e-02 4.46981180e-02 4.46881749e-02 4.46781749e-02 4.46681175e-02 + 4.46580026e-02 4.46478297e-02 4.46375987e-02 4.46273093e-02 4.46169612e-02 + 4.46065540e-02 4.45960875e-02 4.45855613e-02 4.45749753e-02 4.45643291e-02 + 4.45536224e-02 4.45428550e-02 4.45320264e-02 4.45211365e-02 4.45101850e-02 + 4.44991714e-02 4.44880957e-02 4.44769573e-02 4.44657562e-02 4.44544918e-02 + 4.44431640e-02 4.44317725e-02 4.44203169e-02 4.44087970e-02 4.43972124e-02 + 4.43855629e-02 4.43738481e-02 4.43620678e-02 4.43502215e-02 4.43383091e-02 + 4.43263303e-02 4.43142846e-02 4.43021719e-02 4.42899917e-02 4.42777439e-02 + 4.42654280e-02 4.42530439e-02 4.42405911e-02 4.42280693e-02 4.42154783e-02 + 4.42028178e-02 4.41900873e-02 4.41772867e-02 4.41644156e-02 4.41514736e-02 + 4.41384606e-02 4.41253761e-02 4.41122198e-02 4.40989915e-02 4.40856908e-02 + 4.40723174e-02 4.40588709e-02 4.40453512e-02 4.40317577e-02 4.40180903e-02 + 4.40043486e-02 4.39905323e-02 4.39766411e-02 4.39626746e-02 4.39486326e-02 + 4.39345146e-02 4.39203205e-02 4.39060498e-02 4.38917023e-02 4.38772775e-02 + 4.38627753e-02 4.38481953e-02 4.38335371e-02 4.38188004e-02 4.38039850e-02 + 4.37890904e-02 4.37741163e-02 4.37590625e-02 4.37439286e-02 4.37287143e-02 + 4.37134192e-02 4.36980431e-02 4.36825855e-02 4.36670463e-02 4.36514249e-02 + 4.36357212e-02 4.36199347e-02 4.36040652e-02 4.35881124e-02 4.35720758e-02 + 4.35559552e-02 4.35397502e-02 4.35234605e-02 4.35070859e-02 4.34906258e-02 + 4.34740801e-02 4.34574484e-02 4.34407303e-02 4.34239256e-02 4.34070338e-02 + 4.33900547e-02 4.33729879e-02 4.33558331e-02 4.33385900e-02 4.33212582e-02 + 4.33038375e-02 4.32863273e-02 4.32687276e-02 4.32510378e-02 4.32332577e-02 + 4.32153869e-02 4.31974251e-02 4.31793720e-02 4.31612273e-02 4.31429905e-02 + 4.31246614e-02 4.31062396e-02 4.30877249e-02 4.30691168e-02 4.30504150e-02 + 4.30316193e-02 4.30127292e-02 4.29937444e-02 4.29746647e-02 4.29554896e-02 + 4.29362189e-02 4.29168521e-02 4.28973890e-02 4.28778293e-02 4.28581725e-02 + 4.28384184e-02 4.28185667e-02 4.27986170e-02 4.27785689e-02 4.27584221e-02 + 4.27381764e-02 4.27178313e-02 4.26973866e-02 4.26768419e-02 4.26561968e-02 + 4.26354511e-02 4.26146044e-02 4.25936564e-02 4.25726067e-02 4.25514551e-02 + 4.25302011e-02 4.25088445e-02 4.24873849e-02 4.24658221e-02 4.24441555e-02 + 4.24223851e-02 4.24005103e-02 4.23785309e-02 4.23564466e-02 4.23342569e-02 + 4.23119617e-02 4.22895605e-02 4.22670531e-02 4.22444391e-02 4.22217182e-02 + 4.21988901e-02 4.21759543e-02 4.21529107e-02 4.21297589e-02 4.21064986e-02 + 4.20831293e-02 4.20596509e-02 4.20360630e-02 4.20123653e-02 4.19885574e-02 + 4.19646390e-02 4.19406099e-02 4.19164696e-02 4.18922179e-02 4.18678544e-02 + 4.18433789e-02 4.18187910e-02 4.17940904e-02 4.17692767e-02 4.17443498e-02 + 4.17193091e-02 4.16941545e-02 4.16688856e-02 4.16435022e-02 4.16180038e-02 + 4.15923902e-02 4.15666610e-02 4.15408160e-02 4.15148549e-02 4.14887773e-02 + 4.14625829e-02 4.14362715e-02 4.14098427e-02 4.13832961e-02 4.13566316e-02 + 4.13298488e-02 4.13029474e-02 4.12759271e-02 4.12487876e-02 4.12215285e-02 + 4.11941497e-02 4.11666507e-02 4.11390314e-02 4.11112913e-02 4.10834303e-02 + 4.10554479e-02 4.10273440e-02 4.09991182e-02 4.09707702e-02 4.09422997e-02 + 4.09137065e-02 4.08849902e-02 4.08561507e-02 4.08271875e-02 4.07981003e-02 + 4.07688890e-02 4.07395533e-02 4.07100927e-02 4.06805072e-02 4.06507963e-02 + 4.06209598e-02 4.05909974e-02 4.05609089e-02 4.05306940e-02 4.05003523e-02 + 4.04698837e-02 4.04392878e-02 4.04085645e-02 4.03777133e-02 4.03467341e-02 + 4.03156265e-02 4.02843904e-02 4.02530254e-02 4.02215313e-02 4.01899078e-02 + 4.01581547e-02 4.01262717e-02 4.00942586e-02 4.00621150e-02 4.00298408e-02 + 3.99974357e-02 3.99648994e-02 3.99322317e-02 3.98994324e-02 3.98665011e-02 + 3.98334377e-02 3.98002419e-02 3.97669134e-02 3.97334521e-02 3.96998576e-02 + 3.96661298e-02 3.96322684e-02 3.95982732e-02 3.95641439e-02 3.95298803e-02 + 3.94954822e-02 3.94609494e-02 3.94262816e-02 3.93914786e-02 3.93565402e-02 + 3.93214662e-02 3.92862563e-02 3.92509103e-02 3.92154280e-02 3.91798093e-02 + 3.91440538e-02 3.91081615e-02 3.90721319e-02 3.90359651e-02 3.89996607e-02 + 3.89632186e-02 3.89266386e-02 3.88899204e-02 3.88530638e-02 3.88160688e-02 + 3.87789350e-02 3.87416623e-02 3.87042506e-02 3.86666995e-02 3.86290090e-02 + 3.85911788e-02 3.85532089e-02 3.85150989e-02 3.84768487e-02 3.84384581e-02 + 3.83999271e-02 3.83612553e-02 3.83224427e-02 3.82834891e-02 3.82443943e-02 + 3.82051581e-02 3.81657804e-02 3.81262611e-02 3.80865999e-02 3.80467968e-02 + 3.80068516e-02 3.79667641e-02 3.79265342e-02 3.78861617e-02 3.78456466e-02 + 3.78049886e-02 3.77641877e-02 3.77232437e-02 3.76821564e-02 3.76409259e-02 + 3.75995518e-02 3.75580342e-02 3.75163728e-02 3.74745676e-02 3.74326184e-02 + 3.73905252e-02 3.73482878e-02 3.73059062e-02 3.72633801e-02 3.72207096e-02 + 3.71778945e-02 3.71349347e-02 3.70918301e-02 3.70485807e-02 3.70051863e-02 + 3.69616469e-02 3.69179623e-02 3.68741326e-02 3.68301575e-02 3.67860371e-02 + 3.67417713e-02 3.66973599e-02 3.66528030e-02 3.66081005e-02 3.65632522e-02 + 3.65182582e-02 3.64731184e-02 3.64278328e-02 3.63824012e-02 3.63368237e-02 + 3.62911002e-02 3.62452306e-02 3.61992149e-02 3.61530532e-02 3.61067453e-02 + 3.60602912e-02 3.60136909e-02 3.59669443e-02 3.59200516e-02 3.58730125e-02 + 3.58258272e-02 3.57784956e-02 3.57310177e-02 3.56833935e-02 3.56356230e-02 + 3.55877062e-02 3.55396431e-02 3.54914338e-02 3.54430781e-02 3.53945762e-02 + 3.53459280e-02 3.52971336e-02 3.52481930e-02 3.51991062e-02 3.51498733e-02 + 3.51004943e-02 3.50509692e-02 3.50012980e-02 3.49514809e-02 3.49015179e-02 + 3.48514089e-02 3.48011541e-02 3.47507535e-02 3.47002072e-02 3.46495153e-02 + 3.45986777e-02 3.45476946e-02 3.44965661e-02 3.44452923e-02 3.43938731e-02 + 3.43423087e-02 3.42905992e-02 3.42387447e-02 3.41867453e-02 3.41346010e-02 + 3.40823120e-02 3.40298784e-02 3.39773003e-02 3.39245778e-02 3.38717110e-02 + 3.38187000e-02 3.37655450e-02 3.37122461e-02 3.36588033e-02 3.36052170e-02 + 3.35514871e-02 3.34976139e-02 3.34435974e-02 3.33894379e-02 3.33351355e-02 + 3.32806903e-02 3.32261025e-02 3.31713722e-02 3.31164997e-02 3.30614851e-02 + 3.30063285e-02 3.29510303e-02 3.28955904e-02 3.28400092e-02 3.27842868e-02 + 3.27284234e-02 3.26724192e-02 3.26162745e-02 3.25599893e-02 3.25035640e-02 + 3.24469987e-02 3.23902937e-02 3.23334492e-02 3.22764654e-02 3.22193425e-02 + 3.21620807e-02 3.21046804e-02 3.20471418e-02 3.19894650e-02 3.19316504e-02 + 3.18736982e-02 3.18156086e-02 3.17573819e-02 3.16990185e-02 3.16405184e-02 + 3.15818821e-02 3.15231098e-02 3.14642018e-02 3.14051584e-02 3.13459798e-02 + 3.12866664e-02 3.12272184e-02 3.11676362e-02 3.11079200e-02 3.10480702e-02 + 3.09880871e-02 3.09279709e-02 3.08677221e-02 3.08073410e-02 3.07468278e-02 + 3.06861830e-02 3.06254068e-02 3.05644996e-02 3.05034617e-02 3.04422935e-02 + 3.03809954e-02 3.03195677e-02 3.02580108e-02 3.01963250e-02 3.01345108e-02 + 3.00725684e-02 3.00104983e-02 2.99483009e-02 2.98859765e-02 2.98235255e-02 + 2.97609484e-02 2.96982456e-02 2.96354174e-02 2.95724642e-02 2.95093865e-02 + 2.94461848e-02 2.93828593e-02 2.93194106e-02 2.92558390e-02 2.91921451e-02 + 2.91283292e-02 2.90643919e-02 2.90003335e-02 2.89361544e-02 2.88718553e-02 + 2.88074364e-02 2.87428984e-02 2.86782416e-02 2.86134665e-02 2.85485737e-02 + 2.84835636e-02 2.84184366e-02 2.83531933e-02 2.82878342e-02 2.82223598e-02 + 2.81567706e-02 2.80910670e-02 2.80252497e-02 2.79593190e-02 2.78932756e-02 + 2.78271200e-02 2.77608527e-02 2.76944743e-02 2.76279852e-02 2.75613861e-02 + 2.74946774e-02 2.74278597e-02 2.73609337e-02 2.72938997e-02 2.72267585e-02 + 2.71595106e-02 2.70921565e-02 2.70246969e-02 2.69571323e-02 2.68894633e-02 + 2.68216905e-02 2.67538145e-02 2.66858359e-02 2.66177553e-02 2.65495734e-02 + 2.64812906e-02 2.64129077e-02 2.63444253e-02 2.62758439e-02 2.62071643e-02 + 2.61383871e-02 2.60695128e-02 2.60005422e-02 2.59314759e-02 2.58623146e-02 + 2.57930588e-02 2.57237094e-02 2.56542668e-02 2.55847319e-02 2.55151052e-02 + 2.54453875e-02 2.53755794e-02 2.53056817e-02 2.52356950e-02 2.51656200e-02 + 2.50954574e-02 2.50252079e-02 2.49548723e-02 2.48844512e-02 2.48139453e-02 + 2.47433555e-02 2.46726823e-02 2.46019266e-02 2.45310890e-02 2.44601704e-02 + 2.43891714e-02 2.43180928e-02 2.42469353e-02 2.41756998e-02 2.41043869e-02 + 2.40329974e-02 2.39615321e-02 2.38899918e-02 2.38183773e-02 2.37466892e-02 + 2.36749285e-02 2.36030958e-02 2.35311920e-02 2.34592179e-02 2.33871743e-02 + 2.33150620e-02 2.32428818e-02 2.31706345e-02 2.30983209e-02 2.30259418e-02 + 2.29534982e-02 2.28809907e-02 2.28084202e-02 2.27357877e-02 2.26630938e-02 + 2.25903395e-02 2.25175256e-02 2.24446529e-02 2.23717224e-02 2.22987349e-02 + 2.22256912e-02 2.21525922e-02 2.20794387e-02 2.20062318e-02 2.19329721e-02 + 2.18596607e-02 2.17862985e-02 2.17128862e-02 2.16394248e-02 2.15659152e-02 + 2.14923583e-02 2.14187550e-02 2.13451062e-02 2.12714129e-02 2.11976759e-02 + 2.11238962e-02 2.10500747e-02 2.09762124e-02 2.09023101e-02 2.08283688e-02 + 2.07543894e-02 2.06803729e-02 2.06063203e-02 2.05322324e-02 2.04581103e-02 + 2.03839549e-02 2.03097671e-02 2.02355480e-02 2.01612984e-02 2.00870195e-02 + 2.00127120e-02 1.99383771e-02 1.98640157e-02 1.97896288e-02 1.97152174e-02 + 1.96407825e-02 1.95663250e-02 1.94918460e-02 1.94173465e-02 1.93428275e-02 + 1.92682899e-02 1.91937349e-02 1.91191634e-02 1.90445765e-02 1.89699751e-02 + 1.88953603e-02 1.88207331e-02 1.87460946e-02 1.86714458e-02 1.85967877e-02 + 1.85221214e-02 1.84474479e-02 1.83727683e-02 1.82980836e-02 1.82233949e-02 + 1.81487032e-02 1.80740096e-02 1.79993152e-02 1.79246210e-02 1.78499281e-02 + 1.77752375e-02 1.77005504e-02 1.76258678e-02 1.75511908e-02 1.74765205e-02 + 1.74018580e-02 1.73272043e-02 1.72525605e-02 1.71779279e-02 1.71033073e-02 + 1.70287000e-02 1.69541070e-02 1.68795295e-02 1.68049686e-02 1.67304253e-02 + 1.66559008e-02 1.65813962e-02 1.65069126e-02 1.64324512e-02 1.63580130e-02 + 1.62835992e-02 1.62092109e-02 1.61348493e-02 1.60605154e-02 1.59862105e-02 + 1.59119355e-02 1.58376918e-02 1.57634804e-02 1.56893025e-02 1.56151592e-02 + 1.55410517e-02 1.54669811e-02 1.53929486e-02 1.53189553e-02 1.52450023e-02 + 1.51710909e-02 1.50972223e-02 1.50233975e-02 1.49496177e-02 1.48758841e-02 + 1.48021979e-02 1.47285602e-02 1.46549722e-02 1.45814351e-02 1.45079501e-02 + 1.44345183e-02 1.43611409e-02 1.42878191e-02 1.42145541e-02 1.41413471e-02 + 1.40681992e-02 1.39951117e-02 1.39220856e-02 1.38491223e-02 1.37762230e-02 + 1.37033887e-02 1.36306207e-02 1.35579202e-02 1.34852884e-02 1.34127265e-02 + 1.33402357e-02 1.32678172e-02 1.31954721e-02 1.31232018e-02 1.30510074e-02 + 1.29788901e-02 1.29068512e-02 1.28348917e-02 1.27630130e-02 1.26912163e-02 + 1.26195027e-02 1.25478735e-02 1.24763299e-02 1.24048731e-02 1.23335043e-02 + 1.22622247e-02 1.21910356e-02 1.21199382e-02 1.20489337e-02 1.19780233e-02 + 1.19072082e-02 1.18364896e-02 1.17658689e-02 1.16953471e-02 1.16249256e-02 + 1.15546055e-02 1.14843880e-02 1.14142745e-02 1.13442661e-02 1.12743640e-02 + 1.12045694e-02 1.11348837e-02 1.10653080e-02 1.09958435e-02 1.09264915e-02 + 1.08572532e-02 1.07881298e-02 1.07191225e-02 1.06502326e-02 1.05814614e-02 + 1.05128099e-02 1.04442795e-02 1.03758714e-02 1.03075868e-02 1.02394270e-02 + 1.01713931e-02 1.01034863e-02 1.00357080e-02 9.96805938e-03 9.90054159e-03 + 9.83315588e-03 9.76590349e-03 9.69878565e-03 9.63180356e-03 9.56495846e-03 + 9.49825158e-03 9.43168412e-03 9.36525732e-03 9.29897239e-03 9.23283056e-03 + 9.16683304e-03 9.10098106e-03 9.03527584e-03 8.96971858e-03 8.90431051e-03 + 8.83905284e-03 8.77394680e-03 8.70899358e-03 8.64419441e-03 8.57955050e-03 + 8.51506306e-03 8.45073329e-03 8.38656242e-03 8.32255164e-03 8.25870216e-03 + 8.19501519e-03 8.13149193e-03 8.06813358e-03 8.00494135e-03 7.94191644e-03 + 7.87906004e-03 7.81637336e-03 7.75385758e-03 7.69151390e-03 7.62934352e-03 + 7.56734762e-03 7.50552740e-03 7.44388405e-03 7.38241874e-03 7.32113267e-03 + 7.26002701e-03 7.19910295e-03 7.13836168e-03 7.07780435e-03 7.01743216e-03 + 6.95724627e-03 6.89724785e-03 6.83743808e-03 6.77781812e-03 6.71838914e-03 + 6.65915230e-03 6.60010876e-03 6.54125968e-03 6.48260622e-03 6.42414954e-03 + 6.36589077e-03 6.30783108e-03 6.24997161e-03 6.19231351e-03 6.13485792e-03 + 6.07760598e-03 6.02055882e-03 5.96371759e-03 5.90708341e-03 5.85065741e-03 + 5.79444073e-03 5.73843448e-03 5.68263980e-03 5.62705779e-03 5.57168957e-03 + 5.51653626e-03 5.46159897e-03 5.40687880e-03 5.35237687e-03 5.29809427e-03 + 5.24403210e-03 5.19019145e-03 5.13657343e-03 5.08317911e-03 5.03000960e-03 + 4.97706596e-03 4.92434928e-03 4.87186064e-03 4.81960110e-03 4.76757175e-03 + 4.71577365e-03 4.66420785e-03 4.61287543e-03 4.56177744e-03 4.51091492e-03 + 4.46028894e-03 4.40990054e-03 4.35975075e-03 4.30984062e-03 4.26017119e-03 + 4.21074348e-03 4.16155853e-03 4.11261735e-03 4.06392097e-03 4.01547041e-03 + 3.96726667e-03 3.91931077e-03 3.87160371e-03 3.82414649e-03 3.77694011e-03 + 3.72998556e-03 3.68328384e-03 3.63683592e-03 3.59064278e-03 3.54470541e-03 + 3.49902478e-03 3.45360184e-03 3.40843758e-03 3.36353294e-03 3.31888889e-03 + 3.27450637e-03 3.23038633e-03 3.18652971e-03 3.14293745e-03 3.09961049e-03 + 3.05654975e-03 3.01375616e-03 2.97123063e-03 2.92897409e-03 2.88698744e-03 + 2.84527159e-03 2.80382744e-03 2.76265588e-03 2.72175782e-03 2.68113413e-03 + 2.64078570e-03 2.60071340e-03 2.56091812e-03 2.52140071e-03 2.48216204e-03 + 2.44320296e-03 2.40452434e-03 2.36612702e-03 2.32801183e-03 2.29017962e-03 + 2.25263123e-03 2.21536748e-03 2.17838918e-03 2.14169717e-03 2.10529225e-03 + 2.06917522e-03 2.03334690e-03 1.99780807e-03 1.96255953e-03 1.92760207e-03 + 1.89293646e-03 1.85856348e-03 1.82448389e-03 1.79069847e-03 1.75720797e-03 + 1.72401315e-03 1.69111475e-03 1.65851352e-03 1.62621019e-03 1.59420549e-03 + 1.56250015e-03 1.53109488e-03 1.49999041e-03 1.46918745e-03 1.43868668e-03 + 1.40848882e-03 1.37859455e-03 1.34900456e-03 1.31971952e-03 1.29074012e-03 + 1.26206701e-03 1.23370087e-03 1.20564235e-03 1.17789209e-03 1.15045075e-03 + 1.12331895e-03 1.09649735e-03 1.06998655e-03 1.04378718e-03 1.01789986e-03 + 9.92325188e-04 9.67063773e-04 9.42116210e-04 9.17483089e-04 8.93164993e-04 + 8.69162499e-04 8.45476180e-04 8.22106600e-04 7.99054319e-04 7.76319888e-04 + 7.53903856e-04 7.31806761e-04 7.10029137e-04 6.88571513e-04 6.67434408e-04 + 6.46618339e-04 6.26123813e-04 6.05951333e-04 5.86101393e-04 5.66574484e-04 + 5.47371087e-04 5.28491680e-04 5.09936731e-04 4.91706704e-04 4.73802056e-04 + 4.56223237e-04 4.38970690e-04 4.22044853e-04 4.05446155e-04 3.89175022e-04 + 3.73231869e-04 3.57617108e-04 3.42331143e-04 3.27374371e-04 3.12747182e-04 + 2.98449961e-04 2.84483085e-04 2.70846924e-04 2.57541843e-04 2.44568198e-04 + 2.31926339e-04 2.19616611e-04 2.07639350e-04 1.95994886e-04 1.84683542e-04 + 1.73705635e-04 1.63061474e-04 1.52751363e-04 1.42775596e-04 1.33134463e-04 + 1.23828246e-04 1.14857221e-04 1.06221656e-04 9.79218126e-05 8.99579451e-05 + 8.23303015e-05 7.50391226e-05 6.80846422e-05 6.14670874e-05 5.51866780e-05 + 4.92436271e-05 4.36381409e-05 3.83704183e-05 3.34406516e-05 2.88490259e-05 + 2.45957193e-05 2.06809031e-05 1.71047413e-05 1.38673912e-05 1.09690028e-05 + 8.40971934e-06 6.18967683e-06 4.30900435e-06 2.76782395e-06 1.56625059e-06 + 7.04392234e-07 1.82349766e-07 2.17034037e-10 1.58080827e-07 6.56020874e-07 + 1.49410985e-06 2.67241335e-06 4.19098991e-06 6.04989101e-06 8.24916105e-06 + 1.07888373e-05 1.36689501e-05 1.68895226e-05 2.04505708e-05 2.43521039e-05 + 2.85941236e-05 3.31766250e-05 3.80995957e-05 4.33630165e-05 4.89668610e-05 + 5.49110958e-05 6.11956802e-05 6.78205668e-05 7.47857008e-05 8.20910205e-05 + 8.97364570e-05 9.77219344e-05 1.06047370e-04 1.14712673e-04 1.23717748e-04 + 1.33062489e-04 1.42746785e-04 1.52770519e-04 1.63133565e-04 1.73835790e-04 + 1.84877056e-04 1.96257216e-04 2.07976116e-04 2.20033596e-04 2.32429488e-04 + 2.45163619e-04 2.58235806e-04 2.71645861e-04 2.85393588e-04 2.99478785e-04 + 3.13901243e-04 3.28660745e-04 3.43757067e-04 3.59189980e-04 3.74959246e-04 + 3.91064620e-04 4.07505852e-04 4.24282683e-04 4.41394848e-04 4.58842075e-04 + 4.76624086e-04 4.94740595e-04 5.13191308e-04 5.31975927e-04 5.51094145e-04 + 5.70545649e-04 5.90330119e-04 6.10447228e-04 6.30896641e-04 6.51678020e-04 + 6.72791016e-04 6.94235275e-04 7.16010436e-04 7.38116133e-04 7.60551989e-04 + 7.83317625e-04 8.06412652e-04 8.29836676e-04 8.53589295e-04 8.77670102e-04 + 9.02078682e-04 9.26814614e-04 9.51877469e-04 9.77266814e-04 1.00298221e-03 + 1.02902320e-03 1.05538934e-03 1.08208017e-03 1.10909521e-03 1.13643400e-03 + 1.16409605e-03 1.19208087e-03 1.22038798e-03 1.24901688e-03 1.27796705e-03 + 1.30723798e-03 1.33682916e-03 1.36674006e-03 1.39697014e-03 1.42751887e-03 + 1.45838571e-03 1.48957010e-03 1.52107149e-03 1.55288931e-03 1.58502299e-03 + 1.61747195e-03 1.65023562e-03 1.68331340e-03 1.71670471e-03 1.75040893e-03 + 1.78442547e-03 1.81875370e-03 1.85339302e-03 1.88834278e-03 1.92360237e-03 + 1.95917115e-03 1.99504847e-03 2.03123368e-03 2.06772612e-03 2.10452514e-03 + 2.14163007e-03 2.17904023e-03 2.21675494e-03 2.25477353e-03 2.29309529e-03 + 2.33171954e-03 2.37064556e-03 2.40987266e-03 2.44940011e-03 2.48922720e-03 + 2.52935320e-03 2.56977738e-03 2.61049901e-03 2.65151733e-03 2.69283161e-03 + 2.73444108e-03 2.77634500e-03 2.81854259e-03 2.86103308e-03 2.90381571e-03 + 2.94688968e-03 2.99025421e-03 3.03390851e-03 3.07785179e-03 3.12208323e-03 + 3.16660203e-03 3.21140738e-03 3.25649846e-03 3.30187444e-03 3.34753450e-03 + 3.39347780e-03 3.43970351e-03 3.48621077e-03 3.53299874e-03 3.58006656e-03 + 3.62741337e-03 3.67503832e-03 3.72294052e-03 3.77111911e-03 3.81957320e-03 + 3.86830191e-03 3.91730435e-03 3.96657963e-03 4.01612685e-03 4.06594510e-03 + 4.11603347e-03 4.16639106e-03 4.21701694e-03 4.26791019e-03 4.31906988e-03 + 4.37049509e-03 4.42218487e-03 4.47413829e-03 4.52635439e-03 4.57883223e-03 + 4.63157086e-03 4.68456931e-03 4.73782663e-03 4.79134184e-03 4.84511397e-03 + 4.89914205e-03 4.95342510e-03 5.00796213e-03 5.06275215e-03 5.11779417e-03 + 5.17308719e-03 5.22863021e-03 5.28442223e-03 5.34046224e-03 5.39674921e-03 + 5.45328215e-03 5.51006002e-03 5.56708180e-03 5.62434646e-03 5.68185296e-03 + 5.73960028e-03 5.79758737e-03 5.85581318e-03 5.91427668e-03 5.97297680e-03 + 6.03191249e-03 6.09108270e-03 6.15048635e-03 6.21012239e-03 6.26998975e-03 + 6.33008735e-03 6.39041412e-03 6.45096897e-03 6.51175083e-03 6.57275861e-03 + 6.63399121e-03 6.69544755e-03 6.75712653e-03 6.81902705e-03 6.88114800e-03 + 6.94348829e-03 7.00604680e-03 7.06882243e-03 7.13181405e-03 7.19502055e-03 + 7.25844081e-03 7.32207370e-03 7.38591811e-03 7.44997289e-03 7.51423692e-03 + 7.57870906e-03 7.64338818e-03 7.70827314e-03 7.77336279e-03 7.83865598e-03 + 7.90415157e-03 7.96984842e-03 8.03574535e-03 8.10184123e-03 8.16813489e-03 + 8.23462517e-03 8.30131091e-03 8.36819094e-03 8.43526409e-03 8.50252920e-03 + 8.56998510e-03 8.63763060e-03 8.70546454e-03 8.77348574e-03 8.84169300e-03 + 8.91008516e-03 8.97866103e-03 9.04741942e-03 9.11635914e-03 9.18547900e-03 + 9.25477781e-03 9.32425437e-03 9.39390750e-03 9.46373598e-03 9.53373863e-03 + 9.60391424e-03 9.67426160e-03 9.74477953e-03 9.81546680e-03 9.88632220e-03 + 9.95734455e-03 1.00285326e-02 1.00998852e-02 1.01714010e-02 1.02430790e-02 + 1.03149178e-02 1.03869163e-02 1.04590732e-02 1.05313873e-02 1.06038573e-02 + 1.06764822e-02 1.07492606e-02 1.08221913e-02 1.08952731e-02 1.09685048e-02 + 1.10418851e-02 1.11154129e-02 1.11890868e-02 1.12629056e-02 1.13368682e-02 + 1.14109733e-02 1.14852196e-02 1.15596060e-02 1.16341311e-02 1.17087939e-02 + 1.17835929e-02 1.18585270e-02 1.19335950e-02 1.20087956e-02 1.20841275e-02 + 1.21595896e-02 1.22351806e-02 1.23108993e-02 1.23867443e-02 1.24627146e-02 + 1.25388088e-02 1.26150258e-02 1.26913641e-02 1.27678228e-02 1.28444004e-02 + 1.29210957e-02 1.29979076e-02 1.30748347e-02 1.31518759e-02 1.32290298e-02 + 1.33062953e-02 1.33836711e-02 1.34611560e-02 1.35387487e-02 1.36164479e-02 + 1.36942526e-02 1.37721613e-02 1.38501730e-02 1.39282862e-02 1.40064999e-02 + 1.40848127e-02 1.41632235e-02 1.42417309e-02 1.43203338e-02 1.43990309e-02 + 1.44778210e-02 1.45567029e-02 1.46356752e-02 1.47147369e-02 1.47938866e-02 + 1.48731231e-02 1.49524452e-02 1.50318517e-02 1.51113413e-02 1.51909129e-02 + 1.52705651e-02 1.53502967e-02 1.54301066e-02 1.55099935e-02 1.55899562e-02 + 1.56699935e-02 1.57501041e-02 1.58302868e-02 1.59105404e-02 1.59908637e-02 + 1.60712555e-02 1.61517145e-02 1.62322396e-02 1.63128295e-02 1.63934830e-02 + 1.64741990e-02 1.65549761e-02 1.66358133e-02 1.67167092e-02 1.67976627e-02 + 1.68786727e-02 1.69597378e-02 1.70408569e-02 1.71220288e-02 1.72032523e-02 + 1.72845263e-02 1.73658494e-02 1.74472205e-02 1.75286385e-02 1.76101022e-02 + 1.76916103e-02 1.77731617e-02 1.78547552e-02 1.79363896e-02 1.80180638e-02 + 1.80997765e-02 1.81815267e-02 1.82633131e-02 1.83451345e-02 1.84269898e-02 + 1.85088779e-02 1.85907975e-02 1.86727476e-02 1.87547269e-02 1.88367342e-02 + 1.89187685e-02 1.90008287e-02 1.90829134e-02 1.91650216e-02 1.92471522e-02 + 1.93293040e-02 1.94114759e-02 1.94936667e-02 1.95758753e-02 1.96581005e-02 + 1.97403413e-02 1.98225965e-02 1.99048650e-02 1.99871456e-02 2.00694373e-02 + 2.01517389e-02 2.02340493e-02 2.03163675e-02 2.03986922e-02 2.04810224e-02 + 2.05633570e-02 2.06456948e-02 2.07280349e-02 2.08103760e-02 2.08927172e-02 + 2.09750572e-02 2.10573951e-02 2.11397297e-02 2.12220600e-02 2.13043849e-02 + 2.13867032e-02 2.14690140e-02 2.15513162e-02 2.16336087e-02 2.17158904e-02 + 2.17981604e-02 2.18804174e-02 2.19626605e-02 2.20448887e-02 2.21271008e-02 + 2.22092959e-02 2.22914729e-02 2.23736307e-02 2.24557683e-02 2.25378848e-02 + 2.26199790e-02 2.27020500e-02 2.27840967e-02 2.28661181e-02 2.29481132e-02 + 2.30300810e-02 2.31120205e-02 2.31939306e-02 2.32758105e-02 2.33576590e-02 + 2.34394752e-02 2.35212581e-02 2.36030067e-02 2.36847200e-02 2.37663971e-02 + 2.38480370e-02 2.39296387e-02 2.40112012e-02 2.40927236e-02 2.41742049e-02 + 2.42556442e-02 2.43370404e-02 2.44183927e-02 2.44997002e-02 2.45809618e-02 + 2.46621766e-02 2.47433437e-02 2.48244622e-02 2.49055311e-02 2.49865495e-02 + 2.50675165e-02 2.51484312e-02 2.52292926e-02 2.53100999e-02 2.53908522e-02 + 2.54715485e-02 2.55521880e-02 2.56327697e-02 2.57132928e-02 2.57937564e-02 + 2.58741596e-02 2.59545015e-02 2.60347813e-02 2.61149981e-02 2.61951510e-02 + 2.62752391e-02 2.63552617e-02 2.64352178e-02 2.65151067e-02 2.65949274e-02 + 2.66746791e-02 2.67543610e-02 2.68339722e-02 2.69135120e-02 2.69929795e-02 + 2.70723738e-02 2.71516942e-02 2.72309399e-02 2.73101100e-02 2.73892038e-02 + 2.74682203e-02 2.75471590e-02 2.76260189e-02 2.77047992e-02 2.77834992e-02 + 2.78621182e-02 2.79406553e-02 2.80191097e-02 2.80974807e-02 2.81757676e-02 + 2.82539695e-02 2.83320858e-02 2.84101156e-02 2.84880583e-02 2.85659130e-02 + 2.86436791e-02 2.87213558e-02 2.87989425e-02 2.88764383e-02 2.89538425e-02 + 2.90311545e-02 2.91083735e-02 2.91854988e-02 2.92625297e-02 2.93394656e-02 + 2.94163057e-02 2.94930493e-02 2.95696958e-02 2.96462444e-02 2.97226946e-02 + 2.97990456e-02 2.98752967e-02 2.99514473e-02 3.00274968e-02 3.01034445e-02 + 3.01792897e-02 3.02550318e-02 3.03306701e-02 3.04062041e-02 3.04816331e-02 + 3.05569564e-02 3.06321734e-02 3.07072835e-02 3.07822862e-02 3.08571807e-02 + 3.09319665e-02 3.10066430e-02 3.10812096e-02 3.11556657e-02 3.12300107e-02 + 3.13042440e-02 3.13783650e-02 3.14523732e-02 3.15262680e-02 3.16000488e-02 + 3.16737152e-02 3.17472664e-02 3.18207019e-02 3.18940213e-02 3.19672240e-02 + 3.20403094e-02 3.21132769e-02 3.21861262e-02 3.22588565e-02 3.23314675e-02 + 3.24039586e-02 3.24763292e-02 3.25485790e-02 3.26207072e-02 3.26927136e-02 + 3.27645975e-02 3.28363586e-02 3.29079962e-02 3.29795099e-02 3.30508993e-02 + 3.31221638e-02 3.31933030e-02 3.32643164e-02 3.33352036e-02 3.34059641e-02 + 3.34765975e-02 3.35471032e-02 3.36174810e-02 3.36877302e-02 3.37578506e-02 + 3.38278416e-02 3.38977028e-02 3.39674339e-02 3.40370344e-02 3.41065038e-02 + 3.41758418e-02 3.42450480e-02 3.43141220e-02 3.43830633e-02 3.44518716e-02 + 3.45205465e-02 3.45890876e-02 3.46574946e-02 3.47257670e-02 3.47939045e-02 + 3.48619068e-02 3.49297734e-02 3.49975040e-02 3.50650982e-02 3.51325558e-02 + 3.51998763e-02 3.52670594e-02 3.53341048e-02 3.54010122e-02 3.54677812e-02 + 3.55344115e-02 3.56009027e-02 3.56672546e-02 3.57334669e-02 3.57995392e-02 + 3.58654713e-02 3.59312628e-02 3.59969135e-02 3.60624230e-02 3.61277911e-02 + 3.61930174e-02 3.62581018e-02 3.63230440e-02 3.63878435e-02 3.64525003e-02 + 3.65170141e-02 3.65813845e-02 3.66456113e-02 3.67096943e-02 3.67736333e-02 + 3.68374279e-02 3.69010780e-02 3.69645833e-02 3.70279436e-02 3.70911587e-02 + 3.71542283e-02 3.72171522e-02 3.72799303e-02 3.73425622e-02 3.74050478e-02 + 3.74673870e-02 3.75295794e-02 3.75916249e-02 3.76535233e-02 3.77152744e-02 + 3.77768781e-02 3.78383342e-02 3.78996424e-02 3.79608026e-02 3.80218147e-02 + 3.80826785e-02 3.81433938e-02 3.82039604e-02 3.82643783e-02 3.83246472e-02 + 3.83847671e-02 3.84447377e-02 3.85045590e-02 3.85642308e-02 3.86237529e-02 + 3.86831254e-02 3.87423479e-02 3.88014204e-02 3.88603429e-02 3.89191151e-02 + 3.89777370e-02 3.90362085e-02 3.90945294e-02 3.91526997e-02 3.92107193e-02 + 3.92685881e-02 3.93263060e-02 3.93838729e-02 3.94412887e-02 3.94985534e-02 + 3.95556669e-02 3.96126291e-02 3.96694400e-02 3.97260994e-02 3.97826074e-02 + 3.98389638e-02 3.98951687e-02 3.99512220e-02 4.00071236e-02 4.00628735e-02 + 4.01184716e-02 4.01739179e-02 4.02292125e-02 4.02843552e-02 4.03393460e-02 + 4.03941849e-02 4.04488719e-02 4.05034070e-02 4.05577901e-02 4.06120213e-02 + 4.06661006e-02 4.07200279e-02 4.07738032e-02 4.08274266e-02 4.08808980e-02 + 4.09342175e-02 4.09873851e-02 4.10404007e-02 4.10932645e-02 4.11459764e-02 + 4.11985365e-02 4.12509447e-02 4.13032012e-02 4.13553060e-02 4.14072590e-02 + 4.14590603e-02 4.15107101e-02 4.15622082e-02 4.16135549e-02 4.16647500e-02 + 4.17157938e-02 4.17666861e-02 4.18174272e-02 4.18680170e-02 4.19184557e-02 + 4.19687432e-02 4.20188797e-02 4.20688653e-02 4.21187000e-02 4.21683839e-02 + 4.22179171e-02 4.22672996e-02 4.23165316e-02 4.23656132e-02 4.24145444e-02 + 4.24633254e-02 4.25119562e-02 4.25604369e-02 4.26087677e-02 4.26569487e-02 + 4.27049799e-02 4.27528616e-02 4.28005937e-02 4.28481764e-02 4.28956098e-02 + 4.29428942e-02 4.29900295e-02 4.30370159e-02 4.30838535e-02 4.31305425e-02 + 4.31770831e-02 4.32234752e-02 4.32697192e-02 4.33158151e-02 4.33617631e-02 + 4.34075633e-02 4.34532158e-02 4.34987209e-02 4.35440787e-02 4.35892893e-02 + 4.36343529e-02 4.36792696e-02 4.37240396e-02 4.37686632e-02 4.38131404e-02 + 4.38574714e-02 4.39016564e-02 4.39456955e-02 4.39895890e-02 4.40333371e-02 + 4.40769398e-02 4.41203974e-02 4.41637101e-02 4.42068780e-02 4.42499014e-02 + 4.42927804e-02 4.43355152e-02 4.43781061e-02 4.44205532e-02 4.44628567e-02 + 4.45050168e-02 4.45470338e-02 4.45889078e-02 4.46306390e-02 4.46722277e-02 + 4.47136740e-02 4.47549782e-02 4.47961405e-02 4.48371610e-02 4.48780401e-02 + 4.49187780e-02 4.49593747e-02 4.49998307e-02 4.50401461e-02 4.50803211e-02 + 4.51203560e-02 4.51602509e-02 4.52000062e-02 4.52396221e-02 4.52790987e-02 + 4.53184364e-02 4.53576354e-02 4.53966958e-02 4.54356180e-02 4.54744022e-02 + 4.55130487e-02 4.55515576e-02 4.55899293e-02 4.56281640e-02 4.56662619e-02 + 4.57042233e-02 4.57420484e-02 4.57797375e-02 4.58172909e-02 4.58547089e-02 + 4.58919915e-02 4.59291393e-02 4.59661523e-02 4.60030309e-02 4.60397753e-02 + 4.60763859e-02 4.61128627e-02 4.61492063e-02 4.61854167e-02 4.62214943e-02 + 4.62574394e-02 4.62932522e-02 4.63289330e-02 4.63644821e-02 4.63998997e-02 + 4.64351862e-02 4.64703418e-02 4.65053668e-02 4.65402615e-02 4.65750261e-02 + 4.66096610e-02 4.66441665e-02 4.66785428e-02 4.67127902e-02 4.67469090e-02 + 4.67808995e-02 4.68147620e-02 4.68484968e-02 4.68821042e-02 4.69155844e-02 + 4.69489379e-02 4.69821647e-02 4.70152654e-02 4.70482401e-02 4.70810892e-02 + 4.71138129e-02 4.71464116e-02 4.71788856e-02 4.72112352e-02 4.72434606e-02 + 4.72755622e-02 4.73075403e-02 4.73393952e-02 4.73711272e-02 4.74027366e-02 + 4.74342238e-02 4.74655889e-02 4.74968325e-02 4.75279546e-02 4.75589558e-02 + 4.75898362e-02 4.76205962e-02 4.76512361e-02 4.76817562e-02 4.77121569e-02 + 4.77424384e-02 4.77726011e-02 4.78026453e-02 4.78325713e-02 4.78623795e-02 + 4.78920701e-02 4.79216434e-02 4.79510998e-02 4.79804397e-02 4.80096633e-02 + 4.80387709e-02 4.80677629e-02 4.80966396e-02 4.81254014e-02 4.81540485e-02 + 4.81825812e-02 4.82110000e-02 4.82393051e-02 4.82674968e-02 4.82955755e-02 + 4.83235416e-02 4.83513952e-02 4.83791368e-02 4.84067667e-02 4.84342853e-02 + 4.84616927e-02 4.84889895e-02 4.85161759e-02 4.85432521e-02 4.85702187e-02 + 4.85970759e-02 4.86238239e-02 4.86504633e-02 4.86769942e-02 4.87034171e-02 + 4.87297322e-02 4.87559399e-02 4.87820405e-02 4.88080344e-02 4.88339218e-02 + 4.88597032e-02 4.88853789e-02 4.89109491e-02 4.89364142e-02 4.89617746e-02 + 4.89870305e-02 4.90121824e-02 4.90372306e-02 4.90621753e-02 4.90870170e-02 + 4.91117559e-02 4.91363924e-02 4.91609268e-02 4.91853595e-02 4.92096908e-02 + 4.92339210e-02 4.92580505e-02 4.92820795e-02 4.93060086e-02 4.93298378e-02 + 4.93535677e-02 4.93771986e-02 4.94007307e-02 4.94241644e-02 4.94475000e-02 + 4.94707380e-02 4.94938785e-02 4.95169220e-02 4.95398688e-02 4.95627192e-02 + 4.95854735e-02 4.96081321e-02 4.96306954e-02 4.96531636e-02 4.96755370e-02 + 4.96978161e-02 4.97200012e-02 4.97420925e-02 4.97640905e-02 4.97859954e-02 + 4.98078076e-02 4.98295274e-02 4.98511552e-02 4.98726912e-02 4.98941359e-02 + 4.99154895e-02 4.99367524e-02 4.99579249e-02 4.99790073e-02 5.00000000e-02 + 0.00000000e+00 2.43488551e-08 9.70348995e-08 2.17517882e-07 3.85258271e-07 + 5.99717271e-07 8.60356837e-07 1.16663970e-06 1.51802935e-06 1.91399012e-06 + 2.35398713e-06 2.83748633e-06 3.36395454e-06 3.93285942e-06 4.54366955e-06 + 5.19585437e-06 5.88888425e-06 6.62223049e-06 7.39536534e-06 8.20776200e-06 + 9.05889466e-06 9.94823850e-06 1.08752697e-05 1.18394655e-05 1.28403042e-05 + 1.38772651e-05 1.49498285e-05 1.60574760e-05 1.71996902e-05 1.83759547e-05 + 1.95857545e-05 2.08285756e-05 2.21039051e-05 2.34112314e-05 2.47500441e-05 + 2.61198339e-05 2.75200930e-05 2.89503146e-05 3.04099932e-05 3.18986247e-05 + 3.34157062e-05 3.49607362e-05 3.65332143e-05 3.81326418e-05 3.97585210e-05 + 4.14103560e-05 4.30876518e-05 4.47899152e-05 4.65166542e-05 4.82673784e-05 + 5.00415988e-05 5.18388277e-05 5.36585791e-05 5.55003684e-05 5.73637126e-05 + 5.92481302e-05 6.11531411e-05 6.30782670e-05 6.50230311e-05 6.69869581e-05 + 6.89695743e-05 7.09704078e-05 7.29889882e-05 7.50248468e-05 7.70775165e-05 + 7.91465320e-05 8.12314297e-05 8.33317475e-05 8.54470252e-05 8.75768045e-05 + 8.97206285e-05 9.18780424e-05 9.40485929e-05 9.62318288e-05 9.84273005e-05 + 1.00634560e-04 1.02853162e-04 1.05082663e-04 1.07322619e-04 1.09572592e-04 + 1.11832142e-04 1.14100833e-04 1.16378232e-04 1.18663904e-04 1.20957421e-04 + 1.23258352e-04 1.25566272e-04 1.27880756e-04 1.30201382e-04 1.32527729e-04 + 1.34859378e-04 1.37195914e-04 1.39536921e-04 1.41881988e-04 1.44230704e-04 + 1.46582662e-04 1.48937455e-04 1.51294680e-04 1.53653936e-04 1.56014822e-04 + 1.58376942e-04 1.60739900e-04 1.63103305e-04 1.65466764e-04 1.67829891e-04 + 1.70192298e-04 1.72553602e-04 1.74913422e-04 1.77271378e-04 1.79627094e-04 + 1.81980193e-04 1.84330306e-04 1.86677060e-04 1.89020090e-04 1.91359029e-04 + 1.93693515e-04 1.96023187e-04 1.98347688e-04 2.00666661e-04 2.02979754e-04 + 2.05286615e-04 2.07586897e-04 2.09880254e-04 2.12166341e-04 2.14444820e-04 + 2.16715350e-04 2.18977597e-04 2.21231227e-04 2.23475910e-04 2.25711316e-04 + 2.27937121e-04 2.30153002e-04 2.32358637e-04 2.34553710e-04 2.36737905e-04 + 2.38910909e-04 2.41072412e-04 2.43222107e-04 2.45359690e-04 2.47484858e-04 + 2.49597311e-04 2.51696755e-04 2.53782893e-04 2.55855436e-04 2.57914094e-04 + 2.59958582e-04 2.61988617e-04 2.64003919e-04 2.66004209e-04 2.67989214e-04 + 2.69958661e-04 2.71912281e-04 2.73849808e-04 2.75770978e-04 2.77675531e-04 + 2.79563208e-04 2.81433755e-04 2.83286920e-04 2.85122453e-04 2.86940107e-04 + 2.88739640e-04 2.90520810e-04 2.92283380e-04 2.94027115e-04 2.95751782e-04 + 2.97457154e-04 2.99143004e-04 3.00809109e-04 3.02455248e-04 3.04081205e-04 + 3.05686765e-04 3.07271718e-04 3.08835854e-04 3.10378969e-04 3.11900861e-04 + 3.13401329e-04 3.14880179e-04 3.16337217e-04 3.17772253e-04 3.19185100e-04 + 3.20575574e-04 3.21943493e-04 3.23288681e-04 3.24610962e-04 3.25910165e-04 + 3.27186120e-04 3.28438664e-04 3.29667633e-04 3.30872868e-04 3.32054212e-04 + 3.33211514e-04 3.34344623e-04 3.35453392e-04 3.36537678e-04 3.37597341e-04 + 3.38632243e-04 3.39642250e-04 3.40627231e-04 3.41587060e-04 3.42521610e-04 + 3.43430761e-04 3.44314395e-04 3.45172397e-04 3.46004655e-04 3.46811061e-04 + 3.47591509e-04 3.48345899e-04 3.49074130e-04 3.49776107e-04 3.50451738e-04 + 3.51100935e-04 3.51723611e-04 3.52319684e-04 3.52889075e-04 3.53431707e-04 + 3.53947509e-04 3.54436410e-04 3.54898345e-04 3.55333251e-04 3.55741068e-04 + 3.56121740e-04 3.56475215e-04 3.56801442e-04 3.57100376e-04 3.57371973e-04 + 3.57616194e-04 3.57833003e-04 3.58022366e-04 3.58184254e-04 3.58318641e-04 + 3.58425503e-04 3.58504822e-04 3.58556580e-04 3.58580765e-04 3.58577366e-04 + 3.58546379e-04 3.58487800e-04 3.58401629e-04 3.58287871e-04 3.58146532e-04 + 3.57977623e-04 3.57781159e-04 3.57557155e-04 3.57305633e-04 3.57026618e-04 + 3.56720135e-04 3.56386217e-04 3.56024897e-04 3.55636213e-04 3.55220206e-04 + 3.54776920e-04 3.54306402e-04 3.53808705e-04 3.53283882e-04 3.52731991e-04 + 3.52153093e-04 3.51547253e-04 3.50914539e-04 3.50255023e-04 3.49568779e-04 + 3.48855885e-04 3.48116423e-04 3.47350478e-04 3.46558138e-04 3.45739494e-04 + 3.44894643e-04 3.44023683e-04 3.43126715e-04 3.42203844e-04 3.41255180e-04 + 3.40280834e-04 3.39280922e-04 3.38255563e-04 3.37204879e-04 3.36128995e-04 + 3.35028040e-04 3.33902147e-04 3.32751452e-04 3.31576093e-04 3.30376213e-04 + 3.29151958e-04 3.27903477e-04 3.26630923e-04 3.25334452e-04 3.24014222e-04 + 3.22670397e-04 3.21303142e-04 3.19912628e-04 3.18499026e-04 3.17062513e-04 + 3.15603268e-04 3.14121475e-04 3.12617318e-04 3.11090989e-04 3.09542678e-04 + 3.07972584e-04 3.06380904e-04 3.04767842e-04 3.03133605e-04 3.01478400e-04 + 2.99802442e-04 2.98105947e-04 2.96389132e-04 2.94652222e-04 2.92895443e-04 + 2.91119023e-04 2.89323194e-04 2.87508194e-04 2.85674261e-04 2.83821637e-04 + 2.81950568e-04 2.80061304e-04 2.78154095e-04 2.76229198e-04 2.74286872e-04 + 2.72327377e-04 2.70350981e-04 2.68357950e-04 2.66348556e-04 2.64323075e-04 + 2.62281784e-04 2.60224965e-04 2.58152902e-04 2.56065883e-04 2.53964199e-04 + 2.51848144e-04 2.49718015e-04 2.47574112e-04 2.45416740e-04 2.43246204e-04 + 2.41062815e-04 2.38866886e-04 2.36658733e-04 2.34438675e-04 2.32207035e-04 + 2.29964138e-04 2.27710313e-04 2.25445892e-04 2.23171209e-04 2.20886603e-04 + 2.18592414e-04 2.16288987e-04 2.13976669e-04 2.11655809e-04 2.09326762e-04 + 2.06989883e-04 2.04645532e-04 2.02294071e-04 1.99935866e-04 1.97571284e-04 + 1.95200698e-04 1.92824481e-04 1.90443011e-04 1.88056668e-04 1.85665835e-04 + 1.83270899e-04 1.80872249e-04 1.78470276e-04 1.76065376e-04 1.73657947e-04 + 1.71248388e-04 1.68837105e-04 1.66424504e-04 1.64010993e-04 1.61596986e-04 + 1.59182897e-04 1.56769145e-04 1.54356150e-04 1.51944336e-04 1.49534129e-04 + 1.47125959e-04 1.44720257e-04 1.42317459e-04 1.39918002e-04 1.37522326e-04 + 1.35130875e-04 1.32744094e-04 1.30362432e-04 1.27986339e-04 1.25616271e-04 + 1.23252683e-04 1.20896036e-04 1.18546790e-04 1.16205411e-04 1.13872366e-04 + 1.11548124e-04 1.09233158e-04 1.06927944e-04 1.04632960e-04 1.02348684e-04 + 1.00075601e-04 9.78141952e-05 9.55649553e-05 9.33283715e-05 9.11049369e-05 + 8.88951470e-05 8.66994998e-05 8.45184959e-05 8.23526381e-05 8.02024320e-05 + 7.80683853e-05 7.59510083e-05 7.38508139e-05 7.17683170e-05 6.97040351e-05 + 6.76584882e-05 6.56321985e-05 6.36256905e-05 6.16394911e-05 5.96741296e-05 + 5.77301375e-05 5.58080486e-05 5.39083991e-05 5.20317273e-05 5.01785738e-05 + 4.83494815e-05 4.65449954e-05 4.47656629e-05 4.30120334e-05 4.12846585e-05 + 3.95840921e-05 3.79108901e-05 3.62656107e-05 3.46488140e-05 3.30610623e-05 + 3.15029201e-05 2.99749539e-05 2.84777321e-05 2.70118254e-05 2.55778064e-05 + 2.41762497e-05 2.28077320e-05 2.14728317e-05 2.01721296e-05 1.89062081e-05 + 1.76756517e-05 1.64810468e-05 1.53229816e-05 1.42020464e-05 1.31188332e-05 + 1.20739359e-05 1.10679502e-05 1.01014737e-05 9.17510585e-06 8.28944774e-06 + 7.44510235e-06 6.64267440e-06 5.88277033e-06 5.16599834e-06 4.49296832e-06 + 3.86429185e-06 3.28058222e-06 2.74245435e-06 2.25052482e-06 1.80541184e-06 + 1.40773522e-06 1.05811638e-06 7.57178299e-07 5.05545545e-07 3.03844209e-07 + 1.52701918e-07 5.27478064e-08 4.61250386e-09 8.92811584e-09 6.63282070e-08 + 1.77447784e-07 3.42923278e-07 5.63392527e-07 8.39494760e-07 1.17187058e-06 + 1.56116194e-06 2.00801213e-06 2.51306577e-06 3.07696878e-06 3.70036834e-06 + 4.38391295e-06 5.12825230e-06 5.93403735e-06 6.80192027e-06 7.73255440e-06 + 8.72659429e-06 9.78469564e-06 1.09075153e-05 1.20957112e-05 1.33499424e-05 + 1.46708691e-05 1.60591526e-05 1.75154550e-05 1.90404398e-05 2.06347711e-05 + 2.22991145e-05 2.40341361e-05 2.58405033e-05 2.77188842e-05 2.96699480e-05 + 3.16943647e-05 3.37928053e-05 3.59659416e-05 3.82144461e-05 4.05389924e-05 + 4.29402547e-05 4.54189082e-05 4.79756288e-05 5.06110929e-05 5.33259781e-05 + 5.61209623e-05 5.89967243e-05 6.19539437e-05 6.49933005e-05 6.81154755e-05 + 7.13211502e-05 7.46110064e-05 7.79857269e-05 8.14459948e-05 8.49924937e-05 + 8.86259080e-05 9.23469224e-05 9.61562222e-05 1.00054493e-04 1.04042421e-04 + 1.08120693e-04 1.12289996e-04 1.16551018e-04 1.20904446e-04 1.25350968e-04 + 1.29891273e-04 1.34526050e-04 1.39255988e-04 1.44081776e-04 1.49004104e-04 + 1.54023663e-04 1.59141141e-04 1.64357231e-04 1.69672621e-04 1.75088004e-04 + 1.80604069e-04 1.86221509e-04 1.91941014e-04 1.97763274e-04 2.03688983e-04 + 2.09718831e-04 2.15853509e-04 2.22093709e-04 2.28440122e-04 2.34893440e-04 + 2.41454354e-04 2.48123555e-04 2.54901735e-04 2.61789585e-04 2.68787796e-04 + 2.75897058e-04 2.83118063e-04 2.90451500e-04 2.97898061e-04 3.05458435e-04 + 3.13133313e-04 3.20923384e-04 3.28829337e-04 3.36851861e-04 3.44991646e-04 + 3.53249380e-04 3.61625750e-04 3.70121445e-04 3.78737152e-04 3.87473558e-04 + 3.96331350e-04 4.05311213e-04 4.14413833e-04 4.23639896e-04 4.32990086e-04 + 4.42465087e-04 4.52065583e-04 4.61792257e-04 4.71645791e-04 4.81626868e-04 + 4.91736167e-04 5.01974371e-04 5.12342159e-04 5.22840211e-04 5.33469204e-04 + 5.44229818e-04 5.55122728e-04 5.66148612e-04 5.77308146e-04 5.88602003e-04 + 6.00030859e-04 6.11595386e-04 6.23296257e-04 6.35134144e-04 6.47109717e-04 + 6.59223646e-04 6.71476600e-04 6.83869248e-04 6.96402254e-04 7.09076287e-04 + 7.21892011e-04 7.34850090e-04 7.47951188e-04 7.61195965e-04 7.74585083e-04 + 7.88119202e-04 8.01798981e-04 8.15625077e-04 8.29598146e-04 8.43718845e-04 + 8.57987827e-04 8.72405745e-04 8.86973251e-04 9.01690996e-04 9.16559628e-04 + 9.31579797e-04 9.46752148e-04 9.62077327e-04 9.77555978e-04 9.93188745e-04 + 1.00897627e-03 1.02491919e-03 1.04101814e-03 1.05727377e-03 1.07368671e-03 + 1.09025759e-03 1.10698704e-03 1.12387570e-03 1.14092420e-03 1.15813317e-03 + 1.17550323e-03 1.19303501e-03 1.21072913e-03 1.22858621e-03 1.24660688e-03 + 1.26479176e-03 1.28314145e-03 1.30165659e-03 1.32033777e-03 1.33918562e-03 + 1.35820075e-03 1.37738376e-03 1.39673526e-03 1.41625586e-03 1.43594616e-03 + 1.45580676e-03 1.47583827e-03 1.49604128e-03 1.51641638e-03 1.53696418e-03 + 1.55768526e-03 1.57858022e-03 1.59964965e-03 1.62089413e-03 1.64231425e-03 + 1.66391059e-03 1.68568373e-03 1.70763425e-03 1.72976274e-03 1.75206976e-03 + 1.77455589e-03 1.79722169e-03 1.82006775e-03 1.84309462e-03 1.86630287e-03 + 1.88969307e-03 1.91326577e-03 1.93702154e-03 1.96096092e-03 1.98508448e-03 + 2.00939277e-03 2.03388633e-03 2.05856572e-03 2.08343148e-03 2.10848415e-03 + 2.13372427e-03 2.15915239e-03 2.18476904e-03 2.21057475e-03 2.23657006e-03 + 2.26275549e-03 2.28913158e-03 2.31569884e-03 2.34245780e-03 2.36940899e-03 + 2.39655291e-03 2.42389008e-03 2.45142102e-03 2.47914624e-03 2.50706624e-03 + 2.53518153e-03 2.56349261e-03 2.59199999e-03 2.62070415e-03 2.64960561e-03 + 2.67870484e-03 2.70800234e-03 2.73749860e-03 2.76719410e-03 2.79708933e-03 + 2.82718476e-03 2.85748088e-03 2.88797815e-03 2.91867705e-03 2.94957805e-03 + 2.98068162e-03 3.01198821e-03 3.04349830e-03 3.07521234e-03 3.10713078e-03 + 3.13925408e-03 3.17158269e-03 3.20411705e-03 3.23685762e-03 3.26980484e-03 + 3.30295913e-03 3.33632095e-03 3.36989071e-03 3.40366887e-03 3.43765583e-03 + 3.47185204e-03 3.50625790e-03 3.54087384e-03 3.57570028e-03 3.61073762e-03 + 3.64598629e-03 3.68144668e-03 3.71711921e-03 3.75300427e-03 3.78910226e-03 + 3.82541359e-03 3.86193864e-03 3.89867779e-03 3.93563145e-03 3.97279999e-03 + 4.01018380e-03 4.04778325e-03 4.08559871e-03 4.12363057e-03 4.16187918e-03 + 4.20034492e-03 4.23902814e-03 4.27792921e-03 4.31704848e-03 4.35638630e-03 + 4.39594303e-03 4.43571902e-03 4.47571460e-03 4.51593011e-03 4.55636591e-03 + 4.59702231e-03 4.63789965e-03 4.67899827e-03 4.72031847e-03 4.76186059e-03 + 4.80362495e-03 4.84561186e-03 4.88782162e-03 4.93025456e-03 4.97291097e-03 + 5.01579116e-03 5.05889543e-03 5.10222407e-03 5.14577738e-03 5.18955564e-03 + 5.23355914e-03 5.27778816e-03 5.32224299e-03 5.36692389e-03 5.41183115e-03 + 5.45696503e-03 5.50232579e-03 5.54791370e-03 5.59372902e-03 5.63977201e-03 + 5.68604291e-03 5.73254198e-03 5.77926946e-03 5.82622559e-03 5.87341062e-03 + 5.92082478e-03 5.96846830e-03 6.01634140e-03 6.06444433e-03 6.11277729e-03 + 6.16134051e-03 6.21013420e-03 6.25915857e-03 6.30841384e-03 6.35790020e-03 + 6.40761786e-03 6.45756701e-03 6.50774785e-03 6.55816058e-03 6.60880537e-03 + 6.65968241e-03 6.71079189e-03 6.76213398e-03 6.81370884e-03 6.86551667e-03 + 6.91755761e-03 6.96983183e-03 7.02233950e-03 7.07508076e-03 7.12805578e-03 + 7.18126469e-03 7.23470765e-03 7.28838479e-03 7.34229626e-03 7.39644219e-03 + 7.45082271e-03 7.50543795e-03 7.56028803e-03 7.61537307e-03 7.67069319e-03 + 7.72624851e-03 7.78203912e-03 7.83806515e-03 7.89432669e-03 7.95082384e-03 + 8.00755670e-03 8.06452535e-03 8.12172989e-03 8.17917041e-03 8.23684697e-03 + 8.29475967e-03 8.35290857e-03 8.41129374e-03 8.46991526e-03 8.52877318e-03 + 8.58786757e-03 8.64719848e-03 8.70676596e-03 8.76657006e-03 8.82661083e-03 + 8.88688830e-03 8.94740253e-03 9.00815353e-03 9.06914135e-03 9.13036600e-03 + 9.19182752e-03 9.25352592e-03 9.31546122e-03 9.37763343e-03 9.44004256e-03 + 9.50268862e-03 9.56557160e-03 9.62869151e-03 9.69204834e-03 9.75564209e-03 + 9.81947273e-03 9.88354026e-03 9.94784464e-03 1.00123859e-02 1.00771639e-02 + 1.01421787e-02 1.02074303e-02 1.02729186e-02 1.03386435e-02 1.04046051e-02 + 1.04708033e-02 1.05372379e-02 1.06039091e-02 1.06708166e-02 1.07379605e-02 + 1.08053407e-02 1.08729570e-02 1.09408095e-02 1.10088981e-02 1.10772226e-02 + 1.11457830e-02 1.12145793e-02 1.12836112e-02 1.13528787e-02 1.14223818e-02 + 1.14921203e-02 1.15620941e-02 1.16323030e-02 1.17027471e-02 1.17734261e-02 + 1.18443400e-02 1.19154886e-02 1.19868718e-02 1.20584894e-02 1.21303414e-02 + 1.22024276e-02 1.22747478e-02 1.23473019e-02 1.24200897e-02 1.24931112e-02 + 1.25663661e-02 1.26398543e-02 1.27135756e-02 1.27875299e-02 1.28617170e-02 + 1.29361367e-02 1.30107888e-02 1.30856731e-02 1.31607896e-02 1.32361379e-02 + 1.33117179e-02 1.33875294e-02 1.34635722e-02 1.35398461e-02 1.36163509e-02 + 1.36930863e-02 1.37700523e-02 1.38472485e-02 1.39246747e-02 1.40023308e-02 + 1.40802164e-02 1.41583314e-02 1.42366755e-02 1.43152485e-02 1.43940502e-02 + 1.44730803e-02 1.45523385e-02 1.46318247e-02 1.47115385e-02 1.47914797e-02 + 1.48716480e-02 1.49520432e-02 1.50326651e-02 1.51135133e-02 1.51945875e-02 + 1.52758876e-02 1.53574131e-02 1.54391639e-02 1.55211396e-02 1.56033400e-02 + 1.56857648e-02 1.57684136e-02 1.58512861e-02 1.59343821e-02 1.60177013e-02 + 1.61012433e-02 1.61850079e-02 1.62689946e-02 1.63532033e-02 1.64376335e-02 + 1.65222849e-02 1.66071573e-02 1.66922502e-02 1.67775634e-02 1.68630965e-02 + 1.69488492e-02 1.70348211e-02 1.71210118e-02 1.72074211e-02 1.72940485e-02 + 1.73808937e-02 1.74679564e-02 1.75552362e-02 1.76427326e-02 1.77304454e-02 + 1.78183742e-02 1.79065185e-02 1.79948781e-02 1.80834525e-02 1.81722413e-02 + 1.82612442e-02 1.83504607e-02 1.84398905e-02 1.85295331e-02 1.86193882e-02 + 1.87094554e-02 1.87997342e-02 1.88902243e-02 1.89809251e-02 1.90718364e-02 + 1.91629577e-02 1.92542885e-02 1.93458285e-02 1.94375771e-02 1.95295341e-02 + 1.96216989e-02 1.97140711e-02 1.98066502e-02 1.98994359e-02 1.99924277e-02 + 2.00856251e-02 2.01790276e-02 2.02726349e-02 2.03664465e-02 2.04604618e-02 + 2.05546805e-02 2.06491020e-02 2.07437260e-02 2.08385519e-02 2.09335792e-02 + 2.10288076e-02 2.11242364e-02 2.12198652e-02 2.13156936e-02 2.14117210e-02 + 2.15079470e-02 2.16043710e-02 2.17009926e-02 2.17978112e-02 2.18948264e-02 + 2.19920377e-02 2.20894445e-02 2.21870464e-02 2.22848427e-02 2.23828331e-02 + 2.24810170e-02 2.25793938e-02 2.26779631e-02 2.27767243e-02 2.28756769e-02 + 2.29748204e-02 2.30741542e-02 2.31736778e-02 2.32733907e-02 2.33732923e-02 + 2.34733820e-02 2.35736594e-02 2.36741238e-02 2.37747748e-02 2.38756118e-02 + 2.39766342e-02 2.40778414e-02 2.41792330e-02 2.42808082e-02 2.43825667e-02 + 2.44845078e-02 2.45866309e-02 2.46889354e-02 2.47914209e-02 2.48940867e-02 + 2.49969322e-02 2.50999568e-02 2.52031600e-02 2.53065412e-02 2.54100998e-02 + 2.55138352e-02 2.56177468e-02 2.57218340e-02 2.58260963e-02 2.59305329e-02 + 2.60351434e-02 2.61399271e-02 2.62448834e-02 2.63500117e-02 2.64553114e-02 + 2.65607818e-02 2.66664224e-02 2.67722326e-02 2.68782117e-02 2.69843591e-02 + 2.70906742e-02 2.71971563e-02 2.73038049e-02 2.74106192e-02 2.75175988e-02 + 2.76247429e-02 2.77320509e-02 2.78395221e-02 2.79471560e-02 2.80549519e-02 + 2.81629091e-02 2.82710270e-02 2.83793050e-02 2.84877423e-02 2.85963385e-02 + 2.87050927e-02 2.88140044e-02 2.89230729e-02 2.90322975e-02 2.91416776e-02 + 2.92512125e-02 2.93609016e-02 2.94707442e-02 2.95807396e-02 2.96908871e-02 + 2.98011861e-02 2.99116360e-02 3.00222360e-02 3.01329854e-02 3.02438837e-02 + 3.03549300e-02 3.04661238e-02 3.05774644e-02 3.06889510e-02 3.08005830e-02 + 3.09123597e-02 3.10242804e-02 3.11363445e-02 3.12485511e-02 3.13608997e-02 + 3.14733896e-02 3.15860200e-02 3.16987903e-02 3.18116997e-02 3.19247476e-02 + 3.20379332e-02 3.21512559e-02 3.22647149e-02 3.23783096e-02 3.24920392e-02 + 3.26059030e-02 3.27199004e-02 3.28340306e-02 3.29482928e-02 3.30626865e-02 + 3.31772108e-02 3.32918651e-02 3.34066486e-02 3.35215607e-02 3.36366005e-02 + 3.37517674e-02 3.38670607e-02 3.39824796e-02 3.40980234e-02 3.42136915e-02 + 3.43294829e-02 3.44453971e-02 3.45614333e-02 3.46775908e-02 3.47938688e-02 + 3.49102666e-02 3.50267835e-02 3.51434187e-02 3.52601716e-02 3.53770413e-02 + 3.54940271e-02 3.56111283e-02 3.57283442e-02 3.58456740e-02 3.59631170e-02 + 3.60806724e-02 3.61983395e-02 3.63161175e-02 3.64340058e-02 3.65520035e-02 + 3.66701099e-02 3.67883242e-02 3.69066458e-02 3.70250738e-02 3.71436076e-02 + 3.72622463e-02 3.73809892e-02 3.74998356e-02 3.76187846e-02 3.77378357e-02 + 3.78569879e-02 3.79762406e-02 3.80955929e-02 3.82150442e-02 3.83345937e-02 + 3.84542406e-02 3.85739841e-02 3.86938235e-02 3.88137581e-02 3.89337870e-02 + 3.90539096e-02 3.91741250e-02 3.92944326e-02 3.94148314e-02 3.95353208e-02 + 3.96559000e-02 3.97765683e-02 3.98973248e-02 4.00181689e-02 4.01390997e-02 + 4.02601165e-02 4.03812185e-02 4.05024049e-02 4.06236750e-02 4.07450281e-02 + 4.08664633e-02 4.09879798e-02 4.11095770e-02 4.12312540e-02 4.13530101e-02 + 4.14748445e-02 4.15967564e-02 4.17187451e-02 4.18408097e-02 4.19629496e-02 + 4.20851640e-02 4.22074520e-02 4.23298129e-02 4.24522460e-02 4.25747504e-02 + 4.26973254e-02 4.28199703e-02 4.29426842e-02 4.30654664e-02 4.31883161e-02 + 4.33112325e-02 4.34342149e-02 4.35572624e-02 4.36803744e-02 4.38035500e-02 + 4.39267885e-02 4.40500891e-02 4.41734511e-02 4.42968735e-02 4.44203558e-02 + 4.45438971e-02 4.46674966e-02 4.47911535e-02 4.49148672e-02 4.50386368e-02 + 4.51624615e-02 4.52863406e-02 4.54102733e-02 4.55342588e-02 4.56582964e-02 + 4.57823853e-02 4.59065247e-02 4.60307139e-02 4.61549520e-02 4.62792383e-02 + 4.64035721e-02 4.65279525e-02 4.66523788e-02 4.67768502e-02 4.69013660e-02 + 4.70259254e-02 4.71505276e-02 4.72751719e-02 4.73998574e-02 4.75245834e-02 + 4.76493492e-02 4.77741540e-02 4.78989970e-02 4.80238774e-02 4.81487945e-02 + 4.82737475e-02 4.83987357e-02 4.85237582e-02 4.86488144e-02 4.87739034e-02 + 4.88990245e-02 4.90241770e-02 4.91493600e-02 4.92745728e-02 4.93998147e-02 + 4.95250848e-02 4.96503825e-02 4.97757070e-02 4.99010574e-02 5.00264331e-02 + 5.01518333e-02 5.02772572e-02 5.04027041e-02 5.05281733e-02 5.06536638e-02 + 5.07791751e-02 5.09047064e-02 5.10302569e-02 5.11558258e-02 5.12814124e-02 + 5.14070160e-02 5.15326357e-02 5.16582709e-02 5.17839208e-02 5.19095847e-02 + 5.20352618e-02 5.21609513e-02 5.22866525e-02 5.24123647e-02 5.25380871e-02 + 5.26638190e-02 5.27895597e-02 5.29153083e-02 5.30410642e-02 5.31668266e-02 + 5.32925947e-02 5.34183680e-02 5.35441455e-02 5.36699265e-02 5.37957104e-02 + 5.39214964e-02 5.40472838e-02 5.41730717e-02 5.42988596e-02 5.44246466e-02 + 5.45504321e-02 5.46762153e-02 5.48019954e-02 5.49277718e-02 5.50535437e-02 + 5.51793104e-02 5.53050712e-02 5.54308254e-02 5.55565722e-02 5.56823109e-02 + 5.58080407e-02 5.59337611e-02 5.60594712e-02 5.61851704e-02 5.63108578e-02 + 5.64365329e-02 5.65621949e-02 5.66878431e-02 5.68134767e-02 5.69390952e-02 + 5.70646976e-02 5.71902835e-02 5.73158519e-02 5.74414024e-02 5.75669340e-02 + 5.76924462e-02 5.78179382e-02 5.79434094e-02 5.80688590e-02 5.81942863e-02 + 5.83196907e-02 5.84450715e-02 5.85704278e-02 5.86957592e-02 5.88210648e-02 + 5.89463440e-02 5.90715962e-02 5.91968205e-02 5.93220163e-02 5.94471830e-02 + 5.95723199e-02 5.96974262e-02 5.98225013e-02 5.99475445e-02 6.00725552e-02 + 6.01975327e-02 6.03224762e-02 6.04473851e-02 6.05722588e-02 6.06970966e-02 + 6.08218978e-02 6.09466617e-02 6.10713877e-02 6.11960751e-02 6.13207233e-02 + 6.14453315e-02 6.15698992e-02 6.16944256e-02 6.18189101e-02 6.19433521e-02 + 6.20677509e-02 6.21921059e-02 6.23164163e-02 6.24406816e-02 6.25649011e-02 + 6.26890741e-02 6.28132001e-02 6.29372783e-02 6.30613081e-02 6.31852889e-02 + 6.33092201e-02 6.34331010e-02 6.35569309e-02 6.36807093e-02 6.38044355e-02 + 6.39281089e-02 6.40517288e-02 6.41752947e-02 6.42988058e-02 6.44222616e-02 + 6.45456615e-02 6.46690048e-02 6.47922909e-02 6.49155192e-02 6.50386891e-02 + 6.51617999e-02 6.52848511e-02 6.54078420e-02 6.55307721e-02 6.56536406e-02 + 6.57764471e-02 6.58991910e-02 6.60218715e-02 6.61444881e-02 6.62670403e-02 + 6.63895274e-02 6.65119488e-02 6.66343039e-02 6.67565921e-02 6.68788129e-02 + 6.70009657e-02 6.71230499e-02 6.72450648e-02 6.73670099e-02 6.74888847e-02 + 6.76106885e-02 6.77324208e-02 6.78540809e-02 6.79756684e-02 6.80971826e-02 + 6.82186230e-02 6.83399891e-02 6.84612801e-02 6.85824957e-02 6.87036351e-02 + 6.88246979e-02 6.89456835e-02 6.90665913e-02 6.91874209e-02 6.93081715e-02 + 6.94288427e-02 6.95494340e-02 6.96699447e-02 6.97903744e-02 6.99107224e-02 + 7.00309883e-02 7.01511715e-02 7.02712715e-02 7.03912876e-02 7.05112195e-02 + 7.06310666e-02 7.07508283e-02 7.08705040e-02 7.09900934e-02 7.11095958e-02 + 7.12290107e-02 7.13483377e-02 7.14675761e-02 7.15867255e-02 7.17057853e-02 + 7.18247551e-02 7.19436343e-02 7.20624225e-02 7.21811190e-02 7.22997234e-02 + 7.24182353e-02 7.25366540e-02 7.26549791e-02 7.27732102e-02 7.28913466e-02 + 7.30093879e-02 7.31273337e-02 7.32451834e-02 7.33629365e-02 7.34805926e-02 + 7.35981511e-02 7.37156116e-02 7.38329737e-02 7.39502367e-02 7.40674004e-02 + 7.41844640e-02 7.43014273e-02 7.44182898e-02 7.45350509e-02 7.46517101e-02 + 7.47682672e-02 7.48847215e-02 7.50010726e-02 7.51173201e-02 7.52334634e-02 + 7.53495022e-02 7.54654360e-02 7.55812644e-02 7.56969868e-02 7.58126029e-02 + 7.59281122e-02 7.60435142e-02 7.61588086e-02 7.62739948e-02 7.63890725e-02 + 7.65040412e-02 7.66189005e-02 7.67336500e-02 7.68482891e-02 7.69628176e-02 + 7.70772349e-02 7.71915407e-02 7.73057346e-02 7.74198160e-02 7.75337846e-02 + 7.76476400e-02 7.77613818e-02 7.78750096e-02 7.79885229e-02 7.81019214e-02 + 7.82152046e-02 7.83283722e-02 7.84414237e-02 7.85543587e-02 7.86671770e-02 + 7.87798779e-02 7.88924613e-02 7.90049266e-02 7.91172736e-02 7.92295017e-02 + 7.93416107e-02 7.94536001e-02 7.95654696e-02 7.96772188e-02 7.97888473e-02 + 7.99003547e-02 8.00117407e-02 8.01230050e-02 8.02341470e-02 8.03451666e-02 + 8.04560632e-02 8.05668367e-02 8.06774865e-02 8.07880123e-02 8.08984138e-02 + 8.10086907e-02 8.11188426e-02 8.12288690e-02 8.13387698e-02 8.14485445e-02 + 8.15581929e-02 8.16677145e-02 8.17771090e-02 8.18863761e-02 8.19955155e-02 + 8.21045268e-02 8.22134097e-02 8.23221639e-02 8.24307890e-02 8.25392847e-02 + 8.26476508e-02 8.27558868e-02 8.28639925e-02 8.29719676e-02 8.30798116e-02 + 8.31875245e-02 8.32951057e-02 8.34025550e-02 8.35098722e-02 8.36170568e-02 + 8.37241087e-02 8.38310274e-02 8.39378128e-02 8.40444645e-02 8.41509822e-02 + 8.42573656e-02 8.43636145e-02 8.44697286e-02 8.45757075e-02 8.46815510e-02 + 8.47872588e-02 8.48928306e-02 8.49982662e-02 8.51035653e-02 8.52087276e-02 + 8.53137528e-02 8.54186407e-02 8.55233910e-02 8.56280034e-02 8.57324777e-02 + 8.58368136e-02 8.59410109e-02 8.60450693e-02 8.61489885e-02 8.62527683e-02 + 8.63564085e-02 8.64599088e-02 8.65632689e-02 8.66664887e-02 8.67695678e-02 + 8.68725060e-02 8.69753031e-02 8.70779589e-02 8.71804730e-02 8.72828454e-02 + 8.73850757e-02 8.74871638e-02 8.75891093e-02 8.76909121e-02 8.77925720e-02 + 8.78940887e-02 8.79954620e-02 8.80966917e-02 8.81977776e-02 8.82987195e-02 + 8.83995171e-02 8.85001703e-02 8.86006788e-02 8.87010425e-02 8.88012610e-02 + 8.89013344e-02 8.90012622e-02 8.91010444e-02 8.92006808e-02 8.93001711e-02 + 8.93995152e-02 8.94987128e-02 8.95977638e-02 8.96966680e-02 8.97954252e-02 + 8.98940353e-02 8.99924980e-02 9.00908132e-02 9.01889806e-02 9.02870002e-02 + 9.03848718e-02 9.04825951e-02 9.05801701e-02 9.06775965e-02 9.07748742e-02 + 9.08720029e-02 9.09689827e-02 9.10658132e-02 9.11624944e-02 9.12590261e-02 + 9.13554081e-02 9.14516403e-02 9.15477225e-02 9.16436547e-02 9.17394365e-02 + 9.18350679e-02 9.19305488e-02 9.20258790e-02 9.21210584e-02 9.22160868e-02 + 9.23109641e-02 9.24056902e-02 9.25002649e-02 9.25946881e-02 9.26889596e-02 + 9.27830795e-02 9.28770474e-02 9.29708634e-02 9.30645273e-02 9.31580389e-02 + 9.32513981e-02 9.33446049e-02 9.34376591e-02 9.35305607e-02 9.36233094e-02 + 9.37159052e-02 9.38083480e-02 9.39006377e-02 9.39927741e-02 9.40847572e-02 + 9.41765869e-02 9.42682631e-02 9.43597856e-02 9.44511545e-02 9.45423695e-02 + 9.46334306e-02 9.47243378e-02 9.48150908e-02 9.49056898e-02 9.49961344e-02 + 9.50864248e-02 9.51765607e-02 9.52665422e-02 9.53563691e-02 9.54460414e-02 + 9.55355589e-02 9.56249217e-02 9.57141296e-02 9.58031826e-02 9.58920806e-02 + 9.59808236e-02 9.60694114e-02 9.61578440e-02 9.62461215e-02 9.63342436e-02 + 9.64222103e-02 9.65100217e-02 9.65976776e-02 9.66851779e-02 9.67725227e-02 + 9.68597119e-02 9.69467454e-02 9.70336232e-02 9.71203453e-02 9.72069115e-02 + 9.72933219e-02 9.73795765e-02 9.74656751e-02 9.75516178e-02 9.76374044e-02 + 9.77230351e-02 9.78085097e-02 9.78938282e-02 9.79789907e-02 9.80639969e-02 + 9.81488471e-02 9.82335410e-02 9.83180787e-02 9.84024602e-02 9.84866854e-02 + 9.85707544e-02 9.86546671e-02 9.87384235e-02 9.88220236e-02 9.89054674e-02 + 9.89887548e-02 9.90718859e-02 9.91548606e-02 9.92376790e-02 9.93203411e-02 + 9.94028467e-02 9.94851960e-02 9.95673890e-02 9.96494256e-02 9.97313058e-02 + 9.98130297e-02 9.98945972e-02 9.99760084e-02 1.00057263e-01 1.00138362e-01 + 1.00219304e-01 1.00300090e-01 1.00380720e-01 1.00461193e-01 1.00541510e-01 + 1.00621671e-01 1.00701676e-01 1.00781524e-01 1.00861217e-01 1.00940753e-01 + 1.01020133e-01 1.01099357e-01 1.01178425e-01 1.01257337e-01 1.01336093e-01 + 1.01414693e-01 1.01493137e-01 1.01571425e-01 1.01649557e-01 1.01727534e-01 + 1.01805354e-01 1.01883019e-01 1.01960528e-01 1.02037882e-01 1.02115080e-01 + 1.02192122e-01 1.02269009e-01 1.02345741e-01 1.02422317e-01 1.02498737e-01 + 1.02575002e-01 1.02651112e-01 1.02727067e-01 1.02802867e-01 1.02878511e-01 + 1.02954001e-01 1.03029335e-01 1.03104515e-01 1.03179540e-01 1.03254410e-01 + 1.03329125e-01 1.03403685e-01 1.03478091e-01 1.03552343e-01 1.03626440e-01 + 1.03700382e-01 1.03774170e-01 1.03847804e-01 1.03921284e-01 1.03994610e-01 + 1.04067782e-01 1.04140799e-01 1.04213663e-01 1.04286373e-01 1.04358930e-01 + 1.04431332e-01 1.04503582e-01 1.04575677e-01 1.04647620e-01 1.04719409e-01 + 1.04791045e-01 1.04862528e-01 1.04933857e-01 1.05005034e-01 1.05076058e-01 + 1.05146930e-01 1.05217648e-01 1.05288214e-01 1.05358628e-01 1.05428889e-01 + 1.05498998e-01 1.05568955e-01 1.05638760e-01 1.05708413e-01 1.05777914e-01 + 1.05847263e-01 1.05916461e-01 1.05985507e-01 1.06054401e-01 1.06123145e-01 + 1.06191737e-01 1.06260178e-01 1.06328468e-01 1.06396607e-01 1.06464595e-01 + 1.06532433e-01 1.06600120e-01 1.06667657e-01 1.06735043e-01 1.06802280e-01 + 1.06869366e-01 1.06936302e-01 1.07003089e-01 1.07069725e-01 1.07136212e-01 + 1.07202550e-01 1.07268738e-01 1.07334777e-01 1.07400667e-01 1.07466408e-01 + 1.07532001e-01 1.07597444e-01 1.07662739e-01 1.07727885e-01 1.07792884e-01 + 1.07857734e-01 1.07922436e-01 1.07986990e-01 1.08051396e-01 1.08115655e-01 + 1.08179766e-01 1.08243729e-01 1.08307546e-01 1.08371215e-01 1.08434738e-01 + 1.08498114e-01 1.08561343e-01 1.08624425e-01 1.08687361e-01 1.08750151e-01 + 1.08812795e-01 1.08875293e-01 1.08937645e-01 1.08999851e-01 1.09061912e-01 + 1.09123828e-01 1.09185598e-01 1.09247224e-01 1.09308704e-01 1.09370040e-01 + 1.09431231e-01 1.09492278e-01 1.09553180e-01 1.09613938e-01 1.09674553e-01 + 1.09735023e-01 1.09795350e-01 1.09855533e-01 1.09915573e-01 1.09975470e-01 + 1.10035224e-01 1.10094835e-01 1.10154303e-01 1.10213628e-01 1.10272812e-01 + 1.10331853e-01 1.10390752e-01 1.10449509e-01 1.10508124e-01 1.10566598e-01 + 1.10624931e-01 1.10683122e-01 1.10741172e-01 1.10799082e-01 1.10856850e-01 + 1.10914478e-01 1.10971966e-01 1.11029314e-01 1.11086521e-01 1.11143589e-01 + 1.11200517e-01 1.11257305e-01 1.11313955e-01 1.11370465e-01 1.11426836e-01 + 1.11483068e-01 1.11539162e-01 1.11595117e-01 1.11650934e-01 1.11706612e-01 + 1.11762153e-01 1.11817557e-01 1.11872822e-01 1.11927951e-01 1.11982942e-01 + 1.12037796e-01 1.12092513e-01 1.12147094e-01 1.12201538e-01 1.12255846e-01 + 1.12310017e-01 1.12364053e-01 1.12417954e-01 1.12471718e-01 1.12525348e-01 + 1.12578842e-01 1.12632201e-01 1.12685425e-01 1.12738515e-01 1.12791471e-01 + 1.12844292e-01 1.12896979e-01 1.12949532e-01 1.13001952e-01 1.13054238e-01 + 1.13106391e-01 1.13158411e-01 1.13210299e-01 1.13262053e-01 1.13313675e-01 + 1.13365165e-01 1.13416522e-01 1.13467748e-01 1.13518842e-01 1.13569804e-01 + 1.13620635e-01 1.13671335e-01 1.13721904e-01 1.13772343e-01 1.13822651e-01 + 1.13872828e-01 1.13922876e-01 1.13972793e-01 1.14022581e-01 1.14072239e-01 + 1.14121768e-01 1.14171168e-01 1.14220439e-01 1.14269581e-01 1.14318594e-01 + 1.14367480e-01 1.14416237e-01 1.14464866e-01 1.14513368e-01 1.14561742e-01 + 1.14609988e-01 1.14658108e-01 1.14706101e-01 1.14753967e-01 1.14801706e-01 + 1.14849320e-01 1.14896807e-01 1.14944168e-01 1.14991404e-01 1.15038514e-01 + 1.15085499e-01 1.15132359e-01 1.15179094e-01 1.15225704e-01 1.15272190e-01 + 1.15318552e-01 1.15364790e-01 1.15410904e-01 1.15456894e-01 1.15502761e-01 + 1.15548505e-01 1.15594126e-01 1.15639624e-01 1.15685000e-01 1.15730253e-01 + 1.15775384e-01 1.15820394e-01 1.15865281e-01 1.15910047e-01 1.15954692e-01 + 1.15999216e-01 1.16043619e-01 1.16087901e-01 1.16132063e-01 1.16176105e-01 + 1.16220027e-01 1.16263828e-01 1.16307511e-01 1.16351074e-01 1.16394518e-01 + 1.16437842e-01 1.16481049e-01 1.16524136e-01 1.16567106e-01 1.16609957e-01 + 1.16652690e-01 1.16695306e-01 1.16737805e-01 1.16780186e-01 1.16822450e-01 + 1.16864597e-01 1.16906628e-01 1.16948543e-01 1.16990341e-01 1.17032023e-01 + 1.17073590e-01 1.17115041e-01 1.17156377e-01 1.17197598e-01 1.17238704e-01 + 1.17279696e-01 1.17320573e-01 1.17361336e-01 1.17401984e-01 1.17442520e-01 + 1.17482941e-01 1.17523249e-01 1.17563445e-01 1.17603527e-01 1.17643497e-01 + 1.17683354e-01 1.17723099e-01 1.17762732e-01 1.17802253e-01 1.17841662e-01 + 1.17880961e-01 1.17920148e-01 1.17959224e-01 1.17998189e-01 1.18037044e-01 + 0.00000000e+00 7.21069637e-07 2.87393769e-06 6.44313909e-06 1.14132704e-05 + 1.77689899e-05 2.54950175e-05 3.45761350e-05 4.49971859e-05 5.67430756e-05 + 6.97987714e-05 8.41493023e-05 9.97797595e-05 1.16675296e-04 1.34821127e-04 + 1.54202530e-04 1.74804843e-04 1.96613468e-04 2.19613868e-04 2.43791569e-04 + 2.69132158e-04 2.95621286e-04 3.23244664e-04 3.51988067e-04 3.81837331e-04 + 4.12778355e-04 4.44797101e-04 4.77879591e-04 5.12011912e-04 5.47180212e-04 + 5.83370701e-04 6.20569653e-04 6.58763402e-04 6.97938346e-04 7.38080946e-04 + 7.79177724e-04 8.21215265e-04 8.64180217e-04 9.08059290e-04 9.52839256e-04 + 9.98506949e-04 1.04504927e-03 1.09245317e-03 1.14070568e-03 1.18979389e-03 + 1.23970493e-03 1.29042603e-03 1.34194444e-03 1.39424752e-03 1.44732264e-03 + 1.50115728e-03 1.55573896e-03 1.61105526e-03 1.66709382e-03 1.72384237e-03 + 1.78128866e-03 1.83942054e-03 1.89822590e-03 1.95769270e-03 2.01780896e-03 + 2.07856277e-03 2.13994227e-03 2.20193567e-03 2.26453125e-03 2.32771733e-03 + 2.39148232e-03 2.45581467e-03 2.52070290e-03 2.58613560e-03 2.65210140e-03 + 2.71858902e-03 2.78558723e-03 2.85308485e-03 2.92107079e-03 2.98953399e-03 + 3.05846348e-03 3.12784833e-03 3.19767769e-03 3.26794076e-03 3.33862681e-03 + 3.40972516e-03 3.48122520e-03 3.55311639e-03 3.62538824e-03 3.69803032e-03 + 3.77103228e-03 3.84438380e-03 3.91807465e-03 3.99209466e-03 4.06643370e-03 + 4.14108172e-03 4.21602872e-03 4.29126479e-03 4.36678003e-03 4.44256466e-03 + 4.51860891e-03 4.59490310e-03 4.67143761e-03 4.74820286e-03 4.82518937e-03 + 4.90238769e-03 4.97978843e-03 5.05738227e-03 5.13515997e-03 5.21311231e-03 + 5.29123016e-03 5.36950445e-03 5.44792616e-03 5.52648633e-03 5.60517607e-03 + 5.68398655e-03 5.76290899e-03 5.84193467e-03 5.92105496e-03 6.00026124e-03 + 6.07954500e-03 6.15889775e-03 6.23831109e-03 6.31777667e-03 6.39728618e-03 + 6.47683141e-03 6.55640417e-03 6.63599636e-03 6.71559991e-03 6.79520684e-03 + 6.87480922e-03 6.95439916e-03 7.03396886e-03 7.11351055e-03 7.19301654e-03 + 7.27247919e-03 7.35189093e-03 7.43124423e-03 7.51053163e-03 7.58974574e-03 + 7.66887920e-03 7.74792473e-03 7.82687511e-03 7.90572317e-03 7.98446180e-03 + 8.06308394e-03 8.14158262e-03 8.21995088e-03 8.29818186e-03 8.37626873e-03 + 8.45420474e-03 8.53198318e-03 8.60959741e-03 8.68704084e-03 8.76430693e-03 + 8.84138922e-03 8.91828129e-03 8.99497678e-03 9.07146939e-03 9.14775287e-03 + 9.22382104e-03 9.29966777e-03 9.37528698e-03 9.45067266e-03 9.52581884e-03 + 9.60071962e-03 9.67536915e-03 9.74976163e-03 9.82389135e-03 9.89775260e-03 + 9.97133977e-03 1.00446473e-02 1.01176696e-02 1.01904014e-02 1.02628371e-02 + 1.03349714e-02 1.04067991e-02 1.04783149e-02 1.05495136e-02 1.06203901e-02 + 1.06909393e-02 1.07611563e-02 1.08310359e-02 1.09005734e-02 1.09697639e-02 + 1.10386026e-02 1.11070846e-02 1.11752055e-02 1.12429604e-02 1.13103449e-02 + 1.13773543e-02 1.14439842e-02 1.15102303e-02 1.15760880e-02 1.16415531e-02 + 1.17066214e-02 1.17712886e-02 1.18355505e-02 1.18994031e-02 1.19628422e-02 + 1.20258640e-02 1.20884644e-02 1.21506395e-02 1.22123856e-02 1.22736987e-02 + 1.23345752e-02 1.23950113e-02 1.24550035e-02 1.25145481e-02 1.25736416e-02 + 1.26322805e-02 1.26904613e-02 1.27481808e-02 1.28054355e-02 1.28622221e-02 + 1.29185375e-02 1.29743784e-02 1.30297417e-02 1.30846244e-02 1.31390233e-02 + 1.31929355e-02 1.32463581e-02 1.32992881e-02 1.33517228e-02 1.34036593e-02 + 1.34550949e-02 1.35060269e-02 1.35564527e-02 1.36063696e-02 1.36557752e-02 + 1.37046669e-02 1.37530423e-02 1.38008989e-02 1.38482344e-02 1.38950466e-02 + 1.39413330e-02 1.39870916e-02 1.40323202e-02 1.40770166e-02 1.41211787e-02 + 1.41648046e-02 1.42078922e-02 1.42504396e-02 1.42924450e-02 1.43339064e-02 + 1.43748221e-02 1.44151903e-02 1.44550094e-02 1.44942776e-02 1.45329934e-02 + 1.45711551e-02 1.46087613e-02 1.46458104e-02 1.46823011e-02 1.47182318e-02 + 1.47536014e-02 1.47884084e-02 1.48226516e-02 1.48563299e-02 1.48894419e-02 + 1.49219866e-02 1.49539629e-02 1.49853697e-02 1.50162061e-02 1.50464710e-02 + 1.50761636e-02 1.51052830e-02 1.51338283e-02 1.51617988e-02 1.51891936e-02 + 1.52160122e-02 1.52422538e-02 1.52679177e-02 1.52930035e-02 1.53175105e-02 + 1.53414383e-02 1.53647864e-02 1.53875543e-02 1.54097417e-02 1.54313483e-02 + 1.54523737e-02 1.54728176e-02 1.54926799e-02 1.55119603e-02 1.55306587e-02 + 1.55487751e-02 1.55663092e-02 1.55832611e-02 1.55996309e-02 1.56154184e-02 + 1.56306239e-02 1.56452475e-02 1.56592892e-02 1.56727493e-02 1.56856281e-02 + 1.56979258e-02 1.57096426e-02 1.57207790e-02 1.57313354e-02 1.57413121e-02 + 1.57507095e-02 1.57595283e-02 1.57677688e-02 1.57754317e-02 1.57825176e-02 + 1.57890270e-02 1.57949607e-02 1.58003193e-02 1.58051036e-02 1.58093144e-02 + 1.58129524e-02 1.58160185e-02 1.58185135e-02 1.58204384e-02 1.58217941e-02 + 1.58225815e-02 1.58228017e-02 1.58224557e-02 1.58215446e-02 1.58200695e-02 + 1.58180314e-02 1.58154316e-02 1.58122713e-02 1.58085517e-02 1.58042740e-02 + 1.57994396e-02 1.57940497e-02 1.57881058e-02 1.57816092e-02 1.57745612e-02 + 1.57669635e-02 1.57588174e-02 1.57501244e-02 1.57408862e-02 1.57311041e-02 + 1.57207799e-02 1.57099152e-02 1.56985116e-02 1.56865708e-02 1.56740944e-02 + 1.56610844e-02 1.56475423e-02 1.56334700e-02 1.56188694e-02 1.56037422e-02 + 1.55880904e-02 1.55719159e-02 1.55552205e-02 1.55380063e-02 1.55202751e-02 + 1.55020292e-02 1.54832704e-02 1.54640008e-02 1.54442226e-02 1.54239378e-02 + 1.54031486e-02 1.53818571e-02 1.53600655e-02 1.53377761e-02 1.53149911e-02 + 1.52917128e-02 1.52679433e-02 1.52436851e-02 1.52189406e-02 1.51937119e-02 + 1.51680016e-02 1.51418120e-02 1.51151455e-02 1.50880047e-02 1.50603920e-02 + 1.50323098e-02 1.50037607e-02 1.49747473e-02 1.49452721e-02 1.49153377e-02 + 1.48849466e-02 1.48541016e-02 1.48228052e-02 1.47910602e-02 1.47588692e-02 + 1.47262349e-02 1.46931601e-02 1.46596475e-02 1.46256998e-02 1.45913200e-02 + 1.45565107e-02 1.45212748e-02 1.44856151e-02 1.44495346e-02 1.44130360e-02 + 1.43761224e-02 1.43387965e-02 1.43010615e-02 1.42629201e-02 1.42243754e-02 + 1.41854304e-02 1.41460881e-02 1.41063514e-02 1.40662236e-02 1.40257075e-02 + 1.39848063e-02 1.39435230e-02 1.39018609e-02 1.38598229e-02 1.38174123e-02 + 1.37746322e-02 1.37314857e-02 1.36879760e-02 1.36441064e-02 1.35998801e-02 + 1.35553002e-02 1.35103700e-02 1.34650928e-02 1.34194718e-02 1.33735104e-02 + 1.33272118e-02 1.32805793e-02 1.32336162e-02 1.31863260e-02 1.31387118e-02 + 1.30907772e-02 1.30425254e-02 1.29939598e-02 1.29450839e-02 1.28959010e-02 + 1.28464146e-02 1.27966281e-02 1.27465449e-02 1.26961685e-02 1.26455023e-02 + 1.25945499e-02 1.25433146e-02 1.24918000e-02 1.24400097e-02 1.23879470e-02 + 1.23356156e-02 1.22830189e-02 1.22301605e-02 1.21770439e-02 1.21236728e-02 + 1.20700506e-02 1.20161810e-02 1.19620674e-02 1.19077136e-02 1.18531231e-02 + 1.17982995e-02 1.17432464e-02 1.16879675e-02 1.16324664e-02 1.15767466e-02 + 1.15208119e-02 1.14646658e-02 1.14083121e-02 1.13517544e-02 1.12949964e-02 + 1.12380417e-02 1.11808940e-02 1.11235569e-02 1.10660343e-02 1.10083296e-02 + 1.09504468e-02 1.08923894e-02 1.08341611e-02 1.07757657e-02 1.07172069e-02 + 1.06584883e-02 1.05996138e-02 1.05405870e-02 1.04814116e-02 1.04220914e-02 + 1.03626301e-02 1.03030315e-02 1.02432992e-02 1.01834370e-02 1.01234487e-02 + 1.00633380e-02 1.00031086e-02 9.94276435e-03 9.88230889e-03 9.82174601e-03 + 9.76107946e-03 9.70031298e-03 9.63945032e-03 9.57849524e-03 9.51745148e-03 + 9.45632281e-03 9.39511296e-03 9.33382569e-03 9.27246474e-03 9.21103388e-03 + 9.14953684e-03 9.08797738e-03 9.02635924e-03 8.96468616e-03 8.90296189e-03 + 8.84119018e-03 8.77937476e-03 8.71751937e-03 8.65562775e-03 8.59370363e-03 + 8.53175075e-03 8.46977283e-03 8.40777359e-03 8.34575677e-03 8.28372608e-03 + 8.22168524e-03 8.15963796e-03 8.09758795e-03 8.03553892e-03 7.97349457e-03 + 7.91145859e-03 7.84943468e-03 7.78742653e-03 7.72543782e-03 7.66347224e-03 + 7.60153345e-03 7.53962513e-03 7.47775093e-03 7.41591453e-03 7.35411956e-03 + 7.29236969e-03 7.23066854e-03 7.16901976e-03 7.10742698e-03 7.04589381e-03 + 6.98442388e-03 6.92302079e-03 6.86168815e-03 6.80042955e-03 6.73924858e-03 + 6.67814882e-03 6.61713385e-03 6.55620723e-03 6.49537252e-03 6.43463328e-03 + 6.37399304e-03 6.31345533e-03 6.25302370e-03 6.19270165e-03 6.13249269e-03 + 6.07240032e-03 6.01242804e-03 5.95257933e-03 5.89285766e-03 5.83326649e-03 + 5.77380928e-03 5.71448947e-03 5.65531051e-03 5.59627581e-03 5.53738879e-03 + 5.47865285e-03 5.42007139e-03 5.36164780e-03 5.30338545e-03 5.24528770e-03 + 5.18735790e-03 5.12959940e-03 5.07201552e-03 5.01460958e-03 4.95738490e-03 + 4.90034477e-03 4.84349247e-03 4.78683128e-03 4.73036445e-03 4.67409524e-03 + 4.61802688e-03 4.56216259e-03 4.50650560e-03 4.45105909e-03 4.39582627e-03 + 4.34081029e-03 4.28601432e-03 4.23144152e-03 4.17709501e-03 4.12297792e-03 + 4.06909335e-03 4.01544441e-03 3.96203417e-03 3.90886570e-03 3.85594206e-03 + 3.80326629e-03 3.75084141e-03 3.69867044e-03 3.64675637e-03 3.59510219e-03 + 3.54371086e-03 3.49258535e-03 3.44172859e-03 3.39114350e-03 3.34083300e-03 + 3.29079998e-03 3.24104732e-03 3.19157789e-03 3.14239453e-03 3.09350009e-03 + 3.04489737e-03 2.99658919e-03 2.94857832e-03 2.90086754e-03 2.85345962e-03 + 2.80635727e-03 2.75956324e-03 2.71308022e-03 2.66691091e-03 2.62105798e-03 + 2.57552409e-03 2.53031188e-03 2.48542398e-03 2.44086299e-03 2.39663151e-03 + 2.35273210e-03 2.30916734e-03 2.26593975e-03 2.22305186e-03 2.18050618e-03 + 2.13830519e-03 2.09645137e-03 2.05494716e-03 2.01379501e-03 1.97299733e-03 + 1.93255653e-03 1.89247498e-03 1.85275505e-03 1.81339909e-03 1.77440942e-03 + 1.73578836e-03 1.69753820e-03 1.65966122e-03 1.62215965e-03 1.58503576e-03 + 1.54829175e-03 1.51192982e-03 1.47595216e-03 1.44036093e-03 1.40515827e-03 + 1.37034631e-03 1.33592716e-03 1.30190290e-03 1.26827560e-03 1.23504731e-03 + 1.20222006e-03 1.16979586e-03 1.13777671e-03 1.10616457e-03 1.07496140e-03 + 1.04416914e-03 1.01378970e-03 9.83824969e-04 9.54276828e-04 9.25147131e-04 + 8.96437715e-04 8.68150396e-04 8.40286972e-04 8.12849218e-04 7.85838891e-04 + 7.59257730e-04 7.33107451e-04 7.07389751e-04 6.82106308e-04 6.57258779e-04 + 6.32848801e-04 6.08877990e-04 5.85347945e-04 5.62260240e-04 5.39616433e-04 + 5.17418060e-04 4.95666636e-04 4.74363657e-04 4.53510597e-04 4.33108912e-04 + 4.13160036e-04 3.93665382e-04 3.74626344e-04 3.56044295e-04 3.37920586e-04 + 3.20256549e-04 3.03053496e-04 2.86312717e-04 2.70035481e-04 2.54223038e-04 + 2.38876617e-04 2.23997425e-04 2.09586650e-04 1.95645457e-04 1.82174994e-04 + 1.69176383e-04 1.56650731e-04 1.44599120e-04 1.33022613e-04 1.21922252e-04 + 1.11299058e-04 1.01154031e-04 9.14881514e-05 8.23023770e-05 7.35976459e-05 + 6.53748752e-05 5.76349612e-05 5.03787793e-05 4.36071839e-05 3.73210090e-05 + 3.15210675e-05 2.62081515e-05 2.13830322e-05 1.70464604e-05 1.31991656e-05 + 9.84185676e-06 6.97522210e-06 4.59992895e-06 2.71662394e-06 1.32593293e-06 + 4.28461042e-07 2.47926797e-08 1.15491538e-07 7.01100617e-07 1.78214224e-06 + 3.35911808e-06 5.43250917e-06 8.00277591e-06 1.10703581e-05 1.46356750e-05 + 1.86991254e-05 2.32610873e-05 2.83219184e-05 3.38819559e-05 3.99415166e-05 + 4.65008967e-05 5.35603723e-05 6.11201988e-05 6.91806116e-05 7.77418256e-05 + 8.68040355e-05 9.63674158e-05 1.06432121e-04 1.16998284e-04 1.28066021e-04 + 1.39635424e-04 1.51706568e-04 1.64279507e-04 1.77354274e-04 1.90930884e-04 + 2.05009331e-04 2.19589589e-04 2.34671614e-04 2.50255339e-04 2.66340680e-04 + 2.82927533e-04 3.00015773e-04 3.17605258e-04 3.35695825e-04 3.54287290e-04 + 3.73379453e-04 3.92972092e-04 4.13064968e-04 4.33657820e-04 4.54750370e-04 + 4.76342321e-04 4.98433355e-04 5.21023138e-04 5.44111315e-04 5.67697513e-04 + 5.91781339e-04 6.16362383e-04 6.41440216e-04 6.67014390e-04 6.93084439e-04 + 7.19649877e-04 7.46710203e-04 7.74264894e-04 8.02313411e-04 8.30855196e-04 + 8.59889675e-04 8.89416252e-04 9.19434318e-04 9.49943242e-04 9.80942378e-04 + 1.01243106e-03 1.04440861e-03 1.07687432e-03 1.10982748e-03 1.14326736e-03 + 1.17719320e-03 1.21160423e-03 1.24649967e-03 1.28187871e-03 1.31774054e-03 + 1.35408432e-03 1.39090920e-03 1.42821430e-03 1.46599875e-03 1.50426163e-03 + 1.54300203e-03 1.58221902e-03 1.62191164e-03 1.66207893e-03 1.70271991e-03 + 1.74383357e-03 1.78541889e-03 1.82747486e-03 1.87000043e-03 1.91299453e-03 + 1.95645609e-03 2.00038401e-03 2.04477720e-03 2.08963453e-03 2.13495485e-03 + 2.18073704e-03 2.22697990e-03 2.27368228e-03 2.32084296e-03 2.36846075e-03 + 2.41653443e-03 2.46506274e-03 2.51404445e-03 2.56347828e-03 2.61336297e-03 + 2.66369722e-03 2.71447972e-03 2.76570915e-03 2.81738418e-03 2.86950348e-03 + 2.92206567e-03 2.97506939e-03 3.02851326e-03 3.08239588e-03 3.13671584e-03 + 3.19147173e-03 3.24666210e-03 3.30228551e-03 3.35834052e-03 3.41482564e-03 + 3.47173940e-03 3.52908031e-03 3.58684686e-03 3.64503754e-03 3.70365083e-03 + 3.76268518e-03 3.82213906e-03 3.88201090e-03 3.94229914e-03 4.00300220e-03 + 4.06411848e-03 4.12564639e-03 4.18758433e-03 4.24993067e-03 4.31268378e-03 + 4.37584203e-03 4.43940377e-03 4.50336734e-03 4.56773109e-03 4.63249332e-03 + 4.69765237e-03 4.76320654e-03 4.82915413e-03 4.89549343e-03 4.96222273e-03 + 5.02934030e-03 5.09684441e-03 5.16473332e-03 5.23300528e-03 5.30165854e-03 + 5.37069134e-03 5.44010191e-03 5.50988847e-03 5.58004924e-03 5.65058244e-03 + 5.72148626e-03 5.79275891e-03 5.86439858e-03 5.93640345e-03 6.00877172e-03 + 6.08150155e-03 6.15459112e-03 6.22803858e-03 6.30184211e-03 6.37599985e-03 + 6.45050997e-03 6.52537060e-03 6.60057988e-03 6.67613596e-03 6.75203698e-03 + 6.82828105e-03 6.90486631e-03 6.98179088e-03 7.05905289e-03 7.13665044e-03 + 7.21458166e-03 7.29284466e-03 7.37143754e-03 7.45035841e-03 7.52960538e-03 + 7.60917656e-03 7.68907003e-03 7.76928391e-03 7.84981629e-03 7.93066527e-03 + 8.01182895e-03 8.09330541e-03 8.17509277e-03 8.25718910e-03 8.33959250e-03 + 8.42230108e-03 8.50531292e-03 8.58862611e-03 8.67223876e-03 8.75614896e-03 + 8.84035481e-03 8.92485441e-03 9.00964584e-03 9.09472723e-03 9.18009666e-03 + 9.26575225e-03 9.35169210e-03 9.43791432e-03 9.52441702e-03 9.61119832e-03 + 9.69825633e-03 9.78558918e-03 9.87319498e-03 9.96107188e-03 1.00492180e-02 + 1.01376315e-02 1.02263104e-02 1.03152530e-02 1.04044574e-02 1.04939217e-02 + 1.05836441e-02 1.06736228e-02 1.07638559e-02 1.08543416e-02 1.09450781e-02 + 1.10360636e-02 1.11272962e-02 1.12187742e-02 1.13104958e-02 1.14024591e-02 + 1.14946625e-02 1.15871040e-02 1.16797821e-02 1.17726948e-02 1.18658405e-02 + 1.19592175e-02 1.20528239e-02 1.21466580e-02 1.22407183e-02 1.23350028e-02 + 1.24295100e-02 1.25242382e-02 1.26191856e-02 1.27143506e-02 1.28097316e-02 + 1.29053269e-02 1.30011349e-02 1.30971539e-02 1.31933823e-02 1.32898186e-02 + 1.33864611e-02 1.34833083e-02 1.35803585e-02 1.36776103e-02 1.37750621e-02 + 1.38727123e-02 1.39705595e-02 1.40686021e-02 1.41668387e-02 1.42652677e-02 + 1.43638877e-02 1.44626973e-02 1.45616950e-02 1.46608794e-02 1.47602491e-02 + 1.48598027e-02 1.49595389e-02 1.50594562e-02 1.51595533e-02 1.52598289e-02 + 1.53602817e-02 1.54609104e-02 1.55617136e-02 1.56626903e-02 1.57638390e-02 + 1.58651585e-02 1.59666478e-02 1.60683054e-02 1.61701304e-02 1.62721215e-02 + 1.63742776e-02 1.64765975e-02 1.65790802e-02 1.66817246e-02 1.67845297e-02 + 1.68874943e-02 1.69906174e-02 1.70938981e-02 1.71973354e-02 1.73009283e-02 + 1.74046758e-02 1.75085771e-02 1.76126313e-02 1.77168374e-02 1.78211946e-02 + 1.79257022e-02 1.80303592e-02 1.81351648e-02 1.82401184e-02 1.83452192e-02 + 1.84504664e-02 1.85558594e-02 1.86613974e-02 1.87670799e-02 1.88729063e-02 + 1.89788758e-02 1.90849880e-02 1.91912422e-02 1.92976381e-02 1.94041749e-02 + 1.95108524e-02 1.96176701e-02 1.97246274e-02 1.98317241e-02 1.99389597e-02 + 2.00463340e-02 2.01538465e-02 2.02614971e-02 2.03692854e-02 2.04772113e-02 + 2.05852745e-02 2.06934748e-02 2.08018121e-02 2.09102863e-02 2.10188973e-02 + 2.11276450e-02 2.12365294e-02 2.13455506e-02 2.14547084e-02 2.15640031e-02 + 2.16734346e-02 2.17830032e-02 2.18927089e-02 2.20025519e-02 2.21125325e-02 + 2.22226510e-02 2.23329075e-02 2.24433024e-02 2.25538360e-02 2.26645088e-02 + 2.27753211e-02 2.28862734e-02 2.29973661e-02 2.31085997e-02 2.32199749e-02 + 2.33314922e-02 2.34431522e-02 2.35549555e-02 2.36669028e-02 2.37789949e-02 + 2.38912325e-02 2.40036163e-02 2.41161473e-02 2.42288263e-02 2.43416541e-02 + 2.44546317e-02 2.45677602e-02 2.46810404e-02 2.47944734e-02 2.49080604e-02 + 2.50218024e-02 2.51357006e-02 2.52497562e-02 2.53639704e-02 2.54783445e-02 + 2.55928799e-02 2.57075779e-02 2.58224398e-02 2.59374671e-02 2.60526613e-02 + 2.61680239e-02 2.62835565e-02 2.63992605e-02 2.65151378e-02 2.66311899e-02 + 2.67474187e-02 2.68638257e-02 2.69804129e-02 2.70971821e-02 2.72141351e-02 + 2.73312740e-02 2.74486006e-02 2.75661170e-02 2.76838253e-02 2.78017276e-02 + 2.79198259e-02 2.80381226e-02 2.81566198e-02 2.82753198e-02 2.83942249e-02 + 2.85133376e-02 2.86326602e-02 2.87521952e-02 2.88719451e-02 2.89919124e-02 + 2.91120998e-02 2.92325099e-02 2.93531454e-02 2.94740090e-02 2.95951036e-02 + 2.97164319e-02 2.98379969e-02 2.99598014e-02 3.00818485e-02 3.02041411e-02 + 3.03266825e-02 3.04494756e-02 3.05725236e-02 3.06958298e-02 3.08193975e-02 + 3.09432300e-02 3.10673306e-02 3.11917028e-02 3.13163500e-02 3.14412758e-02 + 3.15664837e-02 3.16919774e-02 3.18177606e-02 3.19438369e-02 3.20702102e-02 + 3.21968843e-02 3.23238631e-02 3.24511504e-02 3.25787504e-02 3.27066671e-02 + 3.28349045e-02 3.29634668e-02 3.30923581e-02 3.32215829e-02 3.33511453e-02 + 3.34810498e-02 3.36113007e-02 3.37419026e-02 3.38728600e-02 3.40041774e-02 + 3.41358595e-02 3.42679109e-02 3.44003366e-02 3.45331412e-02 3.46663296e-02 + 3.47999067e-02 3.49338776e-02 3.50682472e-02 3.52030207e-02 3.53382032e-02 + 3.54737998e-02 3.56098160e-02 3.57462569e-02 3.58831280e-02 3.60204348e-02 + 3.61581826e-02 3.62963771e-02 3.64350239e-02 3.65741287e-02 3.67136971e-02 + 3.68537351e-02 3.69942484e-02 3.71352429e-02 3.72767247e-02 3.74186997e-02 + 3.75611742e-02 3.77041541e-02 3.78476458e-02 3.79916555e-02 3.81361895e-02 + 3.82812543e-02 3.84268564e-02 3.85730022e-02 3.87196983e-02 3.88669514e-02 + 3.90147683e-02 3.91631556e-02 3.93121202e-02 3.94616691e-02 3.96118091e-02 + 3.97625473e-02 3.99138909e-02 4.00658470e-02 4.02184227e-02 4.03716254e-02 + 4.05254624e-02 4.06799412e-02 4.08350692e-02 4.09908540e-02 4.11473032e-02 + 4.13044244e-02 4.14622254e-02 4.16207140e-02 4.17798981e-02 4.19397857e-02 + 4.21003846e-02 4.22617031e-02 4.24237492e-02 4.25865311e-02 4.27500572e-02 + 4.29143358e-02 4.30793752e-02 4.32451840e-02 4.34117706e-02 4.35791438e-02 + 4.37473122e-02 4.39162845e-02 4.40860696e-02 4.42566763e-02 4.44281136e-02 + 4.46003905e-02 4.47735162e-02 4.49474997e-02 4.51223503e-02 4.52980774e-02 + 4.54746902e-02 4.56521983e-02 4.58306111e-02 4.60099382e-02 4.61901893e-02 + 4.63713741e-02 4.65535024e-02 4.67365841e-02 4.69206290e-02 4.71056473e-02 + 4.72916489e-02 4.74786441e-02 4.76666430e-02 4.78556559e-02 4.80456933e-02 + 4.82367655e-02 4.84288831e-02 4.86220567e-02 4.88162968e-02 4.90116143e-02 + 4.92080199e-02 4.94055246e-02 4.96041392e-02 4.98038747e-02 5.00047424e-02 + 5.02067532e-02 5.04099186e-02 5.06142498e-02 5.08197581e-02 5.10264551e-02 + 5.12343523e-02 5.14434613e-02 5.16537938e-02 5.18653616e-02 5.20781765e-02 + 5.22922503e-02 5.25075952e-02 5.27242231e-02 5.29421462e-02 5.31613767e-02 + 5.33819268e-02 5.36038091e-02 5.38270358e-02 5.40516196e-02 5.42775730e-02 + 5.45049086e-02 5.47336392e-02 5.49637777e-02 5.51953370e-02 5.54283299e-02 + 5.56627696e-02 5.58986692e-02 5.61360419e-02 5.63749010e-02 5.66152598e-02 + 5.68571317e-02 5.71005304e-02 5.73454693e-02 5.75919622e-02 5.78400227e-02 + 5.80896648e-02 5.83409023e-02 5.85937492e-02 5.88482195e-02 5.91043274e-02 + 5.93620871e-02 5.96215130e-02 5.98826193e-02 6.01454205e-02 6.04099311e-02 + 6.06761659e-02 6.09441393e-02 6.12138663e-02 6.14853616e-02 6.17586402e-02 + 6.20337170e-02 6.23106073e-02 6.25893260e-02 6.28698885e-02 6.31523100e-02 + 6.34366061e-02 6.37227921e-02 6.40108836e-02 6.43008963e-02 6.45928458e-02 + 6.48867480e-02 6.51826187e-02 6.54804740e-02 6.57803298e-02 6.60822022e-02 + 6.63861076e-02 6.66920620e-02 6.70000820e-02 6.73101839e-02 6.76223842e-02 + 6.79366996e-02 6.82531468e-02 6.85717424e-02 6.88925034e-02 6.92154467e-02 + 6.95405892e-02 6.98679481e-02 7.01975405e-02 7.05293837e-02 7.08634950e-02 + 7.11998918e-02 7.15385916e-02 7.18796120e-02 7.22229706e-02 7.25686852e-02 + 7.29167735e-02 7.32672535e-02 7.36201432e-02 7.39754605e-02 7.43332238e-02 + 7.46934510e-02 7.50561607e-02 7.54213711e-02 7.57891008e-02 7.61593682e-02 + 7.65321920e-02 7.69075909e-02 7.72855838e-02 7.76661894e-02 7.80494268e-02 + 7.84353149e-02 7.88238730e-02 7.92151201e-02 7.96090757e-02 8.00057589e-02 + 8.04051894e-02 8.08073866e-02 8.12123701e-02 8.16201597e-02 8.20307750e-02 + 8.24442360e-02 8.28605626e-02 8.32797748e-02 8.37018927e-02 8.41269365e-02 + 8.45549265e-02 8.49858830e-02 8.54198264e-02 8.58567773e-02 8.62967562e-02 + 8.67397838e-02 8.71858809e-02 8.76350683e-02 8.80873669e-02 8.85427977e-02 + 8.90013819e-02 8.94631405e-02 8.99280948e-02 9.03962662e-02 9.08676760e-02 + 9.13423458e-02 9.18202971e-02 9.23015516e-02 9.27861310e-02 9.32740571e-02 + 9.37653518e-02 9.42600372e-02 9.47581352e-02 9.52596680e-02 9.57646578e-02 + 9.62731270e-02 9.67850979e-02 9.73005931e-02 9.78196349e-02 9.83422462e-02 + 9.88684495e-02 9.93982677e-02 9.99317237e-02 1.00468840e-01 1.01009641e-01 + 1.01554148e-01 1.02102385e-01 1.02654376e-01 1.03210143e-01 1.03769711e-01 + 1.04333102e-01 1.04900341e-01 1.05471450e-01 1.06046454e-01 1.06625377e-01 + 1.07208242e-01 1.07795073e-01 1.08385896e-01 1.08980733e-01 1.09579608e-01 + 1.10182548e-01 1.10789574e-01 1.11400713e-01 1.12015989e-01 1.12635426e-01 + 1.13259049e-01 1.13886884e-01 1.14518954e-01 1.15155284e-01 1.15795901e-01 + 1.16440828e-01 1.17090092e-01 1.17743717e-01 1.18401728e-01 1.19064152e-01 + 1.19731014e-01 1.20402338e-01 1.21078152e-01 1.21758481e-01 1.22443350e-01 + 1.23132785e-01 1.23826813e-01 1.24525459e-01 1.25228750e-01 1.25936712e-01 + 1.26649371e-01 1.27366754e-01 1.28088886e-01 1.28815795e-01 1.29547507e-01 + 1.30284049e-01 1.31025448e-01 1.31771730e-01 1.32522922e-01 1.33279051e-01 + 1.34040145e-01 1.34806231e-01 1.35577335e-01 1.36353485e-01 1.37134708e-01 + 1.37921033e-01 1.38712486e-01 1.39509094e-01 1.40310887e-01 1.41117891e-01 + 1.41930134e-01 1.42747644e-01 1.43570449e-01 1.44398578e-01 1.45232058e-01 + 1.46070917e-01 1.46915184e-01 1.47764888e-01 1.48620056e-01 1.49480717e-01 + 1.50346899e-01 1.51218632e-01 1.52095944e-01 1.52978863e-01 1.53867420e-01 + 1.54761642e-01 1.55661558e-01 1.56567199e-01 1.57478592e-01 1.58395767e-01 + 1.59318754e-01 1.60247581e-01 1.61182279e-01 1.62122877e-01 1.63069403e-01 + 1.64021889e-01 1.64980364e-01 1.65944857e-01 1.66915399e-01 1.67892019e-01 + 1.68874747e-01 1.69863614e-01 1.70858650e-01 1.71859884e-01 1.72867348e-01 + 1.73881072e-01 1.74901085e-01 1.75927419e-01 1.76960104e-01 1.77999170e-01 + 1.79044650e-01 1.80096572e-01 1.81154968e-01 1.82219870e-01 1.83291308e-01 + 1.84369312e-01 1.85453915e-01 1.86545148e-01 1.87643041e-01 1.88747626e-01 + 1.89858934e-01 1.90976997e-01 1.92101847e-01 1.93233514e-01 1.94372032e-01 + 1.95517430e-01 1.96669742e-01 1.97828999e-01 1.98995233e-01 2.00168475e-01 + 2.01348759e-01 2.02536116e-01 2.03730578e-01 2.04932178e-01 2.06140947e-01 + 2.07356919e-01 2.08580125e-01 2.09810599e-01 2.11048372e-01 2.12293478e-01 + 2.13545949e-01 2.14805817e-01 2.16073116e-01 2.17347879e-01 2.18630138e-01 + 2.19919927e-01 2.21217278e-01 2.22522225e-01 2.23834800e-01 2.25155038e-01 + 2.26482971e-01 2.27818633e-01 2.29162056e-01 2.30513276e-01 2.31872325e-01 + 2.33239236e-01 2.34614044e-01 2.35996782e-01 2.37387484e-01 2.38786184e-01 + 2.40192915e-01 2.41607712e-01 2.43030609e-01 2.44461640e-01 2.45900838e-01 + 2.47348238e-01 2.48803875e-01 2.50267782e-01 2.51739994e-01 2.53220545e-01 + 2.54709470e-01 2.56206803e-01 2.57712579e-01 2.59226833e-01 2.60749598e-01 + 2.62280911e-01 2.63820805e-01 2.65369316e-01 2.66926478e-01 2.68492326e-01 + 2.70066896e-01 2.71650222e-01 2.73242339e-01 2.74843284e-01 2.76453090e-01 + 2.78071793e-01 2.79699428e-01 2.81336031e-01 2.82981638e-01 2.84636282e-01 + 2.86300002e-01 2.87972830e-01 2.89654804e-01 2.91345959e-01 2.93046331e-01 + 2.94755955e-01 2.96474867e-01 2.98203103e-01 2.99940699e-01 3.01687691e-01 + 3.03444115e-01 3.05210007e-01 3.06985403e-01 3.08770338e-01 3.10564851e-01 + 3.12368975e-01 3.14182749e-01 3.16006207e-01 3.17839387e-01 3.19682324e-01 + 3.21535056e-01 3.23397619e-01 3.25270049e-01 3.27152383e-01 3.29044657e-01 + 3.30946908e-01 3.32859173e-01 3.34781489e-01 3.36713892e-01 3.38656419e-01 + 3.40609107e-01 3.42571993e-01 3.44545114e-01 3.46528507e-01 3.48522209e-01 + 3.50526256e-01 3.52540686e-01 3.54565537e-01 3.56600845e-01 3.58646647e-01 + 3.60702982e-01 3.62769885e-01 3.64847394e-01 3.66935548e-01 3.69034382e-01 + 3.71143935e-01 3.73264245e-01 3.75395347e-01 3.77537281e-01 3.79690084e-01 + 3.81853792e-01 3.84028445e-01 3.86214079e-01 3.88410732e-01 3.90618443e-01 + 3.92837248e-01 3.95067186e-01 3.97308294e-01 3.99560611e-01 4.01824174e-01 + 4.04099021e-01 4.06385190e-01 4.08682719e-01 4.10991646e-01 4.13312009e-01 + 4.15643846e-01 4.17987196e-01 4.20342096e-01 4.22708585e-01 4.25086701e-01 + 4.27476482e-01 4.29877965e-01 4.32291191e-01 4.34716196e-01 4.37153020e-01 + 4.39601699e-01 4.42062274e-01 4.44534782e-01 4.47019262e-01 4.49515752e-01 + 4.52024290e-01 4.54544915e-01 4.57077666e-01 4.59622582e-01 4.62179699e-01 + 4.64749058e-01 4.67330697e-01 4.69924655e-01 4.72530970e-01 4.75149680e-01 + 4.77780825e-01 4.80424443e-01 4.83080573e-01 4.85749254e-01 4.88430524e-01 + 4.91124422e-01 4.93830987e-01 4.96550258e-01 4.99282274e-01 5.02027073e-01 + 5.04784694e-01 5.07555177e-01 5.10338560e-01 5.13134881e-01 5.15944181e-01 + 5.18766498e-01 5.21601870e-01 5.24450337e-01 5.27311938e-01 5.30186712e-01 + 5.33074698e-01 5.35975934e-01 5.38890460e-01 5.41818315e-01 5.44759538e-01 + 5.47714168e-01 5.50682244e-01 5.53663805e-01 5.56658890e-01 5.59667539e-01 + 5.62689790e-01 5.65725682e-01 5.68775255e-01 5.71838548e-01 5.74915600e-01 + 5.78006450e-01 5.81111137e-01 5.84229700e-01 5.87362179e-01 5.90508613e-01 + 5.93669040e-01 5.96843501e-01 6.00032034e-01 6.03234678e-01 6.06451473e-01 + 6.09682457e-01 6.12927671e-01 6.16187152e-01 6.19460941e-01 6.22749077e-01 + 6.26051598e-01 6.29368545e-01 6.32699955e-01 6.36045869e-01 6.39406325e-01 + 6.42781363e-01 6.46171022e-01 6.49575341e-01 6.52994360e-01 6.56428116e-01 + 6.59876651e-01 6.63340002e-01 6.66818210e-01 6.70311312e-01 6.73819349e-01 + 6.77342360e-01 6.80880383e-01 6.84433457e-01 6.88001623e-01 6.91584919e-01 + 6.95183384e-01 6.98797058e-01 7.02425979e-01 7.06070186e-01 7.09729719e-01 + 7.13404617e-01 7.17094919e-01 7.20800663e-01 7.24521889e-01 7.28258637e-01 + 7.32010944e-01 7.35778850e-01 7.39562395e-01 7.43361616e-01 7.47176553e-01 + 7.51007246e-01 7.54853732e-01 7.58716051e-01 7.62594242e-01 7.66488343e-01 + 7.70398394e-01 7.74324434e-01 7.78266501e-01 7.82224634e-01 7.86198872e-01 + 7.90189253e-01 7.94195818e-01 7.98218604e-01 8.02257650e-01 8.06312994e-01 + 8.10384677e-01 8.14472736e-01 8.18577209e-01 8.22698137e-01 8.26835556e-01 + 8.30989506e-01 8.35160026e-01 8.39347154e-01 8.43550929e-01 8.47771388e-01 + 8.52008571e-01 8.56262517e-01 8.60533262e-01 8.64820847e-01 8.69125309e-01 + 8.73446687e-01 8.77785019e-01 8.82140343e-01 8.86512698e-01 8.90902122e-01 + 8.95308653e-01 8.99732330e-01 9.04173190e-01 9.08631272e-01 9.13106614e-01 + 9.17599253e-01 9.22109229e-01 9.26636579e-01 9.31181341e-01 9.35743553e-01 + 9.40323253e-01 9.44920479e-01 9.49535268e-01 9.54167659e-01 9.58817690e-01 + 9.63485397e-01 9.68170820e-01 9.72873995e-01 9.77594961e-01 9.82333754e-01 + 9.87090413e-01 9.91864975e-01 9.96657478e-01 1.00146796e+00 1.00629646e+00 + 1.01114300e+00 1.01600764e+00 1.02089041e+00 1.02579134e+00 1.03071048e+00 + 1.03564785e+00 1.04060350e+00 1.04557747e+00 1.05056978e+00 1.05558048e+00 + 1.06060961e+00 1.06565720e+00 1.07072329e+00 1.07580791e+00 1.08091111e+00 + 1.08603291e+00 1.09117337e+00 1.09633250e+00 1.10151035e+00 1.10670696e+00 + 1.11192236e+00 1.11715659e+00 1.12240969e+00 1.12768169e+00 1.13297263e+00 + 1.13828254e+00 1.14361146e+00 1.14895943e+00 1.15432648e+00 1.15971265e+00 + 1.16511798e+00 1.17054250e+00 1.17598625e+00 1.18144926e+00 1.18693156e+00 + 1.19243321e+00 1.19795422e+00 1.20349464e+00 1.20905451e+00 1.21463385e+00 + 1.22023271e+00 1.22585111e+00 1.23148910e+00 1.23714670e+00 1.24282397e+00 + 1.24852092e+00 1.25423760e+00 1.25997404e+00 1.26573027e+00 1.27150634e+00 + 1.27730227e+00 1.28311810e+00 1.28895387e+00 1.29480961e+00 1.30068535e+00 + 1.30658114e+00 1.31249699e+00 1.31843296e+00 1.32438907e+00 1.33036536e+00 + 1.33636186e+00 1.34237861e+00 1.34841563e+00 1.35447298e+00 1.36055067e+00 + 1.36664875e+00 1.37276724e+00 1.37890618e+00 1.38506561e+00 1.39124556e+00 + 1.39744606e+00 1.40366714e+00 1.40990885e+00 1.41617121e+00 1.42245426e+00 + 1.42875802e+00 1.43508254e+00 1.44142785e+00 1.44779398e+00 1.45418096e+00 + 1.46058882e+00 1.46701761e+00 1.47346735e+00 1.47993807e+00 1.48642981e+00 + 1.49294260e+00 1.49947647e+00 1.50603146e+00 1.51260760e+00 1.51920492e+00 + 1.52582344e+00 1.53246322e+00 1.53912427e+00 1.54580663e+00 1.55251033e+00 + 1.55923541e+00 1.56598189e+00 1.57274981e+00 1.57953919e+00 1.58635008e+00 + 1.59318250e+00 1.60003648e+00 1.60691205e+00 1.61380925e+00 1.62072811e+00 + 1.62766866e+00 1.63463093e+00 1.64161494e+00 1.64862074e+00 1.65564835e+00 + 1.66269781e+00 1.66976913e+00 1.67686237e+00 1.68397753e+00 1.69111467e+00 + 1.69827379e+00 1.70545495e+00 1.71265816e+00 1.71988345e+00 1.72713087e+00 + 1.73440042e+00 1.74169216e+00 1.74900610e+00 1.75634228e+00 1.76370072e+00 + 1.77108145e+00 1.77848451e+00 1.78590992e+00 1.79335772e+00 1.80082793e+00 + 1.80832057e+00 1.81583569e+00 1.82337331e+00 1.83093345e+00 1.83851615e+00 + 1.84612143e+00 1.85374933e+00 1.86139987e+00 1.86907308e+00 1.87676899e+00 + 1.88448762e+00 1.89222901e+00 1.89999318e+00 1.90778016e+00 1.91558998e+00 + 1.92342267e+00 1.93127825e+00 1.93915675e+00 1.94705820e+00 1.95498262e+00 + 1.96293005e+00 1.97090050e+00 1.97889402e+00 1.98691062e+00 1.99495033e+00 + 2.00301317e+00 2.01109918e+00 2.01920839e+00 2.02734080e+00 2.03549647e+00 + 2.04367540e+00 2.05187763e+00 2.06010318e+00 2.06835208e+00 2.07662435e+00 + 2.08492002e+00 2.09323912e+00 2.10158167e+00 2.10994769e+00 2.11833722e+00 + 2.12675027e+00 2.13518688e+00 2.14364706e+00 2.15213085e+00 2.16063826e+00 + 2.16916932e+00 2.17772406e+00 2.18630250e+00 2.19490466e+00 2.20353058e+00 + 2.21218027e+00 2.22085375e+00 2.22955106e+00 2.23827221e+00 2.24701724e+00 + 2.25578615e+00 2.26457899e+00 2.27339576e+00 2.28223650e+00 2.29110122e+00 + 2.29998996e+00 2.30890273e+00 2.31783955e+00 2.32680045e+00 2.33578546e+00 + 2.34479459e+00 2.35382786e+00 2.36288530e+00 2.37196694e+00 2.38107279e+00 + 7.75783058e-03 7.73296622e-03 7.70815966e-03 7.68341051e-03 7.65871836e-03 + 7.63408283e-03 7.60950351e-03 7.58498000e-03 7.56051190e-03 7.53609882e-03 + 7.51174036e-03 7.48743611e-03 7.46318569e-03 7.43898868e-03 7.41484469e-03 + 7.39075333e-03 7.36671420e-03 7.34272689e-03 7.31879101e-03 7.29490616e-03 + 7.27107195e-03 7.24728797e-03 7.22355383e-03 7.19986914e-03 7.17623349e-03 + 7.15264650e-03 7.12910776e-03 7.10561688e-03 7.08217347e-03 7.05877713e-03 + 7.03542747e-03 7.01212410e-03 6.98886663e-03 6.96565466e-03 6.94248780e-03 + 6.91936567e-03 6.89628787e-03 6.87325401e-03 6.85026372e-03 6.82731659e-03 + 6.80441225e-03 6.78155031e-03 6.75873038e-03 6.73595209e-03 6.71321505e-03 + 6.69051888e-03 6.66786319e-03 6.64524762e-03 6.62267177e-03 6.60013528e-03 + 6.57763777e-03 6.55517887e-03 6.53275819e-03 6.51037537e-03 6.48803005e-03 + 6.46572184e-03 6.44345038e-03 6.42121530e-03 6.39901625e-03 6.37685284e-03 + 6.35472473e-03 6.33263156e-03 6.31057295e-03 6.28854856e-03 6.26655802e-03 + 6.24460099e-03 6.22267711e-03 6.20078603e-03 6.17892740e-03 6.15710087e-03 + 6.13530609e-03 6.11354273e-03 6.09181044e-03 6.07010887e-03 6.04843770e-03 + 6.02679658e-03 6.00518518e-03 5.98360316e-03 5.96205020e-03 5.94052597e-03 + 5.91903013e-03 5.89756237e-03 5.87612237e-03 5.85470980e-03 5.83332434e-03 + 5.81196568e-03 5.79063351e-03 5.76932751e-03 5.74804738e-03 5.72679281e-03 + 5.70556349e-03 5.68435913e-03 5.66317942e-03 5.64202406e-03 5.62089277e-03 + 5.59978526e-03 5.57870122e-03 5.55764038e-03 5.53660245e-03 5.51558714e-03 + 5.49459419e-03 5.47362332e-03 5.45267424e-03 5.43174670e-03 5.41084042e-03 + 5.38995513e-03 5.36909059e-03 5.34824651e-03 5.32742266e-03 5.30661878e-03 + 5.28583461e-03 5.26506991e-03 5.24432443e-03 5.22359793e-03 5.20289018e-03 + 5.18220094e-03 5.16152997e-03 5.14087705e-03 5.12024195e-03 5.09962444e-03 + 5.07902432e-03 5.05844136e-03 5.03787534e-03 5.01732607e-03 4.99679333e-03 + 4.97627691e-03 4.95577663e-03 4.93529228e-03 4.91482367e-03 4.89437061e-03 + 4.87393292e-03 4.85351041e-03 4.83310291e-03 4.81271023e-03 4.79233221e-03 + 4.77196867e-03 4.75161946e-03 4.73128441e-03 4.71096337e-03 4.69065618e-03 + 4.67036269e-03 4.65008275e-03 4.62981623e-03 4.60956299e-03 4.58932288e-03 + 4.56909578e-03 4.54888156e-03 4.52868010e-03 4.50849128e-03 4.48831498e-03 + 4.46815110e-03 4.44799952e-03 4.42786013e-03 4.40773285e-03 4.38761758e-03 + 4.36751422e-03 4.34742268e-03 4.32734289e-03 4.30727476e-03 4.28721822e-03 + 4.26717320e-03 4.24713963e-03 4.22711745e-03 4.20710659e-03 4.18710701e-03 + 4.16711866e-03 4.14714149e-03 4.12717545e-03 4.10722051e-03 4.08727665e-03 + 4.06734382e-03 4.04742201e-03 4.02751119e-03 4.00761135e-03 3.98772248e-03 + 3.96784457e-03 3.94797762e-03 3.92812164e-03 3.90827662e-03 3.88844258e-03 + 3.86861953e-03 3.84880750e-03 3.82900651e-03 3.80921659e-03 3.78943777e-03 + 3.76967009e-03 3.74991360e-03 3.73016833e-03 3.71043435e-03 3.69071171e-03 + 3.67100046e-03 3.65130068e-03 3.63161244e-03 3.61193581e-03 3.59227087e-03 + 3.57261770e-03 3.55297640e-03 3.53334706e-03 3.51372978e-03 3.49412465e-03 + 3.47453180e-03 3.45495132e-03 3.43538334e-03 3.41582798e-03 3.39628537e-03 + 3.37675564e-03 3.35723892e-03 3.33773536e-03 3.31824510e-03 3.29876830e-03 + 3.27930510e-03 3.25985568e-03 3.24042019e-03 3.22099880e-03 3.20159169e-03 + 3.18219905e-03 3.16282105e-03 3.14345788e-03 3.12410974e-03 3.10477683e-03 + 3.08545935e-03 3.06615751e-03 3.04687152e-03 3.02760161e-03 3.00834799e-03 + 2.98911090e-03 2.96989056e-03 2.95068723e-03 2.93150113e-03 2.91233251e-03 + 2.89318164e-03 2.87404877e-03 2.85493415e-03 2.83583807e-03 2.81676078e-03 + 2.79770257e-03 2.77866372e-03 2.75964451e-03 2.74064524e-03 2.72166621e-03 + 2.70270771e-03 2.68377006e-03 2.66485356e-03 2.64595853e-03 2.62708529e-03 + 2.60823417e-03 2.58940549e-03 2.57059960e-03 2.55181683e-03 2.53305753e-03 + 2.51432206e-03 2.49561075e-03 2.47692398e-03 2.45826211e-03 2.43962550e-03 + 2.42101454e-03 2.40242960e-03 2.38387106e-03 2.36533932e-03 2.34683476e-03 + 2.32835779e-03 2.30990881e-03 2.29148822e-03 2.27309644e-03 2.25473389e-03 + 2.23640098e-03 2.21809814e-03 2.19982581e-03 2.18158442e-03 2.16337441e-03 + 2.14519622e-03 2.12705031e-03 2.10893713e-03 2.09085714e-03 2.07281081e-03 + 2.05479859e-03 2.03682097e-03 2.01887841e-03 2.00097142e-03 1.98310046e-03 + 1.96526603e-03 1.94746863e-03 1.92970876e-03 1.91198692e-03 1.89430361e-03 + 1.87665937e-03 1.85905469e-03 1.84149011e-03 1.82396614e-03 1.80648333e-03 + 1.78904221e-03 1.77164332e-03 1.75428719e-03 1.73697438e-03 1.71970545e-03 + 1.70248094e-03 1.68530143e-03 1.66816747e-03 1.65107964e-03 1.63403850e-03 + 1.61704464e-03 1.60009864e-03 1.58320109e-03 1.56635257e-03 1.54955368e-03 + 1.53280502e-03 1.51610719e-03 1.49946080e-03 1.48286646e-03 1.46632477e-03 + 1.44983637e-03 1.43340187e-03 1.41702190e-03 1.40069709e-03 1.38442807e-03 + 1.36821548e-03 1.35205996e-03 1.33596216e-03 1.31992272e-03 1.30394230e-03 + 1.28802156e-03 1.27216115e-03 1.25636174e-03 1.24062400e-03 1.22494858e-03 + 1.20933618e-03 1.19378747e-03 1.17830313e-03 1.16288384e-03 1.14753029e-03 + 1.13224317e-03 1.11702318e-03 1.10187102e-03 1.08678738e-03 1.07177298e-03 + 1.05682851e-03 1.04195470e-03 1.02715225e-03 1.01242188e-03 9.97764323e-04 + 9.83180288e-04 9.68670506e-04 9.54235708e-04 9.39876625e-04 9.25593994e-04 + 9.11388553e-04 8.97261043e-04 8.83212208e-04 8.69242796e-04 8.55353556e-04 + 8.41545241e-04 8.27818606e-04 8.14174409e-04 8.00613410e-04 7.87136373e-04 + 7.73744063e-04 7.60437247e-04 7.47216698e-04 7.34083188e-04 7.21037492e-04 + 7.08080389e-04 6.95212658e-04 6.82435082e-04 6.69748446e-04 6.57153537e-04 + 6.44651143e-04 6.32242057e-04 6.19927071e-04 6.07706982e-04 5.95582586e-04 + 5.83554683e-04 5.71624074e-04 5.59791564e-04 5.48057956e-04 5.36424058e-04 + 5.24890679e-04 5.13458629e-04 5.02128720e-04 4.90901767e-04 4.79778585e-04 + 4.68759991e-04 4.57846804e-04 4.47039843e-04 4.36339931e-04 4.25747890e-04 + 4.15264545e-04 4.04890722e-04 3.94627247e-04 3.84474948e-04 3.74434656e-04 + 3.64507200e-04 3.54693412e-04 3.44994126e-04 3.35410174e-04 3.25942392e-04 + 3.16591616e-04 3.07358681e-04 2.98244426e-04 2.89249688e-04 2.80375307e-04 + 2.71622122e-04 2.62990974e-04 2.54482704e-04 2.46098153e-04 2.37838164e-04 + 2.29703578e-04 2.21695241e-04 2.13813993e-04 2.06060681e-04 1.98436147e-04 + 1.90941236e-04 1.83576793e-04 1.76343663e-04 1.69242690e-04 1.62274720e-04 + 1.55440598e-04 1.48741168e-04 1.42177276e-04 1.35749766e-04 1.29459484e-04 + 1.23307274e-04 1.17293980e-04 1.11420445e-04 1.05687515e-04 1.00096032e-04 + 9.46468388e-05 8.93407780e-05 8.41786913e-05 7.91614202e-05 7.42898052e-05 + 6.95646864e-05 6.49869031e-05 6.05572937e-05 5.62766961e-05 5.21459470e-05 + 4.81658825e-05 4.43373376e-05 4.06611462e-05 3.71381414e-05 3.37691551e-05 + 3.05550180e-05 2.74965596e-05 2.45946084e-05 2.18499913e-05 1.92635340e-05 + 1.68360610e-05 1.45683951e-05 1.24613578e-05 1.05157689e-05 8.73244699e-06 + 7.11220867e-06 5.65586906e-06 4.36424154e-06 3.23813774e-06 2.27836748e-06 + 1.48573873e-06 8.61057567e-07 4.05128118e-07 1.18752518e-07 2.73086226e-09 + 5.78611603e-08 2.84939286e-07 6.84758934e-07 1.25811157e-06 2.00578638e-06 + 2.92857023e-06 4.02724762e-06 5.30260064e-06 6.75540890e-06 8.38644951e-06 + 1.01964970e-05 1.21863234e-05 1.43566979e-05 1.67083872e-05 1.92421552e-05 + 2.19587628e-05 2.48589684e-05 2.79435273e-05 3.12131920e-05 3.46687118e-05 + 3.83108334e-05 4.21402999e-05 4.61578518e-05 5.03642261e-05 5.47601568e-05 + 5.93463745e-05 6.41236066e-05 6.90925772e-05 7.42540069e-05 7.96086130e-05 + 8.51571092e-05 9.09002059e-05 9.68386096e-05 1.02973024e-04 1.09304147e-04 + 1.15832676e-04 1.22559303e-04 1.29484715e-04 1.36609598e-04 1.43934631e-04 + 1.51460492e-04 1.59187852e-04 1.67117382e-04 1.75249745e-04 1.83585602e-04 + 1.92125609e-04 2.00870420e-04 2.09820682e-04 2.18977038e-04 2.28340129e-04 + 2.37910590e-04 2.47689051e-04 2.57676139e-04 2.67872477e-04 2.78278681e-04 + 2.88895364e-04 2.99723136e-04 3.10762599e-04 3.22014353e-04 3.33478993e-04 + 3.45157108e-04 3.57049283e-04 3.69156098e-04 3.81478128e-04 3.94015944e-04 + 4.06770112e-04 4.19741192e-04 4.32929738e-04 4.46336303e-04 4.59961431e-04 + 4.73805662e-04 4.87869532e-04 5.02153570e-04 5.16658302e-04 5.31384246e-04 + 5.46331917e-04 5.61501823e-04 5.76894469e-04 5.92510351e-04 6.08349963e-04 + 6.24413792e-04 6.40702320e-04 6.57216021e-04 6.73955368e-04 6.90920825e-04 + 7.08112850e-04 7.25531898e-04 7.43178417e-04 7.61052849e-04 7.79155629e-04 + 7.97487189e-04 8.16047953e-04 8.34838340e-04 8.53858764e-04 8.73109630e-04 + 8.92591340e-04 9.12304290e-04 9.32248867e-04 9.52425456e-04 9.72834432e-04 + 9.93476168e-04 1.01435103e-03 1.03545937e-03 1.05680154e-03 1.07837790e-03 + 1.10018877e-03 1.12223450e-03 1.14451541e-03 1.16703183e-03 1.18978405e-03 + 1.21277241e-03 1.23599719e-03 1.25945869e-03 1.28315720e-03 1.30709300e-03 + 1.33126638e-03 1.35567759e-03 1.38032690e-03 1.40521457e-03 1.43034085e-03 + 1.45570597e-03 1.48131019e-03 1.50715372e-03 1.53323678e-03 1.55955961e-03 + 1.58612239e-03 1.61292535e-03 1.63996867e-03 1.66725254e-03 1.69477714e-03 + 1.72254266e-03 1.75054926e-03 1.77879709e-03 1.80728633e-03 1.83601711e-03 + 1.86498957e-03 1.89420386e-03 1.92366009e-03 1.95335839e-03 1.98329887e-03 + 2.01348164e-03 2.04390679e-03 2.07457442e-03 2.10548462e-03 2.13663746e-03 + 2.16803301e-03 2.19967134e-03 2.23155250e-03 2.26367655e-03 2.29604352e-03 + 2.32865346e-03 2.36150638e-03 2.39460232e-03 2.42794128e-03 2.46152328e-03 + 2.49534830e-03 2.52941636e-03 2.56372742e-03 2.59828147e-03 2.63307847e-03 + 2.66811840e-03 2.70340121e-03 2.73892685e-03 2.77469525e-03 2.81070636e-03 + 2.84696010e-03 2.88345639e-03 2.92019515e-03 2.95717627e-03 2.99439966e-03 + 3.03186521e-03 3.06957280e-03 3.10752231e-03 3.14571361e-03 3.18414655e-03 + 3.22282100e-03 3.26173679e-03 3.30089378e-03 3.34029178e-03 3.37993063e-03 + 3.41981015e-03 3.45993014e-03 3.50029041e-03 3.54089075e-03 3.58173095e-03 + 3.62281080e-03 3.66413006e-03 3.70568851e-03 3.74748589e-03 3.78952197e-03 + 3.83179649e-03 3.87430918e-03 3.91705978e-03 3.96004801e-03 4.00327358e-03 + 4.04673620e-03 4.09043558e-03 4.13437140e-03 4.17854335e-03 4.22295111e-03 + 4.26759435e-03 4.31247275e-03 4.35758594e-03 4.40293359e-03 4.44851534e-03 + 4.49433082e-03 4.54037966e-03 4.58666148e-03 4.63317590e-03 4.67992252e-03 + 4.72690094e-03 4.77411076e-03 4.82155156e-03 4.86922292e-03 4.91712441e-03 + 4.96525559e-03 5.01361603e-03 5.06220526e-03 5.11102284e-03 5.16006829e-03 + 5.20934116e-03 5.25884095e-03 5.30856719e-03 5.35851938e-03 5.40869703e-03 + 5.45909962e-03 5.50972664e-03 5.56057758e-03 5.61165191e-03 5.66294908e-03 + 5.71446857e-03 5.76620983e-03 5.81817229e-03 5.87035540e-03 5.92275860e-03 + 5.97538130e-03 6.02822292e-03 6.08128288e-03 6.13456058e-03 6.18805542e-03 + 6.24176680e-03 6.29569408e-03 6.34983667e-03 6.40419392e-03 6.45876520e-03 + 6.51354987e-03 6.56854729e-03 6.62375679e-03 6.67917772e-03 6.73480941e-03 + 6.79065119e-03 6.84670238e-03 6.90296228e-03 6.95943021e-03 7.01610547e-03 + 7.07298735e-03 7.13007514e-03 7.18736812e-03 7.24486557e-03 7.30256676e-03 + 7.36047095e-03 7.41857739e-03 7.47688535e-03 7.53539406e-03 7.59410276e-03 + 7.65301069e-03 7.71211707e-03 7.77142113e-03 7.83092207e-03 7.89061912e-03 + 7.95051146e-03 8.01059830e-03 8.07087884e-03 8.13135225e-03 8.19201772e-03 + 8.25287442e-03 8.31392151e-03 8.37515818e-03 8.43658356e-03 8.49819681e-03 + 8.55999708e-03 8.62198351e-03 8.68415524e-03 8.74651139e-03 8.80905109e-03 + 8.87177346e-03 8.93467761e-03 8.99776265e-03 9.06102768e-03 9.12447181e-03 + 9.18809412e-03 9.25189370e-03 9.31586964e-03 9.38002101e-03 9.44434688e-03 + 9.50884633e-03 9.57351841e-03 9.63836218e-03 9.70337670e-03 9.76856101e-03 + 9.83391415e-03 9.89943517e-03 9.96512309e-03 1.00309769e-02 1.00969958e-02 + 1.01631786e-02 1.02295244e-02 1.02960321e-02 1.03627010e-02 1.04295298e-02 + 1.04965176e-02 1.05636634e-02 1.06309662e-02 1.06984250e-02 1.07660387e-02 + 1.08338064e-02 1.09017270e-02 1.09697994e-02 1.10380226e-02 1.11063957e-02 + 1.11749175e-02 1.12435870e-02 1.13124031e-02 1.13813648e-02 1.14504710e-02 + 1.15197207e-02 1.15891128e-02 1.16586462e-02 1.17283198e-02 1.17981326e-02 + 1.18680835e-02 1.19381714e-02 1.20083952e-02 1.20787538e-02 1.21492461e-02 + 1.22198711e-02 1.22906275e-02 1.23615144e-02 1.24325305e-02 1.25036749e-02 + 1.25749463e-02 1.26463436e-02 1.27178658e-02 1.27895117e-02 1.28612802e-02 + 1.29331701e-02 1.30051803e-02 1.30773097e-02 1.31495572e-02 1.32219215e-02 + 1.32944016e-02 1.33669962e-02 1.34397044e-02 1.35125248e-02 1.35854564e-02 + 1.36584979e-02 1.37316483e-02 1.38049064e-02 1.38782709e-02 1.39517408e-02 + 1.40253149e-02 1.40989919e-02 1.41727708e-02 1.42466503e-02 1.43206293e-02 + 1.43947066e-02 1.44688810e-02 1.45431514e-02 1.46175164e-02 1.46919751e-02 + 1.47665261e-02 1.48411683e-02 1.49159005e-02 1.49907214e-02 1.50656300e-02 + 1.51406250e-02 1.52157052e-02 1.52908694e-02 1.53661164e-02 1.54414451e-02 + 1.55168541e-02 1.55923424e-02 1.56679086e-02 1.57435517e-02 1.58192703e-02 + 1.58950633e-02 1.59709295e-02 1.60468676e-02 1.61228765e-02 1.61989549e-02 + 1.62751017e-02 1.63513156e-02 1.64275953e-02 1.65039398e-02 1.65803477e-02 + 1.66568179e-02 1.67333491e-02 1.68099401e-02 1.68865898e-02 1.69632968e-02 + 1.70400600e-02 1.71168782e-02 1.71937501e-02 1.72706745e-02 1.73476503e-02 + 1.74246761e-02 1.75017508e-02 1.75788731e-02 1.76560418e-02 1.77332558e-02 + 1.78105138e-02 1.78878145e-02 1.79651568e-02 1.80425395e-02 1.81199613e-02 + 1.81974209e-02 1.82749173e-02 1.83524492e-02 1.84300153e-02 1.85076145e-02 + 1.85852456e-02 1.86629072e-02 1.87405983e-02 1.88183176e-02 1.88960639e-02 + 1.89738359e-02 1.90516326e-02 1.91294526e-02 1.92072948e-02 1.92851579e-02 + 1.93630408e-02 1.94409423e-02 1.95188611e-02 1.95967960e-02 1.96747459e-02 + 1.97527096e-02 1.98306858e-02 1.99086734e-02 1.99866711e-02 2.00646778e-02 + 2.01426923e-02 2.02207134e-02 2.02987399e-02 2.03767707e-02 2.04548044e-02 + 2.05328400e-02 2.06108763e-02 2.06889121e-02 2.07669463e-02 2.08449775e-02 + 2.09230048e-02 2.10010268e-02 2.10790425e-02 2.11570506e-02 2.12350500e-02 + 2.13130396e-02 2.13910182e-02 2.14689845e-02 2.15469376e-02 2.16248761e-02 + 2.17027990e-02 2.17807052e-02 2.18585934e-02 2.19364625e-02 2.20143114e-02 + 2.20921389e-02 2.21699439e-02 2.22477253e-02 2.23254820e-02 2.24032128e-02 + 2.24809165e-02 2.25585922e-02 2.26362385e-02 2.27138546e-02 2.27914391e-02 + 2.28689910e-02 2.29465093e-02 2.30239927e-02 2.31014402e-02 2.31788507e-02 + 2.32562232e-02 2.33335564e-02 2.34108493e-02 2.34881009e-02 2.35653100e-02 + 2.36424756e-02 2.37195966e-02 2.37966720e-02 2.38737005e-02 2.39506813e-02 + 2.40276132e-02 2.41044951e-02 2.41813261e-02 2.42581051e-02 2.43348309e-02 + 2.44115026e-02 2.44881192e-02 2.45646795e-02 2.46411826e-02 2.47176275e-02 + 2.47940130e-02 2.48703382e-02 2.49466021e-02 2.50228037e-02 2.50989418e-02 + 2.51750157e-02 2.52510241e-02 2.53269662e-02 2.54028410e-02 2.54786474e-02 + 2.55543844e-02 2.56300512e-02 2.57056467e-02 2.57811699e-02 2.58566198e-02 + 2.59319956e-02 2.60072962e-02 2.60825207e-02 2.61576682e-02 2.62327376e-02 + 2.63077281e-02 2.63826386e-02 2.64574684e-02 2.65322164e-02 2.66068817e-02 + 2.66814634e-02 2.67559606e-02 2.68303724e-02 2.69046978e-02 2.69789360e-02 + 2.70530861e-02 2.71271471e-02 2.72011182e-02 2.72749985e-02 2.73487872e-02 + 2.74224833e-02 2.74960859e-02 2.75695943e-02 2.76430075e-02 2.77163247e-02 + 2.77895451e-02 2.78626678e-02 2.79356919e-02 2.80086167e-02 2.80814412e-02 + 2.81541648e-02 2.82267864e-02 2.82993055e-02 2.83717210e-02 2.84440323e-02 + 2.85162385e-02 2.85883388e-02 2.86603324e-02 2.87322186e-02 2.88039966e-02 + 2.88756656e-02 2.89472248e-02 2.90186734e-02 2.90900108e-02 2.91612361e-02 + 2.92323486e-02 2.93033476e-02 2.93742322e-02 2.94450019e-02 2.95156558e-02 + 2.95861933e-02 2.96566136e-02 2.97269159e-02 2.97970997e-02 2.98671642e-02 + 2.99371087e-02 3.00069325e-02 3.00766349e-02 3.01462153e-02 3.02156729e-02 + 3.02850071e-02 3.03542173e-02 3.04233028e-02 3.04922629e-02 3.05610970e-02 + 3.06298044e-02 3.06983846e-02 3.07668368e-02 3.08351604e-02 3.09033549e-02 + 3.09714197e-02 3.10393540e-02 3.11071573e-02 3.11748290e-02 3.12423686e-02 + 3.13097754e-02 3.13770488e-02 3.14441883e-02 3.15111934e-02 3.15780633e-02 + 3.16447977e-02 3.17113958e-02 3.17778573e-02 3.18441815e-02 3.19103679e-02 + 3.19764160e-02 3.20423252e-02 3.21080951e-02 3.21737250e-02 3.22392146e-02 + 3.23045633e-02 3.23697706e-02 3.24348361e-02 3.24997591e-02 3.25645394e-02 + 3.26291763e-02 3.26936694e-02 3.27580183e-02 3.28222224e-02 3.28862814e-02 + 3.29501948e-02 3.30139622e-02 3.30775831e-02 3.31410570e-02 3.32043837e-02 + 3.32675626e-02 3.33305933e-02 3.33934755e-02 3.34562087e-02 3.35187925e-02 + 3.35812266e-02 3.36435106e-02 3.37056440e-02 3.37676266e-02 3.38294579e-02 + 3.38911376e-02 3.39526653e-02 3.40140407e-02 3.40752635e-02 3.41363332e-02 + 3.41972496e-02 3.42580124e-02 3.43186212e-02 3.43790756e-02 3.44393755e-02 + 3.44995205e-02 3.45595102e-02 3.46193444e-02 3.46790229e-02 3.47385452e-02 + 3.47979112e-02 3.48571206e-02 3.49161731e-02 3.49750684e-02 3.50338063e-02 + 3.50923866e-02 3.51508090e-02 3.52090732e-02 3.52671790e-02 3.53251263e-02 + 3.53829147e-02 3.54405441e-02 3.54980142e-02 3.55553249e-02 3.56124759e-02 + 3.56694670e-02 3.57262982e-02 3.57829691e-02 3.58394796e-02 3.58958295e-02 + 3.59520187e-02 3.60080469e-02 3.60639141e-02 3.61196201e-02 3.61751647e-02 + 3.62305479e-02 3.62857693e-02 3.63408291e-02 3.63957269e-02 3.64504627e-02 + 3.65050364e-02 3.65594478e-02 3.66136969e-02 3.66677836e-02 3.67217077e-02 + 3.67754692e-02 3.68290680e-02 3.68825040e-02 3.69357771e-02 3.69888874e-02 + 3.70418346e-02 3.70946188e-02 3.71472399e-02 3.71996978e-02 3.72519925e-02 + 3.73041241e-02 3.73560923e-02 3.74078973e-02 3.74595390e-02 3.75110173e-02 + 3.75623323e-02 3.76134840e-02 3.76644723e-02 3.77152973e-02 3.77659589e-02 + 3.78164572e-02 3.78667922e-02 3.79169639e-02 3.79669723e-02 3.80168175e-02 + 3.80664996e-02 3.81160184e-02 3.81653742e-02 3.82145669e-02 3.82635966e-02 + 3.83124633e-02 3.83611672e-02 3.84097083e-02 3.84580867e-02 3.85063023e-02 + 3.85543555e-02 3.86022461e-02 3.86499744e-02 3.86975403e-02 3.87449441e-02 + 3.87921858e-02 3.88392655e-02 3.88861833e-02 3.89329394e-02 3.89795339e-02 + 3.90259669e-02 3.90722385e-02 3.91183489e-02 3.91642983e-02 3.92100867e-02 + 3.92557143e-02 3.93011813e-02 3.93464879e-02 3.93916341e-02 3.94366202e-02 + 3.94814463e-02 3.95261127e-02 3.95706194e-02 3.96149667e-02 3.96591547e-02 + 3.97031837e-02 3.97470539e-02 3.97907654e-02 3.98343184e-02 3.98777132e-02 + 3.99209500e-02 3.99640290e-02 4.00069503e-02 4.00497143e-02 4.00923212e-02 + 4.01347712e-02 4.01770645e-02 4.02192013e-02 4.02611820e-02 4.03030067e-02 + 4.03446757e-02 4.03861893e-02 4.04275477e-02 4.04687512e-02 4.05098001e-02 + 4.05506945e-02 4.05914349e-02 4.06320214e-02 4.06724544e-02 4.07127341e-02 + 4.07528608e-02 4.07928348e-02 4.08326564e-02 4.08723259e-02 4.09118437e-02 + 4.09512099e-02 4.09904249e-02 4.10294891e-02 4.10684027e-02 4.11071660e-02 + 4.11457795e-02 4.11842433e-02 4.12225579e-02 4.12607235e-02 4.12987405e-02 + 4.13366093e-02 4.13743301e-02 4.14119033e-02 4.14493293e-02 4.14866084e-02 + 4.15237410e-02 4.15607274e-02 4.15975680e-02 4.16342631e-02 4.16708131e-02 + 4.17072184e-02 4.17434793e-02 4.17795963e-02 4.18155696e-02 4.18513997e-02 + 4.18870870e-02 4.19226318e-02 4.19580345e-02 4.19932955e-02 4.20284153e-02 + 4.20633941e-02 4.20982324e-02 4.21329307e-02 4.21674892e-02 4.22019085e-02 + 4.22361889e-02 4.22703308e-02 4.23043346e-02 4.23382008e-02 4.23719298e-02 + 4.24055220e-02 4.24389778e-02 4.24722977e-02 4.25054820e-02 4.25385312e-02 + 4.25714458e-02 4.26042261e-02 4.26368727e-02 4.26693859e-02 4.27017662e-02 + 4.27340140e-02 4.27661298e-02 4.27981141e-02 4.28299672e-02 4.28616896e-02 + 4.28932819e-02 4.29247444e-02 4.29560775e-02 4.29872819e-02 4.30183578e-02 + 4.30493059e-02 4.30801265e-02 4.31108201e-02 4.31413873e-02 4.31718284e-02 + 4.32021439e-02 4.32323343e-02 4.32624002e-02 4.32923419e-02 4.33221599e-02 + 4.33518548e-02 4.33814270e-02 4.34108770e-02 4.34402053e-02 4.34694124e-02 + 4.34984988e-02 4.35274649e-02 4.35563113e-02 4.35850384e-02 4.36136467e-02 + 4.36421369e-02 4.36705092e-02 4.36987643e-02 4.37269027e-02 4.37549248e-02 + 4.37828312e-02 4.38106223e-02 4.38382987e-02 4.38658609e-02 4.38933094e-02 + 4.39206447e-02 4.39478673e-02 4.39749777e-02 4.40019765e-02 4.40288641e-02 + 4.40556412e-02 4.40823081e-02 4.41088654e-02 4.41353137e-02 4.41616534e-02 + 4.41878851e-02 4.42140094e-02 4.42400266e-02 4.42659374e-02 4.42917423e-02 + 4.43174418e-02 4.43430364e-02 4.43685267e-02 4.43939132e-02 4.44191965e-02 + 4.44443770e-02 4.44694552e-02 4.44944318e-02 4.45193073e-02 4.45440821e-02 + 4.45687569e-02 4.45933322e-02 4.46178084e-02 4.46421862e-02 4.46664660e-02 + 4.46906485e-02 4.47147341e-02 4.47387234e-02 4.47626169e-02 4.47864152e-02 + 4.48101188e-02 4.48337283e-02 4.48572441e-02 4.48806669e-02 4.49039972e-02 + 4.49272354e-02 4.49503823e-02 4.49734382e-02 4.49964038e-02 4.50192796e-02 + 4.50420661e-02 4.50647640e-02 4.50873736e-02 4.51098956e-02 4.51323305e-02 + 4.51546789e-02 4.51769413e-02 4.51991182e-02 4.52212103e-02 4.52432180e-02 + 4.52651419e-02 4.52869825e-02 4.53087404e-02 4.53304161e-02 4.53520102e-02 + 4.53735232e-02 4.53949557e-02 4.54163082e-02 4.54375812e-02 4.54587753e-02 + 4.54798911e-02 4.55009291e-02 4.55218898e-02 4.55427738e-02 4.55635817e-02 + 4.55843139e-02 4.56049710e-02 4.56255536e-02 4.56460622e-02 4.56664973e-02 + 4.56868595e-02 4.57071494e-02 4.57273674e-02 4.57475141e-02 4.57675901e-02 + 4.57875959e-02 4.58075321e-02 4.58273991e-02 4.58471976e-02 4.58669280e-02 + 4.58865909e-02 4.59061869e-02 4.59257165e-02 4.59451801e-02 4.59645785e-02 + 4.59839120e-02 4.60031812e-02 4.60223867e-02 4.60415291e-02 4.60606087e-02 + 4.60796262e-02 4.60985821e-02 4.61174770e-02 4.61363113e-02 4.61550856e-02 + 4.61738005e-02 4.61924564e-02 4.62110539e-02 4.62295935e-02 4.62480757e-02 + 4.62665012e-02 4.62848703e-02 4.63031836e-02 4.63214417e-02 4.63396451e-02 + 4.63577942e-02 4.63758897e-02 4.63939320e-02 4.64119217e-02 4.64298592e-02 + 4.64477452e-02 4.64655800e-02 4.64833643e-02 4.65010985e-02 4.65187832e-02 + 4.65364189e-02 4.65540060e-02 4.65715452e-02 4.65890368e-02 4.66064815e-02 + 4.66238797e-02 4.66412319e-02 4.66585387e-02 4.66758005e-02 4.66930179e-02 + 4.67101913e-02 4.67273213e-02 4.67444084e-02 4.67614530e-02 4.67784556e-02 + 4.67954169e-02 4.68123371e-02 4.68292170e-02 4.68460568e-02 4.68628572e-02 + 4.68796187e-02 4.68963416e-02 4.69130266e-02 4.69296740e-02 4.69462844e-02 + 4.69628583e-02 4.69793962e-02 4.69958985e-02 4.70123657e-02 4.70287983e-02 + 4.70451968e-02 4.70615616e-02 4.70778933e-02 4.70941923e-02 4.71104590e-02 + 4.71266940e-02 4.71428977e-02 4.71590707e-02 4.71752133e-02 4.71913260e-02 + 4.72074093e-02 4.72234637e-02 4.72394895e-02 4.72554874e-02 4.72714577e-02 + 4.72874010e-02 4.73033175e-02 4.73192079e-02 4.73350726e-02 4.73509120e-02 + 4.73667265e-02 4.73825167e-02 4.73982829e-02 4.74140257e-02 4.74297454e-02 + 4.74454425e-02 4.74611175e-02 4.74767708e-02 4.74924027e-02 4.75080139e-02 + 4.75236046e-02 4.75391754e-02 4.75547266e-02 4.75702588e-02 4.75857722e-02 + 4.76012674e-02 4.76167448e-02 4.76322048e-02 4.76476478e-02 4.76630743e-02 + 4.76784846e-02 4.76938792e-02 4.77092586e-02 4.77246230e-02 4.77399730e-02 + 4.77553089e-02 4.77706311e-02 4.77859401e-02 4.78012363e-02 4.78165201e-02 + 4.78317918e-02 4.78470519e-02 4.78623007e-02 4.78775388e-02 4.78927664e-02 + 4.79079840e-02 4.79231919e-02 4.79383906e-02 4.79535804e-02 4.79687617e-02 + 4.79839349e-02 4.79991005e-02 4.80142587e-02 4.80294099e-02 4.80445546e-02 + 4.80596931e-02 4.80748258e-02 4.80899530e-02 4.81050752e-02 4.81201927e-02 + 4.81353058e-02 4.81504150e-02 4.81655206e-02 4.81806229e-02 4.81957224e-02 + 4.82108194e-02 4.82259141e-02 4.82410071e-02 4.82560987e-02 4.82711891e-02 + 4.82862788e-02 4.83013681e-02 4.83164573e-02 4.83315468e-02 4.83466369e-02 + 4.83617281e-02 4.83768205e-02 4.83919146e-02 4.84070107e-02 4.84221091e-02 + 4.84372101e-02 4.84523141e-02 4.84674214e-02 4.84825324e-02 4.84976473e-02 + 4.85127665e-02 4.85278903e-02 4.85430190e-02 4.85581530e-02 4.85732925e-02 + 4.85884379e-02 4.86035894e-02 4.86187475e-02 4.86339123e-02 4.86490843e-02 + 4.86642636e-02 4.86794506e-02 4.86946457e-02 4.87098490e-02 4.87250610e-02 + 4.87402818e-02 4.87555118e-02 4.87707513e-02 4.87860006e-02 4.88012599e-02 + 4.88165295e-02 4.88318098e-02 4.88471010e-02 4.88624033e-02 4.88777171e-02 + 4.88930427e-02 4.89083802e-02 4.89237301e-02 4.89390924e-02 4.89544676e-02 + 4.89698559e-02 4.89852575e-02 4.90006728e-02 4.90161019e-02 4.90315451e-02 + 4.90470027e-02 4.90624750e-02 4.90779621e-02 4.90934644e-02 4.91089821e-02 + 4.91245154e-02 4.91400646e-02 4.91556299e-02 4.91712116e-02 4.91868099e-02 + 4.92024251e-02 4.92180573e-02 4.92337069e-02 4.92493740e-02 4.92650589e-02 + 4.92807617e-02 4.92964829e-02 4.93122225e-02 4.93279807e-02 4.93437579e-02 + 4.93595542e-02 4.93753698e-02 4.93912050e-02 4.94070600e-02 4.94229349e-02 + 4.94388300e-02 4.94547455e-02 4.94706817e-02 4.94866386e-02 4.95026165e-02 + 4.95186157e-02 4.95346362e-02 4.95506784e-02 4.95667423e-02 4.95828283e-02 + 4.95989364e-02 4.96150669e-02 4.96312200e-02 4.96473958e-02 4.96635945e-02 + 4.96798164e-02 4.96960615e-02 4.97123302e-02 4.97286224e-02 4.97449385e-02 + 4.97612786e-02 4.97776428e-02 4.97940314e-02 4.98104445e-02 4.98268822e-02 + 4.98433448e-02 4.98598324e-02 4.98763451e-02 4.98928831e-02 4.99094466e-02 + 4.99260357e-02 4.99426506e-02 4.99592915e-02 4.99759584e-02 4.99926515e-02 + 5.00093710e-02 5.00261170e-02 5.00428897e-02 5.00596891e-02 5.00765155e-02 + 5.00933690e-02 5.01102496e-02 5.01271576e-02 5.01440931e-02 5.01610562e-02 + 5.01780470e-02 5.01950657e-02 5.02121123e-02 5.02291871e-02 5.02462901e-02 + 5.02634214e-02 5.02805812e-02 5.02977695e-02 5.03149866e-02 5.03322324e-02 + 5.03495072e-02 5.03668110e-02 5.03841439e-02 5.04015061e-02 5.04188976e-02 + 5.04363186e-02 5.04537691e-02 5.04712492e-02 5.04887591e-02 5.05062988e-02 + 5.05238684e-02 5.05414681e-02 5.05590979e-02 5.05767579e-02 5.05944482e-02 + 5.06121688e-02 5.06299199e-02 5.06477016e-02 5.06655138e-02 5.06833568e-02 + 5.07012306e-02 5.07191352e-02 5.07370707e-02 5.07550372e-02 5.07730348e-02 + 5.07910636e-02 5.08091236e-02 5.08272148e-02 5.08453374e-02 5.08634913e-02 + 5.08816768e-02 5.08998937e-02 5.09181423e-02 5.09364225e-02 5.09547343e-02 + 5.09730780e-02 5.09914534e-02 5.10098606e-02 5.10282998e-02 5.10467709e-02 + 5.10652740e-02 5.10838092e-02 5.11023764e-02 5.11209757e-02 5.11396072e-02 + 5.11582709e-02 5.11769668e-02 5.11956950e-02 5.12144555e-02 5.12332483e-02 + 5.12520735e-02 5.12709311e-02 5.12898211e-02 5.13087435e-02 5.13276985e-02 + 5.13466859e-02 5.13657058e-02 5.13847583e-02 5.14038433e-02 5.14229609e-02 + 5.14421111e-02 5.14612939e-02 5.14805093e-02 5.14997573e-02 5.15190380e-02 + 5.15383513e-02 5.15576973e-02 5.15770759e-02 5.15964872e-02 5.16159312e-02 + 5.16354078e-02 5.16549172e-02 5.16744591e-02 5.16940338e-02 5.17136411e-02 + 5.17332811e-02 5.17529537e-02 5.17726590e-02 5.17923969e-02 5.18121674e-02 + 5.18319706e-02 5.18518063e-02 5.18716747e-02 5.18915756e-02 5.19115090e-02 + 5.19314750e-02 5.19514735e-02 5.19715045e-02 5.19915680e-02 5.20116639e-02 + 5.20317923e-02 5.20519530e-02 5.20721462e-02 5.20923716e-02 5.21126294e-02 + 5.21329194e-02 5.21532417e-02 5.21735963e-02 5.21939830e-02 5.22144018e-02 + 5.22348528e-02 5.22553358e-02 5.22758508e-02 5.22963979e-02 5.23169769e-02 + 5.23375877e-02 5.23582305e-02 5.23789050e-02 5.23996114e-02 5.24203494e-02 + 5.24411191e-02 5.24619205e-02 5.24827534e-02 5.25036178e-02 5.25245136e-02 + 5.25454409e-02 5.25663995e-02 5.25873895e-02 5.26084106e-02 5.26294630e-02 + 5.26505464e-02 5.26716609e-02 5.26928064e-02 5.27139828e-02 5.27351901e-02 + 5.27564281e-02 5.27776969e-02 5.27989964e-02 5.28203265e-02 5.28416870e-02 + 5.28630781e-02 5.28844995e-02 5.29059512e-02 5.29274331e-02 5.29489452e-02 + 5.29704874e-02 5.29920595e-02 5.30136616e-02 5.30352936e-02 5.30569552e-02 + 5.30786466e-02 5.31003676e-02 5.31221181e-02 5.31438980e-02 5.31657073e-02 + 5.31875458e-02 5.32094135e-02 5.32313103e-02 5.32532361e-02 5.32751908e-02 + 5.32971743e-02 5.33191865e-02 5.33412273e-02 5.33632967e-02 5.33853945e-02 + 5.34075207e-02 5.34296751e-02 5.34518577e-02 5.34740683e-02 5.34963069e-02 + 5.35185733e-02 5.35408675e-02 5.35631893e-02 5.35855387e-02 5.36079155e-02 + 5.36303197e-02 5.36527511e-02 5.36752097e-02 5.36976952e-02 5.37202077e-02 + 5.37427470e-02 5.37653129e-02 5.37879055e-02 5.38105245e-02 5.38331699e-02 + 5.38558416e-02 5.38785394e-02 5.39012632e-02 5.39240130e-02 5.39467885e-02 + 5.39695897e-02 5.39924165e-02 5.40152687e-02 5.40381462e-02 5.40610490e-02 + 5.40839768e-02 5.41069296e-02 5.41299073e-02 5.41529097e-02 5.41759366e-02 + 5.41989881e-02 5.42220639e-02 5.42451639e-02 5.42682880e-02 5.42914361e-02 + 5.43146081e-02 5.43378038e-02 5.43610230e-02 5.43842658e-02 5.44075318e-02 + 5.44308211e-02 5.44541334e-02 5.44774687e-02 5.45008268e-02 5.45242076e-02 + 5.45476109e-02 5.45710366e-02 5.45944846e-02 5.46179548e-02 5.46414469e-02 + 5.46649609e-02 5.46884967e-02 5.47120540e-02 5.47356328e-02 5.47592329e-02 + 5.47828542e-02 5.48064965e-02 5.48301598e-02 5.48538438e-02 5.48775484e-02 + 5.49012734e-02 5.49250188e-02 5.49487844e-02 5.49725701e-02 5.49963756e-02 + 5.50202009e-02 5.50440459e-02 5.50679102e-02 5.50917939e-02 5.51156968e-02 + 5.51396187e-02 5.51635595e-02 5.51875190e-02 5.52114972e-02 5.52354937e-02 + 5.52595085e-02 5.52835415e-02 5.53075925e-02 5.53316613e-02 5.53557477e-02 + 5.53798517e-02 5.54039731e-02 5.54281118e-02 5.54522675e-02 5.54764401e-02 + 5.55006295e-02 5.55248356e-02 5.55490581e-02 5.55732969e-02 5.55975518e-02 + 5.56218228e-02 5.56461096e-02 5.56704121e-02 5.56947301e-02 5.57190635e-02 + 5.57434121e-02 5.57677758e-02 5.57921544e-02 5.58165477e-02 5.58409556e-02 + 5.58653780e-02 5.58898146e-02 5.59142653e-02 5.59387300e-02 5.59632085e-02 + 5.59877006e-02 5.60122062e-02 5.60367251e-02 5.60612571e-02 5.60858022e-02 + 5.61103600e-02 5.61349306e-02 5.61595136e-02 5.61841090e-02 5.62087165e-02 + 5.62333361e-02 5.62579675e-02 5.62826106e-02 5.63072653e-02 5.63319313e-02 + 5.63566085e-02 5.63812967e-02 5.64059958e-02 5.64307057e-02 5.64554260e-02 + 5.64801568e-02 5.65048977e-02 5.65296487e-02 5.65544096e-02 5.65791802e-02 + 5.66039604e-02 5.66287499e-02 5.66535486e-02 5.66783565e-02 5.67031732e-02 + 5.67279986e-02 5.67528326e-02 5.67776749e-02 5.68025255e-02 5.68273841e-02 + 5.68522507e-02 5.68771249e-02 5.69020067e-02 5.69268959e-02 5.69517923e-02 + 5.69766957e-02 5.70016060e-02 5.70265231e-02 5.70514466e-02 5.70763766e-02 + 5.71013128e-02 5.71262550e-02 5.71512031e-02 5.71761569e-02 5.72011162e-02 + 5.72260809e-02 5.72510508e-02 5.72760258e-02 5.73010056e-02 5.73259901e-02 + 0.00000000e+00 2.43488551e-08 9.70348995e-08 2.17517882e-07 3.85258271e-07 + 5.99717271e-07 8.60356837e-07 1.16663970e-06 1.51802935e-06 1.91399012e-06 + 2.35398713e-06 2.83748633e-06 3.36395454e-06 3.93285942e-06 4.54366955e-06 + 5.19585437e-06 5.88888425e-06 6.62223049e-06 7.39536534e-06 8.20776200e-06 + 9.05889466e-06 9.94823850e-06 1.08752697e-05 1.18394655e-05 1.28403042e-05 + 1.38772651e-05 1.49498285e-05 1.60574760e-05 1.71996902e-05 1.83759547e-05 + 1.95857545e-05 2.08285756e-05 2.21039051e-05 2.34112314e-05 2.47500441e-05 + 2.61198339e-05 2.75200930e-05 2.89503146e-05 3.04099932e-05 3.18986247e-05 + 3.34157062e-05 3.49607362e-05 3.65332143e-05 3.81326418e-05 3.97585210e-05 + 4.14103560e-05 4.30876518e-05 4.47899152e-05 4.65166542e-05 4.82673784e-05 + 5.00415988e-05 5.18388277e-05 5.36585791e-05 5.55003684e-05 5.73637126e-05 + 5.92481302e-05 6.11531411e-05 6.30782670e-05 6.50230311e-05 6.69869581e-05 + 6.89695743e-05 7.09704078e-05 7.29889882e-05 7.50248468e-05 7.70775165e-05 + 7.91465320e-05 8.12314297e-05 8.33317475e-05 8.54470252e-05 8.75768045e-05 + 8.97206285e-05 9.18780424e-05 9.40485929e-05 9.62318288e-05 9.84273005e-05 + 1.00634560e-04 1.02853162e-04 1.05082663e-04 1.07322619e-04 1.09572592e-04 + 1.11832142e-04 1.14100833e-04 1.16378232e-04 1.18663904e-04 1.20957421e-04 + 1.23258352e-04 1.25566272e-04 1.27880756e-04 1.30201382e-04 1.32527729e-04 + 1.34859378e-04 1.37195914e-04 1.39536921e-04 1.41881988e-04 1.44230704e-04 + 1.46582662e-04 1.48937455e-04 1.51294680e-04 1.53653936e-04 1.56014822e-04 + 1.58376942e-04 1.60739900e-04 1.63103305e-04 1.65466764e-04 1.67829891e-04 + 1.70192298e-04 1.72553602e-04 1.74913422e-04 1.77271378e-04 1.79627094e-04 + 1.81980193e-04 1.84330306e-04 1.86677060e-04 1.89020090e-04 1.91359029e-04 + 1.93693515e-04 1.96023187e-04 1.98347688e-04 2.00666661e-04 2.02979754e-04 + 2.05286615e-04 2.07586897e-04 2.09880254e-04 2.12166341e-04 2.14444820e-04 + 2.16715350e-04 2.18977597e-04 2.21231227e-04 2.23475910e-04 2.25711316e-04 + 2.27937121e-04 2.30153002e-04 2.32358637e-04 2.34553710e-04 2.36737905e-04 + 2.38910909e-04 2.41072412e-04 2.43222107e-04 2.45359690e-04 2.47484858e-04 + 2.49597311e-04 2.51696755e-04 2.53782893e-04 2.55855436e-04 2.57914094e-04 + 2.59958582e-04 2.61988617e-04 2.64003919e-04 2.66004209e-04 2.67989214e-04 + 2.69958661e-04 2.71912281e-04 2.73849808e-04 2.75770978e-04 2.77675531e-04 + 2.79563208e-04 2.81433755e-04 2.83286920e-04 2.85122453e-04 2.86940107e-04 + 2.88739640e-04 2.90520810e-04 2.92283380e-04 2.94027115e-04 2.95751782e-04 + 2.97457154e-04 2.99143004e-04 3.00809109e-04 3.02455248e-04 3.04081205e-04 + 3.05686765e-04 3.07271718e-04 3.08835854e-04 3.10378969e-04 3.11900861e-04 + 3.13401329e-04 3.14880179e-04 3.16337217e-04 3.17772253e-04 3.19185100e-04 + 3.20575574e-04 3.21943493e-04 3.23288681e-04 3.24610962e-04 3.25910165e-04 + 3.27186120e-04 3.28438664e-04 3.29667633e-04 3.30872868e-04 3.32054212e-04 + 3.33211514e-04 3.34344623e-04 3.35453392e-04 3.36537678e-04 3.37597341e-04 + 3.38632243e-04 3.39642250e-04 3.40627231e-04 3.41587060e-04 3.42521610e-04 + 3.43430761e-04 3.44314395e-04 3.45172397e-04 3.46004655e-04 3.46811061e-04 + 3.47591509e-04 3.48345899e-04 3.49074130e-04 3.49776107e-04 3.50451738e-04 + 3.51100935e-04 3.51723611e-04 3.52319684e-04 3.52889075e-04 3.53431707e-04 + 3.53947509e-04 3.54436410e-04 3.54898345e-04 3.55333251e-04 3.55741068e-04 + 3.56121740e-04 3.56475215e-04 3.56801442e-04 3.57100376e-04 3.57371973e-04 + 3.57616194e-04 3.57833003e-04 3.58022366e-04 3.58184254e-04 3.58318641e-04 + 3.58425503e-04 3.58504822e-04 3.58556580e-04 3.58580765e-04 3.58577366e-04 + 3.58546379e-04 3.58487800e-04 3.58401629e-04 3.58287871e-04 3.58146532e-04 + 3.57977623e-04 3.57781159e-04 3.57557155e-04 3.57305633e-04 3.57026618e-04 + 3.56720135e-04 3.56386217e-04 3.56024897e-04 3.55636213e-04 3.55220206e-04 + 3.54776920e-04 3.54306402e-04 3.53808705e-04 3.53283882e-04 3.52731991e-04 + 3.52153093e-04 3.51547253e-04 3.50914539e-04 3.50255023e-04 3.49568779e-04 + 3.48855885e-04 3.48116423e-04 3.47350478e-04 3.46558138e-04 3.45739494e-04 + 3.44894643e-04 3.44023683e-04 3.43126715e-04 3.42203844e-04 3.41255180e-04 + 3.40280834e-04 3.39280922e-04 3.38255563e-04 3.37204879e-04 3.36128995e-04 + 3.35028040e-04 3.33902147e-04 3.32751452e-04 3.31576093e-04 3.30376213e-04 + 3.29151958e-04 3.27903477e-04 3.26630923e-04 3.25334452e-04 3.24014222e-04 + 3.22670397e-04 3.21303142e-04 3.19912628e-04 3.18499026e-04 3.17062513e-04 + 3.15603268e-04 3.14121475e-04 3.12617318e-04 3.11090989e-04 3.09542678e-04 + 3.07972584e-04 3.06380904e-04 3.04767842e-04 3.03133605e-04 3.01478400e-04 + 2.99802442e-04 2.98105947e-04 2.96389132e-04 2.94652222e-04 2.92895443e-04 + 2.91119023e-04 2.89323194e-04 2.87508194e-04 2.85674261e-04 2.83821637e-04 + 2.81950568e-04 2.80061304e-04 2.78154095e-04 2.76229198e-04 2.74286872e-04 + 2.72327377e-04 2.70350981e-04 2.68357950e-04 2.66348556e-04 2.64323075e-04 + 2.62281784e-04 2.60224965e-04 2.58152902e-04 2.56065883e-04 2.53964199e-04 + 2.51848144e-04 2.49718015e-04 2.47574112e-04 2.45416740e-04 2.43246204e-04 + 2.41062815e-04 2.38866886e-04 2.36658733e-04 2.34438675e-04 2.32207035e-04 + 2.29964138e-04 2.27710313e-04 2.25445892e-04 2.23171209e-04 2.20886603e-04 + 2.18592414e-04 2.16288987e-04 2.13976669e-04 2.11655809e-04 2.09326762e-04 + 2.06989883e-04 2.04645532e-04 2.02294071e-04 1.99935866e-04 1.97571284e-04 + 1.95200698e-04 1.92824481e-04 1.90443011e-04 1.88056668e-04 1.85665835e-04 + 1.83270899e-04 1.80872249e-04 1.78470276e-04 1.76065376e-04 1.73657947e-04 + 1.71248388e-04 1.68837105e-04 1.66424504e-04 1.64010993e-04 1.61596986e-04 + 1.59182897e-04 1.56769145e-04 1.54356150e-04 1.51944336e-04 1.49534129e-04 + 1.47125959e-04 1.44720257e-04 1.42317459e-04 1.39918002e-04 1.37522326e-04 + 1.35130875e-04 1.32744094e-04 1.30362432e-04 1.27986339e-04 1.25616271e-04 + 1.23252683e-04 1.20896036e-04 1.18546790e-04 1.16205411e-04 1.13872366e-04 + 1.11548124e-04 1.09233158e-04 1.06927944e-04 1.04632960e-04 1.02348684e-04 + 1.00075601e-04 9.78141952e-05 9.55649553e-05 9.33283715e-05 9.11049369e-05 + 8.88951470e-05 8.66994998e-05 8.45184959e-05 8.23526381e-05 8.02024320e-05 + 7.80683853e-05 7.59510083e-05 7.38508139e-05 7.17683170e-05 6.97040351e-05 + 6.76584882e-05 6.56321985e-05 6.36256905e-05 6.16394911e-05 5.96741296e-05 + 5.77301375e-05 5.58080486e-05 5.39083991e-05 5.20317273e-05 5.01785738e-05 + 4.83494815e-05 4.65449954e-05 4.47656629e-05 4.30120334e-05 4.12846585e-05 + 3.95840921e-05 3.79108901e-05 3.62656107e-05 3.46488140e-05 3.30610623e-05 + 3.15029201e-05 2.99749539e-05 2.84777321e-05 2.70118254e-05 2.55778064e-05 + 2.41762497e-05 2.28077320e-05 2.14728317e-05 2.01721296e-05 1.89062081e-05 + 1.76756517e-05 1.64810468e-05 1.53229816e-05 1.42020464e-05 1.31188332e-05 + 1.20739359e-05 1.10679502e-05 1.01014737e-05 9.17510585e-06 8.28944774e-06 + 7.44510235e-06 6.64267440e-06 5.88277033e-06 5.16599834e-06 4.49296832e-06 + 3.86429185e-06 3.28058222e-06 2.74245435e-06 2.25052482e-06 1.80541184e-06 + 1.40773522e-06 1.05811638e-06 7.57178299e-07 5.05545545e-07 3.03844209e-07 + 1.52701918e-07 5.27478064e-08 4.61250386e-09 8.92811584e-09 6.63282070e-08 + 1.77447784e-07 3.42923278e-07 5.63392527e-07 8.39494760e-07 1.17187058e-06 + 1.56116194e-06 2.00801213e-06 2.51306577e-06 3.07696878e-06 3.70036834e-06 + 4.38391295e-06 5.12825230e-06 5.93403735e-06 6.80192027e-06 7.73255440e-06 + 8.72659429e-06 9.78469564e-06 1.09075153e-05 1.20957112e-05 1.33499424e-05 + 1.46708691e-05 1.60591526e-05 1.75154550e-05 1.90404398e-05 2.06347711e-05 + 2.22991145e-05 2.40341361e-05 2.58405033e-05 2.77188842e-05 2.96699480e-05 + 3.16943647e-05 3.37928053e-05 3.59659416e-05 3.82144461e-05 4.05389924e-05 + 4.29402547e-05 4.54189082e-05 4.79756288e-05 5.06110929e-05 5.33259781e-05 + 5.61209623e-05 5.89967243e-05 6.19539437e-05 6.49933005e-05 6.81154755e-05 + 7.13211502e-05 7.46110064e-05 7.79857269e-05 8.14459948e-05 8.49924937e-05 + 8.86259080e-05 9.23469224e-05 9.61562222e-05 1.00054493e-04 1.04042421e-04 + 1.08120693e-04 1.12289996e-04 1.16551018e-04 1.20904446e-04 1.25350968e-04 + 1.29891273e-04 1.34526050e-04 1.39255988e-04 1.44081776e-04 1.49004104e-04 + 1.54023663e-04 1.59141141e-04 1.64357231e-04 1.69672621e-04 1.75088004e-04 + 1.80604069e-04 1.86221509e-04 1.91941014e-04 1.97763274e-04 2.03688983e-04 + 2.09718831e-04 2.15853509e-04 2.22093709e-04 2.28440122e-04 2.34893440e-04 + 2.41454354e-04 2.48123555e-04 2.54901735e-04 2.61789585e-04 2.68787796e-04 + 2.75897058e-04 2.83118063e-04 2.90451500e-04 2.97898061e-04 3.05458435e-04 + 3.13133313e-04 3.20923384e-04 3.28829337e-04 3.36851861e-04 3.44991646e-04 + 3.53249380e-04 3.61625750e-04 3.70121445e-04 3.78737152e-04 3.87473558e-04 + 3.96331350e-04 4.05311213e-04 4.14413833e-04 4.23639896e-04 4.32990086e-04 + 4.42465087e-04 4.52065583e-04 4.61792257e-04 4.71645791e-04 4.81626868e-04 + 4.91736167e-04 5.01974371e-04 5.12342159e-04 5.22840211e-04 5.33469204e-04 + 5.44229818e-04 5.55122728e-04 5.66148612e-04 5.77308146e-04 5.88602003e-04 + 6.00030859e-04 6.11595386e-04 6.23296257e-04 6.35134144e-04 6.47109717e-04 + 6.59223646e-04 6.71476600e-04 6.83869248e-04 6.96402254e-04 7.09076287e-04 + 7.21892011e-04 7.34850090e-04 7.47951188e-04 7.61195965e-04 7.74585083e-04 + 7.88119202e-04 8.01798981e-04 8.15625077e-04 8.29598146e-04 8.43718845e-04 + 8.57987827e-04 8.72405745e-04 8.86973251e-04 9.01690996e-04 9.16559628e-04 + 9.31579797e-04 9.46752148e-04 9.62077327e-04 9.77555978e-04 9.93188745e-04 + 1.00897627e-03 1.02491919e-03 1.04101814e-03 1.05727377e-03 1.07368671e-03 + 1.09025759e-03 1.10698704e-03 1.12387570e-03 1.14092420e-03 1.15813317e-03 + 1.17550323e-03 1.19303501e-03 1.21072913e-03 1.22858621e-03 1.24660688e-03 + 1.26479176e-03 1.28314145e-03 1.30165659e-03 1.32033777e-03 1.33918562e-03 + 1.35820075e-03 1.37738376e-03 1.39673526e-03 1.41625586e-03 1.43594616e-03 + 1.45580676e-03 1.47583827e-03 1.49604128e-03 1.51641638e-03 1.53696418e-03 + 1.55768526e-03 1.57858022e-03 1.59964965e-03 1.62089413e-03 1.64231425e-03 + 1.66391059e-03 1.68568373e-03 1.70763425e-03 1.72976274e-03 1.75206976e-03 + 1.77455589e-03 1.79722169e-03 1.82006775e-03 1.84309462e-03 1.86630287e-03 + 1.88969307e-03 1.91326577e-03 1.93702154e-03 1.96096092e-03 1.98508448e-03 + 2.00939277e-03 2.03388633e-03 2.05856572e-03 2.08343148e-03 2.10848415e-03 + 2.13372427e-03 2.15915239e-03 2.18476904e-03 2.21057475e-03 2.23657006e-03 + 2.26275549e-03 2.28913158e-03 2.31569884e-03 2.34245780e-03 2.36940899e-03 + 2.39655291e-03 2.42389008e-03 2.45142102e-03 2.47914624e-03 2.50706624e-03 + 2.53518153e-03 2.56349261e-03 2.59199999e-03 2.62070415e-03 2.64960561e-03 + 2.67870484e-03 2.70800234e-03 2.73749860e-03 2.76719410e-03 2.79708933e-03 + 2.82718476e-03 2.85748088e-03 2.88797815e-03 2.91867705e-03 2.94957805e-03 + 2.98068162e-03 3.01198821e-03 3.04349830e-03 3.07521234e-03 3.10713078e-03 + 3.13925408e-03 3.17158269e-03 3.20411705e-03 3.23685762e-03 3.26980484e-03 + 3.30295913e-03 3.33632095e-03 3.36989071e-03 3.40366887e-03 3.43765583e-03 + 3.47185204e-03 3.50625790e-03 3.54087384e-03 3.57570028e-03 3.61073762e-03 + 3.64598629e-03 3.68144668e-03 3.71711921e-03 3.75300427e-03 3.78910226e-03 + 3.82541359e-03 3.86193864e-03 3.89867779e-03 3.93563145e-03 3.97279999e-03 + 4.01018380e-03 4.04778325e-03 4.08559871e-03 4.12363057e-03 4.16187918e-03 + 4.20034492e-03 4.23902814e-03 4.27792921e-03 4.31704848e-03 4.35638630e-03 + 4.39594303e-03 4.43571902e-03 4.47571460e-03 4.51593011e-03 4.55636591e-03 + 4.59702231e-03 4.63789965e-03 4.67899827e-03 4.72031847e-03 4.76186059e-03 + 4.80362495e-03 4.84561186e-03 4.88782162e-03 4.93025456e-03 4.97291097e-03 + 5.01579116e-03 5.05889543e-03 5.10222407e-03 5.14577738e-03 5.18955564e-03 + 5.23355914e-03 5.27778816e-03 5.32224299e-03 5.36692389e-03 5.41183115e-03 + 5.45696503e-03 5.50232579e-03 5.54791370e-03 5.59372902e-03 5.63977201e-03 + 5.68604291e-03 5.73254198e-03 5.77926946e-03 5.82622559e-03 5.87341062e-03 + 5.92082478e-03 5.96846830e-03 6.01634140e-03 6.06444433e-03 6.11277729e-03 + 6.16134051e-03 6.21013420e-03 6.25915857e-03 6.30841384e-03 6.35790020e-03 + 6.40761786e-03 6.45756701e-03 6.50774785e-03 6.55816058e-03 6.60880537e-03 + 6.65968241e-03 6.71079189e-03 6.76213398e-03 6.81370884e-03 6.86551667e-03 + 6.91755761e-03 6.96983183e-03 7.02233950e-03 7.07508076e-03 7.12805578e-03 + 7.18126469e-03 7.23470765e-03 7.28838479e-03 7.34229626e-03 7.39644219e-03 + 7.45082271e-03 7.50543795e-03 7.56028803e-03 7.61537307e-03 7.67069319e-03 + 7.72624851e-03 7.78203912e-03 7.83806515e-03 7.89432669e-03 7.95082384e-03 + 8.00755670e-03 8.06452535e-03 8.12172989e-03 8.17917041e-03 8.23684697e-03 + 8.29475967e-03 8.35290857e-03 8.41129374e-03 8.46991526e-03 8.52877318e-03 + 8.58786757e-03 8.64719848e-03 8.70676596e-03 8.76657006e-03 8.82661083e-03 + 8.88688830e-03 8.94740253e-03 9.00815353e-03 9.06914135e-03 9.13036600e-03 + 9.19182752e-03 9.25352592e-03 9.31546122e-03 9.37763343e-03 9.44004256e-03 + 9.50268862e-03 9.56557160e-03 9.62869151e-03 9.69204834e-03 9.75564209e-03 + 9.81947273e-03 9.88354026e-03 9.94784464e-03 1.00123859e-02 1.00771639e-02 + 1.01421787e-02 1.02074303e-02 1.02729186e-02 1.03386435e-02 1.04046051e-02 + 1.04708033e-02 1.05372379e-02 1.06039091e-02 1.06708166e-02 1.07379605e-02 + 1.08053407e-02 1.08729570e-02 1.09408095e-02 1.10088981e-02 1.10772226e-02 + 1.11457830e-02 1.12145793e-02 1.12836112e-02 1.13528787e-02 1.14223818e-02 + 1.14921203e-02 1.15620941e-02 1.16323030e-02 1.17027471e-02 1.17734261e-02 + 1.18443400e-02 1.19154886e-02 1.19868718e-02 1.20584894e-02 1.21303414e-02 + 1.22024276e-02 1.22747478e-02 1.23473019e-02 1.24200897e-02 1.24931112e-02 + 1.25663661e-02 1.26398543e-02 1.27135756e-02 1.27875299e-02 1.28617170e-02 + 1.29361367e-02 1.30107888e-02 1.30856731e-02 1.31607896e-02 1.32361379e-02 + 1.33117179e-02 1.33875294e-02 1.34635722e-02 1.35398461e-02 1.36163509e-02 + 1.36930863e-02 1.37700523e-02 1.38472485e-02 1.39246747e-02 1.40023308e-02 + 1.40802164e-02 1.41583314e-02 1.42366755e-02 1.43152485e-02 1.43940502e-02 + 1.44730803e-02 1.45523385e-02 1.46318247e-02 1.47115385e-02 1.47914797e-02 + 1.48716480e-02 1.49520432e-02 1.50326651e-02 1.51135133e-02 1.51945875e-02 + 1.52758876e-02 1.53574131e-02 1.54391639e-02 1.55211396e-02 1.56033400e-02 + 1.56857648e-02 1.57684136e-02 1.58512861e-02 1.59343821e-02 1.60177013e-02 + 1.61012433e-02 1.61850079e-02 1.62689946e-02 1.63532033e-02 1.64376335e-02 + 1.65222849e-02 1.66071573e-02 1.66922502e-02 1.67775634e-02 1.68630965e-02 + 1.69488492e-02 1.70348211e-02 1.71210118e-02 1.72074211e-02 1.72940485e-02 + 1.73808937e-02 1.74679564e-02 1.75552362e-02 1.76427326e-02 1.77304454e-02 + 1.78183742e-02 1.79065185e-02 1.79948781e-02 1.80834525e-02 1.81722413e-02 + 1.82612442e-02 1.83504607e-02 1.84398905e-02 1.85295331e-02 1.86193882e-02 + 1.87094554e-02 1.87997342e-02 1.88902243e-02 1.89809251e-02 1.90718364e-02 + 1.91629577e-02 1.92542885e-02 1.93458285e-02 1.94375771e-02 1.95295341e-02 + 1.96216989e-02 1.97140711e-02 1.98066502e-02 1.98994359e-02 1.99924277e-02 + 2.00856251e-02 2.01790276e-02 2.02726349e-02 2.03664465e-02 2.04604618e-02 + 2.05546805e-02 2.06491020e-02 2.07437260e-02 2.08385519e-02 2.09335792e-02 + 2.10288076e-02 2.11242364e-02 2.12198652e-02 2.13156936e-02 2.14117210e-02 + 2.15079470e-02 2.16043710e-02 2.17009926e-02 2.17978112e-02 2.18948264e-02 + 2.19920377e-02 2.20894445e-02 2.21870464e-02 2.22848427e-02 2.23828331e-02 + 2.24810170e-02 2.25793938e-02 2.26779631e-02 2.27767243e-02 2.28756769e-02 + 2.29748204e-02 2.30741542e-02 2.31736778e-02 2.32733907e-02 2.33732923e-02 + 2.34733820e-02 2.35736594e-02 2.36741238e-02 2.37747748e-02 2.38756118e-02 + 2.39766342e-02 2.40778414e-02 2.41792330e-02 2.42808082e-02 2.43825667e-02 + 2.44845078e-02 2.45866309e-02 2.46889354e-02 2.47914209e-02 2.48940867e-02 + 2.49969322e-02 2.50999568e-02 2.52031600e-02 2.53065412e-02 2.54100998e-02 + 2.55138352e-02 2.56177468e-02 2.57218340e-02 2.58260963e-02 2.59305329e-02 + 2.60351434e-02 2.61399271e-02 2.62448834e-02 2.63500117e-02 2.64553114e-02 + 2.65607818e-02 2.66664224e-02 2.67722326e-02 2.68782117e-02 2.69843591e-02 + 2.70906742e-02 2.71971563e-02 2.73038049e-02 2.74106192e-02 2.75175988e-02 + 2.76247429e-02 2.77320509e-02 2.78395221e-02 2.79471560e-02 2.80549519e-02 + 2.81629091e-02 2.82710270e-02 2.83793050e-02 2.84877423e-02 2.85963385e-02 + 2.87050927e-02 2.88140044e-02 2.89230729e-02 2.90322975e-02 2.91416776e-02 + 2.92512125e-02 2.93609016e-02 2.94707442e-02 2.95807396e-02 2.96908871e-02 + 2.98011861e-02 2.99116360e-02 3.00222360e-02 3.01329854e-02 3.02438837e-02 + 3.03549300e-02 3.04661238e-02 3.05774644e-02 3.06889510e-02 3.08005830e-02 + 3.09123597e-02 3.10242804e-02 3.11363445e-02 3.12485511e-02 3.13608997e-02 + 3.14733896e-02 3.15860200e-02 3.16987903e-02 3.18116997e-02 3.19247476e-02 + 3.20379332e-02 3.21512559e-02 3.22647149e-02 3.23783096e-02 3.24920392e-02 + 3.26059030e-02 3.27199004e-02 3.28340306e-02 3.29482928e-02 3.30626865e-02 + 3.31772108e-02 3.32918651e-02 3.34066486e-02 3.35215607e-02 3.36366005e-02 + 3.37517674e-02 3.38670607e-02 3.39824796e-02 3.40980234e-02 3.42136915e-02 + 3.43294829e-02 3.44453971e-02 3.45614333e-02 3.46775908e-02 3.47938688e-02 + 3.49102666e-02 3.50267835e-02 3.51434187e-02 3.52601716e-02 3.53770413e-02 + 3.54940271e-02 3.56111283e-02 3.57283442e-02 3.58456740e-02 3.59631170e-02 + 3.60806724e-02 3.61983395e-02 3.63161175e-02 3.64340058e-02 3.65520035e-02 + 3.66701099e-02 3.67883242e-02 3.69066458e-02 3.70250738e-02 3.71436076e-02 + 3.72622463e-02 3.73809892e-02 3.74998356e-02 3.76187846e-02 3.77378357e-02 + 3.78569879e-02 3.79762406e-02 3.80955929e-02 3.82150442e-02 3.83345937e-02 + 3.84542406e-02 3.85739841e-02 3.86938235e-02 3.88137581e-02 3.89337870e-02 + 3.90539096e-02 3.91741250e-02 3.92944326e-02 3.94148314e-02 3.95353208e-02 + 3.96559000e-02 3.97765683e-02 3.98973248e-02 4.00181689e-02 4.01390997e-02 + 4.02601165e-02 4.03812185e-02 4.05024049e-02 4.06236750e-02 4.07450281e-02 + 4.08664633e-02 4.09879798e-02 4.11095770e-02 4.12312540e-02 4.13530101e-02 + 4.14748445e-02 4.15967564e-02 4.17187451e-02 4.18408097e-02 4.19629496e-02 + 4.20851640e-02 4.22074520e-02 4.23298129e-02 4.24522460e-02 4.25747504e-02 + 4.26973254e-02 4.28199703e-02 4.29426842e-02 4.30654664e-02 4.31883161e-02 + 4.33112325e-02 4.34342149e-02 4.35572624e-02 4.36803744e-02 4.38035500e-02 + 4.39267885e-02 4.40500891e-02 4.41734511e-02 4.42968735e-02 4.44203558e-02 + 4.45438971e-02 4.46674966e-02 4.47911535e-02 4.49148672e-02 4.50386368e-02 + 4.51624615e-02 4.52863406e-02 4.54102733e-02 4.55342588e-02 4.56582964e-02 + 4.57823853e-02 4.59065247e-02 4.60307139e-02 4.61549520e-02 4.62792383e-02 + 4.64035721e-02 4.65279525e-02 4.66523788e-02 4.67768502e-02 4.69013660e-02 + 4.70259254e-02 4.71505276e-02 4.72751719e-02 4.73998574e-02 4.75245834e-02 + 4.76493492e-02 4.77741540e-02 4.78989970e-02 4.80238774e-02 4.81487945e-02 + 4.82737475e-02 4.83987357e-02 4.85237582e-02 4.86488144e-02 4.87739034e-02 + 4.88990245e-02 4.90241770e-02 4.91493600e-02 4.92745728e-02 4.93998147e-02 + 4.95250848e-02 4.96503825e-02 4.97757070e-02 4.99010574e-02 5.00264331e-02 + 5.01518333e-02 5.02772572e-02 5.04027041e-02 5.05281733e-02 5.06536638e-02 + 5.07791751e-02 5.09047064e-02 5.10302569e-02 5.11558258e-02 5.12814124e-02 + 5.14070160e-02 5.15326357e-02 5.16582709e-02 5.17839208e-02 5.19095847e-02 + 5.20352618e-02 5.21609513e-02 5.22866525e-02 5.24123647e-02 5.25380871e-02 + 5.26638190e-02 5.27895597e-02 5.29153083e-02 5.30410642e-02 5.31668266e-02 + 5.32925947e-02 5.34183680e-02 5.35441455e-02 5.36699265e-02 5.37957104e-02 + 5.39214964e-02 5.40472838e-02 5.41730717e-02 5.42988596e-02 5.44246466e-02 + 5.45504321e-02 5.46762153e-02 5.48019954e-02 5.49277718e-02 5.50535437e-02 + 5.51793104e-02 5.53050712e-02 5.54308254e-02 5.55565722e-02 5.56823109e-02 + 5.58080407e-02 5.59337611e-02 5.60594712e-02 5.61851704e-02 5.63108578e-02 + 5.64365329e-02 5.65621949e-02 5.66878431e-02 5.68134767e-02 5.69390952e-02 + 5.70646976e-02 5.71902835e-02 5.73158519e-02 5.74414024e-02 5.75669340e-02 + 5.76924462e-02 5.78179382e-02 5.79434094e-02 5.80688590e-02 5.81942863e-02 + 5.83196907e-02 5.84450715e-02 5.85704278e-02 5.86957592e-02 5.88210648e-02 + 5.89463440e-02 5.90715962e-02 5.91968205e-02 5.93220163e-02 5.94471830e-02 + 5.95723199e-02 5.96974262e-02 5.98225013e-02 5.99475445e-02 6.00725552e-02 + 6.01975327e-02 6.03224762e-02 6.04473851e-02 6.05722588e-02 6.06970966e-02 + 6.08218978e-02 6.09466617e-02 6.10713877e-02 6.11960751e-02 6.13207233e-02 + 6.14453315e-02 6.15698992e-02 6.16944256e-02 6.18189101e-02 6.19433521e-02 + 6.20677509e-02 6.21921059e-02 6.23164163e-02 6.24406816e-02 6.25649011e-02 + 6.26890741e-02 6.28132001e-02 6.29372783e-02 6.30613081e-02 6.31852889e-02 + 6.33092201e-02 6.34331010e-02 6.35569309e-02 6.36807093e-02 6.38044355e-02 + 6.39281089e-02 6.40517288e-02 6.41752947e-02 6.42988058e-02 6.44222616e-02 + 6.45456615e-02 6.46690048e-02 6.47922909e-02 6.49155192e-02 6.50386891e-02 + 6.51617999e-02 6.52848511e-02 6.54078420e-02 6.55307721e-02 6.56536406e-02 + 6.57764471e-02 6.58991910e-02 6.60218715e-02 6.61444881e-02 6.62670403e-02 + 6.63895274e-02 6.65119488e-02 6.66343039e-02 6.67565921e-02 6.68788129e-02 + 6.70009657e-02 6.71230499e-02 6.72450648e-02 6.73670099e-02 6.74888847e-02 + 6.76106885e-02 6.77324208e-02 6.78540809e-02 6.79756684e-02 6.80971826e-02 + 6.82186230e-02 6.83399891e-02 6.84612801e-02 6.85824957e-02 6.87036351e-02 + 6.88246979e-02 6.89456835e-02 6.90665913e-02 6.91874209e-02 6.93081715e-02 + 6.94288427e-02 6.95494340e-02 6.96699447e-02 6.97903744e-02 6.99107224e-02 + 7.00309883e-02 7.01511715e-02 7.02712715e-02 7.03912876e-02 7.05112195e-02 + 7.06310666e-02 7.07508283e-02 7.08705040e-02 7.09900934e-02 7.11095958e-02 + 7.12290107e-02 7.13483377e-02 7.14675761e-02 7.15867255e-02 7.17057853e-02 + 7.18247551e-02 7.19436343e-02 7.20624225e-02 7.21811190e-02 7.22997234e-02 + 7.24182353e-02 7.25366540e-02 7.26549791e-02 7.27732102e-02 7.28913466e-02 + 7.30093879e-02 7.31273337e-02 7.32451834e-02 7.33629365e-02 7.34805926e-02 + 7.35981511e-02 7.37156116e-02 7.38329737e-02 7.39502367e-02 7.40674004e-02 + 7.41844640e-02 7.43014273e-02 7.44182898e-02 7.45350509e-02 7.46517101e-02 + 7.47682672e-02 7.48847215e-02 7.50010726e-02 7.51173201e-02 7.52334634e-02 + 7.53495022e-02 7.54654360e-02 7.55812644e-02 7.56969868e-02 7.58126029e-02 + 7.59281122e-02 7.60435142e-02 7.61588086e-02 7.62739948e-02 7.63890725e-02 + 7.65040412e-02 7.66189005e-02 7.67336500e-02 7.68482891e-02 7.69628176e-02 + 7.70772349e-02 7.71915407e-02 7.73057346e-02 7.74198160e-02 7.75337846e-02 + 7.76476400e-02 7.77613818e-02 7.78750096e-02 7.79885229e-02 7.81019214e-02 + 7.82152046e-02 7.83283722e-02 7.84414237e-02 7.85543587e-02 7.86671770e-02 + 7.87798779e-02 7.88924613e-02 7.90049266e-02 7.91172736e-02 7.92295017e-02 + 7.93416107e-02 7.94536001e-02 7.95654696e-02 7.96772188e-02 7.97888473e-02 + 7.99003547e-02 8.00117407e-02 8.01230050e-02 8.02341470e-02 8.03451666e-02 + 8.04560632e-02 8.05668367e-02 8.06774865e-02 8.07880123e-02 8.08984138e-02 + 8.10086907e-02 8.11188426e-02 8.12288690e-02 8.13387698e-02 8.14485445e-02 + 8.15581929e-02 8.16677145e-02 8.17771090e-02 8.18863761e-02 8.19955155e-02 + 8.21045268e-02 8.22134097e-02 8.23221639e-02 8.24307890e-02 8.25392847e-02 + 8.26476508e-02 8.27558868e-02 8.28639925e-02 8.29719676e-02 8.30798116e-02 + 8.31875245e-02 8.32951057e-02 8.34025550e-02 8.35098722e-02 8.36170568e-02 + 8.37241087e-02 8.38310274e-02 8.39378128e-02 8.40444645e-02 8.41509822e-02 + 8.42573656e-02 8.43636145e-02 8.44697286e-02 8.45757075e-02 8.46815510e-02 + 8.47872588e-02 8.48928306e-02 8.49982662e-02 8.51035653e-02 8.52087276e-02 + 8.53137528e-02 8.54186407e-02 8.55233910e-02 8.56280034e-02 8.57324777e-02 + 8.58368136e-02 8.59410109e-02 8.60450693e-02 8.61489885e-02 8.62527683e-02 + 8.63564085e-02 8.64599088e-02 8.65632689e-02 8.66664887e-02 8.67695678e-02 + 8.68725060e-02 8.69753031e-02 8.70779589e-02 8.71804730e-02 8.72828454e-02 + 8.73850757e-02 8.74871638e-02 8.75891093e-02 8.76909121e-02 8.77925720e-02 + 8.78940887e-02 8.79954620e-02 8.80966917e-02 8.81977776e-02 8.82987195e-02 + 8.83995171e-02 8.85001703e-02 8.86006788e-02 8.87010425e-02 8.88012610e-02 + 8.89013344e-02 8.90012622e-02 8.91010444e-02 8.92006808e-02 8.93001711e-02 + 8.93995152e-02 8.94987128e-02 8.95977638e-02 8.96966680e-02 8.97954252e-02 + 8.98940353e-02 8.99924980e-02 9.00908132e-02 9.01889806e-02 9.02870002e-02 + 9.03848718e-02 9.04825951e-02 9.05801701e-02 9.06775965e-02 9.07748742e-02 + 9.08720029e-02 9.09689827e-02 9.10658132e-02 9.11624944e-02 9.12590261e-02 + 9.13554081e-02 9.14516403e-02 9.15477225e-02 9.16436547e-02 9.17394365e-02 + 9.18350679e-02 9.19305488e-02 9.20258790e-02 9.21210584e-02 9.22160868e-02 + 9.23109641e-02 9.24056902e-02 9.25002649e-02 9.25946881e-02 9.26889596e-02 + 9.27830795e-02 9.28770474e-02 9.29708634e-02 9.30645273e-02 9.31580389e-02 + 9.32513981e-02 9.33446049e-02 9.34376591e-02 9.35305607e-02 9.36233094e-02 + 9.37159052e-02 9.38083480e-02 9.39006377e-02 9.39927741e-02 9.40847572e-02 + 9.41765869e-02 9.42682631e-02 9.43597856e-02 9.44511545e-02 9.45423695e-02 + 9.46334306e-02 9.47243378e-02 9.48150908e-02 9.49056898e-02 9.49961344e-02 + 9.50864248e-02 9.51765607e-02 9.52665422e-02 9.53563691e-02 9.54460414e-02 + 9.55355589e-02 9.56249217e-02 9.57141296e-02 9.58031826e-02 9.58920806e-02 + 9.59808236e-02 9.60694114e-02 9.61578440e-02 9.62461215e-02 9.63342436e-02 + 9.64222103e-02 9.65100217e-02 9.65976776e-02 9.66851779e-02 9.67725227e-02 + 9.68597119e-02 9.69467454e-02 9.70336232e-02 9.71203453e-02 9.72069115e-02 + 9.72933219e-02 9.73795765e-02 9.74656751e-02 9.75516178e-02 9.76374044e-02 + 9.77230351e-02 9.78085097e-02 9.78938282e-02 9.79789907e-02 9.80639969e-02 + 9.81488471e-02 9.82335410e-02 9.83180787e-02 9.84024602e-02 9.84866854e-02 + 9.85707544e-02 9.86546671e-02 9.87384235e-02 9.88220236e-02 9.89054674e-02 + 9.89887548e-02 9.90718859e-02 9.91548606e-02 9.92376790e-02 9.93203411e-02 + 9.94028467e-02 9.94851960e-02 9.95673890e-02 9.96494256e-02 9.97313058e-02 + 9.98130297e-02 9.98945972e-02 9.99760084e-02 1.00057263e-01 1.00138362e-01 + 1.00219304e-01 1.00300090e-01 1.00380720e-01 1.00461193e-01 1.00541510e-01 + 1.00621671e-01 1.00701676e-01 1.00781524e-01 1.00861217e-01 1.00940753e-01 + 1.01020133e-01 1.01099357e-01 1.01178425e-01 1.01257337e-01 1.01336093e-01 + 1.01414693e-01 1.01493137e-01 1.01571425e-01 1.01649557e-01 1.01727534e-01 + 1.01805354e-01 1.01883019e-01 1.01960528e-01 1.02037882e-01 1.02115080e-01 + 1.02192122e-01 1.02269009e-01 1.02345741e-01 1.02422317e-01 1.02498737e-01 + 1.02575002e-01 1.02651112e-01 1.02727067e-01 1.02802867e-01 1.02878511e-01 + 1.02954001e-01 1.03029335e-01 1.03104515e-01 1.03179540e-01 1.03254410e-01 + 1.03329125e-01 1.03403685e-01 1.03478091e-01 1.03552343e-01 1.03626440e-01 + 1.03700382e-01 1.03774170e-01 1.03847804e-01 1.03921284e-01 1.03994610e-01 + 1.04067782e-01 1.04140799e-01 1.04213663e-01 1.04286373e-01 1.04358930e-01 + 1.04431332e-01 1.04503582e-01 1.04575677e-01 1.04647620e-01 1.04719409e-01 + 1.04791045e-01 1.04862528e-01 1.04933857e-01 1.05005034e-01 1.05076058e-01 + 1.05146930e-01 1.05217648e-01 1.05288214e-01 1.05358628e-01 1.05428889e-01 + 1.05498998e-01 1.05568955e-01 1.05638760e-01 1.05708413e-01 1.05777914e-01 + 1.05847263e-01 1.05916461e-01 1.05985507e-01 1.06054401e-01 1.06123145e-01 + 1.06191737e-01 1.06260178e-01 1.06328468e-01 1.06396607e-01 1.06464595e-01 + 1.06532433e-01 1.06600120e-01 1.06667657e-01 1.06735043e-01 1.06802280e-01 + 1.06869366e-01 1.06936302e-01 1.07003089e-01 1.07069725e-01 1.07136212e-01 + 1.07202550e-01 1.07268738e-01 1.07334777e-01 1.07400667e-01 1.07466408e-01 + 1.07532001e-01 1.07597444e-01 1.07662739e-01 1.07727885e-01 1.07792884e-01 + 1.07857734e-01 1.07922436e-01 1.07986990e-01 1.08051396e-01 1.08115655e-01 + 1.08179766e-01 1.08243729e-01 1.08307546e-01 1.08371215e-01 1.08434738e-01 + 1.08498114e-01 1.08561343e-01 1.08624425e-01 1.08687361e-01 1.08750151e-01 + 1.08812795e-01 1.08875293e-01 1.08937645e-01 1.08999851e-01 1.09061912e-01 + 1.09123828e-01 1.09185598e-01 1.09247224e-01 1.09308704e-01 1.09370040e-01 + 1.09431231e-01 1.09492278e-01 1.09553180e-01 1.09613938e-01 1.09674553e-01 + 1.09735023e-01 1.09795350e-01 1.09855533e-01 1.09915573e-01 1.09975470e-01 + 1.10035224e-01 1.10094835e-01 1.10154303e-01 1.10213628e-01 1.10272812e-01 + 1.10331853e-01 1.10390752e-01 1.10449509e-01 1.10508124e-01 1.10566598e-01 + 1.10624931e-01 1.10683122e-01 1.10741172e-01 1.10799082e-01 1.10856850e-01 + 1.10914478e-01 1.10971966e-01 1.11029314e-01 1.11086521e-01 1.11143589e-01 + 1.11200517e-01 1.11257305e-01 1.11313955e-01 1.11370465e-01 1.11426836e-01 + 1.11483068e-01 1.11539162e-01 1.11595117e-01 1.11650934e-01 1.11706612e-01 + 1.11762153e-01 1.11817557e-01 1.11872822e-01 1.11927951e-01 1.11982942e-01 + 1.12037796e-01 1.12092513e-01 1.12147094e-01 1.12201538e-01 1.12255846e-01 + 1.12310017e-01 1.12364053e-01 1.12417954e-01 1.12471718e-01 1.12525348e-01 + 1.12578842e-01 1.12632201e-01 1.12685425e-01 1.12738515e-01 1.12791471e-01 + 1.12844292e-01 1.12896979e-01 1.12949532e-01 1.13001952e-01 1.13054238e-01 + 1.13106391e-01 1.13158411e-01 1.13210299e-01 1.13262053e-01 1.13313675e-01 + 1.13365165e-01 1.13416522e-01 1.13467748e-01 1.13518842e-01 1.13569804e-01 + 1.13620635e-01 1.13671335e-01 1.13721904e-01 1.13772343e-01 1.13822651e-01 + 1.13872828e-01 1.13922876e-01 1.13972793e-01 1.14022581e-01 1.14072239e-01 + 1.14121768e-01 1.14171168e-01 1.14220439e-01 1.14269581e-01 1.14318594e-01 + 1.14367480e-01 1.14416237e-01 1.14464866e-01 1.14513368e-01 1.14561742e-01 + 1.14609988e-01 1.14658108e-01 1.14706101e-01 1.14753967e-01 1.14801706e-01 + 1.14849320e-01 1.14896807e-01 1.14944168e-01 1.14991404e-01 1.15038514e-01 + 1.15085499e-01 1.15132359e-01 1.15179094e-01 1.15225704e-01 1.15272190e-01 + 1.15318552e-01 1.15364790e-01 1.15410904e-01 1.15456894e-01 1.15502761e-01 + 1.15548505e-01 1.15594126e-01 1.15639624e-01 1.15685000e-01 1.15730253e-01 + 1.15775384e-01 1.15820394e-01 1.15865281e-01 1.15910047e-01 1.15954692e-01 + 1.15999216e-01 1.16043619e-01 1.16087901e-01 1.16132063e-01 1.16176105e-01 + 1.16220027e-01 1.16263828e-01 1.16307511e-01 1.16351074e-01 1.16394518e-01 + 1.16437842e-01 1.16481049e-01 1.16524136e-01 1.16567106e-01 1.16609957e-01 + 1.16652690e-01 1.16695306e-01 1.16737805e-01 1.16780186e-01 1.16822450e-01 + 1.16864597e-01 1.16906628e-01 1.16948543e-01 1.16990341e-01 1.17032023e-01 + 1.17073590e-01 1.17115041e-01 1.17156377e-01 1.17197598e-01 1.17238704e-01 + 1.17279696e-01 1.17320573e-01 1.17361336e-01 1.17401984e-01 1.17442520e-01 + 1.17482941e-01 1.17523249e-01 1.17563445e-01 1.17603527e-01 1.17643497e-01 + 1.17683354e-01 1.17723099e-01 1.17762732e-01 1.17802253e-01 1.17841662e-01 + 1.17880961e-01 1.17920148e-01 1.17959224e-01 1.17998189e-01 1.18037044e-01 + 0.00000000e+00 7.21069637e-07 2.87393769e-06 6.44313909e-06 1.14132704e-05 + 1.77689899e-05 2.54950175e-05 3.45761350e-05 4.49971859e-05 5.67430756e-05 + 6.97987714e-05 8.41493023e-05 9.97797595e-05 1.16675296e-04 1.34821127e-04 + 1.54202530e-04 1.74804843e-04 1.96613468e-04 2.19613868e-04 2.43791569e-04 + 2.69132158e-04 2.95621286e-04 3.23244664e-04 3.51988067e-04 3.81837331e-04 + 4.12778355e-04 4.44797101e-04 4.77879591e-04 5.12011912e-04 5.47180212e-04 + 5.83370701e-04 6.20569653e-04 6.58763402e-04 6.97938346e-04 7.38080946e-04 + 7.79177724e-04 8.21215265e-04 8.64180217e-04 9.08059290e-04 9.52839256e-04 + 9.98506949e-04 1.04504927e-03 1.09245317e-03 1.14070568e-03 1.18979389e-03 + 1.23970493e-03 1.29042603e-03 1.34194444e-03 1.39424752e-03 1.44732264e-03 + 1.50115728e-03 1.55573896e-03 1.61105526e-03 1.66709382e-03 1.72384237e-03 + 1.78128866e-03 1.83942054e-03 1.89822590e-03 1.95769270e-03 2.01780896e-03 + 2.07856277e-03 2.13994227e-03 2.20193567e-03 2.26453125e-03 2.32771733e-03 + 2.39148232e-03 2.45581467e-03 2.52070290e-03 2.58613560e-03 2.65210140e-03 + 2.71858902e-03 2.78558723e-03 2.85308485e-03 2.92107079e-03 2.98953399e-03 + 3.05846348e-03 3.12784833e-03 3.19767769e-03 3.26794076e-03 3.33862681e-03 + 3.40972516e-03 3.48122520e-03 3.55311639e-03 3.62538824e-03 3.69803032e-03 + 3.77103228e-03 3.84438380e-03 3.91807465e-03 3.99209466e-03 4.06643370e-03 + 4.14108172e-03 4.21602872e-03 4.29126479e-03 4.36678003e-03 4.44256466e-03 + 4.51860891e-03 4.59490310e-03 4.67143761e-03 4.74820286e-03 4.82518937e-03 + 4.90238769e-03 4.97978843e-03 5.05738227e-03 5.13515997e-03 5.21311231e-03 + 5.29123016e-03 5.36950445e-03 5.44792616e-03 5.52648633e-03 5.60517607e-03 + 5.68398655e-03 5.76290899e-03 5.84193467e-03 5.92105496e-03 6.00026124e-03 + 6.07954500e-03 6.15889775e-03 6.23831109e-03 6.31777667e-03 6.39728618e-03 + 6.47683141e-03 6.55640417e-03 6.63599636e-03 6.71559991e-03 6.79520684e-03 + 6.87480922e-03 6.95439916e-03 7.03396886e-03 7.11351055e-03 7.19301654e-03 + 7.27247919e-03 7.35189093e-03 7.43124423e-03 7.51053163e-03 7.58974574e-03 + 7.66887920e-03 7.74792473e-03 7.82687511e-03 7.90572317e-03 7.98446180e-03 + 8.06308394e-03 8.14158262e-03 8.21995088e-03 8.29818186e-03 8.37626873e-03 + 8.45420474e-03 8.53198318e-03 8.60959741e-03 8.68704084e-03 8.76430693e-03 + 8.84138922e-03 8.91828129e-03 8.99497678e-03 9.07146939e-03 9.14775287e-03 + 9.22382104e-03 9.29966777e-03 9.37528698e-03 9.45067266e-03 9.52581884e-03 + 9.60071962e-03 9.67536915e-03 9.74976163e-03 9.82389135e-03 9.89775260e-03 + 9.97133977e-03 1.00446473e-02 1.01176696e-02 1.01904014e-02 1.02628371e-02 + 1.03349714e-02 1.04067991e-02 1.04783149e-02 1.05495136e-02 1.06203901e-02 + 1.06909393e-02 1.07611563e-02 1.08310359e-02 1.09005734e-02 1.09697639e-02 + 1.10386026e-02 1.11070846e-02 1.11752055e-02 1.12429604e-02 1.13103449e-02 + 1.13773543e-02 1.14439842e-02 1.15102303e-02 1.15760880e-02 1.16415531e-02 + 1.17066214e-02 1.17712886e-02 1.18355505e-02 1.18994031e-02 1.19628422e-02 + 1.20258640e-02 1.20884644e-02 1.21506395e-02 1.22123856e-02 1.22736987e-02 + 1.23345752e-02 1.23950113e-02 1.24550035e-02 1.25145481e-02 1.25736416e-02 + 1.26322805e-02 1.26904613e-02 1.27481808e-02 1.28054355e-02 1.28622221e-02 + 1.29185375e-02 1.29743784e-02 1.30297417e-02 1.30846244e-02 1.31390233e-02 + 1.31929355e-02 1.32463581e-02 1.32992881e-02 1.33517228e-02 1.34036593e-02 + 1.34550949e-02 1.35060269e-02 1.35564527e-02 1.36063696e-02 1.36557752e-02 + 1.37046669e-02 1.37530423e-02 1.38008989e-02 1.38482344e-02 1.38950466e-02 + 1.39413330e-02 1.39870916e-02 1.40323202e-02 1.40770166e-02 1.41211787e-02 + 1.41648046e-02 1.42078922e-02 1.42504396e-02 1.42924450e-02 1.43339064e-02 + 1.43748221e-02 1.44151903e-02 1.44550094e-02 1.44942776e-02 1.45329934e-02 + 1.45711551e-02 1.46087613e-02 1.46458104e-02 1.46823011e-02 1.47182318e-02 + 1.47536014e-02 1.47884084e-02 1.48226516e-02 1.48563299e-02 1.48894419e-02 + 1.49219866e-02 1.49539629e-02 1.49853697e-02 1.50162061e-02 1.50464710e-02 + 1.50761636e-02 1.51052830e-02 1.51338283e-02 1.51617988e-02 1.51891936e-02 + 1.52160122e-02 1.52422538e-02 1.52679177e-02 1.52930035e-02 1.53175105e-02 + 1.53414383e-02 1.53647864e-02 1.53875543e-02 1.54097417e-02 1.54313483e-02 + 1.54523737e-02 1.54728176e-02 1.54926799e-02 1.55119603e-02 1.55306587e-02 + 1.55487751e-02 1.55663092e-02 1.55832611e-02 1.55996309e-02 1.56154184e-02 + 1.56306239e-02 1.56452475e-02 1.56592892e-02 1.56727493e-02 1.56856281e-02 + 1.56979258e-02 1.57096426e-02 1.57207790e-02 1.57313354e-02 1.57413121e-02 + 1.57507095e-02 1.57595283e-02 1.57677688e-02 1.57754317e-02 1.57825176e-02 + 1.57890270e-02 1.57949607e-02 1.58003193e-02 1.58051036e-02 1.58093144e-02 + 1.58129524e-02 1.58160185e-02 1.58185135e-02 1.58204384e-02 1.58217941e-02 + 1.58225815e-02 1.58228017e-02 1.58224557e-02 1.58215446e-02 1.58200695e-02 + 1.58180314e-02 1.58154316e-02 1.58122713e-02 1.58085517e-02 1.58042740e-02 + 1.57994396e-02 1.57940497e-02 1.57881058e-02 1.57816092e-02 1.57745612e-02 + 1.57669635e-02 1.57588174e-02 1.57501244e-02 1.57408862e-02 1.57311041e-02 + 1.57207799e-02 1.57099152e-02 1.56985116e-02 1.56865708e-02 1.56740944e-02 + 1.56610844e-02 1.56475423e-02 1.56334700e-02 1.56188694e-02 1.56037422e-02 + 1.55880904e-02 1.55719159e-02 1.55552205e-02 1.55380063e-02 1.55202751e-02 + 1.55020292e-02 1.54832704e-02 1.54640008e-02 1.54442226e-02 1.54239378e-02 + 1.54031486e-02 1.53818571e-02 1.53600655e-02 1.53377761e-02 1.53149911e-02 + 1.52917128e-02 1.52679433e-02 1.52436851e-02 1.52189406e-02 1.51937119e-02 + 1.51680016e-02 1.51418120e-02 1.51151455e-02 1.50880047e-02 1.50603920e-02 + 1.50323098e-02 1.50037607e-02 1.49747473e-02 1.49452721e-02 1.49153377e-02 + 1.48849466e-02 1.48541016e-02 1.48228052e-02 1.47910602e-02 1.47588692e-02 + 1.47262349e-02 1.46931601e-02 1.46596475e-02 1.46256998e-02 1.45913200e-02 + 1.45565107e-02 1.45212748e-02 1.44856151e-02 1.44495346e-02 1.44130360e-02 + 1.43761224e-02 1.43387965e-02 1.43010615e-02 1.42629201e-02 1.42243754e-02 + 1.41854304e-02 1.41460881e-02 1.41063514e-02 1.40662236e-02 1.40257075e-02 + 1.39848063e-02 1.39435230e-02 1.39018609e-02 1.38598229e-02 1.38174123e-02 + 1.37746322e-02 1.37314857e-02 1.36879760e-02 1.36441064e-02 1.35998801e-02 + 1.35553002e-02 1.35103700e-02 1.34650928e-02 1.34194718e-02 1.33735104e-02 + 1.33272118e-02 1.32805793e-02 1.32336162e-02 1.31863260e-02 1.31387118e-02 + 1.30907772e-02 1.30425254e-02 1.29939598e-02 1.29450839e-02 1.28959010e-02 + 1.28464146e-02 1.27966281e-02 1.27465449e-02 1.26961685e-02 1.26455023e-02 + 1.25945499e-02 1.25433146e-02 1.24918000e-02 1.24400097e-02 1.23879470e-02 + 1.23356156e-02 1.22830189e-02 1.22301605e-02 1.21770439e-02 1.21236728e-02 + 1.20700506e-02 1.20161810e-02 1.19620674e-02 1.19077136e-02 1.18531231e-02 + 1.17982995e-02 1.17432464e-02 1.16879675e-02 1.16324664e-02 1.15767466e-02 + 1.15208119e-02 1.14646658e-02 1.14083121e-02 1.13517544e-02 1.12949964e-02 + 1.12380417e-02 1.11808940e-02 1.11235569e-02 1.10660343e-02 1.10083296e-02 + 1.09504468e-02 1.08923894e-02 1.08341611e-02 1.07757657e-02 1.07172069e-02 + 1.06584883e-02 1.05996138e-02 1.05405870e-02 1.04814116e-02 1.04220914e-02 + 1.03626301e-02 1.03030315e-02 1.02432992e-02 1.01834370e-02 1.01234487e-02 + 1.00633380e-02 1.00031086e-02 9.94276435e-03 9.88230889e-03 9.82174601e-03 + 9.76107946e-03 9.70031298e-03 9.63945032e-03 9.57849524e-03 9.51745148e-03 + 9.45632281e-03 9.39511296e-03 9.33382569e-03 9.27246474e-03 9.21103388e-03 + 9.14953684e-03 9.08797738e-03 9.02635924e-03 8.96468616e-03 8.90296189e-03 + 8.84119018e-03 8.77937476e-03 8.71751937e-03 8.65562775e-03 8.59370363e-03 + 8.53175075e-03 8.46977283e-03 8.40777359e-03 8.34575677e-03 8.28372608e-03 + 8.22168524e-03 8.15963796e-03 8.09758795e-03 8.03553892e-03 7.97349457e-03 + 7.91145859e-03 7.84943468e-03 7.78742653e-03 7.72543782e-03 7.66347224e-03 + 7.60153345e-03 7.53962513e-03 7.47775093e-03 7.41591453e-03 7.35411956e-03 + 7.29236969e-03 7.23066854e-03 7.16901976e-03 7.10742698e-03 7.04589381e-03 + 6.98442388e-03 6.92302079e-03 6.86168815e-03 6.80042955e-03 6.73924858e-03 + 6.67814882e-03 6.61713385e-03 6.55620723e-03 6.49537252e-03 6.43463328e-03 + 6.37399304e-03 6.31345533e-03 6.25302370e-03 6.19270165e-03 6.13249269e-03 + 6.07240032e-03 6.01242804e-03 5.95257933e-03 5.89285766e-03 5.83326649e-03 + 5.77380928e-03 5.71448947e-03 5.65531051e-03 5.59627581e-03 5.53738879e-03 + 5.47865285e-03 5.42007139e-03 5.36164780e-03 5.30338545e-03 5.24528770e-03 + 5.18735790e-03 5.12959940e-03 5.07201552e-03 5.01460958e-03 4.95738490e-03 + 4.90034477e-03 4.84349247e-03 4.78683128e-03 4.73036445e-03 4.67409524e-03 + 4.61802688e-03 4.56216259e-03 4.50650560e-03 4.45105909e-03 4.39582627e-03 + 4.34081029e-03 4.28601432e-03 4.23144152e-03 4.17709501e-03 4.12297792e-03 + 4.06909335e-03 4.01544441e-03 3.96203417e-03 3.90886570e-03 3.85594206e-03 + 3.80326629e-03 3.75084141e-03 3.69867044e-03 3.64675637e-03 3.59510219e-03 + 3.54371086e-03 3.49258535e-03 3.44172859e-03 3.39114350e-03 3.34083300e-03 + 3.29079998e-03 3.24104732e-03 3.19157789e-03 3.14239453e-03 3.09350009e-03 + 3.04489737e-03 2.99658919e-03 2.94857832e-03 2.90086754e-03 2.85345962e-03 + 2.80635727e-03 2.75956324e-03 2.71308022e-03 2.66691091e-03 2.62105798e-03 + 2.57552409e-03 2.53031188e-03 2.48542398e-03 2.44086299e-03 2.39663151e-03 + 2.35273210e-03 2.30916734e-03 2.26593975e-03 2.22305186e-03 2.18050618e-03 + 2.13830519e-03 2.09645137e-03 2.05494716e-03 2.01379501e-03 1.97299733e-03 + 1.93255653e-03 1.89247498e-03 1.85275505e-03 1.81339909e-03 1.77440942e-03 + 1.73578836e-03 1.69753820e-03 1.65966122e-03 1.62215965e-03 1.58503576e-03 + 1.54829175e-03 1.51192982e-03 1.47595216e-03 1.44036093e-03 1.40515827e-03 + 1.37034631e-03 1.33592716e-03 1.30190290e-03 1.26827560e-03 1.23504731e-03 + 1.20222006e-03 1.16979586e-03 1.13777671e-03 1.10616457e-03 1.07496140e-03 + 1.04416914e-03 1.01378970e-03 9.83824969e-04 9.54276828e-04 9.25147131e-04 + 8.96437715e-04 8.68150396e-04 8.40286972e-04 8.12849218e-04 7.85838891e-04 + 7.59257730e-04 7.33107451e-04 7.07389751e-04 6.82106308e-04 6.57258779e-04 + 6.32848801e-04 6.08877990e-04 5.85347945e-04 5.62260240e-04 5.39616433e-04 + 5.17418060e-04 4.95666636e-04 4.74363657e-04 4.53510597e-04 4.33108912e-04 + 4.13160036e-04 3.93665382e-04 3.74626344e-04 3.56044295e-04 3.37920586e-04 + 3.20256549e-04 3.03053496e-04 2.86312717e-04 2.70035481e-04 2.54223038e-04 + 2.38876617e-04 2.23997425e-04 2.09586650e-04 1.95645457e-04 1.82174994e-04 + 1.69176383e-04 1.56650731e-04 1.44599120e-04 1.33022613e-04 1.21922252e-04 + 1.11299058e-04 1.01154031e-04 9.14881514e-05 8.23023770e-05 7.35976459e-05 + 6.53748752e-05 5.76349612e-05 5.03787793e-05 4.36071839e-05 3.73210090e-05 + 3.15210675e-05 2.62081515e-05 2.13830322e-05 1.70464604e-05 1.31991656e-05 + 9.84185676e-06 6.97522210e-06 4.59992895e-06 2.71662394e-06 1.32593293e-06 + 4.28461042e-07 2.47926797e-08 1.15491538e-07 7.01100617e-07 1.78214224e-06 + 3.35911808e-06 5.43250917e-06 8.00277591e-06 1.10703581e-05 1.46356750e-05 + 1.86991254e-05 2.32610873e-05 2.83219184e-05 3.38819559e-05 3.99415166e-05 + 4.65008967e-05 5.35603723e-05 6.11201988e-05 6.91806116e-05 7.77418256e-05 + 8.68040355e-05 9.63674158e-05 1.06432121e-04 1.16998284e-04 1.28066021e-04 + 1.39635424e-04 1.51706568e-04 1.64279507e-04 1.77354274e-04 1.90930884e-04 + 2.05009331e-04 2.19589589e-04 2.34671614e-04 2.50255339e-04 2.66340680e-04 + 2.82927533e-04 3.00015773e-04 3.17605258e-04 3.35695825e-04 3.54287290e-04 + 3.73379453e-04 3.92972092e-04 4.13064968e-04 4.33657820e-04 4.54750370e-04 + 4.76342321e-04 4.98433355e-04 5.21023138e-04 5.44111315e-04 5.67697513e-04 + 5.91781339e-04 6.16362383e-04 6.41440216e-04 6.67014390e-04 6.93084439e-04 + 7.19649877e-04 7.46710203e-04 7.74264894e-04 8.02313411e-04 8.30855196e-04 + 8.59889675e-04 8.89416252e-04 9.19434318e-04 9.49943242e-04 9.80942378e-04 + 1.01243106e-03 1.04440861e-03 1.07687432e-03 1.10982748e-03 1.14326736e-03 + 1.17719320e-03 1.21160423e-03 1.24649967e-03 1.28187871e-03 1.31774054e-03 + 1.35408432e-03 1.39090920e-03 1.42821430e-03 1.46599875e-03 1.50426163e-03 + 1.54300203e-03 1.58221902e-03 1.62191164e-03 1.66207893e-03 1.70271991e-03 + 1.74383357e-03 1.78541889e-03 1.82747486e-03 1.87000043e-03 1.91299453e-03 + 1.95645609e-03 2.00038401e-03 2.04477720e-03 2.08963453e-03 2.13495485e-03 + 2.18073704e-03 2.22697990e-03 2.27368228e-03 2.32084296e-03 2.36846075e-03 + 2.41653443e-03 2.46506274e-03 2.51404445e-03 2.56347828e-03 2.61336297e-03 + 2.66369722e-03 2.71447972e-03 2.76570915e-03 2.81738418e-03 2.86950348e-03 + 2.92206567e-03 2.97506939e-03 3.02851326e-03 3.08239588e-03 3.13671584e-03 + 3.19147173e-03 3.24666210e-03 3.30228551e-03 3.35834052e-03 3.41482564e-03 + 3.47173940e-03 3.52908031e-03 3.58684686e-03 3.64503754e-03 3.70365083e-03 + 3.76268518e-03 3.82213906e-03 3.88201090e-03 3.94229914e-03 4.00300220e-03 + 4.06411848e-03 4.12564639e-03 4.18758433e-03 4.24993067e-03 4.31268378e-03 + 4.37584203e-03 4.43940377e-03 4.50336734e-03 4.56773109e-03 4.63249332e-03 + 4.69765237e-03 4.76320654e-03 4.82915413e-03 4.89549343e-03 4.96222273e-03 + 5.02934030e-03 5.09684441e-03 5.16473332e-03 5.23300528e-03 5.30165854e-03 + 5.37069134e-03 5.44010191e-03 5.50988847e-03 5.58004924e-03 5.65058244e-03 + 5.72148626e-03 5.79275891e-03 5.86439858e-03 5.93640345e-03 6.00877172e-03 + 6.08150155e-03 6.15459112e-03 6.22803858e-03 6.30184211e-03 6.37599985e-03 + 6.45050997e-03 6.52537060e-03 6.60057988e-03 6.67613596e-03 6.75203698e-03 + 6.82828105e-03 6.90486631e-03 6.98179088e-03 7.05905289e-03 7.13665044e-03 + 7.21458166e-03 7.29284466e-03 7.37143754e-03 7.45035841e-03 7.52960538e-03 + 7.60917656e-03 7.68907003e-03 7.76928391e-03 7.84981629e-03 7.93066527e-03 + 8.01182895e-03 8.09330541e-03 8.17509277e-03 8.25718910e-03 8.33959250e-03 + 8.42230108e-03 8.50531292e-03 8.58862611e-03 8.67223876e-03 8.75614896e-03 + 8.84035481e-03 8.92485441e-03 9.00964584e-03 9.09472723e-03 9.18009666e-03 + 9.26575225e-03 9.35169210e-03 9.43791432e-03 9.52441702e-03 9.61119832e-03 + 9.69825633e-03 9.78558918e-03 9.87319498e-03 9.96107188e-03 1.00492180e-02 + 1.01376315e-02 1.02263104e-02 1.03152530e-02 1.04044574e-02 1.04939217e-02 + 1.05836441e-02 1.06736228e-02 1.07638559e-02 1.08543416e-02 1.09450781e-02 + 1.10360636e-02 1.11272962e-02 1.12187742e-02 1.13104958e-02 1.14024591e-02 + 1.14946625e-02 1.15871040e-02 1.16797821e-02 1.17726948e-02 1.18658405e-02 + 1.19592175e-02 1.20528239e-02 1.21466580e-02 1.22407183e-02 1.23350028e-02 + 1.24295100e-02 1.25242382e-02 1.26191856e-02 1.27143506e-02 1.28097316e-02 + 1.29053269e-02 1.30011349e-02 1.30971539e-02 1.31933823e-02 1.32898186e-02 + 1.33864611e-02 1.34833083e-02 1.35803585e-02 1.36776103e-02 1.37750621e-02 + 1.38727123e-02 1.39705595e-02 1.40686021e-02 1.41668387e-02 1.42652677e-02 + 1.43638877e-02 1.44626973e-02 1.45616950e-02 1.46608794e-02 1.47602491e-02 + 1.48598027e-02 1.49595389e-02 1.50594562e-02 1.51595533e-02 1.52598289e-02 + 1.53602817e-02 1.54609104e-02 1.55617136e-02 1.56626903e-02 1.57638390e-02 + 1.58651585e-02 1.59666478e-02 1.60683054e-02 1.61701304e-02 1.62721215e-02 + 1.63742776e-02 1.64765975e-02 1.65790802e-02 1.66817246e-02 1.67845297e-02 + 1.68874943e-02 1.69906174e-02 1.70938981e-02 1.71973354e-02 1.73009283e-02 + 1.74046758e-02 1.75085771e-02 1.76126313e-02 1.77168374e-02 1.78211946e-02 + 1.79257022e-02 1.80303592e-02 1.81351648e-02 1.82401184e-02 1.83452192e-02 + 1.84504664e-02 1.85558594e-02 1.86613974e-02 1.87670799e-02 1.88729063e-02 + 1.89788758e-02 1.90849880e-02 1.91912422e-02 1.92976381e-02 1.94041749e-02 + 1.95108524e-02 1.96176701e-02 1.97246274e-02 1.98317241e-02 1.99389597e-02 + 2.00463340e-02 2.01538465e-02 2.02614971e-02 2.03692854e-02 2.04772113e-02 + 2.05852745e-02 2.06934748e-02 2.08018121e-02 2.09102863e-02 2.10188973e-02 + 2.11276450e-02 2.12365294e-02 2.13455506e-02 2.14547084e-02 2.15640031e-02 + 2.16734346e-02 2.17830032e-02 2.18927089e-02 2.20025519e-02 2.21125325e-02 + 2.22226510e-02 2.23329075e-02 2.24433024e-02 2.25538360e-02 2.26645088e-02 + 2.27753211e-02 2.28862734e-02 2.29973661e-02 2.31085997e-02 2.32199749e-02 + 2.33314922e-02 2.34431522e-02 2.35549555e-02 2.36669028e-02 2.37789949e-02 + 2.38912325e-02 2.40036163e-02 2.41161473e-02 2.42288263e-02 2.43416541e-02 + 2.44546317e-02 2.45677602e-02 2.46810404e-02 2.47944734e-02 2.49080604e-02 + 2.50218024e-02 2.51357006e-02 2.52497562e-02 2.53639704e-02 2.54783445e-02 + 2.55928799e-02 2.57075779e-02 2.58224398e-02 2.59374671e-02 2.60526613e-02 + 2.61680239e-02 2.62835565e-02 2.63992605e-02 2.65151378e-02 2.66311899e-02 + 2.67474187e-02 2.68638257e-02 2.69804129e-02 2.70971821e-02 2.72141351e-02 + 2.73312740e-02 2.74486006e-02 2.75661170e-02 2.76838253e-02 2.78017276e-02 + 2.79198259e-02 2.80381226e-02 2.81566198e-02 2.82753198e-02 2.83942249e-02 + 2.85133376e-02 2.86326602e-02 2.87521952e-02 2.88719451e-02 2.89919124e-02 + 2.91120998e-02 2.92325099e-02 2.93531454e-02 2.94740090e-02 2.95951036e-02 + 2.97164319e-02 2.98379969e-02 2.99598014e-02 3.00818485e-02 3.02041411e-02 + 3.03266825e-02 3.04494756e-02 3.05725236e-02 3.06958298e-02 3.08193975e-02 + 3.09432300e-02 3.10673306e-02 3.11917028e-02 3.13163500e-02 3.14412758e-02 + 3.15664837e-02 3.16919774e-02 3.18177606e-02 3.19438369e-02 3.20702102e-02 + 3.21968843e-02 3.23238631e-02 3.24511504e-02 3.25787504e-02 3.27066671e-02 + 3.28349045e-02 3.29634668e-02 3.30923581e-02 3.32215829e-02 3.33511453e-02 + 3.34810498e-02 3.36113007e-02 3.37419026e-02 3.38728600e-02 3.40041774e-02 + 3.41358595e-02 3.42679109e-02 3.44003366e-02 3.45331412e-02 3.46663296e-02 + 3.47999067e-02 3.49338776e-02 3.50682472e-02 3.52030207e-02 3.53382032e-02 + 3.54737998e-02 3.56098160e-02 3.57462569e-02 3.58831280e-02 3.60204348e-02 + 3.61581826e-02 3.62963771e-02 3.64350239e-02 3.65741287e-02 3.67136971e-02 + 3.68537351e-02 3.69942484e-02 3.71352429e-02 3.72767247e-02 3.74186997e-02 + 3.75611742e-02 3.77041541e-02 3.78476458e-02 3.79916555e-02 3.81361895e-02 + 3.82812543e-02 3.84268564e-02 3.85730022e-02 3.87196983e-02 3.88669514e-02 + 3.90147683e-02 3.91631556e-02 3.93121202e-02 3.94616691e-02 3.96118091e-02 + 3.97625473e-02 3.99138909e-02 4.00658470e-02 4.02184227e-02 4.03716254e-02 + 4.05254624e-02 4.06799412e-02 4.08350692e-02 4.09908540e-02 4.11473032e-02 + 4.13044244e-02 4.14622254e-02 4.16207140e-02 4.17798981e-02 4.19397857e-02 + 4.21003846e-02 4.22617031e-02 4.24237492e-02 4.25865311e-02 4.27500572e-02 + 4.29143358e-02 4.30793752e-02 4.32451840e-02 4.34117706e-02 4.35791438e-02 + 4.37473122e-02 4.39162845e-02 4.40860696e-02 4.42566763e-02 4.44281136e-02 + 4.46003905e-02 4.47735162e-02 4.49474997e-02 4.51223503e-02 4.52980774e-02 + 4.54746902e-02 4.56521983e-02 4.58306111e-02 4.60099382e-02 4.61901893e-02 + 4.63713741e-02 4.65535024e-02 4.67365841e-02 4.69206290e-02 4.71056473e-02 + 4.72916489e-02 4.74786441e-02 4.76666430e-02 4.78556559e-02 4.80456933e-02 + 4.82367655e-02 4.84288831e-02 4.86220567e-02 4.88162968e-02 4.90116143e-02 + 4.92080199e-02 4.94055246e-02 4.96041392e-02 4.98038747e-02 5.00047424e-02 + 5.02067532e-02 5.04099186e-02 5.06142498e-02 5.08197581e-02 5.10264551e-02 + 5.12343523e-02 5.14434613e-02 5.16537938e-02 5.18653616e-02 5.20781765e-02 + 5.22922503e-02 5.25075952e-02 5.27242231e-02 5.29421462e-02 5.31613767e-02 + 5.33819268e-02 5.36038091e-02 5.38270358e-02 5.40516196e-02 5.42775730e-02 + 5.45049086e-02 5.47336392e-02 5.49637777e-02 5.51953370e-02 5.54283299e-02 + 5.56627696e-02 5.58986692e-02 5.61360419e-02 5.63749010e-02 5.66152598e-02 + 5.68571317e-02 5.71005304e-02 5.73454693e-02 5.75919622e-02 5.78400227e-02 + 5.80896648e-02 5.83409023e-02 5.85937492e-02 5.88482195e-02 5.91043274e-02 + 5.93620871e-02 5.96215130e-02 5.98826193e-02 6.01454205e-02 6.04099311e-02 + 6.06761659e-02 6.09441393e-02 6.12138663e-02 6.14853616e-02 6.17586402e-02 + 6.20337170e-02 6.23106073e-02 6.25893260e-02 6.28698885e-02 6.31523100e-02 + 6.34366061e-02 6.37227921e-02 6.40108836e-02 6.43008963e-02 6.45928458e-02 + 6.48867480e-02 6.51826187e-02 6.54804740e-02 6.57803298e-02 6.60822022e-02 + 6.63861076e-02 6.66920620e-02 6.70000820e-02 6.73101839e-02 6.76223842e-02 + 6.79366996e-02 6.82531468e-02 6.85717424e-02 6.88925034e-02 6.92154467e-02 + 6.95405892e-02 6.98679481e-02 7.01975405e-02 7.05293837e-02 7.08634950e-02 + 7.11998918e-02 7.15385916e-02 7.18796120e-02 7.22229706e-02 7.25686852e-02 + 7.29167735e-02 7.32672535e-02 7.36201432e-02 7.39754605e-02 7.43332238e-02 + 7.46934510e-02 7.50561607e-02 7.54213711e-02 7.57891008e-02 7.61593682e-02 + 7.65321920e-02 7.69075909e-02 7.72855838e-02 7.76661894e-02 7.80494268e-02 + 7.84353149e-02 7.88238730e-02 7.92151201e-02 7.96090757e-02 8.00057589e-02 + 8.04051894e-02 8.08073866e-02 8.12123701e-02 8.16201597e-02 8.20307750e-02 + 8.24442360e-02 8.28605626e-02 8.32797748e-02 8.37018927e-02 8.41269365e-02 + 8.45549265e-02 8.49858830e-02 8.54198264e-02 8.58567773e-02 8.62967562e-02 + 8.67397838e-02 8.71858809e-02 8.76350683e-02 8.80873669e-02 8.85427977e-02 + 8.90013819e-02 8.94631405e-02 8.99280948e-02 9.03962662e-02 9.08676760e-02 + 9.13423458e-02 9.18202971e-02 9.23015516e-02 9.27861310e-02 9.32740571e-02 + 9.37653518e-02 9.42600372e-02 9.47581352e-02 9.52596680e-02 9.57646578e-02 + 9.62731270e-02 9.67850979e-02 9.73005931e-02 9.78196349e-02 9.83422462e-02 + 9.88684495e-02 9.93982677e-02 9.99317237e-02 1.00468840e-01 1.01009641e-01 + 1.01554148e-01 1.02102385e-01 1.02654376e-01 1.03210143e-01 1.03769711e-01 + 1.04333102e-01 1.04900341e-01 1.05471450e-01 1.06046454e-01 1.06625377e-01 + 1.07208242e-01 1.07795073e-01 1.08385896e-01 1.08980733e-01 1.09579608e-01 + 1.10182548e-01 1.10789574e-01 1.11400713e-01 1.12015989e-01 1.12635426e-01 + 1.13259049e-01 1.13886884e-01 1.14518954e-01 1.15155284e-01 1.15795901e-01 + 1.16440828e-01 1.17090092e-01 1.17743717e-01 1.18401728e-01 1.19064152e-01 + 1.19731014e-01 1.20402338e-01 1.21078152e-01 1.21758481e-01 1.22443350e-01 + 1.23132785e-01 1.23826813e-01 1.24525459e-01 1.25228750e-01 1.25936712e-01 + 1.26649371e-01 1.27366754e-01 1.28088886e-01 1.28815795e-01 1.29547507e-01 + 1.30284049e-01 1.31025448e-01 1.31771730e-01 1.32522922e-01 1.33279051e-01 + 1.34040145e-01 1.34806231e-01 1.35577335e-01 1.36353485e-01 1.37134708e-01 + 1.37921033e-01 1.38712486e-01 1.39509094e-01 1.40310887e-01 1.41117891e-01 + 1.41930134e-01 1.42747644e-01 1.43570449e-01 1.44398578e-01 1.45232058e-01 + 1.46070917e-01 1.46915184e-01 1.47764888e-01 1.48620056e-01 1.49480717e-01 + 1.50346899e-01 1.51218632e-01 1.52095944e-01 1.52978863e-01 1.53867420e-01 + 1.54761642e-01 1.55661558e-01 1.56567199e-01 1.57478592e-01 1.58395767e-01 + 1.59318754e-01 1.60247581e-01 1.61182279e-01 1.62122877e-01 1.63069403e-01 + 1.64021889e-01 1.64980364e-01 1.65944857e-01 1.66915399e-01 1.67892019e-01 + 1.68874747e-01 1.69863614e-01 1.70858650e-01 1.71859884e-01 1.72867348e-01 + 1.73881072e-01 1.74901085e-01 1.75927419e-01 1.76960104e-01 1.77999170e-01 + 1.79044650e-01 1.80096572e-01 1.81154968e-01 1.82219870e-01 1.83291308e-01 + 1.84369312e-01 1.85453915e-01 1.86545148e-01 1.87643041e-01 1.88747626e-01 + 1.89858934e-01 1.90976997e-01 1.92101847e-01 1.93233514e-01 1.94372032e-01 + 1.95517430e-01 1.96669742e-01 1.97828999e-01 1.98995233e-01 2.00168475e-01 + 2.01348759e-01 2.02536116e-01 2.03730578e-01 2.04932178e-01 2.06140947e-01 + 2.07356919e-01 2.08580125e-01 2.09810599e-01 2.11048372e-01 2.12293478e-01 + 2.13545949e-01 2.14805817e-01 2.16073116e-01 2.17347879e-01 2.18630138e-01 + 2.19919927e-01 2.21217278e-01 2.22522225e-01 2.23834800e-01 2.25155038e-01 + 2.26482971e-01 2.27818633e-01 2.29162056e-01 2.30513276e-01 2.31872325e-01 + 2.33239236e-01 2.34614044e-01 2.35996782e-01 2.37387484e-01 2.38786184e-01 + 2.40192915e-01 2.41607712e-01 2.43030609e-01 2.44461640e-01 2.45900838e-01 + 2.47348238e-01 2.48803875e-01 2.50267782e-01 2.51739994e-01 2.53220545e-01 + 2.54709470e-01 2.56206803e-01 2.57712579e-01 2.59226833e-01 2.60749598e-01 + 2.62280911e-01 2.63820805e-01 2.65369316e-01 2.66926478e-01 2.68492326e-01 + 2.70066896e-01 2.71650222e-01 2.73242339e-01 2.74843284e-01 2.76453090e-01 + 2.78071793e-01 2.79699428e-01 2.81336031e-01 2.82981638e-01 2.84636282e-01 + 2.86300002e-01 2.87972830e-01 2.89654804e-01 2.91345959e-01 2.93046331e-01 + 2.94755955e-01 2.96474867e-01 2.98203103e-01 2.99940699e-01 3.01687691e-01 + 3.03444115e-01 3.05210007e-01 3.06985403e-01 3.08770338e-01 3.10564851e-01 + 3.12368975e-01 3.14182749e-01 3.16006207e-01 3.17839387e-01 3.19682324e-01 + 3.21535056e-01 3.23397619e-01 3.25270049e-01 3.27152383e-01 3.29044657e-01 + 3.30946908e-01 3.32859173e-01 3.34781489e-01 3.36713892e-01 3.38656419e-01 + 3.40609107e-01 3.42571993e-01 3.44545114e-01 3.46528507e-01 3.48522209e-01 + 3.50526256e-01 3.52540686e-01 3.54565537e-01 3.56600845e-01 3.58646647e-01 + 3.60702982e-01 3.62769885e-01 3.64847394e-01 3.66935548e-01 3.69034382e-01 + 3.71143935e-01 3.73264245e-01 3.75395347e-01 3.77537281e-01 3.79690084e-01 + 3.81853792e-01 3.84028445e-01 3.86214079e-01 3.88410732e-01 3.90618443e-01 + 3.92837248e-01 3.95067186e-01 3.97308294e-01 3.99560611e-01 4.01824174e-01 + 4.04099021e-01 4.06385190e-01 4.08682719e-01 4.10991646e-01 4.13312009e-01 + 4.15643846e-01 4.17987196e-01 4.20342096e-01 4.22708585e-01 4.25086701e-01 + 4.27476482e-01 4.29877965e-01 4.32291191e-01 4.34716196e-01 4.37153020e-01 + 4.39601699e-01 4.42062274e-01 4.44534782e-01 4.47019262e-01 4.49515752e-01 + 4.52024290e-01 4.54544915e-01 4.57077666e-01 4.59622582e-01 4.62179699e-01 + 4.64749058e-01 4.67330697e-01 4.69924655e-01 4.72530970e-01 4.75149680e-01 + 4.77780825e-01 4.80424443e-01 4.83080573e-01 4.85749254e-01 4.88430524e-01 + 4.91124422e-01 4.93830987e-01 4.96550258e-01 4.99282274e-01 5.02027073e-01 + 5.04784694e-01 5.07555177e-01 5.10338560e-01 5.13134881e-01 5.15944181e-01 + 5.18766498e-01 5.21601870e-01 5.24450337e-01 5.27311938e-01 5.30186712e-01 + 5.33074698e-01 5.35975934e-01 5.38890460e-01 5.41818315e-01 5.44759538e-01 + 5.47714168e-01 5.50682244e-01 5.53663805e-01 5.56658890e-01 5.59667539e-01 + 5.62689790e-01 5.65725682e-01 5.68775255e-01 5.71838548e-01 5.74915600e-01 + 5.78006450e-01 5.81111137e-01 5.84229700e-01 5.87362179e-01 5.90508613e-01 + 5.93669040e-01 5.96843501e-01 6.00032034e-01 6.03234678e-01 6.06451473e-01 + 6.09682457e-01 6.12927671e-01 6.16187152e-01 6.19460941e-01 6.22749077e-01 + 6.26051598e-01 6.29368545e-01 6.32699955e-01 6.36045869e-01 6.39406325e-01 + 6.42781363e-01 6.46171022e-01 6.49575341e-01 6.52994360e-01 6.56428116e-01 + 6.59876651e-01 6.63340002e-01 6.66818210e-01 6.70311312e-01 6.73819349e-01 + 6.77342360e-01 6.80880383e-01 6.84433457e-01 6.88001623e-01 6.91584919e-01 + 6.95183384e-01 6.98797058e-01 7.02425979e-01 7.06070186e-01 7.09729719e-01 + 7.13404617e-01 7.17094919e-01 7.20800663e-01 7.24521889e-01 7.28258637e-01 + 7.32010944e-01 7.35778850e-01 7.39562395e-01 7.43361616e-01 7.47176553e-01 + 7.51007246e-01 7.54853732e-01 7.58716051e-01 7.62594242e-01 7.66488343e-01 + 7.70398394e-01 7.74324434e-01 7.78266501e-01 7.82224634e-01 7.86198872e-01 + 7.90189253e-01 7.94195818e-01 7.98218604e-01 8.02257650e-01 8.06312994e-01 + 8.10384677e-01 8.14472736e-01 8.18577209e-01 8.22698137e-01 8.26835556e-01 + 8.30989506e-01 8.35160026e-01 8.39347154e-01 8.43550929e-01 8.47771388e-01 + 8.52008571e-01 8.56262517e-01 8.60533262e-01 8.64820847e-01 8.69125309e-01 + 8.73446687e-01 8.77785019e-01 8.82140343e-01 8.86512698e-01 8.90902122e-01 + 8.95308653e-01 8.99732330e-01 9.04173190e-01 9.08631272e-01 9.13106614e-01 + 9.17599253e-01 9.22109229e-01 9.26636579e-01 9.31181341e-01 9.35743553e-01 + 9.40323253e-01 9.44920479e-01 9.49535268e-01 9.54167659e-01 9.58817690e-01 + 9.63485397e-01 9.68170820e-01 9.72873995e-01 9.77594961e-01 9.82333754e-01 + 9.87090413e-01 9.91864975e-01 9.96657478e-01 1.00146796e+00 1.00629646e+00 + 1.01114300e+00 1.01600764e+00 1.02089041e+00 1.02579134e+00 1.03071048e+00 + 1.03564785e+00 1.04060350e+00 1.04557747e+00 1.05056978e+00 1.05558048e+00 + 1.06060961e+00 1.06565720e+00 1.07072329e+00 1.07580791e+00 1.08091111e+00 + 1.08603291e+00 1.09117337e+00 1.09633250e+00 1.10151035e+00 1.10670696e+00 + 1.11192236e+00 1.11715659e+00 1.12240969e+00 1.12768169e+00 1.13297263e+00 + 1.13828254e+00 1.14361146e+00 1.14895943e+00 1.15432648e+00 1.15971265e+00 + 1.16511798e+00 1.17054250e+00 1.17598625e+00 1.18144926e+00 1.18693156e+00 + 1.19243321e+00 1.19795422e+00 1.20349464e+00 1.20905451e+00 1.21463385e+00 + 1.22023271e+00 1.22585111e+00 1.23148910e+00 1.23714670e+00 1.24282397e+00 + 1.24852092e+00 1.25423760e+00 1.25997404e+00 1.26573027e+00 1.27150634e+00 + 1.27730227e+00 1.28311810e+00 1.28895387e+00 1.29480961e+00 1.30068535e+00 + 1.30658114e+00 1.31249699e+00 1.31843296e+00 1.32438907e+00 1.33036536e+00 + 1.33636186e+00 1.34237861e+00 1.34841563e+00 1.35447298e+00 1.36055067e+00 + 1.36664875e+00 1.37276724e+00 1.37890618e+00 1.38506561e+00 1.39124556e+00 + 1.39744606e+00 1.40366714e+00 1.40990885e+00 1.41617121e+00 1.42245426e+00 + 1.42875802e+00 1.43508254e+00 1.44142785e+00 1.44779398e+00 1.45418096e+00 + 1.46058882e+00 1.46701761e+00 1.47346735e+00 1.47993807e+00 1.48642981e+00 + 1.49294260e+00 1.49947647e+00 1.50603146e+00 1.51260760e+00 1.51920492e+00 + 1.52582344e+00 1.53246322e+00 1.53912427e+00 1.54580663e+00 1.55251033e+00 + 1.55923541e+00 1.56598189e+00 1.57274981e+00 1.57953919e+00 1.58635008e+00 + 1.59318250e+00 1.60003648e+00 1.60691205e+00 1.61380925e+00 1.62072811e+00 + 1.62766866e+00 1.63463093e+00 1.64161494e+00 1.64862074e+00 1.65564835e+00 + 1.66269781e+00 1.66976913e+00 1.67686237e+00 1.68397753e+00 1.69111467e+00 + 1.69827379e+00 1.70545495e+00 1.71265816e+00 1.71988345e+00 1.72713087e+00 + 1.73440042e+00 1.74169216e+00 1.74900610e+00 1.75634228e+00 1.76370072e+00 + 1.77108145e+00 1.77848451e+00 1.78590992e+00 1.79335772e+00 1.80082793e+00 + 1.80832057e+00 1.81583569e+00 1.82337331e+00 1.83093345e+00 1.83851615e+00 + 1.84612143e+00 1.85374933e+00 1.86139987e+00 1.86907308e+00 1.87676899e+00 + 1.88448762e+00 1.89222901e+00 1.89999318e+00 1.90778016e+00 1.91558998e+00 + 1.92342267e+00 1.93127825e+00 1.93915675e+00 1.94705820e+00 1.95498262e+00 + 1.96293005e+00 1.97090050e+00 1.97889402e+00 1.98691062e+00 1.99495033e+00 + 2.00301317e+00 2.01109918e+00 2.01920839e+00 2.02734080e+00 2.03549647e+00 + 2.04367540e+00 2.05187763e+00 2.06010318e+00 2.06835208e+00 2.07662435e+00 + 2.08492002e+00 2.09323912e+00 2.10158167e+00 2.10994769e+00 2.11833722e+00 + 2.12675027e+00 2.13518688e+00 2.14364706e+00 2.15213085e+00 2.16063826e+00 + 2.16916932e+00 2.17772406e+00 2.18630250e+00 2.19490466e+00 2.20353058e+00 + 2.21218027e+00 2.22085375e+00 2.22955106e+00 2.23827221e+00 2.24701724e+00 + 2.25578615e+00 2.26457899e+00 2.27339576e+00 2.28223650e+00 2.29110122e+00 + 2.29998996e+00 2.30890273e+00 2.31783955e+00 2.32680045e+00 2.33578546e+00 + 2.34479459e+00 2.35382786e+00 2.36288530e+00 2.37196694e+00 2.38107279e+00 + 7.75783058e-03 7.73296622e-03 7.70815966e-03 7.68341051e-03 7.65871836e-03 + 7.63408283e-03 7.60950351e-03 7.58498000e-03 7.56051190e-03 7.53609882e-03 + 7.51174036e-03 7.48743611e-03 7.46318569e-03 7.43898868e-03 7.41484469e-03 + 7.39075333e-03 7.36671420e-03 7.34272689e-03 7.31879101e-03 7.29490616e-03 + 7.27107195e-03 7.24728797e-03 7.22355383e-03 7.19986914e-03 7.17623349e-03 + 7.15264650e-03 7.12910776e-03 7.10561688e-03 7.08217347e-03 7.05877713e-03 + 7.03542747e-03 7.01212410e-03 6.98886663e-03 6.96565466e-03 6.94248780e-03 + 6.91936567e-03 6.89628787e-03 6.87325401e-03 6.85026372e-03 6.82731659e-03 + 6.80441225e-03 6.78155031e-03 6.75873038e-03 6.73595209e-03 6.71321505e-03 + 6.69051888e-03 6.66786319e-03 6.64524762e-03 6.62267177e-03 6.60013528e-03 + 6.57763777e-03 6.55517887e-03 6.53275819e-03 6.51037537e-03 6.48803005e-03 + 6.46572184e-03 6.44345038e-03 6.42121530e-03 6.39901625e-03 6.37685284e-03 + 6.35472473e-03 6.33263156e-03 6.31057295e-03 6.28854856e-03 6.26655802e-03 + 6.24460099e-03 6.22267711e-03 6.20078603e-03 6.17892740e-03 6.15710087e-03 + 6.13530609e-03 6.11354273e-03 6.09181044e-03 6.07010887e-03 6.04843770e-03 + 6.02679658e-03 6.00518518e-03 5.98360316e-03 5.96205020e-03 5.94052597e-03 + 5.91903013e-03 5.89756237e-03 5.87612237e-03 5.85470980e-03 5.83332434e-03 + 5.81196568e-03 5.79063351e-03 5.76932751e-03 5.74804738e-03 5.72679281e-03 + 5.70556349e-03 5.68435913e-03 5.66317942e-03 5.64202406e-03 5.62089277e-03 + 5.59978526e-03 5.57870122e-03 5.55764038e-03 5.53660245e-03 5.51558714e-03 + 5.49459419e-03 5.47362332e-03 5.45267424e-03 5.43174670e-03 5.41084042e-03 + 5.38995513e-03 5.36909059e-03 5.34824651e-03 5.32742266e-03 5.30661878e-03 + 5.28583461e-03 5.26506991e-03 5.24432443e-03 5.22359793e-03 5.20289018e-03 + 5.18220094e-03 5.16152997e-03 5.14087705e-03 5.12024195e-03 5.09962444e-03 + 5.07902432e-03 5.05844136e-03 5.03787534e-03 5.01732607e-03 4.99679333e-03 + 4.97627691e-03 4.95577663e-03 4.93529228e-03 4.91482367e-03 4.89437061e-03 + 4.87393292e-03 4.85351041e-03 4.83310291e-03 4.81271023e-03 4.79233221e-03 + 4.77196867e-03 4.75161946e-03 4.73128441e-03 4.71096337e-03 4.69065618e-03 + 4.67036269e-03 4.65008275e-03 4.62981623e-03 4.60956299e-03 4.58932288e-03 + 4.56909578e-03 4.54888156e-03 4.52868010e-03 4.50849128e-03 4.48831498e-03 + 4.46815110e-03 4.44799952e-03 4.42786013e-03 4.40773285e-03 4.38761758e-03 + 4.36751422e-03 4.34742268e-03 4.32734289e-03 4.30727476e-03 4.28721822e-03 + 4.26717320e-03 4.24713963e-03 4.22711745e-03 4.20710659e-03 4.18710701e-03 + 4.16711866e-03 4.14714149e-03 4.12717545e-03 4.10722051e-03 4.08727665e-03 + 4.06734382e-03 4.04742201e-03 4.02751119e-03 4.00761135e-03 3.98772248e-03 + 3.96784457e-03 3.94797762e-03 3.92812164e-03 3.90827662e-03 3.88844258e-03 + 3.86861953e-03 3.84880750e-03 3.82900651e-03 3.80921659e-03 3.78943777e-03 + 3.76967009e-03 3.74991360e-03 3.73016833e-03 3.71043435e-03 3.69071171e-03 + 3.67100046e-03 3.65130068e-03 3.63161244e-03 3.61193581e-03 3.59227087e-03 + 3.57261770e-03 3.55297640e-03 3.53334706e-03 3.51372978e-03 3.49412465e-03 + 3.47453180e-03 3.45495132e-03 3.43538334e-03 3.41582798e-03 3.39628537e-03 + 3.37675564e-03 3.35723892e-03 3.33773536e-03 3.31824510e-03 3.29876830e-03 + 3.27930510e-03 3.25985568e-03 3.24042019e-03 3.22099880e-03 3.20159169e-03 + 3.18219905e-03 3.16282105e-03 3.14345788e-03 3.12410974e-03 3.10477683e-03 + 3.08545935e-03 3.06615751e-03 3.04687152e-03 3.02760161e-03 3.00834799e-03 + 2.98911090e-03 2.96989056e-03 2.95068723e-03 2.93150113e-03 2.91233251e-03 + 2.89318164e-03 2.87404877e-03 2.85493415e-03 2.83583807e-03 2.81676078e-03 + 2.79770257e-03 2.77866372e-03 2.75964451e-03 2.74064524e-03 2.72166621e-03 + 2.70270771e-03 2.68377006e-03 2.66485356e-03 2.64595853e-03 2.62708529e-03 + 2.60823417e-03 2.58940549e-03 2.57059960e-03 2.55181683e-03 2.53305753e-03 + 2.51432206e-03 2.49561075e-03 2.47692398e-03 2.45826211e-03 2.43962550e-03 + 2.42101454e-03 2.40242960e-03 2.38387106e-03 2.36533932e-03 2.34683476e-03 + 2.32835779e-03 2.30990881e-03 2.29148822e-03 2.27309644e-03 2.25473389e-03 + 2.23640098e-03 2.21809814e-03 2.19982581e-03 2.18158442e-03 2.16337441e-03 + 2.14519622e-03 2.12705031e-03 2.10893713e-03 2.09085714e-03 2.07281081e-03 + 2.05479859e-03 2.03682097e-03 2.01887841e-03 2.00097142e-03 1.98310046e-03 + 1.96526603e-03 1.94746863e-03 1.92970876e-03 1.91198692e-03 1.89430361e-03 + 1.87665937e-03 1.85905469e-03 1.84149011e-03 1.82396614e-03 1.80648333e-03 + 1.78904221e-03 1.77164332e-03 1.75428719e-03 1.73697438e-03 1.71970545e-03 + 1.70248094e-03 1.68530143e-03 1.66816747e-03 1.65107964e-03 1.63403850e-03 + 1.61704464e-03 1.60009864e-03 1.58320109e-03 1.56635257e-03 1.54955368e-03 + 1.53280502e-03 1.51610719e-03 1.49946080e-03 1.48286646e-03 1.46632477e-03 + 1.44983637e-03 1.43340187e-03 1.41702190e-03 1.40069709e-03 1.38442807e-03 + 1.36821548e-03 1.35205996e-03 1.33596216e-03 1.31992272e-03 1.30394230e-03 + 1.28802156e-03 1.27216115e-03 1.25636174e-03 1.24062400e-03 1.22494858e-03 + 1.20933618e-03 1.19378747e-03 1.17830313e-03 1.16288384e-03 1.14753029e-03 + 1.13224317e-03 1.11702318e-03 1.10187102e-03 1.08678738e-03 1.07177298e-03 + 1.05682851e-03 1.04195470e-03 1.02715225e-03 1.01242188e-03 9.97764323e-04 + 9.83180288e-04 9.68670506e-04 9.54235708e-04 9.39876625e-04 9.25593994e-04 + 9.11388553e-04 8.97261043e-04 8.83212208e-04 8.69242796e-04 8.55353556e-04 + 8.41545241e-04 8.27818606e-04 8.14174409e-04 8.00613410e-04 7.87136373e-04 + 7.73744063e-04 7.60437247e-04 7.47216698e-04 7.34083188e-04 7.21037492e-04 + 7.08080389e-04 6.95212658e-04 6.82435082e-04 6.69748446e-04 6.57153537e-04 + 6.44651143e-04 6.32242057e-04 6.19927071e-04 6.07706982e-04 5.95582586e-04 + 5.83554683e-04 5.71624074e-04 5.59791564e-04 5.48057956e-04 5.36424058e-04 + 5.24890679e-04 5.13458629e-04 5.02128720e-04 4.90901767e-04 4.79778585e-04 + 4.68759991e-04 4.57846804e-04 4.47039843e-04 4.36339931e-04 4.25747890e-04 + 4.15264545e-04 4.04890722e-04 3.94627247e-04 3.84474948e-04 3.74434656e-04 + 3.64507200e-04 3.54693412e-04 3.44994126e-04 3.35410174e-04 3.25942392e-04 + 3.16591616e-04 3.07358681e-04 2.98244426e-04 2.89249688e-04 2.80375307e-04 + 2.71622122e-04 2.62990974e-04 2.54482704e-04 2.46098153e-04 2.37838164e-04 + 2.29703578e-04 2.21695241e-04 2.13813993e-04 2.06060681e-04 1.98436147e-04 + 1.90941236e-04 1.83576793e-04 1.76343663e-04 1.69242690e-04 1.62274720e-04 + 1.55440598e-04 1.48741168e-04 1.42177276e-04 1.35749766e-04 1.29459484e-04 + 1.23307274e-04 1.17293980e-04 1.11420445e-04 1.05687515e-04 1.00096032e-04 + 9.46468388e-05 8.93407780e-05 8.41786913e-05 7.91614202e-05 7.42898052e-05 + 6.95646864e-05 6.49869031e-05 6.05572937e-05 5.62766961e-05 5.21459470e-05 + 4.81658825e-05 4.43373376e-05 4.06611462e-05 3.71381414e-05 3.37691551e-05 + 3.05550180e-05 2.74965596e-05 2.45946084e-05 2.18499913e-05 1.92635340e-05 + 1.68360610e-05 1.45683951e-05 1.24613578e-05 1.05157689e-05 8.73244699e-06 + 7.11220867e-06 5.65586906e-06 4.36424154e-06 3.23813774e-06 2.27836748e-06 + 1.48573873e-06 8.61057567e-07 4.05128118e-07 1.18752518e-07 2.73086226e-09 + 5.78611603e-08 2.84939286e-07 6.84758934e-07 1.25811157e-06 2.00578638e-06 + 2.92857023e-06 4.02724762e-06 5.30260064e-06 6.75540890e-06 8.38644951e-06 + 1.01964970e-05 1.21863234e-05 1.43566979e-05 1.67083872e-05 1.92421552e-05 + 2.19587628e-05 2.48589684e-05 2.79435273e-05 3.12131920e-05 3.46687118e-05 + 3.83108334e-05 4.21402999e-05 4.61578518e-05 5.03642261e-05 5.47601568e-05 + 5.93463745e-05 6.41236066e-05 6.90925772e-05 7.42540069e-05 7.96086130e-05 + 8.51571092e-05 9.09002059e-05 9.68386096e-05 1.02973024e-04 1.09304147e-04 + 1.15832676e-04 1.22559303e-04 1.29484715e-04 1.36609598e-04 1.43934631e-04 + 1.51460492e-04 1.59187852e-04 1.67117382e-04 1.75249745e-04 1.83585602e-04 + 1.92125609e-04 2.00870420e-04 2.09820682e-04 2.18977038e-04 2.28340129e-04 + 2.37910590e-04 2.47689051e-04 2.57676139e-04 2.67872477e-04 2.78278681e-04 + 2.88895364e-04 2.99723136e-04 3.10762599e-04 3.22014353e-04 3.33478993e-04 + 3.45157108e-04 3.57049283e-04 3.69156098e-04 3.81478128e-04 3.94015944e-04 + 4.06770112e-04 4.19741192e-04 4.32929738e-04 4.46336303e-04 4.59961431e-04 + 4.73805662e-04 4.87869532e-04 5.02153570e-04 5.16658302e-04 5.31384246e-04 + 5.46331917e-04 5.61501823e-04 5.76894469e-04 5.92510351e-04 6.08349963e-04 + 6.24413792e-04 6.40702320e-04 6.57216021e-04 6.73955368e-04 6.90920825e-04 + 7.08112850e-04 7.25531898e-04 7.43178417e-04 7.61052849e-04 7.79155629e-04 + 7.97487189e-04 8.16047953e-04 8.34838340e-04 8.53858764e-04 8.73109630e-04 + 8.92591340e-04 9.12304290e-04 9.32248867e-04 9.52425456e-04 9.72834432e-04 + 9.93476168e-04 1.01435103e-03 1.03545937e-03 1.05680154e-03 1.07837790e-03 + 1.10018877e-03 1.12223450e-03 1.14451541e-03 1.16703183e-03 1.18978405e-03 + 1.21277241e-03 1.23599719e-03 1.25945869e-03 1.28315720e-03 1.30709300e-03 + 1.33126638e-03 1.35567759e-03 1.38032690e-03 1.40521457e-03 1.43034085e-03 + 1.45570597e-03 1.48131019e-03 1.50715372e-03 1.53323678e-03 1.55955961e-03 + 1.58612239e-03 1.61292535e-03 1.63996867e-03 1.66725254e-03 1.69477714e-03 + 1.72254266e-03 1.75054926e-03 1.77879709e-03 1.80728633e-03 1.83601711e-03 + 1.86498957e-03 1.89420386e-03 1.92366009e-03 1.95335839e-03 1.98329887e-03 + 2.01348164e-03 2.04390679e-03 2.07457442e-03 2.10548462e-03 2.13663746e-03 + 2.16803301e-03 2.19967134e-03 2.23155250e-03 2.26367655e-03 2.29604352e-03 + 2.32865346e-03 2.36150638e-03 2.39460232e-03 2.42794128e-03 2.46152328e-03 + 2.49534830e-03 2.52941636e-03 2.56372742e-03 2.59828147e-03 2.63307847e-03 + 2.66811840e-03 2.70340121e-03 2.73892685e-03 2.77469525e-03 2.81070636e-03 + 2.84696010e-03 2.88345639e-03 2.92019515e-03 2.95717627e-03 2.99439966e-03 + 3.03186521e-03 3.06957280e-03 3.10752231e-03 3.14571361e-03 3.18414655e-03 + 3.22282100e-03 3.26173679e-03 3.30089378e-03 3.34029178e-03 3.37993063e-03 + 3.41981015e-03 3.45993014e-03 3.50029041e-03 3.54089075e-03 3.58173095e-03 + 3.62281080e-03 3.66413006e-03 3.70568851e-03 3.74748589e-03 3.78952197e-03 + 3.83179649e-03 3.87430918e-03 3.91705978e-03 3.96004801e-03 4.00327358e-03 + 4.04673620e-03 4.09043558e-03 4.13437140e-03 4.17854335e-03 4.22295111e-03 + 4.26759435e-03 4.31247275e-03 4.35758594e-03 4.40293359e-03 4.44851534e-03 + 4.49433082e-03 4.54037966e-03 4.58666148e-03 4.63317590e-03 4.67992252e-03 + 4.72690094e-03 4.77411076e-03 4.82155156e-03 4.86922292e-03 4.91712441e-03 + 4.96525559e-03 5.01361603e-03 5.06220526e-03 5.11102284e-03 5.16006829e-03 + 5.20934116e-03 5.25884095e-03 5.30856719e-03 5.35851938e-03 5.40869703e-03 + 5.45909962e-03 5.50972664e-03 5.56057758e-03 5.61165191e-03 5.66294908e-03 + 5.71446857e-03 5.76620983e-03 5.81817229e-03 5.87035540e-03 5.92275860e-03 + 5.97538130e-03 6.02822292e-03 6.08128288e-03 6.13456058e-03 6.18805542e-03 + 6.24176680e-03 6.29569408e-03 6.34983667e-03 6.40419392e-03 6.45876520e-03 + 6.51354987e-03 6.56854729e-03 6.62375679e-03 6.67917772e-03 6.73480941e-03 + 6.79065119e-03 6.84670238e-03 6.90296228e-03 6.95943021e-03 7.01610547e-03 + 7.07298735e-03 7.13007514e-03 7.18736812e-03 7.24486557e-03 7.30256676e-03 + 7.36047095e-03 7.41857739e-03 7.47688535e-03 7.53539406e-03 7.59410276e-03 + 7.65301069e-03 7.71211707e-03 7.77142113e-03 7.83092207e-03 7.89061912e-03 + 7.95051146e-03 8.01059830e-03 8.07087884e-03 8.13135225e-03 8.19201772e-03 + 8.25287442e-03 8.31392151e-03 8.37515818e-03 8.43658356e-03 8.49819681e-03 + 8.55999708e-03 8.62198351e-03 8.68415524e-03 8.74651139e-03 8.80905109e-03 + 8.87177346e-03 8.93467761e-03 8.99776265e-03 9.06102768e-03 9.12447181e-03 + 9.18809412e-03 9.25189370e-03 9.31586964e-03 9.38002101e-03 9.44434688e-03 + 9.50884633e-03 9.57351841e-03 9.63836218e-03 9.70337670e-03 9.76856101e-03 + 9.83391415e-03 9.89943517e-03 9.96512309e-03 1.00309769e-02 1.00969958e-02 + 1.01631786e-02 1.02295244e-02 1.02960321e-02 1.03627010e-02 1.04295298e-02 + 1.04965176e-02 1.05636634e-02 1.06309662e-02 1.06984250e-02 1.07660387e-02 + 1.08338064e-02 1.09017270e-02 1.09697994e-02 1.10380226e-02 1.11063957e-02 + 1.11749175e-02 1.12435870e-02 1.13124031e-02 1.13813648e-02 1.14504710e-02 + 1.15197207e-02 1.15891128e-02 1.16586462e-02 1.17283198e-02 1.17981326e-02 + 1.18680835e-02 1.19381714e-02 1.20083952e-02 1.20787538e-02 1.21492461e-02 + 1.22198711e-02 1.22906275e-02 1.23615144e-02 1.24325305e-02 1.25036749e-02 + 1.25749463e-02 1.26463436e-02 1.27178658e-02 1.27895117e-02 1.28612802e-02 + 1.29331701e-02 1.30051803e-02 1.30773097e-02 1.31495572e-02 1.32219215e-02 + 1.32944016e-02 1.33669962e-02 1.34397044e-02 1.35125248e-02 1.35854564e-02 + 1.36584979e-02 1.37316483e-02 1.38049064e-02 1.38782709e-02 1.39517408e-02 + 1.40253149e-02 1.40989919e-02 1.41727708e-02 1.42466503e-02 1.43206293e-02 + 1.43947066e-02 1.44688810e-02 1.45431514e-02 1.46175164e-02 1.46919751e-02 + 1.47665261e-02 1.48411683e-02 1.49159005e-02 1.49907214e-02 1.50656300e-02 + 1.51406250e-02 1.52157052e-02 1.52908694e-02 1.53661164e-02 1.54414451e-02 + 1.55168541e-02 1.55923424e-02 1.56679086e-02 1.57435517e-02 1.58192703e-02 + 1.58950633e-02 1.59709295e-02 1.60468676e-02 1.61228765e-02 1.61989549e-02 + 1.62751017e-02 1.63513156e-02 1.64275953e-02 1.65039398e-02 1.65803477e-02 + 1.66568179e-02 1.67333491e-02 1.68099401e-02 1.68865898e-02 1.69632968e-02 + 1.70400600e-02 1.71168782e-02 1.71937501e-02 1.72706745e-02 1.73476503e-02 + 1.74246761e-02 1.75017508e-02 1.75788731e-02 1.76560418e-02 1.77332558e-02 + 1.78105138e-02 1.78878145e-02 1.79651568e-02 1.80425395e-02 1.81199613e-02 + 1.81974209e-02 1.82749173e-02 1.83524492e-02 1.84300153e-02 1.85076145e-02 + 1.85852456e-02 1.86629072e-02 1.87405983e-02 1.88183176e-02 1.88960639e-02 + 1.89738359e-02 1.90516326e-02 1.91294526e-02 1.92072948e-02 1.92851579e-02 + 1.93630408e-02 1.94409423e-02 1.95188611e-02 1.95967960e-02 1.96747459e-02 + 1.97527096e-02 1.98306858e-02 1.99086734e-02 1.99866711e-02 2.00646778e-02 + 2.01426923e-02 2.02207134e-02 2.02987399e-02 2.03767707e-02 2.04548044e-02 + 2.05328400e-02 2.06108763e-02 2.06889121e-02 2.07669463e-02 2.08449775e-02 + 2.09230048e-02 2.10010268e-02 2.10790425e-02 2.11570506e-02 2.12350500e-02 + 2.13130396e-02 2.13910182e-02 2.14689845e-02 2.15469376e-02 2.16248761e-02 + 2.17027990e-02 2.17807052e-02 2.18585934e-02 2.19364625e-02 2.20143114e-02 + 2.20921389e-02 2.21699439e-02 2.22477253e-02 2.23254820e-02 2.24032128e-02 + 2.24809165e-02 2.25585922e-02 2.26362385e-02 2.27138546e-02 2.27914391e-02 + 2.28689910e-02 2.29465093e-02 2.30239927e-02 2.31014402e-02 2.31788507e-02 + 2.32562232e-02 2.33335564e-02 2.34108493e-02 2.34881009e-02 2.35653100e-02 + 2.36424756e-02 2.37195966e-02 2.37966720e-02 2.38737005e-02 2.39506813e-02 + 2.40276132e-02 2.41044951e-02 2.41813261e-02 2.42581051e-02 2.43348309e-02 + 2.44115026e-02 2.44881192e-02 2.45646795e-02 2.46411826e-02 2.47176275e-02 + 2.47940130e-02 2.48703382e-02 2.49466021e-02 2.50228037e-02 2.50989418e-02 + 2.51750157e-02 2.52510241e-02 2.53269662e-02 2.54028410e-02 2.54786474e-02 + 2.55543844e-02 2.56300512e-02 2.57056467e-02 2.57811699e-02 2.58566198e-02 + 2.59319956e-02 2.60072962e-02 2.60825207e-02 2.61576682e-02 2.62327376e-02 + 2.63077281e-02 2.63826386e-02 2.64574684e-02 2.65322164e-02 2.66068817e-02 + 2.66814634e-02 2.67559606e-02 2.68303724e-02 2.69046978e-02 2.69789360e-02 + 2.70530861e-02 2.71271471e-02 2.72011182e-02 2.72749985e-02 2.73487872e-02 + 2.74224833e-02 2.74960859e-02 2.75695943e-02 2.76430075e-02 2.77163247e-02 + 2.77895451e-02 2.78626678e-02 2.79356919e-02 2.80086167e-02 2.80814412e-02 + 2.81541648e-02 2.82267864e-02 2.82993055e-02 2.83717210e-02 2.84440323e-02 + 2.85162385e-02 2.85883388e-02 2.86603324e-02 2.87322186e-02 2.88039966e-02 + 2.88756656e-02 2.89472248e-02 2.90186734e-02 2.90900108e-02 2.91612361e-02 + 2.92323486e-02 2.93033476e-02 2.93742322e-02 2.94450019e-02 2.95156558e-02 + 2.95861933e-02 2.96566136e-02 2.97269159e-02 2.97970997e-02 2.98671642e-02 + 2.99371087e-02 3.00069325e-02 3.00766349e-02 3.01462153e-02 3.02156729e-02 + 3.02850071e-02 3.03542173e-02 3.04233028e-02 3.04922629e-02 3.05610970e-02 + 3.06298044e-02 3.06983846e-02 3.07668368e-02 3.08351604e-02 3.09033549e-02 + 3.09714197e-02 3.10393540e-02 3.11071573e-02 3.11748290e-02 3.12423686e-02 + 3.13097754e-02 3.13770488e-02 3.14441883e-02 3.15111934e-02 3.15780633e-02 + 3.16447977e-02 3.17113958e-02 3.17778573e-02 3.18441815e-02 3.19103679e-02 + 3.19764160e-02 3.20423252e-02 3.21080951e-02 3.21737250e-02 3.22392146e-02 + 3.23045633e-02 3.23697706e-02 3.24348361e-02 3.24997591e-02 3.25645394e-02 + 3.26291763e-02 3.26936694e-02 3.27580183e-02 3.28222224e-02 3.28862814e-02 + 3.29501948e-02 3.30139622e-02 3.30775831e-02 3.31410570e-02 3.32043837e-02 + 3.32675626e-02 3.33305933e-02 3.33934755e-02 3.34562087e-02 3.35187925e-02 + 3.35812266e-02 3.36435106e-02 3.37056440e-02 3.37676266e-02 3.38294579e-02 + 3.38911376e-02 3.39526653e-02 3.40140407e-02 3.40752635e-02 3.41363332e-02 + 3.41972496e-02 3.42580124e-02 3.43186212e-02 3.43790756e-02 3.44393755e-02 + 3.44995205e-02 3.45595102e-02 3.46193444e-02 3.46790229e-02 3.47385452e-02 + 3.47979112e-02 3.48571206e-02 3.49161731e-02 3.49750684e-02 3.50338063e-02 + 3.50923866e-02 3.51508090e-02 3.52090732e-02 3.52671790e-02 3.53251263e-02 + 3.53829147e-02 3.54405441e-02 3.54980142e-02 3.55553249e-02 3.56124759e-02 + 3.56694670e-02 3.57262982e-02 3.57829691e-02 3.58394796e-02 3.58958295e-02 + 3.59520187e-02 3.60080469e-02 3.60639141e-02 3.61196201e-02 3.61751647e-02 + 3.62305479e-02 3.62857693e-02 3.63408291e-02 3.63957269e-02 3.64504627e-02 + 3.65050364e-02 3.65594478e-02 3.66136969e-02 3.66677836e-02 3.67217077e-02 + 3.67754692e-02 3.68290680e-02 3.68825040e-02 3.69357771e-02 3.69888874e-02 + 3.70418346e-02 3.70946188e-02 3.71472399e-02 3.71996978e-02 3.72519925e-02 + 3.73041241e-02 3.73560923e-02 3.74078973e-02 3.74595390e-02 3.75110173e-02 + 3.75623323e-02 3.76134840e-02 3.76644723e-02 3.77152973e-02 3.77659589e-02 + 3.78164572e-02 3.78667922e-02 3.79169639e-02 3.79669723e-02 3.80168175e-02 + 3.80664996e-02 3.81160184e-02 3.81653742e-02 3.82145669e-02 3.82635966e-02 + 3.83124633e-02 3.83611672e-02 3.84097083e-02 3.84580867e-02 3.85063023e-02 + 3.85543555e-02 3.86022461e-02 3.86499744e-02 3.86975403e-02 3.87449441e-02 + 3.87921858e-02 3.88392655e-02 3.88861833e-02 3.89329394e-02 3.89795339e-02 + 3.90259669e-02 3.90722385e-02 3.91183489e-02 3.91642983e-02 3.92100867e-02 + 3.92557143e-02 3.93011813e-02 3.93464879e-02 3.93916341e-02 3.94366202e-02 + 3.94814463e-02 3.95261127e-02 3.95706194e-02 3.96149667e-02 3.96591547e-02 + 3.97031837e-02 3.97470539e-02 3.97907654e-02 3.98343184e-02 3.98777132e-02 + 3.99209500e-02 3.99640290e-02 4.00069503e-02 4.00497143e-02 4.00923212e-02 + 4.01347712e-02 4.01770645e-02 4.02192013e-02 4.02611820e-02 4.03030067e-02 + 4.03446757e-02 4.03861893e-02 4.04275477e-02 4.04687512e-02 4.05098001e-02 + 4.05506945e-02 4.05914349e-02 4.06320214e-02 4.06724544e-02 4.07127341e-02 + 4.07528608e-02 4.07928348e-02 4.08326564e-02 4.08723259e-02 4.09118437e-02 + 4.09512099e-02 4.09904249e-02 4.10294891e-02 4.10684027e-02 4.11071660e-02 + 4.11457795e-02 4.11842433e-02 4.12225579e-02 4.12607235e-02 4.12987405e-02 + 4.13366093e-02 4.13743301e-02 4.14119033e-02 4.14493293e-02 4.14866084e-02 + 4.15237410e-02 4.15607274e-02 4.15975680e-02 4.16342631e-02 4.16708131e-02 + 4.17072184e-02 4.17434793e-02 4.17795963e-02 4.18155696e-02 4.18513997e-02 + 4.18870870e-02 4.19226318e-02 4.19580345e-02 4.19932955e-02 4.20284153e-02 + 4.20633941e-02 4.20982324e-02 4.21329307e-02 4.21674892e-02 4.22019085e-02 + 4.22361889e-02 4.22703308e-02 4.23043346e-02 4.23382008e-02 4.23719298e-02 + 4.24055220e-02 4.24389778e-02 4.24722977e-02 4.25054820e-02 4.25385312e-02 + 4.25714458e-02 4.26042261e-02 4.26368727e-02 4.26693859e-02 4.27017662e-02 + 4.27340140e-02 4.27661298e-02 4.27981141e-02 4.28299672e-02 4.28616896e-02 + 4.28932819e-02 4.29247444e-02 4.29560775e-02 4.29872819e-02 4.30183578e-02 + 4.30493059e-02 4.30801265e-02 4.31108201e-02 4.31413873e-02 4.31718284e-02 + 4.32021439e-02 4.32323343e-02 4.32624002e-02 4.32923419e-02 4.33221599e-02 + 4.33518548e-02 4.33814270e-02 4.34108770e-02 4.34402053e-02 4.34694124e-02 + 4.34984988e-02 4.35274649e-02 4.35563113e-02 4.35850384e-02 4.36136467e-02 + 4.36421369e-02 4.36705092e-02 4.36987643e-02 4.37269027e-02 4.37549248e-02 + 4.37828312e-02 4.38106223e-02 4.38382987e-02 4.38658609e-02 4.38933094e-02 + 4.39206447e-02 4.39478673e-02 4.39749777e-02 4.40019765e-02 4.40288641e-02 + 4.40556412e-02 4.40823081e-02 4.41088654e-02 4.41353137e-02 4.41616534e-02 + 4.41878851e-02 4.42140094e-02 4.42400266e-02 4.42659374e-02 4.42917423e-02 + 4.43174418e-02 4.43430364e-02 4.43685267e-02 4.43939132e-02 4.44191965e-02 + 4.44443770e-02 4.44694552e-02 4.44944318e-02 4.45193073e-02 4.45440821e-02 + 4.45687569e-02 4.45933322e-02 4.46178084e-02 4.46421862e-02 4.46664660e-02 + 4.46906485e-02 4.47147341e-02 4.47387234e-02 4.47626169e-02 4.47864152e-02 + 4.48101188e-02 4.48337283e-02 4.48572441e-02 4.48806669e-02 4.49039972e-02 + 4.49272354e-02 4.49503823e-02 4.49734382e-02 4.49964038e-02 4.50192796e-02 + 4.50420661e-02 4.50647640e-02 4.50873736e-02 4.51098956e-02 4.51323305e-02 + 4.51546789e-02 4.51769413e-02 4.51991182e-02 4.52212103e-02 4.52432180e-02 + 4.52651419e-02 4.52869825e-02 4.53087404e-02 4.53304161e-02 4.53520102e-02 + 4.53735232e-02 4.53949557e-02 4.54163082e-02 4.54375812e-02 4.54587753e-02 + 4.54798911e-02 4.55009291e-02 4.55218898e-02 4.55427738e-02 4.55635817e-02 + 4.55843139e-02 4.56049710e-02 4.56255536e-02 4.56460622e-02 4.56664973e-02 + 4.56868595e-02 4.57071494e-02 4.57273674e-02 4.57475141e-02 4.57675901e-02 + 4.57875959e-02 4.58075321e-02 4.58273991e-02 4.58471976e-02 4.58669280e-02 + 4.58865909e-02 4.59061869e-02 4.59257165e-02 4.59451801e-02 4.59645785e-02 + 4.59839120e-02 4.60031812e-02 4.60223867e-02 4.60415291e-02 4.60606087e-02 + 4.60796262e-02 4.60985821e-02 4.61174770e-02 4.61363113e-02 4.61550856e-02 + 4.61738005e-02 4.61924564e-02 4.62110539e-02 4.62295935e-02 4.62480757e-02 + 4.62665012e-02 4.62848703e-02 4.63031836e-02 4.63214417e-02 4.63396451e-02 + 4.63577942e-02 4.63758897e-02 4.63939320e-02 4.64119217e-02 4.64298592e-02 + 4.64477452e-02 4.64655800e-02 4.64833643e-02 4.65010985e-02 4.65187832e-02 + 4.65364189e-02 4.65540060e-02 4.65715452e-02 4.65890368e-02 4.66064815e-02 + 4.66238797e-02 4.66412319e-02 4.66585387e-02 4.66758005e-02 4.66930179e-02 + 4.67101913e-02 4.67273213e-02 4.67444084e-02 4.67614530e-02 4.67784556e-02 + 4.67954169e-02 4.68123371e-02 4.68292170e-02 4.68460568e-02 4.68628572e-02 + 4.68796187e-02 4.68963416e-02 4.69130266e-02 4.69296740e-02 4.69462844e-02 + 4.69628583e-02 4.69793962e-02 4.69958985e-02 4.70123657e-02 4.70287983e-02 + 4.70451968e-02 4.70615616e-02 4.70778933e-02 4.70941923e-02 4.71104590e-02 + 4.71266940e-02 4.71428977e-02 4.71590707e-02 4.71752133e-02 4.71913260e-02 + 4.72074093e-02 4.72234637e-02 4.72394895e-02 4.72554874e-02 4.72714577e-02 + 4.72874010e-02 4.73033175e-02 4.73192079e-02 4.73350726e-02 4.73509120e-02 + 4.73667265e-02 4.73825167e-02 4.73982829e-02 4.74140257e-02 4.74297454e-02 + 4.74454425e-02 4.74611175e-02 4.74767708e-02 4.74924027e-02 4.75080139e-02 + 4.75236046e-02 4.75391754e-02 4.75547266e-02 4.75702588e-02 4.75857722e-02 + 4.76012674e-02 4.76167448e-02 4.76322048e-02 4.76476478e-02 4.76630743e-02 + 4.76784846e-02 4.76938792e-02 4.77092586e-02 4.77246230e-02 4.77399730e-02 + 4.77553089e-02 4.77706311e-02 4.77859401e-02 4.78012363e-02 4.78165201e-02 + 4.78317918e-02 4.78470519e-02 4.78623007e-02 4.78775388e-02 4.78927664e-02 + 4.79079840e-02 4.79231919e-02 4.79383906e-02 4.79535804e-02 4.79687617e-02 + 4.79839349e-02 4.79991005e-02 4.80142587e-02 4.80294099e-02 4.80445546e-02 + 4.80596931e-02 4.80748258e-02 4.80899530e-02 4.81050752e-02 4.81201927e-02 + 4.81353058e-02 4.81504150e-02 4.81655206e-02 4.81806229e-02 4.81957224e-02 + 4.82108194e-02 4.82259141e-02 4.82410071e-02 4.82560987e-02 4.82711891e-02 + 4.82862788e-02 4.83013681e-02 4.83164573e-02 4.83315468e-02 4.83466369e-02 + 4.83617281e-02 4.83768205e-02 4.83919146e-02 4.84070107e-02 4.84221091e-02 + 4.84372101e-02 4.84523141e-02 4.84674214e-02 4.84825324e-02 4.84976473e-02 + 4.85127665e-02 4.85278903e-02 4.85430190e-02 4.85581530e-02 4.85732925e-02 + 4.85884379e-02 4.86035894e-02 4.86187475e-02 4.86339123e-02 4.86490843e-02 + 4.86642636e-02 4.86794506e-02 4.86946457e-02 4.87098490e-02 4.87250610e-02 + 4.87402818e-02 4.87555118e-02 4.87707513e-02 4.87860006e-02 4.88012599e-02 + 4.88165295e-02 4.88318098e-02 4.88471010e-02 4.88624033e-02 4.88777171e-02 + 4.88930427e-02 4.89083802e-02 4.89237301e-02 4.89390924e-02 4.89544676e-02 + 4.89698559e-02 4.89852575e-02 4.90006728e-02 4.90161019e-02 4.90315451e-02 + 4.90470027e-02 4.90624750e-02 4.90779621e-02 4.90934644e-02 4.91089821e-02 + 4.91245154e-02 4.91400646e-02 4.91556299e-02 4.91712116e-02 4.91868099e-02 + 4.92024251e-02 4.92180573e-02 4.92337069e-02 4.92493740e-02 4.92650589e-02 + 4.92807617e-02 4.92964829e-02 4.93122225e-02 4.93279807e-02 4.93437579e-02 + 4.93595542e-02 4.93753698e-02 4.93912050e-02 4.94070600e-02 4.94229349e-02 + 4.94388300e-02 4.94547455e-02 4.94706817e-02 4.94866386e-02 4.95026165e-02 + 4.95186157e-02 4.95346362e-02 4.95506784e-02 4.95667423e-02 4.95828283e-02 + 4.95989364e-02 4.96150669e-02 4.96312200e-02 4.96473958e-02 4.96635945e-02 + 4.96798164e-02 4.96960615e-02 4.97123302e-02 4.97286224e-02 4.97449385e-02 + 4.97612786e-02 4.97776428e-02 4.97940314e-02 4.98104445e-02 4.98268822e-02 + 4.98433448e-02 4.98598324e-02 4.98763451e-02 4.98928831e-02 4.99094466e-02 + 4.99260357e-02 4.99426506e-02 4.99592915e-02 4.99759584e-02 4.99926515e-02 + 5.00093710e-02 5.00261170e-02 5.00428897e-02 5.00596891e-02 5.00765155e-02 + 5.00933690e-02 5.01102496e-02 5.01271576e-02 5.01440931e-02 5.01610562e-02 + 5.01780470e-02 5.01950657e-02 5.02121123e-02 5.02291871e-02 5.02462901e-02 + 5.02634214e-02 5.02805812e-02 5.02977695e-02 5.03149866e-02 5.03322324e-02 + 5.03495072e-02 5.03668110e-02 5.03841439e-02 5.04015061e-02 5.04188976e-02 + 5.04363186e-02 5.04537691e-02 5.04712492e-02 5.04887591e-02 5.05062988e-02 + 5.05238684e-02 5.05414681e-02 5.05590979e-02 5.05767579e-02 5.05944482e-02 + 5.06121688e-02 5.06299199e-02 5.06477016e-02 5.06655138e-02 5.06833568e-02 + 5.07012306e-02 5.07191352e-02 5.07370707e-02 5.07550372e-02 5.07730348e-02 + 5.07910636e-02 5.08091236e-02 5.08272148e-02 5.08453374e-02 5.08634913e-02 + 5.08816768e-02 5.08998937e-02 5.09181423e-02 5.09364225e-02 5.09547343e-02 + 5.09730780e-02 5.09914534e-02 5.10098606e-02 5.10282998e-02 5.10467709e-02 + 5.10652740e-02 5.10838092e-02 5.11023764e-02 5.11209757e-02 5.11396072e-02 + 5.11582709e-02 5.11769668e-02 5.11956950e-02 5.12144555e-02 5.12332483e-02 + 5.12520735e-02 5.12709311e-02 5.12898211e-02 5.13087435e-02 5.13276985e-02 + 5.13466859e-02 5.13657058e-02 5.13847583e-02 5.14038433e-02 5.14229609e-02 + 5.14421111e-02 5.14612939e-02 5.14805093e-02 5.14997573e-02 5.15190380e-02 + 5.15383513e-02 5.15576973e-02 5.15770759e-02 5.15964872e-02 5.16159312e-02 + 5.16354078e-02 5.16549172e-02 5.16744591e-02 5.16940338e-02 5.17136411e-02 + 5.17332811e-02 5.17529537e-02 5.17726590e-02 5.17923969e-02 5.18121674e-02 + 5.18319706e-02 5.18518063e-02 5.18716747e-02 5.18915756e-02 5.19115090e-02 + 5.19314750e-02 5.19514735e-02 5.19715045e-02 5.19915680e-02 5.20116639e-02 + 5.20317923e-02 5.20519530e-02 5.20721462e-02 5.20923716e-02 5.21126294e-02 + 5.21329194e-02 5.21532417e-02 5.21735963e-02 5.21939830e-02 5.22144018e-02 + 5.22348528e-02 5.22553358e-02 5.22758508e-02 5.22963979e-02 5.23169769e-02 + 5.23375877e-02 5.23582305e-02 5.23789050e-02 5.23996114e-02 5.24203494e-02 + 5.24411191e-02 5.24619205e-02 5.24827534e-02 5.25036178e-02 5.25245136e-02 + 5.25454409e-02 5.25663995e-02 5.25873895e-02 5.26084106e-02 5.26294630e-02 + 5.26505464e-02 5.26716609e-02 5.26928064e-02 5.27139828e-02 5.27351901e-02 + 5.27564281e-02 5.27776969e-02 5.27989964e-02 5.28203265e-02 5.28416870e-02 + 5.28630781e-02 5.28844995e-02 5.29059512e-02 5.29274331e-02 5.29489452e-02 + 5.29704874e-02 5.29920595e-02 5.30136616e-02 5.30352936e-02 5.30569552e-02 + 5.30786466e-02 5.31003676e-02 5.31221181e-02 5.31438980e-02 5.31657073e-02 + 5.31875458e-02 5.32094135e-02 5.32313103e-02 5.32532361e-02 5.32751908e-02 + 5.32971743e-02 5.33191865e-02 5.33412273e-02 5.33632967e-02 5.33853945e-02 + 5.34075207e-02 5.34296751e-02 5.34518577e-02 5.34740683e-02 5.34963069e-02 + 5.35185733e-02 5.35408675e-02 5.35631893e-02 5.35855387e-02 5.36079155e-02 + 5.36303197e-02 5.36527511e-02 5.36752097e-02 5.36976952e-02 5.37202077e-02 + 5.37427470e-02 5.37653129e-02 5.37879055e-02 5.38105245e-02 5.38331699e-02 + 5.38558416e-02 5.38785394e-02 5.39012632e-02 5.39240130e-02 5.39467885e-02 + 5.39695897e-02 5.39924165e-02 5.40152687e-02 5.40381462e-02 5.40610490e-02 + 5.40839768e-02 5.41069296e-02 5.41299073e-02 5.41529097e-02 5.41759366e-02 + 5.41989881e-02 5.42220639e-02 5.42451639e-02 5.42682880e-02 5.42914361e-02 + 5.43146081e-02 5.43378038e-02 5.43610230e-02 5.43842658e-02 5.44075318e-02 + 5.44308211e-02 5.44541334e-02 5.44774687e-02 5.45008268e-02 5.45242076e-02 + 5.45476109e-02 5.45710366e-02 5.45944846e-02 5.46179548e-02 5.46414469e-02 + 5.46649609e-02 5.46884967e-02 5.47120540e-02 5.47356328e-02 5.47592329e-02 + 5.47828542e-02 5.48064965e-02 5.48301598e-02 5.48538438e-02 5.48775484e-02 + 5.49012734e-02 5.49250188e-02 5.49487844e-02 5.49725701e-02 5.49963756e-02 + 5.50202009e-02 5.50440459e-02 5.50679102e-02 5.50917939e-02 5.51156968e-02 + 5.51396187e-02 5.51635595e-02 5.51875190e-02 5.52114972e-02 5.52354937e-02 + 5.52595085e-02 5.52835415e-02 5.53075925e-02 5.53316613e-02 5.53557477e-02 + 5.53798517e-02 5.54039731e-02 5.54281118e-02 5.54522675e-02 5.54764401e-02 + 5.55006295e-02 5.55248356e-02 5.55490581e-02 5.55732969e-02 5.55975518e-02 + 5.56218228e-02 5.56461096e-02 5.56704121e-02 5.56947301e-02 5.57190635e-02 + 5.57434121e-02 5.57677758e-02 5.57921544e-02 5.58165477e-02 5.58409556e-02 + 5.58653780e-02 5.58898146e-02 5.59142653e-02 5.59387300e-02 5.59632085e-02 + 5.59877006e-02 5.60122062e-02 5.60367251e-02 5.60612571e-02 5.60858022e-02 + 5.61103600e-02 5.61349306e-02 5.61595136e-02 5.61841090e-02 5.62087165e-02 + 5.62333361e-02 5.62579675e-02 5.62826106e-02 5.63072653e-02 5.63319313e-02 + 5.63566085e-02 5.63812967e-02 5.64059958e-02 5.64307057e-02 5.64554260e-02 + 5.64801568e-02 5.65048977e-02 5.65296487e-02 5.65544096e-02 5.65791802e-02 + 5.66039604e-02 5.66287499e-02 5.66535486e-02 5.66783565e-02 5.67031732e-02 + 5.67279986e-02 5.67528326e-02 5.67776749e-02 5.68025255e-02 5.68273841e-02 + 5.68522507e-02 5.68771249e-02 5.69020067e-02 5.69268959e-02 5.69517923e-02 + 5.69766957e-02 5.70016060e-02 5.70265231e-02 5.70514466e-02 5.70763766e-02 + 5.71013128e-02 5.71262550e-02 5.71512031e-02 5.71761569e-02 5.72011162e-02 + 5.72260809e-02 5.72510508e-02 5.72760258e-02 5.73010056e-02 5.73259901e-02 + 1.00620653e-03 1.00255052e-03 9.99023948e-04 9.95625443e-04 9.92353626e-04 + 9.89207121e-04 9.86184556e-04 9.83284559e-04 9.80505761e-04 9.77846796e-04 + 9.75306299e-04 9.72882909e-04 9.70575266e-04 9.68382011e-04 9.66301792e-04 + 9.64333255e-04 9.62475050e-04 9.60725831e-04 9.59084254e-04 9.57548976e-04 + 9.56118659e-04 9.54791967e-04 9.53567567e-04 9.52444128e-04 9.51420323e-04 + 9.50494828e-04 9.49666323e-04 9.48933488e-04 9.48295009e-04 9.47749574e-04 + 9.47295876e-04 9.46932608e-04 9.46658469e-04 9.46472162e-04 9.46372390e-04 + 9.46357863e-04 9.46427293e-04 9.46579395e-04 9.46812890e-04 9.47126499e-04 + 9.47518951e-04 9.47988975e-04 9.48535306e-04 9.49156682e-04 9.49851846e-04 + 9.50619543e-04 9.51458524e-04 9.52367543e-04 9.53345359e-04 9.54390732e-04 + 9.55502431e-04 9.56679226e-04 9.57919892e-04 9.59223209e-04 9.60587959e-04 + 9.62012932e-04 9.63496920e-04 9.65038719e-04 9.66637132e-04 9.68290964e-04 + 9.69999026e-04 9.71760133e-04 9.73573106e-04 9.75436769e-04 9.77349952e-04 + 9.79311488e-04 9.81320218e-04 9.83374984e-04 9.85474636e-04 9.87618028e-04 + 9.89804019e-04 9.92031472e-04 9.94299257e-04 9.96606248e-04 9.98951323e-04 + 1.00133337e-03 1.00375127e-03 1.00620393e-03 1.00869024e-03 1.01120911e-03 + 1.01375946e-03 1.01634019e-03 1.01895022e-03 1.02158850e-03 1.02425394e-03 + 1.02694549e-03 1.02966209e-03 1.03240269e-03 1.03516625e-03 1.03795173e-03 + 1.04075808e-03 1.04358430e-03 1.04642934e-03 1.04929221e-03 1.05217188e-03 + 1.05506735e-03 1.05797763e-03 1.06090172e-03 1.06383864e-03 1.06678740e-03 + 1.06974703e-03 1.07271657e-03 1.07569504e-03 1.07868150e-03 1.08167499e-03 + 1.08467457e-03 1.08767930e-03 1.09068826e-03 1.09370050e-03 1.09671513e-03 + 1.09973122e-03 1.10274787e-03 1.10576417e-03 1.10877925e-03 1.11179220e-03 + 1.11480214e-03 1.11780821e-03 1.12080954e-03 1.12380526e-03 1.12679452e-03 + 1.12977647e-03 1.13275028e-03 1.13571510e-03 1.13867011e-03 1.14161449e-03 + 1.14454743e-03 1.14746810e-03 1.15037572e-03 1.15326950e-03 1.15614863e-03 + 1.15901234e-03 1.16185987e-03 1.16469043e-03 1.16750327e-03 1.17029764e-03 + 1.17307279e-03 1.17582798e-03 1.17856248e-03 1.18127556e-03 1.18396651e-03 + 1.18663461e-03 1.18927915e-03 1.19189945e-03 1.19449481e-03 1.19706454e-03 + 1.19960797e-03 1.20212444e-03 1.20461327e-03 1.20707382e-03 1.20950543e-03 + 1.21190746e-03 1.21427929e-03 1.21662028e-03 1.21892982e-03 1.22120730e-03 + 1.22345210e-03 1.22566363e-03 1.22784131e-03 1.22998454e-03 1.23209276e-03 + 1.23416539e-03 1.23620187e-03 1.23820166e-03 1.24016420e-03 1.24208895e-03 + 1.24397538e-03 1.24582297e-03 1.24763120e-03 1.24939956e-03 1.25112755e-03 + 1.25281468e-03 1.25446045e-03 1.25606438e-03 1.25762601e-03 1.25914486e-03 + 1.26062049e-03 1.26205243e-03 1.26344025e-03 1.26478351e-03 1.26608178e-03 + 1.26733464e-03 1.26854167e-03 1.26970248e-03 1.27081666e-03 1.27188382e-03 + 1.27290358e-03 1.27387557e-03 1.27479940e-03 1.27567473e-03 1.27650119e-03 + 1.27727845e-03 1.27800616e-03 1.27868399e-03 1.27931162e-03 1.27988873e-03 + 1.28041501e-03 1.28089017e-03 1.28131390e-03 1.28168592e-03 1.28200595e-03 + 1.28227372e-03 1.28248896e-03 1.28265143e-03 1.28276086e-03 1.28281702e-03 + 1.28281967e-03 1.28276859e-03 1.28266356e-03 1.28250436e-03 1.28229079e-03 + 1.28202265e-03 1.28169975e-03 1.28132192e-03 1.28088897e-03 1.28040073e-03 + 1.27985706e-03 1.27925778e-03 1.27860277e-03 1.27789188e-03 1.27712498e-03 + 1.27630194e-03 1.27542266e-03 1.27448701e-03 1.27349491e-03 1.27244625e-03 + 1.27134095e-03 1.27017894e-03 1.26896013e-03 1.26768446e-03 1.26635188e-03 + 1.26496233e-03 1.26351578e-03 1.26201218e-03 1.26045150e-03 1.25883373e-03 + 1.25715886e-03 1.25542686e-03 1.25363775e-03 1.25179153e-03 1.24988822e-03 + 1.24792783e-03 1.24591040e-03 1.24383596e-03 1.24170455e-03 1.23951622e-03 + 1.23727103e-03 1.23496905e-03 1.23261034e-03 1.23019498e-03 1.22772306e-03 + 1.22519466e-03 1.22260990e-03 1.21996886e-03 1.21727167e-03 1.21451845e-03 + 1.21170931e-03 1.20884440e-03 1.20592385e-03 1.20294782e-03 1.19991644e-03 + 1.19682989e-03 1.19368834e-03 1.19049194e-03 1.18724090e-03 1.18393538e-03 + 1.18057559e-03 1.17716173e-03 1.17369400e-03 1.17017262e-03 1.16659781e-03 + 1.16296979e-03 1.15928880e-03 1.15555508e-03 1.15176888e-03 1.14793044e-03 + 1.14404003e-03 1.14009791e-03 1.13610436e-03 1.13205965e-03 1.12796407e-03 + 1.12381791e-03 1.11962146e-03 1.11537504e-03 1.11107895e-03 1.10673350e-03 + 1.10233903e-03 1.09789585e-03 1.09340430e-03 1.08886473e-03 1.08427748e-03 + 1.07964290e-03 1.07496136e-03 1.07023321e-03 1.06545883e-03 1.06063860e-03 + 1.05577290e-03 1.05086212e-03 1.04590664e-03 1.04090688e-03 1.03586324e-03 + 1.03077613e-03 1.02564597e-03 1.02047319e-03 1.01525820e-03 1.01000145e-03 + 1.00470338e-03 9.99364439e-04 9.93985069e-04 9.88565732e-04 9.83106891e-04 + 9.77609014e-04 9.72072576e-04 9.66498055e-04 9.60885935e-04 9.55236707e-04 + 9.49550867e-04 9.43828914e-04 9.38071354e-04 9.32278699e-04 9.26451464e-04 + 9.20590172e-04 9.14695348e-04 9.08767525e-04 9.02807239e-04 8.96815032e-04 + 8.90791450e-04 8.84737045e-04 8.78652374e-04 8.72537999e-04 8.66394486e-04 + 8.60222405e-04 8.54022334e-04 8.47794853e-04 8.41540547e-04 8.35260007e-04 + 8.28953828e-04 8.22622608e-04 8.16266953e-04 8.09887470e-04 8.03484774e-04 + 7.97059481e-04 7.90612214e-04 7.84143599e-04 7.77654267e-04 7.71144854e-04 + 7.64615998e-04 7.58068344e-04 7.51502540e-04 7.44919239e-04 7.38319095e-04 + 7.31702770e-04 7.25070930e-04 7.18424241e-04 7.11763377e-04 7.05089015e-04 + 6.98401835e-04 6.91702521e-04 6.84991763e-04 6.78270252e-04 6.71538685e-04 + 6.64797760e-04 6.58048182e-04 6.51290658e-04 6.44525898e-04 6.37754617e-04 + 6.30977533e-04 6.24195368e-04 6.17408846e-04 6.10618696e-04 6.03825649e-04 + 5.97030442e-04 5.90233812e-04 5.83436502e-04 5.76639257e-04 5.69842825e-04 + 5.63047957e-04 5.56255409e-04 5.49465938e-04 5.42680306e-04 5.35899276e-04 + 5.29123615e-04 5.22354093e-04 5.15591483e-04 5.08836561e-04 5.02090105e-04 + 4.95352897e-04 4.88625721e-04 4.81909363e-04 4.75204614e-04 4.68512265e-04 + 4.61833112e-04 4.55167951e-04 4.48517583e-04 4.41882809e-04 4.35264436e-04 + 4.28663270e-04 4.22080121e-04 4.15515801e-04 4.08971125e-04 4.02446908e-04 + 3.95943970e-04 3.89463132e-04 3.83005216e-04 3.76571049e-04 3.70161457e-04 + 3.63777270e-04 3.57419319e-04 3.51088437e-04 3.44785461e-04 3.38511226e-04 + 3.32266571e-04 3.26052338e-04 3.19869369e-04 3.13718508e-04 3.07600601e-04 + 3.01516496e-04 2.95467041e-04 2.89453087e-04 2.83475487e-04 2.77535094e-04 + 2.71632764e-04 2.65769353e-04 2.59945718e-04 2.54162720e-04 2.48421219e-04 + 2.42722076e-04 2.37066155e-04 2.31454320e-04 2.25887436e-04 2.20366370e-04 + 2.14891990e-04 2.09465163e-04 2.04086760e-04 1.98757651e-04 1.93478708e-04 + 1.88250802e-04 1.83074808e-04 1.77951598e-04 1.72882048e-04 1.67867034e-04 + 1.62907431e-04 1.58004116e-04 1.53157967e-04 1.48369861e-04 1.43640677e-04 + 1.38971295e-04 1.34362593e-04 1.29815453e-04 1.25330753e-04 1.20909375e-04 + 1.16552200e-04 1.12260108e-04 1.08033983e-04 1.03874705e-04 9.97831561e-05 + 9.57602188e-05 9.18067751e-05 8.79237073e-05 8.41118977e-05 8.03722285e-05 + 7.67055819e-05 7.31128402e-05 6.95948854e-05 6.61525994e-05 6.27868638e-05 + 5.94985602e-05 5.62885699e-05 5.31577737e-05 5.01070524e-05 4.71372862e-05 + 4.42493550e-05 4.14441382e-05 3.87225148e-05 3.60853634e-05 3.35335619e-05 + 3.10679877e-05 2.86895177e-05 2.63990279e-05 2.41973939e-05 2.20854906e-05 + 2.00641919e-05 1.81343712e-05 1.62969011e-05 1.45526531e-05 1.29024982e-05 + 1.13473061e-05 9.88794601e-06 8.52528582e-06 7.26019257e-06 6.09353228e-06 + 5.02616987e-06 4.05896918e-06 3.19279295e-06 2.42850273e-06 1.76695890e-06 + 1.20902060e-06 7.55545761e-07 4.07390992e-07 1.65411606e-07 3.04615724e-08 + 3.39348389e-09 8.50585289e-08 2.76306460e-07 5.77985565e-07 9.90942636e-07 + 1.51602294e-06 2.15407018e-06 2.90592648e-06 3.77243237e-06 4.75442669e-06 + 5.85274664e-06 7.06822772e-06 8.40170368e-06 9.85400651e-06 1.14259664e-05 + 1.31184118e-05 1.49321693e-05 1.68680634e-05 1.89269170e-05 2.11095509e-05 + 2.34167840e-05 2.58494332e-05 2.84083134e-05 3.10942374e-05 3.39080161e-05 + 3.68504581e-05 3.99223700e-05 4.31245562e-05 4.64578189e-05 4.99229584e-05 + 5.35207723e-05 5.72520562e-05 6.11176036e-05 6.51182053e-05 6.92546501e-05 + 7.35277243e-05 7.79382119e-05 8.24868944e-05 8.71745510e-05 9.20019583e-05 + 9.69698906e-05 1.02079120e-04 1.07330414e-04 1.12724542e-04 1.18262266e-04 + 1.23944348e-04 1.29771547e-04 1.35744619e-04 1.41864318e-04 1.48131395e-04 + 1.54546598e-04 1.61110672e-04 1.67824360e-04 1.74688402e-04 1.81703535e-04 + 1.88870494e-04 1.96190010e-04 2.03662811e-04 2.11289624e-04 2.19071171e-04 + 2.27008173e-04 2.35101346e-04 2.43351404e-04 2.51759058e-04 2.60325017e-04 + 2.69049986e-04 2.77934666e-04 2.86979757e-04 2.96185954e-04 3.05553951e-04 + 3.15084436e-04 3.24778097e-04 3.34635617e-04 3.44657676e-04 3.54844951e-04 + 3.65198117e-04 3.75717843e-04 3.86404797e-04 3.97259643e-04 4.08283043e-04 + 4.19475653e-04 4.30838128e-04 4.42371119e-04 4.54075273e-04 4.65951236e-04 + 4.77999647e-04 4.90221144e-04 5.02616361e-04 5.15185930e-04 5.27930476e-04 + 5.40850625e-04 5.53946996e-04 5.67220207e-04 5.80670870e-04 5.94299595e-04 + 6.08106990e-04 6.22093656e-04 6.36260194e-04 6.50607198e-04 6.65135261e-04 + 6.79844972e-04 6.94736916e-04 7.09811673e-04 7.25069822e-04 7.40511938e-04 + 7.56138589e-04 7.71950344e-04 7.87947765e-04 8.04131412e-04 8.20501840e-04 + 8.37059603e-04 8.53805247e-04 8.70739319e-04 8.87862358e-04 9.05174902e-04 + 9.22677484e-04 9.40370635e-04 9.58254879e-04 9.76330739e-04 9.94598734e-04 + 1.01305938e-03 1.03171318e-03 1.05056065e-03 1.06960229e-03 1.08883860e-03 + 1.10827007e-03 1.12789720e-03 1.14772047e-03 1.16774037e-03 1.18795737e-03 + 1.20837196e-03 1.22898460e-03 1.24979577e-03 1.27080593e-03 1.29201553e-03 + 1.31342504e-03 1.33503491e-03 1.35684558e-03 1.37885750e-03 1.40107112e-03 + 1.42348686e-03 1.44610516e-03 1.46892646e-03 1.49195117e-03 1.51517972e-03 + 1.53861252e-03 1.56224999e-03 1.58609253e-03 1.61014056e-03 1.63439447e-03 + 1.65885465e-03 1.68352151e-03 1.70839543e-03 1.73347680e-03 1.75876600e-03 + 1.78426340e-03 1.80996937e-03 1.83588430e-03 1.86200854e-03 1.88834245e-03 + 1.91488639e-03 1.94164072e-03 1.96860578e-03 1.99578192e-03 2.02316948e-03 + 2.05076879e-03 2.07858019e-03 2.10660401e-03 2.13484057e-03 2.16329019e-03 + 2.19195320e-03 2.22082990e-03 2.24992060e-03 2.27922561e-03 2.30874522e-03 + 2.33847974e-03 2.36842945e-03 2.39859465e-03 2.42897563e-03 2.45957265e-03 + 2.49038600e-03 2.52141594e-03 2.55266276e-03 2.58412671e-03 2.61580805e-03 + 2.64770705e-03 2.67982394e-03 2.71215899e-03 2.74471243e-03 2.77748450e-03 + 2.81047545e-03 2.84368550e-03 2.87711489e-03 2.91076383e-03 2.94463255e-03 + 2.97872127e-03 3.01303019e-03 3.04755952e-03 3.08230948e-03 3.11728026e-03 + 3.15247205e-03 3.18788505e-03 3.22351945e-03 3.25937543e-03 3.29545318e-03 + 3.33175287e-03 3.36827467e-03 3.40501875e-03 3.44198528e-03 3.47917442e-03 + 3.51658632e-03 3.55422114e-03 3.59207903e-03 3.63016014e-03 3.66846460e-03 + 3.70699255e-03 3.74574412e-03 3.78471946e-03 3.82391867e-03 3.86334189e-03 + 3.90298923e-03 3.94286081e-03 3.98295674e-03 4.02327712e-03 4.06382206e-03 + 4.10459166e-03 4.14558600e-03 4.18680519e-03 4.22824932e-03 4.26991845e-03 + 4.31181268e-03 4.35393209e-03 4.39627673e-03 4.43884669e-03 4.48164203e-03 + 4.52466280e-03 4.56790908e-03 4.61138090e-03 4.65507832e-03 4.69900139e-03 + 4.74315015e-03 4.78752464e-03 4.83212489e-03 4.87695094e-03 4.92200281e-03 + 4.96728053e-03 5.01278412e-03 5.05851360e-03 5.10446898e-03 5.15065026e-03 + 5.19705746e-03 5.24369058e-03 5.29054962e-03 5.33763456e-03 5.38494542e-03 + 5.43248217e-03 5.48024479e-03 5.52823328e-03 5.57644760e-03 5.62488773e-03 + 5.67355365e-03 5.72244531e-03 5.77156269e-03 5.82090574e-03 5.87047443e-03 + 5.92026869e-03 5.97028849e-03 6.02053378e-03 6.07100448e-03 6.12170055e-03 + 6.17262192e-03 6.22376853e-03 6.27514030e-03 6.32673715e-03 6.37855902e-03 + 6.43060582e-03 6.48287747e-03 6.53537388e-03 6.58809496e-03 6.64104062e-03 + 6.69421076e-03 6.74760528e-03 6.80122408e-03 6.85506705e-03 6.90913408e-03 + 6.96342506e-03 7.01793987e-03 7.07267840e-03 7.12764051e-03 7.18282609e-03 + 7.23823501e-03 7.29386713e-03 7.34972232e-03 7.40580044e-03 7.46210136e-03 + 7.51862492e-03 7.57537097e-03 7.63233938e-03 7.68952998e-03 7.74694262e-03 + 7.80457714e-03 7.86243338e-03 7.92051116e-03 7.97881033e-03 8.03733072e-03 + 8.09607214e-03 8.15503442e-03 8.21421738e-03 8.27362084e-03 8.33324462e-03 + 8.39308851e-03 8.45315234e-03 8.51343590e-03 8.57393901e-03 8.63466145e-03 + 8.69560304e-03 8.75676355e-03 8.81814279e-03 8.87974054e-03 8.94155659e-03 + 9.00359072e-03 9.06584271e-03 9.12831235e-03 9.19099940e-03 9.25390364e-03 + 9.31702483e-03 9.38036276e-03 9.44391717e-03 9.50768784e-03 9.57167452e-03 + 9.63587697e-03 9.70029495e-03 9.76492820e-03 9.82977647e-03 9.89483952e-03 + 9.96011708e-03 1.00256089e-02 1.00913147e-02 1.01572343e-02 1.02233673e-02 + 1.02897135e-02 1.03562727e-02 1.04230445e-02 1.04900287e-02 1.05572250e-02 + 1.06246331e-02 1.06922528e-02 1.07600837e-02 1.08281256e-02 1.08963781e-02 + 1.09648411e-02 1.10335142e-02 1.11023970e-02 1.11714894e-02 1.12407909e-02 + 1.13103014e-02 1.13800204e-02 1.14499478e-02 1.15200831e-02 1.15904261e-02 + 1.16609764e-02 1.17317338e-02 1.18026978e-02 1.18738683e-02 1.19452449e-02 + 1.20168272e-02 1.20886149e-02 1.21606078e-02 1.22328054e-02 1.23052074e-02 + 1.23778136e-02 1.24506235e-02 1.25236368e-02 1.25968532e-02 1.26702724e-02 + 1.27438940e-02 1.28177176e-02 1.28917429e-02 1.29659696e-02 1.30403973e-02 + 1.31150256e-02 1.31898543e-02 1.32648829e-02 1.33401111e-02 1.34155385e-02 + 1.34911647e-02 1.35669895e-02 1.36430124e-02 1.37192330e-02 1.37956511e-02 + 1.38722662e-02 1.39490779e-02 1.40260859e-02 1.41032898e-02 1.41806892e-02 + 1.42582838e-02 1.43360731e-02 1.44140568e-02 1.44922346e-02 1.45706059e-02 + 1.46491705e-02 1.47279279e-02 1.48068777e-02 1.48860196e-02 1.49653532e-02 + 1.50448780e-02 1.51245937e-02 1.52044999e-02 1.52845962e-02 1.53648821e-02 + 1.54453573e-02 1.55260214e-02 1.56068740e-02 1.56879146e-02 1.57691428e-02 + 1.58505584e-02 1.59321607e-02 1.60139495e-02 1.60959243e-02 1.61780847e-02 + 1.62604303e-02 1.63429606e-02 1.64256753e-02 1.65085740e-02 1.65916561e-02 + 1.66749213e-02 1.67583692e-02 1.68419994e-02 1.69258114e-02 1.70098048e-02 + 1.70939791e-02 1.71783340e-02 1.72628690e-02 1.73475837e-02 1.74324776e-02 + 1.75175503e-02 1.76028015e-02 1.76882306e-02 1.77738372e-02 1.78596209e-02 + 1.79455812e-02 1.80317177e-02 1.81180300e-02 1.82045176e-02 1.82911801e-02 + 1.83780171e-02 1.84650280e-02 1.85522125e-02 1.86395701e-02 1.87271004e-02 + 1.88148029e-02 1.89026771e-02 1.89907227e-02 1.90789392e-02 1.91673260e-02 + 1.92558829e-02 1.93446092e-02 1.94335047e-02 1.95225687e-02 1.96118009e-02 + 1.97012008e-02 1.97907680e-02 1.98805019e-02 1.99704022e-02 2.00604684e-02 + 2.01507000e-02 2.02410965e-02 2.03316576e-02 2.04223827e-02 2.05132714e-02 + 2.06043232e-02 2.06955376e-02 2.07869143e-02 2.08784526e-02 2.09701523e-02 + 2.10620128e-02 2.11540335e-02 2.12462142e-02 2.13385543e-02 2.14310533e-02 + 2.15237108e-02 2.16165263e-02 2.17094993e-02 2.18026294e-02 2.18959161e-02 + 2.19893590e-02 2.20829575e-02 2.21767111e-02 2.22706196e-02 2.23646822e-02 + 2.24588986e-02 2.25532684e-02 2.26477909e-02 2.27424659e-02 2.28372927e-02 + 2.29322709e-02 2.30274000e-02 2.31226797e-02 2.32181093e-02 2.33136884e-02 + 2.34094166e-02 2.35052933e-02 2.36013181e-02 2.36974906e-02 2.37938101e-02 + 2.38902764e-02 2.39868888e-02 2.40836469e-02 2.41805503e-02 2.42775984e-02 + 2.43747907e-02 2.44721269e-02 2.45696064e-02 2.46672287e-02 2.47649934e-02 + 2.48629000e-02 2.49609479e-02 2.50591368e-02 2.51574662e-02 2.52559355e-02 + 2.53545443e-02 2.54532921e-02 2.55521784e-02 2.56512028e-02 2.57503647e-02 + 2.58496638e-02 2.59490994e-02 2.60486712e-02 2.61483786e-02 2.62482212e-02 + 2.63481985e-02 2.64483100e-02 2.65485552e-02 2.66489337e-02 2.67494450e-02 + 2.68500885e-02 2.69508639e-02 2.70517706e-02 2.71528081e-02 2.72539760e-02 + 2.73552738e-02 2.74567010e-02 2.75582572e-02 2.76599418e-02 2.77617544e-02 + 2.78636944e-02 2.79657615e-02 2.80679551e-02 2.81702748e-02 2.82727200e-02 + 2.83752904e-02 2.84779854e-02 2.85808045e-02 2.86837473e-02 2.87868132e-02 + 2.88900019e-02 2.89933128e-02 2.90967454e-02 2.92002993e-02 2.93039741e-02 + 2.94077691e-02 2.95116840e-02 2.96157182e-02 2.97198713e-02 2.98241429e-02 + 2.99285324e-02 3.00330393e-02 3.01376632e-02 3.02424037e-02 3.03472601e-02 + 3.04522321e-02 3.05573193e-02 3.06625210e-02 3.07678368e-02 3.08732664e-02 + 3.09788091e-02 3.10844645e-02 3.11902322e-02 3.12961116e-02 3.14021023e-02 + 3.15082039e-02 3.16144158e-02 3.17207376e-02 3.18271688e-02 3.19337090e-02 + 3.20403576e-02 3.21471143e-02 3.22539784e-02 3.23609496e-02 3.24680275e-02 + 3.25752114e-02 3.26825010e-02 3.27898958e-02 3.28973953e-02 3.30049991e-02 + 3.31127066e-02 3.32205175e-02 3.33284313e-02 3.34364474e-02 3.35445654e-02 + 3.36527849e-02 3.37611055e-02 3.38695265e-02 3.39780476e-02 3.40866684e-02 + 3.41953882e-02 3.43042068e-02 3.44131236e-02 3.45221381e-02 3.46312500e-02 + 3.47404586e-02 3.48497637e-02 3.49591647e-02 3.50686612e-02 3.51782526e-02 + 3.52879386e-02 3.53977187e-02 3.55075924e-02 3.56175594e-02 3.57276190e-02 + 3.58377709e-02 3.59480146e-02 3.60583497e-02 3.61687756e-02 3.62792920e-02 + 3.63898985e-02 3.65005944e-02 3.66113795e-02 3.67222532e-02 3.68332151e-02 + 3.69442647e-02 3.70554017e-02 3.71666254e-02 3.72779356e-02 3.73893317e-02 + 3.75008133e-02 3.76123800e-02 3.77240313e-02 3.78357668e-02 3.79475859e-02 + 3.80594883e-02 3.81714736e-02 3.82835413e-02 3.83956909e-02 3.85079219e-02 + 3.86202341e-02 3.87326269e-02 3.88450998e-02 3.89576525e-02 3.90702845e-02 + 3.91829953e-02 3.92957846e-02 3.94086518e-02 3.95215966e-02 3.96346185e-02 + 3.97477171e-02 3.98608919e-02 3.99741425e-02 4.00874685e-02 4.02008694e-02 + 4.03143448e-02 4.04278944e-02 4.05415175e-02 4.06552139e-02 4.07689830e-02 + 4.08828245e-02 4.09967379e-02 4.11107228e-02 4.12247788e-02 4.13389054e-02 + 4.14531022e-02 4.15673688e-02 4.16817048e-02 4.17961097e-02 4.19105831e-02 + 4.20251246e-02 4.21397338e-02 4.22544102e-02 4.23691534e-02 4.24839631e-02 + 4.25988387e-02 4.27137799e-02 4.28287862e-02 4.29438573e-02 4.30589926e-02 + 4.31741919e-02 4.32894546e-02 4.34047804e-02 4.35201689e-02 4.36356195e-02 + 4.37511320e-02 4.38667059e-02 4.39823408e-02 4.40980363e-02 4.42137919e-02 + 4.43296073e-02 4.44454821e-02 4.45614158e-02 4.46774080e-02 4.47934583e-02 + 4.49095664e-02 4.50257318e-02 4.51419541e-02 4.52582329e-02 4.53745678e-02 + 4.54909583e-02 4.56074042e-02 4.57239050e-02 4.58404602e-02 4.59570696e-02 + 4.60737326e-02 4.61904489e-02 4.63072181e-02 4.64240398e-02 4.65409135e-02 + 4.66578390e-02 4.67748158e-02 4.68918435e-02 4.70089216e-02 4.71260499e-02 + 4.72432280e-02 4.73604553e-02 4.74777316e-02 4.75950564e-02 4.77124294e-02 + 4.78298502e-02 4.79473183e-02 4.80648334e-02 4.81823951e-02 4.83000030e-02 + 4.84176567e-02 4.85353559e-02 4.86531001e-02 4.87708890e-02 4.88887222e-02 + 4.90065993e-02 4.91245199e-02 4.92424836e-02 4.93604901e-02 4.94785390e-02 + 4.95966298e-02 4.97147623e-02 4.98329360e-02 4.99511505e-02 5.00694056e-02 + 5.01877007e-02 5.03060356e-02 5.04244098e-02 5.05428230e-02 5.06612748e-02 + 5.07797649e-02 5.08982928e-02 5.10168582e-02 5.11354607e-02 5.12540999e-02 + 5.13727755e-02 5.14914872e-02 5.16102344e-02 5.17290170e-02 5.18478344e-02 + 5.19666864e-02 5.20855725e-02 5.22044925e-02 5.23234459e-02 5.24424324e-02 + 5.25614515e-02 5.26805031e-02 5.27995866e-02 5.29187018e-02 5.30378482e-02 + 5.31570255e-02 5.32762334e-02 5.33954715e-02 5.35147394e-02 5.36340368e-02 + 5.37533633e-02 5.38727185e-02 5.39921022e-02 5.41115139e-02 5.42309534e-02 + 5.43504201e-02 5.44699139e-02 5.45894343e-02 5.47089810e-02 5.48285537e-02 + 5.49481519e-02 5.50677754e-02 5.51874237e-02 5.53070967e-02 5.54267938e-02 + 5.55465147e-02 5.56662592e-02 5.57860268e-02 5.59058173e-02 5.60256302e-02 + 5.61454652e-02 5.62653221e-02 5.63852003e-02 5.65050997e-02 5.66250198e-02 + 5.67449604e-02 5.68649210e-02 5.69849014e-02 5.71049012e-02 5.72249200e-02 + 5.73449576e-02 5.74650136e-02 5.75850876e-02 5.77051793e-02 5.78252885e-02 + 5.79454147e-02 5.80655576e-02 5.81857169e-02 5.83058922e-02 5.84260833e-02 + 5.85462898e-02 5.86665113e-02 5.87867476e-02 5.89069982e-02 5.90272630e-02 + 5.91475415e-02 5.92678334e-02 5.93881384e-02 5.95084562e-02 5.96287864e-02 + 5.97491288e-02 5.98694830e-02 5.99898486e-02 6.01102254e-02 6.02306130e-02 + 6.03510111e-02 6.04714194e-02 6.05918376e-02 6.07122653e-02 6.08327023e-02 + 6.09531481e-02 6.10736026e-02 6.11940653e-02 6.13145360e-02 6.14350143e-02 + 6.15555000e-02 6.16759927e-02 6.17964921e-02 6.19169978e-02 6.20375096e-02 + 6.21580272e-02 6.22785503e-02 6.23990785e-02 6.25196115e-02 6.26401490e-02 + 6.27606907e-02 6.28812364e-02 6.30017856e-02 6.31223381e-02 6.32428936e-02 + 6.33634518e-02 6.34840123e-02 6.36045749e-02 6.37251392e-02 6.38457050e-02 + 6.39662719e-02 6.40868397e-02 6.42074080e-02 6.43279765e-02 6.44485450e-02 + 6.45691132e-02 6.46896806e-02 6.48102472e-02 6.49308124e-02 6.50513761e-02 + 6.51719379e-02 6.52924976e-02 6.54130548e-02 6.55336093e-02 6.56541608e-02 + 6.57747089e-02 6.58952534e-02 6.60157939e-02 6.61363302e-02 6.62568621e-02 + 6.63773891e-02 6.64979110e-02 6.66184276e-02 6.67389384e-02 6.68594433e-02 + 6.69799420e-02 6.71004341e-02 6.72209194e-02 6.73413975e-02 6.74618683e-02 + 6.75823313e-02 6.77027864e-02 6.78232332e-02 6.79436715e-02 6.80641009e-02 + 6.81845212e-02 6.83049321e-02 6.84253333e-02 6.85457246e-02 6.86661056e-02 + 6.87864761e-02 6.89068358e-02 6.90271844e-02 6.91475216e-02 6.92678471e-02 + 6.93881608e-02 6.95084622e-02 6.96287512e-02 6.97490274e-02 6.98692906e-02 + 6.99895404e-02 7.01097767e-02 7.02299991e-02 7.03502074e-02 7.04704012e-02 + 7.05905804e-02 7.07107447e-02 7.08308937e-02 7.09510272e-02 7.10711449e-02 + 7.11912466e-02 7.13113320e-02 7.14314009e-02 7.15514528e-02 7.16714877e-02 + 7.17915052e-02 7.19115050e-02 7.20314869e-02 7.21514506e-02 7.22713959e-02 + 7.23913224e-02 7.25112300e-02 7.26311183e-02 7.27509871e-02 7.28708362e-02 + 7.29906652e-02 7.31104739e-02 7.32302620e-02 7.33500294e-02 7.34697756e-02 + 7.35895005e-02 7.37092038e-02 7.38288853e-02 7.39485446e-02 7.40681816e-02 + 7.41877959e-02 7.43073873e-02 7.44269556e-02 7.45465004e-02 7.46660216e-02 + 7.47855189e-02 7.49049920e-02 7.50244407e-02 7.51438647e-02 7.52632638e-02 + 7.53826377e-02 7.55019862e-02 7.56213089e-02 7.57406057e-02 7.58598764e-02 + 7.59791205e-02 7.60983380e-02 7.62175286e-02 7.63366919e-02 7.64558278e-02 + 7.65749361e-02 7.66940164e-02 7.68130685e-02 7.69320921e-02 7.70510872e-02 + 7.71700532e-02 7.72889902e-02 7.74078977e-02 7.75267755e-02 7.76456235e-02 + 7.77644413e-02 7.78832287e-02 7.80019855e-02 7.81207115e-02 7.82394063e-02 + 7.83580698e-02 7.84767016e-02 7.85953017e-02 7.87138697e-02 7.88324054e-02 + 7.89509085e-02 7.90693788e-02 7.91878162e-02 7.93062202e-02 7.94245908e-02 + 7.95429276e-02 7.96612305e-02 7.97794992e-02 7.98977334e-02 8.00159329e-02 + 8.01340976e-02 8.02522271e-02 8.03703213e-02 8.04883798e-02 8.06064025e-02 + 8.07243891e-02 8.08423395e-02 8.09602533e-02 8.10781303e-02 8.11959704e-02 + 8.13137732e-02 8.14315386e-02 8.15492663e-02 8.16669562e-02 8.17846079e-02 + 8.19022212e-02 8.20197960e-02 8.21373319e-02 8.22548288e-02 8.23722865e-02 + 8.24897046e-02 8.26070831e-02 8.27244216e-02 8.28417200e-02 8.29589780e-02 + 8.30761954e-02 8.31933720e-02 8.33105075e-02 8.34276018e-02 8.35446546e-02 + 8.36616657e-02 8.37786349e-02 8.38955619e-02 8.40124465e-02 8.41292886e-02 + 8.42460879e-02 8.43628442e-02 8.44795572e-02 8.45962268e-02 8.47128528e-02 + 8.48294348e-02 8.49459728e-02 8.50624664e-02 8.51789156e-02 8.52953200e-02 + 8.54116794e-02 8.55279937e-02 8.56442626e-02 8.57604859e-02 8.58766634e-02 + 8.59927950e-02 8.61088803e-02 8.62249191e-02 8.63409114e-02 8.64568567e-02 + 8.65727551e-02 8.66886061e-02 8.68044097e-02 8.69201656e-02 8.70358736e-02 + 8.71515335e-02 8.72671452e-02 8.73827083e-02 8.74982227e-02 8.76136882e-02 + 8.77291045e-02 8.78444716e-02 8.79597891e-02 8.80750569e-02 8.81902747e-02 + 8.83054425e-02 8.84205598e-02 8.85356267e-02 8.86506428e-02 8.87656079e-02 + 8.88805219e-02 8.89953846e-02 8.91101958e-02 8.92249552e-02 8.93396626e-02 + 8.94543180e-02 8.95689210e-02 8.96834715e-02 8.97979692e-02 8.99124141e-02 + 9.00268058e-02 9.01411442e-02 9.02554291e-02 9.03696603e-02 9.04838376e-02 + 9.05979609e-02 9.07120298e-02 9.08260443e-02 9.09400041e-02 9.10539091e-02 + 9.11677590e-02 9.12815537e-02 9.13952929e-02 9.15089765e-02 9.16226044e-02 + 9.17361762e-02 9.18496918e-02 9.19631511e-02 9.20765538e-02 9.21898998e-02 + 9.23031888e-02 9.24164207e-02 9.25295953e-02 9.26427124e-02 9.27557719e-02 + 9.28687734e-02 9.29817170e-02 9.30946023e-02 9.32074292e-02 9.33201974e-02 + 9.34329069e-02 9.35455575e-02 9.36581489e-02 9.37706810e-02 9.38831536e-02 + 9.39955665e-02 9.41079195e-02 9.42202125e-02 9.43324453e-02 9.44446176e-02 + 9.45567294e-02 9.46687804e-02 9.47807705e-02 9.48926995e-02 9.50045672e-02 + 9.51163735e-02 9.52281181e-02 9.53398009e-02 9.54514217e-02 9.55629803e-02 + 9.56744766e-02 9.57859104e-02 9.58972815e-02 9.60085897e-02 9.61198350e-02 + 9.62310170e-02 9.63421357e-02 9.64531908e-02 9.65641822e-02 9.66751097e-02 + 9.67859732e-02 9.68967725e-02 9.70075073e-02 9.71181777e-02 9.72287832e-02 + 9.73393240e-02 9.74497996e-02 9.75602100e-02 9.76705551e-02 9.77808345e-02 + 9.78910483e-02 9.80011962e-02 9.81112780e-02 9.82212936e-02 9.83312429e-02 + 9.84411256e-02 9.85509416e-02 9.86606907e-02 9.87703728e-02 9.88799878e-02 + 9.89895353e-02 9.90990154e-02 9.92084278e-02 9.93177724e-02 9.94270490e-02 + 9.95362575e-02 9.96453976e-02 9.97544693e-02 9.98634724e-02 9.99724067e-02 + 1.00081272e-01 1.00190068e-01 1.00298795e-01 1.00407453e-01 1.00516041e-01 + 1.00624560e-01 1.00733008e-01 1.00841387e-01 1.00949695e-01 1.01057933e-01 + 1.01166101e-01 1.01274198e-01 1.01382224e-01 1.01490179e-01 1.01598063e-01 + 1.01705876e-01 1.01813618e-01 1.01921288e-01 1.02028886e-01 1.02136413e-01 + 1.02243867e-01 1.02351250e-01 1.02458560e-01 1.02565798e-01 1.02672963e-01 + 1.02780056e-01 1.02887076e-01 1.02994022e-01 1.03100896e-01 1.03207696e-01 + 1.03314423e-01 1.03421077e-01 1.03527656e-01 1.03634162e-01 1.03740594e-01 + 1.03846952e-01 1.03953235e-01 1.04059444e-01 1.04165579e-01 1.04271638e-01 + 1.04377623e-01 1.04483533e-01 1.04589368e-01 1.04695128e-01 1.04800812e-01 + 1.04906421e-01 1.05011954e-01 1.05117411e-01 1.05222793e-01 1.05328098e-01 + 1.05433327e-01 1.05538480e-01 1.05643557e-01 1.05748556e-01 1.05853479e-01 + 1.05958326e-01 1.06063095e-01 1.06167787e-01 1.06272402e-01 1.06376939e-01 + 1.06481399e-01 1.06585781e-01 1.06690086e-01 1.06794312e-01 1.06898461e-01 + 1.07002532e-01 1.07106524e-01 1.07210437e-01 1.07314273e-01 1.07418029e-01 + 1.07521707e-01 1.07625306e-01 1.07728825e-01 1.07832266e-01 1.07935627e-01 + 1.08038909e-01 1.08142112e-01 1.08245234e-01 1.08348277e-01 1.08451240e-01 + 1.08554123e-01 1.08656926e-01 1.08759649e-01 1.08862291e-01 1.08964853e-01 + 1.09067334e-01 1.09169734e-01 1.09272053e-01 1.09374292e-01 1.09476449e-01 + 1.09578525e-01 1.09680520e-01 1.09782434e-01 1.09884265e-01 1.09986016e-01 + 1.10087684e-01 1.10189270e-01 1.10290775e-01 1.10392197e-01 1.10493537e-01 + 1.10594795e-01 1.10695970e-01 1.10797062e-01 1.10898072e-01 1.10998999e-01 + 1.11099844e-01 1.11200605e-01 1.11301283e-01 1.11401878e-01 1.11502389e-01 + 1.11602817e-01 1.11703161e-01 1.11803422e-01 1.11903599e-01 1.12003692e-01 + 1.12103701e-01 1.12203626e-01 1.12303466e-01 1.12403223e-01 1.12502895e-01 + 1.12602482e-01 1.12701985e-01 1.12801403e-01 1.12900736e-01 1.12999985e-01 + 1.13099148e-01 1.13198226e-01 1.13297219e-01 1.13396126e-01 1.13494949e-01 + 1.13593685e-01 1.13692336e-01 1.13790901e-01 1.13889381e-01 1.13987774e-01 + 1.14086081e-01 1.14184303e-01 1.14282438e-01 1.14380486e-01 1.14478449e-01 + 1.14576325e-01 1.14674114e-01 1.14771816e-01 1.14869432e-01 1.14966961e-01 + 1.15064403e-01 1.15161757e-01 1.15259025e-01 1.15356205e-01 1.15453298e-01 + 1.15550304e-01 1.15647222e-01 1.15744052e-01 1.15840795e-01 1.15937450e-01 + 1.16034017e-01 1.16130496e-01 1.16226887e-01 1.16323190e-01 1.16419404e-01 + 1.16515531e-01 1.16611568e-01 1.16707518e-01 1.16803379e-01 1.16899151e-01 + 1.16994834e-01 1.17090429e-01 1.17185934e-01 1.17281351e-01 1.17376678e-01 + 1.17471917e-01 1.17567066e-01 1.17662125e-01 1.17757096e-01 1.17851977e-01 + 1.17946768e-01 1.18041470e-01 1.18136082e-01 1.18230604e-01 1.18325036e-01 + 1.18419378e-01 1.18513631e-01 1.18607793e-01 1.18701865e-01 1.18795846e-01 + 1.18889738e-01 1.18983538e-01 1.19077249e-01 1.19170869e-01 1.19264398e-01 + 1.19357836e-01 1.19451184e-01 1.19544441e-01 1.19637607e-01 1.19730681e-01 + 1.19823665e-01 1.19916558e-01 1.20009359e-01 1.20102069e-01 1.20194688e-01 + 1.20287215e-01 1.20379651e-01 1.20471995e-01 1.20564248e-01 1.20656409e-01 + 1.20748478e-01 1.20840455e-01 1.20932341e-01 1.21024134e-01 1.21115835e-01 + 1.21207445e-01 1.21298962e-01 1.21390386e-01 1.21481719e-01 1.21572959e-01 + 1.21664107e-01 1.21755162e-01 1.21846125e-01 1.21936995e-01 1.22027773e-01 + 1.22118458e-01 1.22209049e-01 1.22299549e-01 1.22389955e-01 1.22480268e-01 + 1.22570488e-01 1.22660615e-01 1.22750649e-01 1.22840590e-01 1.22930438e-01 + 1.23020192e-01 1.23109853e-01 1.23199420e-01 1.23288894e-01 1.23378274e-01 + 1.23467561e-01 1.23556754e-01 1.23645854e-01 1.23734859e-01 1.23823771e-01 + 1.23912589e-01 1.24001313e-01 1.24089943e-01 1.24178480e-01 1.24266922e-01 + 1.24355270e-01 1.24443523e-01 1.24531683e-01 1.24619748e-01 1.24707719e-01 + 1.24795596e-01 1.24883378e-01 1.24971066e-01 1.25058659e-01 1.25146158e-01 + 1.25233562e-01 1.25320871e-01 1.25408086e-01 1.25495206e-01 1.25582231e-01 + 1.25669162e-01 1.25755997e-01 1.25842738e-01 1.25929384e-01 1.26015934e-01 + 1.26102390e-01 1.26188751e-01 1.26275016e-01 1.26361186e-01 1.26447261e-01 + 1.26533241e-01 1.26619126e-01 1.26704915e-01 1.26790609e-01 1.26876207e-01 + 1.26961710e-01 1.27047118e-01 1.27132430e-01 1.27217646e-01 1.27302767e-01 + 1.27387793e-01 1.27472722e-01 1.27557556e-01 1.27642294e-01 1.27726937e-01 + 1.27811483e-01 1.27895934e-01 1.27980289e-01 1.28064548e-01 1.28148711e-01 + 1.28232778e-01 1.28316749e-01 1.28400624e-01 1.28484403e-01 1.28568086e-01 + 1.28651673e-01 1.28735164e-01 1.28818558e-01 1.28901857e-01 1.28985059e-01 + 1.29068164e-01 1.29151174e-01 1.29234087e-01 1.29316904e-01 1.29399624e-01 + 1.29482248e-01 1.29564776e-01 1.29647207e-01 1.29729542e-01 1.29811780e-01 + 1.29893922e-01 1.29975967e-01 1.30057915e-01 1.30139767e-01 1.30221522e-01 + 1.30303181e-01 1.30384743e-01 1.30466208e-01 1.30547577e-01 1.30628849e-01 + 1.30710024e-01 1.30791102e-01 1.30872084e-01 1.30952969e-01 1.31033756e-01 + 1.31114448e-01 1.31195042e-01 1.31275539e-01 1.31355939e-01 1.31436243e-01 + -1.00000000e-20 -1.11111111e+03 -2.22222222e+03 -3.33333333e+03 -4.44444444e+03 + -5.55555556e+03 -6.66666667e+03 -7.77777778e+03 -8.88888889e+03 -1.00000000e+04 + -1.00000000e-20 -1.11111111e+03 -2.22222222e+03 -3.33333333e+03 -4.44444444e+03 + -5.55555556e+03 -6.66666667e+03 -7.77777778e+03 -8.88888889e+03 -1.00000000e+04 + -1.00000000e-20 -1.11111111e+03 -2.22222222e+03 -3.33333333e+03 -4.44444444e+03 + -5.55555556e+03 -6.66666667e+03 -7.77777778e+03 -8.88888889e+03 -1.00000000e+04 diff --git a/src/CORESHELL/Install.sh b/src/CORESHELL/Install.sh index 93c8fe8132c2bcdc59252719e3d7d42766583d3d..f8b75d1f25080bcd1d253eda82b13a4220464311 100755 --- a/src/CORESHELL/Install.sh +++ b/src/CORESHELL/Install.sh @@ -41,6 +41,8 @@ action pair_coul_long_cs.cpp pair_coul_long.cpp action pair_coul_long_cs.h pair_coul_long.h action pair_lj_cut_coul_long_cs.cpp pair_lj_cut_coul_long.cpp action pair_lj_cut_coul_long_cs.h pair_lj_cut_coul_long.h +action pair_lj_class2_coul_long_cs.cpp pair_lj_class2_coul_long.cpp +action pair_lj_class2_coul_long_cs.h pair_lj_class2_coul_long.h action pair_born_coul_wolf_cs.cpp pair_born_coul_wolf.cpp action pair_born_coul_wolf_cs.h pair_born_coul_wolf.h diff --git a/src/CORESHELL/pair_lj_class2_coul_long_cs.cpp b/src/CORESHELL/pair_lj_class2_coul_long_cs.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b99d03799a90ec9de3fcee25039b0eefcb7cd4c8 --- /dev/null +++ b/src/CORESHELL/pair_lj_class2_coul_long_cs.cpp @@ -0,0 +1,561 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "pair_lj_class2_coul_long_cs.h" +#include +#include "atom.h" +#include "force.h" +#include "neigh_list.h" + +using namespace LAMMPS_NS; + +#define EWALD_F 1.12837917 +#define EWALD_P 9.95473818e-1 +#define B0 -0.1335096380159268 +#define B1 -2.57839507e-1 +#define B2 -1.37203639e-1 +#define B3 -8.88822059e-3 +#define B4 -5.80844129e-3 +#define B5 1.14652755e-1 + +#define EPSILON 1.0e-20 +#define EPS_EWALD 1.0e-6 +#define EPS_EWALD_SQR 1.0e-12 + +/* ---------------------------------------------------------------------- */ + +PairLJClass2CoulLongCS::PairLJClass2CoulLongCS(LAMMPS *lmp) : PairLJClass2CoulLong(lmp) +{ + ewaldflag = pppmflag = 1; + respa_enable = 0; // TODO: r-RESPA handling is inconsistent and thus disabled until fixed + writedata = 1; + ftable = NULL; +} + +/* ---------------------------------------------------------------------- */ + +void PairLJClass2CoulLongCS::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itable,itype,jtype; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair; + double fraction,table; + double rsq,r,rinv,r2inv,r3inv,r6inv,forcecoul,forcelj; + double grij,expm2,prefactor,t,erfc,u; + double factor_coul,factor_lj; + int *ilist,*jlist,*numneigh,**firstneigh; + + evdwl = ecoul = 0.0; + ev_init(eflag,vflag); + + double **x = atom->x; + double **f = atom->f; + double *q = atom->q; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_coul = force->special_coul; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double qqrd2e = force->qqrd2e; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + qtmp = q[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + factor_coul = special_coul[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + if (rsq < cutsq[itype][jtype]) { + rsq += EPSILON; // Add Epsilon for case: r = 0; Interaction must be removed by special bond; + r2inv = 1.0/rsq; + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + prefactor = qqrd2e * qtmp*q[j]; + if (factor_coul < 1.0) { + // When bonded parts are being calculated a minimal distance (EPS_EWALD) + // has to be added to the prefactor and erfc in order to make the + // used approximation functions for the Ewald correction valid + grij = g_ewald * (r+EPS_EWALD); + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + u = 1.0 - t; + erfc = t * (1.+u*(B0+u*(B1+u*(B2+u*(B3+u*(B4+u*B5)))))) * expm2; + prefactor /= (r+EPS_EWALD); + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - (1.0-factor_coul)); + // Additionally r2inv needs to be accordingly modified since the later + // scaling of the overall force shall be consistent + r2inv = 1.0/(rsq + EPS_EWALD_SQR); + } else { + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + u = 1.0 - t; + erfc = t * (1.+u*(B0+u*(B1+u*(B2+u*(B3+u*(B4+u*B5)))))) * expm2; + prefactor /= r; + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2); + } + } else { + union_int_float_t rsq_lookup; + rsq_lookup.f = rsq; + itable = rsq_lookup.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction*dftable[itable]; + forcecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + table = ctable[itable] + fraction*dctable[itable]; + prefactor = qtmp*q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]); + } else forcelj = 0.0; + + fpair = (forcecoul + factor_lj*forcelj) * r2inv; + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + if (eflag) { + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) + ecoul = prefactor*erfc; + else { + table = etable[itable] + fraction*detable[itable]; + ecoul = qtmp*q[j] * table; + } + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; + } else ecoul = 0.0; + if (rsq < cut_ljsq[itype][jtype]) { + evdwl = r6inv*(lj3[itype][jtype]*r3inv-lj4[itype][jtype]) - + offset[itype][jtype]; + evdwl *= factor_lj; + } else evdwl = 0.0; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,ecoul,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- */ + +void PairLJClass2CoulLongCS::compute_inner() +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,fpair; + double rsq,rinv,r2inv,r3inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj; + double rsw; + int *ilist,*jlist,*numneigh,**firstneigh; + + double **x = atom->x; + double **f = atom->f; + double *q = atom->q; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_coul = force->special_coul; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double qqrd2e = force->qqrd2e; + + inum = list->inum_inner; + ilist = list->ilist_inner; + numneigh = list->numneigh_inner; + firstneigh = list->firstneigh_inner; + + double cut_out_on = cut_respa[0]; + double cut_out_off = cut_respa[1]; + + double cut_out_diff = cut_out_off - cut_out_on; + double cut_out_on_sq = cut_out_on*cut_out_on; + double cut_out_off_sq = cut_out_off*cut_out_off; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + qtmp = q[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + factor_coul = special_coul[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cut_out_off_sq) { + rsq += EPSILON; // Add Epsilon for case: r = 0; Interaction must be removed by special bond; + r2inv = 1.0/rsq; + forcecoul = qqrd2e * qtmp*q[j]*sqrt(r2inv); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*forcecoul; + + jtype = type[j]; + if (rsq < cut_ljsq[itype][jtype]) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]); + } else forcelj = 0.0; + + fpair = (forcecoul + factor_lj*forcelj) * r2inv; + if (rsq > cut_out_on_sq) { + rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; + fpair *= 1.0 + rsw*rsw*(2.0*rsw-3.0); + } + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void PairLJClass2CoulLongCS::compute_middle() +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,fpair; + double rsq,rinv,r2inv,r3inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj; + double rsw; + int *ilist,*jlist,*numneigh,**firstneigh; + + double **x = atom->x; + double **f = atom->f; + double *q = atom->q; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_coul = force->special_coul; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double qqrd2e = force->qqrd2e; + + inum = list->inum_middle; + ilist = list->ilist_middle; + numneigh = list->numneigh_middle; + firstneigh = list->firstneigh_middle; + + double cut_in_off = cut_respa[0]; + double cut_in_on = cut_respa[1]; + double cut_out_on = cut_respa[2]; + double cut_out_off = cut_respa[3]; + + double cut_in_diff = cut_in_on - cut_in_off; + double cut_out_diff = cut_out_off - cut_out_on; + double cut_in_off_sq = cut_in_off*cut_in_off; + double cut_in_on_sq = cut_in_on*cut_in_on; + double cut_out_on_sq = cut_out_on*cut_out_on; + double cut_out_off_sq = cut_out_off*cut_out_off; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + qtmp = q[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + factor_coul = special_coul[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + + if (rsq < cut_out_off_sq && rsq > cut_in_off_sq) { + r2inv = 1.0/rsq; + forcecoul = qqrd2e * qtmp*q[j]*sqrt(r2inv); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*forcecoul; + + jtype = type[j]; + if (rsq < cut_ljsq[itype][jtype]) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]); + } else forcelj = 0.0; + + fpair = (forcecoul + factor_lj*forcelj) * r2inv; + if (rsq < cut_in_on_sq) { + rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; + fpair *= rsw*rsw*(3.0 - 2.0*rsw); + } + if (rsq > cut_out_on_sq) { + rsw = (sqrt(rsq) - cut_out_on)/cut_out_diff; + fpair *= 1.0 + rsw*rsw*(2.0*rsw - 3.0); + } + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void PairLJClass2CoulLongCS::compute_outer(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype,itable; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair; + double fraction,table; + double r,rinv,r2inv,r3inv,r6inv,forcecoul,forcelj,factor_coul,factor_lj; + double grij,expm2,prefactor,t,erfc,u; + double rsw; + int *ilist,*jlist,*numneigh,**firstneigh; + double rsq; + + evdwl = ecoul = 0.0; + ev_init(eflag,vflag); + + double **x = atom->x; + double **f = atom->f; + double *q = atom->q; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_coul = force->special_coul; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double qqrd2e = force->qqrd2e; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + double cut_in_off = cut_respa[2]; + double cut_in_on = cut_respa[3]; + + double cut_in_diff = cut_in_on - cut_in_off; + double cut_in_off_sq = cut_in_off*cut_in_off; + double cut_in_on_sq = cut_in_on*cut_in_on; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + qtmp = q[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_lj = special_lj[sbmask(j)]; + factor_coul = special_coul[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + if (rsq < cutsq[itype][jtype]) { + r2inv = 1.0/rsq; + + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + r = sqrt(rsq); + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + u = 1. - t; + erfc = t * (1.+u*(B0+u*(B1+u*(B2+u*(B3+u*(B4+u*B5)))))) * expm2; + prefactor = qqrd2e * qtmp*q[j]/r; + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - 1.0); + if (rsq > cut_in_off_sq) { + if (rsq < cut_in_on_sq) { + rsw = (r - cut_in_off)/cut_in_diff; + forcecoul += prefactor*rsw*rsw*(3.0 - 2.0*rsw); + if (factor_coul < 1.0) + forcecoul -= + (1.0-factor_coul)*prefactor*rsw*rsw*(3.0 - 2.0*rsw); + } else { + forcecoul += prefactor; + if (factor_coul < 1.0) + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else { + union_int_float_t rsq_lookup; + rsq_lookup.f = rsq; + itable = rsq_lookup.i & ncoulmask; + itable >>= ncoulshiftbits; + fraction = (rsq_lookup.f - rtable[itable]) * drtable[itable]; + table = ftable[itable] + fraction*dftable[itable]; + forcecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + table = ctable[itable] + fraction*dctable[itable]; + prefactor = qtmp*q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype] && rsq > cut_in_off_sq) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]); + if (rsq < cut_in_on_sq) { + rsw = (sqrt(rsq) - cut_in_off)/cut_in_diff; + forcelj *= rsw*rsw*(3.0 - 2.0*rsw); + } + } else forcelj = 0.0; + + fpair = (forcecoul + forcelj) * r2inv; + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + if (eflag) { + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + ecoul = prefactor*erfc; + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; + } else { + table = etable[itable] + fraction*detable[itable]; + ecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + table = ptable[itable] + fraction*dptable[itable]; + prefactor = qtmp*q[j] * table; + ecoul -= (1.0-factor_coul)*prefactor; + } + } + } else ecoul = 0.0; + + if (rsq < cut_ljsq[itype][jtype]) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + evdwl = r6inv*(lj3[itype][jtype]*r3inv-lj4[itype][jtype]) - + offset[itype][jtype]; + evdwl *= factor_lj; + } else evdwl = 0.0; + } + + if (vflag) { + if (rsq < cut_coulsq) { + if (!ncoultablebits || rsq <= tabinnersq) { + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + } else { + table = vtable[itable] + fraction*dvtable[itable]; + forcecoul = qtmp*q[j] * table; + if (factor_coul < 1.0) { + table = ptable[itable] + fraction*dptable[itable]; + prefactor = qtmp*q[j] * table; + forcecoul -= (1.0-factor_coul)*prefactor; + } + } + } else forcecoul = 0.0; + + if (rsq <= cut_in_off_sq) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]); + } else if (rsq <= cut_in_on_sq) { + rinv = sqrt(r2inv); + r3inv = r2inv*rinv; + r6inv = r3inv*r3inv; + forcelj = r6inv * (lj1[itype][jtype]*r3inv - lj2[itype][jtype]); + } + fpair = (forcecoul + factor_lj*forcelj) * r2inv; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,ecoul,fpair,delx,dely,delz); + } + } + } +} + diff --git a/src/CORESHELL/pair_lj_class2_coul_long_cs.h b/src/CORESHELL/pair_lj_class2_coul_long_cs.h new file mode 100644 index 0000000000000000000000000000000000000000..b37685bda10d927595924d167cee859f5258958c --- /dev/null +++ b/src/CORESHELL/pair_lj_class2_coul_long_cs.h @@ -0,0 +1,67 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS + +PairStyle(lj/class2/coul/long/cs,PairLJClass2CoulLongCS) + +#else + +#ifndef LMP_PAIR_LJ_CLASS2_COUL_LONG_CS_H +#define LMP_PAIR_LJ_CLASS2_COUL_LONG_CS_H + +#include "pair_lj_class2_coul_long.h" + +namespace LAMMPS_NS { + +class PairLJClass2CoulLongCS : public PairLJClass2CoulLong { + + public: + PairLJClass2CoulLongCS(class LAMMPS *); + virtual void compute(int, int); + void compute_inner(); + void compute_middle(); + void compute_outer(int, int); +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +E: Pair style lj/class2/coul/long requires atom attribute q + +The atom style defined does not have this attribute. + +E: Pair style requires a KSpace style + +No kspace style is defined. + +E: Pair cutoff < Respa interior cutoff + +One or more pairwise cutoffs are too short to use with the specified +rRESPA cutoffs. + +*/ diff --git a/src/CORESHELL/pair_lj_cut_coul_long_cs.cpp b/src/CORESHELL/pair_lj_cut_coul_long_cs.cpp index 7ad544051afd6e22206bf48de8718fe1a73eb3cc..12d9088f267639fce383f806dd65992503bd7848 100644 --- a/src/CORESHELL/pair_lj_cut_coul_long_cs.cpp +++ b/src/CORESHELL/pair_lj_cut_coul_long_cs.cpp @@ -41,7 +41,7 @@ using namespace LAMMPS_NS; PairLJCutCoulLongCS::PairLJCutCoulLongCS(LAMMPS *lmp) : PairLJCutCoulLong(lmp) { ewaldflag = pppmflag = 1; - respa_enable = 1; + respa_enable = 0; // TODO: r-RESPA handling is inconsistent and thus disabled until fixed writedata = 1; ftable = NULL; qdist = 0.0; @@ -173,7 +173,6 @@ void PairLJCutCoulLongCS::compute(int eflag, int vflag) } if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor; } else ecoul = 0.0; - if (rsq < cut_ljsq[itype][jtype]) { evdwl = r6inv*(lj3[itype][jtype]*r6inv-lj4[itype][jtype]) - offset[itype][jtype]; @@ -433,7 +432,6 @@ void PairLJCutCoulLongCS::compute_outer(int eflag, int vflag) jtype = type[j]; if (rsq < cutsq[itype][jtype]) { - rsq += EPSILON; // Add Epsilon for case: r = 0; Interaction must be removed by special bond; r2inv = 1.0/rsq; if (rsq < cut_coulsq) { @@ -442,9 +440,8 @@ void PairLJCutCoulLongCS::compute_outer(int eflag, int vflag) grij = g_ewald * r; expm2 = exp(-grij*grij); t = 1.0 / (1.0 + EWALD_P*grij); - u = 1. - t; + u = 1. - t; erfc = t * (1.+u*(B0+u*(B1+u*(B2+u*(B3+u*(B4+u*B5)))))) * expm2; - //erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; prefactor = qqrd2e * qtmp*q[j]/r; forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - 1.0); if (rsq > cut_in_off_sq) { @@ -543,7 +540,6 @@ void PairLJCutCoulLongCS::compute_outer(int eflag, int vflag) r6inv = r2inv*r2inv*r2inv; forcelj = r6inv * (lj1[itype][jtype]*r6inv - lj2[itype][jtype]); } - fpair = (forcecoul + factor_lj*forcelj) * r2inv; } diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index c8eec53a1deae4fab25d38cfd24aed73ee39e292..e5ed1579ba3d58e2b1855735830af890b0dc9ad9 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -1134,15 +1134,15 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, t2 = 8*dR*dR2*E*E*E; t3 = 4*dR2*E; sqrt1 = MAX(0, t0*(t1+2*t2)); // in case sqrt(0) < 0 due to precision issues - t4 = cbrt(t1+t2+THREEROOT3*M_PI*sqrt(sqrt1)); + t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1)); t5 = t3/t4 + t4/E; sqrt2 = MAX(0, 2*dR + t5); t6 = sqrt(sqrt2); - sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*M_PI*R2/(E*t6)); + sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6)); a = INVROOT6*(t6 + sqrt(sqrt3)); a2 = a*a; knfac = normal_coeffs[0]*a; - Fne = knfac*a2/Reff - TWOPI*a2*sqrt(4*coh*E/(M_PI*a)); + Fne = knfac*a2/Reff - TWOPI*a2*sqrt(4*coh*E/(MY_PI*a)); } else { knfac = E; //Hooke a = sqrt(dR); @@ -1192,11 +1192,11 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, vrel = sqrt(vrel); if (normal_model == JKR) { - F_pulloff = 3*M_PI*coh*Reff; + F_pulloff = 3*MY_PI*coh*Reff; Fncrit = fabs(Fne + 2*F_pulloff); } else if (normal_model == DMT) { - F_pulloff = 4*M_PI*coh*Reff; + F_pulloff = 4*MY_PI*coh*Reff; Fncrit = fabs(Fne + 2*F_pulloff); } else{ @@ -1589,8 +1589,8 @@ double FixWallGran::pulloff_distance(double radius) double coh, E, a, dist; coh = normal_coeffs[3]; E = normal_coeffs[0]*THREEQUARTERS; - a = cbrt(9*M_PI*coh*radius/(4*E)); - dist = a*a/radius - 2*sqrt(M_PI*coh*a/E); + a = cbrt(9*MY_PI*coh*radius/(4*E)); + dist = a*a/radius - 2*sqrt(MY_PI*coh*a/E); return dist; } diff --git a/src/KIM/kim_interactions.cpp b/src/KIM/kim_interactions.cpp index 7dbe5230339d20e732879dc99829c2beda7f45ee..d0aa0e3c4e170019ee9b039a79492f7247ec9c86 100644 --- a/src/KIM/kim_interactions.cpp +++ b/src/KIM/kim_interactions.cpp @@ -15,6 +15,7 @@ Contributing authors: Axel Kohlmeyer (Temple U), Ryan S. Elliott (UMN) Ellad B. Tadmor (UMN) + Ronald Miller (Carleton U) ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- @@ -57,8 +58,10 @@ #include "kim_interactions.h" #include +#include #include #include +#include #include "error.h" #include "atom.h" #include "comm.h" @@ -80,6 +83,8 @@ extern "C" { using namespace LAMMPS_NS; +#define MAXLINE 1024 + /* ---------------------------------------------------------------------- */ void KimInteractions::command(int narg, char **arg) @@ -223,8 +228,27 @@ void KimInteractions::do_setup(int narg, char **arg) for (int j=0; j < sim_lines; ++j) { KIM_SimulatorModel_GetSimulatorFieldLine( simulatorModel,sim_model_idx,j,&sim_value); - input->one(sim_value); - } + char strbuf[MAXLINE]; + char * strword; + strcpy(strbuf,sim_value); + strword = strtok(strbuf," \t"); + if (0==strcmp(strword,"KIM_SET_TYPE_PARAMETERS")) { + // Notes regarding the KIM_SET_TYPE_PARAMETERS command + // * This is an INTERNAL command. + // * It is intended for use only by KIM Simulator Models. + // * It is not possible to use this command outside of the context + // of the kim_interactions command and KIM Simulator Models. + // * The command performs a transformation from symbolic + // string-based atom types to lammps numeric atom types for + // the pair_coeff and charge settings. + // * The command is not documented fully as it is expected to be + // temporary. Eventually it should be replaced by a more + // comprehensive symbolic types support in lammps. + KIM_SET_TYPE_PARAMETERS(sim_value); + } else { + input->one(sim_value); + } + } } } @@ -263,6 +287,96 @@ void KimInteractions::do_setup(int narg, char **arg) /* ---------------------------------------------------------------------- */ +void KimInteractions::KIM_SET_TYPE_PARAMETERS(char const *const input_line) const +{ + char strbuf[MAXLINE]; + strcpy(strbuf,input_line); + char *cmd, *key, *filename; + int nocomment; + cmd = strtok(strbuf," \t"); + key = strtok(NULL," \t"); + filename = strtok(NULL," \t"); + + FILE *fp; + fp = fopen(filename,"r"); + if (fp == NULL) { + error->one(FLERR,"Parameter file not found"); + } + + char *species1, *species2, *the_rest, *check; + std::vector species; + for (int i = 0; i < atom->ntypes; ++i) + { + char *str; + str = strtok(NULL," \t"); + if (str == NULL) + error->one(FLERR,"Incorrect args for KIM_SET_TYPE_PARAMETERS command"); + species.push_back(str); + } + + char line[MAXLINE],*ptr; + int n, eof = 0; + + while (1) { + if (comm->me == 0) { + ptr = fgets(line,MAXLINE,fp); + if (ptr == NULL) { + eof = 1; + fclose(fp); + } else n = strlen(line) + 1; + } + MPI_Bcast(&eof,1,MPI_INT,0,world); + if (eof) break; + MPI_Bcast(&n,1,MPI_INT,0,world); + MPI_Bcast(line,n,MPI_CHAR,0,world); + + ptr = line; + nocomment = line[0] != '#'; + + if(nocomment) { + if (strcmp(key,"pair") == 0) { + species1 = strtok(ptr," \t"); + species2 = strtok(NULL," \t"); + the_rest = strtok(NULL,"\n"); + + for (int type_a = 0; type_a < atom->ntypes; ++type_a) { + for (int type_b = type_a; type_b < atom->ntypes; ++type_b) { + if(((strcmp(species[type_a],species1) == 0) && + (strcmp(species[type_b],species2) == 0)) + || + ((strcmp(species[type_b],species1) == 0) && + (strcmp(species[type_a],species2) == 0)) + ) { + char pair_command[MAXLINE]; + sprintf(pair_command,"pair_coeff %i %i %s",type_a+1,type_b+1, + the_rest); + input->one(pair_command); + } + } + } + } + else if (strcmp(key,"charge") == 0) { + species1 = strtok(ptr," \t"); + the_rest = strtok(NULL,"\n"); + + for (int type_a = 0; type_a < atom->ntypes; ++type_a) { + if(strcmp(species[type_a],species1) == 0) { + char pair_command[MAXLINE]; + sprintf(pair_command,"set type %i charge %s",type_a+1,the_rest); + input->one(pair_command); + } + } + } + else{ + error->one(FLERR,"Unrecognized KEY for KIM_SET_TYPE_PARAMETERS command"); + } + } + } + fclose(fp); +} + +/* ---------------------------------------------------------------------- */ + int KimInteractions::species_to_atomic_no(std::string const species) const { if (species == "H") return 1; diff --git a/src/KIM/kim_interactions.h b/src/KIM/kim_interactions.h index 8172004d530bbcdab21c5a829d6b11f69b22e071..ffec48adab555c135e131ee7600413070bc75d39 100644 --- a/src/KIM/kim_interactions.h +++ b/src/KIM/kim_interactions.h @@ -15,6 +15,7 @@ Contributing authors: Axel Kohlmeyer (Temple U), Ryan S. Elliott (UMN) Ellad B. Tadmor (UMN) + Ronald Miller (Carleton U) ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- @@ -76,6 +77,7 @@ class KimInteractions : protected Pointers { private: void do_setup(int, char **); int species_to_atomic_no(std::string const species) const; + void KIM_SET_TYPE_PARAMETERS(char const *const input_line) const; void kim_interactions_log_delimiter(std::string const begin_end) const; }; diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index e0b1c928218c98ebe9c8a47a5b4a29e3ed462147..540389f5994357b438530e97e68a96f831fe5061 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -85,6 +85,8 @@ action comm_kokkos.cpp action comm_kokkos.h action comm_tiled_kokkos.cpp action comm_tiled_kokkos.h +action compute_orientorder_atom_kokkos.cpp +action compute_orientorder_atom_kokkos.h action compute_temp_kokkos.cpp action compute_temp_kokkos.h action dihedral_charmm_kokkos.cpp dihedral_charmm.cpp diff --git a/src/KOKKOS/angle_charmm_kokkos.cpp b/src/KOKKOS/angle_charmm_kokkos.cpp index 245aead73e01cf7ac51664d959f4f744474c3d16..8d7a4d23d6853652b45b7693c1d0cafb46be93d2 100644 --- a/src/KOKKOS/angle_charmm_kokkos.cpp +++ b/src/KOKKOS/angle_charmm_kokkos.cpp @@ -72,21 +72,21 @@ void AngleCharmmKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); - d_eatom = k_eatom.template view(); + d_eatom = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); - d_vatom = k_vatom.template view(); + d_vatom = k_vatom.template view(); //} } x = atomKK->k_x.view(); f = atomKK->k_f.view(); neighborKK->k_anglelist.template sync(); - anglelist = neighborKK->k_anglelist.view(); + anglelist = neighborKK->k_anglelist.view(); int nanglelist = neighborKK->nanglelist; nlocal = atom->nlocal; newton_bond = force->newton_bond; @@ -265,10 +265,10 @@ void AngleCharmmKokkos::coeff(int narg, char **arg) AngleCharmm::coeff(narg, arg); int n = atom->nangletypes; - Kokkos::DualView k_k("AngleCharmm::k",n+1); - Kokkos::DualView k_theta0("AngleCharmm::theta0",n+1); - Kokkos::DualView k_k_ub("AngleCharmm::k_ub",n+1); - Kokkos::DualView k_r_ub("AngleCharmm::r_ub",n+1); + typename AT::tdual_ffloat_1d k_k("AngleCharmm::k",n+1); + typename AT::tdual_ffloat_1d k_theta0("AngleCharmm::theta0",n+1); + typename AT::tdual_ffloat_1d k_k_ub("AngleCharmm::k_ub",n+1); + typename AT::tdual_ffloat_1d k_r_ub("AngleCharmm::r_ub",n+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); @@ -303,10 +303,10 @@ void AngleCharmmKokkos::read_restart(FILE *fp) AngleCharmm::read_restart(fp); int n = atom->nangletypes; - Kokkos::DualView k_k("AngleCharmm::k",n+1); - Kokkos::DualView k_theta0("AngleCharmm::theta0",n+1); - Kokkos::DualView k_k_ub("AngleCharmm::k_ub",n+1); - Kokkos::DualView k_r_ub("AngleCharmm::r_ub",n+1); + typename AT::tdual_ffloat_1d k_k("AngleCharmm::k",n+1); + typename AT::tdual_ffloat_1d k_theta0("AngleCharmm::theta0",n+1); + typename AT::tdual_ffloat_1d k_k_ub("AngleCharmm::k_ub",n+1); + typename AT::tdual_ffloat_1d k_r_ub("AngleCharmm::r_ub",n+1); d_k = k_k.template view(); d_theta0 = k_theta0.template view(); diff --git a/src/KOKKOS/angle_charmm_kokkos.h b/src/KOKKOS/angle_charmm_kokkos.h index 865439b83a2ceaf8cfa313ea38af1a17cf675c94..c7f64d4c222fbe593be3550feb7bce03542369cc 100644 --- a/src/KOKKOS/angle_charmm_kokkos.h +++ b/src/KOKKOS/angle_charmm_kokkos.h @@ -63,11 +63,13 @@ class AngleCharmmKokkos : public AngleCharmm { typedef ArrayTypes AT; typename AT::t_x_array_randomread x; - typename Kokkos::View::value,Kokkos::MemoryTraits > f; + + typedef typename KKDevice::value KKDeviceType; + typename Kokkos::View > f; typename AT::t_int_2d anglelist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; diff --git a/src/KOKKOS/atom_vec_kokkos.h b/src/KOKKOS/atom_vec_kokkos.h index 0474a2380aea57850d14d8cb211f3c2df5b257d1..2111e73208072b3ff587576c3cb9f582bbcc0915 100644 --- a/src/KOKKOS/atom_vec_kokkos.h +++ b/src/KOKKOS/atom_vec_kokkos.h @@ -153,15 +153,7 @@ class AtomVecKokkos : public AtomVec { buffer = Kokkos::kokkos_realloc(buffer,src.span()); buffer_size = src.span(); } - return mirror_type( buffer , - src.extent(0) , - src.extent(1) , - src.extent(2) , - src.extent(3) , - src.extent(4) , - src.extent(5) , - src.extent(6) , - src.extent(7) ); + return mirror_type(buffer, src.d_view.layout()); } template @@ -179,15 +171,8 @@ class AtomVecKokkos : public AtomVec { buffer = Kokkos::kokkos_realloc(buffer,src.span()*sizeof(typename ViewType::value_type)); buffer_size = src.span(); } - mirror_type tmp_view( (typename ViewType::value_type*)buffer , - src.extent(0) , - src.extent(1) , - src.extent(2) , - src.extent(3) , - src.extent(4) , - src.extent(5) , - src.extent(6) , - src.extent(7) ); + mirror_type tmp_view((typename ViewType::value_type*)buffer, src.d_view.layout()); + if(space == Device) { Kokkos::deep_copy(LMPHostType(),tmp_view,src.h_view), Kokkos::deep_copy(LMPHostType(),src.d_view,tmp_view); diff --git a/src/KOKKOS/bond_harmonic_kokkos.cpp b/src/KOKKOS/bond_harmonic_kokkos.cpp index e0d75dcd9ace7749ebe5322579901524cd73e932..4e2a5aaa05b138963307657129b302acdbb6e50d 100644 --- a/src/KOKKOS/bond_harmonic_kokkos.cpp +++ b/src/KOKKOS/bond_harmonic_kokkos.cpp @@ -69,14 +69,14 @@ void BondHarmonicKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); - d_eatom = k_eatom.template view(); + d_eatom = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); - d_vatom = k_vatom.template view(); + d_vatom = k_vatom.template view(); //} } @@ -204,8 +204,8 @@ void BondHarmonicKokkos::coeff(int narg, char **arg) BondHarmonic::coeff(narg, arg); int n = atom->nbondtypes; - Kokkos::DualView k_k("BondHarmonic::k",n+1); - Kokkos::DualView k_r0("BondHarmonic::r0",n+1); + typename AT::tdual_ffloat_1d k_k("BondHarmonic::k",n+1); + typename AT::tdual_ffloat_1d k_r0("BondHarmonic::r0",n+1); d_k = k_k.template view(); d_r0 = k_r0.template view(); @@ -231,8 +231,8 @@ void BondHarmonicKokkos::read_restart(FILE *fp) BondHarmonic::read_restart(fp); int n = atom->nbondtypes; - Kokkos::DualView k_k("BondHarmonic::k",n+1); - Kokkos::DualView k_r0("BondHarmonic::r0",n+1); + typename AT::tdual_ffloat_1d k_k("BondHarmonic::k",n+1); + typename AT::tdual_ffloat_1d k_r0("BondHarmonic::r0",n+1); d_k = k_k.template view(); d_r0 = k_r0.template view(); diff --git a/src/KOKKOS/bond_harmonic_kokkos.h b/src/KOKKOS/bond_harmonic_kokkos.h index b5bee7e909f133056d947faf0b240347da1f4a4f..cf716ec843b8eabfd5dc78e2e240b715a2f86673 100644 --- a/src/KOKKOS/bond_harmonic_kokkos.h +++ b/src/KOKKOS/bond_harmonic_kokkos.h @@ -66,10 +66,11 @@ class BondHarmonicKokkos : public BondHarmonic { typename Kokkos::View::value,Kokkos::MemoryTraits > f; typename AT::t_int_2d bondlist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + Kokkos::View > d_eatom; + Kokkos::View > d_vatom; int nlocal,newton_bond; int eflag,vflag; diff --git a/src/KOKKOS/compute_orientorder_atom_kokkos.cpp b/src/KOKKOS/compute_orientorder_atom_kokkos.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d00dc3e238218fce6a9b08a74c2fac7bab760125 --- /dev/null +++ b/src/KOKKOS/compute_orientorder_atom_kokkos.cpp @@ -0,0 +1,739 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Stan Moore (SNL) +------------------------------------------------------------------------- */ + +#include "compute_orientorder_atom_kokkos.h" +#include +#include +#include +#include "atom_kokkos.h" +#include "update.h" +#include "modify.h" +#include "neighbor_kokkos.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "force.h" +#include "pair.h" +#include "comm.h" +#include "memory_kokkos.h" +#include "error.h" +#include "math_const.h" +#include "atom_masks.h" +#include "kokkos.h" + +using namespace LAMMPS_NS; +using namespace MathConst; +using namespace std; + +#ifdef DBL_EPSILON + #define MY_EPSILON (10.0*DBL_EPSILON) +#else + #define MY_EPSILON (10.0*2.220446049250313e-16) +#endif + +#define QEPSILON 1.0e-6 + +/* ---------------------------------------------------------------------- */ + +template +ComputeOrientOrderAtomKokkos::ComputeOrientOrderAtomKokkos(LAMMPS *lmp, int narg, char **arg) : + ComputeOrientOrderAtom(lmp, narg, arg) +{ + kokkosable = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = EMPTY_MASK; + datamask_modify = EMPTY_MASK; + + host_flag = (execution_space == Host); +} + +/* ---------------------------------------------------------------------- */ + +template +ComputeOrientOrderAtomKokkos::~ComputeOrientOrderAtomKokkos() +{ + if (copymode) return; + + memoryKK->destroy_kokkos(k_qnarray,qnarray); +} + +/* ---------------------------------------------------------------------- */ + +template +void ComputeOrientOrderAtomKokkos::init() +{ + ComputeOrientOrderAtom::init(); + + d_qlist = t_sna_1i("orientorder/atom:qlist",nqlist); + auto h_qlist = Kokkos::create_mirror_view(d_qlist); + for (int i = 0; i < nqlist; i++) + h_qlist(i) = qlist[i]; + Kokkos::deep_copy(d_qlist,h_qlist); + + // need an occasional full neighbor list + + // irequest = neigh request made by parent class + + int irequest = neighbor->nrequest - 1; + + neighbor->requests[irequest]-> + kokkos_host = std::is_same::value && + !std::is_same::value; + neighbor->requests[irequest]-> + kokkos_device = std::is_same::value; +} + +/* ---------------------------------------------------------------------- */ + +template +struct FindMaxNumNeighs { + typedef DeviceType device_type; + NeighListKokkos k_list; + + FindMaxNumNeighs(NeighListKokkos* nl): k_list(*nl) {} + ~FindMaxNumNeighs() {k_list.copymode = 1;} + + KOKKOS_INLINE_FUNCTION + void operator() (const int& ii, int& maxneigh) const { + const int i = k_list.d_ilist[ii]; + const int num_neighs = k_list.d_numneigh[i]; + if (maxneigh < num_neighs) maxneigh = num_neighs; + } +}; + +/* ---------------------------------------------------------------------- */ + +template +void ComputeOrientOrderAtomKokkos::compute_peratom() +{ + invoked_peratom = update->ntimestep; + + // invoke full neighbor list (will copy or build if necessary) + + neighbor->build_one(list); + + inum = list->inum; + NeighListKokkos* k_list = static_cast*>(list); + d_numneigh = k_list->d_numneigh; + d_neighbors = k_list->d_neighbors; + d_ilist = k_list->d_ilist; + + // grow order parameter array if necessary + + if (atom->nmax > nmax) { + memoryKK->destroy_kokkos(k_qnarray,qnarray); + nmax = atom->nmax; + memoryKK->create_kokkos(k_qnarray,qnarray,nmax,ncol,"orientorder/atom:qnarray"); + array_atom = qnarray; + d_qnarray = k_qnarray.template view(); + } + + chunk_size = MIN(chunksize,inum); // "chunksize" variable is set by user + chunk_offset = 0; + + if (chunk_size > d_ncount.extent(0)) { + d_qnm = t_sna_3c("orientorder/atom:qnm",chunk_size,nqlist,2*qmax+1); + d_ncount = t_sna_1i("orientorder/atom:ncount",chunk_size); + } + + copymode = 1; + + // insure distsq and nearest arrays are long enough + + maxneigh = 0; + Kokkos::parallel_reduce("ComputeOrientOrderAtomKokkos::find_max_neighs",inum, FindMaxNumNeighs(k_list), Kokkos::Max(maxneigh)); + + if (chunk_size > d_distsq.extent(0) || maxneigh > d_distsq.extent(1)) { + d_distsq = t_sna_2d_lr("orientorder/atom:distsq",chunk_size,maxneigh); + d_nearest = t_sna_2i_lr("orientorder/atom:nearest",chunk_size,maxneigh); + d_rlist = t_sna_3d_lr("orientorder/atom:rlist",chunk_size,maxneigh,3); + + d_distsq_um = d_distsq; + d_rlist_um = d_rlist; + d_nearest_um = d_nearest; + } + + // compute order parameter for each atom in group + // use full neighbor list to count atoms less than cutoff + + atomKK->sync(execution_space,X_MASK|MASK_MASK); + x = atomKK->k_x.view(); + mask = atomKK->k_mask.view(); + + Kokkos::deep_copy(d_qnm,{0.0,0.0}); + + int vector_length_default = 1; + int team_size_default = 1; + if (!host_flag) + team_size_default = 32;//max_neighs; + + while (chunk_offset < inum) { // chunk up loop to prevent running out of memory + + if (chunk_size > inum - chunk_offset) + chunk_size = inum - chunk_offset; + + //Neigh + { + int vector_length = vector_length_default; + int team_size = team_size_default; + check_team_size_for(chunk_size,team_size,vector_length); + typename Kokkos::TeamPolicy policy_neigh(chunk_size,team_size,vector_length); + Kokkos::parallel_for("ComputeOrientOrderAtomNeigh",policy_neigh,*this); + } + + //Select3 + typename Kokkos::RangePolicy policy_select3(0,chunk_size); + Kokkos::parallel_for("ComputeOrientOrderAtomSelect3",policy_select3,*this); + + //BOOP1 + { + int vector_length = vector_length_default; + int team_size = team_size_default; + check_team_size_for(chunk_size,team_size,vector_length); + typename Kokkos::TeamPolicy policy_boop1(((chunk_size+team_size-1)/team_size)*maxneigh,team_size,vector_length); + Kokkos::parallel_for("ComputeOrientOrderAtomBOOP1",policy_boop1,*this); + } + + //BOOP2 + typename Kokkos::RangePolicy policy_boop2(0,chunk_size); + Kokkos::parallel_for("ComputeOrientOrderAtomBOOP2",policy_boop2,*this); + + chunk_offset += chunk_size; + } // end while + + copymode = 0; + + k_qnarray.template modify(); + k_qnarray.template sync(); +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::operator() (TagComputeOrientOrderAtomNeigh,const typename Kokkos::TeamPolicy::member_type& team) const +{ + const int ii = team.league_rank(); + const int i = d_ilist[ii + chunk_offset]; + if (mask[i] & groupbit) { + const X_FLOAT xtmp = x(i,0); + const X_FLOAT ytmp = x(i,1); + const X_FLOAT ztmp = x(i,2); + const int jnum = d_numneigh[i]; + + // loop over list of all neighbors within force cutoff + // distsq[] = distance sq to each + // rlist[] = distance vector to each + // nearest[] = atom indices of neighbors + + int ncount = 0; + Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team,jnum), + [&] (const int jj, int& count) { + Kokkos::single(Kokkos::PerThread(team), [&] (){ + int j = d_neighbors(i,jj); + j &= NEIGHMASK; + const F_FLOAT delx = x(j,0) - xtmp; + const F_FLOAT dely = x(j,1) - ytmp; + const F_FLOAT delz = x(j,2) - ztmp; + const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; + if (rsq < cutsq) + count++; + }); + },ncount); + + d_ncount(ii) = ncount; + + if (team.team_rank() == 0) + Kokkos::parallel_scan(Kokkos::ThreadVectorRange(team,jnum), + [&] (const int jj, int& offset, bool final) { + int j = d_neighbors(i,jj); + j &= NEIGHMASK; + const F_FLOAT delx = x(j,0) - xtmp; + const F_FLOAT dely = x(j,1) - ytmp; + const F_FLOAT delz = x(j,2) - ztmp; + const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; + if (rsq < cutsq) { + if (final) { + d_distsq(ii,offset) = rsq; + d_rlist(ii,offset,0) = delx; + d_rlist(ii,offset,1) = dely; + d_rlist(ii,offset,2) = delz; + d_nearest(ii,offset) = j; + } + offset++; + } + }); + } +} + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::operator() (TagComputeOrientOrderAtomSelect3,const int& ii) const { + + const int i = d_ilist[ii + chunk_offset]; + const int ncount = d_ncount(ii); + + // if not nnn neighbors, order parameter = 0; + + if ((ncount == 0) || (ncount < nnn)) { + for (int jj = 0; jj < ncol; jj++) + d_qnarray(i,jj) = 0.0; + return; + } + + // if nnn > 0, use only nearest nnn neighbors + + if (nnn > 0) { + select3(nnn, ncount, ii); + d_ncount(ii) = nnn; + } +} + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::operator() (TagComputeOrientOrderAtomBOOP1,const typename Kokkos::TeamPolicy::member_type& team) const { + + // Extract the atom number + int ii = team.team_rank() + team.team_size() * (team.league_rank() % + ((chunk_size+team.team_size()-1)/team.team_size())); + if (ii >= chunk_size) return; + + // Extract the neighbor number + const int jj = team.league_rank() / ((chunk_size+team.team_size()-1)/team.team_size()); + const int ncount = d_ncount(ii); + if (jj >= ncount) return; + + // if not nnn neighbors, order parameter = 0; + + if ((ncount == 0) || (ncount < nnn)) + return; + + calc_boop1(ncount, ii, jj); +} + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::operator() (TagComputeOrientOrderAtomBOOP2,const int& ii) const { + const int ncount = d_ncount(ii); + calc_boop2(ncount, ii); +} + + +/* ---------------------------------------------------------------------- + select3 routine from Numerical Recipes (slightly modified) + find k smallest values in array of length n + sort auxiliary arrays at same time +------------------------------------------------------------------------- */ + +// Use no-op do while to create single statement + +#define SWAP(view,i,j) do { \ + tmp = view(i); view(i) = view(j); view(j) = tmp; \ + } while(0) + +#define ISWAP(view,i,j) do { \ + itmp = view(i); view(i) = view(j); view(j) = itmp; \ + } while(0) + +#define SWAP3(view,i,j) do { \ + tmp = view(i,0); view(i,0) = view(j,0); view(j,0) = tmp; \ + tmp = view(i,1); view(i,1) = view(j,1); view(j,1) = tmp; \ + tmp = view(i,2); view(i,2) = view(j,2); view(j,2) = tmp; \ + } while(0) + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::select3(int k, int n, int ii) const +{ + int i,ir,j,l,mid,ia,itmp; + double a,tmp,a3[3]; + + auto arr = Kokkos::subview(d_distsq_um, ii, Kokkos::ALL); + auto iarr = Kokkos::subview(d_nearest_um, ii, Kokkos::ALL); + auto arr3 = Kokkos::subview(d_rlist_um, ii, Kokkos::ALL, Kokkos::ALL); + + l = 0; + ir = n-1; + for (;;) { + if (ir <= l+1) { + if (ir == l+1 && arr[ir] < arr[l]) { + SWAP(arr,l,ir); + ISWAP(iarr,l,ir); + SWAP3(arr3,l,ir); + } + return; + } else { + mid=((l+ir+2) >> 1) - 1; + SWAP(arr,mid,l+1); + ISWAP(iarr,mid,l+1); + SWAP3(arr3,mid,l+1); + if (arr[l] > arr[ir]) { + SWAP(arr,l,ir); + ISWAP(iarr,l,ir); + SWAP3(arr3,l,ir); + } + if (arr[l+1] > arr[ir]) { + SWAP(arr,l+1,ir); + ISWAP(iarr,l+1,ir); + SWAP3(arr3,l+1,ir); + } + if (arr[l] > arr[l+1]) { + SWAP(arr,l,l+1); + ISWAP(iarr,l,l+1); + SWAP3(arr3,l,l+1); + } + i = l+1; + j = ir; + a = arr[l+1]; + ia = iarr[l+1]; + a3[0] = arr3(l+1,0); + a3[1] = arr3(l+1,1); + a3[2] = arr3(l+1,2); + for (;;) { + do i++; while (arr[i] < a); + do j--; while (arr[j] > a); + if (j < i) break; + SWAP(arr,i,j); + ISWAP(iarr,i,j); + SWAP3(arr3,i,j); + } + arr[l+1] = arr[j]; + arr[j] = a; + iarr[l+1] = iarr[j]; + iarr[j] = ia; + arr3(l+1,0) = arr3(j,0); + arr3(l+1,1) = arr3(j,1); + arr3(l+1,2) = arr3(j,2); + arr3(j,0) = a3[0]; + arr3(j,1) = a3[1]; + arr3(j,2) = a3[2]; + if (j+1 >= k) ir = j-1; + if (j+1 <= k) l = i; + } + } +} + +/* ---------------------------------------------------------------------- + calculate the bond orientational order parameters +------------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::calc_boop1(int ncount, int ii, int ineigh) const +{ + const int i = d_ilist[ii + chunk_offset]; + + const double r0 = d_rlist(ii,ineigh,0); + const double r1 = d_rlist(ii,ineigh,1); + const double r2 = d_rlist(ii,ineigh,2); + const double rmag = sqrt(r0*r0 + r1*r1 + r2*r2); + if(rmag <= MY_EPSILON) { + return; + } + + const double costheta = r2 / rmag; + SNAcomplex expphi = {r0,r1}; + const double rxymag = sqrt(expphi.re*expphi.re+expphi.im*expphi.im); + if(rxymag <= MY_EPSILON) { + expphi.re = 1.0; + expphi.im = 0.0; + } else { + const double rxymaginv = 1.0/rxymag; + expphi.re *= rxymaginv; + expphi.im *= rxymaginv; + } + + for (int il = 0; il < nqlist; il++) { + const int l = d_qlist[il]; + + //d_qnm(ii,il,l).re += polar_prefactor(l, 0, costheta); + const double polar_pf = polar_prefactor(l, 0, costheta); + Kokkos::atomic_add(&(d_qnm(ii,il,l).re), polar_pf); + SNAcomplex expphim = {expphi.re,expphi.im}; + for(int m = 1; m <= +l; m++) { + const double prefactor = polar_prefactor(l, m, costheta); + SNAcomplex c = {prefactor * expphim.re, prefactor * expphim.im}; + //d_qnm(ii,il,m+l).re += c.re; + //d_qnm(ii,il,m+l).im += c.im; + Kokkos::atomic_add(&(d_qnm(ii,il,m+l).re), c.re); + Kokkos::atomic_add(&(d_qnm(ii,il,m+l).im), c.im); + if(m & 1) { + //d_qnm(ii,il,-m+l).re -= c.re; + //d_qnm(ii,il,-m+l).im += c.im; + Kokkos::atomic_add(&(d_qnm(ii,il,-m+l).re), -c.re); + Kokkos::atomic_add(&(d_qnm(ii,il,-m+l).im), c.im); + } else { + //d_qnm(ii,il,-m+l).re += c.re; + //d_qnm(ii,il,-m+l).im -= c.im; + Kokkos::atomic_add(&(d_qnm(ii,il,-m+l).re), c.re); + Kokkos::atomic_add(&(d_qnm(ii,il,-m+l).im), -c.im); + } + SNAcomplex tmp; + tmp.re = expphim.re*expphi.re - expphim.im*expphi.im; + tmp.im = expphim.re*expphi.im + expphim.im*expphi.re; + expphim.re = tmp.re; + expphim.im = tmp.im; + } + } +} + +/* ---------------------------------------------------------------------- + calculate the bond orientational order parameters +------------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +void ComputeOrientOrderAtomKokkos::calc_boop2(int ncount, int ii) const +{ + const int i = d_ilist[ii + chunk_offset]; + + // convert sums to averages + + double facn = 1.0 / ncount; + for (int il = 0; il < nqlist; il++) { + int l = d_qlist[il]; + for(int m = 0; m < 2*l+1; m++) { + d_qnm(ii,il,m).re *= facn; + d_qnm(ii,il,m).im *= facn; + } + } + + // calculate Q_l + // NOTE: optional W_l_hat and components of Q_qlcomp use these stored Q_l values + + int jj = 0; + for (int il = 0; il < nqlist; il++) { + int l = d_qlist[il]; + double qnormfac = sqrt(MY_4PI/(2*l+1)); + double qm_sum = 0.0; + for(int m = 0; m < 2*l+1; m++) + qm_sum += d_qnm(ii,il,m).re*d_qnm(ii,il,m).re + d_qnm(ii,il,m).im*d_qnm(ii,il,m).im; + d_qnarray(i,jj++) = qnormfac * sqrt(qm_sum); + } + + // calculate W_l + + if (wlflag) { + int idxcg_count = 0; + for (int il = 0; il < nqlist; il++) { + int l = d_qlist[il]; + double wlsum = 0.0; + for(int m1 = 0; m1 < 2*l+1; m1++) { + for(int m2 = MAX(0,l-m1); m2 < MIN(2*l+1,3*l-m1+1); m2++) { + int m = m1 + m2 - l; + SNAcomplex qm1qm2; + qm1qm2.re = d_qnm(ii,il,m1).re*d_qnm(ii,il,m2).re - d_qnm(ii,il,m1).im*d_qnm(ii,il,m2).im; + qm1qm2.im = d_qnm(ii,il,m1).re*d_qnm(ii,il,m2).im + d_qnm(ii,il,m1).im*d_qnm(ii,il,m2).re; + wlsum += (qm1qm2.re*d_qnm(ii,il,m).re + qm1qm2.im*d_qnm(ii,il,m).im)*d_cglist[idxcg_count]; + idxcg_count++; + } + } + d_qnarray(i,jj++) = wlsum/sqrt(2.0*l+1.0); + } + } + + // calculate W_l_hat + + if (wlhatflag) { + int idxcg_count = 0; + for (int il = 0; il < nqlist; il++) { + int l = d_qlist[il]; + double wlsum = 0.0; + for(int m1 = 0; m1 < 2*l+1; m1++) { + for(int m2 = MAX(0,l-m1); m2 < MIN(2*l+1,3*l-m1+1); m2++) { + const int m = m1 + m2 - l; + SNAcomplex qm1qm2; + qm1qm2.re = d_qnm(ii,il,m1).re*d_qnm(ii,il,m2).re - d_qnm(ii,il,m1).im*d_qnm(ii,il,m2).im; + qm1qm2.im = d_qnm(ii,il,m1).re*d_qnm(ii,il,m2).im + d_qnm(ii,il,m1).im*d_qnm(ii,il,m2).re; + wlsum += (qm1qm2.re*d_qnm(ii,il,m).re + qm1qm2.im*d_qnm(ii,il,m).im)*d_cglist[idxcg_count]; + idxcg_count++; + } + } + // Whats = [w/(q/np.sqrt(np.pi * 4 / (2 * l + 1)))**3 if abs(q) > 1.0e-6 else 0.0 for l,q,w in zip(range(1,max_l+1),Qs,Ws)] + if (d_qnarray(i,il) < QEPSILON) + d_qnarray(i,jj++) = 0.0; + else { + const double qnormfac = sqrt(MY_4PI/(2*l+1)); + const double qnfac = qnormfac/d_qnarray(i,il); + d_qnarray(i,jj++) = wlsum/sqrt(2.0*l+1.0)*(qnfac*qnfac*qnfac); + } + } + } + + // Calculate components of Q_l, for l=qlcomp + + if (qlcompflag) { + const int il = iqlcomp; + const int l = qlcomp; + if (d_qnarray(i,il) < QEPSILON) + for(int m = 0; m < 2*l+1; m++) { + d_qnarray(i,jj++) = 0.0; + d_qnarray(i,jj++) = 0.0; + } + else { + const double qnormfac = sqrt(MY_4PI/(2*l+1)); + const double qnfac = qnormfac/d_qnarray(i,il); + for(int m = 0; m < 2*l+1; m++) { + d_qnarray(i,jj++) = d_qnm(ii,il,m).re * qnfac; + d_qnarray(i,jj++) = d_qnm(ii,il,m).im * qnfac; + } + } + } + +} + +/* ---------------------------------------------------------------------- + polar prefactor for spherical harmonic Y_l^m, where + Y_l^m (theta, phi) = prefactor(l, m, cos(theta)) * exp(i*m*phi) +------------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +double ComputeOrientOrderAtomKokkos::polar_prefactor(int l, int m, double costheta) const +{ + const int mabs = abs(m); + + double prefactor = 1.0; + for (int i=l-mabs+1; i < l+mabs+1; ++i) + prefactor *= static_cast(i); + + prefactor = sqrt(static_cast(2*l+1)/(MY_4PI*prefactor)) + * associated_legendre(l,mabs,costheta); + + if ((m < 0) && (m % 2)) prefactor = -prefactor; + + return prefactor; +} + +/* ---------------------------------------------------------------------- + associated legendre polynomial +------------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION +double ComputeOrientOrderAtomKokkos::associated_legendre(int l, int m, double x) const +{ + if (l < m) return 0.0; + + double p(1.0), pm1(0.0), pm2(0.0); + + if (m != 0) { + const double sqx = sqrt(1.0-x*x); + for (int i=1; i < m+1; ++i) + p *= static_cast(2*i-1) * sqx; + } + + for (int i=m+1; i < l+1; ++i) { + pm2 = pm1; + pm1 = p; + p = (static_cast(2*i-1)*x*pm1 + - static_cast(i+m-1)*pm2) / static_cast(i-m); + } + + return p; +} + +/* ---------------------------------------------------------------------- + assign Clebsch-Gordan coefficients + using the quasi-binomial formula VMK 8.2.1(3) + specialized for case j1=j2=j=l +------------------------------------------------------------------------- */ + +template +void ComputeOrientOrderAtomKokkos::init_clebsch_gordan() +{ + double sum,dcg,sfaccg, sfac1, sfac2; + int m, aa2, bb2, cc2; + int ifac, idxcg_count; + + idxcg_count = 0; + for (int il = 0; il < nqlist; il++) { + int l = qlist[il]; + for(int m1 = 0; m1 < 2*l+1; m1++) + for(int m2 = MAX(0,l-m1); m2 < MIN(2*l+1,3*l-m1+1); m2++) + idxcg_count++; + } + idxcg_max = idxcg_count; + d_cglist = t_sna_1d("orientorder/atom:d_cglist",idxcg_max); + auto h_cglist = Kokkos::create_mirror_view(d_cglist); + + idxcg_count = 0; + for (int il = 0; il < nqlist; il++) { + int l = qlist[il]; + for(int m1 = 0; m1 < 2*l+1; m1++) { + aa2 = m1 - l; + for(int m2 = MAX(0,l-m1); m2 < MIN(2*l+1,3*l-m1+1); m2++) { + bb2 = m2 - l; + m = aa2 + bb2 + l; + + sum = 0.0; + for (int z = MAX(0, MAX(-aa2, bb2)); + z <= MIN(l, MIN(l - aa2, l + bb2)); z++) { + ifac = z % 2 ? -1 : 1; + sum += ifac / + (factorial(z) * + factorial(l - z) * + factorial(l - aa2 - z) * + factorial(l + bb2 - z) * + factorial(aa2 + z) * + factorial(-bb2 + z)); + } + + cc2 = m - l; + sfaccg = sqrt(factorial(l + aa2) * + factorial(l - aa2) * + factorial(l + bb2) * + factorial(l - bb2) * + factorial(l + cc2) * + factorial(l - cc2) * + (2*l + 1)); + + sfac1 = factorial(3*l + 1); + sfac2 = factorial(l); + dcg = sqrt(sfac2*sfac2*sfac2 / sfac1); + + h_cglist[idxcg_count] = sum * dcg * sfaccg; + idxcg_count++; + } + } + } + Kokkos::deep_copy(d_cglist,h_cglist); +} + +/* ---------------------------------------------------------------------- + check max team size +------------------------------------------------------------------------- */ + +template +template +void ComputeOrientOrderAtomKokkos::check_team_size_for(int inum, int &team_size, int vector_length) { + int team_size_max; + + team_size_max = Kokkos::TeamPolicy(inum,Kokkos::AUTO).team_size_max(*this,Kokkos::ParallelForTag()); + + if(team_size*vector_length > team_size_max) + team_size = team_size_max/vector_length; +} + +namespace LAMMPS_NS { +template class ComputeOrientOrderAtomKokkos; +#ifdef KOKKOS_ENABLE_CUDA +template class ComputeOrientOrderAtomKokkos; +#endif +} diff --git a/src/KOKKOS/compute_orientorder_atom_kokkos.h b/src/KOKKOS/compute_orientorder_atom_kokkos.h new file mode 100644 index 0000000000000000000000000000000000000000..7d8005f89b42af0f028a43d5a002bd8a9466754d --- /dev/null +++ b/src/KOKKOS/compute_orientorder_atom_kokkos.h @@ -0,0 +1,140 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef COMPUTE_CLASS + +ComputeStyle(orientorder/atom/kk,ComputeOrientOrderAtomKokkos) +ComputeStyle(orientorder/atom/kk/device,ComputeOrientOrderAtomKokkos) +ComputeStyle(orientorder/atom/kk/host,ComputeOrientOrderAtomKokkos) + +#else + +#ifndef LMP_COMPUTE_ORIENTORDER_ATOM_KOKKOS_H +#define LMP_COMPUTE_ORIENTORDER_ATOM_KOKKOS_H + +#include "compute_orientorder_atom.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +struct TagComputeOrientOrderAtomNeigh{}; +struct TagComputeOrientOrderAtomSelect3{}; +struct TagComputeOrientOrderAtomBOOP1{}; +struct TagComputeOrientOrderAtomBOOP2{}; + +template +class ComputeOrientOrderAtomKokkos : public ComputeOrientOrderAtom { + public: + typedef Kokkos::View t_sna_1i; + typedef Kokkos::View t_sna_1d; + typedef Kokkos::View > t_sna_1d_atomic; + typedef Kokkos::View t_sna_2i_lr; + typedef Kokkos::View > t_sna_2i_lr_um; + typedef Kokkos::View t_sna_2i; + typedef Kokkos::View t_sna_2d; + typedef Kokkos::View t_sna_2d_lr; + typedef Kokkos::DualView tdual_sna_2d_lr; + typedef Kokkos::View > t_sna_2d_lr_um; + typedef Kokkos::View t_sna_3d; + typedef Kokkos::View t_sna_3d_lr; + typedef Kokkos::View > t_sna_3d_lr_um; + typedef Kokkos::View t_sna_4d; + typedef Kokkos::View t_sna_3d3; + typedef Kokkos::View t_sna_5d; + + typedef Kokkos::View t_sna_1c; + typedef Kokkos::View > t_sna_1c_atomic; + typedef Kokkos::View t_sna_2c; + typedef Kokkos::View t_sna_2c_lr; + typedef Kokkos::View t_sna_3c; + typedef Kokkos::View t_sna_4c; + typedef Kokkos::View t_sna_3c3; + typedef Kokkos::View t_sna_5c; + + typedef DeviceType device_type; + typedef ArrayTypes AT; + typedef int value_type; + + ComputeOrientOrderAtomKokkos(class LAMMPS *, int, char **); + ~ComputeOrientOrderAtomKokkos(); + void init(); + void compute_peratom(); + t_sna_1i d_qlist; + + template + void check_team_size_for(int, int&, int); + + KOKKOS_INLINE_FUNCTION + void operator() (TagComputeOrientOrderAtomNeigh, const typename Kokkos::TeamPolicy::member_type& team) const; + + KOKKOS_INLINE_FUNCTION + void operator() (TagComputeOrientOrderAtomSelect3, const int& ii) const; + + KOKKOS_INLINE_FUNCTION + void operator() (TagComputeOrientOrderAtomBOOP1, const typename Kokkos::TeamPolicy::member_type& team) const; + + KOKKOS_INLINE_FUNCTION + void operator() (TagComputeOrientOrderAtomBOOP2, const int& ii) const; + + DAT::tdual_float_2d k_qnarray; + typename AT::t_float_2d d_qnarray; + + private: + int inum,chunk_size,chunk_offset; + int host_flag; + + typename AT::t_x_array_randomread x; + typename ArrayTypes::t_int_1d mask; + + typename AT::t_neighbors_2d d_neighbors; + typename AT::t_int_1d_randomread d_ilist; + typename AT::t_int_1d_randomread d_numneigh; + + t_sna_1i d_ncount; + t_sna_2d_lr d_distsq; + t_sna_2i_lr d_nearest; + t_sna_3d_lr d_rlist; + + t_sna_2d_lr_um d_distsq_um; + t_sna_2i_lr_um d_nearest_um; + t_sna_3d_lr_um d_rlist_um; + + t_sna_3c d_qnm; + + KOKKOS_INLINE_FUNCTION + void select3(int, int, int) const; + + KOKKOS_INLINE_FUNCTION + void calc_boop1(int, int, int) const; + + KOKKOS_INLINE_FUNCTION + void calc_boop2(int, int) const; + + KOKKOS_INLINE_FUNCTION + double polar_prefactor(int, int, double) const; + + KOKKOS_INLINE_FUNCTION + double associated_legendre(int, int, double) const; + + void init_clebsch_gordan(); + t_sna_1d d_cglist; // Clebsch-Gordan coeffs +}; + +} + +#endif +#endif + +/* ERROR/WARNING messages: + +*/ diff --git a/src/KOKKOS/compute_temp_kokkos.cpp b/src/KOKKOS/compute_temp_kokkos.cpp index a2fcf631259c94d3c30790b814a46980da7015ef..f5547d02002c57064b02807580ba80b393cb84a0 100644 --- a/src/KOKKOS/compute_temp_kokkos.cpp +++ b/src/KOKKOS/compute_temp_kokkos.cpp @@ -31,6 +31,7 @@ template ComputeTempKokkos::ComputeTempKokkos(LAMMPS *lmp, int narg, char **arg) : ComputeTemp(lmp, narg, arg) { + kokkosable = 1; atomKK = (AtomKokkos *) atom; execution_space = ExecutionSpaceFromDevice::space; diff --git a/src/KOKKOS/dihedral_charmm_kokkos.cpp b/src/KOKKOS/dihedral_charmm_kokkos.cpp index 06f25ee0a2d4be7e16f37c115bc66a23e5994dd7..64ab79c3053e8771d57ad864e5c809837ac61b62 100644 --- a/src/KOKKOS/dihedral_charmm_kokkos.cpp +++ b/src/KOKKOS/dihedral_charmm_kokkos.cpp @@ -28,6 +28,7 @@ #include "memory_kokkos.h" #include "error.h" #include "atom_masks.h" +#include "kokkos.h" using namespace LAMMPS_NS; using namespace MathConst; @@ -69,6 +70,9 @@ void DihedralCharmmKokkos::compute(int eflag_in, int vflag_in) eflag = eflag_in; vflag = vflag_in; + if (lmp->kokkos->neighflag == FULL) + error->all(FLERR,"Dihedral_style charmm/kk requires half neighbor list"); + ev_init(eflag,vflag,0); // insure pair->ev_tally() will use 1-4 virial contribution @@ -82,18 +86,18 @@ void DihedralCharmmKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"dihedral:eatom"); - d_eatom = k_eatom.template view(); - k_eatom_pair = Kokkos::DualView("dihedral:eatom_pair",maxeatom); - d_eatom_pair = k_eatom.template view(); + d_eatom = k_eatom.template view(); + k_eatom_pair = Kokkos::DualView("dihedral:eatom_pair",maxeatom); + d_eatom_pair = k_eatom_pair.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"dihedral:vatom"); - d_vatom = k_vatom.template view(); - k_vatom_pair = Kokkos::DualView("dihedral:vatom_pair",maxvatom); - d_vatom_pair = k_vatom.template view(); + d_vatom = k_vatom.template view(); + k_vatom_pair = Kokkos::DualView("dihedral:vatom_pair",maxvatom); + d_vatom_pair = k_vatom_pair.template view(); //} } @@ -424,12 +428,12 @@ void DihedralCharmmKokkos::coeff(int narg, char **arg) DihedralCharmm::coeff(narg, arg); int nd = atom->ndihedraltypes; - Kokkos::DualView k_k("DihedralCharmm::k",nd+1); - Kokkos::DualView k_multiplicity("DihedralCharmm::multiplicity",nd+1); - Kokkos::DualView k_shift("DihedralCharmm::shift",nd+1); - Kokkos::DualView k_cos_shift("DihedralCharmm::cos_shift",nd+1); - Kokkos::DualView k_sin_shift("DihedralCharmm::sin_shift",nd+1); - Kokkos::DualView k_weight("DihedralCharmm::weight",nd+1); + typename AT::tdual_ffloat_1d k_k("DihedralCharmm::k",nd+1); + typename AT::tdual_ffloat_1d k_multiplicity("DihedralCharmm::multiplicity",nd+1); + typename AT::tdual_ffloat_1d k_shift("DihedralCharmm::shift",nd+1); + typename AT::tdual_ffloat_1d k_cos_shift("DihedralCharmm::cos_shift",nd+1); + typename AT::tdual_ffloat_1d k_sin_shift("DihedralCharmm::sin_shift",nd+1); + typename AT::tdual_ffloat_1d k_weight("DihedralCharmm::weight",nd+1); d_k = k_k.template view(); d_multiplicity = k_multiplicity.template view(); @@ -473,10 +477,10 @@ void DihedralCharmmKokkos::init_style() DihedralCharmm::init_style(); int n = atom->ntypes; - Kokkos::DualView k_lj14_1("DihedralCharmm:lj14_1",n+1,n+1); - Kokkos::DualView k_lj14_2("DihedralCharmm:lj14_2",n+1,n+1); - Kokkos::DualView k_lj14_3("DihedralCharmm:lj14_3",n+1,n+1); - Kokkos::DualView k_lj14_4("DihedralCharmm:lj14_4",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_1("DihedralCharmm:lj14_1",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_2("DihedralCharmm:lj14_2",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_3("DihedralCharmm:lj14_3",n+1,n+1); + DAT::tdual_ffloat_2d k_lj14_4("DihedralCharmm:lj14_4",n+1,n+1); d_lj14_1 = k_lj14_1.template view(); d_lj14_2 = k_lj14_2.template view(); @@ -517,12 +521,12 @@ void DihedralCharmmKokkos::read_restart(FILE *fp) DihedralCharmm::read_restart(fp); int nd = atom->ndihedraltypes; - Kokkos::DualView k_k("DihedralCharmm::k",nd+1); - Kokkos::DualView k_multiplicity("DihedralCharmm::multiplicity",nd+1); - Kokkos::DualView k_shift("DihedralCharmm::shift",nd+1); - Kokkos::DualView k_cos_shift("DihedralCharmm::cos_shift",nd+1); - Kokkos::DualView k_sin_shift("DihedralCharmm::sin_shift",nd+1); - Kokkos::DualView k_weight("DihedralCharmm::weight",nd+1); + typename AT::tdual_ffloat_1d k_k("DihedralCharmm::k",nd+1); + typename AT::tdual_ffloat_1d k_multiplicity("DihedralCharmm::multiplicity",nd+1); + typename AT::tdual_ffloat_1d k_shift("DihedralCharmm::shift",nd+1); + typename AT::tdual_ffloat_1d k_cos_shift("DihedralCharmm::cos_shift",nd+1); + typename AT::tdual_ffloat_1d k_sin_shift("DihedralCharmm::sin_shift",nd+1); + typename AT::tdual_ffloat_1d k_weight("DihedralCharmm::weight",nd+1); d_k = k_k.template view(); d_multiplicity = k_multiplicity.template view(); diff --git a/src/KOKKOS/dihedral_charmm_kokkos.h b/src/KOKKOS/dihedral_charmm_kokkos.h index 21bb6fd2e12ee52372dfd1cb3dfb1abee257889d..828abd2be71b3c075c9c1953a5b5cc054a592e93 100644 --- a/src/KOKKOS/dihedral_charmm_kokkos.h +++ b/src/KOKKOS/dihedral_charmm_kokkos.h @@ -132,15 +132,16 @@ class DihedralCharmmKokkos : public DihedralCharmm { typename AT::t_f_array f; typename AT::t_int_2d dihedrallist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; - - Kokkos::DualView k_eatom_pair; - Kokkos::DualView k_vatom_pair; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom_pair; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom_pair; + typedef typename KKDevice::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + Kokkos::View > d_eatom; + Kokkos::View > d_vatom; + + Kokkos::DualView k_eatom_pair; + Kokkos::DualView k_vatom_pair; + Kokkos::View > d_eatom_pair; + Kokkos::View > d_vatom_pair; int nlocal,newton_bond; int eflag,vflag; diff --git a/src/KOKKOS/fix_qeq_reax_kokkos.cpp b/src/KOKKOS/fix_qeq_reax_kokkos.cpp index a0f4f3ec28ac4df9dccd673de7d5675a9b4973c4..10d33ead459e22c4709a78b0b8cc89bdcb32e769 100644 --- a/src/KOKKOS/fix_qeq_reax_kokkos.cpp +++ b/src/KOKKOS/fix_qeq_reax_kokkos.cpp @@ -39,8 +39,6 @@ using namespace FixConst; #define SMALL 0.0001 #define EV_TO_KCAL_PER_MOL 14.4 -#define TEAMSIZE 128 - /* ---------------------------------------------------------------------- */ template @@ -726,7 +724,9 @@ void FixQEqReaxKokkos::cg_solve1() const int inum = list->inum; F_FLOAT tmp, sig_old, b_norm; - const int teamsize = TEAMSIZE; + int teamsize; + if (execution_space == Host) teamsize = 1; + else teamsize = 128; // sparse_matvec( &H, x, q ); FixQEqReaxKokkosSparse12Functor sparse12_functor(this); @@ -861,7 +861,9 @@ void FixQEqReaxKokkos::cg_solve2() const int inum = list->inum; F_FLOAT tmp, sig_old, b_norm; - const int teamsize = TEAMSIZE; + int teamsize; + if (execution_space == Host) teamsize = 1; + else teamsize = 128; // sparse_matvec( &H, x, q ); FixQEqReaxKokkosSparse32Functor sparse32_functor(this); diff --git a/src/KOKKOS/fix_rx_kokkos.cpp b/src/KOKKOS/fix_rx_kokkos.cpp index 9271cf1b884f14ab15a0ff6e16f67c2ad3638899..2ec3e3a77ce6c83dcdc2a0246fd3a0529363c3fa 100644 --- a/src/KOKKOS/fix_rx_kokkos.cpp +++ b/src/KOKKOS/fix_rx_kokkos.cpp @@ -27,6 +27,7 @@ #include "comm.h" #include "domain.h" #include "kokkos.h" +#include "utils.h" #include // DBL_EPSILON @@ -128,7 +129,7 @@ void FixRxKokkos::init() bool eos_flag = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"eos/table/rx",3) == 0) eos_flag = true; + if (utils::strmatch(modify->fix[i]->style,"^eos/table/rx")) eos_flag = true; if(!eos_flag) error->all(FLERR,"fix rx requires fix eos/table/rx to be specified"); if (update_kinetics_data) diff --git a/src/KOKKOS/improper_harmonic_kokkos.cpp b/src/KOKKOS/improper_harmonic_kokkos.cpp index 6a32e8af4786af595c42cb4438222649ea65986a..6f2969722aff7d04316f382cfc004b5f757be999 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.cpp +++ b/src/KOKKOS/improper_harmonic_kokkos.cpp @@ -73,14 +73,14 @@ void ImproperHarmonicKokkos::compute(int eflag_in, int vflag_in) //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); - d_eatom = k_eatom.template view(); + d_eatom = k_eatom.template view(); //} } if (vflag_atom) { //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); - d_vatom = k_vatom.template view(); + d_vatom = k_vatom.template view(); //} } diff --git a/src/KOKKOS/improper_harmonic_kokkos.h b/src/KOKKOS/improper_harmonic_kokkos.h index fb44081928f194f149ae8c186d87d3c246b83cea..e143e65adf488a110667e1249a04d94d82e9b0eb 100644 --- a/src/KOKKOS/improper_harmonic_kokkos.h +++ b/src/KOKKOS/improper_harmonic_kokkos.h @@ -63,14 +63,15 @@ class ImproperHarmonicKokkos : public ImproperHarmonic { class NeighborKokkos *neighborKK; + typedef typename KKDevice::value KKDeviceType; typename AT::t_x_array_randomread x; - typename Kokkos::View::value,Kokkos::MemoryTraits > f; + typename Kokkos::View > f; typename AT::t_int_2d improperlist; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_eatom; - Kokkos::View::value,Kokkos::MemoryTraits > d_vatom; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + Kokkos::View > d_eatom; + Kokkos::View > d_vatom; int nlocal,newton_bond; int eflag,vflag; diff --git a/src/KOKKOS/kokkos.cpp b/src/KOKKOS/kokkos.cpp index 8f60f3526d353a40681178ef14d011d430a0567f..f54df5cb76e597d453450d395985454241579cbb 100644 --- a/src/KOKKOS/kokkos.cpp +++ b/src/KOKKOS/kokkos.cpp @@ -306,7 +306,7 @@ void KokkosLMP::accelerator(int narg, char **arg) neighflag = HALFTHREAD; else neighflag = HALF; - } else if (strcmp(arg[iarg+1],"n2") == 0) neighflag = N2; + } else error->all(FLERR,"Illegal package kokkos command"); if (!neighflag_qeq_set) neighflag_qeq = neighflag; iarg += 2; @@ -318,7 +318,7 @@ void KokkosLMP::accelerator(int narg, char **arg) neighflag_qeq = HALFTHREAD; else neighflag_qeq = HALF; - } else if (strcmp(arg[iarg+1],"n2") == 0) neighflag_qeq = N2; + } else error->all(FLERR,"Illegal package kokkos command"); neighflag_qeq_set = 1; iarg += 2; diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index b1d17b45c35aa3dce04d079b993fca9a4afdb6bf..796f4612a42f219640eb5e65bfa5b0bedc414b14 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -22,7 +22,7 @@ #include #include -enum{FULL=1u,HALFTHREAD=2u,HALF=4u,N2=8u}; +enum{FULL=1u,HALFTHREAD=2u,HALF=4u}; #if defined(KOKKOS_ENABLE_CXX11) #undef ISFINITE @@ -1029,6 +1029,59 @@ struct params_lj_coul { F_FLOAT cut_ljsq,cut_coulsq,lj1,lj2,lj3,lj4,offset; }; +// Pair SNAP + +typedef double SNAreal; + +//typedef struct { SNAreal re, im; } SNAcomplex; +template +struct alignas(2*sizeof(real)) SNAComplex +{ + real re,im; + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex() = default; + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex(real re) + : re(re), im(static_cast(0.)) { ; } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex(real re, real im) + : re(re), im(im) { ; } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex(const SNAComplex& other) + : re(other.re), im(other.im) { ; } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator=(const SNAComplex& other) { + re = other.re; im = other.im; + return *this; + } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex(SNAComplex&& other) + : re(other.re), im(other.im) { ; } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator=(SNAComplex&& other) { + re = other.re; im = other.im; + return *this; + } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex operator+(SNAComplex const& other) { + return SNAComplex(re + other.re, im + other.im); + } + + KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator+=(SNAComplex const& other) { + re += other.re; im += other.im; + return *this; + } + +}; + +template +KOKKOS_FORCEINLINE_FUNCTION SNAComplex operator*(const real& r, const SNAComplex& self) { + return SNAComplex(r*self.re, r*self.im); +} + +typedef SNAComplex SNAcomplex; + + #if defined(KOKKOS_ENABLE_CXX11) #undef ISFINITE #define ISFINITE(x) std::isfinite(x) diff --git a/src/KOKKOS/min_cg_kokkos.cpp b/src/KOKKOS/min_cg_kokkos.cpp index 47a4513bc0d7f32de4b62e7b2374c46dc1601b2c..23954705ef63b528fa32afcdd813c08b2b8072c0 100644 --- a/src/KOKKOS/min_cg_kokkos.cpp +++ b/src/KOKKOS/min_cg_kokkos.cpp @@ -19,6 +19,7 @@ #include "timer.h" #include "atom_kokkos.h" #include "atom_masks.h" +#include "error.h" #include "fix_minimize_kokkos.h" using namespace LAMMPS_NS; @@ -42,7 +43,7 @@ MinCGKokkos::MinCGKokkos(LAMMPS *lmp) : MinLineSearchKokkos(lmp) int MinCGKokkos::iterate(int maxiter) { int fail,ntimestep; - double beta,gg,dot[2],dotall[2]; + double beta,gg,dot[2],dotall[2],fdotf; fix_minimize_kk->k_vectors.sync(); fix_minimize_kk->k_vectors.modify(); @@ -111,7 +112,14 @@ int MinCGKokkos::iterate(int maxiter) dot[1] = sdot.d1; MPI_Allreduce(dot,dotall,2,MPI_DOUBLE,MPI_SUM,world); - if (dotall[0] < update->ftol*update->ftol) return FTOL; + fdotf = 0.0; + if (update->ftol > 0.0) { + if (normstyle == MAX) fdotf = fnorm_max(); // max force norm + else if (normstyle == INF) fdotf = fnorm_inf(); // infinite force norm + else if (normstyle == TWO) fdotf = dotall[0]; // same as fnorm_sqr(), Euclidean force 2-norm + else error->all(FLERR,"Illegal min_modify command"); + if (fdotf < update->ftol*update->ftol) return FTOL; + } // update new search direction h from new f = -Grad(x) and old g // this is Polak-Ribieri formulation diff --git a/src/KOKKOS/min_kokkos.cpp b/src/KOKKOS/min_kokkos.cpp index 79ddbbab84d9728fb203fed0f5e3eace064b6b87..e5f22411f60fb2f4affee20e0df3f49f80101eef 100644 --- a/src/KOKKOS/min_kokkos.cpp +++ b/src/KOKKOS/min_kokkos.cpp @@ -236,7 +236,7 @@ void MinKokkos::setup(int flag) einitial = ecurrent; fnorm2_init = sqrt(fnorm_sqr()); - fnorminf_init = fnorm_inf(); + fnorminf_init = sqrt(fnorm_inf()); } /* ---------------------------------------------------------------------- @@ -345,7 +345,7 @@ void MinKokkos::setup_minimal(int flag) einitial = ecurrent; fnorm2_init = sqrt(fnorm_sqr()); - fnorminf_init = fnorm_inf(); + fnorminf_init = sqrt(fnorm_inf()); } /* ---------------------------------------------------------------------- @@ -620,7 +620,7 @@ double MinKokkos::fnorm_inf() auto l_fvec = fvec; Kokkos::parallel_reduce(nvec, LAMMPS_LAMBDA(int i, double& local_norm_inf) { - local_norm_inf = MAX(fabs(l_fvec[i]),local_norm_inf); + local_norm_inf = MAX(l_fvec[i]*l_fvec[i],local_norm_inf); },Kokkos::Max(local_norm_inf)); } @@ -629,3 +629,28 @@ double MinKokkos::fnorm_inf() return norm_inf; } + +/* ---------------------------------------------------------------------- + compute and return ||force||_max (inf norm per-vector) +------------------------------------------------------------------------- */ + +double MinKokkos::fnorm_max() +{ + + double local_norm_max = 0.0; + { + // local variables for lambda capture + + auto l_fvec = fvec; + + Kokkos::parallel_reduce(nvec, LAMMPS_LAMBDA(int i, double& local_norm_max) { + double fdotf = l_fvec[i]*l_fvec[i]+l_fvec[i+1]*l_fvec[i+1]+l_fvec[i+2]*l_fvec[i+2]; + local_norm_max = MAX(fdotf,local_norm_max); + },Kokkos::Max(local_norm_max)); + } + + double norm_max = 0.0; + MPI_Allreduce(&local_norm_max,&norm_max,1,MPI_DOUBLE,MPI_MAX,world); + + return norm_max; +} diff --git a/src/KOKKOS/min_kokkos.h b/src/KOKKOS/min_kokkos.h index 49cd1d18492385800e330693bd64d2ded47139f4..da61d62d434e7be2c5b19c808f0dfb097b5e1671 100644 --- a/src/KOKKOS/min_kokkos.h +++ b/src/KOKKOS/min_kokkos.h @@ -29,6 +29,7 @@ class MinKokkos : public Min { void run(int); double fnorm_sqr(); double fnorm_inf(); + double fnorm_max(); virtual void init_style() {} virtual void setup_style() = 0; diff --git a/src/KOKKOS/neigh_list_kokkos.cpp b/src/KOKKOS/neigh_list_kokkos.cpp index 2b9c5ef6452fe5c4dbe08c6426fe8f95d98c57a6..afaf0dd1b87abdd4cd3dc17e49995321bb77a59b 100644 --- a/src/KOKKOS/neigh_list_kokkos.cpp +++ b/src/KOKKOS/neigh_list_kokkos.cpp @@ -19,20 +19,20 @@ using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- */ -template -NeighListKokkos::NeighListKokkos(class LAMMPS *lmp):NeighList(lmp) +template +NeighListKokkos::NeighListKokkos(class LAMMPS *lmp):NeighList(lmp) { _stride = 1; maxneighs = 16; kokkos = 1; maxatoms = 0; - execution_space = ExecutionSpaceFromDevice::space; + execution_space = ExecutionSpaceFromDevice::space; }; /* ---------------------------------------------------------------------- */ -template -void NeighListKokkos::grow(int nmax) +template +void NeighListKokkos::grow(int nmax) { // skip if this list is already long enough to store nmax atoms // and maxneighs neighbors @@ -40,14 +40,12 @@ void NeighListKokkos::grow(int nmax) if (nmax <= maxatoms && d_neighbors.extent(1) >= maxneighs) return; maxatoms = nmax; - k_ilist = - DAT::tdual_int_1d("neighlist:ilist",maxatoms); - d_ilist = k_ilist.view(); - d_numneigh = - typename ArrayTypes::t_int_1d("neighlist:numneigh",maxatoms); - d_neighbors = - typename ArrayTypes::t_neighbors_2d("neighlist:neighbors", - maxatoms,maxneighs); + k_ilist = DAT::tdual_int_1d("neighlist:ilist",maxatoms); + d_ilist = k_ilist.view(); + k_numneigh = DAT::tdual_int_1d("neighlist:numneigh",maxatoms); + d_numneigh = k_numneigh.view(); + k_neighbors = DAT::tdual_neighbors_2d("neighlist:neighbors",maxatoms,maxneighs); + d_neighbors = k_neighbors.view(); } /* ---------------------------------------------------------------------- */ diff --git a/src/KOKKOS/neigh_list_kokkos.h b/src/KOKKOS/neigh_list_kokkos.h index 585422c54f3d51a4a0ea2cfbadaa2acdd4a0ec68..f8195a01f4be9f44a4d7a3f10e22ac17ae60d8d0 100644 --- a/src/KOKKOS/neigh_list_kokkos.h +++ b/src/KOKKOS/neigh_list_kokkos.h @@ -59,7 +59,7 @@ class AtomNeighborsConst const int _stride; }; -template +template class NeighListKokkos: public NeighList { int _stride; @@ -67,10 +67,12 @@ public: int maxneighs; void grow(int nmax); - typename ArrayTypes::t_neighbors_2d d_neighbors; - typename DAT::tdual_int_1d k_ilist; // local indices of I atoms - typename ArrayTypes::t_int_1d d_ilist; - typename ArrayTypes::t_int_1d d_numneigh; // # of J neighs for each I + DAT::tdual_neighbors_2d k_neighbors; + typename ArrayTypes::t_neighbors_2d d_neighbors; + DAT::tdual_int_1d k_ilist; // local indices of I atoms + typename ArrayTypes::t_int_1d d_ilist; + DAT::tdual_int_1d k_numneigh; // # of J neighs for each I + typename ArrayTypes::t_int_1d d_numneigh; NeighListKokkos(class LAMMPS *lmp); @@ -82,8 +84,8 @@ public: KOKKOS_INLINE_FUNCTION static AtomNeighborsConst static_neighbors_const(int i, - typename ArrayTypes::t_neighbors_2d_const const& d_neighbors, - typename ArrayTypes::t_int_1d_const const& d_numneigh) { + typename ArrayTypes::t_neighbors_2d_const const& d_neighbors, + typename ArrayTypes::t_int_1d_const const& d_numneigh) { return AtomNeighborsConst(&d_neighbors(i,0),d_numneigh(i), &d_neighbors(i,1)-&d_neighbors(i,0)); } diff --git a/src/KOKKOS/npair_copy_kokkos.cpp b/src/KOKKOS/npair_copy_kokkos.cpp index 0ce0f4d3ff9cd797157bd25aa5c68dbea733e582..016d68400f3cbdac176e1794961975fdcee7bda1 100644 --- a/src/KOKKOS/npair_copy_kokkos.cpp +++ b/src/KOKKOS/npair_copy_kokkos.cpp @@ -13,6 +13,8 @@ #include "npair_copy_kokkos.h" #include "neigh_list_kokkos.h" +#include "my_page.h" +#include "error.h" using namespace LAMMPS_NS; @@ -30,6 +32,24 @@ void NPairCopyKokkos::build(NeighList *list) { NeighList *listcopy = list->listcopy; + if (list->kokkos) { + if (!listcopy->kokkos) + error->all(FLERR,"Cannot copy non-Kokkos neighbor list to Kokkos neighbor list"); + copy_to_kokkos(list); + } else { + if (!listcopy->kokkos) + error->all(FLERR,"Missing Kokkos neighbor list for copy"); + copy_to_cpu(list); + } +} + +/* ---------------------------------------------------------------------- */ + +template +void NPairCopyKokkos::copy_to_kokkos(NeighList *list) +{ + NeighList *listcopy = list->listcopy; + list->inum = listcopy->inum; list->gnum = listcopy->gnum; list->ilist = listcopy->ilist; @@ -44,6 +64,62 @@ void NPairCopyKokkos::build(NeighList *list) list_kk->d_neighbors = listcopy_kk->d_neighbors; } +/* ---------------------------------------------------------------------- */ + +template +void NPairCopyKokkos::copy_to_cpu(NeighList *list) +{ + NeighList *listcopy = list->listcopy; + NeighListKokkos* listcopy_kk = (NeighListKokkos*) listcopy; + + listcopy_kk->k_ilist.template sync(); + listcopy_kk->k_numneigh.template sync(); + listcopy_kk->k_neighbors.template sync(); + + int inum = listcopy->inum; + int gnum = listcopy->gnum; + int inum_all = inum; + if (list->ghost) inum_all += gnum; + auto h_ilist = listcopy_kk->k_ilist.h_view; + auto h_numneigh = listcopy_kk->k_numneigh.h_view; + auto h_neighbors = listcopy_kk->k_neighbors.h_view; + + list->inum = inum; + list->gnum = gnum; + auto ilist = list->ilist; + auto numneigh = list->numneigh; + + // Kokkos neighbor data is stored differently than regular CPU, + // must copy element by element + + int *neighptr; + int **firstneigh = list->firstneigh; + MyPage *ipage = list->ipage; + ipage->reset(); + + for (int ii = 0; ii < inum_all; ii++) { + neighptr = ipage->vget(); + + const int i = h_ilist[ii]; + ilist[ii] = i; + + // loop over Kokkos neighbor list + + const int jnum = h_numneigh[i]; + numneigh[i] = jnum; + + for (int jj = 0; jj < jnum; jj++) { + const int joriginal = h_neighbors(i,jj); + neighptr[jj] = joriginal; + } + + firstneigh[i] = neighptr; + ipage->vgot(jnum); + if (ipage->status()) + error->one(FLERR,"Neighbor list overflow, boost neigh_modify one"); + } +} + namespace LAMMPS_NS { template class NPairCopyKokkos; #ifdef KOKKOS_ENABLE_CUDA diff --git a/src/KOKKOS/npair_copy_kokkos.h b/src/KOKKOS/npair_copy_kokkos.h index 84eb10b204122d03ff612209b39070fff3cb1a8e..4bbb2749e55b953de6ac3635d6d29dc92a9275b9 100644 --- a/src/KOKKOS/npair_copy_kokkos.h +++ b/src/KOKKOS/npair_copy_kokkos.h @@ -36,6 +36,9 @@ class NPairCopyKokkos : public NPair { NPairCopyKokkos(class LAMMPS *); ~NPairCopyKokkos() {} void build(class NeighList *); + private: + void copy_to_kokkos(class NeighList *); + void copy_to_cpu(class NeighList *); }; } diff --git a/src/KOKKOS/npair_halffull_kokkos.cpp b/src/KOKKOS/npair_halffull_kokkos.cpp index cc8f663ef23fe37080eb88b284ecc0204f6b52c1..754a5ca0101a93fb8d3fdcafd4d107f8ed2859e9 100644 --- a/src/KOKKOS/npair_halffull_kokkos.cpp +++ b/src/KOKKOS/npair_halffull_kokkos.cpp @@ -68,12 +68,14 @@ void NPairHalffullKokkos::build(NeighList *list) copymode = 1; Kokkos::parallel_for(Kokkos::RangePolicy(0,inum_full),*this); + copymode = 0; list->inum = k_list_full->inum; list->gnum = k_list_full->gnum; - k_list->k_ilist.template modify(); - copymode = 0; + k_list->k_ilist.template modify(); + k_list->k_numneigh.template modify(); + k_list->k_neighbors.template modify(); } template diff --git a/src/KOKKOS/npair_kokkos.cpp b/src/KOKKOS/npair_kokkos.cpp index 0de8d5173df56fa55fbd402df44c506773fdfcb0..87d0366353131a097b96ca139b81bdf7725bc21b 100644 --- a/src/KOKKOS/npair_kokkos.cpp +++ b/src/KOKKOS/npair_kokkos.cpp @@ -97,7 +97,7 @@ void NPairKokkos::copy_stencil_info() NPair::copy_stencil_info(); nstencil = ns->nstencil; - if (neighbor->last_setup_bins == update->ntimestep) { + if (ns->last_stencil == update->ntimestep) { // copy stencil to device as it may have changed int maxstencil = ns->get_maxstencil(); @@ -219,7 +219,7 @@ void NPairKokkos::build(NeighList *list_) #endif if (GHOST) { - NPairKokkosBuildFunctorGhost f(data,atoms_per_bin * 5 * sizeof(X_FLOAT) * factor); + NPairKokkosBuildFunctorGhost f(data); Kokkos::parallel_for(nall, f); } else { if (newton_pair) { @@ -232,7 +232,10 @@ void NPairKokkos::build(NeighList *list_) if (team_size <= team_size_max) { Kokkos::TeamPolicy config((mbins+factor-1)/factor,team_size); Kokkos::parallel_for(config, f); - } else Kokkos::parallel_for(nall, f); // fall back to flat method + } else { // fall back to flat method + f.sharedsize = 0; + Kokkos::parallel_for(nall, f); + } } else Kokkos::parallel_for(nall, f); #else @@ -247,7 +250,10 @@ void NPairKokkos::build(NeighList *list_) if (team_size <= team_size_max) { Kokkos::TeamPolicy config((mbins+factor-1)/factor,team_size); Kokkos::parallel_for(config, f); - } else Kokkos::parallel_for(nall, f); // fall back to flat method + } else { // fall back to flat method + f.sharedsize = 0; + Kokkos::parallel_for(nall, f); + } } else Kokkos::parallel_for(nall, f); #else @@ -264,7 +270,10 @@ void NPairKokkos::build(NeighList *list_) if (team_size <= team_size_max) { Kokkos::TeamPolicy config((mbins+factor-1)/factor,team_size); Kokkos::parallel_for(config, f); - } else Kokkos::parallel_for(nall, f); // fall back to flat method + } else { // fall back to flat method + f.sharedsize = 0; + Kokkos::parallel_for(nall, f); + } } else Kokkos::parallel_for(nall, f); #else @@ -292,7 +301,8 @@ void NPairKokkos::build(NeighList *list_) if(data.h_resize()) { list->maxneighs = data.h_new_maxneighs() * 1.2; - list->d_neighbors = typename ArrayTypes::t_neighbors_2d("neighbors", list->d_neighbors.extent(0), list->maxneighs); + list->k_neighbors = DAT::tdual_neighbors_2d("neighbors", list->d_neighbors.extent(0), list->maxneighs); + list->d_neighbors = list->k_neighbors.template view(); data.neigh_list.d_neighbors = list->d_neighbors; data.neigh_list.maxneighs = list->maxneighs; } @@ -307,6 +317,8 @@ void NPairKokkos::build(NeighList *list_) } list->k_ilist.template modify(); + list->k_numneigh.template modify(); + list->k_neighbors.template modify(); } /* ---------------------------------------------------------------------- */ diff --git a/src/KOKKOS/npair_kokkos.h b/src/KOKKOS/npair_kokkos.h index 7650bf33507309aa97ef3bf64485141489a1f3d0..6ed1debf7c29abf649d85c05b2dc867e9785122c 100644 --- a/src/KOKKOS/npair_kokkos.h +++ b/src/KOKKOS/npair_kokkos.h @@ -379,11 +379,11 @@ struct NPairKokkosBuildFunctor { typedef DeviceType device_type; const NeighborKokkosExecute c; - const size_t sharedsize; + size_t sharedsize; NPairKokkosBuildFunctor(const NeighborKokkosExecute &_c, - const size_t _sharedsize):c(_c), - sharedsize(_sharedsize) {}; + size_t _sharedsize):c(_c), + sharedsize(_sharedsize) {} KOKKOS_INLINE_FUNCTION void operator() (const int & i) const { @@ -395,7 +395,7 @@ struct NPairKokkosBuildFunctor { void operator() (typename Kokkos::TeamPolicy::member_type dev) const { c.template build_ItemCuda(dev); } - size_t shmem_size(const int team_size) const { (void) team_size; return sharedsize; } + size_t team_shmem_size(const int team_size) const { (void) team_size; return sharedsize; } #endif }; @@ -404,11 +404,11 @@ struct NPairKokkosBuildFunctor { typedef LMPHostType device_type; const NeighborKokkosExecute c; - const size_t sharedsize; + size_t sharedsize; NPairKokkosBuildFunctor(const NeighborKokkosExecute &_c, - const size_t _sharedsize):c(_c), - sharedsize(_sharedsize) {}; + size_t _sharedsize):c(_c), + sharedsize(_sharedsize) {} KOKKOS_INLINE_FUNCTION void operator() (const int & i) const { @@ -423,11 +423,8 @@ struct NPairKokkosBuildFunctorGhost { typedef DeviceType device_type; const NeighborKokkosExecute c; - const size_t sharedsize; - NPairKokkosBuildFunctorGhost(const NeighborKokkosExecute &_c, - const size_t _sharedsize):c(_c), - sharedsize(_sharedsize) {}; + NPairKokkosBuildFunctorGhost(const NeighborKokkosExecute &_c):c(_c) {} KOKKOS_INLINE_FUNCTION void operator() (const int & i) const { @@ -440,10 +437,10 @@ struct NPairKokkosBuildFunctorSize { typedef DeviceType device_type; const NeighborKokkosExecute c; - const size_t sharedsize; + size_t sharedsize; NPairKokkosBuildFunctorSize(const NeighborKokkosExecute &_c, - const size_t _sharedsize): c(_c), sharedsize(_sharedsize) {}; + size_t _sharedsize): c(_c), sharedsize(_sharedsize) {} KOKKOS_INLINE_FUNCTION void operator() (const int & i) const { @@ -455,7 +452,7 @@ struct NPairKokkosBuildFunctorSize { void operator() (typename Kokkos::TeamPolicy::member_type dev) const { c.template build_ItemSizeCuda(dev); } - size_t shmem_size(const int team_size) const { (void) team_size; return sharedsize; } + size_t team_shmem_size(const int team_size) const { (void) team_size; return sharedsize; } #endif }; @@ -464,10 +461,10 @@ struct NPairKokkosBuildFunctorSize { typedef LMPHostType device_type; const NeighborKokkosExecute c; - const size_t sharedsize; + size_t sharedsize; NPairKokkosBuildFunctorSize(const NeighborKokkosExecute &_c, - const size_t _sharedsize): c(_c), sharedsize(_sharedsize) {}; + size_t _sharedsize): c(_c), sharedsize(_sharedsize) {} KOKKOS_INLINE_FUNCTION void operator() (const int & i) const { diff --git a/src/KOKKOS/npair_ssa_kokkos.cpp b/src/KOKKOS/npair_ssa_kokkos.cpp index f9708e5fe823fa38733d2542b7fb9be10bd0f918..b6d03e1445e0a2a3122f9332d7faff955ffe028d 100644 --- a/src/KOKKOS/npair_ssa_kokkos.cpp +++ b/src/KOKKOS/npair_ssa_kokkos.cpp @@ -519,6 +519,8 @@ fprintf(stdout, "Fina%03d %6d inum %6d gnum, total used %6d, allocated %6d\n" #endif list->k_ilist.template modify(); + list->k_numneigh.template modify(); + list->k_neighbors.template modify(); } diff --git a/src/KOKKOS/pair_buck_coul_cut_kokkos.cpp b/src/KOKKOS/pair_buck_coul_cut_kokkos.cpp index b28bbebbebf113ac0bb6e7ed489ac4dc74636612..46c5ee82cb9ec83d19aac41f1f4c705dc4b089f1 100644 --- a/src/KOKKOS/pair_buck_coul_cut_kokkos.cpp +++ b/src/KOKKOS/pair_buck_coul_cut_kokkos.cpp @@ -307,9 +307,6 @@ void PairBuckCoulCutKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with buck/coul/cut/kk"); } diff --git a/src/KOKKOS/pair_buck_kokkos.cpp b/src/KOKKOS/pair_buck_kokkos.cpp index 990c9e94a62642d987d636002b9ae2df3ad6a8cd..04ebd6608b65792f16458fc0a85efc7854c9d127 100644 --- a/src/KOKKOS/pair_buck_kokkos.cpp +++ b/src/KOKKOS/pair_buck_kokkos.cpp @@ -229,9 +229,6 @@ void PairBuckKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with buck/kk"); } diff --git a/src/KOKKOS/pair_buck_kokkos.h b/src/KOKKOS/pair_buck_kokkos.h index 2691f10929bafefac91fb80f5cfaa1f045c6f5aa..815b5b2deef6fbc0cc61da6331976df7c428ff1f 100644 --- a/src/KOKKOS/pair_buck_kokkos.h +++ b/src/KOKKOS/pair_buck_kokkos.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS { template class PairBuckKokkos : public PairBuck { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; typedef ArrayTypes AT; @@ -98,15 +98,12 @@ class PairBuckKokkos : public PairBuck { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist(PairBuckKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairBuckKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairBuckKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairBuckKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute(PairBuckKokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairBuckKokkos*); }; diff --git a/src/KOKKOS/pair_coul_debye_kokkos.cpp b/src/KOKKOS/pair_coul_debye_kokkos.cpp index b212bdc53ab4c15ed18274ab921b6cb2d4bf75f6..a544a5fb8dc528ae1dc61852430b4c51d8e75d1e 100644 --- a/src/KOKKOS/pair_coul_debye_kokkos.cpp +++ b/src/KOKKOS/pair_coul_debye_kokkos.cpp @@ -276,9 +276,6 @@ void PairCoulDebyeKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with coul/debye/kk"); } diff --git a/src/KOKKOS/pair_kokkos.h b/src/KOKKOS/pair_kokkos.h index 54035c54ebc2ffcb54b95e70dd4f564a2440c362..c28c8581138fb96b0d5f8c31ef0994adf2cd88da 100644 --- a/src/KOKKOS/pair_kokkos.h +++ b/src/KOKKOS/pair_kokkos.h @@ -87,6 +87,8 @@ struct PairComputeFunctor { c(*c_ptr),list(*list_ptr) { // allocate duplicated memory f = c.f; + d_eatom = c.d_eatom; + d_vatom = c.d_vatom; dup_f = Kokkos::Experimental::create_scatter_view::value >(c.f); dup_eatom = Kokkos::Experimental::create_scatter_view::value >(c.d_eatom); dup_vatom = Kokkos::Experimental::create_scatter_view::value >(c.d_vatom); @@ -422,15 +424,15 @@ struct PairComputeFunctor { F_FLOAT evdwl = 0.0; if (c.eflag) { evdwl = factor_lj * c.template compute_evdwl(rsq,i,j,itype,jtype); - fev.evdwl += 0.5*evdwl; + fev_tmp.evdwl += 0.5*evdwl; } if (c.vflag_either) { - fev.v[0] += 0.5*delx*delx*fpair; - fev.v[1] += 0.5*dely*dely*fpair; - fev.v[2] += 0.5*delz*delz*fpair; - fev.v[3] += 0.5*delx*dely*fpair; - fev.v[4] += 0.5*delx*delz*fpair; - fev.v[5] += 0.5*dely*delz*fpair; + fev_tmp.v[0] += 0.5*delx*delx*fpair; + fev_tmp.v[1] += 0.5*dely*dely*fpair; + fev_tmp.v[2] += 0.5*delz*delz*fpair; + fev_tmp.v[3] += 0.5*delx*dely*fpair; + fev_tmp.v[4] += 0.5*delx*delz*fpair; + fev_tmp.v[5] += 0.5*dely*delz*fpair; } } },fev); @@ -479,8 +481,8 @@ struct PairComputeFunctor { const int inum = team.league_size(); const int atoms_per_team = team.team_size(); - int firstatom = team.league_rank()*atoms_per_team; - int lastatom = firstatom + atoms_per_team < inum ? firstatom + atoms_per_team : inum; + const int firstatom = team.league_rank()*atoms_per_team; + const int lastatom = firstatom + atoms_per_team < inum ? firstatom + atoms_per_team : inum; Kokkos::parallel_for(Kokkos::TeamThreadRange(team, firstatom, lastatom), [&] (const int &ii) { const int i = list.d_ilist[ii]; @@ -497,6 +499,7 @@ struct PairComputeFunctor { Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team,jnum), [&] (const int jj, FEV_FLOAT& fev_tmp) { + int j = neighbors_i(jj); const F_FLOAT factor_lj = c.special_lj[sbmask(j)]; const F_FLOAT factor_coul = c.special_coul[sbmask(j)]; @@ -516,29 +519,29 @@ struct PairComputeFunctor { if(rsq < (STACKPARAMS?c.m_cut_coulsq[itype][jtype]:c.d_cut_coulsq(itype,jtype))) fpair+=c.template compute_fcoul(rsq,i,j,itype,jtype,factor_coul,qtmp); - fev.f[0] += delx*fpair; - fev.f[1] += dely*fpair; - fev.f[2] += delz*fpair; + fev_tmp.f[0] += delx*fpair; + fev_tmp.f[1] += dely*fpair; + fev_tmp.f[2] += delz*fpair; F_FLOAT evdwl = 0.0; F_FLOAT ecoul = 0.0; if (c.eflag) { if(rsq < (STACKPARAMS?c.m_cut_ljsq[itype][jtype]:c.d_cut_ljsq(itype,jtype))) { evdwl = factor_lj * c.template compute_evdwl(rsq,i,j,itype,jtype); - ev.evdwl += 0.5*evdwl; + fev_tmp.evdwl += 0.5*evdwl; } if(rsq < (STACKPARAMS?c.m_cut_coulsq[itype][jtype]:c.d_cut_coulsq(itype,jtype))) { ecoul = c.template compute_ecoul(rsq,i,j,itype,jtype,factor_coul,qtmp); - ev.ecoul += 0.5*ecoul; + fev_tmp.ecoul += 0.5*ecoul; } } - if (c.vflag) { - fev.v[0] += 0.5*delx*delx*fpair; - fev.v[1] += 0.5*dely*dely*fpair; - fev.v[2] += 0.5*delz*delz*fpair; - fev.v[3] += 0.5*delx*dely*fpair; - fev.v[4] += 0.5*delx*delz*fpair; - fev.v[5] += 0.5*dely*delz*fpair; + if (c.vflag_either) { + fev_tmp.v[0] += 0.5*delx*delx*fpair; + fev_tmp.v[1] += 0.5*dely*dely*fpair; + fev_tmp.v[2] += 0.5*delz*delz*fpair; + fev_tmp.v[3] += 0.5*delx*dely*fpair; + fev_tmp.v[4] += 0.5*delx*delz*fpair; + fev_tmp.v[5] += 0.5*dely*delz*fpair; } } },fev); @@ -690,148 +693,6 @@ struct PairComputeFunctor { } }; -template -struct PairComputeFunctor { - typedef typename PairStyle::device_type device_type ; - typedef EV_FLOAT value_type; - - PairStyle c; - NeighListKokkos list; - - PairComputeFunctor(PairStyle* c_ptr, - NeighListKokkos* list_ptr): - c(*c_ptr),list(*list_ptr) {}; - ~PairComputeFunctor() {c.cleanup_copy();list.copymode = 1;}; - - KOKKOS_INLINE_FUNCTION int sbmask(const int& j) const { - return j >> SBBITS & 3; - } - - - void contribute() {} - - template - KOKKOS_FUNCTION - EV_FLOAT compute_item(const int& ii, - const NeighListKokkos &list, const NoCoulTag&) const { - (void) list; - EV_FLOAT ev; - const int i = ii;//list.d_ilist[ii]; - const X_FLOAT xtmp = c.x(i,0); - const X_FLOAT ytmp = c.x(i,1); - const X_FLOAT ztmp = c.x(i,2); - const int itype = c.type(i); - - //const AtomNeighborsConst neighbors_i = list.get_neighbors_const(i); - const int jnum = c.nall; - - F_FLOAT fxtmp = 0.0; - F_FLOAT fytmp = 0.0; - F_FLOAT fztmp = 0.0; - - for (int jj = 0; jj < jnum; jj++) { - int j = jj;//neighbors_i(jj); - if(i==j) continue; - const F_FLOAT factor_lj = c.special_lj[sbmask(j)]; - j &= NEIGHMASK; - const X_FLOAT delx = xtmp - c.x(j,0); - const X_FLOAT dely = ytmp - c.x(j,1); - const X_FLOAT delz = ztmp - c.x(j,2); - const int jtype = c.type(j); - const F_FLOAT rsq = delx*delx + dely*dely + delz*delz; - - if(rsq < (STACKPARAMS?c.m_cutsq[itype][jtype]:c.d_cutsq(itype,jtype))) { - - const F_FLOAT fpair = factor_lj*c.template compute_fpair(rsq,i,j,itype,jtype); - fxtmp += delx*fpair; - fytmp += dely*fpair; - fztmp += delz*fpair; - - if (EVFLAG) { - F_FLOAT evdwl = 0.0; - if (c.eflag) { - evdwl = 0.5* - factor_lj * c.template compute_evdwl(rsq,i,j,itype,jtype); - ev.evdwl += evdwl; - } - - if (c.vflag_either || c.eflag_atom) ev_tally(ev,i,j,evdwl,fpair,delx,dely,delz); - } - } - } - - c.f(i,0) += fxtmp; - c.f(i,1) += fytmp; - c.f(i,2) += fztmp; - - return ev; - } - - KOKKOS_INLINE_FUNCTION - void ev_tally(EV_FLOAT &ev, const int &i, const int &j, - const F_FLOAT &epair, const F_FLOAT &fpair, const F_FLOAT &delx, - const F_FLOAT &dely, const F_FLOAT &delz) const - { - const int EFLAG = c.eflag; - const int VFLAG = c.vflag_either; - - if (EFLAG) { - if (c.eflag_atom) { - const E_FLOAT epairhalf = 0.5 * epair; - if (i < c.nlocal) c.d_eatom[i] += epairhalf; - if (j < c.nlocal) c.d_eatom[j] += epairhalf; - } - } - - if (VFLAG) { - const E_FLOAT v0 = delx*delx*fpair; - const E_FLOAT v1 = dely*dely*fpair; - const E_FLOAT v2 = delz*delz*fpair; - const E_FLOAT v3 = delx*dely*fpair; - const E_FLOAT v4 = delx*delz*fpair; - const E_FLOAT v5 = dely*delz*fpair; - - if (c.vflag_global) { - ev.v[0] += 0.5*v0; - ev.v[1] += 0.5*v1; - ev.v[2] += 0.5*v2; - ev.v[3] += 0.5*v3; - ev.v[4] += 0.5*v4; - ev.v[5] += 0.5*v5; - } - - if (c.vflag_atom) { - if (i < c.nlocal) { - c.d_vatom(i,0) += 0.5*v0; - c.d_vatom(i,1) += 0.5*v1; - c.d_vatom(i,2) += 0.5*v2; - c.d_vatom(i,3) += 0.5*v3; - c.d_vatom(i,4) += 0.5*v4; - c.d_vatom(i,5) += 0.5*v5; - } - } - } - } - - KOKKOS_INLINE_FUNCTION - void operator()(const int i) const { - compute_item<0,0>(i,list,typename DoCoul::type()); - } - - KOKKOS_INLINE_FUNCTION - void operator()(const int i, value_type &energy_virial) const { - energy_virial += compute_item<1,0>(i,list,typename DoCoul::type()); - } - - KOKKOS_INLINE_FUNCTION - void operator()(const typename Kokkos::TeamPolicy<>::member_type& team) const - {} - - KOKKOS_INLINE_FUNCTION - void operator()(const typename Kokkos::TeamPolicy<>::member_type& team, value_type &energy_virial) const - {} - -}; // Filter out Neighflags which are not supported for PairStyle // The enable_if clause will invalidate the last parameter of the function, so that @@ -867,7 +728,7 @@ int GetTeamSize(FunctorStyle& functor, int inum, int reduce_flag, int team_size, return team_size; } -// Submit ParallelFor for NEIGHFLAG=HALF,HALFTHREAD,FULL,N2 +// Submit ParallelFor for NEIGHFLAG=HALF,HALFTHREAD,FULL template EV_FLOAT pair_compute_neighlist (PairStyle* fpair, typename std::enable_if<(NEIGHFLAG&PairStyle::EnabledNeighFlags) != 0, NeighListKokkos*>::type list) { EV_FLOAT ev; @@ -918,8 +779,6 @@ EV_FLOAT pair_compute (PairStyle* fpair, NeighListKokkos (fpair,list); } else if (fpair->neighflag == HALF) { ev = pair_compute_neighlist (fpair,list); - } else if (fpair->neighflag == N2) { - ev = pair_compute_neighlist (fpair,list); } return ev; } diff --git a/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.cpp b/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.cpp index 37485c77f0da2a787611b12ee8f1917739682427..b8c72d7b888f70ae319090c7a7c25ade3e1e179b 100644 --- a/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.cpp +++ b/src/KOKKOS/pair_lj_class2_coul_cut_kokkos.cpp @@ -309,9 +309,6 @@ void PairLJClass2CoulCutKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/class2/coul/cut/kk"); } diff --git a/src/KOKKOS/pair_lj_class2_kokkos.cpp b/src/KOKKOS/pair_lj_class2_kokkos.cpp index dd99ea9ab5580afadcc434f10b640bc10aabfbf5..5bac4c81400825b3119930eadbd4c7088d617dca 100644 --- a/src/KOKKOS/pair_lj_class2_kokkos.cpp +++ b/src/KOKKOS/pair_lj_class2_kokkos.cpp @@ -247,9 +247,6 @@ void PairLJClass2Kokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/class2/kk"); } diff --git a/src/KOKKOS/pair_lj_class2_kokkos.h b/src/KOKKOS/pair_lj_class2_kokkos.h index ae0676c8a598ee928e217ecced709c40bcdbff8c..4bfc44ee6f9cfc2670dd17c9ab540becc79368a7 100644 --- a/src/KOKKOS/pair_lj_class2_kokkos.h +++ b/src/KOKKOS/pair_lj_class2_kokkos.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS { template class PairLJClass2Kokkos : public PairLJClass2 { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; typedef ArrayTypes AT; @@ -104,15 +104,12 @@ class PairLJClass2Kokkos : public PairLJClass2 { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist(PairLJClass2Kokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJClass2Kokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJClass2Kokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJClass2Kokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute(PairLJClass2Kokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairLJClass2Kokkos*); }; diff --git a/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.cpp b/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.cpp index 36fd960c981e6da358269b90d57c8259816bf4b1..e2b57e8df799428a4f21af828e0acbd3688fd828 100644 --- a/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.cpp +++ b/src/KOKKOS/pair_lj_cut_coul_cut_kokkos.cpp @@ -300,9 +300,6 @@ void PairLJCutCoulCutKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/coul/cut/kk"); } diff --git a/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp b/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp index 3810a0140b528e5ae97b9b6a17b9f182bb6f2dc5..bc8369fd6514eca560e8c50551b74550e66b8146 100644 --- a/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp +++ b/src/KOKKOS/pair_lj_cut_coul_debye_kokkos.cpp @@ -329,9 +329,6 @@ void PairLJCutCoulDebyeKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/coul/debye/kk"); } diff --git a/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.cpp b/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.cpp index b8818b109815e05cd39482e3fa86a180bd5fb92f..feb6a5813658ca3046e294df14fe7750e7776016 100644 --- a/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.cpp +++ b/src/KOKKOS/pair_lj_cut_coul_dsf_kokkos.cpp @@ -322,9 +322,6 @@ void PairLJCutCoulDSFKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/coul/cut/kk"); } diff --git a/src/KOKKOS/pair_lj_cut_kokkos.cpp b/src/KOKKOS/pair_lj_cut_kokkos.cpp index a4b2e90e07026df2b0bead2b4d1411c6d7b36ce0..5eb0a5b91a371d2b1c715147526606b2e3222020 100644 --- a/src/KOKKOS/pair_lj_cut_kokkos.cpp +++ b/src/KOKKOS/pair_lj_cut_kokkos.cpp @@ -241,9 +241,6 @@ void PairLJCutKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/kk"); } diff --git a/src/KOKKOS/pair_lj_cut_kokkos.h b/src/KOKKOS/pair_lj_cut_kokkos.h index 7e2b8fd91a86fbb5d6aff9f23e32df3ea3a25e67..122aef5a1e489ec684201a624f8b3d8046104aee 100644 --- a/src/KOKKOS/pair_lj_cut_kokkos.h +++ b/src/KOKKOS/pair_lj_cut_kokkos.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS { template class PairLJCutKokkos : public PairLJCut { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; typedef ArrayTypes AT; @@ -99,15 +99,12 @@ class PairLJCutKokkos : public PairLJCut { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist(PairLJCutKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJCutKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJCutKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJCutKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute(PairLJCutKokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairLJCutKokkos*); }; diff --git a/src/KOKKOS/pair_lj_expand_kokkos.cpp b/src/KOKKOS/pair_lj_expand_kokkos.cpp index 496a7a76accb3288fb12da5807aabd955e89dcae..0409eda40141ec716a44a891ab6dfc8ab6e88e1f 100644 --- a/src/KOKKOS/pair_lj_expand_kokkos.cpp +++ b/src/KOKKOS/pair_lj_expand_kokkos.cpp @@ -249,9 +249,6 @@ void PairLJExpandKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/expand/kk"); } diff --git a/src/KOKKOS/pair_lj_expand_kokkos.h b/src/KOKKOS/pair_lj_expand_kokkos.h index 093031f7d71995a96c691b14097c2f3802c76237..bdd0bf5870222a81b5a2090b09f9a315f17c8d2d 100644 --- a/src/KOKKOS/pair_lj_expand_kokkos.h +++ b/src/KOKKOS/pair_lj_expand_kokkos.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS { template class PairLJExpandKokkos : public PairLJExpand { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; typedef ArrayTypes AT; @@ -105,15 +105,12 @@ class PairLJExpandKokkos : public PairLJExpand { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist(PairLJExpandKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJExpandKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJExpandKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJExpandKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute(PairLJExpandKokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairLJExpandKokkos*); }; diff --git a/src/KOKKOS/pair_lj_sdk_kokkos.cpp b/src/KOKKOS/pair_lj_sdk_kokkos.cpp index 645f8a9159a13546fb32f6c4c21d934c2c2d1126..70d04385d0a7d7fd99dc8e6444141abc5260cfc5 100644 --- a/src/KOKKOS/pair_lj_sdk_kokkos.cpp +++ b/src/KOKKOS/pair_lj_sdk_kokkos.cpp @@ -279,9 +279,6 @@ void PairLJSDKKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/sdk/kk"); } diff --git a/src/KOKKOS/pair_lj_sdk_kokkos.h b/src/KOKKOS/pair_lj_sdk_kokkos.h index f313c4342f994272ed2026bfce745052a0e76e48..db71dc46776c544a7e6adbd7a86c6820bd176173 100644 --- a/src/KOKKOS/pair_lj_sdk_kokkos.h +++ b/src/KOKKOS/pair_lj_sdk_kokkos.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS { template class PairLJSDKKokkos : public PairLJSDK { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; typedef ArrayTypes AT; @@ -100,15 +100,12 @@ class PairLJSDKKokkos : public PairLJSDK { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist(PairLJSDKKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJSDKKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairLJSDKKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairLJSDKKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute(PairLJSDKKokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairLJSDKKokkos*); }; diff --git a/src/KOKKOS/pair_morse_kokkos.cpp b/src/KOKKOS/pair_morse_kokkos.cpp index 4e88c72518d24447c4b5698559765d3093d9c019..16d4d8a0a324004f49d103abf6007f429ed576e0 100644 --- a/src/KOKKOS/pair_morse_kokkos.cpp +++ b/src/KOKKOS/pair_morse_kokkos.cpp @@ -258,9 +258,6 @@ void PairMorseKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with morse/kk"); } diff --git a/src/KOKKOS/pair_morse_kokkos.h b/src/KOKKOS/pair_morse_kokkos.h index f9cce941a567b3ccf3185d438aa55d65a0c25334..ff3c5524373f0962c1938d6810bb8f6e68dc9cfe 100644 --- a/src/KOKKOS/pair_morse_kokkos.h +++ b/src/KOKKOS/pair_morse_kokkos.h @@ -31,7 +31,7 @@ namespace LAMMPS_NS { template class PairMorseKokkos : public PairMorse { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; PairMorseKokkos(class LAMMPS *); @@ -98,15 +98,12 @@ class PairMorseKokkos : public PairMorse { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist(PairMorseKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairMorseKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist(PairMorseKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist(PairMorseKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute(PairMorseKokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairMorseKokkos*); }; diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index bec3f2e655850ccca34d71d6908d1fc76f11a2c5..5326e926e5433a5ca583982ce58e40a1a465478c 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -152,16 +152,12 @@ void PairReaxCKokkos::init_style() neighbor->requests[irequest]-> kokkos_device = std::is_same::value; - if (neighflag == FULL) { - neighbor->requests[irequest]->full = 1; - neighbor->requests[irequest]->half = 0; - neighbor->requests[irequest]->ghost = 1; - } else if (neighflag == HALF || neighflag == HALFTHREAD) { + if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; neighbor->requests[irequest]->ghost = 1; } else { - error->all(FLERR,"Cannot use chosen neighbor list style with reax/c/kk"); + error->all(FLERR,"Must use half neighbor list with pair style reax/c/kk"); } allocate(); @@ -665,8 +661,6 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) eflag = eflag_in; vflag = vflag_in; - if (neighflag == FULL) no_virial_fdotr_compute = 1; - ev_init(eflag,vflag); atomKK->sync(execution_space,datamask_read); @@ -743,11 +737,6 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,inum),*this,ev); else Kokkos::parallel_for(Kokkos::RangePolicy >(0,inum),*this); - } else if (neighflag == FULL) { - if (evflag) - Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,inum),*this,ev); - else - Kokkos::parallel_for(Kokkos::RangePolicy >(0,inum),*this); } } else { if (neighflag == HALF) { @@ -760,11 +749,6 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,inum),*this,ev); else Kokkos::parallel_for(Kokkos::RangePolicy >(0,inum),*this); - } else if (neighflag == FULL) { - if (evflag) - Kokkos::parallel_reduce(Kokkos::RangePolicy >(0,inum),*this,ev); - else - Kokkos::parallel_for(Kokkos::RangePolicy >(0,inum),*this); } } ev_all += ev; @@ -809,8 +793,6 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); else if (neighflag == HALFTHREAD) Kokkos::parallel_for(Kokkos::RangePolicy >(0,ignum),*this); - else //(neighflag == FULL) - Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); k_resize_bo.modify(); k_resize_bo.sync(); @@ -853,11 +835,7 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) Kokkos::Experimental::contribute(d_total_bo, dup_total_bo); // needed in BondOrder1 // Bond order - if (neighflag == HALF) { - Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); - } else if (neighflag == HALFTHREAD) { - Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); - } + Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); Kokkos::parallel_for(Kokkos::RangePolicy(0,ignum),*this); @@ -1044,14 +1022,14 @@ void PairReaxCKokkos::compute(int eflag_in, int vflag_in) // free duplicated memory if (need_dup) { dup_f = decltype(dup_f)(); + dup_eatom = decltype(dup_eatom)(); + dup_vatom = decltype(dup_vatom)(); dup_dDeltap_self = decltype(dup_dDeltap_self)(); dup_total_bo = decltype(dup_total_bo)(); dup_CdDelta = decltype(dup_CdDelta)(); //dup_Cdbo = decltype(dup_Cdbo)(); //dup_Cdbopi = decltype(dup_Cdbopi)(); //dup_Cdbopi2 = decltype(dup_Cdbopi2)(); - dup_eatom = decltype(dup_eatom)(); - dup_vatom = decltype(dup_vatom)(); } } @@ -1119,18 +1097,16 @@ void PairReaxCKokkos::operator()(PairReaxComputeLJCoulomb= nlocal) { - if (itag > jtag) { - if ((itag+jtag) % 2 == 0) continue; - } else if (itag < jtag) { - if ((itag+jtag) % 2 == 1) continue; - } else { - if (x(j,2) < ztmp) continue; - if (x(j,2) == ztmp && x(j,1) < ytmp) continue; - if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) continue; - } + // skip half of the interactions + if (j >= nlocal) { + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) continue; + } else { + if (x(j,2) < ztmp) continue; + if (x(j,2) == ztmp && x(j,1) < ytmp) continue; + if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) continue; } } @@ -1215,19 +1191,12 @@ void PairReaxCKokkos::operator()(PairReaxComputeLJCoulombtemplate ev_tally(ev,i,j,evdwl+ecoul,-ftotal,delx,dely,delz); } @@ -1276,18 +1245,16 @@ void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulomb= nlocal) { - if (itag > jtag) { - if ((itag+jtag) % 2 == 0) continue; - } else if (itag < jtag) { - if ((itag+jtag) % 2 == 1) continue; - } else { - if (x(j,2) < ztmp) continue; - if (x(j,2) == ztmp && x(j,1) < ytmp) continue; - if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) continue; - } + // skip half of the interactions + if (j >= nlocal) { + if (itag > jtag) { + if ((itag+jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag+jtag) % 2 == 1) continue; + } else { + if (x(j,2) < ztmp) continue; + if (x(j,2) == ztmp && x(j,1) < ytmp) continue; + if (x(j,2) == ztmp && x(j,1) == ytmp && x(j,0) < xtmp) continue; } } @@ -1331,19 +1298,12 @@ void PairReaxCKokkos::operator()(PairReaxComputeTabulatedLJCoulombtemplate ev_tally(ev,i,j,evdwl+ecoul,-ftotal,delx,dely,delz); } @@ -1436,10 +1396,8 @@ KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxZero, const int &n) const { d_total_bo(n) = 0.0; d_CdDelta(n) = 0.0; - if (neighflag != FULL) { - d_bo_num(n) = 0.0; - d_hb_num(n) = 0.0; - } + d_bo_num(n) = 0.0; + d_hb_num(n) = 0.0; for (int j = 0; j < 3; j++) d_dDeltap_self(n,j) = 0.0; } @@ -1850,261 +1808,6 @@ void PairReaxCKokkos::operator()(PairReaxBondOrder1, const int &ii) /* ---------------------------------------------------------------------- */ -template -template -KOKKOS_INLINE_FUNCTION -void PairReaxCKokkos::operator()(PairReaxBuildListsHalf_LessAtomics, const int &ii) const { - - if (d_resize_bo() || d_resize_hb()) - return; - - const int i = d_ilist[ii]; - const X_FLOAT xtmp = x(i,0); - const X_FLOAT ytmp = x(i,1); - const X_FLOAT ztmp = x(i,2); - const int itype = type(i); - const tagint itag = tag(i); - const int jnum = d_numneigh[i]; - - F_FLOAT C12, C34, C56, BO_s, BO_pi, BO_pi2, BO, delij[3]; - - int j_index,i_index; - d_bo_first[i] = i*maxbo; - const int bo_first_i = d_bo_first[i]; - - int ihb = -1; - int jhb = -1; - - int hb_first_i; - if (cut_hbsq > 0.0) { - ihb = paramssing(itype).p_hbond; - if (ihb == 1) { - d_hb_first[i] = i*maxhb; - hb_first_i = d_hb_first[i]; - } - } - - for (int jj = 0; jj < jnum; jj++) { - int j = d_neighbors(i,jj); - j &= NEIGHMASK; - const tagint jtag = tag(j); - - d_bo_first[j] = j*maxbo; - d_hb_first[j] = j*maxhb; - const int jtype = type(j); - - delij[0] = x(j,0) - xtmp; - delij[1] = x(j,1) - ytmp; - delij[2] = x(j,2) - ztmp; - const F_FLOAT rsq = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2]; - - double cutoffsq; - if(i < nlocal) cutoffsq = MAX(cut_bosq,cut_hbsq); - else cutoffsq = cut_bosq; - if (rsq > cutoffsq) continue; - - // hbond list - if (i < nlocal && cut_hbsq > 0.0 && (ihb == 1 || ihb == 2) && rsq <= cut_hbsq) { - jhb = paramssing(jtype).p_hbond; - if (ihb == 1 && jhb == 2) { - if (NEIGHFLAG == HALF) { - j_index = hb_first_i + d_hb_num[i]; - d_hb_num[i]++; - } else { - j_index = hb_first_i + Kokkos::atomic_fetch_add(&d_hb_num[i],1); - } - - const int jj_index = j_index - hb_first_i; - - if (jj_index >= maxhb) { - d_resize_hb() = 1; - return; - } - - d_hb_list[j_index] = j; - } else if ( j < nlocal && ihb == 2 && jhb == 1) { - if (NEIGHFLAG == HALF) { - i_index = d_hb_first[j] + d_hb_num[j]; - d_hb_num[j]++; - } else { - i_index = d_hb_first[j] + Kokkos::atomic_fetch_add(&d_hb_num[j],1); - } - - const int ii_index = i_index - d_hb_first[j]; - - if (ii_index >= maxhb) { - d_resize_hb() = 1; - return; - } - - d_hb_list[i_index] = i; - } - } - - if (rsq > cut_bosq) continue; - - // bond_list - const F_FLOAT rij = sqrt(rsq); - const F_FLOAT p_bo1 = paramstwbp(itype,jtype).p_bo1; - const F_FLOAT p_bo2 = paramstwbp(itype,jtype).p_bo2; - const F_FLOAT p_bo3 = paramstwbp(itype,jtype).p_bo3; - const F_FLOAT p_bo4 = paramstwbp(itype,jtype).p_bo4; - const F_FLOAT p_bo5 = paramstwbp(itype,jtype).p_bo5; - const F_FLOAT p_bo6 = paramstwbp(itype,jtype).p_bo6; - const F_FLOAT r_s = paramstwbp(itype,jtype).r_s; - const F_FLOAT r_pi = paramstwbp(itype,jtype).r_pi; - const F_FLOAT r_pi2 = paramstwbp(itype,jtype).r_pi2; - - if (paramssing(itype).r_s > 0.0 && paramssing(jtype).r_s > 0.0) { - C12 = p_bo1*pow(rij/r_s,p_bo2); - BO_s = (1.0+bo_cut)*exp(C12); - } - else BO_s = C12 = 0.0; - - if (paramssing(itype).r_pi > 0.0 && paramssing(jtype).r_pi > 0.0) { - C34 = p_bo3*pow(rij/r_pi,p_bo4); - BO_pi = exp(C34); - } - else BO_pi = C34 = 0.0; - - if (paramssing(itype).r_pi2 > 0.0 && paramssing(jtype).r_pi2 > 0.0) { - C56 = p_bo5*pow(rij/r_pi2,p_bo6); - BO_pi2 = exp(C56); - } - else BO_pi2 = C56 = 0.0; - - BO = BO_s + BO_pi + BO_pi2; - if (BO < bo_cut) continue; - - if (NEIGHFLAG == HALF) { - j_index = bo_first_i + d_bo_num[i]; - i_index = d_bo_first[j] + d_bo_num[j]; - d_bo_num[i]++; - d_bo_num[j]++; - } else { - j_index = bo_first_i + Kokkos::atomic_fetch_add(&d_bo_num[i],1); - i_index = d_bo_first[j] + Kokkos::atomic_fetch_add(&d_bo_num[j],1); - } - - const int jj_index = j_index - bo_first_i; - const int ii_index = i_index - d_bo_first[j]; - - if (jj_index >= maxbo || ii_index >= maxbo) { - d_resize_bo() = 1; - return; - } - - d_bo_list[j_index] = j; - d_bo_list[i_index] = i; - } - -} - -/* ---------------------------------------------------------------------- */ - -template -KOKKOS_INLINE_FUNCTION -void PairReaxCKokkos::operator()(PairReaxBondOrder1_LessAtomics, const int &ii) const { - - F_FLOAT C12, C34, C56, BO_s, BO_pi, BO_pi2, BO, delij[3], dBOp_i[3], dln_BOp_pi_i[3], dln_BOp_pi2_i[3]; - - const int i = d_ilist[ii]; - const X_FLOAT xtmp = x(i,0); - const X_FLOAT ytmp = x(i,1); - const X_FLOAT ztmp = x(i,2); - const int itype = type(i); - - const int j_start = d_bo_first[i]; - const int j_end = j_start + d_bo_num[i]; - - F_FLOAT total_bo = 0.0; - - for (int jj = j_start; jj < j_end; jj++) { - int j = d_bo_list[jj]; - j &= NEIGHMASK; - delij[0] = x(j,0) - xtmp; - delij[1] = x(j,1) - ytmp; - delij[2] = x(j,2) - ztmp; - const F_FLOAT rsq = delij[0]*delij[0] + delij[1]*delij[1] + delij[2]*delij[2]; - const F_FLOAT rij = sqrt(rsq); - const int jtype = type(j); - const int j_index = jj - j_start; - - // calculate uncorrected BO and total bond order - - const F_FLOAT p_bo1 = paramstwbp(itype,jtype).p_bo1; - const F_FLOAT p_bo2 = paramstwbp(itype,jtype).p_bo2; - const F_FLOAT p_bo3 = paramstwbp(itype,jtype).p_bo3; - const F_FLOAT p_bo4 = paramstwbp(itype,jtype).p_bo4; - const F_FLOAT p_bo5 = paramstwbp(itype,jtype).p_bo5; - const F_FLOAT p_bo6 = paramstwbp(itype,jtype).p_bo6; - const F_FLOAT r_s = paramstwbp(itype,jtype).r_s; - const F_FLOAT r_pi = paramstwbp(itype,jtype).r_pi; - const F_FLOAT r_pi2 = paramstwbp(itype,jtype).r_pi2; - - if (paramssing(itype).r_s > 0.0 && paramssing(jtype).r_s > 0.0) { - C12 = p_bo1*pow(rij/r_s,p_bo2); - BO_s = (1.0+bo_cut)*exp(C12); - } - else BO_s = C12 = 0.0; - - if (paramssing(itype).r_pi > 0.0 && paramssing(jtype).r_pi > 0.0) { - C34 = p_bo3*pow(rij/r_pi,p_bo4); - BO_pi = exp(C34); - } - else BO_pi = C34 = 0.0; - - if (paramssing(itype).r_pi2 > 0.0 && paramssing(jtype).r_pi2 > 0.0) { - C56 = p_bo5*pow(rij/r_pi2,p_bo6); - BO_pi2 = exp(C56); - } - else BO_pi2 = C56 = 0.0; - - BO = BO_s + BO_pi + BO_pi2; - if (BO < bo_cut) continue; - - d_BO(i,j_index) = BO; - d_BO_s(i,j_index) = BO; - d_BO_pi(i,j_index) = BO_pi; - d_BO_pi2(i,j_index) = BO_pi2; - - F_FLOAT Cln_BOp_s = p_bo2 * C12 / rij / rij; - F_FLOAT Cln_BOp_pi = p_bo4 * C34 / rij / rij; - F_FLOAT Cln_BOp_pi2 = p_bo6 * C56 / rij / rij; - - if (nlocal == 0) - Cln_BOp_s = Cln_BOp_pi = Cln_BOp_pi2 = 0.0; - - for (int d = 0; d < 3; d++) dln_BOp_pi_i[d] = -(BO_pi*Cln_BOp_pi)*delij[d]; - for (int d = 0; d < 3; d++) dln_BOp_pi2_i[d] = -(BO_pi2*Cln_BOp_pi2)*delij[d]; - for (int d = 0; d < 3; d++) dBOp_i[d] = -(BO_s*Cln_BOp_s+BO_pi*Cln_BOp_pi+BO_pi2*Cln_BOp_pi2)*delij[d]; - for (int d = 0; d < 3; d++) d_dDeltap_self(i,d) += dBOp_i[d]; - - d_dln_BOp_pix(i,j_index) = dln_BOp_pi_i[0]; - d_dln_BOp_piy(i,j_index) = dln_BOp_pi_i[1]; - d_dln_BOp_piz(i,j_index) = dln_BOp_pi_i[2]; - - d_dln_BOp_pi2x(i,j_index) = dln_BOp_pi2_i[0]; - d_dln_BOp_pi2y(i,j_index) = dln_BOp_pi2_i[1]; - d_dln_BOp_pi2z(i,j_index) = dln_BOp_pi2_i[2]; - - d_dBOpx(i,j_index) = dBOp_i[0]; - d_dBOpy(i,j_index) = dBOp_i[1]; - d_dBOpz(i,j_index) = dBOp_i[2]; - - d_BO(i,j_index) -= bo_cut; - d_BO_s(i,j_index) -= bo_cut; - total_bo += d_BO(i,j_index); - } - d_total_bo[i] += total_bo; - - const F_FLOAT val_i = paramssing(itype).valency; - d_Deltap[i] = d_total_bo[i] - val_i; - d_Deltap_boc[i] = d_total_bo[i] - paramssing(itype).valency_val; -} - -/* ---------------------------------------------------------------------- */ - template KOKKOS_INLINE_FUNCTION void PairReaxCKokkos::operator()(PairReaxBondOrder2, const int &ii) const { @@ -3728,7 +3431,7 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons if (eflag_atom) { const E_FLOAT epairhalf = 0.5 * epair; a_eatom[i] += epairhalf; - if (NEIGHFLAG != FULL) a_eatom[j] += epairhalf; + a_eatom[j] += epairhalf; } if (VFLAG) { @@ -3740,21 +3443,12 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons const E_FLOAT v5 = dely*delz*fpair; if (vflag_global) { - if (NEIGHFLAG != FULL) { - ev.v[0] += v0; - ev.v[1] += v1; - ev.v[2] += v2; - ev.v[3] += v3; - ev.v[4] += v4; - ev.v[5] += v5; - } else { - ev.v[0] += 0.5*v0; - ev.v[1] += 0.5*v1; - ev.v[2] += 0.5*v2; - ev.v[3] += 0.5*v3; - ev.v[4] += 0.5*v4; - ev.v[5] += 0.5*v5; - } + ev.v[0] += v0; + ev.v[1] += v1; + ev.v[2] += v2; + ev.v[3] += v3; + ev.v[4] += v4; + ev.v[5] += v5; } if (vflag_atom) { @@ -3764,15 +3458,12 @@ void PairReaxCKokkos::ev_tally(EV_FLOAT_REAX &ev, const int &i, cons a_vatom(i,3) += 0.5*v3; a_vatom(i,4) += 0.5*v4; a_vatom(i,5) += 0.5*v5; - - if (NEIGHFLAG != FULL) { - a_vatom(j,0) += 0.5*v0; - a_vatom(j,1) += 0.5*v1; - a_vatom(j,2) += 0.5*v2; - a_vatom(j,3) += 0.5*v3; - a_vatom(j,4) += 0.5*v4; - a_vatom(j,5) += 0.5*v5; - } + a_vatom(j,0) += 0.5*v0; + a_vatom(j,1) += 0.5*v1; + a_vatom(j,2) += 0.5*v2; + a_vatom(j,3) += 0.5*v3; + a_vatom(j,4) += 0.5*v4; + a_vatom(j,5) += 0.5*v5; } } } diff --git a/src/KOKKOS/pair_reaxc_kokkos.h b/src/KOKKOS/pair_reaxc_kokkos.h index 93ca4468ecf25a472f2a316ce573e4a24a7999a6..24a56b7076a038e2c4b3df1dbb6bc05249e83ed5 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.h +++ b/src/KOKKOS/pair_reaxc_kokkos.h @@ -64,9 +64,6 @@ struct PairReaxBuildListsFull{}; template struct PairReaxBuildListsHalf{}; -template -struct PairReaxBuildListsHalf_LessAtomics{}; - struct PairReaxZero{}; struct PairReaxZeroEAtom{}; @@ -75,8 +72,6 @@ struct PairReaxZeroVAtom{}; struct PairReaxBondOrder1{}; -struct PairReaxBondOrder1_LessAtomics{}; - struct PairReaxBondOrder2{}; struct PairReaxBondOrder3{}; @@ -164,10 +159,6 @@ class PairReaxCKokkos : public PairReaxC { KOKKOS_INLINE_FUNCTION void operator()(PairReaxBuildListsHalf, const int&) const; - template - KOKKOS_INLINE_FUNCTION - void operator()(PairReaxBuildListsHalf_LessAtomics, const int&) const; - KOKKOS_INLINE_FUNCTION void operator()(PairReaxZero, const int&) const; @@ -180,9 +171,6 @@ class PairReaxCKokkos : public PairReaxC { KOKKOS_INLINE_FUNCTION void operator()(PairReaxBondOrder1, const int&) const; - KOKKOS_INLINE_FUNCTION - void operator()(PairReaxBondOrder1_LessAtomics, const int&) const; - KOKKOS_INLINE_FUNCTION void operator()(PairReaxBondOrder2, const int&) const; @@ -437,7 +425,7 @@ class PairReaxCKokkos : public PairReaxC { typename AT::t_ffloat_2d_dl d_sum_ovun; typename AT::t_ffloat_2d_dl d_dBOpx, d_dBOpy, d_dBOpz; - int neighflag,newton_pair, maxnumneigh, maxhb, maxbo; + int neighflag, newton_pair, maxnumneigh, maxhb, maxbo; int nlocal,nall,eflag,vflag; F_FLOAT cut_nbsq, cut_hbsq, cut_bosq, bo_cut, thb_cut, thb_cutsq; F_FLOAT bo_cut_bond; diff --git a/src/KOKKOS/pair_table_kokkos.cpp b/src/KOKKOS/pair_table_kokkos.cpp index a86db70d4d542df0858fd9e17c793c5cd43f1924..b2aaaf1566d83f2ec8d17df6acf99cf2a0ae48ed 100644 --- a/src/KOKKOS/pair_table_kokkos.cpp +++ b/src/KOKKOS/pair_table_kokkos.cpp @@ -136,12 +136,6 @@ void PairTableKokkos::compute_style(int eflag_in, int vflag_in) if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); f.contribute(); - } else if (neighflag == N2) { - PairComputeFunctor,N2,false,S_TableCompute > - f(this,(NeighListKokkos*) list); - if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); - else Kokkos::parallel_for(list->inum,f); - f.contribute(); } } else { if (neighflag == FULL) { @@ -162,12 +156,6 @@ void PairTableKokkos::compute_style(int eflag_in, int vflag_in) if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); else Kokkos::parallel_for(list->inum,f); f.contribute(); - } else if (neighflag == N2) { - PairComputeFunctor,N2,true,S_TableCompute > - f(this,(NeighListKokkos*) list); - if (eflag || vflag) Kokkos::parallel_reduce(list->inum,f,ev); - else Kokkos::parallel_for(list->inum,f); - f.contribute(); } } @@ -525,9 +513,6 @@ void PairTableKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/kk"); } diff --git a/src/KOKKOS/pair_table_kokkos.h b/src/KOKKOS/pair_table_kokkos.h index eede023d7e57c603ec72f93f5f2f3d4becb65fc1..2f84e6a61e4a1c31385db7e8419478d9e9a15b76 100644 --- a/src/KOKKOS/pair_table_kokkos.h +++ b/src/KOKKOS/pair_table_kokkos.h @@ -41,7 +41,7 @@ template class PairTableKokkos : public PairTable { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; enum {COUL_FLAG=0}; typedef DeviceType device_type; typedef ArrayTypes AT; @@ -139,38 +139,30 @@ class PairTableKokkos : public PairTable { friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; friend class PairComputeFunctor >; - friend class PairComputeFunctor >; friend void pair_virial_fdotr_compute(PairTableKokkos*); }; diff --git a/src/KOKKOS/pair_table_rx_kokkos.cpp b/src/KOKKOS/pair_table_rx_kokkos.cpp index d65ea8bf1f6530e97a216796269ddcbc97cb9fdb..2b066d7633aa708de7e3078e5f74703fc425ee88 100644 --- a/src/KOKKOS/pair_table_rx_kokkos.cpp +++ b/src/KOKKOS/pair_table_rx_kokkos.cpp @@ -33,6 +33,7 @@ #include "kokkos_few.h" #include "kokkos.h" #include "modify.h" +#include "utils.h" #include using namespace LAMMPS_NS; @@ -664,8 +665,6 @@ void PairTableRXKokkos::compute_style(int eflag_in, int vflag_in) nspecies, isite1, isite2, fractionalWeighting, mixWtSite1old, mixWtSite2old, mixWtSite1, mixWtSite2); - if (neighflag == N2) error->all(FLERR,"pair table/rx/kk can't handle N2 yet\n"); - NeighListKokkos* l = dynamic_cast*>(list); @@ -1022,7 +1021,7 @@ void PairTableRXKokkos::coeff(int narg, char **arg) bool rx_flag = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"rx",2) == 0) rx_flag = true; + if (utils::strmatch(modify->fix[i]->style,"^rx")) rx_flag = true; if (!rx_flag) error->all(FLERR,"PairTableRX requires a fix rx command."); int ilo,ihi,jlo,jhi; @@ -1281,9 +1280,6 @@ void PairTableRXKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/kk"); } diff --git a/src/KOKKOS/pair_table_rx_kokkos.h b/src/KOKKOS/pair_table_rx_kokkos.h index 4230263dc97cb157f5b40fee98a5a0c5cb35c711..7aba307476ab55a174263ec7d29b276009f0a72d 100644 --- a/src/KOKKOS/pair_table_rx_kokkos.h +++ b/src/KOKKOS/pair_table_rx_kokkos.h @@ -30,7 +30,7 @@ namespace LAMMPS_NS { template class PairTableRXKokkos : public PairTable { public: - enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF|N2}; + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; typedef DeviceType device_type; PairTableRXKokkos(class LAMMPS *); diff --git a/src/KOKKOS/pair_yukawa_kokkos.h b/src/KOKKOS/pair_yukawa_kokkos.h index 5f4e8236579ff6046fc07310df4be8a7f80301c8..f24298d41576d15797cceeaa32effc0b43e87655 100644 --- a/src/KOKKOS/pair_yukawa_kokkos.h +++ b/src/KOKKOS/pair_yukawa_kokkos.h @@ -103,19 +103,15 @@ class PairYukawaKokkos : public PairYukawa { friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; friend class PairComputeFunctor; - friend class PairComputeFunctor; friend EV_FLOAT pair_compute_neighlist( PairYukawaKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist( PairYukawaKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute_neighlist( PairYukawaKokkos*,NeighListKokkos*); - friend EV_FLOAT pair_compute_neighlist( - PairYukawaKokkos*,NeighListKokkos*); friend EV_FLOAT pair_compute( PairYukawaKokkos*,NeighListKokkos*); friend void pair_virial_fdotr_compute(PairYukawaKokkos*); diff --git a/src/KOKKOS/pair_zbl_kokkos.cpp b/src/KOKKOS/pair_zbl_kokkos.cpp index fe34f58fa6f5c1333ae81dd0aede83d8c4085317..5e4ec398d9a41cf1e835bd678088712a9ae2c1b3 100644 --- a/src/KOKKOS/pair_zbl_kokkos.cpp +++ b/src/KOKKOS/pair_zbl_kokkos.cpp @@ -103,9 +103,6 @@ void PairZBLKokkos::init_style() } else if (neighflag == HALF || neighflag == HALFTHREAD) { neighbor->requests[irequest]->full = 0; neighbor->requests[irequest]->half = 1; - } else if (neighflag == N2) { - neighbor->requests[irequest]->full = 0; - neighbor->requests[irequest]->half = 0; } else { error->all(FLERR,"Cannot use chosen neighbor list style with lj/cut/kk"); } diff --git a/src/KOKKOS/pppm_kokkos.cpp b/src/KOKKOS/pppm_kokkos.cpp index 62d7ccc3cda9892495de4e0dff1418386ab999d4..0940bda7ac875a086bce5b252b7831c7a3f3873d 100644 --- a/src/KOKKOS/pppm_kokkos.cpp +++ b/src/KOKKOS/pppm_kokkos.cpp @@ -106,7 +106,7 @@ PPPMKokkos::PPPMKokkos(LAMMPS *lmp) : PPPM(lmp) // see JCP 109, pg 7698 for derivation of coefficients // higher order coefficients may be computed if needed - acons = typename Kokkos::DualView::t_host("pppm:acons"); + acons = typename Kokkos::DualView::t_host("pppm:acons"); acons(1,0) = 2.0 / 3.0; acons(2,0) = 1.0 / 50.0; acons(2,1) = 5.0 / 294.0; @@ -2581,7 +2581,7 @@ void PPPMKokkos::operator()(TagPPPM_fieldforce_peratom, const int &i ------------------------------------------------------------------------- */ template -void PPPMKokkos::pack_forward_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::pack_forward_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); @@ -2637,7 +2637,7 @@ void PPPMKokkos::operator()(TagPPPM_pack_forward2, const int &i) con ------------------------------------------------------------------------- */ template -void PPPMKokkos::unpack_forward_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::unpack_forward_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); @@ -2694,7 +2694,7 @@ void PPPMKokkos::operator()(TagPPPM_unpack_forward2, const int &i) c ------------------------------------------------------------------------- */ template -void PPPMKokkos::pack_reverse_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::pack_reverse_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); @@ -2724,7 +2724,7 @@ void PPPMKokkos::operator()(TagPPPM_pack_reverse, const int &i) cons ------------------------------------------------------------------------- */ template -void PPPMKokkos::unpack_reverse_kspace_kokkos(int flag, Kokkos::DualView &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) +void PPPMKokkos::unpack_reverse_kspace_kokkos(int flag, FFT_DAT::tdual_FFT_SCALAR_1d &k_buf, int nlist, DAT::tdual_int_2d &k_list, int index) { typename AT::t_int_2d_um d_list = k_list.view(); d_list_index = Kokkos::subview(d_list,index,Kokkos::ALL()); diff --git a/src/KOKKOS/pppm_kokkos.h b/src/KOKKOS/pppm_kokkos.h index a07ed7d7c457df2d1a7126c8b8e1b7c9f53d7f2e..847a2f807f34ca2db9557f62b3a093e05bb78ade 100644 --- a/src/KOKKOS/pppm_kokkos.h +++ b/src/KOKKOS/pppm_kokkos.h @@ -403,10 +403,10 @@ class PPPMKokkos : public PPPM, public KokkosBaseFFT { // grid communication - void pack_forward_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); - void unpack_forward_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); - void pack_reverse_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); - void unpack_reverse_kspace_kokkos(int, Kokkos::DualView &, int, DAT::tdual_int_2d &, int); + void pack_forward_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); + void unpack_forward_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); + void pack_reverse_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); + void unpack_reverse_kspace_kokkos(int, FFT_DAT::tdual_FFT_SCALAR_1d &, int, DAT::tdual_int_2d &, int); // triclinic diff --git a/src/KOKKOS/sna_kokkos.h b/src/KOKKOS/sna_kokkos.h index b7162cf8d6ef301790d9294f8e1ccc6af5a5ad99..5a11182f457b9f5161ca1422059be29a91a12e65 100644 --- a/src/KOKKOS/sna_kokkos.h +++ b/src/KOKKOS/sna_kokkos.h @@ -25,64 +25,6 @@ namespace LAMMPS_NS { -typedef double SNAreal; - -//typedef struct { SNAreal re, im; } SNAcomplex; -template -struct alignas(2*sizeof(real)) SNAComplex -{ - real re,im; - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex() = default; - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex(real re) - : re(re), im(static_cast(0.)) { ; } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex(real re, real im) - : re(re), im(im) { ; } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex(const SNAComplex& other) - : re(other.re), im(other.im) { ; } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator=(const SNAComplex& other) { - re = other.re; im = other.im; - return *this; - } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex(SNAComplex&& other) - : re(other.re), im(other.im) { ; } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator=(SNAComplex&& other) { - re = other.re; im = other.im; - return *this; - } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex operator+(SNAComplex const& other) { - return SNAComplex(re + other.re, im + other.im); - } - - KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator+=(SNAComplex const& other) { - re += other.re; im += other.im; - return *this; - } - -}; - -template -KOKKOS_FORCEINLINE_FUNCTION SNAComplex operator*(const real& r, const SNAComplex& self) { - return SNAComplex(r*self.re, r*self.im); -} - -typedef SNAComplex SNAcomplex; - -//struct SNAKK_ZINDICES { -// int j1, j2, j, ma1min, ma2max, mb1min, mb2max, na, nb, jju; -//}; -// -//struct SNAKK_BINDICES { -// int j1, j2, j; -//}; - template class SNAKokkos { diff --git a/src/KSPACE/pair_buck_long_coul_long.cpp b/src/KSPACE/pair_buck_long_coul_long.cpp index 6c731b73b3ffa8fdc76f8296a2a5e1133fa2cc18..db01cb8509cc395f89cec36de65dc13d4291d28d 100644 --- a/src/KSPACE/pair_buck_long_coul_long.cpp +++ b/src/KSPACE/pair_buck_long_coul_long.cpp @@ -430,10 +430,17 @@ void PairBuckLongCoulLong::write_data(FILE *fp) void PairBuckLongCoulLong::write_data_all(FILE *fp) { - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g %g\n",i,j, - buck_a_read[i][j],buck_rho_read[i][j],buck_c_read[i][j]); + for (int i = 1; i <= atom->ntypes; i++) { + for (int j = i; j <= atom->ntypes; j++) { + if (ewald_order & (1<<6)) { + fprintf(fp,"%d %d %g %g\n",i,j, + buck_a_read[i][j],buck_rho_read[i][j]); + } else { + fprintf(fp,"%d %d %g %g %g\n",i,j, + buck_a_read[i][j],buck_rho_read[i][j],buck_c_read[i][j]); + } + } + } } /* ---------------------------------------------------------------------- diff --git a/src/KSPACE/pair_lj_long_coul_long.cpp b/src/KSPACE/pair_lj_long_coul_long.cpp index 94955d2d6dd5e2eb9c25a551cef2745c0adf556e..ce6b6f57a267c936181f79673af85ba97bb9d581 100644 --- a/src/KSPACE/pair_lj_long_coul_long.cpp +++ b/src/KSPACE/pair_lj_long_coul_long.cpp @@ -427,10 +427,17 @@ void PairLJLongCoulLong::write_data(FILE *fp) void PairLJLongCoulLong::write_data_all(FILE *fp) { - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g %g\n",i,j, - epsilon_read[i][j],sigma_read[i][j],cut_lj_read[i][j]); + for (int i = 1; i <= atom->ntypes; i++) { + for (int j = i; j <= atom->ntypes; j++) { + if (ewald_order & (1<<6)) { + fprintf(fp,"%d %d %g %g\n",i,j, + epsilon_read[i][j],sigma_read[i][j]); + } else { + fprintf(fp,"%d %d %g %g %g\n",i,j, + epsilon_read[i][j],sigma_read[i][j],cut_lj_read[i][j]); + } + } + } } /* ---------------------------------------------------------------------- diff --git a/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl b/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl index 9f29e9a87e6ef460bf7ee6473937d597a132f85f..07dedba32a3da079530381d94528e9f12530eb16 100644 --- a/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl +++ b/src/MAKE/MACHINES/Makefile.aarch64_arm_openmpi_armpl @@ -1,4 +1,4 @@ -# g++_openmpi = OpenMPI with compiler set to GNU g++ +# aarch64_arm_openmpi_armpl = OpenMPI with compiler set to GNU g++ on 64-bit ARM SHELL = /bin/sh @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,7 +45,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -56,22 +56,22 @@ FFT_PATH = -L$(ARMPL_LIBRARIES) FFT_LIB = -larmpl_lp64 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl b/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl index 6397118357600cef433ede9e762ff85c01c4125a..d415f6939725339fe578a2fe6e635cbd2b53306d 100644 --- a/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl +++ b/src/MAKE/MACHINES/Makefile.aarch64_arm_serial_armpl @@ -1,4 +1,4 @@ -# arm_serial = Arm armclang compiler, no MPI +# aarch64_arm_serial_armpl = ARM 64-bit, armclang compiler, no MPI SHELL = /bin/sh @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,7 +44,7 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_stubs # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,22 +55,22 @@ FFT_PATH = -L$(ARMPL_LIBRARIES) FFT_LIB = -larmpl_lp64 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl b/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl index 933c97cba4873a0636b2694bb12ad28a9a0b74a7..b75d9ee06aa0a480234a57975d63f706fee1f037 100644 --- a/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl +++ b/src/MAKE/MACHINES/Makefile.aarch64_g++_openmpi_armpl @@ -1,4 +1,4 @@ -# g++_openmpi = OpenMPI with compiler set to GNU g++ +# aarch64_g++_openmpi_armpl = ARM 64-bit using OpenMPI with compiler set to GNU g++ SHELL = /bin/sh @@ -32,7 +32,7 @@ SHLIBFLAGS = -shared LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,7 +45,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -56,22 +56,22 @@ FFT_PATH = -L$(ARMPL_LIBRARIES) FFT_LIB = -larmpl_lp64 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl b/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl index e7f1a81f3b71723ee5adeb6f429f5897d35c2274..73cd0d6bed04632789500c1e32595d30e68ca689 100644 --- a/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl +++ b/src/MAKE/MACHINES/Makefile.aarch64_g++_serial_armpl @@ -1,4 +1,4 @@ -# g++_serial = GNU g++ compiler, no MPI +# aarch64_g++_serial_armpl = ARM 64-bit GNU g++ compiler, no MPI SHELL = /bin/sh @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,7 +44,7 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_stubs # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,22 +55,22 @@ FFT_PATH = -L$(ARMPL_LIBRARIES) FFT_LIB = -larmpl_lp64 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.astra_arm b/src/MAKE/MACHINES/Makefile.astra_arm index 3734208936fcdb6777896257015305506385dbc7..3ea3e00935a83b94895b1bbdebddefe49dd59cc1 100644 --- a/src/MAKE/MACHINES/Makefile.astra_arm +++ b/src/MAKE/MACHINES/Makefile.astra_arm @@ -1,4 +1,4 @@ -# astra_arm - ThunderX2 ARM/OpenMPI Based, use Arm-PL for FFTW +# astra_arm = ThunderX2 ARM/OpenMPI Based, use Arm-PL for FFTW # need to load the following modules: # 1) arm-based developer pack @@ -25,12 +25,12 @@ SIZE = size # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -43,7 +43,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -54,22 +54,22 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = +JPG_INC = +JPG_PATH = JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -84,28 +84,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.astra_gcc b/src/MAKE/MACHINES/Makefile.astra_gcc index 3ee43800fcec8213cecc4d7fd3388511494f539c..d607fbec84f8a7644730dc67d41a3c8341c12131 100644 --- a/src/MAKE/MACHINES/Makefile.astra_gcc +++ b/src/MAKE/MACHINES/Makefile.astra_gcc @@ -1,4 +1,4 @@ -# astra-gcc - ThunderX2 GCC/OpenMPI Based, FFTW +# astra_gcc = ThunderX2 GCC/OpenMPI Based, FFTW # need to load the following modules: # 1) arm-based developer pack @@ -25,12 +25,12 @@ SIZE = size # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -43,7 +43,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -54,22 +54,22 @@ FFT_PATH = -I${FFTW_INC} FFT_LIB = -L${FFTW_LIB} -lfftw3 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = +JPG_INC = +JPG_PATH = JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -84,28 +84,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.beacon b/src/MAKE/MACHINES/Makefile.beacon index 522d7b1859e6107e89d73110e4c56be1d45dd09d..87ef35b2484638ba9228795a9912b48167578605 100644 --- a/src/MAKE/MACHINES/Makefile.beacon +++ b/src/MAKE/MACHINES/Makefile.beacon @@ -1,4 +1,4 @@ -# linux = RedHat Linux box, Intel icc, MPICH2, FFTW +# beacon = RedHat Linux box, Intel icc, MPICH2, FFTW SHELL = /bin/sh @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,7 +45,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -56,7 +56,7 @@ FFT_PATH = FFT_LIB = -L$(MKLROOT) -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -70,8 +70,8 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.bgl b/src/MAKE/MACHINES/Makefile.bgl index 4759cde1ff9cea5fe7cbf448784a5eff0408ccdc..06d243e83a9cbc43a042a23ee17b60769a4fc6fb 100644 --- a/src/MAKE/MACHINES/Makefile.bgl +++ b/src/MAKE/MACHINES/Makefile.bgl @@ -32,12 +32,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -50,33 +50,33 @@ MPI_PATH = MPI_LIB = -lmpich.rts # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -FFT_PATH = -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -91,28 +91,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.bgq b/src/MAKE/MACHINES/Makefile.bgq index c995f4110864666b832b5892b107bbf6c2cc469c..3d8ea41f5f321f91e79664abd90bfa59ea167233 100644 --- a/src/MAKE/MACHINES/Makefile.bgq +++ b/src/MAKE/MACHINES/Makefile.bgq @@ -8,7 +8,7 @@ SHELL = /bin/bash # do not edit this section # select which compiler by editing Makefile.bgq.details -include ../MAKE/MACHINES/Makefile.bgq.details +include ../MAKE/MACHINES/bgq.make.details include Makefile.package.settings include Makefile.package @@ -26,28 +26,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.chama b/src/MAKE/MACHINES/Makefile.chama index aab5bb3d22d6757e82cb4d329f28cf9123068639..a8a9cebfdb6ba9a42258d96d9765514f24f0383b 100644 --- a/src/MAKE/MACHINES/Makefile.chama +++ b/src/MAKE/MACHINES/Makefile.chama @@ -1,4 +1,4 @@ -# chama - Intel SandyBridge, mpic++, openmpi, no FFTW +# chama = Intel SandyBridge, mpic++, openmpi, no FFTW # need to load the following modules: # 1) intel/12.1 @@ -26,12 +26,12 @@ SIZE = size # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -39,38 +39,38 @@ LMP_INC = -DLAMMPS_GZIP # PATH = path for MPI library # LIB = name of MPI library -MPI_INC = -MPI_PATH = +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -#FFT_INC = -DFFT_FFTW2 -I${FFTW_INCLUDE} -#FFT_PATH = -L${FFTW_LIB} -#FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = +JPG_INC = +JPG_PATH = JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.cori2 b/src/MAKE/MACHINES/Makefile.cori2 index 45e1ab1f8a3aed152bd96ce567b858d0148eaee8..86d38d7726c6bd31d17b102dc07d0fb20b313055 100644 --- a/src/MAKE/MACHINES/Makefile.cori2 +++ b/src/MAKE/MACHINES/Makefile.cori2 @@ -36,12 +36,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = #-DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -50,11 +50,11 @@ LMP_INC = #-DLAMMPS_GZIP -DLAMMPS_JPEG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = +MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -65,7 +65,7 @@ FFT_PATH = FFT_LIB = -lfftw3f # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -79,8 +79,8 @@ JPG_LIB = #-ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -93,30 +93,28 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules %.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< -%.d:%.cpp - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - # Individual dependencies depend : fastdep.exe $(SRC) diff --git a/src/MAKE/MACHINES/Makefile.cygwin b/src/MAKE/MACHINES/Makefile.cygwin index 53e94d975e37a7b763ed9b95e4e4701df9e31f50..5cd6e79b6936393ee799050e2723fd528408972c 100644 --- a/src/MAKE/MACHINES/Makefile.cygwin +++ b/src/MAKE/MACHINES/Makefile.cygwin @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L/cygdrive/c/cygwin/mpich2-1.0.4p1/lib MPI_LIB = -lmpich # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -I/cygdrive/c/cygwin/usr/local/include -FFT_PATH = -L/cygdrive/c/cygwin/usr/local/lib -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.glory b/src/MAKE/MACHINES/Makefile.glory index d856b1a07d8623eaf7281137f86707b3eb6cbdee..a128f885158f1aef773dd0671e4708131f6dddb4 100644 --- a/src/MAKE/MACHINES/Makefile.glory +++ b/src/MAKE/MACHINES/Makefile.glory @@ -43,12 +43,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -61,33 +61,33 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -I${FFTW_INCLUDE} -FFT_PATH = -L${FFTW_LIB} -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -102,28 +102,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.icex b/src/MAKE/MACHINES/Makefile.icex index ceeec488700d7760263103ebb51a18d081bb94f2..6c3db3fb43631a7bb4fbc54428922a019ffff893 100644 --- a/src/MAKE/MACHINES/Makefile.icex +++ b/src/MAKE/MACHINES/Makefile.icex @@ -1,4 +1,4 @@ -# mpi = MPI with its default compiler +# icex = unknown 64-bit x86_64 machine SHELL = /bin/sh @@ -26,14 +26,14 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP #LMP_INC += -DLAMMPS_JPEG LMP_INC += -DLAMMPS_MEMALIGN=64 # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -42,37 +42,37 @@ LMP_INC += -DLAMMPS_MEMALIGN=64 # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -87,18 +87,22 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules diff --git a/src/MAKE/MACHINES/Makefile.jaguar b/src/MAKE/MACHINES/Makefile.jaguar index 7f2ce560dfca2a913295de6865c4f9d3f4f9a970..4a78205c6148d913cde455185392514ca4a62d26 100644 --- a/src/MAKE/MACHINES/Makefile.jaguar +++ b/src/MAKE/MACHINES/Makefile.jaguar @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DNODE_PARTITION # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,7 +44,7 @@ MPI_PATH = MPI_LIB = -lmpich -lpthread # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,22 +55,22 @@ FFT_PATH = -L$(FFTW_DIR) FFT_LIB = -lfftw3 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.lassen_kokkos b/src/MAKE/MACHINES/Makefile.lassen_kokkos index 7484f25a4b0e448d857f791d1bdc8d0c5e082c41..982d53933ece7499fa3a57475864f5ec84099ffa 100644 --- a/src/MAKE/MACHINES/Makefile.lassen_kokkos +++ b/src/MAKE/MACHINES/Makefile.lassen_kokkos @@ -31,12 +31,12 @@ KOKKOS_ARCH = Power9,Volta70 # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -52,7 +52,7 @@ MPI_PATH = MPI_LIB = -L${MY_MPI_PATH}../lib -lmpi_ibm # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -63,22 +63,22 @@ FFT_PATH = FFT_LIB = -lcufft # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -93,28 +93,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.mac b/src/MAKE/MACHINES/Makefile.mac index d38ec202db59a46624ff1fc6d7d050d92028ab75..1bbd805c65a5743332ae3ee5ad71febdbef80433 100644 --- a/src/MAKE/MACHINES/Makefile.mac +++ b/src/MAKE/MACHINES/Makefile.mac @@ -1,4 +1,4 @@ -# mac = Apple PowerBook G4 laptop, c++, no MPI, FFTW 2.1.5 +# mac = Apple PowerBook G4 laptop, c++, no MPI SHELL = /bin/sh @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_stubs # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -FFT_PATH = -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.mac_mpi b/src/MAKE/MACHINES/Makefile.mac_mpi index 3437de017bb78fc0a1d715ccb65e9c63c4a6593c..7c4fa6aa6df2c807f38a224c1be43b15b9cfef18 100644 --- a/src/MAKE/MACHINES/Makefile.mac_mpi +++ b/src/MAKE/MACHINES/Makefile.mac_mpi @@ -1,4 +1,4 @@ -# mac_mpi = Apple laptop, MacPorts Open MPI 1.4.3, gcc 4.8, fftw, jpeg +# mac_mpi = Apple laptop, MacPorts Open MPI 1.4.3, gcc 4.8, jpeg SHELL = /bin/sh @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -51,14 +51,12 @@ MPI_LIB = # PATH = path for FFT library # LIB = name of FFT library -FFTW = /usr/local - -FFT_INC = -DFFT_FFTW2 -I${FFTW}/include -FFT_PATH = -L${FFTW}/lib -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -72,8 +70,8 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -88,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.mingw32-cross b/src/MAKE/MACHINES/Makefile.mingw32-cross index 405c370574c0357517a04c746e6557f8bc3cbf98..c463d7df2601b95e01a2476d5bba1093987f7543 100644 --- a/src/MAKE/MACHINES/Makefile.mingw32-cross +++ b/src/MAKE/MACHINES/Makefile.mingw32-cross @@ -31,12 +31,12 @@ LIBOBJDIR = /Obj_mingw32 # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_SMALLSMALL -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_XDR -DLAMMPS_GZIP -DLAMMPS_FFMPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -49,18 +49,18 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_mingw32 # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library FFT_INC = -FFT_PATH = +FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -74,8 +74,8 @@ JPG_LIB = -ljpeg -lpng -lz # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -90,28 +90,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.mingw32-cross-mpi b/src/MAKE/MACHINES/Makefile.mingw32-cross-mpi index ab54c6e7941403d7000935e3ff79ca720ff4b499..7badd3bb79793190df4dfe941fe20b4d3ec7a810 100644 --- a/src/MAKE/MACHINES/Makefile.mingw32-cross-mpi +++ b/src/MAKE/MACHINES/Makefile.mingw32-cross-mpi @@ -31,12 +31,12 @@ LIBOBJDIR = /Obj_mingw32-mpi # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_SMALLSMALL -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_XDR -DLAMMPS_GZIP -DLAMMPS_FFMPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -49,18 +49,18 @@ MPI_PATH = -L../../tools/mingw-cross/mpich2-win32/lib MPI_LIB = -lmpi # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library FFT_INC = -FFT_PATH = +FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -74,8 +74,8 @@ JPG_LIB = -ljpeg -lpng -lz # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -90,28 +90,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.mingw64-cross b/src/MAKE/MACHINES/Makefile.mingw64-cross index 21403dc630eb02d44904d715d0ba2dcccce5d51d..66de4dedaf3dabd9c488584fe425e637788b1beb 100644 --- a/src/MAKE/MACHINES/Makefile.mingw64-cross +++ b/src/MAKE/MACHINES/Makefile.mingw64-cross @@ -31,12 +31,12 @@ LIBOBJDIR = /Obj_mingw64 # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_SMALLBIG -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_XDR -DLAMMPS_GZIP -DLAMMPS_FFMPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -49,7 +49,7 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_mingw64 # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -60,7 +60,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -74,8 +74,8 @@ JPG_LIB = -ljpeg -lpng -lz # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -90,28 +90,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.mingw64-cross-mpi b/src/MAKE/MACHINES/Makefile.mingw64-cross-mpi index 084b51680ff5f1dd084d5d336bc55c45d1a2a5a2..40c52b6a73e022d578eaab68d226ff4f8684395f 100644 --- a/src/MAKE/MACHINES/Makefile.mingw64-cross-mpi +++ b/src/MAKE/MACHINES/Makefile.mingw64-cross-mpi @@ -31,12 +31,12 @@ LIBOBJDIR = /Obj_mingw64-mpi # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_SMALLBIG -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_XDR -DLAMMPS_GZIP -DLAMMPS_FFMPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -49,18 +49,18 @@ MPI_PATH = -L../../tools/mingw-cross/mpich2-win64/lib MPI_LIB = -lmpi # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library FFT_INC = -FFT_PATH = +FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -74,8 +74,8 @@ JPG_LIB = -ljpeg -lpng -lz # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -90,28 +90,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.myrinet b/src/MAKE/MACHINES/Makefile.myrinet index 7cf09f30c78bfb78d15afe573c319dcd5ac0db3c..82030fbeae95e517eca3e1bbe0df0f982afd74b5 100644 --- a/src/MAKE/MACHINES/Makefile.myrinet +++ b/src/MAKE/MACHINES/Makefile.myrinet @@ -11,7 +11,7 @@ CCFLAGS = -O SHFLAGS = -fPIC DEPFLAGS = -M -LINK = G++ +LINK = g++ LINKFLAGS = -O LIB = SIZE = size @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,7 +44,7 @@ MPI_PATH = -L/opt/mpich-mx/lib -L/opt/mx/lib MPI_LIB = -lmpich -lmyriexpress # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,22 +55,22 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.power b/src/MAKE/MACHINES/Makefile.power index cbad7149df8b5f6daebb77657a8d326ee0dfdd00..d4d0f67fa5f56963d8c303ca604e6cea4c43f0f1 100644 --- a/src/MAKE/MACHINES/Makefile.power +++ b/src/MAKE/MACHINES/Makefile.power @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,7 +45,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -56,22 +56,22 @@ FFT_PATH = -L/scr/oppe/LAMMPS/fftw-2.1.5/lib FFT_LIB = -lfftw # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.redsky b/src/MAKE/MACHINES/Makefile.redsky index 8e943bbb78b7499dc3f08bc039ab9002680efe2f..461139e2e93724c73aa8f64c7f2a550cd2096219 100644 --- a/src/MAKE/MACHINES/Makefile.redsky +++ b/src/MAKE/MACHINES/Makefile.redsky @@ -46,12 +46,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -64,33 +64,33 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -#FFT_INC = -DFFT_FFTW2 -I${FFTW_INCLUDE} -#FFT_PATH = -L${FFTW_LIB} -#FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -105,28 +105,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.serial b/src/MAKE/MACHINES/Makefile.serial deleted file mode 100644 index 0c4515dcd1113e1dc2fd93acb5a1233c2ef7ade2..0000000000000000000000000000000000000000 --- a/src/MAKE/MACHINES/Makefile.serial +++ /dev/null @@ -1,120 +0,0 @@ -# serial = RedHat Linux box, g++4, no MPI, no FFTs - -SHELL = /bin/sh - -# --------------------------------------------------------------------- -# compiler/linker settings -# specify flags and libraries needed for your compiler - -CC = g++ -CCFLAGS = -O -SHFLAGS = -fPIC -DEPFLAGS = -M - -LINK = g++ -LINKFLAGS = -O -LIB = -SIZE = size - -ARCHIVE = ar -ARFLAGS = -rc -SHLIBFLAGS = -shared - -# --------------------------------------------------------------------- -# LAMMPS-specific settings, all OPTIONAL -# specify settings for LAMMPS features you will use -# if you change any -D setting, do full re-compile after "make clean" - -# LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual - -LMP_INC = -DLAMMPS_GZIP - -# MPI library -# see discussion in Section 2.2 (step 5) of manual -# MPI wrapper compiler/linker can provide this info -# can point to dummy MPI library in src/STUBS as in Makefile.serial -# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts -# INC = path for mpi.h, MPI compiler settings -# PATH = path for MPI library -# LIB = name of MPI library - -MPI_INC = -I../STUBS -MPI_PATH = -L../STUBS -MPI_LIB = -lmpi_stubs - -# FFT library -# see discussion in Section 2.2 (step 6) of manaul -# can be left blank to use provided KISS FFT library -# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings -# PATH = path for FFT library -# LIB = name of FFT library - -FFT_INC = -FFT_PATH = -FFT_LIB = - -# JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual -# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC -# INC = path(s) for jpeglib.h and/or png.h -# PATH = path(s) for JPEG library and/or PNG library -# LIB = name(s) of JPEG library and/or PNG library - -JPG_INC = -JPG_PATH = -JPG_LIB = - -# --------------------------------------------------------------------- -# build rules and dependencies -# do not edit this section - -include Makefile.package.settings -include Makefile.package - -EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) -EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) -EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) -EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) -EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) - -# Path to src files - -vpath %.cpp .. -vpath %.h .. - -# Link target - -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) - -# Library targets - -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) - -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) - -# Compilation rules - -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -# Individual dependencies - -depend : fastdep.exe $(SRC) - @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 - -fastdep.exe: ../DEPEND/fastdep.c - cc -O -o $@ $< - -sinclude .depend diff --git a/src/MAKE/MACHINES/Makefile.stampede b/src/MAKE/MACHINES/Makefile.stampede index ecd0810d1deafa48f462666f65c83c83bf968a56..5966907d445d26f8c4e63c65bdf66c6b46ca20ce 100644 --- a/src/MAKE/MACHINES/Makefile.stampede +++ b/src/MAKE/MACHINES/Makefile.stampede @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,7 +45,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -56,7 +56,7 @@ FFT_PATH = FFT_LIB = -L$(TACC_MKL_LIB) -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -70,12 +70,14 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) # Path to src files @@ -84,30 +86,28 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules %.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< -%.d:%.cpp - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - # Individual dependencies depend : fastdep.exe $(SRC) diff --git a/src/MAKE/MACHINES/Makefile.storm b/src/MAKE/MACHINES/Makefile.storm index e5e379e5ce171d3a6cadcd4d16bd3b77f5982b22..3178d840e9ef4320ddb230f596ef171815a9c176 100644 --- a/src/MAKE/MACHINES/Makefile.storm +++ b/src/MAKE/MACHINES/Makefile.storm @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,33 +45,33 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -I/projects/fftw/fftw-2.1.5/include -FFT_PATH = -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.tacc b/src/MAKE/MACHINES/Makefile.tacc index f684c19ecfbbe63143e7ab1c303a5d87137396f4..2cf263a8dbe763071758502de57c424b00d8f31a 100644 --- a/src/MAKE/MACHINES/Makefile.tacc +++ b/src/MAKE/MACHINES/Makefile.tacc @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,36 +44,33 @@ MPI_PATH = MPI_LIB = -lmpich -lpthread # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFTW_INC = ${TACC_FFTW2_INC} -FFTW_LIB = ${TACC_FFTW2_LIB} - -FFT_INC = -DFFT_FFTW2 -I${FFTW_INC} -FFT_PATH = -L${FFTW_LIB} -FFT_LIB = ${FFTW_LIB}/libfftw.a +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -88,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.theta b/src/MAKE/MACHINES/Makefile.theta index 663f2120204b3c2144c1ffac32e68d9bbdaa1e29..52f82607112cb5e0ab42088da1e5df2cb653ce89 100644 --- a/src/MAKE/MACHINES/Makefile.theta +++ b/src/MAKE/MACHINES/Makefile.theta @@ -30,12 +30,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP #-DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -48,7 +48,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -60,7 +60,7 @@ FFT_LIB = -L$(MKLROOT)/lib/intel64/ -Wl,--start-group -lmkl_intel_ilp64 \ -lmkl_intel_thread -lmkl_core -Wl,--end-group # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -80,6 +80,8 @@ include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) # Path to src files @@ -88,30 +90,28 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules %.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< -%.d:%.cpp - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - # Individual dependencies depend : fastdep.exe $(SRC) diff --git a/src/MAKE/MACHINES/Makefile.ubuntu b/src/MAKE/MACHINES/Makefile.ubuntu index f274780f8e1763166265e53195a42d1bd4f215de..2764f457a7c6f78d44e4672a33b0e5c8e63d5384 100644 --- a/src/MAKE/MACHINES/Makefile.ubuntu +++ b/src/MAKE/MACHINES/Makefile.ubuntu @@ -30,12 +30,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -48,7 +48,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -59,7 +59,7 @@ FFT_PATH = FFT_LIB = -lfftw3 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -73,8 +73,8 @@ JPG_LIB = -ljpeg -lpng # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -89,28 +89,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.ubuntu_simple b/src/MAKE/MACHINES/Makefile.ubuntu_simple index d4ac53a145abe33d29ce5ce4be8ff7e626b3f238..e162830ec5026ff4b196b896af550f872fb72f80 100644 --- a/src/MAKE/MACHINES/Makefile.ubuntu_simple +++ b/src/MAKE/MACHINES/Makefile.ubuntu_simple @@ -29,12 +29,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -42,38 +42,38 @@ LMP_INC = -DLAMMPS_GZIP # PATH = path for MPI library # LIB = name of MPI library -MPI_INC = -MPI_PATH = +MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 +MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library FFT_INC = -FFT_PATH = +FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = +JPG_INC = +JPG_PATH = JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -88,28 +88,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.white b/src/MAKE/MACHINES/Makefile.white index 42daf850f32dea89728dddd0504709eba1b112f5..b07e14a30e1dabbe03217e92460e2649f371a937 100644 --- a/src/MAKE/MACHINES/Makefile.white +++ b/src/MAKE/MACHINES/Makefile.white @@ -1,4 +1,4 @@ -# kokkos_cuda = KOKKOS/CUDA package, OpenMPI with nvcc compiler, Kepler GPU +# white = KOKKOS/CUDA package, OpenMPI with nvcc compiler, Pascal GPU, Power8 CPU SHELL = /bin/sh @@ -30,12 +30,12 @@ KOKKOS_ARCH = Pascal60,Power8 # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -48,33 +48,33 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -89,28 +89,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.xe6 b/src/MAKE/MACHINES/Makefile.xe6 index 6b8b9595bf287ad6c7159ab8e50d3757226ddd39..0971965bbf3af4710ec0e138f0d66d3ecc1ed6f0 100644 --- a/src/MAKE/MACHINES/Makefile.xe6 +++ b/src/MAKE/MACHINES/Makefile.xe6 @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,33 +45,33 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -FFT_PATH = -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.xt3 b/src/MAKE/MACHINES/Makefile.xt3 index 615bad3611d3bb073547c20b49aeeb2c0910e460..5752e6169257726d09b2c92fbe087a94252313b7 100644 --- a/src/MAKE/MACHINES/Makefile.xt3 +++ b/src/MAKE/MACHINES/Makefile.xt3 @@ -28,12 +28,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_XDR # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -46,33 +46,33 @@ MPI_PATH = MPI_LIB = -lmpich -lpthread # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -I$(FFTW_INC) -FFT_PATH = -L$(FFTW_LIB) -FFT_LIB = -ldfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -87,28 +87,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.xt5 b/src/MAKE/MACHINES/Makefile.xt5 index 2552a7060a419cd697a7d8f0399c1b576e35625c..9c4cbe6ee63a1486ab4acb1b27f3cc6563c1853a 100644 --- a/src/MAKE/MACHINES/Makefile.xt5 +++ b/src/MAKE/MACHINES/Makefile.xt5 @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,33 +45,33 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -DFFT_FFTW2 -I/home/sjplimp/fftw/fftw -FFT_PATH = -L/home/sjplimp/fftw/fftw/.libs -FFT_LIB = -lfftw +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/MACHINES/Makefile.bgq.details b/src/MAKE/MACHINES/bgq.make.details similarity index 93% rename from src/MAKE/MACHINES/Makefile.bgq.details rename to src/MAKE/MACHINES/bgq.make.details index be20b4388010aa03a08501811e4b464101fdcffd..0febd69d267760e3068f8e027a4d110b12233b9e 100644 --- a/src/MAKE/MACHINES/Makefile.bgq.details +++ b/src/MAKE/MACHINES/bgq.make.details @@ -74,12 +74,12 @@ SHLIBFLAGS = # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -95,7 +95,7 @@ MPI_INC += -DMPICH_SKIP_MPICXX MPI_LIB += #/home/jhammond/OSPRI/branches/marpn/wrap/libmpiarbrpn.a # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -106,15 +106,15 @@ FFT_PATH = #/soft/libraries/alcf/current/xl/FFTW2 FFT_LIB = -L/soft/libraries/alcf/current/xl/FFTW2/lib -ldfftw # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = depend : fastdep.exe $(SRC) @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 diff --git a/src/MAKE/MINE/.gitignore b/src/MAKE/MINE/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..9c45e661e860f30769c92ef34dfbf8952704f38f --- /dev/null +++ b/src/MAKE/MINE/.gitignore @@ -0,0 +1 @@ +/Makefile.* diff --git a/src/MAKE/Makefile.mpi b/src/MAKE/Makefile.mpi index b2730f78225f6de5a1c838200aca142fdcb9142b..0be1a6373593223dc74cc4b4596aba6e350271d0 100644 --- a/src/MAKE/Makefile.mpi +++ b/src/MAKE/Makefile.mpi @@ -44,7 +44,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,7 +55,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -69,8 +69,8 @@ JPG_LIB = # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,18 +85,22 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules diff --git a/src/MAKE/Makefile.serial b/src/MAKE/Makefile.serial index 86ddd0505399443f110bd39632a0cc4f260d091b..01a160df3392a4da55305e1cae9ff51c506c96de 100644 --- a/src/MAKE/Makefile.serial +++ b/src/MAKE/Makefile.serial @@ -44,7 +44,7 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_stubs # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,7 +55,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -69,8 +69,8 @@ JPG_LIB = # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,18 +85,22 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules diff --git a/src/MAKE/OPTIONS/Makefile.big b/src/MAKE/OPTIONS/Makefile.big index 59de28cad7276bc24dd982b186199a92163f723d..56b0c48249799e74a2eed41809b34260cf49f3be 100644 --- a/src/MAKE/OPTIONS/Makefile.big +++ b/src/MAKE/OPTIONS/Makefile.big @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_BIGBIG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP -DLAMMPS_BIGBIG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.fftw b/src/MAKE/OPTIONS/Makefile.fftw index 75c3a1b92c689192944d51a68b0c58d80577c964..1abb96f6dddd5dbf0eda7470e94610ac65a030aa 100644 --- a/src/MAKE/OPTIONS/Makefile.fftw +++ b/src/MAKE/OPTIONS/Makefile.fftw @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,11 +40,11 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,22 +55,22 @@ FFT_PATH = -L/usr/local/lib FFT_LIB = -lfftw3 # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.g++_mpich b/src/MAKE/OPTIONS/Makefile.g++_mpich index 83b63b9def73df69c7621bb096901056c4891b83..fa30f64f0b53ecb0259be170b7512d0537ef2132 100644 --- a/src/MAKE/OPTIONS/Makefile.g++_mpich +++ b/src/MAKE/OPTIONS/Makefile.g++_mpich @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.g++_mpich_link b/src/MAKE/OPTIONS/Makefile.g++_mpich_link index aadbf30853a629173b54133368fb1a1cec0f717f..42d66b23171ef0dec3db76ae170a96fe4754932f 100644 --- a/src/MAKE/OPTIONS/Makefile.g++_mpich_link +++ b/src/MAKE/OPTIONS/Makefile.g++_mpich_link @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L/usr/local/lib MPI_LIB = -lmpich -lmpl -lpthread # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.g++_openmpi b/src/MAKE/OPTIONS/Makefile.g++_openmpi index 835bb5d02402590e1642f206d9bf305065d03f29..f52aa49ad7ee0f3ab73a15483ce63a01d6b09295 100644 --- a/src/MAKE/OPTIONS/Makefile.g++_openmpi +++ b/src/MAKE/OPTIONS/Makefile.g++_openmpi @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -41,37 +41,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.g++_openmpi_link b/src/MAKE/OPTIONS/Makefile.g++_openmpi_link index f3f565430de4124a4b6a524872a5c675f3b5e5f2..0aaa8bbede6a9b2c6a94bad3fdb6e76c86aa9e10 100644 --- a/src/MAKE/OPTIONS/Makefile.g++_openmpi_link +++ b/src/MAKE/OPTIONS/Makefile.g++_openmpi_link @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L/usr/local/lib MPI_LIB = -lmpi -lmpi_cxx # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.g++_serial b/src/MAKE/OPTIONS/Makefile.g++_serial index a01e4cae93b87c6103628d0642a62e30a2dc378e..93e1c502d93bb10094ddf5d2d61b645f21074dfc 100644 --- a/src/MAKE/OPTIONS/Makefile.g++_serial +++ b/src/MAKE/OPTIONS/Makefile.g++_serial @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_stubs # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.gpu b/src/MAKE/OPTIONS/Makefile.gpu index e822161c55e92efd9413eb154a1544bcf5e999aa..7cec50fbd81b08dcadd50a1a08e3bc9a1b3d4a0e 100644 --- a/src/MAKE/OPTIONS/Makefile.gpu +++ b/src/MAKE/OPTIONS/Makefile.gpu @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.hip b/src/MAKE/OPTIONS/Makefile.hip index 76affc796c86d79d7a28c4bc6e0b7c67d4f3e307..062b92fb6d292de541ec026753e58021bd327162 100644 --- a/src/MAKE/OPTIONS/Makefile.hip +++ b/src/MAKE/OPTIONS/Makefile.hip @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64 # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -45,7 +45,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -56,7 +56,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -91,18 +91,22 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules diff --git a/src/MAKE/OPTIONS/Makefile.icc_mpich b/src/MAKE/OPTIONS/Makefile.icc_mpich index e59066562a58eb1bb7103105b68fef664b06817b..81256f85b688613bfeb9e96520903e6a5cee52a4 100644 --- a/src/MAKE/OPTIONS/Makefile.icc_mpich +++ b/src/MAKE/OPTIONS/Makefile.icc_mpich @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.icc_mpich_link b/src/MAKE/OPTIONS/Makefile.icc_mpich_link index 0e9e530f88f1189aed44723134e09319c1a40190..5a8ae8b22899e6165dc975271bcfa0d4b1ad37cf 100644 --- a/src/MAKE/OPTIONS/Makefile.icc_mpich_link +++ b/src/MAKE/OPTIONS/Makefile.icc_mpich_link @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L/usr/local/lib MPI_LIB = -lmpich -lmpl -lpthread # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.icc_openmpi b/src/MAKE/OPTIONS/Makefile.icc_openmpi index 19a917e9287f11e88ef28d05e8e6357ea9994082..1ed258e717f4a5212e1d0bcecae99aff51d5d218 100644 --- a/src/MAKE/OPTIONS/Makefile.icc_openmpi +++ b/src/MAKE/OPTIONS/Makefile.icc_openmpi @@ -27,12 +27,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -41,37 +41,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.icc_openmpi_link b/src/MAKE/OPTIONS/Makefile.icc_openmpi_link index 5e991c6b90da2810c899d74682d126ac78a86cd8..33a5c529b89533f5a9b1092d314af6ed412a9645 100644 --- a/src/MAKE/OPTIONS/Makefile.icc_openmpi_link +++ b/src/MAKE/OPTIONS/Makefile.icc_openmpi_link @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L/usr/local/lib MPI_LIB = -lmpi -lmpi_cxx # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.icc_serial b/src/MAKE/OPTIONS/Makefile.icc_serial index 34bf091932d36fd35defa6535b568bfe1c3841f7..6880e9e2dc6ce6f0f4226234b374003968f7c2f3 100644 --- a/src/MAKE/OPTIONS/Makefile.icc_serial +++ b/src/MAKE/OPTIONS/Makefile.icc_serial @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L../STUBS MPI_LIB = -lmpi_stubs # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.intel_coprocessor b/src/MAKE/OPTIONS/Makefile.intel_coprocessor index 44f5c99f709a2bf83ce2704012f0dd6ca66ef18f..7964b1303e3381feb4ca3fced1e5bd59ead87172 100644 --- a/src/MAKE/OPTIONS/Makefile.intel_coprocessor +++ b/src/MAKE/OPTIONS/Makefile.intel_coprocessor @@ -1,4 +1,4 @@ -# intel_phi = USER-INTEL package with Phi offload support, Intel MPI, MKL FFT +# intel_coprocessor = USER-INTEL package with Phi offload support, Intel MPI, MKL FFT SHELL = /bin/sh @@ -29,12 +29,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -43,11 +43,11 @@ LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = +MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -58,7 +58,7 @@ FFT_PATH = FFT_LIB = -L$(MKLROOT)/lib/intel64/ -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -72,8 +72,8 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -88,28 +88,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.intel_cpu b/src/MAKE/OPTIONS/Makefile.intel_cpu index f52b4f30292e7350f309e5a0ae11bd7ac624bdb7..8d887a0d7b408b8b60512d8dfcfdc2c163c3bb19 100644 --- a/src/MAKE/OPTIONS/Makefile.intel_cpu +++ b/src/MAKE/OPTIONS/Makefile.intel_cpu @@ -1,4 +1,4 @@ -# intel_cpu_intelmpi = USER-INTEL package, Intel MPI, MKL FFT +# intel_cpu = USER-INTEL package, Intel MPI, MKL FFT SHELL = /bin/sh @@ -30,12 +30,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,11 +44,11 @@ LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = +MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -59,7 +59,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -73,8 +73,8 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -89,28 +89,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi b/src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi index 07d720a5920e2e130ed22978e019b22c6692f7c7..f085aac55af8a00ca68a253bea9f0da56a28cd92 100644 --- a/src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi +++ b/src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi @@ -30,12 +30,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -48,7 +48,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -59,22 +59,22 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -89,28 +89,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.intel_cpu_mpich b/src/MAKE/OPTIONS/Makefile.intel_cpu_mpich index 51cf975e5c31de822544e0e8a2ae7a5a7d3da8ea..7f6b6873348b52dd124d4937e134f623071ecb41 100644 --- a/src/MAKE/OPTIONS/Makefile.intel_cpu_mpich +++ b/src/MAKE/OPTIONS/Makefile.intel_cpu_mpich @@ -30,12 +30,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -48,7 +48,7 @@ MPI_PATH = -L/usr/local/lib MPI_LIB = -lmpich -lmpl -lpthread # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -73,8 +73,8 @@ JPG_LIB = # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -89,28 +89,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.intel_cpu_openmpi b/src/MAKE/OPTIONS/Makefile.intel_cpu_openmpi index 342637a460f37ec650c6075a7adc8e1f1a08f6cf..54011015464cea848e932ecef1d107e65288773e 100644 --- a/src/MAKE/OPTIONS/Makefile.intel_cpu_openmpi +++ b/src/MAKE/OPTIONS/Makefile.intel_cpu_openmpi @@ -31,12 +31,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -49,7 +49,7 @@ MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -60,22 +60,22 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -90,28 +90,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.jpeg b/src/MAKE/OPTIONS/Makefile.jpeg index f74a2eb1f776bb429044c04f5fd5a9be3022b354..7d4e0290339db0369715c887746790ebd30319c4 100644 --- a/src/MAKE/OPTIONS/Makefile.jpeg +++ b/src/MAKE/OPTIONS/Makefile.jpeg @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,22 +40,22 @@ LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -69,8 +69,8 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.knl b/src/MAKE/OPTIONS/Makefile.knl index ab1b756a676124b3e720caed28b3570f1f3ce081..92030fb953121ccadc4ec8ab5f34bb3e3a1a9c6f 100644 --- a/src/MAKE/OPTIONS/Makefile.knl +++ b/src/MAKE/OPTIONS/Makefile.knl @@ -29,12 +29,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -43,11 +43,11 @@ LMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = +MPI_PATH = MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -58,7 +58,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -72,12 +72,14 @@ JPG_LIB = -ljpeg # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) +EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) +EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) # Path to src files @@ -86,30 +88,28 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules %.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< -%.d:%.cpp - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - # Individual dependencies depend : fastdep.exe $(SRC) diff --git a/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi b/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi index ba34bc25eb7147e8e77d3d258c5821e5c7d7c2e9..b9b262ed1d736e9173286a1d959fc0a451aec991 100644 --- a/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi +++ b/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi @@ -31,7 +31,7 @@ KOKKOS_ARCH = Kepler35 # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP @@ -45,11 +45,11 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -60,22 +60,22 @@ FFT_PATH = FFT_LIB = -lcufft # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -90,28 +90,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.kokkos_mpi_only b/src/MAKE/OPTIONS/Makefile.kokkos_mpi_only index 7aea2f366ac28cc8e5fa7e94b72a0783d93efccf..8cc4375b59d7db17873d0a0c1f5c1725959427ba 100644 --- a/src/MAKE/OPTIONS/Makefile.kokkos_mpi_only +++ b/src/MAKE/OPTIONS/Makefile.kokkos_mpi_only @@ -27,12 +27,12 @@ KOKKOS_DEVICES = Serial # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -41,37 +41,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.kokkos_omp b/src/MAKE/OPTIONS/Makefile.kokkos_omp index d0e12796c05d191b2754aab5984eb6f4f377a620..750751b73c880d2f061d4ab7bd9a3f1e78c8fa76 100644 --- a/src/MAKE/OPTIONS/Makefile.kokkos_omp +++ b/src/MAKE/OPTIONS/Makefile.kokkos_omp @@ -27,12 +27,12 @@ KOKKOS_DEVICES = OpenMP # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -41,37 +41,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -86,28 +86,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.kokkos_phi b/src/MAKE/OPTIONS/Makefile.kokkos_phi index 7dc0bb091ac59f65ece63e7f685307ce354c64f0..4e85b9e5b8ab9aba6a8d03272a614657e59218ac 100644 --- a/src/MAKE/OPTIONS/Makefile.kokkos_phi +++ b/src/MAKE/OPTIONS/Makefile.kokkos_phi @@ -28,12 +28,12 @@ KOKKOS_ARCH = KNL # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -42,37 +42,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -87,39 +87,34 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies -#depend : fastdep.exe $(SRC) -# @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 - -#fastdep.exe: ../DEPEND/fastdep.c -# cc -O -o $@ $< +depend : fastdep.exe $(SRC) + @./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 -#sinclude .depend +fastdep.exe: ../DEPEND/fastdep.c + cc -O -o $@ $< -DEPENDS = $(OBJ:.o=.d) -sinclude $(DEPENDS) \ No newline at end of file +sinclude .depend diff --git a/src/MAKE/OPTIONS/Makefile.mgptfast b/src/MAKE/OPTIONS/Makefile.mgptfast index ed27993706df861373bb0ff1ab081e8a23f5c542..6baae1e2ee908afc34f5fbb936497f55aa5e9ba4 100644 --- a/src/MAKE/OPTIONS/Makefile.mgptfast +++ b/src/MAKE/OPTIONS/Makefile.mgptfast @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.omp b/src/MAKE/OPTIONS/Makefile.omp index fd485d541695bc10470223b30eed8487d938139b..80afad79aefb989042274343a0722ff83e5e4174 100644 --- a/src/MAKE/OPTIONS/Makefile.omp +++ b/src/MAKE/OPTIONS/Makefile.omp @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.opt b/src/MAKE/OPTIONS/Makefile.opt index 29903565dc70d8d1901429c447cf7167a7a0d83e..662f25eee6ee50b78fbc2ff16f70c2033568cf29 100644 --- a/src/MAKE/OPTIONS/Makefile.opt +++ b/src/MAKE/OPTIONS/Makefile.opt @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,37 +40,37 @@ LMP_INC = -DLAMMPS_GZIP # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.pgi_mpich_link b/src/MAKE/OPTIONS/Makefile.pgi_mpich_link index 444a2ffc12ca80f53c6784a6ec118f0ec6f5c015..57101c55ae01981258e569b1804b9432c08cfcb9 100644 --- a/src/MAKE/OPTIONS/Makefile.pgi_mpich_link +++ b/src/MAKE/OPTIONS/Makefile.pgi_mpich_link @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -44,33 +44,33 @@ MPI_PATH = -L/usr/local/mpich-1.2.6/pg/lib MPI_LIB = -lmpich # FFT library -# see discussion in Section 2.2 (step 6) of manaul +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library -FFT_INC = -FFT_PATH = -FFT_LIB = +FFT_INC = +FFT_PATH = +FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library # LIB = name(s) of JPEG library and/or PNG library -JPG_INC = -JPG_PATH = -JPG_LIB = +JPG_INC = +JPG_PATH = +JPG_LIB = # --------------------------------------------------------------------- # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MAKE/OPTIONS/Makefile.png b/src/MAKE/OPTIONS/Makefile.png index 34b54dfb9370a1b358e3091f38d2ee56dd048c5f..442dddeb66f83893f0397fa1bab75bf14fe5646c 100644 --- a/src/MAKE/OPTIONS/Makefile.png +++ b/src/MAKE/OPTIONS/Makefile.png @@ -26,12 +26,12 @@ SHLIBFLAGS = -shared # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings -# see possible settings in Section 2.2 (step 4) of manual +# see possible settings in Section 3.5 of the manual LMP_INC = -DLAMMPS_GZIP -DLAMMPS_PNG # MPI library -# see discussion in Section 2.2 (step 5) of manual +# see discussion in Section 3.4 of the manual # MPI wrapper compiler/linker can provide this info # can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts @@ -40,11 +40,11 @@ LMP_INC = -DLAMMPS_GZIP -DLAMMPS_PNG # LIB = name of MPI library MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -MPI_PATH = -MPI_LIB = +MPI_PATH = +MPI_LIB = # FFT library -# see discussion in Section 2.2 (step 6) of manual +# see discussion in Section 3.5.2 of manual # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library @@ -55,7 +55,7 @@ FFT_PATH = FFT_LIB = # JPEG and/or PNG library -# see discussion in Section 2.2 (step 7) of manual +# see discussion in Section 3.5.4 of manual # only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC # INC = path(s) for jpeglib.h and/or png.h # PATH = path(s) for JPEG library and/or PNG library @@ -69,8 +69,8 @@ JPG_LIB = -lpng # build rules and dependencies # do not edit this section -include Makefile.package.settings -include Makefile.package +include Makefile.package.settings +include Makefile.package EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) @@ -85,28 +85,26 @@ vpath %.h .. # Link target -$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS) - $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) - $(SIZE) $(EXE) +$(EXE): main.o $(LMPLIB) $(EXTRA_LINK_DEPENDS) + $(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(LMPLINK) $(EXTRA_LIB) $(LIB) -o $@ + $(SIZE) $@ # Library targets -lib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) +$(ARLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(ARCHIVE) $(ARFLAGS) ../$(ARLIB) $(OBJ) + @rm -f $(ARLIB) + @ln -s ../$(ARLIB) $(ARLIB) -shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ - $(OBJ) $(EXTRA_LIB) $(LIB) +$(SHLIB): $(OBJ) $(EXTRA_LINK_DEPENDS) + $(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o ../$(SHLIB) \ + $(OBJ) $(EXTRA_LIB) $(LIB) + @rm -f $(SHLIB) + @ln -s ../$(SHLIB) $(SHLIB) # Compilation rules -%.o:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< - -%.d:%.cpp $(EXTRA_CPP_DEPENDS) - $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ - -%.o:%.cu $(EXTRA_CPP_DEPENDS) +%.o:%.cpp $(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< # Individual dependencies diff --git a/src/MANYBODY/pair_polymorphic.cpp b/src/MANYBODY/pair_polymorphic.cpp index 8db4d63d4cf684dc5a6bd0a4947595d7f56b13da..7d4eb06d3cf39e245becf8ad08fdea4696aad7b5 100644 --- a/src/MANYBODY/pair_polymorphic.cpp +++ b/src/MANYBODY/pair_polymorphic.cpp @@ -46,6 +46,7 @@ PairPolymorphic::PairPolymorphic(LAMMPS *lmp) : Pair(lmp) nelements = 0; elements = NULL; + match = NULL; pairParameters = NULL; tripletParameters = NULL; elem2param = NULL; @@ -168,7 +169,7 @@ void PairPolymorphic::compute(int eflag, int vflag) firstneighW1 = new int[neighsize]; } - if (eta) { + if (eta == 1) { iparam_ii = elem2param[itype][itype]; PairParameters & p = pairParameters[iparam_ii]; emb = (p.F)->get_vmax(); @@ -193,7 +194,7 @@ void PairPolymorphic::compute(int eflag, int vflag) PairParameters & p = pairParameters[iparam_ij]; // do not include the neighbor if get_vmax() <= epsilon because the function is near zero - if (eta) { + if (eta == 1) { if (emb > epsilon) { iparam_jj = elem2param[jtype][jtype]; PairParameters & q = pairParameters[iparam_jj]; @@ -255,7 +256,7 @@ void PairPolymorphic::compute(int eflag, int vflag) evdwl,0.0,fpair,delx,dely,delz); } - if (eta) { + if (eta == 1) { if (emb > epsilon) { @@ -356,7 +357,7 @@ void PairPolymorphic::compute(int eflag, int vflag) PairParameters & q = pairParameters[iparam_ik]; (q.W)->value(r2,wfac,1,fpair,0); - (q.P)->value(r1-(p.xi)*r2,pfac,1,fpair,0); + (trip.P)->value(r1-(p.xi)*r2,pfac,1,fpair,0); (trip.G)->value(costheta,gfac,1,fpair,0); zeta_ij += wfac*pfac*gfac; @@ -397,7 +398,7 @@ void PairPolymorphic::compute(int eflag, int vflag) iparam_ik = elem2param[itype][ktype]; PairParameters & q = pairParameters[iparam_ik]; - attractive(&q,&trip,prefactor,r1,r2,delr1,delr2,fi,fj,fk); + attractive(&p,&q,&trip,prefactor,r1,r2,delr1,delr2,fi,fj,fk); f[i][0] += fi[0]; f[i][1] += fi[1]; @@ -586,7 +587,7 @@ void PairPolymorphic::read_file(char *file) error->all(FLERR,"Incorrect number of elements in potential file"); match = new int[nelements]; ptr = strtok(NULL," \t\n\r\f"); // 1st line, 2nd token - eta = (atoi(ptr)>0) ? true:false; + eta = atoi(ptr); // map the elements in the potential file to LAMMPS atom types for (int i = 0; i < nelements; i++) { @@ -654,17 +655,9 @@ void PairPolymorphic::read_file(char *file) p.cut = atof(ptr); p.cutsq = p.cut*p.cut; ptr = strtok(NULL," \t\n\r\f"); // 2nd token - p.xi = (atoi(ptr)>0) ? true:false; + p.xi = atof(ptr); } - // set cutmax to max of all params - cutmax = 0.0; - for (int i = 0; i < npair; i++) { - PairParameters & p = pairParameters[i]; - if (p.cut > cutmax) cutmax = p.cut; - } - cutmaxsq = cutmax*cutmax; - // start reading tabular functions double * singletable = new double[nr]; for (int i = 0; i < npair; i++) { // U @@ -694,14 +687,53 @@ void PairPolymorphic::read_file(char *file) p.W = new tabularFunction(nr,0.0,p.cut); (p.W)->set_values(nr,0.0,p.cut,singletable,epsilon); } - for (int i = 0; i < npair; i++) { // P + + cutmax = 0.0; + for (int i = 0; i < npair; i++) { PairParameters & p = pairParameters[i]; - if (comm->me == 0) { - grab(fp,nr,singletable); + if (p.cut > cutmax) cutmax = p.cut; + } + cutmaxsq = cutmax*cutmax; + + if (eta != 3) { + for (int j = 0; j < nelements; j++) { // P + if (comm->me == 0) { + grab(fp,nr,singletable); + } + MPI_Bcast(singletable,nr,MPI_DOUBLE,0,world); + for (int i = 0; i < nelements; i++) { + TripletParameters & p = tripletParameters[i*nelements*nelements+j*nelements+j]; + p.P = new tabularFunction(nr,-cutmax,cutmax); + (p.P)->set_values(nr,-cutmax,cutmax,singletable,epsilon); + } + } + for (int j = 0; j < nelements-1; j++) { // P + for (int k = j+1; k < nelements; k++) { + if (comm->me == 0) { + grab(fp,nr,singletable); + } + MPI_Bcast(singletable,nr,MPI_DOUBLE,0,world); + for (int i = 0; i < nelements; i++) { + TripletParameters & p = tripletParameters[i*nelements*nelements+j*nelements+k]; + p.P = new tabularFunction(nr,-cutmax,cutmax); + (p.P)->set_values(nr,-cutmax,cutmax,singletable,epsilon); + TripletParameters & q = tripletParameters[i*nelements*nelements+k*nelements+j]; + q.P = new tabularFunction(nr,-cutmax,cutmax); + (q.P)->set_values(nr,-cutmax,cutmax,singletable,epsilon); + } + } + } + } + if (eta == 3) { + for (int i = 0; i < ntriple; i++) { // P + TripletParameters & p = tripletParameters[i]; + if (comm->me == 0) { + grab(fp,nr,singletable); + } + MPI_Bcast(singletable,nr,MPI_DOUBLE,0,world); + p.P = new tabularFunction(nr,-cutmax,cutmax); + (p.P)->set_values(nr,-cutmax,cutmax,singletable,epsilon); } - MPI_Bcast(singletable,nr,MPI_DOUBLE,0,world); - p.P = new tabularFunction(nr,-cutmax,cutmax); - (p.P)->set_values(nr,-cutmax,cutmax,singletable,epsilon); } delete[] singletable; singletable = new double[ng]; @@ -730,6 +762,22 @@ void PairPolymorphic::read_file(char *file) fclose(fp); } + // recalculate cutoffs of all params + for (int i = 0; i < npair; i++) { + PairParameters & p = pairParameters[i]; + p.cut = (p.U)->get_xmax(); + if (p.cut < (p.V)->get_xmax()) p.cut = (p.V)->get_xmax(); + if (p.cut < (p.W)->get_xmax()) p.cut = (p.W)->get_xmax(); + p.cutsq = p.cut*p.cut; + } + + // set cutmax to max of all params + cutmax = 0.0; + for (int i = 0; i < npair; i++) { + PairParameters & p = pairParameters[i]; + if (cutmax < p.cut) cutmax = p.cut; + } + cutmaxsq = cutmax*cutmax; } /* ---------------------------------------------------------------------- */ @@ -771,15 +819,16 @@ void PairPolymorphic::setup_params() // for debugging, call write_tables() to check the tabular functions // if (comm->me == 0) { // write_tables(51); -// errorX->all(FLERR,"Test potential tables"); // } +// error->all(FLERR,"Test potential tables"); } /* ---------------------------------------------------------------------- attractive term ------------------------------------------------------------------------- */ -void PairPolymorphic::attractive(PairParameters *p, TripletParameters *trip, +void PairPolymorphic::attractive(PairParameters *p, PairParameters *q, + TripletParameters *trip, double prefactor, double rij, double rik, double *delrij, double *delrik, double *fi, double *fj, double *fk) @@ -793,7 +842,7 @@ void PairPolymorphic::attractive(PairParameters *p, TripletParameters *trip, rikinv = 1.0/rik; vec3_scale(rikinv,delrik,rik_hat); - ters_zetaterm_d(prefactor,rij_hat,rij,rik_hat,rik,fi,fj,fk,p,trip); + ters_zetaterm_d(prefactor,rij_hat,rij,rik_hat,rik,fi,fj,fk,p,q,trip); } /* ---------------------------------------------------------------------- */ @@ -802,46 +851,39 @@ void PairPolymorphic::ters_zetaterm_d(double prefactor, double *rij_hat, double rij, double *rik_hat, double rik, double *dri, double *drj, double *drk, - PairParameters *p, TripletParameters *trip) + PairParameters *p, PairParameters *q, + TripletParameters *trip) { double gijk,gijk_d,ex_delr,ex_delr_d,fc,dfc,cos_theta; double dcosdri[3],dcosdrj[3],dcosdrk[3]; cos_theta = vec3_dot(rij_hat,rik_hat); - (p->W)->value(rik,fc,1,dfc,1); - (p->P)->value(rij-(p->xi)*rik,ex_delr,1,ex_delr_d,1); + (q->W)->value(rik,fc,1,dfc,1); + (trip->P)->value(rij-(p->xi)*rik,ex_delr,1,ex_delr_d,1); (trip->G)->value(cos_theta,gijk,1,gijk_d,1); costheta_d(rij_hat,rij,rik_hat,rik,dcosdri,dcosdrj,dcosdrk); // compute the derivative wrt Ri - // dri = -dfc*gijk*ex_delr*rik_hat; - // dri += fc*gijk_d*ex_delr*dcosdri; - // dri += fc*gijk*ex_delr_d*(rik_hat - rij_hat); vec3_scale(-dfc*gijk*ex_delr,rik_hat,dri); vec3_scaleadd(fc*gijk_d*ex_delr,dcosdri,dri,dri); - vec3_scaleadd(fc*gijk*ex_delr_d,rik_hat,dri,dri); + vec3_scaleadd(fc*gijk*ex_delr_d*(p->xi),rik_hat,dri,dri); vec3_scaleadd(-fc*gijk*ex_delr_d,rij_hat,dri,dri); vec3_scale(prefactor,dri,dri); // compute the derivative wrt Rj - // drj = fc*gijk_d*ex_delr*dcosdrj; - // drj += fc*gijk*ex_delr_d*rij_hat; vec3_scale(fc*gijk_d*ex_delr,dcosdrj,drj); vec3_scaleadd(fc*gijk*ex_delr_d,rij_hat,drj,drj); vec3_scale(prefactor,drj,drj); // compute the derivative wrt Rk - // drk = dfc*gijk*ex_delr*rik_hat; - // drk += fc*gijk_d*ex_delr*dcosdrk; - // drk += -fc*gijk*ex_delr_d*rik_hat; vec3_scale(dfc*gijk*ex_delr,rik_hat,drk); vec3_scaleadd(fc*gijk_d*ex_delr,dcosdrk,drk,drk); - vec3_scaleadd(-fc*gijk*ex_delr_d,rik_hat,drk,drk); + vec3_scaleadd(-fc*gijk*ex_delr_d*(p->xi),rik_hat,drk,drk); vec3_scale(prefactor,drk,drk); } @@ -919,26 +961,29 @@ void PairPolymorphic::write_tables(int npts) } for (int i = 0; i < nelements; i++) { for (int j = 0; j < nelements; j++) { + for (int k = 0; k < nelements; k++) { strcpy(line,elements[i]); strcat(line,elements[j]); + strcat(line,elements[k]); strcat(line,"_P"); strcat(line,tag); fp = fopen(line, "w"); - int iparam_ij = elem2param[i][j]; - PairParameters & pair = pairParameters[iparam_ij]; + int iparam_ij = elem3param[i][j][k]; + TripletParameters & pair = tripletParameters[iparam_ij]; xmin = (pair.P)->get_xmin(); xmax = (pair.P)->get_xmax(); double xl = xmax - xmin; xmin = xmin - 0.5*xl; xmax = xmax + 0.5*xl; - for (int k = 0; k < npts; k++) { - x = xmin + (xmax-xmin) * k / (npts-1); + for (int n = 0; n < npts; n++) { + x = xmin + (xmax-xmin) * n / (npts-1); (pair.P)->value(x, pf, 1, pfp, 1); fprintf(fp,"%12.4f %12.4f %12.4f \n",x,pf,pfp); } fclose(fp); } } + } for (int i = 0; i < nelements; i++) { for (int j = 0; j < nelements; j++) { for (int k = 0; k < nelements; k++) { diff --git a/src/MANYBODY/pair_polymorphic.h b/src/MANYBODY/pair_polymorphic.h index e7c3cd0d26d9596c34e81d11579d4e0fc5dfedfb..744e7b402cadb0be9019558b66f2c1f9e481251b 100644 --- a/src/MANYBODY/pair_polymorphic.h +++ b/src/MANYBODY/pair_polymorphic.h @@ -104,32 +104,59 @@ class PairPolymorphic : public Pair { } void set_values(int n, double x1, double x2, double * values, double epsilon) { - int i0; - i0 = n-1; + int shrink = 1; + int ilo,ihi; + double vlo,vhi; + ilo = 0; + ihi = n-1; + for (int i = 0; i < n; i++) { + if (fabs(values[i]) <= epsilon) { + ilo = i; + } else { + break; + } + } + for (int i = n-1; i >= 0; i--) { + if (fabs(values[i]) <= epsilon) { + ihi = i; + } else { + break; + } + } + if (ihi < ilo) ihi = ilo; + vlo = values[ilo]; + vhi = values[ilo]; + for (int i = ilo; i <= ihi; i++) { + if (vlo > values[i]) vlo = values[i]; + if (vhi < values[i]) vhi = values[i]; + } + // shrink (remove near zero points) reduces cutoff radius, and therefore computational cost // do not shrink when x2 < 1.1 (angular function) or x2 > 20.0 (non-radial function) - if (x2 >= 1.1 && x2 <= 20.0) { - for (int i = n-1; i >= 0; i--) { - if (fabs(values[i]) > epsilon) { - i0 = i; - break; - } - } + if (x2 < 1.1 || x2 > 20.0) { + shrink = 0; } // do not shrink when when list is abnormally small - if (i0 < 10/n) { - i0 = n-1; - } else if (i0 < n-1) { - values[i0] = 0.0; - i0 = i0 + 1; - values[i0] = 0.0; + if (ihi - ilo < 50) { + shrink = 0; } - xmin = x1; - xmax = x1 + (x2-x1)/(n -1)*i0; +// shrink if it is a constant + if (vhi - vlo <= epsilon) { +// shrink = 1; + } + + if (shrink == 0) { + ilo = 0; + ihi = n-1; + } + xmin = x1 + (x2-x1)/(n -1)*ilo; + xmax = xmin + (x2-x1)/(n -1)*(ihi-ilo); xmaxsq = xmax*xmax; - n = i0+1; + n = ihi - ilo + 1; resize(n); - memcpy(ys,values,n*sizeof(double)); + for (int i = ilo; i <= ihi; i++) { + ys[i-ilo] = values[i]; + } initialize(); } void value(double x, double &y, int ny, double &y1, int ny1) @@ -228,32 +255,32 @@ class PairPolymorphic : public Pair { struct PairParameters { double cut; double cutsq; - bool xi; // "indicator" + double xi; class tabularFunction * U; class tabularFunction * V; class tabularFunction * W; - class tabularFunction * P; class tabularFunction * F; PairParameters() { cut = 0.0; cutsq = 0.0; - xi = true; + xi = 1.0; U = NULL; V = NULL; W = NULL; - P = NULL; F = NULL; }; }; struct TripletParameters { + class tabularFunction * P; class tabularFunction * G; TripletParameters() { + P = NULL; G = NULL; }; }; double epsilon; - bool eta; // global indicator + int eta; int nx,nr,ng; // table sizes double maxX; @@ -283,11 +310,13 @@ class PairPolymorphic : public Pair { void setup_params(); void write_tables(int); - void attractive(PairParameters *, TripletParameters *, double, double, - double, double *, double *, double *, double *, double *); + void attractive(PairParameters *, PairParameters *, TripletParameters *, + double, double, double, double *, double *, double *, + double *, double *); void ters_zetaterm_d(double, double *, double, double *, double, double *, - double *, double *, PairParameters *, TripletParameters *); + double *, double *, PairParameters *, PairParameters *, + TripletParameters *); void costheta_d(double *, double, double *, double, double *, double *, double *); diff --git a/src/MPIIO/dump_atom_mpiio.cpp b/src/MPIIO/dump_atom_mpiio.cpp index 2b663554cc09621efd1524f4fad4994584d3ace3..d59ed7bde876628a92ddc4bc7ccdaf756bcb9139 100644 --- a/src/MPIIO/dump_atom_mpiio.cpp +++ b/src/MPIIO/dump_atom_mpiio.cpp @@ -15,6 +15,7 @@ Contributing author: Paul Coffman (IBM) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dump_atom_mpiio.h" #include #include @@ -587,7 +588,7 @@ int DumpAtomMPIIO::convert_image_omp(int n, double *mybuf) mpifh_buffer_line_per_thread[i] = (char *) malloc(DUMP_BUF_CHUNK_SIZE * sizeof(char)); mpifh_buffer_line_per_thread[i][0] = '\0'; -#pragma omp parallel default(none) shared(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) { int tid = omp_get_thread_num(); int m=0; @@ -677,7 +678,7 @@ int DumpAtomMPIIO::convert_noimage_omp(int n, double *mybuf) mpifh_buffer_line_per_thread[i] = (char *) malloc(DUMP_BUF_CHUNK_SIZE * sizeof(char)); mpifh_buffer_line_per_thread[i][0] = '\0'; -#pragma omp parallel default(none) shared(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) { int tid = omp_get_thread_num(); int m=0; diff --git a/src/MPIIO/dump_cfg_mpiio.cpp b/src/MPIIO/dump_cfg_mpiio.cpp index 31848b550c253cd9a350e794a78c349477b6e0cb..18368db3308d2c42922b03e2cac9f7bc06aca47c 100644 --- a/src/MPIIO/dump_cfg_mpiio.cpp +++ b/src/MPIIO/dump_cfg_mpiio.cpp @@ -15,6 +15,7 @@ Contributing author: Paul Coffman (IBM) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dump_cfg_mpiio.h" #include #include @@ -365,7 +366,7 @@ int DumpCFGMPIIO::convert_string_omp(int n, double *mybuf) mpifh_buffer_line_per_thread[i] = (char *) malloc(DUMP_BUF_CHUNK_SIZE * sizeof(char)); mpifh_buffer_line_per_thread[i][0] = '\0'; -#pragma omp parallel default(none) shared(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) { int tid = omp_get_thread_num(); int m=0; diff --git a/src/MPIIO/dump_custom_mpiio.cpp b/src/MPIIO/dump_custom_mpiio.cpp index dca5833c5b885d65deb78eaf9ba93eb8ff35a746..526021d8950a7b61534fef5801015e6cc132aadb 100644 --- a/src/MPIIO/dump_custom_mpiio.cpp +++ b/src/MPIIO/dump_custom_mpiio.cpp @@ -15,6 +15,7 @@ Contributing author: Paul Coffman (IBM) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dump_custom_mpiio.h" #include #include @@ -612,7 +613,7 @@ int DumpCustomMPIIO::convert_string_omp(int n, double *mybuf) mpifh_buffer_line_per_thread[i] = (char *) malloc(DUMP_BUF_CHUNK_SIZE * sizeof(char)); mpifh_buffer_line_per_thread[i][0] = '\0'; -#pragma omp parallel default(none) shared(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) { int tid = omp_get_thread_num(); int m=0; diff --git a/src/MPIIO/dump_xyz_mpiio.cpp b/src/MPIIO/dump_xyz_mpiio.cpp index f5caab3a9c56560795c949e7a6debe97be071e20..a1e4f21a79c4caeafa40fbdd687eb42bdeaef576 100644 --- a/src/MPIIO/dump_xyz_mpiio.cpp +++ b/src/MPIIO/dump_xyz_mpiio.cpp @@ -15,6 +15,7 @@ Contributing author: Paul Coffman (IBM) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dump_xyz_mpiio.h" #include #include @@ -350,7 +351,7 @@ int DumpXYZMPIIO::convert_string_omp(int n, double *mybuf) mpifh_buffer_line_per_thread[i] = (char *) malloc(DUMP_BUF_CHUNK_SIZE * sizeof(char)); mpifh_buffer_line_per_thread[i][0] = '\0'; -#pragma omp parallel default(none) shared(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(bufOffset, bufRange, bufLength, mpifhStringCountPerThread, mpifh_buffer_line_per_thread, mybuf) { int tid = omp_get_thread_num(); int m=0; diff --git a/src/Makefile b/src/Makefile index bce5089500d5c0e8b3303bdede6562fb1f5f68a1..a78068e0922d1ca42c20668e0fd26ea71a9eaf06 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,38 +7,31 @@ PYTHON = python # Definitions -ROOT = lmp -EXE = lmp_$@ +ROOT = lmp +EXE = lmp_$@ ARLIB = liblammps_$@.a -SHLIB = liblammps_$@.so +SHLIB = liblammps_$@.so ARLINK = liblammps.a SHLINK = liblammps.so TMPNAME= tmp_$@_name +LMPLINK=$(shell echo $(ARLIB) | sed -e 's,lib\([+0-9a-z_-]\+\)\.a$$,-L. -l\1,') OBJDIR = Obj_$@ OBJSHDIR = Obj_shared_$@ -SRC = $(wildcard *.cpp) -INC = $(filter-out lmpinstalledpkgs.h lmpgitversion.h,$(wildcard *.h)) -OBJ = $(SRC:.cpp=.o) +SRC = $(wildcard *.cpp) +INC = $(filter-out lmpinstalledpkgs.h lmpgitversion.h,$(wildcard *.h)) +OBJ = $(SRC:.cpp=.o) SRCLIB = $(filter-out main.cpp,$(SRC)) OBJLIB = $(filter-out main.o,$(OBJ)) -# Command-line options for mode: exe (default), shexe, lib, shlib +# Command-line options for mode: static (default), shared, or print -mode = exe +mode = static objdir = $(OBJDIR) -ifeq ($(mode),shexe) -objdir = $(OBJSHDIR) -endif - -ifeq ($(mode),lib) -objdir = $(OBJDIR) -endif - -ifeq ($(mode),shlib) +ifeq ($(mode),shared) objdir = $(OBJSHDIR) endif @@ -124,12 +117,10 @@ help: @echo 'make lib-package args="..." download/build/install a package library' @echo 'make purge purge obsolete copies of source files' @echo '' - @echo 'make machine build LAMMPS for machine' - @echo 'make mode=lib machine build LAMMPS as static lib for machine' - @echo 'make mode=shlib machine build LAMMPS as shared lib for machine' - @echo 'make mode=shexe machine build LAMMPS as shared exe for machine' - @echo 'make makelist create Makefile.list used by old makes' - @echo 'make -f Makefile.list machine build LAMMPS for machine (old)' + @echo 'make machine build LAMMPS for machine with static library' + @echo 'make mode=static machine same as above' + @echo 'make mode=shared machine build LAMMPS for machine with shared library' + @echo 'make mode=print machine print compiler/linker flags' @echo '' @echo 'machine is one of these from src/MAKE:' @echo '' @@ -191,11 +182,9 @@ gitversion: mv ${TMPNAME}.lmpgitversion lmpgitversion.h || rm ${TMPNAME}.lmpgitversion ; \ else mv ${TMPNAME}.lmpgitversion lmpgitversion.h ; fi -# Build LAMMPS in one of 4 modes -# exe = exe with static compile in Obj_machine (default) -# shexe = exe with shared compile in Obj_shared_machine -# lib = static lib in Obj_machine -# shlib = shared lib in Obj_shared_machine +# Build LAMMPS in one of 2 modes +# static = static compile in Obj_machine (default) +# shared = shared compile in Obj_shared_machine .DEFAULT: @if [ $@ = "serial" ]; \ @@ -223,34 +212,39 @@ gitversion: @cp Makefile.package Makefile.package.settings $(objdir) @cd $(objdir); rm -f .depend; \ $(MAKE) $(MFLAGS) "SRC = $(SRC)" "INC = $(INC)" depend || : -ifeq ($(mode),exe) - @cd $(objdir); \ - $(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "SHFLAGS =" \ - "EXE = ../$(EXE)" ../$(EXE) -endif -ifeq ($(mode),shexe) - @cd $(objdir); \ - $(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" \ - "EXE = ../$(EXE)" ../$(EXE) -endif -ifeq ($(mode),lib) + @rm -f $(ARLINK) $(SHLINK) $(EXE) +ifeq ($(mode),static) @cd $(objdir); \ $(MAKE) $(MFLAGS) "OBJ = $(OBJLIB)" "INC = $(INC)" "SHFLAGS =" \ - "EXE = ../$(ARLIB)" lib - @rm -f $(ARLINK) + "LMPLIB = $(ARLIB)" "ARLIB = $(ARLIB)" "SHLIB = $(SHLIB)" \ + "LMPLINK = $(LMPLINK)" "EXE = ../$(EXE)" ../$(EXE) @ln -s $(ARLIB) $(ARLINK) endif -ifeq ($(mode),shlib) +ifeq ($(mode),shared) @cd $(objdir); \ $(MAKE) $(MFLAGS) "OBJ = $(OBJLIB)" "INC = $(INC)" \ - "EXE = ../$(SHLIB)" shlib - @rm -f $(SHLINK) + "LMPLIB = $(SHLIB)" "ARLIB = $(ARLIB)" "SHLIB = $(SHLIB)" \ + "LMPLINK = $(LMPLINK)" "EXE = ../$(EXE)" ../$(EXE) @ln -s $(SHLIB) $(SHLINK) endif +# backward compatibility +ifeq ($(mode),exe) + $(MAKE) $(MFLAGS) mode=static $@ +endif +ifeq ($(mode),lib) + $(MAKE) $(MFLAGS) mode=static $@ +endif +ifeq ($(mode),shexe) + $(MAKE) $(MFLAGS) mode=shared $@ +endif +ifeq ($(mode),shlib) + $(MAKE) $(MFLAGS) mode=shared $@ +endif + ifeq ($(mode),print) @cd $(objdir); \ $(MAKE) $(MFLAGS) "OBJ = $(OBJLIB)" "INC = $(INC)" \ - "EXE = ../$(SHLIB)" -f ../Makefile.print + "EXE = ../$(ARLIB)" -f ../Makefile.print endif # Remove machine-specific object files @@ -267,12 +261,6 @@ clean-%: then cd STUBS; $(MAKE) clean; cd ..; fi rm -rf Obj_$(@:clean-%=%) Obj_shared_$(@:clean-%=%) -# Create Makefile.list - -makelist: - @$(SHELL) Make.sh style - @$(SHELL) Make.sh Makefile.list - # Make MPI STUBS library mpi-stubs: diff --git a/src/Makefile.print b/src/Makefile.print index 8398eb258919bfb159c1e42a8b92d9bfd99de515..d6e49760610d821ebc1de161cb482dc99b020b7e 100644 --- a/src/Makefile.print +++ b/src/Makefile.print @@ -6,6 +6,7 @@ include Makefile # get location of the LAMMPS tree LMPDIR=$(shell echo $${PWD} | sed -e 's,/src/Obj_[+0-9a-z_-]\+$$,,') +LMPLIB=$(shell echo $(EXE) | sed -e 's,\.\./lib\([+0-9a-z_-]\+\)\.a$$,-L${LMPDIR}/src -l\1,') do-print: @echo '# LAMMPS source tree is in:' $(LMPDIR) @@ -18,5 +19,5 @@ do-print: @echo '# Linking: ' @echo LDFLAGS=$(LINKFLAGS) @echo '# Libraries: ' - @echo LDLIBS=$(EXTRA_PATH) $(EXTRA_LIB) $(LIB) | sed -e s,-L\\.\\./\\.\\./,-L${LMPDIR}/,g -e s,-L\\.\\./,-L${LMPDIR}/src/,g -e s,$(HOME),\\$$\\{HOME\\},g + @echo LDLIBS=$(LMPLIB) $(EXTRA_PATH) $(EXTRA_LIB) $(LIB) | sed -e s,-L\\.\\./\\.\\./,-L${LMPDIR}/,g -e s,-L\\.\\./,-L${LMPDIR}/src/,g -e s,$(HOME),\\$$\\{HOME\\},g diff --git a/src/PERI/pair_peri_eps.cpp b/src/PERI/pair_peri_eps.cpp index cd2ab3a2d0f41c6f8b85310d4c7500e349885b9e..ff79320fc3de6cc9848beab1b9fa8510bfba9ee2 100644 --- a/src/PERI/pair_peri_eps.cpp +++ b/src/PERI/pair_peri_eps.cpp @@ -30,10 +30,12 @@ #include "neighbor.h" #include "neigh_list.h" #include "memory.h" +#include "math_const.h" #include "error.h" #include "utils.h" using namespace LAMMPS_NS; +using namespace MathConst; /* ---------------------------------------------------------------------- */ @@ -272,7 +274,7 @@ void PairPeriEPS::compute(int eflag, int vflag) double horizon = cut[itype][itype]; double tdnorm = compute_DeviatoricForceStateNorm(i); double pointwiseYieldvalue = 25.0 * yieldStress * - yieldStress / 8 / M_PI / pow(horizon,5); + yieldStress / 8 / MY_PI / pow(horizon,5); double fsurf = (tdnorm * tdnorm)/2 - pointwiseYieldvalue; diff --git a/src/RIGID/fix_rigid_nh.cpp b/src/RIGID/fix_rigid_nh.cpp index 6ffb997ffa7dbb5a56b4c96bd401cb7fca5d41f3..1df7f345327cb2be2c974e8a21c3b36c37134f84 100644 --- a/src/RIGID/fix_rigid_nh.cpp +++ b/src/RIGID/fix_rigid_nh.cpp @@ -106,6 +106,10 @@ FixRigidNH::FixRigidNH(LAMMPS *lmp, int narg, char **arg) : p_period[0] != p_period[2])) error->all(FLERR,"Invalid fix rigid npt/nph command pressure settings"); + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + if ((tstat_flag && t_period <= 0.0) || (p_flag[0] && p_period[0] <= 0.0) || (p_flag[1] && p_period[1] <= 0.0) || diff --git a/src/RIGID/fix_rigid_nh_small.cpp b/src/RIGID/fix_rigid_nh_small.cpp index 136796ce1802f3c9a2695e1e2d2f69fe2aa308d4..5b75640549a74222612277489256f0140f5dedf4 100644 --- a/src/RIGID/fix_rigid_nh_small.cpp +++ b/src/RIGID/fix_rigid_nh_small.cpp @@ -120,6 +120,10 @@ FixRigidNHSmall::FixRigidNHSmall(LAMMPS *lmp, int narg, char **arg) : p_period[0] != p_period[2])) error->all(FLERR,"Invalid fix rigid/small npt/nph command pressure settings"); + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + if ((tstat_flag && t_period <= 0.0) || (p_flag[0] && p_period[0] <= 0.0) || (p_flag[1] && p_period[1] <= 0.0) || diff --git a/src/RIGID/fix_rigid_nph.cpp b/src/RIGID/fix_rigid_nph.cpp index 706e08ec123c5364b5b7633ab1ddd9966afb2ced..5c3b5390aaf307c866fb6d86bcd1ffdf5eff5412 100644 --- a/src/RIGID/fix_rigid_nph.cpp +++ b/src/RIGID/fix_rigid_nph.cpp @@ -33,7 +33,6 @@ FixRigidNPH::FixRigidNPH(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; restart_global = 1; - box_change_size = 1; extscalar = 1; // error checks diff --git a/src/RIGID/fix_rigid_nph_small.cpp b/src/RIGID/fix_rigid_nph_small.cpp index 32ac58220dbe8a81a594ea3d9e56516d14626fbe..7769ced8072572e80823208a8c10911a1d3a929f 100644 --- a/src/RIGID/fix_rigid_nph_small.cpp +++ b/src/RIGID/fix_rigid_nph_small.cpp @@ -33,7 +33,6 @@ FixRigidNPHSmall::FixRigidNPHSmall(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; restart_global = 1; - box_change_size = 1; extscalar = 1; // error checks diff --git a/src/RIGID/fix_rigid_npt.cpp b/src/RIGID/fix_rigid_npt.cpp index 1f19fb4ec7d8226a803101fcabd5d62c908acde0..5f3fde669ca986b27565e5f2f78e066c21aacaff 100644 --- a/src/RIGID/fix_rigid_npt.cpp +++ b/src/RIGID/fix_rigid_npt.cpp @@ -33,7 +33,6 @@ FixRigidNPT::FixRigidNPT(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; restart_global = 1; - box_change_size = 1; extscalar = 1; // error checks diff --git a/src/RIGID/fix_rigid_npt_small.cpp b/src/RIGID/fix_rigid_npt_small.cpp index e8924be79fe8edca6d610905c0e43843c482fa1e..d3bd5b8f571f568b9d1409eac9d6a00119975f7c 100644 --- a/src/RIGID/fix_rigid_npt_small.cpp +++ b/src/RIGID/fix_rigid_npt_small.cpp @@ -33,7 +33,6 @@ FixRigidNPTSmall::FixRigidNPTSmall(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; restart_global = 1; - box_change_size = 1; extscalar = 1; // error checks diff --git a/src/SHOCK/fix_append_atoms.cpp b/src/SHOCK/fix_append_atoms.cpp index 5e85b390766fff17ec47e2725ee241aebcf29833..1a6b128cd5e5fd8b9047dc682aa1ddb545d14748 100644 --- a/src/SHOCK/fix_append_atoms.cpp +++ b/src/SHOCK/fix_append_atoms.cpp @@ -40,7 +40,6 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) : { force_reneighbor = 1; next_reneighbor = -1; - box_change_size = 1; time_depend = 1; if (narg < 4) error->all(FLERR,"Illegal fix append/atoms command"); @@ -75,35 +74,41 @@ FixAppendAtoms::FixAppendAtoms(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"xlo") == 0) { error->all(FLERR,"Only zhi currently implemented for fix append/atoms"); xloflag = 1; + box_change |= BOX_CHANGE_X; iarg++; if (domain->boundary[0][0] != 3) error->all(FLERR,"Append boundary must be shrink/minimum"); } else if (strcmp(arg[iarg],"xhi") == 0) { error->all(FLERR,"Only zhi currently implemented for fix append/atoms"); xhiflag = 1; + box_change |= BOX_CHANGE_X; iarg++; if (domain->boundary[0][1] != 3) error->all(FLERR,"Append boundary must be shrink/minimum"); } else if (strcmp(arg[iarg],"ylo") == 0) { error->all(FLERR,"Only zhi currently implemented for fix append/atoms"); yloflag = 1; + box_change |= BOX_CHANGE_Y; iarg++; if (domain->boundary[1][0] != 3) error->all(FLERR,"Append boundary must be shrink/minimum"); } else if (strcmp(arg[iarg],"yhi") == 0) { error->all(FLERR,"Only zhi currently implemented for fix append/atoms"); yhiflag = 1; + box_change |= BOX_CHANGE_Y; iarg++; if (domain->boundary[1][1] != 3) error->all(FLERR,"Append boundary must be shrink/minimum"); } else if (strcmp(arg[iarg],"zlo") == 0) { error->all(FLERR,"Only zhi currently implemented for fix append/atoms"); zloflag = 1; + box_change |= BOX_CHANGE_Z; iarg++; if (domain->boundary[2][0] != 3) error->all(FLERR,"Append boundary must be shrink/minimum"); } else if (strcmp(arg[iarg],"zhi") == 0) { zhiflag = 1; + box_change |= BOX_CHANGE_Z; iarg++; if (domain->boundary[2][1] != 3) error->all(FLERR,"Append boundary must be shrink/minimum"); diff --git a/src/SHOCK/fix_msst.cpp b/src/SHOCK/fix_msst.cpp index 2e9f7518242def8dbe8a870c5d277fc8a4ffbcef..67b2a7fb0fb6abbb3184a5545bfaec667c91626b 100644 --- a/src/SHOCK/fix_msst.cpp +++ b/src/SHOCK/fix_msst.cpp @@ -46,7 +46,6 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) : if (narg < 4) error->all(FLERR,"Illegal fix msst command"); restart_global = 1; - box_change_size = 1; time_integrate = 1; scalar_flag = 1; vector_flag = 1; @@ -78,10 +77,16 @@ FixMSST::FixMSST(LAMMPS *lmp, int narg, char **arg) : dftb = 0; beta = 0.0; - if (strcmp(arg[3],"x") == 0) direction = 0; - else if (strcmp(arg[3],"y") == 0) direction = 1; - else if (strcmp(arg[3],"z") == 0) direction = 2; - else error->all(FLERR,"Illegal fix msst command"); + if (strcmp(arg[3],"x") == 0) { + direction = 0; + box_change |= BOX_CHANGE_X; + } else if (strcmp(arg[3],"y") == 0) { + direction = 1; + box_change |= BOX_CHANGE_Y; + } else if (strcmp(arg[3],"z") == 0) { + direction = 2; + box_change |= BOX_CHANGE_Z; + } else error->all(FLERR,"Illegal fix msst command"); velocity = force->numeric(FLERR,arg[4]); if (velocity < 0) error->all(FLERR,"Illegal fix msst command"); diff --git a/src/SPIN/compute_spin.cpp b/src/SPIN/compute_spin.cpp index 7ee2b5bcfc34dd4cd6b369ecdefbe64701bbdee2..94eff27f5357e08e541be9aeeae989bd26f41aec 100644 --- a/src/SPIN/compute_spin.cpp +++ b/src/SPIN/compute_spin.cpp @@ -24,11 +24,15 @@ #include "compute_spin.h" #include #include +#include #include "atom.h" #include "error.h" +#include "fix_precession_spin.h" #include "force.h" #include "math_const.h" #include "memory.h" +#include "modify.h" +#include "pair_spin.h" #include "update.h" using namespace LAMMPS_NS; @@ -37,7 +41,7 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg) + Compute(lmp, narg, arg), pair(NULL), spin_pairs(NULL) { if ((narg != 3) && (narg != 4)) error->all(FLERR,"Illegal compute compute/spin command"); @@ -45,6 +49,12 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : size_vector = 6; extvector = 0; + // initialize the magnetic interaction flags + + pair_spin_flag = 0; + long_spin_flag = 0; + precession_spin_flag = 0; + init(); allocate(); @@ -56,6 +66,7 @@ ComputeSpin::ComputeSpin(LAMMPS *lmp, int narg, char **arg) : ComputeSpin::~ComputeSpin() { memory->destroy(vector); + delete [] spin_pairs; } /* ---------------------------------------------------------------------- */ @@ -64,6 +75,70 @@ void ComputeSpin::init() { hbar = force->hplanck/MY_2PI; kb = force->boltz; + npairs = npairspin = 0; + precession_spin_flag = 0; + + // set ptrs on Pair/Spin styles + + // loop 1: obtain # of Pairs, and # of Pair/Spin styles + + if (force->pair_match("spin",0,0)) { // only one Pair/Spin style + pair = force->pair_match("spin",0,0); + npairs = pair->instance_total; + npairspin = 1; + } else if (force->pair_match("spin",0,1)) { // more than one Pair/Spin style + pair = force->pair_match("spin",0,1); + npairs = pair->instance_total; + for (int i = 0; ipair_match("spin",0,i)) { + npairspin ++; + } + } + } + + // init length of vector of ptrs to Pair/Spin styles + + if (npairspin > 0) { + spin_pairs = new PairSpin*[npairspin]; + } + + // loop 2: fill vector with ptrs to Pair/Spin styles + + int count = 0; + if (npairspin == 1) { + count = 1; + spin_pairs[0] = (PairSpin *) force->pair_match("spin",0,0); + } else if (npairspin > 1) { + for (int i = 0; ipair_match("spin",0,i)) { + spin_pairs[count] = (PairSpin *) force->pair_match("spin",0,i); + count++; + } + } + } + + if (count != npairspin) + error->all(FLERR,"Incorrect number of spin pairs"); + + // set pair/spin and long/spin flags + + if (npairspin >= 1) pair_spin_flag = 1; + + for (int i = 0; ipair_match("spin/long",0,i)) { + long_spin_flag = 1; + } + } + + // ptrs FixPrecessionSpin classes + + int iforce; + for (iforce = 0; iforce < modify->nfix; iforce++) { + if (strstr(modify->fix[iforce]->style,"precession/spin")) { + precession_spin_flag = 1; + lockprecessionspin = (FixPrecessionSpin *) modify->fix[iforce]; + } + } } /* ---------------------------------------------------------------------- */ @@ -104,7 +179,21 @@ void ComputeSpin::compute_vector() mag[0] += sp[i][0]; mag[1] += sp[i][1]; mag[2] += sp[i][2]; - magenergy -= (sp[i][0]*fm[i][0] + sp[i][1]*fm[i][1] + sp[i][2]*fm[i][2]); + + // update magnetic precession energies + + if (precession_spin_flag) { + magenergy += lockprecessionspin->emag[i]; + } + + // update magnetic pair interactions + + if (pair_spin_flag) { + for (int k = 0; k < npairspin; k++) { + magenergy += spin_pairs[k]->emag[i]; + } + } + tx = sp[i][1]*fm[i][2]-sp[i][2]*fm[i][1]; ty = sp[i][2]*fm[i][0]-sp[i][0]*fm[i][2]; tz = sp[i][0]*fm[i][1]-sp[i][1]*fm[i][0]; @@ -134,7 +223,7 @@ void ComputeSpin::compute_vector() vector[1] = magtot[1]; vector[2] = magtot[2]; vector[3] = magtot[3]; - vector[4] = magenergytot*hbar; + vector[4] = magenergytot; vector[5] = spintemperature; } diff --git a/src/SPIN/compute_spin.h b/src/SPIN/compute_spin.h index c5d55b84cb17ba69bc4902111a88c188a0123fe4..d98a61bb393b43b9d4c6fd042c09eab4744a7dfe 100644 --- a/src/SPIN/compute_spin.h +++ b/src/SPIN/compute_spin.h @@ -32,8 +32,22 @@ class ComputeSpin : public Compute { void compute_vector(); private: + int pair_spin_flag; // magnetic pair flags + int long_spin_flag; // magnetic long-range flag + int precession_spin_flag; // magnetic precession flags + double kb,hbar; + // pointers to magnetic fixes + + class FixPrecessionSpin *lockprecessionspin; + + // pointers to magnetic pair styles + + int npairs, npairspin; // # of pairs, and # of spin pairs + class Pair *pair; + class PairSpin **spin_pairs; // vector of spin pairs + void allocate(); }; diff --git a/src/SPIN/fix_precession_spin.cpp b/src/SPIN/fix_precession_spin.cpp index 2d55de33ea3cc936ac8831da37f5fa7fe3b06cdd..b788d27d05bfbf077c206b63a71b34b05f2540d0 100644 --- a/src/SPIN/fix_precession_spin.cpp +++ b/src/SPIN/fix_precession_spin.cpp @@ -30,6 +30,7 @@ #include "force.h" #include "input.h" #include "math_const.h" +#include "memory.h" #include "modify.h" #include "respa.h" #include "update.h" @@ -43,7 +44,7 @@ enum{CONSTANT,EQUAL}; /* ---------------------------------------------------------------------- */ -FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), emag(NULL) { if (narg < 7) error->all(FLERR,"Illegal precession/spin command"); @@ -154,6 +155,7 @@ FixPrecessionSpin::FixPrecessionSpin(LAMMPS *lmp, int narg, char **arg) : Fix(lm FixPrecessionSpin::~FixPrecessionSpin() { delete [] magstr; + memory->destroy(emag); } /* ---------------------------------------------------------------------- */ @@ -197,6 +199,15 @@ void FixPrecessionSpin::init() error->all(FLERR,"Illegal precession/spin command"); } + // check that fix precession/spin is only declared once + + int iprec = 0; + for (int iforce = 0; iforce < modify->nfix; iforce++) + if (strstr(modify->fix[iforce]->style,"precession/spin")) iprec++; + if (iprec > 1) + error->all(FLERR,"precession/spin command can only be declared once"); + + varflag = CONSTANT; if (magfieldstyle != CONSTANT) varflag = EQUAL; @@ -204,6 +215,10 @@ void FixPrecessionSpin::init() if (varflag == CONSTANT) set_magneticprecession(); + // init. size of energy stacking lists + + nlocal_max = atom->nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); } /* ---------------------------------------------------------------------- */ @@ -243,21 +258,30 @@ void FixPrecessionSpin::post_force(int /* vflag */) double **fm = atom->fm; double **sp = atom->sp; const int nlocal = atom->nlocal; - double spi[3], fmi[3], epreci; + double spi[4], fmi[3], epreci; + + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } eflag = 0; eprec = 0.0; for (int i = 0; i < nlocal; i++) { + emag[i] = 0.0; if (mask[i] & groupbit) { epreci = 0.0; spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; + spi[3] = sp[i][3]; fmi[0] = fmi[1] = fmi[2] = 0.0; if (zeeman_flag) { // compute Zeeman interaction compute_zeeman(i,fmi); - epreci -= hbar*(spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + epreci -= compute_zeeman_energy(spi); } if (aniso_flag) { // compute magnetic anisotropy @@ -270,6 +294,7 @@ void FixPrecessionSpin::post_force(int /* vflag */) epreci -= compute_cubic_energy(spi); } + emag[i] += epreci; eprec += epreci; fm[i][0] += fmi[0]; fm[i][1] += fmi[1]; @@ -302,6 +327,16 @@ void FixPrecessionSpin::compute_zeeman(int i, double fmi[3]) /* ---------------------------------------------------------------------- */ +double FixPrecessionSpin::compute_zeeman_energy(double spi[4]) +{ + double energy = 0.0; + double scalar = nhx*spi[0]+nhy*spi[1]+nhz*spi[2]; + energy = hbar*H_field*spi[3]*scalar; + return energy; +} + +/* ---------------------------------------------------------------------- */ + void FixPrecessionSpin::compute_anisotropy(double spi[3], double fmi[3]) { double scalar = nax*spi[0] + nay*spi[1] + naz*spi[2]; diff --git a/src/SPIN/fix_precession_spin.h b/src/SPIN/fix_precession_spin.h index 6ece653ca70cb62ab289f07d5b0371f4926c8dc1..9c3c616077a938ef1232ed037281e6948e0603ae 100644 --- a/src/SPIN/fix_precession_spin.h +++ b/src/SPIN/fix_precession_spin.h @@ -41,7 +41,11 @@ class FixPrecessionSpin : public Fix { int zeeman_flag, aniso_flag, cubic_flag; void compute_single_precession(int, double *, double *); + + // zeeman calculations + void compute_zeeman(int, double *); + double compute_zeeman_energy(double *); // uniaxial aniso calculations @@ -53,6 +57,11 @@ class FixPrecessionSpin : public Fix { void compute_cubic(double *, double *); double compute_cubic_energy(double *); + // storing magnetic energies + + int nlocal_max; // max nlocal (for list size) + double *emag; // energy list + protected: int style; // style of the magnetic precession diff --git a/src/SPIN/pair_spin.cpp b/src/SPIN/pair_spin.cpp index f167e3455c329d6c6801e1d076df6e292efaeb35..b0965d12711ae1e1b8c5feee845fce8e957005a8 100644 --- a/src/SPIN/pair_spin.cpp +++ b/src/SPIN/pair_spin.cpp @@ -29,6 +29,7 @@ #include "fix.h" #include "force.h" #include "math_const.h" +#include "memory.h" #include "modify.h" #include "neighbor.h" #include "neigh_request.h" @@ -41,7 +42,7 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp) +PairSpin::PairSpin(LAMMPS *lmp) : Pair(lmp), emag(NULL) { hbar = force->hplanck/MY_2PI; single_enable = 0; @@ -86,6 +87,11 @@ void PairSpin::init_style() if (!have_fix && (comm->me == 0)) error->warning(FLERR,"Using spin pair style without nve/spin or neb/spin"); + // check if newton pair is on + + if ((force->newton_pair == 0) && (comm->me == 0)) + error->all(FLERR,"Pair style spin requires newton pair on"); + // need a full neighbor list int irequest = neighbor->request(this,instance_me); @@ -98,4 +104,8 @@ void PairSpin::init_style() if (ifix >=0) lattice_flag = ((FixNVESpin *) modify->fix[ifix])->lattice_flag; + // init. size of energy stacking lists + + nlocal_max = atom->nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); } diff --git a/src/SPIN/pair_spin.h b/src/SPIN/pair_spin.h index 34f12d8d59a2ff9dd70cc45546131368cf95877c..8bbb27ed0639f0f563ec56ad1f17526c057fa3dc 100644 --- a/src/SPIN/pair_spin.h +++ b/src/SPIN/pair_spin.h @@ -32,6 +32,11 @@ friend class FixNVESpin; virtual void compute(int, int) {} virtual void compute_single_pair(int, double *) {} + // storing magnetic energies + + int nlocal_max; // max nlocal (for list size) + double *emag; // energy list + protected: double hbar; // Planck constant (eV.ps.rad-1) int lattice_flag; // flag for mech force computation diff --git a/src/SPIN/pair_spin_dipole_cut.cpp b/src/SPIN/pair_spin_dipole_cut.cpp index a7372b480db9a50a151e5a28d88e5af166997189..cdae3c0babbaf438a3f5d1c28b8c0caddbe2f69e 100644 --- a/src/SPIN/pair_spin_dipole_cut.cpp +++ b/src/SPIN/pair_spin_dipole_cut.cpp @@ -64,6 +64,7 @@ PairSpinDipoleCut::~PairSpinDipoleCut() memory->destroy(setflag); memory->destroy(cut_spin_long); memory->destroy(cutsq); + memory->destroy(emag); } } @@ -185,6 +186,13 @@ void PairSpinDipoleCut::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } + // computation of the exchange interaction // loop over atoms and their neighbors @@ -199,6 +207,7 @@ void PairSpinDipoleCut::compute(int eflag, int vflag) spi[1] = sp[i][1]; spi[2] = sp[i][2]; spi[3] = sp[i][3]; + emag[i] = 0.0; itype = type[i]; for (jj = 0; jj < jnum; jj++) { @@ -243,16 +252,11 @@ void PairSpinDipoleCut::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - if (eflag) { if (rsq <= local_cut2) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= 0.5*hbar; + emag[i] += evdwl; } } else evdwl = 0.0; diff --git a/src/SPIN/pair_spin_dipole_long.cpp b/src/SPIN/pair_spin_dipole_long.cpp index 124522a9b9410d8be9bf401acf40830652bec78e..aeb916cfae1e08f18fa9ea5f7ddef9f2632fee5c 100644 --- a/src/SPIN/pair_spin_dipole_long.cpp +++ b/src/SPIN/pair_spin_dipole_long.cpp @@ -69,6 +69,7 @@ PairSpinDipoleLong::~PairSpinDipoleLong() memory->destroy(setflag); memory->destroy(cut_spin_long); memory->destroy(cutsq); + memory->destroy(emag); } } @@ -212,6 +213,13 @@ void PairSpinDipoleLong::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } + pre1 = 2.0 * g_ewald / MY_PIS; pre2 = 4.0 * pow(g_ewald,3.0) / MY_PIS; pre3 = 8.0 * pow(g_ewald,5.0) / MY_PIS; @@ -221,16 +229,18 @@ void PairSpinDipoleLong::compute(int eflag, int vflag) for (ii = 0; ii < inum; ii++) { i = ilist[ii]; + itype = type[i]; + + jlist = firstneigh[i]; + jnum = numneigh[i]; xi[0] = x[i][0]; xi[1] = x[i][1]; xi[2] = x[i][2]; - jlist = firstneigh[i]; - jnum = numneigh[i]; spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; spi[3] = sp[i][3]; - itype = type[i]; + emag[i] = 0.0; for (jj = 0; jj < jnum; jj++) { j = jlist[jj]; @@ -286,17 +296,11 @@ void PairSpinDipoleLong::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - if (eflag) { if (rsq <= local_cut2) { - evdwl -= spi[0]*fmi[0] + spi[1]*fmi[1] + - spi[2]*fmi[2]; + evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= 0.5*hbar; + emag[i] += evdwl; } } else evdwl = 0.0; diff --git a/src/SPIN/pair_spin_dmi.cpp b/src/SPIN/pair_spin_dmi.cpp index 04c2dc408dd83d040c54b138e946695558b66e0c..c6b0564463a815738f52395f6c350508bf75dd18 100644 --- a/src/SPIN/pair_spin_dmi.cpp +++ b/src/SPIN/pair_spin_dmi.cpp @@ -53,6 +53,7 @@ PairSpinDmi::~PairSpinDmi() memory->destroy(vmech_dmy); memory->destroy(vmech_dmz); memory->destroy(cutsq); + memory->destroy(emag); } } @@ -191,6 +192,13 @@ void PairSpinDmi::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } + // dmi computation // loop over all atoms @@ -206,7 +214,7 @@ void PairSpinDmi::compute(int eflag, int vflag) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; - + emag[i] = 0.0; // loop on neighbors @@ -251,15 +259,10 @@ void PairSpinDmi::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - if (eflag) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= 0.5*hbar; + emag[i] += evdwl; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, diff --git a/src/SPIN/pair_spin_exchange.cpp b/src/SPIN/pair_spin_exchange.cpp index 6eacb04ee3cb8cb79b6cbc4e5a91239c469ce681..5c5d5cb1a4a206e2383685ac533147c2c79574d1 100644 --- a/src/SPIN/pair_spin_exchange.cpp +++ b/src/SPIN/pair_spin_exchange.cpp @@ -50,6 +50,7 @@ PairSpinExchange::~PairSpinExchange() memory->destroy(J2); memory->destroy(J3); memory->destroy(cutsq); // to be implemented + memory->destroy(emag); } } @@ -176,6 +177,13 @@ void PairSpinExchange::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } + // computation of the exchange interaction // loop over atoms and their neighbors @@ -191,6 +199,7 @@ void PairSpinExchange::compute(int eflag, int vflag) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; + emag[i] = 0.0; // loop on neighbors @@ -234,16 +243,10 @@ void PairSpinExchange::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - if (eflag) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= 0.5*hbar; - // evdwl *= hbar; + emag[i] += evdwl; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, @@ -385,6 +388,29 @@ void PairSpinExchange::compute_exchange_mech(int i, int j, double rsq, double ei fi[2] -= Jex_mech*eij[2]; } +/* ---------------------------------------------------------------------- + compute energy of spin pair i and j +------------------------------------------------------------------------- */ + +// double PairSpinExchange::compute_energy(int i, int j, double rsq, double spi[3], double spj[3]) +// { +// int *type = atom->type; +// int itype, jtype; +// double Jex, ra; +// double energy = 0.0; +// itype = type[i]; +// jtype = type[j]; +// +// Jex = J1_mech[itype][jtype]; +// ra = rsq/J3[itype][jtype]/J3[itype][jtype]; +// Jex = 4.0*Jex*ra; +// Jex *= (1.0-J2[itype][jtype]*ra); +// Jex *= exp(-ra); +// +// energy = Jex*(spi[0]*spj[0]+spi[1]*spj[1]+spi[2]*spj[2]); +// return energy; +// } + /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_exchange.h b/src/SPIN/pair_spin_exchange.h index 19eafeb5ca7d6ec27e8bbdc0efcafb689f772b76..4e9e6bfac80e2d53c9106386004966c296d17695 100644 --- a/src/SPIN/pair_spin_exchange.h +++ b/src/SPIN/pair_spin_exchange.h @@ -39,6 +39,8 @@ class PairSpinExchange : public PairSpin { void compute_exchange(int, int, double, double *, double *); void compute_exchange_mech(int, int, double, double *, double *, double *, double *); + // double compute_energy(int , int , double , double *, double *); + void write_restart(FILE *); void read_restart(FILE *); void write_restart_settings(FILE *); diff --git a/src/SPIN/pair_spin_magelec.cpp b/src/SPIN/pair_spin_magelec.cpp index fabad4ae4d79ce51bec0a689a1a8b63875a14193..741305fbf47fbf1fc7c983dbdf85cae249834a2d 100644 --- a/src/SPIN/pair_spin_magelec.cpp +++ b/src/SPIN/pair_spin_magelec.cpp @@ -51,6 +51,7 @@ PairSpinMagelec::~PairSpinMagelec() memory->destroy(v_mey); memory->destroy(v_mez); memory->destroy(cutsq); // to be deteled + memory->destroy(emag); } } @@ -185,6 +186,13 @@ void PairSpinMagelec::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } + // magneto-electric computation // loop over atoms and their neighbors @@ -200,6 +208,7 @@ void PairSpinMagelec::compute(int eflag, int vflag) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; + emag[i] = 0.0; // loop on neighbors @@ -243,15 +252,10 @@ void PairSpinMagelec::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - if (eflag) { evdwl -= (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); evdwl *= 0.5*hbar; + emag[i] += evdwl; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, diff --git a/src/SPIN/pair_spin_neel.cpp b/src/SPIN/pair_spin_neel.cpp index 4a5d453de2f65b01f49aa0cf3e14e224642a2da6..4fd8ecc2152f32e0c27787d6b6f694fd3e08b19b 100644 --- a/src/SPIN/pair_spin_neel.cpp +++ b/src/SPIN/pair_spin_neel.cpp @@ -54,6 +54,7 @@ PairSpinNeel::~PairSpinNeel() memory->destroy(q2); memory->destroy(q3); memory->destroy(cutsq); // to be deleted + memory->destroy(emag); } } @@ -190,6 +191,13 @@ void PairSpinNeel::compute(int eflag, int vflag) numneigh = list->numneigh; firstneigh = list->firstneigh; + // checking size of emag + + if (nlocal_max < nlocal) { // grow emag lists if necessary + nlocal_max = nlocal; + memory->grow(emag,nlocal_max,"pair/spin:emag"); + } + // computation of the neel interaction // loop over atoms and their neighbors @@ -205,6 +213,7 @@ void PairSpinNeel::compute(int eflag, int vflag) spi[0] = sp[i][0]; spi[1] = sp[i][1]; spi[2] = sp[i][2]; + emag[i] = 0.0; // loop on neighbors @@ -252,15 +261,10 @@ void PairSpinNeel::compute(int eflag, int vflag) fm[i][1] += fmi[1]; fm[i][2] += fmi[2]; - if (newton_pair || j < nlocal) { - f[j][0] -= fi[0]; - f[j][1] -= fi[1]; - f[j][2] -= fi[2]; - } - if (eflag) { - evdwl = (spi[0]*fmi[0] + spi[1]*fmi[1] + spi[2]*fmi[2]); + evdwl = compute_neel_energy(i,j,rsq,eij,spi,spj); evdwl *= 0.5*hbar; + emag[i] += evdwl; } else evdwl = 0.0; if (evflag) ev_tally_xyz(i,j,nlocal,newton_pair, @@ -365,65 +369,69 @@ void PairSpinNeel::compute_single_pair(int ii, double fmi[3]) /* ---------------------------------------------------------------------- */ -void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) +void PairSpinNeel::compute_neel(int i, int j, double rsq, double eij[3], double fmi[3], double spi[3], double spj[3]) { int *type = atom->type; int itype, jtype; itype = type[i]; jtype = type[j]; - double gij, q1ij, q2ij, ra; + double qr,gr,g1r,q1r,q2r,ra; double pdx, pdy, pdz; double pq1x, pq1y, pq1z; double pq2x, pq2y, pq2z; + double eij_si,eij_sj,si_sj,eij_si_2,eij_sj_3,coeff1; - // pseudo-dipolar component + // compute Neel's functions ra = rsq/g3[itype][jtype]/g3[itype][jtype]; - gij = 4.0*g1[itype][jtype]*ra; - gij *= (1.0-g2[itype][jtype]*ra); - gij *= exp(-ra); + gr = 4.0*g1[itype][jtype]*ra; + gr *= (1.0-g2[itype][jtype]*ra); + gr *= exp(-ra); - double scalar_eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; - double scalar_eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; - double scalar_si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; + ra = rsq/q3[itype][jtype]/q3[itype][jtype]; + qr = 4.0*q1[itype][jtype]*ra; + qr *= (1.0-q2[itype][jtype]*ra); + qr *= exp(-ra); - double gij_eij_sj = gij*scalar_eij_sj; - double gij_3 = gij/3.0; - pdx = gij_eij_sj*eij[0] - gij_3*spj[0]; - pdy = gij_eij_sj*eij[1] - gij_3*spj[1]; - pdz = gij_eij_sj*eij[2] - gij_3*spj[2]; + g1r = (gr + 12.0*qr/35.0); + q1r = 9.0*qr/5.0; + q2r = -2.0*qr/5.0; - // pseudo-quadrupolar component + // pseudo-dipolar component - ra = rsq/q3[itype][jtype]/q3[itype][jtype]; - q1ij = 4.0*q1[itype][jtype]*ra; - q1ij *= (1.0-q2[itype][jtype]*ra); - q1ij *= exp(-ra); - q2ij = (-2.0*q1ij/9.0); + eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; + eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; + si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; - double scalar_eij_si_2 = scalar_eij_si*scalar_eij_si; - pq1x = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[0]/3.0; - pq1y = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[1]/3.0; - pq1z = -(scalar_eij_si_2*scalar_eij_si_2 - scalar_si_sj/3.0)*spj[2]/3.0; + pdx = g1r*(eij_sj*eij[0] - spj[0]/3.0); + pdy = g1r*(eij_sj*eij[1] - spj[1]/3.0); + pdz = g1r*(eij_sj*eij[2] - spj[2]/3.0); - double pqt1 = (scalar_eij_sj*scalar_eij_sj-scalar_si_sj/3.0); - pq1x += pqt1*(2.0*scalar_eij_si*eij[0] - spj[0]/3.0); - pq1y += pqt1*(2.0*scalar_eij_si*eij[1] - spj[1]/3.0); - pq1z += pqt1*(2.0*scalar_eij_si*eij[2] - spj[2]/3.0); + // pseudo-quadrupolar components - pq1x *= q1ij; - pq1y *= q1ij; - pq1z *= q1ij; + eij_si_2 = eij_si*eij_si; + pq1x = -(eij_si_2 - si_sj/3.0)*spj[0]/3.0; + pq1y = -(eij_si_2 - si_sj/3.0)*spj[1]/3.0; + pq1z = -(eij_si_2 - si_sj/3.0)*spj[2]/3.0; - double scalar_eij_sj_3 = scalar_eij_sj*scalar_eij_sj*scalar_eij_sj; - pq2x = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[0] + scalar_eij_sj_3*eij[0]; - pq2y = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[1] + scalar_eij_sj_3*eij[1]; - pq2z = 3.0*scalar_eij_si_2*scalar_eij_sj*eij[2] + scalar_eij_sj_3*eij[2]; + coeff1 = (eij_sj*eij_sj-si_sj/3.0); + pq1x += coeff1*(2.0*eij_si*eij[0] - spj[0]/3.0); + pq1y += coeff1*(2.0*eij_si*eij[1] - spj[1]/3.0); + pq1z += coeff1*(2.0*eij_si*eij[2] - spj[2]/3.0); + + pq1x *= q1r; + pq1y *= q1r; + pq1z *= q1r; - pq2x *= q2ij; - pq2y *= q2ij; - pq2z *= q2ij; + eij_sj_3 = eij_sj*eij_sj*eij_sj; + pq2x = 3.0*eij_si_2*eij_sj*eij[0] + eij_sj_3*eij[0]; + pq2y = 3.0*eij_si_2*eij_sj*eij[1] + eij_sj_3*eij[1]; + pq2z = 3.0*eij_si_2*eij_sj*eij[2] + eij_sj_3*eij[2]; + + pq2x *= q2r; + pq2y *= q2r; + pq2z *= q2r; // adding three contributions @@ -563,6 +571,50 @@ void PairSpinNeel::compute_neel_mech(int i, int j, double rsq, double eij[3], do fi[2] = pdz + pq1z + pq2z; } +/* ---------------------------------------------------------------------- */ + +double PairSpinNeel::compute_neel_energy(int i, int j, double rsq, double eij[3], double spi[3], double spj[3]) +{ + int *type = atom->type; + int itype, jtype; + itype = type[i]; + jtype = type[j]; + + double qr,gr,g1r,q1r,q2r,ra; + double epd,epq1,epq2; + double eij_si,eij_sj,si_sj; + double eij_si_2,eij_sj_2,eij_si_3,eij_sj_3; + + // compute Neel's functions + + ra = rsq/g3[itype][jtype]/g3[itype][jtype]; + gr = 4.0*g1[itype][jtype]*ra; + gr *= (1.0-g2[itype][jtype]*ra); + gr *= exp(-ra); + + ra = rsq/q3[itype][jtype]/q3[itype][jtype]; + qr = 4.0*q1[itype][jtype]*ra; + qr *= (1.0-q2[itype][jtype]*ra); + qr *= exp(-ra); + + g1r = (gr + 12.0*qr/35.0); + q1r = 9.0*qr/5.0; + q2r = -2.0*qr/5.0; + + eij_si = eij[0]*spi[0] + eij[1]*spi[1] + eij[2]*spi[2]; + eij_sj = eij[0]*spj[0] + eij[1]*spj[1] + eij[2]*spj[2]; + si_sj = spi[0]*spj[0] + spi[1]*spj[1] + spi[2]*spj[2]; + epd = g1r*(eij_si*eij_sj-si_sj/3.0); + eij_si_2 = eij_si*eij_si; + eij_sj_2 = eij_sj*eij_sj; + epq1 = q1r*(eij_si_2-si_sj/3.0)*(eij_sj_2-si_sj/3.0); + eij_si_3 = eij_si*eij_si_2; + eij_sj_3 = eij_sj*eij_sj_2; + epq2 = q2r*(eij_si*eij_sj_3+eij_sj*eij_si_3); + + return (epd+epq1+epq2); +} + /* ---------------------------------------------------------------------- allocate all arrays ------------------------------------------------------------------------- */ diff --git a/src/SPIN/pair_spin_neel.h b/src/SPIN/pair_spin_neel.h index 5261a7f7466ccf831f2872ecda958ab37bee0452..a39cf839c9318fe198aa97bad05f9e4a34bbf614 100644 --- a/src/SPIN/pair_spin_neel.h +++ b/src/SPIN/pair_spin_neel.h @@ -38,6 +38,7 @@ class PairSpinNeel : public PairSpin { void compute_neel(int, int, double, double *, double *, double *, double *); void compute_neel_mech(int, int, double, double *, double *, double *, double *); + double compute_neel_energy(int, int, double, double *, double *, double *); void write_restart(FILE *); void read_restart(FILE *); diff --git a/src/SRD/fix_srd.cpp b/src/SRD/fix_srd.cpp index c57975ad4c7dbc0e0dd8d17ea2fd3f3e488470ef..8f15128399da4fad5c27ef155a876218329d8f56 100644 --- a/src/SRD/fix_srd.cpp +++ b/src/SRD/fix_srd.cpp @@ -375,13 +375,16 @@ void FixSRD::init() change_size = change_shape = deformflag = 0; if (domain->nonperiodic == 2) change_size = 1; + + Fix **fixes = modify->fix; for (int i = 0; i < modify->nfix; i++) { - if (modify->fix[i]->box_change_size) change_size = 1; - if (modify->fix[i]->box_change_shape) change_shape = 1; - if (strcmp(modify->fix[i]->style,"deform") == 0) { + if (fixes[i]->box_change & BOX_CHANGE_SIZE) change_size = 1; + if (fixes[i]->box_change & BOX_CHANGE_SHAPE) change_shape = 1; + if (strcmp(fixes[i]->style,"deform") == 0) { deformflag = 1; FixDeform *deform = (FixDeform *) modify->fix[i]; - if (deform->box_change_shape && deform->remapflag != Domain::V_REMAP) + if ((deform->box_change & BOX_CHANGE_SHAPE) + && deform->remapflag != Domain::V_REMAP) error->all(FLERR,"Using fix srd with inconsistent " "fix deform remap option"); } diff --git a/src/USER-BOCS/fix_bocs.cpp b/src/USER-BOCS/fix_bocs.cpp index adce231bf1521f9cc866d898d734bfa1a203121e..3543c2f15674db91a108b58b141faf14f8a80018 100644 --- a/src/USER-BOCS/fix_bocs.cpp +++ b/src/USER-BOCS/fix_bocs.cpp @@ -292,8 +292,12 @@ FixBocs::FixBocs(LAMMPS *lmp, int narg, char **arg) : if (p_flag[i]) pstat_flag = 1; if (pstat_flag) { - if (p_flag[0] || p_flag[1] || p_flag[2]) box_change_size = 1; - if (p_flag[3] || p_flag[4] || p_flag[5]) box_change_shape = 1; + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + if (p_flag[3]) box_change |= BOX_CHANGE_YZ; + if (p_flag[4]) box_change |= BOX_CHANGE_XZ; + if (p_flag[5]) box_change |= BOX_CHANGE_XY; no_change_box = 1; if (allremap == 0) restart_pbc = 1; diff --git a/src/USER-CGDNA/bond_oxdna_fene.cpp b/src/USER-CGDNA/bond_oxdna_fene.cpp index 834b53a5c7b6a3822fd5417189d74e59e555afc1..be59858e667ae9ff463e594d4837342356e81039 100644 --- a/src/USER-CGDNA/bond_oxdna_fene.cpp +++ b/src/USER-CGDNA/bond_oxdna_fene.cpp @@ -221,7 +221,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) TAGINT_FORMAT " " TAGINT_FORMAT " %g", update->ntimestep,atom->tag[a],atom->tag[b],r); error->warning(FLERR,str,0); - if (rlogarg <= -8.0) error->one(FLERR,"Bad FENE bond"); + rlogarg = 0.1; } fbond = -k[type]*rr0/rlogarg/Deltasq/r; @@ -421,7 +421,7 @@ double BondOxdnaFene::single(int type, double rsq, int /*i*/, int /*j*/, sprintf(str,"FENE bond too long: " BIGINT_FORMAT " %g", update->ntimestep,sqrt(rsq)); error->warning(FLERR,str,0); - if (rlogarg <= -8.0) error->one(FLERR,"Bad FENE bond"); + rlogarg = 0.1; } double eng = -0.5 * k[type]*log(rlogarg); diff --git a/src/USER-DIFFRACTION/compute_saed.cpp b/src/USER-DIFFRACTION/compute_saed.cpp index 7b5b2f4f5b9900b485fbaf02e2e11efecd9eb5b8..5dd47b28bd4c86618a32de0847f39c637f2db1df 100644 --- a/src/USER-DIFFRACTION/compute_saed.cpp +++ b/src/USER-DIFFRACTION/compute_saed.cpp @@ -15,6 +15,7 @@ Contributing authors: Shawn Coleman & Douglas Spearot (Arkansas) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "compute_saed.h" #include #include @@ -418,7 +419,7 @@ void ComputeSAED::compute_vector() double frac = 0.1; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(offset,ASFSAED,typelocal,xlocal,Fvec,m,frac) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(offset,ASFSAED,typelocal,xlocal,Fvec,m,frac) #endif { double *f = new double[ntypes]; // atomic structure factor by type diff --git a/src/USER-DIFFRACTION/compute_xrd.cpp b/src/USER-DIFFRACTION/compute_xrd.cpp index 7f69449282b04cadd7181bb2c393ed43edc6fc91..e75546b5483a5fdfa83bbb67f18db401fbe46efb 100644 --- a/src/USER-DIFFRACTION/compute_xrd.cpp +++ b/src/USER-DIFFRACTION/compute_xrd.cpp @@ -16,6 +16,7 @@ Updated: 06/17/2015-2 ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "compute_xrd.h" #include #include @@ -353,7 +354,7 @@ void ComputeXRD::compute_array() double frac = 0.1; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(typelocal,xlocal,Fvec,m,frac,ASFXRD) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(typelocal,xlocal,Fvec,m,frac,ASFXRD) #endif { double *f = new double[ntypes]; // atomic structure factor by type diff --git a/src/USER-DPD/fix_eos_table_rx.cpp b/src/USER-DPD/fix_eos_table_rx.cpp index 152b58dbb743260b69ec57c89ffdaa41921cd2b8..3fe2f479bf975ab8e21e62cfdb6b2e5fbf23bb39 100644 --- a/src/USER-DPD/fix_eos_table_rx.cpp +++ b/src/USER-DPD/fix_eos_table_rx.cpp @@ -51,7 +51,7 @@ FixEOStableRX::FixEOStableRX(LAMMPS *lmp, int narg, char **arg) : rx_flag = false; nspecies = 1; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"rx",2) == 0){ + if (utils::strmatch(modify->fix[i]->style,"^rx")) { rx_flag = true; nspecies = atom->nspecies_dpd; if(nspecies==0) error->all(FLERR,"There are no rx species specified."); diff --git a/src/USER-DPD/fix_rx.cpp b/src/USER-DPD/fix_rx.cpp index 03e8ae49a4718eff0aef7b977c361da82f112a10..3d870cc9023f303b7545be50fdc29b860c78b8d0 100644 --- a/src/USER-DPD/fix_rx.cpp +++ b/src/USER-DPD/fix_rx.cpp @@ -255,10 +255,6 @@ void FixRX::post_constructor() int nUniqueSpecies = 0; bool match; - for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"property/atom",13) == 0) - error->all(FLERR,"fix rx cannot be combined with fix property/atom"); - char **tmpspecies = new char*[maxspecies]; int tmpmaxstrlen = 0; for(int jj=0; jj < maxspecies; jj++) diff --git a/src/USER-DPD/fix_shardlow.cpp b/src/USER-DPD/fix_shardlow.cpp index b0efeb634d207238e5737fedcc1eb28e0ed98b54..18c86976ac266363ab9479b1c25f48b5b625dacf 100644 --- a/src/USER-DPD/fix_shardlow.cpp +++ b/src/USER-DPD/fix_shardlow.cpp @@ -54,6 +54,7 @@ #include "pair_dpd_fdt_energy.h" #include "npair_half_bin_newton_ssa.h" #include "citeme.h" +#include "utils.h" using namespace LAMMPS_NS; using namespace FixConst; @@ -155,12 +156,13 @@ void FixShardlow::setup(int /*vflag*/) bool fixShardlow = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"nvt",3) == 0 || strncmp(modify->fix[i]->style,"npt",3) == 0) - error->all(FLERR,"Cannot use constant temperature integration routines with DPD."); + if (strstr(modify->fix[i]->style,"nvt") || strstr(modify->fix[i]->style,"npt") || + strstr(modify->fix[i]->style,"gle") || strstr(modify->fix[i]->style,"gld")) + error->all(FLERR,"Cannot use constant temperature integration routines with USER-DPD."); for (int i = 0; i < modify->nfix; i++){ - if (strncmp(modify->fix[i]->style,"shardlow",3) == 0) fixShardlow = true; - if (strncmp(modify->fix[i]->style,"nve",3) == 0 || (strncmp(modify->fix[i]->style,"nph",3) == 0)){ + if (utils::strmatch(modify->fix[i]->style,"^shardlow")) fixShardlow = true; + if (utils::strmatch(modify->fix[i]->style,"^nve") || utils::strmatch(modify->fix[i]->style,"^nph")){ if(fixShardlow) break; else error->all(FLERR,"The deterministic integrator must follow fix shardlow in the input file."); } diff --git a/src/USER-DPD/pair_dpd_fdt.cpp b/src/USER-DPD/pair_dpd_fdt.cpp index 5b62972d1bf14d927021dc7be6c507439f28e0be..14bbe0b784d50790861685f8fc49719492554ac1 100644 --- a/src/USER-DPD/pair_dpd_fdt.cpp +++ b/src/USER-DPD/pair_dpd_fdt.cpp @@ -316,7 +316,7 @@ void PairDPDfdt::init_style() splitFDT_flag = false; neighbor->request(this,instance_me); for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"shardlow", 8) == 0){ + if (utils::strmatch(modify->fix[i]->style,"^shardlow")) { splitFDT_flag = true; } diff --git a/src/USER-DPD/pair_dpd_fdt_energy.cpp b/src/USER-DPD/pair_dpd_fdt_energy.cpp index 5ea8d2e9e1e00b6a3a442cbd48b9be913b89413f..455af2f48195c43a86d52b8e58e53637aa25926c 100644 --- a/src/USER-DPD/pair_dpd_fdt_energy.cpp +++ b/src/USER-DPD/pair_dpd_fdt_energy.cpp @@ -409,7 +409,7 @@ void PairDPDfdtEnergy::init_style() splitFDT_flag = false; neighbor->request(this,instance_me); for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"shardlow", 8) == 0){ + if (utils::strmatch(modify->fix[i]->style,"^shardlow")) { splitFDT_flag = true; } @@ -420,8 +420,8 @@ void PairDPDfdtEnergy::init_style() bool eos_flag = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"eos",3) == 0) eos_flag = true; - if(!eos_flag) error->all(FLERR,"pair_style dpd/fdt/energy requires an EOS to be specified"); + if (utils::strmatch(modify->fix[i]->style,"^eos")) eos_flag = true; + if(!eos_flag) error->all(FLERR,"pair_style dpd/fdt/energy requires an EOS fix to be specified"); } /* ---------------------------------------------------------------------- diff --git a/src/USER-DPD/pair_exp6_rx.cpp b/src/USER-DPD/pair_exp6_rx.cpp index 5e23113feb0d24d05be5031aea4ec235a81cff81..4aee497b641628333aaa9e860386a7086deed4bf 100644 --- a/src/USER-DPD/pair_exp6_rx.cpp +++ b/src/USER-DPD/pair_exp6_rx.cpp @@ -582,7 +582,7 @@ void PairExp6rx::coeff(int narg, char **arg) bool rx_flag = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"rx",2) == 0) rx_flag = true; + if (utils::strmatch(modify->fix[i]->style,"^rx")) rx_flag = true; if (!rx_flag) error->all(FLERR,"PairExp6rx requires a fix rx command."); if (!allocated) allocate(); diff --git a/src/USER-DPD/pair_multi_lucy_rx.cpp b/src/USER-DPD/pair_multi_lucy_rx.cpp index 36ca7e0321e517196b46cde024c4ec1372758985..79df11a038dde8c0a6f19b73cea4ca57e2244304 100644 --- a/src/USER-DPD/pair_multi_lucy_rx.cpp +++ b/src/USER-DPD/pair_multi_lucy_rx.cpp @@ -368,7 +368,7 @@ void PairMultiLucyRX::coeff(int narg, char **arg) bool rx_flag = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"rx",2) == 0) rx_flag = true; + if (utils::strmatch(modify->fix[i]->style,"^rx")) rx_flag = true; if (!rx_flag) error->all(FLERR,"PairMultiLucyRX requires a fix rx command."); if (!allocated) allocate(); diff --git a/src/USER-DPD/pair_table_rx.cpp b/src/USER-DPD/pair_table_rx.cpp index e767f93367073bacf2e5f9e909eba12e9893ffb4..cf64c17c5ebc64da35a587f374f2976a20d0c132 100644 --- a/src/USER-DPD/pair_table_rx.cpp +++ b/src/USER-DPD/pair_table_rx.cpp @@ -26,6 +26,7 @@ #include "error.h" #include "modify.h" #include "fix.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -303,8 +304,8 @@ void PairTableRX::coeff(int narg, char **arg) bool rx_flag = false; for (int i = 0; i < modify->nfix; i++) - if (strncmp(modify->fix[i]->style,"rx",2) == 0) rx_flag = true; - if (!rx_flag) error->all(FLERR,"PairTableRX requires a fix rx command."); + if (utils::strmatch(modify->fix[i]->style,"^rx")) rx_flag = true; + if (!rx_flag) error->all(FLERR,"Pair style table/rx requires a fix rx command."); int ilo,ihi,jlo,jhi; force->bounds(FLERR,arg[0],atom->ntypes,ilo,ihi); diff --git a/src/USER-INTEL/angle_charmm_intel.cpp b/src/USER-INTEL/angle_charmm_intel.cpp index 43de50e7fa79ba99f4aea2910be7f78f85fea339..9275e82f1c98528d1f02efb9aa52d92e27d1400f 100644 --- a/src/USER-INTEL/angle_charmm_intel.cpp +++ b/src/USER-INTEL/angle_charmm_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "angle_charmm_intel.h" @@ -134,7 +135,7 @@ void AngleCharmmIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oeangle,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/angle_harmonic_intel.cpp b/src/USER-INTEL/angle_harmonic_intel.cpp index d073e7bc56997d9ab0334f1fd35709b290cd0de4..49a71038dafcba324da350dcdffcd7247b50e08d 100644 --- a/src/USER-INTEL/angle_harmonic_intel.cpp +++ b/src/USER-INTEL/angle_harmonic_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "angle_harmonic_intel.h" @@ -134,7 +135,7 @@ void AngleHarmonicIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oeangle,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/bond_fene_intel.cpp b/src/USER-INTEL/bond_fene_intel.cpp index 6578706a9be9ff4aa7f30972655aff4fb645d240..5c58e7bf10f08b5a03a6f9d4176fa1841a066d85 100644 --- a/src/USER-INTEL/bond_fene_intel.cpp +++ b/src/USER-INTEL/bond_fene_intel.cpp @@ -15,6 +15,7 @@ Contributing author: Stan Moore (Sandia) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "bond_fene_intel.h" @@ -127,7 +128,7 @@ void BondFENEIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oebond,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/bond_harmonic_intel.cpp b/src/USER-INTEL/bond_harmonic_intel.cpp index 55dda9fa15cf0a9712b8270bd7a9e3eb97400b58..8bf0a82218562f9148d18f77addbbc86e6e76d14 100644 --- a/src/USER-INTEL/bond_harmonic_intel.cpp +++ b/src/USER-INTEL/bond_harmonic_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "bond_harmonic_intel.h" @@ -127,7 +128,7 @@ void BondHarmonicIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oebond,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/dihedral_charmm_intel.cpp b/src/USER-INTEL/dihedral_charmm_intel.cpp index 2ea4eb6d218db74d0ee54b8a2e3e065f2569e5b8..61fc1dfbd548a77d1baffbca8f4bba19216db5ea 100644 --- a/src/USER-INTEL/dihedral_charmm_intel.cpp +++ b/src/USER-INTEL/dihedral_charmm_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "dihedral_charmm_intel.h" @@ -148,7 +149,7 @@ void DihedralCharmmIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oevdwl,oecoul,oedihedral,ov0,ov1,ov2,ov3,ov4,ov5, \ opv0,opv1,opv2,opv3,opv4,opv5) @@ -522,7 +523,7 @@ void DihedralCharmmIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oevdwl,oecoul,oedihedral,ov0,ov1,ov2,ov3,ov4,ov5, \ opv0,opv1,opv2,opv3,opv4,opv5) diff --git a/src/USER-INTEL/dihedral_fourier_intel.cpp b/src/USER-INTEL/dihedral_fourier_intel.cpp index 8c4a2ce921dc9564c661cd448587b4728498e2c1..fb8051474e64453ce8fa7e2257468a0902eec9dc 100644 --- a/src/USER-INTEL/dihedral_fourier_intel.cpp +++ b/src/USER-INTEL/dihedral_fourier_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "dihedral_fourier_intel.h" @@ -127,7 +128,7 @@ void DihedralFourierIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oedihedral,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/dihedral_harmonic_intel.cpp b/src/USER-INTEL/dihedral_harmonic_intel.cpp index 60655f2618bc73e7702b2dceccd50368b896b2fb..f6c4ea0fdeb7425095c839a7590c8a6b0489f40e 100644 --- a/src/USER-INTEL/dihedral_harmonic_intel.cpp +++ b/src/USER-INTEL/dihedral_harmonic_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "dihedral_harmonic_intel.h" @@ -127,7 +128,7 @@ void DihedralHarmonicIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oedihedral,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/dihedral_opls_intel.cpp b/src/USER-INTEL/dihedral_opls_intel.cpp index 5b580cd7d9dfc76bf80ad6b141537a14fb674a27..79a8874a722c044061c87f9283188eb2ac3dc979 100644 --- a/src/USER-INTEL/dihedral_opls_intel.cpp +++ b/src/USER-INTEL/dihedral_opls_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "dihedral_opls_intel.h" @@ -131,7 +132,7 @@ void DihedralOPLSIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oedihedral,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/fix_intel.cpp b/src/USER-INTEL/fix_intel.cpp index 5ecae79b3018bf9cbfd3fb3f9b4f81e6c13df639..c62a6a432a8347dfd3ed627ee3e05b017fad68d0 100644 --- a/src/USER-INTEL/fix_intel.cpp +++ b/src/USER-INTEL/fix_intel.cpp @@ -16,6 +16,7 @@ Anupama Kurpad (Intel) - Host Affinitization ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_intel.h" #include "comm.h" #include "error.h" @@ -220,7 +221,7 @@ FixIntel::FixIntel(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) comm->nthreads = nomp; } else { int nthreads; - #pragma omp parallel default(none) shared(nthreads) + #pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(nthreads) nthreads = omp_get_num_threads(); comm->nthreads = nthreads; } diff --git a/src/USER-INTEL/improper_cvff_intel.cpp b/src/USER-INTEL/improper_cvff_intel.cpp index f198e47d5cdcae3bf2e71b857e2658afaa6d2ff9..4562c63cdbe9e3c69bb793cdbb851e9c00a5b412 100644 --- a/src/USER-INTEL/improper_cvff_intel.cpp +++ b/src/USER-INTEL/improper_cvff_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include @@ -138,7 +139,7 @@ void ImproperCvffIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oeimproper,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/improper_harmonic_intel.cpp b/src/USER-INTEL/improper_harmonic_intel.cpp index d638e6a66eb7c681d6c2817879ba851f4007f3df..fc5cf08c529666e24adb587dbecf16046bb334b9 100644 --- a/src/USER-INTEL/improper_harmonic_intel.cpp +++ b/src/USER-INTEL/improper_harmonic_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include @@ -139,7 +140,7 @@ void ImproperHarmonicIntel::eval(const int vflag, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(f_start,f_stride,fc) \ reduction(+:oeimproper,ov0,ov1,ov2,ov3,ov4,ov5) #endif diff --git a/src/USER-INTEL/npair_intel.cpp b/src/USER-INTEL/npair_intel.cpp index 4256e03b3cb78840ade4422a2cec676fb4d4fe3c..f7a233efc9791f88dad47180fd893af20068a42f 100644 --- a/src/USER-INTEL/npair_intel.cpp +++ b/src/USER-INTEL/npair_intel.cpp @@ -15,6 +15,7 @@ Contributing author: W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "comm.h" #include "domain.h" #include "timer.h" @@ -263,7 +264,7 @@ void NPairIntel::bin_newton(const int offload, NeighList *list, } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(overflow, nstencilp, binstart, binend) #endif { diff --git a/src/USER-INTEL/pair_airebo_intel.cpp b/src/USER-INTEL/pair_airebo_intel.cpp index e6e8503bb0a577fe794c443f9816d9d39e93df0f..c1e4a5374a2205e23b905479df0625a9b95b721e 100644 --- a/src/USER-INTEL/pair_airebo_intel.cpp +++ b/src/USER-INTEL/pair_airebo_intel.cpp @@ -49,8 +49,10 @@ #include "kspace.h" #include "modify.h" #include "suffix.h" +#include "math_const.h" using namespace LAMMPS_NS; +using namespace MathConst; #ifdef __INTEL_OFFLOAD #pragma offload_attribute(push, target(mic)) @@ -637,8 +639,6 @@ namespace overloaded { compared to original code. ---------------------------------------------------------------------- */ -#define M_PI 3.14159265358979323846 /* pi */ - #define CARBON 0 #define HYDROGEN 1 #define TOL 1.0e-9 @@ -662,8 +662,8 @@ inline flt_t Sp(flt_t r, flt_t lo, flt_t hi, flt_t * del) { if (del) *del = 0; return 0; } else { - t *= static_cast(M_PI); - if (del) *del = static_cast(-0.5 * M_PI) + t *= static_cast(MY_PI); + if (del) *del = static_cast(-0.5 * MY_PI) * overloaded::sin(t) / (hi - lo); return static_cast(0.5) * (1 + overloaded::cos(t)); } @@ -2248,7 +2248,7 @@ static fvec aut_Sp_deriv(fvec r, fvec lo, fvec hi, fvec * d) { fvec c_1 = fvec::set1(1); fvec c_0_5 = fvec::set1(0.5); fvec c_m0_5 = fvec::set1(-0.5); - fvec c_PI = fvec::set1(M_PI); + fvec c_PI = fvec::set1(MY_PI); bvec m_lo = fvec::cmple(r, lo); bvec m_hi = fvec::cmpnlt(r, hi); // nlt == ge bvec m_tr = bvec::kandn(m_lo, ~ m_hi); @@ -2273,7 +2273,7 @@ static fvec aut_Sp_deriv(fvec r, fvec lo, fvec hi, fvec * d) { static fvec aut_mask_Sp(bvec mask, fvec r, fvec lo, fvec hi) { fvec c_1 = fvec::set1(1); fvec c_0_5 = fvec::set1(0.5); - fvec c_PI = fvec::set1(M_PI); + fvec c_PI = fvec::set1(MY_PI); bvec m_lo = fvec::mask_cmple(mask, r, lo); bvec m_hi = fvec::mask_cmpnlt(mask, r, hi); // nlt == ge bvec m_tr = bvec::kandn(m_lo, bvec::kandn(m_hi, mask)); diff --git a/src/USER-INTEL/pppm_disp_intel.cpp b/src/USER-INTEL/pppm_disp_intel.cpp index fd1302da98358dc33c8cb3e4fe4f68485c168918..75fdc3b1df6fdb6570b9b73fdac6454835441cb0 100644 --- a/src/USER-INTEL/pppm_disp_intel.cpp +++ b/src/USER-INTEL/pppm_disp_intel.cpp @@ -15,6 +15,7 @@ Contributing authors: William McDoniel (RWTH Aachen University) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include @@ -729,7 +730,7 @@ void PPPMDispIntel::particle_map(double delx, double dely, double delz, int flag = 0; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr, delx, dely, delz, sft, p2g, nup, nlow, nxlo,\ nylo, nzlo, nxhi, nyhi, nzhi) reduction(+:flag) if(!_use_lrt) #endif @@ -803,7 +804,7 @@ void PPPMDispIntel::make_rho_c(IntelBuffers * /*buffers*/) int nthr = comm->nthreads; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, nlocal, global_density) if(!_use_lrt) #endif { @@ -909,7 +910,7 @@ void PPPMDispIntel::make_rho_c(IntelBuffers * /*buffers*/) // reduce all the perthread_densities into global_density #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, global_density) if(!_use_lrt) #endif { @@ -951,7 +952,7 @@ void PPPMDispIntel::make_rho_g(IntelBuffers * /*buffers*/) int nthr = comm->nthreads; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, nlocal, global_density) if(!_use_lrt) #endif { @@ -1059,7 +1060,7 @@ void PPPMDispIntel::make_rho_g(IntelBuffers * /*buffers*/) // reduce all the perthread_densities into global_density #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, global_density) if(!_use_lrt) #endif { @@ -1234,7 +1235,7 @@ void PPPMDispIntel::make_rho_none(IntelBuffers * /*buffers*/) int nthr = comm->nthreads; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, nlocal, global_density) if(!_use_lrt) #endif { @@ -1343,7 +1344,7 @@ void PPPMDispIntel::make_rho_none(IntelBuffers * /*buffers*/) // reduce all the perthread_densities into global_density #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, global_density) if(!_use_lrt) #endif { @@ -1386,7 +1387,7 @@ void PPPMDispIntel::fieldforce_c_ik(IntelBuffers * /*buffers*/) #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -1536,7 +1537,7 @@ void PPPMDispIntel::fieldforce_c_ad(IntelBuffers * /*buffers*/) FFT_SCALAR * _noalias const particle_ekz = this->particle_ekz; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -1734,7 +1735,7 @@ void PPPMDispIntel::fieldforce_g_ik(IntelBuffers * /*buffers*/) #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -1881,7 +1882,7 @@ void PPPMDispIntel::fieldforce_g_ad(IntelBuffers * /*buffers*/) FFT_SCALAR * _noalias const particle_ekz = this->particle_ekz; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -2078,7 +2079,7 @@ void PPPMDispIntel::fieldforce_a_ik(IntelBuffers * /*buffers*/) #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -2312,7 +2313,7 @@ void PPPMDispIntel::fieldforce_a_ad(IntelBuffers * /*buffers*/) FFT_SCALAR * _noalias const particle_ekz6 = this->particle_ekz6; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -2603,7 +2604,7 @@ void PPPMDispIntel::fieldforce_none_ik(IntelBuffers * /*buffers*/) #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -2762,7 +2763,7 @@ void PPPMDispIntel::fieldforce_none_ad(IntelBuffers * /*buffers*/) int nthr = comm->nthreads; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { diff --git a/src/USER-INTEL/pppm_intel.cpp b/src/USER-INTEL/pppm_intel.cpp index e3bf779cc1a00140d37b1519da229577526c207c..d643da96b2b1901e59514bedac3d3f8377c2484b 100644 --- a/src/USER-INTEL/pppm_intel.cpp +++ b/src/USER-INTEL/pppm_intel.cpp @@ -18,6 +18,7 @@ W. Michael Brown (Intel) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include @@ -372,7 +373,7 @@ void PPPMIntel::particle_map(IntelBuffers *buffers) error->one(FLERR,"Non-numeric box dimensions - simulation unstable"); #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) reduction(+:flag) if(!_use_lrt) #endif { @@ -446,7 +447,7 @@ void PPPMIntel::make_rho(IntelBuffers *buffers) nthr = comm->nthreads; #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, nlocal, global_density) if(!_use_lrt) #endif { @@ -549,7 +550,7 @@ void PPPMIntel::make_rho(IntelBuffers *buffers) // reduce all the perthread_densities into global_density if (nthr > 1) { #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nthr, global_density) if(!_use_lrt) #endif { @@ -598,7 +599,7 @@ void PPPMIntel::fieldforce_ik(IntelBuffers *buffers) } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { @@ -749,7 +750,7 @@ void PPPMIntel::fieldforce_ad(IntelBuffers *buffers) } #if defined(_OPENMP) - #pragma omp parallel default(none) \ + #pragma omp parallel LMP_DEFAULT_NONE \ shared(nlocal, nthr) if(!_use_lrt) #endif { diff --git a/src/USER-MISC/dihedral_nharmonic.cpp b/src/USER-MISC/dihedral_nharmonic.cpp index 56254a5c03251c54dfcc22cd12568b37682be369..238c17d8121e3f49926f8959f7287982f20dd753 100644 --- a/src/USER-MISC/dihedral_nharmonic.cpp +++ b/src/USER-MISC/dihedral_nharmonic.cpp @@ -261,8 +261,8 @@ void DihedralNHarmonic::allocate() allocated = 1; int n = atom->ndihedraltypes; - memory->create(nterms,n+1,"dihedral:nt"); - a = new double * [n+1]; + nterms = new int[n+1]; + a = new double *[n+1]; memory->create(setflag,n+1,"dihedral:setflag"); for (int i = 1; i <= n; i++) setflag[i] = 0; diff --git a/src/USER-MISC/fix_npt_cauchy.cpp b/src/USER-MISC/fix_npt_cauchy.cpp index 1b0deb5ae3f66f0eaa67ab79643ef52ab2d39749..7a4a34bd00200b603cceefe3d5baa60fe742b49f 100644 --- a/src/USER-MISC/fix_npt_cauchy.cpp +++ b/src/USER-MISC/fix_npt_cauchy.cpp @@ -492,8 +492,12 @@ FixNPTCauchy::FixNPTCauchy(LAMMPS *lmp, int narg, char **arg) : if (p_flag[i]) pstat_flag = 1; if (pstat_flag) { - if (p_flag[0] || p_flag[1] || p_flag[2]) box_change_size = 1; - if (p_flag[3] || p_flag[4] || p_flag[5]) box_change_shape = 1; + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + if (p_flag[3]) box_change |= BOX_CHANGE_YZ; + if (p_flag[4]) box_change |= BOX_CHANGE_XZ; + if (p_flag[5]) box_change |= BOX_CHANGE_XY; no_change_box = 1; if (allremap == 0) restart_pbc = 1; diff --git a/src/USER-MISC/fix_pimd.cpp b/src/USER-MISC/fix_pimd.cpp index 73e1ff434cfe8f8c1fc0e2d222d6fc5d823b4b36..c73f802362e408fb4aee0c2fa7efe4a17d85b017 100644 --- a/src/USER-MISC/fix_pimd.cpp +++ b/src/USER-MISC/fix_pimd.cpp @@ -32,11 +32,13 @@ #include "atom.h" #include "domain.h" #include "update.h" +#include "math_const.h" #include "memory.h" #include "error.h" using namespace LAMMPS_NS; using namespace FixConst; +using namespace MathConst; enum{PIMD,NMPIMD,CMD}; @@ -165,7 +167,7 @@ void FixPIMD::init() const double Boltzmann = 1.3806488E-23; // SI unit: J/K const double Plank = 6.6260755E-34; // SI unit: m^2 kg / s - double hbar = Plank / ( 2.0 * M_PI ) * sp; + double hbar = Plank / ( 2.0 * MY_PI ) * sp; double beta = 1.0 / ( Boltzmann * input.nh_temp); // - P / ( beta^2 * hbar^2) SI unit: s^-2 @@ -181,7 +183,7 @@ void FixPIMD::init() const double Boltzmann = force->boltz; const double Plank = force->hplanck; - double hbar = Plank / ( 2.0 * M_PI ); + double hbar = Plank / ( 2.0 * MY_PI ); double beta = 1.0 / (Boltzmann * nhc_temp); double _fbond = 1.0 * np / (beta*beta*hbar*hbar) ; @@ -429,7 +431,7 @@ void FixPIMD::nmpimd_init() for(int i=2; i<=np/2; i++) { - lam[2*i-3] = lam[2*i-2] = 2.0 * np * (1.0 - 1.0 *cos(2.0*M_PI*(i-1)/np)); + lam[2*i-3] = lam[2*i-2] = 2.0 * np * (1.0 - 1.0 *cos(2.0*MY_PI*(i-1)/np)); } // Set up eigenvectors for non-degenerated modes @@ -444,8 +446,8 @@ void FixPIMD::nmpimd_init() for(int i=0; i<(np-1)/2; i++) for(int j=0; jinumeric(FLERR,inArgv[4]); n[2] = force->inumeric(FLERR,inArgv[5]); - mK[0] = n[0]*(2*M_PI / (domain->boxhi[0] - domain->boxlo[0])); - mK[1] = n[1]*(2*M_PI / (domain->boxhi[1] - domain->boxlo[1])); - mK[2] = n[2]*(2*M_PI / (domain->boxhi[2] - domain->boxlo[2])); + mK[0] = n[0]*(2*MY_PI / (domain->boxhi[0] - domain->boxlo[0])); + mK[1] = n[1]*(2*MY_PI / (domain->boxhi[1] - domain->boxlo[1])); + mK[2] = n[2]*(2*MY_PI / (domain->boxhi[2] - domain->boxlo[2])); mKappa = force->numeric(FLERR,inArgv[6]); mRhoK0 = force->numeric(FLERR,inArgv[7]); diff --git a/src/USER-MISC/pair_drip.cpp b/src/USER-MISC/pair_drip.cpp index 020216f50336dfb97f8e8aeb47efa58d9f1c3ae9..bb28d056ac5882d0b621fb2c0ef3bf0c5ad99c4e 100644 --- a/src/USER-MISC/pair_drip.cpp +++ b/src/USER-MISC/pair_drip.cpp @@ -33,6 +33,7 @@ #include "neigh_request.h" #include "memory.h" #include "error.h" +#include "utils.h" using namespace LAMMPS_NS; @@ -116,8 +117,8 @@ void PairDRIP::allocate() void PairDRIP::settings(int narg, char ** /* arg */) { if (narg != 0) error->all(FLERR,"Illegal pair_style command"); - if (strcmp(force->pair_style,"hybrid/overlay")!=0) - error->all(FLERR,"ERROR: requires hybrid/overlay pair_style"); + if (!utils::strmatch(force->pair_style,"^hybrid/overlay")) + error->all(FLERR,"Pair style drip must be used as sub-style with hybrid/overlay"); } /* ---------------------------------------------------------------------- diff --git a/src/USER-OMP/README b/src/USER-OMP/README index 46f63f646be3f7c8b326586d2a5a8a3c1415698a..0aef853bca84c64c4635f1f8da9677abf33ae015 100644 --- a/src/USER-OMP/README +++ b/src/USER-OMP/README @@ -9,11 +9,3 @@ doc/Section_accelerate.html, sub-section 5.2 The person who created this package is Axel Kohlmeyer at Temple U (akohlmey at gmail.com). Contact him directly if you have questions. --------------------------- - -This directory also contains a shell script: - -hack_openmp_for_pgi.sh - -which will convert OpenMP directives in src files -into a form compatible with the PGI compiler. diff --git a/src/USER-OMP/angle_charmm_omp.cpp b/src/USER-OMP/angle_charmm_omp.cpp index 116c937788a5d7b1288e11dae3a8c73cebbec063..6933afdcd9217760341f271ac202534f63293404 100644 --- a/src/USER-OMP/angle_charmm_omp.cpp +++ b/src/USER-OMP/angle_charmm_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_charmm_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleCharmmOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_class2_omp.cpp b/src/USER-OMP/angle_class2_omp.cpp index 9aab1d73b3805be228c35f0a998ebef8c9b37cbf..09ee59d5af6abc86c1d6f92dfdb2538c49dd04f1 100644 --- a/src/USER-OMP/angle_class2_omp.cpp +++ b/src/USER-OMP/angle_class2_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_class2_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleClass2OMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_cosine_delta_omp.cpp b/src/USER-OMP/angle_cosine_delta_omp.cpp index 44326c124e83c64d4d363ba0c61181bd2055d8b9..ca5afe1449c00adf753caa21b46adb923ac681ee 100644 --- a/src/USER-OMP/angle_cosine_delta_omp.cpp +++ b/src/USER-OMP/angle_cosine_delta_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_cosine_delta_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleCosineDeltaOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_cosine_omp.cpp b/src/USER-OMP/angle_cosine_omp.cpp index 3bfa2aa39c429343ea0ab828a5d572ed0d17cf45..48fdd9ba60aaf10f72875aa5582fca4faf139e02 100644 --- a/src/USER-OMP/angle_cosine_omp.cpp +++ b/src/USER-OMP/angle_cosine_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_cosine_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleCosineOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_cosine_periodic_omp.cpp b/src/USER-OMP/angle_cosine_periodic_omp.cpp index 700179119ccfcfaf301f1222565c43306a3b837e..a0e45fe1314591b46431cb6b4b286c0b9e46f904 100644 --- a/src/USER-OMP/angle_cosine_periodic_omp.cpp +++ b/src/USER-OMP/angle_cosine_periodic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_cosine_periodic_omp.h" #include #include "atom.h" @@ -49,7 +50,7 @@ void AngleCosinePeriodicOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_cosine_shift_exp_omp.cpp b/src/USER-OMP/angle_cosine_shift_exp_omp.cpp index 1e37688425ddb017f92d44fb7f2e02371cd9b754..21019336b3e90e096cd8f41317be9255faebd395 100644 --- a/src/USER-OMP/angle_cosine_shift_exp_omp.cpp +++ b/src/USER-OMP/angle_cosine_shift_exp_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_cosine_shift_exp_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleCosineShiftExpOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_cosine_shift_omp.cpp b/src/USER-OMP/angle_cosine_shift_omp.cpp index 35b409edf1b019b3d099724766fc71eac85249de..1e6d712b628e718365c352c817be486da6b2ad8d 100644 --- a/src/USER-OMP/angle_cosine_shift_omp.cpp +++ b/src/USER-OMP/angle_cosine_shift_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_cosine_shift_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleCosineShiftOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_cosine_squared_omp.cpp b/src/USER-OMP/angle_cosine_squared_omp.cpp index 9da5a0fce30ad7cdbf2f96b96808c4f3b2d37aca..6df1e028a039c04a8c5fbfc94264a31cbf36f660 100644 --- a/src/USER-OMP/angle_cosine_squared_omp.cpp +++ b/src/USER-OMP/angle_cosine_squared_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_cosine_squared_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleCosineSquaredOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_dipole_omp.cpp b/src/USER-OMP/angle_dipole_omp.cpp index 33ec216f6a84963229fdbc857b583cac1c1bcf90..26d8a7817e13ae326794350b67f6f8949dcbc84f 100644 --- a/src/USER-OMP/angle_dipole_omp.cpp +++ b/src/USER-OMP/angle_dipole_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_dipole_omp.h" #include #include "atom.h" @@ -51,7 +52,7 @@ void AngleDipoleOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_fourier_omp.cpp b/src/USER-OMP/angle_fourier_omp.cpp index 64ff99e6c6bce753cd593c9f0b9d606b27a3ae0b..b6ddea3ff9ac3100ee8947ef6b40e458112c6f0d 100644 --- a/src/USER-OMP/angle_fourier_omp.cpp +++ b/src/USER-OMP/angle_fourier_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_fourier_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleFourierOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_fourier_simple_omp.cpp b/src/USER-OMP/angle_fourier_simple_omp.cpp index 2ae8c5561d8a512e9e7e1e1628b32011830e42dc..992acf7c99fd58c7ddff8a88c223c7755d8ac3dc 100644 --- a/src/USER-OMP/angle_fourier_simple_omp.cpp +++ b/src/USER-OMP/angle_fourier_simple_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_fourier_simple_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleFourierSimpleOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_harmonic_omp.cpp b/src/USER-OMP/angle_harmonic_omp.cpp index 66c06023967186a776f11129abccc912429fa6dc..0cfc6f95af2740535723dbde84ff6456b90cdb60 100644 --- a/src/USER-OMP/angle_harmonic_omp.cpp +++ b/src/USER-OMP/angle_harmonic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_harmonic_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleHarmonicOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_quartic_omp.cpp b/src/USER-OMP/angle_quartic_omp.cpp index 903b0e42251263276a6ff0f634070a6a4d30cd12..a774edb8c46740145a55ee18b5964e29db935501 100644 --- a/src/USER-OMP/angle_quartic_omp.cpp +++ b/src/USER-OMP/angle_quartic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_quartic_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleQuarticOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_sdk_omp.cpp b/src/USER-OMP/angle_sdk_omp.cpp index 3c8ee9cde851f2f07b7fb6fd698cad60756b4b46..e0bc021f1b1bee68a01c00392069e29b97bc3e54 100644 --- a/src/USER-OMP/angle_sdk_omp.cpp +++ b/src/USER-OMP/angle_sdk_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_sdk_omp.h" #include #include "atom.h" @@ -49,7 +50,7 @@ void AngleSDKOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/angle_table_omp.cpp b/src/USER-OMP/angle_table_omp.cpp index de36d099802dc6db76bd3992bc29bfbcefded4a4..1af60f85f651545591c0151185204d3f4a7d6b6e 100644 --- a/src/USER-OMP/angle_table_omp.cpp +++ b/src/USER-OMP/angle_table_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "angle_table_omp.h" #include #include "atom.h" @@ -47,7 +48,7 @@ void AngleTableOMP::compute(int eflag, int vflag) const int inum = neighbor->nanglelist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_class2_omp.cpp b/src/USER-OMP/bond_class2_omp.cpp index 9da50d1aa010c8819b8992c44e3baf35a087f30c..06edf46024be4f96f6a46501c2069c2cf1b80754 100644 --- a/src/USER-OMP/bond_class2_omp.cpp +++ b/src/USER-OMP/bond_class2_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_class2_omp.h" #include "atom.h" #include "comm.h" @@ -47,7 +48,7 @@ void BondClass2OMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_fene_expand_omp.cpp b/src/USER-OMP/bond_fene_expand_omp.cpp index a937cb6c34f6ed24780efd25973fd88a660940ff..5f3dd48841bee142df9faba768e1e9dbaf73b40a 100644 --- a/src/USER-OMP/bond_fene_expand_omp.cpp +++ b/src/USER-OMP/bond_fene_expand_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_fene_expand_omp.h" #include "atom.h" #include "comm.h" @@ -48,7 +49,7 @@ void BondFENEExpandOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_fene_omp.cpp b/src/USER-OMP/bond_fene_omp.cpp index 3c653fedae5366b30f69344871c663e4ed0591f0..ebf5afdc57e91bab9615cb66779659a9e66830b8 100644 --- a/src/USER-OMP/bond_fene_omp.cpp +++ b/src/USER-OMP/bond_fene_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_fene_omp.h" #include "atom.h" #include "comm.h" @@ -48,7 +49,7 @@ void BondFENEOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_gromos_omp.cpp b/src/USER-OMP/bond_gromos_omp.cpp index cedd5f96b7e45d520db6b464945eca172201938c..e5eebfebfc8f43a3089ec539afee9556bbca44da 100644 --- a/src/USER-OMP/bond_gromos_omp.cpp +++ b/src/USER-OMP/bond_gromos_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_gromos_omp.h" #include "atom.h" #include "comm.h" @@ -44,7 +45,7 @@ void BondGromosOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_harmonic_omp.cpp b/src/USER-OMP/bond_harmonic_omp.cpp index 4144f02a39361ff039bfa70770bff3ef56bdd44b..9160ee70232e1f20a53fb3753ab1e621ecba4bf6 100644 --- a/src/USER-OMP/bond_harmonic_omp.cpp +++ b/src/USER-OMP/bond_harmonic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_harmonic_omp.h" #include "atom.h" #include "comm.h" @@ -46,7 +47,7 @@ void BondHarmonicOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_harmonic_shift_cut_omp.cpp b/src/USER-OMP/bond_harmonic_shift_cut_omp.cpp index 10e4cdcd1c623e53b0caebb82c1b474e77b6037f..7a6c616e4ae1f7ba5e215c9266ee780ccb322ed0 100644 --- a/src/USER-OMP/bond_harmonic_shift_cut_omp.cpp +++ b/src/USER-OMP/bond_harmonic_shift_cut_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_harmonic_shift_cut_omp.h" #include "atom.h" #include "comm.h" @@ -46,7 +47,7 @@ void BondHarmonicShiftCutOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_harmonic_shift_omp.cpp b/src/USER-OMP/bond_harmonic_shift_omp.cpp index a0a7750890ebd06a042b1ef6c1b9676da0fe9539..19f0a08510f57c7cb41caee1e400a31739a5b19f 100644 --- a/src/USER-OMP/bond_harmonic_shift_omp.cpp +++ b/src/USER-OMP/bond_harmonic_shift_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_harmonic_shift_omp.h" #include "atom.h" #include "comm.h" @@ -46,7 +47,7 @@ void BondHarmonicShiftOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_morse_omp.cpp b/src/USER-OMP/bond_morse_omp.cpp index 32361cb5de8945f8727817abace5d3faefe47e74..90318c8faf7939819a3ada85108d5e312a4e5ee1 100644 --- a/src/USER-OMP/bond_morse_omp.cpp +++ b/src/USER-OMP/bond_morse_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_morse_omp.h" #include "atom.h" #include "comm.h" @@ -46,7 +47,7 @@ void BondMorseOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_nonlinear_omp.cpp b/src/USER-OMP/bond_nonlinear_omp.cpp index f21772435f9144fef797a1483aa55972d211fa2b..809950f2b7e294d0624c8b9835db9ae58c753b40 100644 --- a/src/USER-OMP/bond_nonlinear_omp.cpp +++ b/src/USER-OMP/bond_nonlinear_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_nonlinear_omp.h" #include "atom.h" #include "comm.h" @@ -46,7 +47,7 @@ void BondNonlinearOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_quartic_omp.cpp b/src/USER-OMP/bond_quartic_omp.cpp index 46ee4ab96b0f89023bfff327401ee21cc7ce924e..0efaa10e3711d7c7d50d8e664b781c90d86383f3 100644 --- a/src/USER-OMP/bond_quartic_omp.cpp +++ b/src/USER-OMP/bond_quartic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_quartic_omp.h" #include "atom.h" #include "comm.h" @@ -52,7 +53,7 @@ void BondQuarticOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/bond_table_omp.cpp b/src/USER-OMP/bond_table_omp.cpp index db1599fbcc48e4b0a215e9197a45dfae64f15b1b..f503bcab2622a813d2779f39047461f479b85fd6 100644 --- a/src/USER-OMP/bond_table_omp.cpp +++ b/src/USER-OMP/bond_table_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "bond_table_omp.h" #include "atom.h" #include "comm.h" @@ -46,7 +47,7 @@ void BondTableOMP::compute(int eflag, int vflag) const int inum = neighbor->nbondlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_charmm_omp.cpp b/src/USER-OMP/dihedral_charmm_omp.cpp index 242a0a1d86e9eb388096ca5a7de2c46c8cd701cd..afd3071434c3929f028c449bdb77e387abe831cc 100644 --- a/src/USER-OMP/dihedral_charmm_omp.cpp +++ b/src/USER-OMP/dihedral_charmm_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dihedral_charmm_omp.h" #include #include "atom.h" @@ -56,7 +57,7 @@ void DihedralCharmmOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_class2_omp.cpp b/src/USER-OMP/dihedral_class2_omp.cpp index 215677612b6d801f1d6ddcea936eb51fb3963c43..49b8659e2facd64714fb83ecb184c5c09a0f6a86 100644 --- a/src/USER-OMP/dihedral_class2_omp.cpp +++ b/src/USER-OMP/dihedral_class2_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_class2_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void DihedralClass2OMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_cosine_shift_exp_omp.cpp b/src/USER-OMP/dihedral_cosine_shift_exp_omp.cpp index f42121f8a9bcfea2e95319330b49e1724108634b..cea22adf1b4c3185fa3ab09ef93c1fe6379d8209 100644 --- a/src/USER-OMP/dihedral_cosine_shift_exp_omp.cpp +++ b/src/USER-OMP/dihedral_cosine_shift_exp_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_cosine_shift_exp_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void DihedralCosineShiftExpOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_fourier_omp.cpp b/src/USER-OMP/dihedral_fourier_omp.cpp index cd12b3630eabb8c0a0917de904f797c46719d063..756931774a01733b1eb263f2be7421602e625b59 100644 --- a/src/USER-OMP/dihedral_fourier_omp.cpp +++ b/src/USER-OMP/dihedral_fourier_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dihedral_fourier_omp.h" #include #include "atom.h" @@ -49,7 +50,7 @@ void DihedralFourierOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_harmonic_omp.cpp b/src/USER-OMP/dihedral_harmonic_omp.cpp index c3adb113e24f52fe70fef77865660d5daacdc240..d1f511954e0ecd5d702a782b8938f6739b5afa7c 100644 --- a/src/USER-OMP/dihedral_harmonic_omp.cpp +++ b/src/USER-OMP/dihedral_harmonic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_harmonic_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void DihedralHarmonicOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_helix_omp.cpp b/src/USER-OMP/dihedral_helix_omp.cpp index b38ff2739a82edde1f67fa36e3a86afee59d9f70..5289fc2c6288f604cfe33cf42c5069ae8741c18c 100644 --- a/src/USER-OMP/dihedral_helix_omp.cpp +++ b/src/USER-OMP/dihedral_helix_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_helix_omp.h" #include "atom.h" @@ -53,7 +54,7 @@ void DihedralHelixOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_multi_harmonic_omp.cpp b/src/USER-OMP/dihedral_multi_harmonic_omp.cpp index 7b79a637223269267ce1453d679957b6b30536b9..edf8a20899d7482051c59edc40a3afdefb8c1f04 100644 --- a/src/USER-OMP/dihedral_multi_harmonic_omp.cpp +++ b/src/USER-OMP/dihedral_multi_harmonic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_multi_harmonic_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void DihedralMultiHarmonicOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_nharmonic_omp.cpp b/src/USER-OMP/dihedral_nharmonic_omp.cpp index f3d8471c95ec3598407c10142ce8a8eec0ce22b9..bf51a0171377e0fe61250766bf297aa5402efad1 100644 --- a/src/USER-OMP/dihedral_nharmonic_omp.cpp +++ b/src/USER-OMP/dihedral_nharmonic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_nharmonic_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void DihedralNHarmonicOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_opls_omp.cpp b/src/USER-OMP/dihedral_opls_omp.cpp index 24cc4cd064e4a9ffc5827e154f26ca3cf1ea7be6..8814d3f3f04e41ff14e943fd4c63a5b1bc9bf810 100644 --- a/src/USER-OMP/dihedral_opls_omp.cpp +++ b/src/USER-OMP/dihedral_opls_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_opls_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void DihedralOPLSOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_quadratic_omp.cpp b/src/USER-OMP/dihedral_quadratic_omp.cpp index 6f82c1e6b00551726e85419a00a4bc4c8aa030b1..e61c5f0d85cc4cf39df1180863d9f471f479e37c 100644 --- a/src/USER-OMP/dihedral_quadratic_omp.cpp +++ b/src/USER-OMP/dihedral_quadratic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "dihedral_quadratic_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void DihedralQuadraticOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/dihedral_table_omp.cpp b/src/USER-OMP/dihedral_table_omp.cpp index a760fc609425bac1a0200338665297a50c65fca6..bf5332a1c1adac2b4ccac62818010626b7262630 100644 --- a/src/USER-OMP/dihedral_table_omp.cpp +++ b/src/USER-OMP/dihedral_table_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "dihedral_table_omp.h" #include #include "atom.h" @@ -113,7 +114,7 @@ void DihedralTableOMP::compute(int eflag, int vflag) const int inum = neighbor->ndihedrallist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/domain_omp.cpp b/src/USER-OMP/domain_omp.cpp index 18d2a587ca87cfc26df9e342321aa3617ef8e4ae..dfd3d3590fd2e7a050f9b9e38e08764317a3f373 100644 --- a/src/USER-OMP/domain_omp.cpp +++ b/src/USER-OMP/domain_omp.cpp @@ -15,6 +15,7 @@ Contributing author : Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "accelerator_omp.h" #include "atom.h" @@ -45,7 +46,7 @@ void DomainOMP::pbc() const int nlocal = atom->nlocal; #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { imageint idim,otherdims; @@ -143,7 +144,7 @@ void DomainOMP::lamda2x(int n) const int num = n; #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < num; i++) { x[i].x = h[0]*x[i].x + h[5]*x[i].y + h[4]*x[i].z + boxlo[0]; @@ -163,7 +164,7 @@ void DomainOMP::x2lamda(int n) const int num = n; #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < num; i++) { double delta0 = x[i].x - boxlo[0]; diff --git a/src/USER-OMP/ewald_omp.cpp b/src/USER-OMP/ewald_omp.cpp index a539394f69deb91d19171293a1992ec3f380bdbc..fd776e46a6d3f33d66da81a1d18b486cb608c015 100644 --- a/src/USER-OMP/ewald_omp.cpp +++ b/src/USER-OMP/ewald_omp.cpp @@ -15,6 +15,7 @@ Contributing authors: Roy Pollock (LLNL), Paul Crozier (SNL) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "ewald_omp.h" #include #include @@ -104,7 +105,7 @@ void EwaldOMP::compute(int eflag, int vflag) v0=v1=v2=v3=v4=v5=0.0; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) reduction(+:eng_tmp,v0,v1,v2,v3,v4,v5) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) reduction(+:eng_tmp,v0,v1,v2,v3,v4,v5) #endif { @@ -234,7 +235,7 @@ void EwaldOMP::eik_dot_r() const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int i,ifrom,ito,k,l,m,n,ic,tid; diff --git a/src/USER-OMP/fix_gravity_omp.cpp b/src/USER-OMP/fix_gravity_omp.cpp index 5bc1085f34c7f6ccaf139545eb3728ffb7d0a074..830fa0c4eb45a3ce04717f22ebe610263e0db5e4 100644 --- a/src/USER-OMP/fix_gravity_omp.cpp +++ b/src/USER-OMP/fix_gravity_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_gravity_omp.h" #include "atom.h" #include "update.h" @@ -69,7 +70,7 @@ void FixGravityOMP::post_force(int /* vflag */) if (rmass) { #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(-:grav) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(-:grav) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { @@ -81,7 +82,7 @@ void FixGravityOMP::post_force(int /* vflag */) } } else { #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(-:grav) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(-:grav) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { diff --git a/src/USER-OMP/fix_neigh_history_omp.cpp b/src/USER-OMP/fix_neigh_history_omp.cpp index 22d3fa944c961b05494e725ad1b4cb32b95d6532..7acded0ab255c7c47d3da638d96913f1d123cab8 100644 --- a/src/USER-OMP/fix_neigh_history_omp.cpp +++ b/src/USER-OMP/fix_neigh_history_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_neigh_history_omp.h" #include #include "my_page.h" @@ -73,7 +74,7 @@ void FixNeighHistoryOMP::pre_exchange_onesided() maxpartner = 0; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { @@ -199,7 +200,7 @@ void FixNeighHistoryOMP::pre_exchange_newton() for (int i = 0; i < nall_neigh; i++) npartner[i] = 0; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { @@ -373,7 +374,7 @@ void FixNeighHistoryOMP::pre_exchange_no_newton() maxpartner = 0; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { @@ -525,7 +526,7 @@ void FixNeighHistoryOMP::post_neighbor() #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { diff --git a/src/USER-OMP/fix_nh_asphere_omp.cpp b/src/USER-OMP/fix_nh_asphere_omp.cpp index 185eab5f47c756b152344318aa1521d19573e215..9c7317bebd192a5fcf41b6d7db21ec11fecae857 100644 --- a/src/USER-OMP/fix_nh_asphere_omp.cpp +++ b/src/USER-OMP/fix_nh_asphere_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include @@ -82,7 +83,7 @@ void FixNHAsphereOMP::nve_v() // merged with FixNHOMP instead of calling it for the COM update. #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -122,7 +123,7 @@ void FixNHAsphereOMP::nve_x() // principal moments of inertia #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { @@ -163,7 +164,7 @@ void FixNHAsphereOMP::nh_v_temp() if (which == NOBIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -177,7 +178,7 @@ void FixNHAsphereOMP::nh_v_temp() } } else if (which == BIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { double buf[3]; diff --git a/src/USER-OMP/fix_nh_omp.cpp b/src/USER-OMP/fix_nh_omp.cpp index d584bcd11f0c73740d01ad1c5fb8a6f5ac746885..b30169b2dc6d252513f290c0f05b9cc94319c815 100644 --- a/src/USER-OMP/fix_nh_omp.cpp +++ b/src/USER-OMP/fix_nh_omp.cpp @@ -15,6 +15,7 @@ Contributing authors: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_nh_omp.h" #include #include "atom.h" @@ -57,7 +58,7 @@ void FixNHOMP::remap() if (allremap) domain->x2lamda(nlocal); else { #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & dilate_group_bit) @@ -207,7 +208,7 @@ void FixNHOMP::remap() if (allremap) domain->lamda2x(nlocal); else { #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & dilate_group_bit) @@ -235,7 +236,7 @@ void FixNHOMP::nh_v_press() if (which == NOBIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -253,7 +254,7 @@ void FixNHOMP::nh_v_press() } } else if (which == BIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { double buf[3]; @@ -289,7 +290,7 @@ void FixNHOMP::nve_v() if (atom->rmass) { const double * _noalias const rmass = atom->rmass; #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -303,7 +304,7 @@ void FixNHOMP::nve_v() const double *_noalias const mass = atom->mass; const int * _noalias const type = atom->type; #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -330,7 +331,7 @@ void FixNHOMP::nve_x() // x update by full step only for atoms in group #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -352,7 +353,7 @@ void FixNHOMP::nh_v_temp() if (which == NOBIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -363,7 +364,7 @@ void FixNHOMP::nh_v_temp() } } else if (which == BIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { double buf[3]; diff --git a/src/USER-OMP/fix_nh_sphere_omp.cpp b/src/USER-OMP/fix_nh_sphere_omp.cpp index 0048ae7ff746bcad79398469810154266807273c..dd9a8addf41f9a8c70baa32fef3d0d82b530f849 100644 --- a/src/USER-OMP/fix_nh_sphere_omp.cpp +++ b/src/USER-OMP/fix_nh_sphere_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_nh_sphere_omp.h" #include "atom.h" #include "compute.h" @@ -85,7 +86,7 @@ void FixNHSphereOMP::nve_v() // 4 cases depending on radius vs shape and rmass vs mass #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -115,7 +116,7 @@ void FixNHSphereOMP::nh_v_temp() if (which == NOBIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -129,7 +130,7 @@ void FixNHSphereOMP::nh_v_temp() } } else if (which == BIAS) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) { double buf[3]; diff --git a/src/USER-OMP/fix_nve_omp.cpp b/src/USER-OMP/fix_nve_omp.cpp index f693c2fa20cc019df2a375ebf7ae324bf836091c..13c1dfb642375b9403c3a21d86c0332a08d7647a 100644 --- a/src/USER-OMP/fix_nve_omp.cpp +++ b/src/USER-OMP/fix_nve_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_nve_omp.h" #include "atom.h" @@ -41,7 +42,7 @@ void FixNVEOMP::initial_integrate(int /* vflag */) if (atom->rmass) { const double * const rmass = atom->rmass; #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { @@ -58,7 +59,7 @@ void FixNVEOMP::initial_integrate(int /* vflag */) const double * const mass = atom->mass; const int * const type = atom->type; #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { @@ -87,7 +88,7 @@ void FixNVEOMP::final_integrate() if (atom->rmass) { const double * const rmass = atom->rmass; #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { @@ -101,7 +102,7 @@ void FixNVEOMP::final_integrate() const double * const mass = atom->mass; const int * const type = atom->type; #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { diff --git a/src/USER-OMP/fix_nve_sphere_omp.cpp b/src/USER-OMP/fix_nve_sphere_omp.cpp index bc7be4019ca79d87eff405780f88953f03b45481..4a1bd4dfda9e90727e168ad196c9fbbf3560c9b6 100644 --- a/src/USER-OMP/fix_nve_sphere_omp.cpp +++ b/src/USER-OMP/fix_nve_sphere_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_nve_sphere_omp.h" #include #include "atom.h" @@ -49,7 +50,7 @@ void FixNVESphereOMP::initial_integrate(int /* vflag */) // update v,x,omega for all particles // d_omega/dt = torque / inertia #if defined(_OPENMP) -#pragma omp parallel for default(none) +#pragma omp parallel for LMP_DEFAULT_NONE #endif for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { @@ -76,7 +77,7 @@ void FixNVESphereOMP::initial_integrate(int /* vflag */) double * const * const mu = atom->mu; if (dlm == NODLM) { #if defined(_OPENMP) -#pragma omp parallel for default(none) +#pragma omp parallel for LMP_DEFAULT_NONE #endif for (int i = 0; i < nlocal; i++) { double g0,g1,g2,msq,scale; @@ -95,7 +96,7 @@ void FixNVESphereOMP::initial_integrate(int /* vflag */) } } else { #if defined(_OPENMP) -#pragma omp parallel for default(none) +#pragma omp parallel for LMP_DEFAULT_NONE #endif // Integrate orientation following Dullweber-Leimkuhler-Maclachlan scheme for (int i = 0; i < nlocal; i++) { @@ -223,7 +224,7 @@ void FixNVESphereOMP::final_integrate() // d_omega/dt = torque / inertia #if defined(_OPENMP) -#pragma omp parallel for default(none) +#pragma omp parallel for LMP_DEFAULT_NONE #endif for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { diff --git a/src/USER-OMP/fix_nvt_sllod_omp.cpp b/src/USER-OMP/fix_nvt_sllod_omp.cpp index 9b3b5154157e6b2cc55f59c2942973ef4f1eb3f9..0d23d6c03fa0ca50b7fce04b92b838d10d09fc20 100644 --- a/src/USER-OMP/fix_nvt_sllod_omp.cpp +++ b/src/USER-OMP/fix_nvt_sllod_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_nvt_sllod_omp.h" #include #include "math_extra.h" @@ -114,7 +115,7 @@ void FixNVTSllodOMP::nh_v_temp() MathExtra::multiply_shape_shape(domain->h_rate,domain->h_inv,h_two); #if defined(_OPENMP) -#pragma omp parallel for default(none) shared(h_two) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE LMP_SHARED(h_two) schedule(static) #endif for (int i = 0; i < nlocal; i++) { double vdelu0,vdelu1,vdelu2,buf[3]; diff --git a/src/USER-OMP/fix_omp.cpp b/src/USER-OMP/fix_omp.cpp index 1fca1e739bb24e0f8767044e5d736f42c92e2a75..25a3a098163093f0ecfbe65838bf4c3151739df0 100644 --- a/src/USER-OMP/fix_omp.cpp +++ b/src/USER-OMP/fix_omp.cpp @@ -16,6 +16,7 @@ OpenMP based threading support for LAMMPS ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "atom.h" #include "comm.h" #include "error.h" @@ -70,7 +71,7 @@ FixOMP::FixOMP(LAMMPS *lmp, int narg, char **arg) if (narg > 3) { #if defined(_OPENMP) if (strcmp(arg[3],"0") == 0) -#pragma omp parallel default(none) shared(nthreads) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(nthreads) nthreads = omp_get_num_threads(); else nthreads = force->inumeric(FLERR,arg[3]); @@ -134,7 +135,7 @@ FixOMP::FixOMP(LAMMPS *lmp, int narg, char **arg) thr = new ThrData *[nthreads]; _nthr = nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(lmp) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(lmp) #endif { const int tid = get_tid(); @@ -186,7 +187,7 @@ void FixOMP::init() thr = new ThrData *[nthreads]; _nthr = nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const int tid = get_tid(); @@ -350,7 +351,7 @@ void FixOMP::pre_force(int) double *drho = atom->drho; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(f,torque,erforce,de,drho) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(f,torque,erforce,de,drho) #endif { const int tid = get_tid(); diff --git a/src/USER-OMP/fix_rigid_nh_omp.cpp b/src/USER-OMP/fix_rigid_nh_omp.cpp index da512cb428b70e136985fbc4d68ec9934714ee46..63084fcc9ef023f38f844b71d3c2b2efdd913514 100644 --- a/src/USER-OMP/fix_rigid_nh_omp.cpp +++ b/src/USER-OMP/fix_rigid_nh_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_rigid_nh_omp.h" #include #include @@ -89,7 +90,7 @@ void FixRigidNHOMP::initial_integrate(int vflag) double akt=0.0, akr=0.0; #if defined(_OPENMP) -#pragma omp parallel for default(none) shared(scale_r,scale_t,scale_v) schedule(static) reduction(+:akt,akr) +#pragma omp parallel for LMP_DEFAULT_NONE LMP_SHARED(scale_r,scale_t,scale_v) schedule(static) reduction(+:akt,akr) #endif for (int ibody = 0; ibody < nbody; ibody++) { double mbody[3],tbody[3],fquat[4]; @@ -250,7 +251,7 @@ void FixRigidNHOMP::compute_forces_and_torques() int i; #if defined(_OPENMP) -#pragma omp parallel for default(none) private(i) reduction(+:s0,s1,s2,s3,s4,s5) +#pragma omp parallel for LMP_DEFAULT_NONE private(i) reduction(+:s0,s1,s2,s3,s4,s5) #endif for (i = 0; i < nlocal; i++) { const int ibody = body[i]; @@ -289,7 +290,7 @@ void FixRigidNHOMP::compute_forces_and_torques() int i; #if defined(_OPENMP) -#pragma omp parallel for default(none) private(i) shared(ib) reduction(+:s0,s1,s2,s3,s4,s5) +#pragma omp parallel for LMP_DEFAULT_NONE private(i) LMP_SHARED(ib) reduction(+:s0,s1,s2,s3,s4,s5) #endif for (i = 0; i < nlocal; i++) { const int ibody = body[i]; @@ -330,7 +331,7 @@ void FixRigidNHOMP::compute_forces_and_torques() memset(&sum[0][0],0,6*nbody*sizeof(double)); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -373,7 +374,7 @@ void FixRigidNHOMP::compute_forces_and_torques() MPI_Allreduce(sum[0],all[0],6*nbody,MPI_DOUBLE,MPI_SUM,world); #if defined(_OPENMP) -#pragma omp parallel for default(none) private(ibody) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE private(ibody) schedule(static) #endif for (ibody = 0; ibody < nbody; ibody++) { fcm[ibody][0] = all[ibody][0] + langextra[ibody][0]; @@ -388,7 +389,7 @@ void FixRigidNHOMP::compute_forces_and_torques() if (id_gravity) { #if defined(_OPENMP) -#pragma omp parallel for default(none) private(ibody) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE private(ibody) schedule(static) #endif for (ibody = 0; ibody < nbody; ibody++) { fcm[ibody][0] += gvec[0]*masstotal[ibody]; @@ -433,7 +434,7 @@ void FixRigidNHOMP::final_integrate() const double dtf2 = dtf * 2.0; #if defined(_OPENMP) -#pragma omp parallel for default(none) shared(scale_t,scale_r) schedule(static) reduction(+:akt,akr) +#pragma omp parallel for LMP_DEFAULT_NONE LMP_SHARED(scale_t,scale_r) schedule(static) reduction(+:akt,akr) #endif for (int ibody = 0; ibody < nbody; ibody++) { double mbody[3],tbody[3],fquat[4]; @@ -554,7 +555,7 @@ void FixRigidNHOMP::remap() if (allremap) domain->x2lamda(nlocal); else { #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & dilate_group_bit) @@ -586,7 +587,7 @@ void FixRigidNHOMP::remap() if (allremap) domain->lamda2x(nlocal); else { #if defined (_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int i = 0; i < nlocal; i++) if (mask[i] & dilate_group_bit) @@ -631,7 +632,7 @@ void FixRigidNHOMP::set_xv_thr() int i; #if defined(_OPENMP) -#pragma omp parallel for default(none) private(i) reduction(+:v0,v1,v2,v3,v4,v5) +#pragma omp parallel for LMP_DEFAULT_NONE private(i) reduction(+:v0,v1,v2,v3,v4,v5) #endif for (i = 0; i < nlocal; i++) { const int ibody = body[i]; @@ -832,7 +833,7 @@ void FixRigidNHOMP::set_v_thr() int i; #if defined(_OPENMP) -#pragma omp parallel for default(none) private(i) reduction(+:v0,v1,v2,v3,v4,v5) +#pragma omp parallel for LMP_DEFAULT_NONE private(i) reduction(+:v0,v1,v2,v3,v4,v5) #endif for (i = 0; i < nlocal; i++) { const int ibody = body[i]; diff --git a/src/USER-OMP/fix_rigid_nph_omp.cpp b/src/USER-OMP/fix_rigid_nph_omp.cpp index 31d53868c8155f68af26e4b22014c98ccb0a7ffc..ff192341e49da5a7863e257d0142cfd50377f36f 100644 --- a/src/USER-OMP/fix_rigid_nph_omp.cpp +++ b/src/USER-OMP/fix_rigid_nph_omp.cpp @@ -33,7 +33,6 @@ FixRigidNPHOMP::FixRigidNPHOMP(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; restart_global = 1; - box_change_size = 1; extscalar = 1; // error checks diff --git a/src/USER-OMP/fix_rigid_npt_omp.cpp b/src/USER-OMP/fix_rigid_npt_omp.cpp index 1e7c139d522aef83ffbf55c791915a79edea9937..6da51e6220949745fa260ee180cbc7a127b557b1 100644 --- a/src/USER-OMP/fix_rigid_npt_omp.cpp +++ b/src/USER-OMP/fix_rigid_npt_omp.cpp @@ -33,7 +33,6 @@ FixRigidNPTOMP::FixRigidNPTOMP(LAMMPS *lmp, int narg, char **arg) : scalar_flag = 1; restart_global = 1; - box_change_size = 1; extscalar = 1; // error checks diff --git a/src/USER-OMP/fix_rigid_omp.cpp b/src/USER-OMP/fix_rigid_omp.cpp index 770361d557bc4d4bc2683b29f0a3f2bf0be23e37..9f78f6dc260c687d19d163d1d76c168f01c1a28d 100644 --- a/src/USER-OMP/fix_rigid_omp.cpp +++ b/src/USER-OMP/fix_rigid_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_rigid_omp.h" #include #include @@ -47,7 +48,7 @@ typedef struct { double x,y,z; } dbl3_t; void FixRigidOMP::initial_integrate(int vflag) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nbody; ibody++) { @@ -120,7 +121,7 @@ void FixRigidOMP::compute_forces_and_torques() double s0=0.0,s1=0.0,s2=0.0,s3=0.0,s4=0.0,s5=0.0; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:s0,s1,s2,s3,s4,s5) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:s0,s1,s2,s3,s4,s5) #endif for (int i = 0; i < nlocal; i++) { const int ibody = body[i]; @@ -158,7 +159,7 @@ void FixRigidOMP::compute_forces_and_torques() double s0=0.0,s1=0.0,s2=0.0,s3=0.0,s4=0.0,s5=0.0; #if defined(_OPENMP) -#pragma omp parallel for default(none) shared(ib) reduction(+:s0,s1,s2,s3,s4,s5) +#pragma omp parallel for LMP_DEFAULT_NONE LMP_SHARED(ib) reduction(+:s0,s1,s2,s3,s4,s5) #endif for (int i = 0; i < nlocal; i++) { const int ibody = body[i]; @@ -199,7 +200,7 @@ void FixRigidOMP::compute_forces_and_torques() memset(&sum[0][0],0,6*nbody*sizeof(double)); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -246,7 +247,7 @@ void FixRigidOMP::compute_forces_and_torques() // fflag,tflag = 0 for some dimensions in 2d #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nbody; ibody++) { fcm[ibody][0] = all[ibody][0] + langextra[ibody][0]; @@ -261,7 +262,7 @@ void FixRigidOMP::compute_forces_and_torques() if (id_gravity) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nbody; ibody++) { fcm[ibody][0] += gvec[0]*masstotal[ibody]; @@ -280,7 +281,7 @@ void FixRigidOMP::final_integrate() // update vcm and angmom #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nbody; ibody++) { @@ -346,7 +347,7 @@ void FixRigidOMP::set_xv_thr() const int nlocal = atom->nlocal; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:v0,v1,v2,v3,v4,v5) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:v0,v1,v2,v3,v4,v5) #endif for (int i = 0; i < nlocal; i++) { const int ibody = body[i]; @@ -546,7 +547,7 @@ void FixRigidOMP::set_v_thr() const int nlocal = atom->nlocal; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:v0,v1,v2,v3,v4,v5) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:v0,v1,v2,v3,v4,v5) #endif for (int i = 0; i < nlocal; i++) { const int ibody = body[i]; diff --git a/src/USER-OMP/fix_rigid_small_omp.cpp b/src/USER-OMP/fix_rigid_small_omp.cpp index fc6b6fa57a358a693640d229a858a2c3539b4006..227b0e1f8a9a0f1c40a79aa3300f181f16d93d29 100644 --- a/src/USER-OMP/fix_rigid_small_omp.cpp +++ b/src/USER-OMP/fix_rigid_small_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "fix_rigid_small_omp.h" #include #include "atom.h" @@ -46,7 +47,7 @@ void FixRigidSmallOMP::initial_integrate(int vflag) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nlocal_body; ibody++) { @@ -117,7 +118,7 @@ void FixRigidSmallOMP::compute_forces_and_torques() const int nthreads=comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nlocal_body+nghost_body; ibody++) { double * _noalias const fcm = body[ibody].fcm; @@ -132,7 +133,7 @@ void FixRigidSmallOMP::compute_forces_and_torques() // and then each thread only processes some bodies. #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -183,7 +184,7 @@ void FixRigidSmallOMP::compute_forces_and_torques() if (langflag) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nlocal_body; ibody++) { double * _noalias const fcm = body[ibody].fcm; @@ -201,7 +202,7 @@ void FixRigidSmallOMP::compute_forces_and_torques() if (id_gravity) { #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nbody; ibody++) { double * _noalias const fcm = body[ibody].fcm; @@ -222,7 +223,7 @@ void FixRigidSmallOMP::final_integrate() // update vcm and angmom, recompute omega #if defined(_OPENMP) -#pragma omp parallel for default(none) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE schedule(static) #endif for (int ibody = 0; ibody < nlocal_body; ibody++) { Body &b = body[ibody]; @@ -294,7 +295,7 @@ void FixRigidSmallOMP::set_xv_thr() const int nlocal = atom->nlocal; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:v0,v1,v2,v3,v4,v5) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:v0,v1,v2,v3,v4,v5) #endif for (int i = 0; i < nlocal; i++) { const int ibody = atom2body[i]; @@ -489,7 +490,7 @@ void FixRigidSmallOMP::set_v_thr() const int nlocal = atom->nlocal; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:v0,v1,v2,v3,v4,v5) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:v0,v1,v2,v3,v4,v5) #endif for (int i = 0; i < nlocal; i++) { const int ibody = atom2body[i]; diff --git a/src/USER-OMP/hack_openmp_for_pgi_gcc9.sh b/src/USER-OMP/hack_openmp_for_pgi_gcc9.sh deleted file mode 100755 index 6f9f30cedd2d185e6f06289aad45eabdb5756d80..0000000000000000000000000000000000000000 --- a/src/USER-OMP/hack_openmp_for_pgi_gcc9.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# convert default(none) directives for OpenMP pragmas to default(shared) and remove shared() directive -# this allows compiling OpenMP pragmas in LAMMPS with compilers that don't support default(none) properly -# or require backward incompatible OpenMP 4 and OpenMP 5 semantics - -for f in *.h *.cpp -do \ - sed -e '/#pragma omp/s/^\(.*default\)(none)\(.*\)$/\1(shared)\2/' \ - -e '/#pragma omp/s/shared([a-z0-9,_]\+)//' \ - -i.bak $f -done diff --git a/src/USER-OMP/improper_class2_omp.cpp b/src/USER-OMP/improper_class2_omp.cpp index 32c7406adaa4879e960c2fa67683ac5cb7d0d254..8927980951443a29167349f1b7aa4ca3a9e631b6 100644 --- a/src/USER-OMP/improper_class2_omp.cpp +++ b/src/USER-OMP/improper_class2_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "improper_class2_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void ImproperClass2OMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/improper_cossq_omp.cpp b/src/USER-OMP/improper_cossq_omp.cpp index 230f13eac76680cc011e6fd55b8f4229a59a7e2c..72d76e8c42190cf54ead303aa64af4d51f284713 100644 --- a/src/USER-OMP/improper_cossq_omp.cpp +++ b/src/USER-OMP/improper_cossq_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "improper_cossq_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void ImproperCossqOMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/improper_cvff_omp.cpp b/src/USER-OMP/improper_cvff_omp.cpp index f5ff5907757e7aa27e8e85967bc9a22f0e411bf3..e9ff4bfc73e0a23fd694641689761188170238c5 100644 --- a/src/USER-OMP/improper_cvff_omp.cpp +++ b/src/USER-OMP/improper_cvff_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "improper_cvff_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void ImproperCvffOMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/improper_fourier_omp.cpp b/src/USER-OMP/improper_fourier_omp.cpp index 4e83c025d06bb3fce97dbd50a744b2378de5d1fb..0671bdc375335ab6b2478438a94e813634106cee 100644 --- a/src/USER-OMP/improper_fourier_omp.cpp +++ b/src/USER-OMP/improper_fourier_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "improper_fourier_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void ImproperFourierOMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/improper_harmonic_omp.cpp b/src/USER-OMP/improper_harmonic_omp.cpp index f2f19557d9501f688326061f317a5c15dc1f39de..8bef42bf23bce154e9acf3af9a13d6af8ee4382c 100644 --- a/src/USER-OMP/improper_harmonic_omp.cpp +++ b/src/USER-OMP/improper_harmonic_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "improper_harmonic_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void ImproperHarmonicOMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/improper_ring_omp.cpp b/src/USER-OMP/improper_ring_omp.cpp index 1d0cc6cc46a813d014be9b0b6a15d5bdc4c20660..4ba67aab700787be50722f3aaff6d94123e71708 100644 --- a/src/USER-OMP/improper_ring_omp.cpp +++ b/src/USER-OMP/improper_ring_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "improper_ring_omp.h" #include #include "atom.h" @@ -50,7 +51,7 @@ void ImproperRingOMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/improper_umbrella_omp.cpp b/src/USER-OMP/improper_umbrella_omp.cpp index 4cea8a4b633439bc67e9087bfa4c6f4e8c9f58ef..bf466afb19a8f8ff554a9bb9e888bc6abf717222 100644 --- a/src/USER-OMP/improper_umbrella_omp.cpp +++ b/src/USER-OMP/improper_umbrella_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "improper_umbrella_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void ImproperUmbrellaOMP::compute(int eflag, int vflag) const int inum = neighbor->nimproperlist; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/msm_cg_omp.cpp b/src/USER-OMP/msm_cg_omp.cpp index 7ca01dbd6a2305a691c88003c2bf8202aeb26d9d..16db4857d6d8a427c25fb5fb7e0c6e5e0aea51a3 100644 --- a/src/USER-OMP/msm_cg_omp.cpp +++ b/src/USER-OMP/msm_cg_omp.cpp @@ -16,6 +16,7 @@ Original MSM class by: Paul Crozier, Stan Moore, Stephen Bond, (all SNL) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "msm_cg_omp.h" #include #include @@ -310,7 +311,7 @@ void MSMCGOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) diff --git a/src/USER-OMP/msm_omp.cpp b/src/USER-OMP/msm_omp.cpp index 81f84e8f6f8ce1d992698b10fe07c4c3b98c3ddb..26892267253c735e9f49bae854f97ee85c6c55fa 100644 --- a/src/USER-OMP/msm_omp.cpp +++ b/src/USER-OMP/msm_omp.cpp @@ -15,6 +15,7 @@ Contributing authors: Axel Kohlmeyer (Temple U), Stan Moore (SNL) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "msm_omp.h" #include #include "comm.h" @@ -52,7 +53,7 @@ void MSMOMP::compute(int eflag, int vflag) MSM::compute(eflag,vflag); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) @@ -158,7 +159,7 @@ void MSMOMP::direct_eval(const int nn) const int n=nn; #if defined(_OPENMP) -#pragma omp parallel default(none) reduction(+:v0,v1,v2,v3,v4,v5,emsm) +#pragma omp parallel LMP_DEFAULT_NONE reduction(+:v0,v1,v2,v3,v4,v5,emsm) #endif { double esum,v0sum,v1sum,v2sum,v3sum,v4sum,v5sum; diff --git a/src/USER-OMP/npair_full_bin_atomonly_omp.cpp b/src/USER-OMP/npair_full_bin_atomonly_omp.cpp index 3bda2e4c5a822982f7c08425cfe39f6e165cf0ae..226b2dcf6d58851fe7c3f18b04637a48d1973e49 100644 --- a/src/USER-OMP/npair_full_bin_atomonly_omp.cpp +++ b/src/USER-OMP/npair_full_bin_atomonly_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_full_bin_atomonly_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -36,7 +37,7 @@ void NPairFullBinAtomonlyOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_full_bin_ghost_omp.cpp b/src/USER-OMP/npair_full_bin_ghost_omp.cpp index b0b0070df59e9a03478f2326ef6e28fdf3141e29..e9297538d98e63223096818b84d31e49d5341de1 100644 --- a/src/USER-OMP/npair_full_bin_ghost_omp.cpp +++ b/src/USER-OMP/npair_full_bin_ghost_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_full_bin_ghost_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -42,7 +43,7 @@ void NPairFullBinGhostOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nall); diff --git a/src/USER-OMP/npair_full_bin_omp.cpp b/src/USER-OMP/npair_full_bin_omp.cpp index d3e30b49324c9379e291f4cb78e1320e46c748f1..35835cae1da603337d257ed1700b1ffc581051e5 100644 --- a/src/USER-OMP/npair_full_bin_omp.cpp +++ b/src/USER-OMP/npair_full_bin_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_full_bin_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -40,7 +41,7 @@ void NPairFullBinOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_full_multi_omp.cpp b/src/USER-OMP/npair_full_multi_omp.cpp index 707db2edcfc0fa4cd4bed94283a748071f98fbdf..b4b0ea3033ca2afa0113ca67b5c0f1f394eaf693 100644 --- a/src/USER-OMP/npair_full_multi_omp.cpp +++ b/src/USER-OMP/npair_full_multi_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_full_multi_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -41,7 +42,7 @@ void NPairFullMultiOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_full_nsq_ghost_omp.cpp b/src/USER-OMP/npair_full_nsq_ghost_omp.cpp index 527df58fd66ba60414758bdc7ebfbbabb6a31c4b..8b940f3724d3c7e80eb796b5f95e0c6c6a382b15 100644 --- a/src/USER-OMP/npair_full_nsq_ghost_omp.cpp +++ b/src/USER-OMP/npair_full_nsq_ghost_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_full_nsq_ghost_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -42,7 +43,7 @@ void NPairFullNsqGhostOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nall); diff --git a/src/USER-OMP/npair_full_nsq_omp.cpp b/src/USER-OMP/npair_full_nsq_omp.cpp index 2719f5dc2c075d9051c5dcac7f63b90b36681dfd..95c5caa148cd775b40a1324746d68e13118b907d 100644 --- a/src/USER-OMP/npair_full_nsq_omp.cpp +++ b/src/USER-OMP/npair_full_nsq_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_full_nsq_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -42,7 +43,7 @@ void NPairFullNsqOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_bin_atomonly_newton_omp.cpp b/src/USER-OMP/npair_half_bin_atomonly_newton_omp.cpp index a69779d96d6c86a7bbcb4cb10ca4bca26ba26c27..230d10a267e347abd41bd76ea4f5898ec960273d 100644 --- a/src/USER-OMP/npair_half_bin_atomonly_newton_omp.cpp +++ b/src/USER-OMP/npair_half_bin_atomonly_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_bin_atomonly_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -37,7 +38,7 @@ void NPairHalfBinAtomonlyNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_bin_newtoff_ghost_omp.cpp b/src/USER-OMP/npair_half_bin_newtoff_ghost_omp.cpp index 5f8ffdab29ac4ee23aa0986383bda518e42b71da..33fa4ed68565c17c48a6dacd07d5d3ab57c14fef 100644 --- a/src/USER-OMP/npair_half_bin_newtoff_ghost_omp.cpp +++ b/src/USER-OMP/npair_half_bin_newtoff_ghost_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_bin_newtoff_ghost_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -46,7 +47,7 @@ void NPairHalfBinNewtoffGhostOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nall); diff --git a/src/USER-OMP/npair_half_bin_newtoff_omp.cpp b/src/USER-OMP/npair_half_bin_newtoff_omp.cpp index 35807645cfe622f5d10dc5a7441e11839231464d..8e756d507268cd2274e87fc64282acf5425d3cab 100644 --- a/src/USER-OMP/npair_half_bin_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_bin_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_bin_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -42,7 +43,7 @@ void NPairHalfBinNewtoffOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_bin_newton_omp.cpp b/src/USER-OMP/npair_half_bin_newton_omp.cpp index 2700d6863bfd47be498f29207eead212946f4d5b..e27a58de46ccad5127c31c445603361ea326aa77 100644 --- a/src/USER-OMP/npair_half_bin_newton_omp.cpp +++ b/src/USER-OMP/npair_half_bin_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_bin_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -41,7 +42,7 @@ void NPairHalfBinNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_bin_newton_tri_omp.cpp b/src/USER-OMP/npair_half_bin_newton_tri_omp.cpp index d94845898c2b7442b2926f7b9283c69bcfc5c7ae..f88df4aed451c85261223f0e409919160dc7b4dc 100644 --- a/src/USER-OMP/npair_half_bin_newton_tri_omp.cpp +++ b/src/USER-OMP/npair_half_bin_newton_tri_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_bin_newton_tri_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -41,7 +42,7 @@ void NPairHalfBinNewtonTriOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_multi_newtoff_omp.cpp b/src/USER-OMP/npair_half_multi_newtoff_omp.cpp index c06737dc1cb753f4110ceb08f88e7f88ae418935..586809c174cdc92bb625b87fe60f0eaaf406c58a 100644 --- a/src/USER-OMP/npair_half_multi_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_multi_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_multi_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -43,7 +44,7 @@ void NPairHalfMultiNewtoffOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_multi_newton_omp.cpp b/src/USER-OMP/npair_half_multi_newton_omp.cpp index 50df756be4857f3e8be95935deb31ec77cf85e76..9b8fc78f0981d3912fa08453df9894382799b713 100644 --- a/src/USER-OMP/npair_half_multi_newton_omp.cpp +++ b/src/USER-OMP/npair_half_multi_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_multi_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -42,7 +43,7 @@ void NPairHalfMultiNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_multi_newton_tri_omp.cpp b/src/USER-OMP/npair_half_multi_newton_tri_omp.cpp index 8b78b311dd917f38298b4bd0efe2809483ac7882..fec687d0759b2516ec9b5390423223732cbfc1b4 100644 --- a/src/USER-OMP/npair_half_multi_newton_tri_omp.cpp +++ b/src/USER-OMP/npair_half_multi_newton_tri_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_multi_newton_tri_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -43,7 +44,7 @@ void NPairHalfMultiNewtonTriOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_nsq_newtoff_ghost_omp.cpp b/src/USER-OMP/npair_half_nsq_newtoff_ghost_omp.cpp index f0eb211425361736c144546d1d74e24f32311abc..316c63d541afa84b40716f8d75bdea076dfa0f3d 100644 --- a/src/USER-OMP/npair_half_nsq_newtoff_ghost_omp.cpp +++ b/src/USER-OMP/npair_half_nsq_newtoff_ghost_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_nsq_newtoff_ghost_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -47,7 +48,7 @@ void NPairHalfNsqNewtoffGhostOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nall); diff --git a/src/USER-OMP/npair_half_nsq_newtoff_omp.cpp b/src/USER-OMP/npair_half_nsq_newtoff_omp.cpp index 55b9f9e51260b4d8f22a3a3a4449bc396659e405..c937b5bc68904c99dbd0993f75091bed530b854d 100644 --- a/src/USER-OMP/npair_half_nsq_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_nsq_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_nsq_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -44,7 +45,7 @@ void NPairHalfNsqNewtoffOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_nsq_newton_omp.cpp b/src/USER-OMP/npair_half_nsq_newton_omp.cpp index 223da622e86d09b71f8bc7b614c998e94be33d0f..6baab97aa0c3e9dccf8f0831e0fde4b50e538fe2 100644 --- a/src/USER-OMP/npair_half_nsq_newton_omp.cpp +++ b/src/USER-OMP/npair_half_nsq_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_nsq_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -43,7 +44,7 @@ void NPairHalfNsqNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_respa_bin_newtoff_omp.cpp b/src/USER-OMP/npair_half_respa_bin_newtoff_omp.cpp index 9bb4d277fe02249ef08711522778571dae4f7485..c8dc37f978290f9ccd6d11724c1c7d720a7e4a9f 100644 --- a/src/USER-OMP/npair_half_respa_bin_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_respa_bin_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_respa_bin_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -47,7 +48,7 @@ void NPairHalfRespaBinNewtoffOmp::build(NeighList *list) const int respamiddle = list->respamiddle; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_respa_bin_newton_omp.cpp b/src/USER-OMP/npair_half_respa_bin_newton_omp.cpp index 9ed0ae482dab3ac8d1ed009bacd88c5e33364616..98732a62eab9820d4009f0f6ec5721da135c389c 100644 --- a/src/USER-OMP/npair_half_respa_bin_newton_omp.cpp +++ b/src/USER-OMP/npair_half_respa_bin_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_respa_bin_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -46,7 +47,7 @@ void NPairHalfRespaBinNewtonOmp::build(NeighList *list) const int respamiddle = list->respamiddle; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_respa_bin_newton_tri_omp.cpp b/src/USER-OMP/npair_half_respa_bin_newton_tri_omp.cpp index cd036849400e3cac72314419b93d67ae71ace78e..65315a29055ce45d96362d51b70d0400fd38ddf0 100644 --- a/src/USER-OMP/npair_half_respa_bin_newton_tri_omp.cpp +++ b/src/USER-OMP/npair_half_respa_bin_newton_tri_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_respa_bin_newton_tri_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -46,7 +47,7 @@ void NPairHalfRespaBinNewtonTriOmp::build(NeighList *list) const int respamiddle = list->respamiddle; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_respa_nsq_newtoff_omp.cpp b/src/USER-OMP/npair_half_respa_nsq_newtoff_omp.cpp index b1e7467ec7ded49c4a5c56f063849e5c43235580..45d81069fc58db0f5db0510d9b90b42471b209f3 100644 --- a/src/USER-OMP/npair_half_respa_nsq_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_respa_nsq_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_respa_nsq_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -48,7 +49,7 @@ void NPairHalfRespaNsqNewtoffOmp::build(NeighList *list) const int respamiddle = list->respamiddle; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_respa_nsq_newton_omp.cpp b/src/USER-OMP/npair_half_respa_nsq_newton_omp.cpp index c22965895da5b35e192e146c6a3a4a0d491feb55..1237ce7858221b4b0c44cb0cebeccaef51a76d06 100644 --- a/src/USER-OMP/npair_half_respa_nsq_newton_omp.cpp +++ b/src/USER-OMP/npair_half_respa_nsq_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_respa_nsq_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -49,7 +50,7 @@ void NPairHalfRespaNsqNewtonOmp::build(NeighList *list) const int respamiddle = list->respamiddle; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_size_bin_newtoff_omp.cpp b/src/USER-OMP/npair_half_size_bin_newtoff_omp.cpp index 1b437482c4ae3a8b7731553e8e1d37d1aaf15de5..c979c1384def18a8afc0542ab4afddc72bae65d4 100644 --- a/src/USER-OMP/npair_half_size_bin_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_size_bin_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_size_bin_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -43,7 +44,7 @@ void NPairHalfSizeBinNewtoffOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_size_bin_newton_omp.cpp b/src/USER-OMP/npair_half_size_bin_newton_omp.cpp index 8e0581d4ce184f4258e31c5f91078f7e6ec65af9..c83cf77e50d1af8bf0a4eed3c1bf90ed3eebe037 100644 --- a/src/USER-OMP/npair_half_size_bin_newton_omp.cpp +++ b/src/USER-OMP/npair_half_size_bin_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_size_bin_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -42,7 +43,7 @@ void NPairHalfSizeBinNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_size_bin_newton_tri_omp.cpp b/src/USER-OMP/npair_half_size_bin_newton_tri_omp.cpp index 38a2c0d61ffe1bdb36f191861cf39df82f48d703..a615b11d937290a20b2cd153d666eafab7a3def2 100644 --- a/src/USER-OMP/npair_half_size_bin_newton_tri_omp.cpp +++ b/src/USER-OMP/npair_half_size_bin_newton_tri_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_size_bin_newton_tri_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -41,7 +42,7 @@ void NPairHalfSizeBinNewtonTriOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_size_nsq_newtoff_omp.cpp b/src/USER-OMP/npair_half_size_nsq_newtoff_omp.cpp index d1505e1b2ef6f8d4f4cefe57850099c3a2192500..f42cc3e9bf3fe9737e215555cd61375d55951fbb 100644 --- a/src/USER-OMP/npair_half_size_nsq_newtoff_omp.cpp +++ b/src/USER-OMP/npair_half_size_nsq_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_size_nsq_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -45,7 +46,7 @@ void NPairHalfSizeNsqNewtoffOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_half_size_nsq_newton_omp.cpp b/src/USER-OMP/npair_half_size_nsq_newton_omp.cpp index 9027b0728d7d9e35c3b56cfea08b303db218abd0..10d7d26b3d19d0b80002e93db26081fb987004ed 100644 --- a/src/USER-OMP/npair_half_size_nsq_newton_omp.cpp +++ b/src/USER-OMP/npair_half_size_nsq_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_half_size_nsq_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -46,7 +47,7 @@ void NPairHalfSizeNsqNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(nlocal); diff --git a/src/USER-OMP/npair_halffull_newtoff_omp.cpp b/src/USER-OMP/npair_halffull_newtoff_omp.cpp index 7d2fe4f109e3d49d8f4daeef88788c621ee76cec..7ad015707699f93999cd9d565f55e5151fdf5bec 100644 --- a/src/USER-OMP/npair_halffull_newtoff_omp.cpp +++ b/src/USER-OMP/npair_halffull_newtoff_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_halffull_newtoff_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -38,7 +39,7 @@ void NPairHalffullNewtoffOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(inum_full); diff --git a/src/USER-OMP/npair_halffull_newton_omp.cpp b/src/USER-OMP/npair_halffull_newton_omp.cpp index 3fcc8c2e9868a293dd99a2d68ab9b3560fccd1d5..9e248ee60991166f7beb36ac32e2718012e2781b 100644 --- a/src/USER-OMP/npair_halffull_newton_omp.cpp +++ b/src/USER-OMP/npair_halffull_newton_omp.cpp @@ -11,6 +11,7 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "npair_halffull_newton_omp.h" #include "npair_omp.h" #include "neigh_list.h" @@ -38,7 +39,7 @@ void NPairHalffullNewtonOmp::build(NeighList *list) NPAIR_OMP_INIT; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(list) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(list) #endif NPAIR_OMP_SETUP(inum_full); diff --git a/src/USER-OMP/pair_adp_omp.cpp b/src/USER-OMP/pair_adp_omp.cpp index 0a48de453e107cf36da11165596e27f7c38df3c6..63a539c93c7ac3806ec9e4da80c031ff7290af3c 100644 --- a/src/USER-OMP/pair_adp_omp.cpp +++ b/src/USER-OMP/pair_adp_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include @@ -62,7 +63,7 @@ void PairADPOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_agni_omp.cpp b/src/USER-OMP/pair_agni_omp.cpp index 1580256e35ba290f62e1ceccb87da5c235f157b0..b61bf52e4ee8009471d902a56e2f6a58aa7e1f3e 100644 --- a/src/USER-OMP/pair_agni_omp.cpp +++ b/src/USER-OMP/pair_agni_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include // requires C++-11 @@ -49,7 +50,7 @@ void PairAGNIOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_airebo_omp.cpp b/src/USER-OMP/pair_airebo_omp.cpp index aedf5056a6d8f59819969c669a1b253cdaf3a0aa..25d6c35174f0282730457f8bea3a1d964bf6c210 100644 --- a/src/USER-OMP/pair_airebo_omp.cpp +++ b/src/USER-OMP/pair_airebo_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_airebo_omp.h" #include "atom.h" @@ -58,7 +59,7 @@ void PairAIREBOOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) reduction(+:pv0,pv1,pv2) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) reduction(+:pv0,pv1,pv2) #endif { int ifrom, ito, tid; @@ -104,7 +105,7 @@ void PairAIREBOOMP::REBO_neigh_thr() } #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int i,j,ii,jj,n,jnum,itype,jtype; diff --git a/src/USER-OMP/pair_beck_omp.cpp b/src/USER-OMP/pair_beck_omp.cpp index 72e41f074c268dee42139978d9ef80916370a4f2..48e6f9b0fe11dee89687fa0346bd9b5568dedcbd 100644 --- a/src/USER-OMP/pair_beck_omp.cpp +++ b/src/USER-OMP/pair_beck_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_beck_omp.h" #include #include "atom.h" @@ -45,7 +46,7 @@ void PairBeckOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_born_coul_long_omp.cpp b/src/USER-OMP/pair_born_coul_long_omp.cpp index f7e3fced46104bfebe3bd2de6cf5cdf2a0604961..7f92ab6734b60470b3bf327bfbc8af9497c8f17f 100644 --- a/src/USER-OMP/pair_born_coul_long_omp.cpp +++ b/src/USER-OMP/pair_born_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_born_coul_long_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void PairBornCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_born_coul_msm_omp.cpp b/src/USER-OMP/pair_born_coul_msm_omp.cpp index b057cbc7069eb6e33edccc823f169808450b0c6b..eec17658597179e267d7532564b760da6bfc1aa1 100644 --- a/src/USER-OMP/pair_born_coul_msm_omp.cpp +++ b/src/USER-OMP/pair_born_coul_msm_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_born_coul_msm_omp.h" #include "atom.h" @@ -48,7 +49,7 @@ void PairBornCoulMSMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_born_coul_wolf_omp.cpp b/src/USER-OMP/pair_born_coul_wolf_omp.cpp index bac38ae43a9d677d0914cd30e9c6604891ebb824..ffa069ec4e62b87d0912f5b89da55c84684cc102 100644 --- a/src/USER-OMP/pair_born_coul_wolf_omp.cpp +++ b/src/USER-OMP/pair_born_coul_wolf_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_born_coul_wolf_omp.h" #include #include "atom.h" @@ -45,7 +46,7 @@ void PairBornCoulWolfOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_born_omp.cpp b/src/USER-OMP/pair_born_omp.cpp index 6cacd5625b85a408ed31b7d6c20675e32b426dff..aaac28d07cc7a00c6d5f6db8e16d8b71216debb0 100644 --- a/src/USER-OMP/pair_born_omp.cpp +++ b/src/USER-OMP/pair_born_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_born_omp.h" #include #include "atom.h" @@ -43,7 +44,7 @@ void PairBornOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_brownian_omp.cpp b/src/USER-OMP/pair_brownian_omp.cpp index 907a447332f223e5b79afd6e8edb06a6c6b45733..ca28fa14bb4c32a396d46582eab9651b59079711 100644 --- a/src/USER-OMP/pair_brownian_omp.cpp +++ b/src/USER-OMP/pair_brownian_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_brownian_omp.h" #include #include "atom.h" @@ -135,7 +136,7 @@ void PairBrownianOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_brownian_poly_omp.cpp b/src/USER-OMP/pair_brownian_poly_omp.cpp index f6f5f269a5d923c89655d139230effe0395ac0f7..939bc223eb6642457c403a2254b239e2c217dbb1 100644 --- a/src/USER-OMP/pair_brownian_poly_omp.cpp +++ b/src/USER-OMP/pair_brownian_poly_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_brownian_poly_omp.h" #include #include "atom.h" @@ -135,7 +136,7 @@ void PairBrownianPolyOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_buck_coul_cut_omp.cpp b/src/USER-OMP/pair_buck_coul_cut_omp.cpp index c9ccb124470591edfc3f72174a2e960edc71900a..2cff0d749d88315712673b4e7e7daafd5b1890f4 100644 --- a/src/USER-OMP/pair_buck_coul_cut_omp.cpp +++ b/src/USER-OMP/pair_buck_coul_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_buck_coul_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairBuckCoulCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_buck_coul_long_omp.cpp b/src/USER-OMP/pair_buck_coul_long_omp.cpp index 09291578954079f01b1112781303b0105e6dc19a..759a8b2118437294a6b2d625904ceedebe413488 100644 --- a/src/USER-OMP/pair_buck_coul_long_omp.cpp +++ b/src/USER-OMP/pair_buck_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_buck_coul_long_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void PairBuckCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_buck_coul_msm_omp.cpp b/src/USER-OMP/pair_buck_coul_msm_omp.cpp index a4d322890acc047f5581badfc8fba92e2df44bef..b26243b19afe6ad311f3a32edb700b92261078c1 100644 --- a/src/USER-OMP/pair_buck_coul_msm_omp.cpp +++ b/src/USER-OMP/pair_buck_coul_msm_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_buck_coul_msm_omp.h" #include "atom.h" @@ -48,7 +49,7 @@ void PairBuckCoulMSMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_buck_long_coul_long_omp.cpp b/src/USER-OMP/pair_buck_long_coul_long_omp.cpp index d30e8949b31168a4e89dc89efbb47ce6a3d7793b..a2e34b9a1bfa401b0952cf2c8362fc7a689a4c84 100644 --- a/src/USER-OMP/pair_buck_long_coul_long_omp.cpp +++ b/src/USER-OMP/pair_buck_long_coul_long_omp.cpp @@ -12,6 +12,7 @@ ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "math_vector.h" #include "pair_buck_long_coul_long_omp.h" @@ -56,7 +57,7 @@ void PairBuckLongCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; @@ -320,7 +321,7 @@ void PairBuckLongCoulLongOMP::compute_inner() const int nthreads = comm->nthreads; const int inum = list->inum_inner; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int ifrom, ito, tid; @@ -345,7 +346,7 @@ void PairBuckLongCoulLongOMP::compute_middle() const int inum = list->inum_middle; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int ifrom, ito, tid; @@ -375,7 +376,7 @@ void PairBuckLongCoulLongOMP::compute_outer(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_buck_omp.cpp b/src/USER-OMP/pair_buck_omp.cpp index 563133e1cd5e26bd266ee7659bf5ed824eecd368..fc85d79c81efabff1cf752df9afe086319c8d046 100644 --- a/src/USER-OMP/pair_buck_omp.cpp +++ b/src/USER-OMP/pair_buck_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_buck_omp.h" #include #include "atom.h" @@ -43,7 +44,7 @@ void PairBuckOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_colloid_omp.cpp b/src/USER-OMP/pair_colloid_omp.cpp index 0fc4b1bdf2e40e53dc48b2b90ee01c239d3bdcb4..cce588f51694eaf33fc118b31d24efa84fe3df09 100644 --- a/src/USER-OMP/pair_colloid_omp.cpp +++ b/src/USER-OMP/pair_colloid_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_colloid_omp.h" #include "atom.h" @@ -46,7 +47,7 @@ void PairColloidOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_comb_omp.cpp b/src/USER-OMP/pair_comb_omp.cpp index 4b5f0ea6c7d006b9735f6ab611156c207aa8824b..8912cbc2432d35140c4d4791f054c308384b8548 100644 --- a/src/USER-OMP/pair_comb_omp.cpp +++ b/src/USER-OMP/pair_comb_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_comb_omp.h" #include "atom.h" @@ -52,7 +53,7 @@ void PairCombOMP::compute(int eflag, int vflag) Short_neigh_thr(); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; @@ -411,7 +412,7 @@ double PairCombOMP::yasu_char(double *qf_fix, int &igroup) // loop over full neighbor list of my atoms #if defined(_OPENMP) -#pragma omp parallel for private(ii) default(none) shared(potal,fac11e) +#pragma omp parallel for private(ii) LMP_DEFAULT_NONE LMP_SHARED(potal,fac11e) #endif for (ii = 0; ii < inum; ii ++) { double fqi,fqj,fqij,fqji,fqjj,delr1[3]; @@ -564,7 +565,7 @@ void PairCombOMP::Short_neigh_thr() const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int nj,*neighptrj; diff --git a/src/USER-OMP/pair_coul_cut_omp.cpp b/src/USER-OMP/pair_coul_cut_omp.cpp index ce858666cbe1f4faae6c945106e2b35ae9e30090..69eb9ac0f3a99d582f72081ea8032962145c6675 100644 --- a/src/USER-OMP/pair_coul_cut_omp.cpp +++ b/src/USER-OMP/pair_coul_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_coul_cut_omp.h" #include #include "atom.h" @@ -43,7 +44,7 @@ void PairCoulCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_cut_soft_omp.cpp b/src/USER-OMP/pair_coul_cut_soft_omp.cpp index 7b6ed22f0cb0d7f72b22f242eff9c0330c6e18ab..89222903ec8d7bf89cfad2f23abcd1d31a13c0dc 100644 --- a/src/USER-OMP/pair_coul_cut_soft_omp.cpp +++ b/src/USER-OMP/pair_coul_cut_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_coul_cut_soft_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairCoulCutSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_debye_omp.cpp b/src/USER-OMP/pair_coul_debye_omp.cpp index 270770ee5df8b0c2a5be3efe8ec4fa74f576c8b2..c22f7340c4f1602f8d21a13d680672ad815bba2b 100644 --- a/src/USER-OMP/pair_coul_debye_omp.cpp +++ b/src/USER-OMP/pair_coul_debye_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_coul_debye_omp.h" #include #include "atom.h" @@ -43,7 +44,7 @@ void PairCoulDebyeOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_diel_omp.cpp b/src/USER-OMP/pair_coul_diel_omp.cpp index 67e09690dea22a67b320ca79dc258844cbf6b543..656cdc9421f6b71dfd9684fbb5ac647700223f97 100644 --- a/src/USER-OMP/pair_coul_diel_omp.cpp +++ b/src/USER-OMP/pair_coul_diel_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_coul_diel_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairCoulDielOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_dsf_omp.cpp b/src/USER-OMP/pair_coul_dsf_omp.cpp index 40e285e7c88e832082b09e9210b6b59af3f3fc64..ddcc8dbeb08d423636efa38adca8bccaa4cda3cb 100644 --- a/src/USER-OMP/pair_coul_dsf_omp.cpp +++ b/src/USER-OMP/pair_coul_dsf_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_coul_dsf_omp.h" #include #include "atom.h" @@ -52,7 +53,7 @@ void PairCoulDSFOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_long_omp.cpp b/src/USER-OMP/pair_coul_long_omp.cpp index b135ffa7e6b5d3b5d944923ac74f42837300f715..6c9b9d034d0f22caf1de10c277bdae4d5daa8fde 100644 --- a/src/USER-OMP/pair_coul_long_omp.cpp +++ b/src/USER-OMP/pair_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_coul_long_omp.h" #include "atom.h" @@ -52,7 +53,7 @@ void PairCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_long_soft_omp.cpp b/src/USER-OMP/pair_coul_long_soft_omp.cpp index 891123b8b3f5381796e0af709cfa4a5ad670ebb6..ff3267fb38cd44927cf94f351b14fe32640ec82f 100644 --- a/src/USER-OMP/pair_coul_long_soft_omp.cpp +++ b/src/USER-OMP/pair_coul_long_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_coul_long_soft_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void PairCoulLongSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_msm_omp.cpp b/src/USER-OMP/pair_coul_msm_omp.cpp index 9417df7ac6f18443eef10ab53cc7f828eed0d898..32a657e2867d5e56c44ae8deb2cb4d88f7249086 100644 --- a/src/USER-OMP/pair_coul_msm_omp.cpp +++ b/src/USER-OMP/pair_coul_msm_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_coul_msm_omp.h" #include "atom.h" @@ -49,7 +50,7 @@ void PairCoulMSMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_coul_wolf_omp.cpp b/src/USER-OMP/pair_coul_wolf_omp.cpp index 9163eff0861209efb6c24156fba7dc0f66491458..d0f6fdb1255ad72dee20593a2b66afd4c57ab811 100644 --- a/src/USER-OMP/pair_coul_wolf_omp.cpp +++ b/src/USER-OMP/pair_coul_wolf_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_coul_wolf_omp.h" #include #include "atom.h" @@ -45,7 +46,7 @@ void PairCoulWolfOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_dpd_omp.cpp b/src/USER-OMP/pair_dpd_omp.cpp index 7c265b2b7bd7e10a0fc3e53603bc6252af2406b6..f3a1c29a707068463b01d5476d72f44103a37d69 100644 --- a/src/USER-OMP/pair_dpd_omp.cpp +++ b/src/USER-OMP/pair_dpd_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_dpd_omp.h" #include #include "atom.h" @@ -80,7 +81,7 @@ void PairDPDOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_dpd_tstat_omp.cpp b/src/USER-OMP/pair_dpd_tstat_omp.cpp index 076e27a299a18d1de3534686792746970c9fa066..06e80274bd9797968267a64b89cc0672fc89b40e 100644 --- a/src/USER-OMP/pair_dpd_tstat_omp.cpp +++ b/src/USER-OMP/pair_dpd_tstat_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_dpd_tstat_omp.h" #include "atom.h" @@ -79,7 +80,7 @@ void PairDPDTstatOMP::compute(int eflag, int vflag) random_thr[0] = random; } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_eam_cd_omp.cpp b/src/USER-OMP/pair_eam_cd_omp.cpp index 1d945e06a877e2eefa9d2d1a0f04b9a44f8e6b5c..874a2fa252285bb2ba9f1b855e4a19d23037108c 100644 --- a/src/USER-OMP/pair_eam_cd_omp.cpp +++ b/src/USER-OMP/pair_eam_cd_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include @@ -77,7 +78,7 @@ void PairEAMCDOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_eam_omp.cpp b/src/USER-OMP/pair_eam_omp.cpp index 899323a680cc767b0efdf01f12936ca2836f3c80..60ae65def562e3587428288a05de1d27694493b1 100644 --- a/src/USER-OMP/pair_eam_omp.cpp +++ b/src/USER-OMP/pair_eam_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include @@ -59,7 +60,7 @@ void PairEAMOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_edip_omp.cpp b/src/USER-OMP/pair_edip_omp.cpp index d1fa4c1c7a311c5249d29e223a26c6bfae4824c8..efba1971533a866152db85934e923059d6a9eed2 100644 --- a/src/USER-OMP/pair_edip_omp.cpp +++ b/src/USER-OMP/pair_edip_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_edip_omp.h" #include "atom.h" @@ -50,7 +51,7 @@ void PairEDIPOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_eim_omp.cpp b/src/USER-OMP/pair_eim_omp.cpp index dd590b75e2c983f291d6495794b4cc88e0e1df4b..02b765a956a5113ce39598a8952ccacff4e981e7 100644 --- a/src/USER-OMP/pair_eim_omp.cpp +++ b/src/USER-OMP/pair_eim_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include @@ -57,7 +58,7 @@ void PairEIMOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_gauss_cut_omp.cpp b/src/USER-OMP/pair_gauss_cut_omp.cpp index e14a85fc95d70d221330a79aa24ebdd924fe28e8..6d5344701d914a3bd2928da9b29053118ea759eb 100644 --- a/src/USER-OMP/pair_gauss_cut_omp.cpp +++ b/src/USER-OMP/pair_gauss_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_gauss_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairGaussCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_gauss_omp.cpp b/src/USER-OMP/pair_gauss_omp.cpp index de212c921377f19e4195449d7000b33c352c0b3c..106d520fa182e69c994aaae3679863075b75803d 100644 --- a/src/USER-OMP/pair_gauss_omp.cpp +++ b/src/USER-OMP/pair_gauss_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_gauss_omp.h" #include "atom.h" @@ -45,7 +46,7 @@ void PairGaussOMP::compute(int eflag, int vflag) double occ = 0.0; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) reduction(+:occ) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) reduction(+:occ) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_gayberne_omp.cpp b/src/USER-OMP/pair_gayberne_omp.cpp index a58c16eafc1e54ed908acca923bce8ae09f412d7..f0fd60a3096353f55906b3a241787a632c6d3328 100644 --- a/src/USER-OMP/pair_gayberne_omp.cpp +++ b/src/USER-OMP/pair_gayberne_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_gayberne_omp.h" #include "math_extra.h" @@ -45,7 +46,7 @@ void PairGayBerneOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_gran_hertz_history_omp.cpp b/src/USER-OMP/pair_gran_hertz_history_omp.cpp index 1e3d86a1a5987d4aafe020901bb7096741662f49..9ad84afb920650667ea1e8b16f6bb873aee916be 100644 --- a/src/USER-OMP/pair_gran_hertz_history_omp.cpp +++ b/src/USER-OMP/pair_gran_hertz_history_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_gran_hertz_history_omp.h" #include "fix_neigh_history.h" @@ -69,7 +70,7 @@ void PairGranHertzHistoryOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_gran_hooke_history_omp.cpp b/src/USER-OMP/pair_gran_hooke_history_omp.cpp index d0e44cc430b771f321718b1cc7fba6262805e695..3e519fc0d01c44ba068300280419294e8974e1a3 100644 --- a/src/USER-OMP/pair_gran_hooke_history_omp.cpp +++ b/src/USER-OMP/pair_gran_hooke_history_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "pair_gran_hooke_history_omp.h" @@ -70,7 +71,7 @@ void PairGranHookeHistoryOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_gran_hooke_omp.cpp b/src/USER-OMP/pair_gran_hooke_omp.cpp index 33296e22fa4528fff0eeee949bc2680448c13014..8de959a91dae94109ff340ca3a5f61e5174f70b8 100644 --- a/src/USER-OMP/pair_gran_hooke_omp.cpp +++ b/src/USER-OMP/pair_gran_hooke_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_gran_hooke_omp.h" #include "atom.h" @@ -65,7 +66,7 @@ void PairGranHookeOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_hbond_dreiding_lj_omp.cpp b/src/USER-OMP/pair_hbond_dreiding_lj_omp.cpp index 77cc60e4377738bf6655c594f34b7daf5e6ad666..bb8bbcc98458f9e8e50a82e63c5ae6003382a50d 100644 --- a/src/USER-OMP/pair_hbond_dreiding_lj_omp.cpp +++ b/src/USER-OMP/pair_hbond_dreiding_lj_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_hbond_dreiding_lj_omp.h" #include "atom.h" @@ -74,7 +75,7 @@ void PairHbondDreidingLJOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_hbond_dreiding_morse_omp.cpp b/src/USER-OMP/pair_hbond_dreiding_morse_omp.cpp index 47b2818be83138846a738063c1ab5f763823f280..4ad3a8f057013904f3d5bf1e5fd51f2298427a5e 100644 --- a/src/USER-OMP/pair_hbond_dreiding_morse_omp.cpp +++ b/src/USER-OMP/pair_hbond_dreiding_morse_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_hbond_dreiding_morse_omp.h" #include "atom.h" @@ -74,7 +75,7 @@ void PairHbondDreidingMorseOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj96_cut_omp.cpp b/src/USER-OMP/pair_lj96_cut_omp.cpp index b48946b3f90dce41430c7e3c11a647fd2d87217f..adf0aac9b20c4555a6b13165a0e699d801c1fcb4 100644 --- a/src/USER-OMP/pair_lj96_cut_omp.cpp +++ b/src/USER-OMP/pair_lj96_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj96_cut_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairLJ96CutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_charmm_coul_charmm_implicit_omp.cpp b/src/USER-OMP/pair_lj_charmm_coul_charmm_implicit_omp.cpp index 10a253de6c9ded9f3628da37e722606ef029f61a..1c8e4c3e6ba5b47037cea7c7740ad6157642929d 100644 --- a/src/USER-OMP/pair_lj_charmm_coul_charmm_implicit_omp.cpp +++ b/src/USER-OMP/pair_lj_charmm_coul_charmm_implicit_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_charmm_coul_charmm_implicit_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJCharmmCoulCharmmImplicitOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_charmm_coul_charmm_omp.cpp b/src/USER-OMP/pair_lj_charmm_coul_charmm_omp.cpp index c4c5a9650ee511c464b48e57cf8f8803ddb3c2d5..55227e2e100921711479906d69a84aa1737d35d1 100644 --- a/src/USER-OMP/pair_lj_charmm_coul_charmm_omp.cpp +++ b/src/USER-OMP/pair_lj_charmm_coul_charmm_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_charmm_coul_charmm_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJCharmmCoulCharmmOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_charmm_coul_long_omp.cpp b/src/USER-OMP/pair_lj_charmm_coul_long_omp.cpp index 949ea3ded75dbd0856010c94b81e4a9c4641c115..437bd183ed5c948fedaaa581e3cb2dc91203bf4a 100644 --- a/src/USER-OMP/pair_lj_charmm_coul_long_omp.cpp +++ b/src/USER-OMP/pair_lj_charmm_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_charmm_coul_long_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairLJCharmmCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_charmm_coul_long_soft_omp.cpp b/src/USER-OMP/pair_lj_charmm_coul_long_soft_omp.cpp index 2a41b0690b60a4588904d0b9aa7e2f4692985dca..b32f108098d6cad14ed1581d88b948514c7e2a66 100644 --- a/src/USER-OMP/pair_lj_charmm_coul_long_soft_omp.cpp +++ b/src/USER-OMP/pair_lj_charmm_coul_long_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_charmm_coul_long_soft_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairLJCharmmCoulLongSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_charmm_coul_msm_omp.cpp b/src/USER-OMP/pair_lj_charmm_coul_msm_omp.cpp index cecd27bfdc1e1ba90d50d2ddfd640aed4cb773b4..9a0b44c1ec14840fc9ce62dc8e98f747709ebd45 100644 --- a/src/USER-OMP/pair_lj_charmm_coul_msm_omp.cpp +++ b/src/USER-OMP/pair_lj_charmm_coul_msm_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_charmm_coul_msm_omp.h" #include "atom.h" @@ -49,7 +50,7 @@ void PairLJCharmmCoulMSMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_class2_coul_cut_omp.cpp b/src/USER-OMP/pair_lj_class2_coul_cut_omp.cpp index 9e4dc08fd551121249296b979621fdadfebfc91f..59a6841c9ef6e3acdbaf858cbe67b274fc07ad18 100644 --- a/src/USER-OMP/pair_lj_class2_coul_cut_omp.cpp +++ b/src/USER-OMP/pair_lj_class2_coul_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_class2_coul_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJClass2CoulCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_class2_coul_long_omp.cpp b/src/USER-OMP/pair_lj_class2_coul_long_omp.cpp index 4fd371e2eb686d2b8e3bdda654fde4150afd5c39..c0734e39d6e7481c99559cb73af773e768a84cf8 100644 --- a/src/USER-OMP/pair_lj_class2_coul_long_omp.cpp +++ b/src/USER-OMP/pair_lj_class2_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_class2_coul_long_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void PairLJClass2CoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_class2_omp.cpp b/src/USER-OMP/pair_lj_class2_omp.cpp index fa9b6ae703c813a99ffa67e500d6a25bb808fb86..2b91e10cfa9a86002c7ef4b2de5df109cd107366 100644 --- a/src/USER-OMP/pair_lj_class2_omp.cpp +++ b/src/USER-OMP/pair_lj_class2_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_class2_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJClass2OMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cubic_omp.cpp b/src/USER-OMP/pair_lj_cubic_omp.cpp index 3fe6fab5de9607fe49737760b2aa95f117432386..778c25393d37f1cf8c9b599aa1e487164d3c6cd6 100644 --- a/src/USER-OMP/pair_lj_cubic_omp.cpp +++ b/src/USER-OMP/pair_lj_cubic_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cubic_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairLJCubicOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_cut_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_cut_omp.cpp index 6c0a3706f7d7682d0d704cd931b8a9a40ad7161f..d560b803f1650dec75b2967292b314b7238392d2 100644 --- a/src/USER-OMP/pair_lj_cut_coul_cut_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJCutCoulCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_cut_soft_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_cut_soft_omp.cpp index 742565d19c19af6803a38ffec3710e18fc30de93..1c88600e7a6970e4782ad8df6ba70264898510f1 100644 --- a/src/USER-OMP/pair_lj_cut_coul_cut_soft_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_cut_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_cut_soft_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJCutCoulCutSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_debye_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_debye_omp.cpp index 413758cc4add64a015cabb4d51b297d76a2e7ecd..79754e704b2c8e3b15b584883a12f3b45fc48f01 100644 --- a/src/USER-OMP/pair_lj_cut_coul_debye_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_debye_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_debye_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJCutCoulDebyeOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_dsf_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_dsf_omp.cpp index 3295ede1326c279264bfe1e7584d12af6323763a..ec69a1a1ca92d332c11b2f3989d2084b63aa8f58 100644 --- a/src/USER-OMP/pair_lj_cut_coul_dsf_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_dsf_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_dsf_omp.h" #include "atom.h" @@ -53,7 +54,7 @@ void PairLJCutCoulDSFOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_long_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_long_omp.cpp index d32ec58607ed4a922ccbd8418d4dc61f51acb556..618986389c799f1ed6ad1011a256212b8894b8ae 100644 --- a/src/USER-OMP/pair_lj_cut_coul_long_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_long_omp.h" #include "atom.h" @@ -52,7 +53,7 @@ void PairLJCutCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_long_soft_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_long_soft_omp.cpp index d1f97941f542b2ccd949a41dc91ba5dde9e42a97..ce84ba01c3baf76d44d914b9723a45ee959baeec 100644 --- a/src/USER-OMP/pair_lj_cut_coul_long_soft_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_long_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_long_soft_omp.h" #include "atom.h" @@ -52,7 +53,7 @@ void PairLJCutCoulLongSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_msm_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_msm_omp.cpp index 9c48e03a130dc612cfdaf3436624722567953064..58e5cee0c21857d98d18dc9363eb4d1586d27a8d 100644 --- a/src/USER-OMP/pair_lj_cut_coul_msm_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_msm_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_msm_omp.h" #include "atom.h" @@ -49,7 +50,7 @@ void PairLJCutCoulMSMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_coul_wolf_omp.cpp b/src/USER-OMP/pair_lj_cut_coul_wolf_omp.cpp index 09403b893c8f3113bd139c18fd8ee9a61ef0e676..4111c5b22c122e34cf9e99fac9669f1cbfe561fc 100644 --- a/src/USER-OMP/pair_lj_cut_coul_wolf_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_coul_wolf_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_coul_wolf_omp.h" #include "atom.h" @@ -45,7 +46,7 @@ void PairLJCutCoulWolfOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_dipole_cut_omp.cpp b/src/USER-OMP/pair_lj_cut_dipole_cut_omp.cpp index c259b006c5958e451330b7c3a640357ed6d38209..7d5d25c39bf622f119fdbcf4aff16e2b85c9c1d4 100644 --- a/src/USER-OMP/pair_lj_cut_dipole_cut_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_dipole_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_dipole_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJCutDipoleCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_omp.cpp b/src/USER-OMP/pair_lj_cut_omp.cpp index f8670b7c2849ea701f3ce7b721078b93cd53fdfd..3e7e92de21aed2e6fc0685698d5c05b5a7536885 100644 --- a/src/USER-OMP/pair_lj_cut_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairLJCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_soft_omp.cpp b/src/USER-OMP/pair_lj_cut_soft_omp.cpp index 988af13938b7f144d1ea2a0188c915ec5334872f..5064c4705e8de478160ee43c031e3565a606a5ed 100644 --- a/src/USER-OMP/pair_lj_cut_soft_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_soft_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairLJCutSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_thole_long_omp.cpp b/src/USER-OMP/pair_lj_cut_thole_long_omp.cpp index a8f2d2a0819b60d0b082460e6301b501b284a3dd..72a7d5f16a293b9b12b75a131c42fc572a74fd5b 100644 --- a/src/USER-OMP/pair_lj_cut_thole_long_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_thole_long_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Paul Crozier (SNL) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_lj_cut_thole_long_omp.h" #include #include @@ -70,7 +71,7 @@ void PairLJCutTholeLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_tip4p_cut_omp.cpp b/src/USER-OMP/pair_lj_cut_tip4p_cut_omp.cpp index 40cfcb6bc2ff5f9e94eb385e6363ec2804485d96..2d1b8288220a4f4dea5f292281da40eb0ec2acc7 100644 --- a/src/USER-OMP/pair_lj_cut_tip4p_cut_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_tip4p_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_tip4p_cut_omp.h" #include "atom.h" @@ -93,7 +94,7 @@ void PairLJCutTIP4PCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_tip4p_long_omp.cpp b/src/USER-OMP/pair_lj_cut_tip4p_long_omp.cpp index d51382c0f1e15d22e26df6fabbebe86b3363f49b..a60f9d6a5729339bef69e7b3fd470debb46faad4 100644 --- a/src/USER-OMP/pair_lj_cut_tip4p_long_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_tip4p_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_lj_cut_tip4p_long_omp.h" #include #include "atom.h" @@ -93,7 +94,7 @@ void PairLJCutTIP4PLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_cut_tip4p_long_soft_omp.cpp b/src/USER-OMP/pair_lj_cut_tip4p_long_soft_omp.cpp index 350bea884d73b4cc2adc15976e6b530a96bb3a4a..f4a75b9af8f53e5542857a788686518e448391f1 100644 --- a/src/USER-OMP/pair_lj_cut_tip4p_long_soft_omp.cpp +++ b/src/USER-OMP/pair_lj_cut_tip4p_long_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_cut_tip4p_long_soft_omp.h" #include "atom.h" @@ -93,7 +94,7 @@ void PairLJCutTIP4PLongSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_expand_omp.cpp b/src/USER-OMP/pair_lj_expand_omp.cpp index d3d1da263c29ad3b80e322bedc4b38a48f08bc05..70b5e436fa40655e1ab1617cb34fda64d04e66ef 100644 --- a/src/USER-OMP/pair_lj_expand_omp.cpp +++ b/src/USER-OMP/pair_lj_expand_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_expand_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJExpandOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_gromacs_coul_gromacs_omp.cpp b/src/USER-OMP/pair_lj_gromacs_coul_gromacs_omp.cpp index 2fe7c39afe05568b62bdf1c63052816612f19145..0f0a8de2ff9872cc4a6a630a69eabd9c4fee0eb0 100644 --- a/src/USER-OMP/pair_lj_gromacs_coul_gromacs_omp.cpp +++ b/src/USER-OMP/pair_lj_gromacs_coul_gromacs_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_gromacs_coul_gromacs_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJGromacsCoulGromacsOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_gromacs_omp.cpp b/src/USER-OMP/pair_lj_gromacs_omp.cpp index 4a4e68ec6e2b59739432aeeb5d23e2cac905ca81..ea2c9e8f557ac0111f4d33f1b6df1e33385bd376 100644 --- a/src/USER-OMP/pair_lj_gromacs_omp.cpp +++ b/src/USER-OMP/pair_lj_gromacs_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_gromacs_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJGromacsOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_long_coul_long_omp.cpp b/src/USER-OMP/pair_lj_long_coul_long_omp.cpp index 7286771c26dbef6fcd4d38ec3aab91a32ae04181..e74f48712969557f5aa0d067de387db8352d13a5 100644 --- a/src/USER-OMP/pair_lj_long_coul_long_omp.cpp +++ b/src/USER-OMP/pair_lj_long_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_long_coul_long_omp.h" #include "atom.h" @@ -56,7 +57,7 @@ void PairLJLongCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; @@ -318,7 +319,7 @@ void PairLJLongCoulLongOMP::compute_inner() const int nthreads = comm->nthreads; const int inum = list->inum_inner; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int ifrom, ito, tid; @@ -343,7 +344,7 @@ void PairLJLongCoulLongOMP::compute_middle() const int inum = list->inum_middle; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int ifrom, ito, tid; @@ -373,7 +374,7 @@ void PairLJLongCoulLongOMP::compute_outer(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp b/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp index d8eedc6c0bc16bba79d2412f8b99aeaa6b8c1762..9c8de110d7563dfc6173503343234120ca8984fa 100644 --- a/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp +++ b/src/USER-OMP/pair_lj_long_tip4p_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_long_tip4p_long_omp.h" #include "atom.h" @@ -96,7 +97,7 @@ void PairLJLongTIP4PLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; @@ -379,7 +380,7 @@ void PairLJLongTIP4PLongOMP::compute_inner() const int nthreads = comm->nthreads; const int inum = list->inum_inner; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int ifrom, ito, tid; @@ -404,7 +405,7 @@ void PairLJLongTIP4PLongOMP::compute_middle() const int inum = list->inum_middle; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int ifrom, ito, tid; @@ -458,7 +459,7 @@ void PairLJLongTIP4PLongOMP::compute_outer(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_sdk_coul_long_omp.cpp b/src/USER-OMP/pair_lj_sdk_coul_long_omp.cpp index 15fea32f531b69be53b7443f7442e8402240a4d7..4ad082cde189e2f944ee9b10dc598e38db6ad21d 100644 --- a/src/USER-OMP/pair_lj_sdk_coul_long_omp.cpp +++ b/src/USER-OMP/pair_lj_sdk_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_sdk_coul_long_omp.h" #include "atom.h" @@ -45,7 +46,7 @@ void PairLJSDKCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_sdk_coul_msm_omp.cpp b/src/USER-OMP/pair_lj_sdk_coul_msm_omp.cpp index 3326034da8223061c9b097f2a3a610a5becbc7ef..4871356b184611c0750be2c29612f0ed46f0e8b9 100644 --- a/src/USER-OMP/pair_lj_sdk_coul_msm_omp.cpp +++ b/src/USER-OMP/pair_lj_sdk_coul_msm_omp.cpp @@ -13,6 +13,7 @@ This style is a simplified re-implementation of the CG/CMM pair style ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_sdk_coul_msm_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void PairLJSDKCoulMSMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_sdk_omp.cpp b/src/USER-OMP/pair_lj_sdk_omp.cpp index 9ba90a29370f9155f294f28ea56c915292ecc9e8..9f0671c61c29b02f4c2807c5a85cd205afd5a8c4 100644 --- a/src/USER-OMP/pair_lj_sdk_omp.cpp +++ b/src/USER-OMP/pair_lj_sdk_omp.cpp @@ -13,6 +13,7 @@ This style is a simplified re-implementation of the CG/CMM pair style ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_sdk_omp.h" #include "atom.h" @@ -47,7 +48,7 @@ void PairLJSDKOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_sf_dipole_sf_omp.cpp b/src/USER-OMP/pair_lj_sf_dipole_sf_omp.cpp index ca08f817dce4d8e28a788ee82ad866156b8cb969..1adaf939531c8cb95ef5f6b6ec1b8b44225ca319 100644 --- a/src/USER-OMP/pair_lj_sf_dipole_sf_omp.cpp +++ b/src/USER-OMP/pair_lj_sf_dipole_sf_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_sf_dipole_sf_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJSFDipoleSFOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_smooth_linear_omp.cpp b/src/USER-OMP/pair_lj_smooth_linear_omp.cpp index 0b29a8fc303714b59544ad9415a42269ce8a893b..497c2c3a4365b06d84aea4b1cb648b6c68f9f913 100644 --- a/src/USER-OMP/pair_lj_smooth_linear_omp.cpp +++ b/src/USER-OMP/pair_lj_smooth_linear_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_smooth_linear_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJSmoothLinearOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lj_smooth_omp.cpp b/src/USER-OMP/pair_lj_smooth_omp.cpp index fe3d64cbf6b4e35a69e155fe471ec666ae9ba0db..bdb9b3141e0940336bf1dde727d3efd8fb23e02f 100644 --- a/src/USER-OMP/pair_lj_smooth_omp.cpp +++ b/src/USER-OMP/pair_lj_smooth_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lj_smooth_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairLJSmoothOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lubricate_omp.cpp b/src/USER-OMP/pair_lubricate_omp.cpp index dc6be0b96a055aec2c9a70b356083bbff3f8c8fb..9db42395870645edf1e6fa836e0337ac69fc70b1 100644 --- a/src/USER-OMP/pair_lubricate_omp.cpp +++ b/src/USER-OMP/pair_lubricate_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_lubricate_omp.h" #include "atom.h" @@ -109,7 +110,7 @@ void PairLubricateOMP::compute(int eflag, int vflag) #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_lubricate_poly_omp.cpp b/src/USER-OMP/pair_lubricate_poly_omp.cpp index 648b10b11400f224141d128db5e78b855e691cfc..dc143a316027c45fe299419a1aa887b99e319415 100644 --- a/src/USER-OMP/pair_lubricate_poly_omp.cpp +++ b/src/USER-OMP/pair_lubricate_poly_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pair_lubricate_poly_omp.h" #include #include "atom.h" @@ -106,7 +107,7 @@ void PairLubricatePolyOMP::compute(int eflag, int vflag) #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_meam_spline_omp.cpp b/src/USER-OMP/pair_meam_spline_omp.cpp index f4aff698815d59355116e319f6499a29be9815d5..19fb09dd7b5ea992921ccde3f410be3783404a63 100644 --- a/src/USER-OMP/pair_meam_spline_omp.cpp +++ b/src/USER-OMP/pair_meam_spline_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include @@ -57,7 +58,7 @@ void PairMEAMSplineOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_morse_omp.cpp b/src/USER-OMP/pair_morse_omp.cpp index c77196d1c5eb8528ee3aa3ec60d445250e08af0d..1f566dbd42acd20af4bcb1d628150c1ef8c4408a 100644 --- a/src/USER-OMP/pair_morse_omp.cpp +++ b/src/USER-OMP/pair_morse_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_morse_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairMorseOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_morse_smooth_linear_omp.cpp b/src/USER-OMP/pair_morse_smooth_linear_omp.cpp index e30a774bf25133d8c61dbe1fdfb694f1159f3972..ac73344c67e0000c62fe5279db9727e112d76053 100644 --- a/src/USER-OMP/pair_morse_smooth_linear_omp.cpp +++ b/src/USER-OMP/pair_morse_smooth_linear_omp.cpp @@ -13,6 +13,7 @@ Most code borrowed from pair_morse_omp.cpp ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_morse_smooth_linear_omp.h" #include "atom.h" @@ -47,7 +48,7 @@ void PairMorseSmoothLinearOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_nm_cut_coul_cut_omp.cpp b/src/USER-OMP/pair_nm_cut_coul_cut_omp.cpp index 7ffd189a5b294d5a10f13e9c5b5264b351f86fb9..4326434450b091148521e150252df0215ebacb65 100644 --- a/src/USER-OMP/pair_nm_cut_coul_cut_omp.cpp +++ b/src/USER-OMP/pair_nm_cut_coul_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_nm_cut_coul_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairNMCutCoulCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_nm_cut_coul_long_omp.cpp b/src/USER-OMP/pair_nm_cut_coul_long_omp.cpp index 0a0a861b6f16a99263248f3da290a3ac17066122..970b383f7e7de84272fcdb14e55c64af367c02d9 100644 --- a/src/USER-OMP/pair_nm_cut_coul_long_omp.cpp +++ b/src/USER-OMP/pair_nm_cut_coul_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_nm_cut_coul_long_omp.h" #include "atom.h" @@ -51,7 +52,7 @@ void PairNMCutCoulLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_nm_cut_omp.cpp b/src/USER-OMP/pair_nm_cut_omp.cpp index cb74eed3f136b18d8270057726d589ef8a5c0935..ef68071b68d4e324946c8928b235ecd9a24443c9 100644 --- a/src/USER-OMP/pair_nm_cut_omp.cpp +++ b/src/USER-OMP/pair_nm_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_nm_cut_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairNMCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_peri_lps_omp.cpp b/src/USER-OMP/pair_peri_lps_omp.cpp index 3ea41321a7afa264f64b297516bb1d87bae5b237..cf29b5cab85994a35270d7522dc75ff2addaae83 100644 --- a/src/USER-OMP/pair_peri_lps_omp.cpp +++ b/src/USER-OMP/pair_peri_lps_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "pair_peri_lps_omp.h" @@ -62,7 +63,7 @@ void PairPeriLPSOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_peri_pmb_omp.cpp b/src/USER-OMP/pair_peri_pmb_omp.cpp index 95e50df50d5fa7fdc7f4ff5479f7efa1e94065a5..1990b46fe59407cf8c411375d2e489584268e053 100644 --- a/src/USER-OMP/pair_peri_pmb_omp.cpp +++ b/src/USER-OMP/pair_peri_pmb_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include #include "pair_peri_pmb_omp.h" @@ -58,7 +59,7 @@ void PairPeriPMBOMP::compute(int eflag, int vflag) } #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_resquared_omp.cpp b/src/USER-OMP/pair_resquared_omp.cpp index 65f1c7289f2432c19fc9541e7900df10889276f1..557d212531b77e24907a772c3e8db586543641a4 100644 --- a/src/USER-OMP/pair_resquared_omp.cpp +++ b/src/USER-OMP/pair_resquared_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_resquared_omp.h" #include "math_extra.h" @@ -45,7 +46,7 @@ void PairRESquaredOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_soft_omp.cpp b/src/USER-OMP/pair_soft_omp.cpp index 7de94a2cd1deabf13381d5eff0c4f34936dc7e3c..85425974cccdaacf66dcbed7377ea98b3076edce 100644 --- a/src/USER-OMP/pair_soft_omp.cpp +++ b/src/USER-OMP/pair_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_soft_omp.h" #include "atom.h" @@ -47,7 +48,7 @@ void PairSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_sw_omp.cpp b/src/USER-OMP/pair_sw_omp.cpp index 9812cf06ba287ccaa900b86270bc3abb14472992..ebe501ff8e359eb3b8ff10fb9d2786a5f269c189 100644 --- a/src/USER-OMP/pair_sw_omp.cpp +++ b/src/USER-OMP/pair_sw_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_sw_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairSWOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_table_omp.cpp b/src/USER-OMP/pair_table_omp.cpp index bf18d53d2eaf823a14601711881204be9f55e0bb..2546bfdc9a6ea9446b8442fd3c76831c03355c57 100644 --- a/src/USER-OMP/pair_table_omp.cpp +++ b/src/USER-OMP/pair_table_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_table_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairTableOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tersoff_mod_c_omp.cpp b/src/USER-OMP/pair_tersoff_mod_c_omp.cpp index 6b6b130c65bd64bebaf8b00bfec46fb5982c2a09..5e1e6b1b0e973482db8c994294be5536422fa391 100644 --- a/src/USER-OMP/pair_tersoff_mod_c_omp.cpp +++ b/src/USER-OMP/pair_tersoff_mod_c_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tersoff_mod_c_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairTersoffMODCOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tersoff_mod_omp.cpp b/src/USER-OMP/pair_tersoff_mod_omp.cpp index 634676ee4987554a5f2996a119a24c8c8e149bf1..aa90b883751c575bebffc0ab4338ebc8895a4def 100644 --- a/src/USER-OMP/pair_tersoff_mod_omp.cpp +++ b/src/USER-OMP/pair_tersoff_mod_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tersoff_mod_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairTersoffMODOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tersoff_omp.cpp b/src/USER-OMP/pair_tersoff_omp.cpp index 9735ccaa1ff7e97e975525022aaa2a117c8392e6..34dbfb73b6d92176d2ed8edc5fba572a99d73983 100644 --- a/src/USER-OMP/pair_tersoff_omp.cpp +++ b/src/USER-OMP/pair_tersoff_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tersoff_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairTersoffOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tersoff_table_omp.cpp b/src/USER-OMP/pair_tersoff_table_omp.cpp index fa9512bf717569a62dbe82446f69a7d227aaa134..a0a7f4c810e0e7ee6d5cc35efbd028b9d45302a5 100644 --- a/src/USER-OMP/pair_tersoff_table_omp.cpp +++ b/src/USER-OMP/pair_tersoff_table_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tersoff_table_omp.h" #include "atom.h" @@ -68,7 +69,7 @@ void PairTersoffTableOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tip4p_cut_omp.cpp b/src/USER-OMP/pair_tip4p_cut_omp.cpp index c8584b4fe3cb6382e64b05ef9ffe1afd631b75c9..5b983d3db5df1a74f53b8e1ccf330e17f5ce27ff 100644 --- a/src/USER-OMP/pair_tip4p_cut_omp.cpp +++ b/src/USER-OMP/pair_tip4p_cut_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tip4p_cut_omp.h" #include "atom.h" @@ -92,7 +93,7 @@ void PairTIP4PCutOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tip4p_long_omp.cpp b/src/USER-OMP/pair_tip4p_long_omp.cpp index 89c3c17684a590f34ead6ae0bd4dc055bc0d809f..86bebdbeffb82986a25a2d2c6e3aeb2f72397b6d 100644 --- a/src/USER-OMP/pair_tip4p_long_omp.cpp +++ b/src/USER-OMP/pair_tip4p_long_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tip4p_long_omp.h" #include "atom.h" @@ -93,7 +94,7 @@ void PairTIP4PLongOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_tip4p_long_soft_omp.cpp b/src/USER-OMP/pair_tip4p_long_soft_omp.cpp index 88da3d02a88dd030ae72e7cbb621962152a3da5e..26e0420955ef7736bad51289847628086108787e 100644 --- a/src/USER-OMP/pair_tip4p_long_soft_omp.cpp +++ b/src/USER-OMP/pair_tip4p_long_soft_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_tip4p_long_soft_omp.h" #include "atom.h" @@ -93,7 +94,7 @@ void PairTIP4PLongSoftOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_ufm_omp.cpp b/src/USER-OMP/pair_ufm_omp.cpp index 23e76186c08f3fca4383a7c4564baddb0f0bebd1..605d6dd2c6c6f81e4d82751a6f2b36128ee0396a 100644 --- a/src/USER-OMP/pair_ufm_omp.cpp +++ b/src/USER-OMP/pair_ufm_omp.cpp @@ -14,6 +14,7 @@ Maurice de Koning (Unicamp/Brazil) - dekoning@ifi.unicamp.br ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_ufm_omp.h" #include "atom.h" @@ -45,7 +46,7 @@ void PairUFMOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_vashishta_omp.cpp b/src/USER-OMP/pair_vashishta_omp.cpp index a218ddf3edb7850893b2f6b7b4115fe3974cc76d..425a06c296d0aa8bec1c65bc4be061349d0c89d6 100644 --- a/src/USER-OMP/pair_vashishta_omp.cpp +++ b/src/USER-OMP/pair_vashishta_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_vashishta_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairVashishtaOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_vashishta_table_omp.cpp b/src/USER-OMP/pair_vashishta_table_omp.cpp index 0986128bf6916ed4df5d72ee9553c1b54deb78de..36c86a89953cd6f7adb97c14853c9602db949ea3 100644 --- a/src/USER-OMP/pair_vashishta_table_omp.cpp +++ b/src/USER-OMP/pair_vashishta_table_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_vashishta_table_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairVashishtaTableOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_yukawa_colloid_omp.cpp b/src/USER-OMP/pair_yukawa_colloid_omp.cpp index 9b8428c64843725b4b85ec139557921ff40d071d..e6ac3fa9fbe5f77ba1b1cca37a6d6071a14f7dd3 100644 --- a/src/USER-OMP/pair_yukawa_colloid_omp.cpp +++ b/src/USER-OMP/pair_yukawa_colloid_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_yukawa_colloid_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairYukawaColloidOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_yukawa_omp.cpp b/src/USER-OMP/pair_yukawa_omp.cpp index 20d557e60579a8ce0f5c04cd84853a9756635ebc..f222876cb528f35447dc4697aae9622436318460 100644 --- a/src/USER-OMP/pair_yukawa_omp.cpp +++ b/src/USER-OMP/pair_yukawa_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_yukawa_omp.h" #include "atom.h" @@ -43,7 +44,7 @@ void PairYukawaOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pair_zbl_omp.cpp b/src/USER-OMP/pair_zbl_omp.cpp index 3a300ce477837cec62315f6823b68594fab4bfd6..284ebbf09c6f9c04f760e8d13d807a2ddeca8ff8 100644 --- a/src/USER-OMP/pair_zbl_omp.cpp +++ b/src/USER-OMP/pair_zbl_omp.cpp @@ -12,6 +12,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include #include "pair_zbl_omp.h" #include "atom.h" @@ -44,7 +45,7 @@ void PairZBLOMP::compute(int eflag, int vflag) const int inum = list->inum; #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { int ifrom, ito, tid; diff --git a/src/USER-OMP/pppm_cg_omp.cpp b/src/USER-OMP/pppm_cg_omp.cpp index f9967bf52a6fc24887a481ea328bd95dba6a87bd..31098d2675c6a6ac79886f6e3f2952de85a8979f 100644 --- a/src/USER-OMP/pppm_cg_omp.cpp +++ b/src/USER-OMP/pppm_cg_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pppm_cg_omp.h" #include #include @@ -59,7 +60,7 @@ PPPMCGOMP::PPPMCGOMP(LAMMPS *lmp) : PPPMCG(lmp), ThrOMP(lmp, THR_KSPACE) PPPMCGOMP::~PPPMCGOMP() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -81,7 +82,7 @@ void PPPMCGOMP::allocate() PPPMCG::allocate(); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -122,7 +123,7 @@ void PPPMCGOMP::compute_gf_ik() const int twoorder = 2*order; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double snx,sny,snz; @@ -216,7 +217,7 @@ void PPPMCGOMP::compute_gf_ad() double sf0=0.0,sf1=0.0,sf2=0.0,sf3=0.0,sf4=0.0,sf5=0.0; #if defined(_OPENMP) -#pragma omp parallel default(none) reduction(+:sf0,sf1,sf2,sf3,sf4,sf5) +#pragma omp parallel LMP_DEFAULT_NONE reduction(+:sf0,sf1,sf2,sf3,sf4,sf5) #endif { double snx,sny,snz,sqk; @@ -314,7 +315,7 @@ void PPPMCGOMP::compute(int eflag, int vflag) PPPMCG::compute(eflag,vflag); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) @@ -351,7 +352,7 @@ void PPPMCGOMP::make_rho() const int iy = nyhi_out - nylo_out + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const double * _noalias const q = atom->q; @@ -443,7 +444,7 @@ void PPPMCGOMP::fieldforce_ik() const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { FFT_SCALAR dx,dy,dz,x0,y0,z0,ekx,eky,ekz; @@ -524,7 +525,7 @@ void PPPMCGOMP::fieldforce_ad() const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { int i,ifrom,ito,tid,l,m,n,nx,ny,nz,mx,my,mz; @@ -617,7 +618,7 @@ void PPPMCGOMP::fieldforce_peratom() const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { FFT_SCALAR dx,dy,dz,x0,y0,z0; diff --git a/src/USER-OMP/pppm_disp_omp.cpp b/src/USER-OMP/pppm_disp_omp.cpp index 6b2c180a3fe8fabd56a7088b6805bfb6208fb5c6..aad77cffc72ff014cfe7fd40545f8a543a033303 100644 --- a/src/USER-OMP/pppm_disp_omp.cpp +++ b/src/USER-OMP/pppm_disp_omp.cpp @@ -16,6 +16,7 @@ Rolf Isele-Holder (RWTH Aachen University) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pppm_disp_omp.h" #include #include @@ -59,7 +60,7 @@ PPPMDispOMP::PPPMDispOMP(LAMMPS *lmp) : PPPMDisp(lmp), ThrOMP(lmp, THR_KSPACE) PPPMDispOMP::~PPPMDispOMP() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -87,7 +88,7 @@ void PPPMDispOMP::allocate() PPPMDisp::allocate(); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -114,7 +115,7 @@ void PPPMDispOMP::allocate() void PPPMDispOMP::compute_gf() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { @@ -204,7 +205,7 @@ void PPPMDispOMP::compute_gf() void PPPMDispOMP::compute_gf_6() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double *prd; @@ -311,7 +312,7 @@ void PPPMDispOMP::compute(int eflag, int vflag) PPPMDisp::compute(eflag,vflag); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) @@ -366,7 +367,7 @@ void PPPMDispOMP::particle_map(double dxinv, double dyinv, int flag = 0; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:flag) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:flag) schedule(static) #endif for (int i = 0; i < nlocal; i++) { @@ -419,7 +420,7 @@ void PPPMDispOMP::make_rho_c() const int iy = nyhi_out - nylo_out + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const double * _noalias const q = atom->q; @@ -509,7 +510,7 @@ void PPPMDispOMP::make_rho_g() const int iy = nyhi_out_6 - nylo_out_6 + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0]; @@ -613,7 +614,7 @@ void PPPMDispOMP::make_rho_a() const int iy = nyhi_out_6 - nylo_out_6 + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0]; @@ -723,7 +724,7 @@ void PPPMDispOMP::fieldforce_c_ik() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -828,7 +829,7 @@ void PPPMDispOMP::fieldforce_c_ad() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -935,7 +936,7 @@ void PPPMDispOMP::fieldforce_c_peratom() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1034,7 +1035,7 @@ void PPPMDispOMP::fieldforce_g_ik() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1138,7 +1139,7 @@ void PPPMDispOMP::fieldforce_g_ad() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1248,7 +1249,7 @@ void PPPMDispOMP::fieldforce_g_peratom() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1350,7 +1351,7 @@ void PPPMDispOMP::fieldforce_a_ik() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1486,7 +1487,7 @@ void PPPMDispOMP::fieldforce_a_ad() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1663,7 +1664,7 @@ void PPPMDispOMP::fieldforce_a_peratom() #if defined(_OPENMP) const int nthreads = comm->nthreads; -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) diff --git a/src/USER-OMP/pppm_disp_tip4p_omp.cpp b/src/USER-OMP/pppm_disp_tip4p_omp.cpp index ec294cd56d76206cd1b654e5a3b42ff1d1b2f1f7..7da4257e07106bcd2831c2e2d3407f2b1ccf6ff9 100644 --- a/src/USER-OMP/pppm_disp_tip4p_omp.cpp +++ b/src/USER-OMP/pppm_disp_tip4p_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pppm_disp_tip4p_omp.h" #include #include @@ -56,7 +57,7 @@ PPPMDispTIP4POMP::~PPPMDispTIP4POMP() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -84,7 +85,7 @@ void PPPMDispTIP4POMP::allocate() PPPMDispTIP4P::allocate(); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -111,7 +112,7 @@ void PPPMDispTIP4POMP::allocate() void PPPMDispTIP4POMP::compute_gf() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { @@ -198,7 +199,7 @@ void PPPMDispTIP4POMP::compute_gf() void PPPMDispTIP4POMP::compute_gf_6() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double *prd; @@ -302,7 +303,7 @@ void PPPMDispTIP4POMP::compute(int eflag, int vflag) PPPMDispTIP4P::compute(eflag,vflag); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) @@ -358,7 +359,7 @@ void PPPMDispTIP4POMP::particle_map_c(double dxinv, double dyinv, int flag = 0; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:flag) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:flag) schedule(static) #endif for (int i = 0; i < nlocal; i++) { dbl3_t xM; @@ -434,7 +435,7 @@ void PPPMDispTIP4POMP::particle_map(double dxinv, double dyinv, int flag = 0; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:flag) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:flag) schedule(static) #endif for (int i = 0; i < nlocal; i++) { @@ -487,7 +488,7 @@ void PPPMDispTIP4POMP::make_rho_c() const int iy = nyhi_out - nylo_out + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const double * _noalias const q = atom->q; @@ -582,7 +583,7 @@ void PPPMDispTIP4POMP::make_rho_g() const int iy = nyhi_out_6 - nylo_out_6 + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0]; @@ -684,7 +685,7 @@ void PPPMDispTIP4POMP::make_rho_a() const int iy = nyhi_out_6 - nylo_out_6 + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0]; @@ -795,7 +796,7 @@ void PPPMDispTIP4POMP::fieldforce_c_ik() const double boxloz = boxlo[2]; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { dbl3_t xM; @@ -903,7 +904,7 @@ void PPPMDispTIP4POMP::fieldforce_c_ad() const double boxloz = boxlo[2]; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double s1,s2,s3,sf; @@ -1018,7 +1019,7 @@ void PPPMDispTIP4POMP::fieldforce_g_ik() const double * const * const x = atom->x; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1119,7 +1120,7 @@ void PPPMDispTIP4POMP::fieldforce_g_ad() const double hz_inv = nz_pppm_6/zprd_slab; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1226,7 +1227,7 @@ void PPPMDispTIP4POMP::fieldforce_g_peratom() const double * const * const x = atom->x; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1325,7 +1326,7 @@ void PPPMDispTIP4POMP::fieldforce_a_ik() const double * const * const x = atom->x; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1458,7 +1459,7 @@ void PPPMDispTIP4POMP::fieldforce_a_ad() const double hz_inv = nz_pppm_6/zprd_slab; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -1632,7 +1633,7 @@ void PPPMDispTIP4POMP::fieldforce_a_peratom() const double * const * const x = atom->x; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) diff --git a/src/USER-OMP/pppm_omp.cpp b/src/USER-OMP/pppm_omp.cpp index b9b39826ffd56d47ee6eac646056d6353f11b0c4..e3e46f4de07fc2c342975fef97b9215f3e55f85b 100644 --- a/src/USER-OMP/pppm_omp.cpp +++ b/src/USER-OMP/pppm_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pppm_omp.h" #include #include @@ -61,7 +62,7 @@ void PPPMOMP::allocate() PPPM::allocate(); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -81,7 +82,7 @@ void PPPMOMP::allocate() PPPMOMP::~PPPMOMP() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -122,7 +123,7 @@ void PPPMOMP::compute_gf_ik() const int twoorder = 2*order; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double snx,sny,snz; @@ -216,7 +217,7 @@ void PPPMOMP::compute_gf_ad() double sf0=0.0,sf1=0.0,sf2=0.0,sf3=0.0,sf4=0.0,sf5=0.0; #if defined(_OPENMP) -#pragma omp parallel default(none) reduction(+:sf0,sf1,sf2,sf3,sf4,sf5) +#pragma omp parallel LMP_DEFAULT_NONE reduction(+:sf0,sf1,sf2,sf3,sf4,sf5) #endif { double snx,sny,snz,sqk; @@ -314,7 +315,7 @@ void PPPMOMP::compute(int eflag, int vflag) PPPM::compute(eflag,vflag); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) @@ -352,7 +353,7 @@ void PPPMOMP::make_rho() const int iy = nyhi_out - nylo_out + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const double * _noalias const q = atom->q; @@ -449,7 +450,7 @@ void PPPMOMP::fieldforce_ik() const double boxloz = boxlo[2]; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { FFT_SCALAR x0,y0,z0,ekx,eky,ekz; @@ -534,7 +535,7 @@ void PPPMOMP::fieldforce_ad() const double boxloz = boxlo[2]; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double s1,s2,s3,sf; @@ -627,7 +628,7 @@ void PPPMOMP::fieldforce_peratom() const double * _noalias const q = atom->q; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { FFT_SCALAR dx,dy,dz,x0,y0,z0; diff --git a/src/USER-OMP/pppm_tip4p_omp.cpp b/src/USER-OMP/pppm_tip4p_omp.cpp index 359b5dcc8d56f51b9daf50439a34b14f48302fc3..6b3316943e086018d8e2a59b212e52c1f233bd70 100644 --- a/src/USER-OMP/pppm_tip4p_omp.cpp +++ b/src/USER-OMP/pppm_tip4p_omp.cpp @@ -15,6 +15,7 @@ Contributing author: Axel Kohlmeyer (Temple U) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "pppm_tip4p_omp.h" #include #include @@ -61,7 +62,7 @@ PPPMTIP4POMP::PPPMTIP4POMP(LAMMPS *lmp) : PPPMTIP4POMP::~PPPMTIP4POMP() { #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -83,7 +84,7 @@ void PPPMTIP4POMP::allocate() PPPMTIP4P::allocate(); #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -124,7 +125,7 @@ void PPPMTIP4POMP::compute_gf_ik() const int twoorder = 2*order; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double snx,sny,snz; @@ -218,7 +219,7 @@ void PPPMTIP4POMP::compute_gf_ad() double sf0=0.0,sf1=0.0,sf2=0.0,sf3=0.0,sf4=0.0,sf5=0.0; #if defined(_OPENMP) -#pragma omp parallel default(none) reduction(+:sf0,sf1,sf2,sf3,sf4,sf5) +#pragma omp parallel LMP_DEFAULT_NONE reduction(+:sf0,sf1,sf2,sf3,sf4,sf5) #endif { double snx,sny,snz,sqk; @@ -316,7 +317,7 @@ void PPPMTIP4POMP::compute(int eflag, int vflag) PPPMTIP4P::compute(eflag,vflag); #if defined(_OPENMP) -#pragma omp parallel default(none) shared(eflag,vflag) +#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag) #endif { #if defined(_OPENMP) @@ -355,7 +356,7 @@ void PPPMTIP4POMP::particle_map() int flag = 0; #if defined(_OPENMP) -#pragma omp parallel for default(none) reduction(+:flag) schedule(static) +#pragma omp parallel for LMP_DEFAULT_NONE reduction(+:flag) schedule(static) #endif for (int i = 0; i < nlocal; i++) { dbl3_t xM; @@ -416,7 +417,7 @@ void PPPMTIP4POMP::make_rho() const int iy = nyhi_out - nylo_out + 1; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { const double * _noalias const q = atom->q; @@ -521,7 +522,7 @@ void PPPMTIP4POMP::fieldforce_ik() const double boxloz = boxlo[2]; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { dbl3_t xM; @@ -632,7 +633,7 @@ void PPPMTIP4POMP::fieldforce_ad() const double boxloz = boxlo[2]; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { double s1,s2,s3,sf; diff --git a/src/USER-OMP/reaxc_forces_omp.cpp b/src/USER-OMP/reaxc_forces_omp.cpp index e48a5c11d42a20b1734b1ffa030562a974918e72..381b2e552507010082df7a3d532805dc71b4df11 100644 --- a/src/USER-OMP/reaxc_forces_omp.cpp +++ b/src/USER-OMP/reaxc_forces_omp.cpp @@ -26,6 +26,7 @@ . ----------------------------------------------------------------------*/ +#include "omp_compat.h" #include "reaxc_forces_omp.h" #include #include @@ -146,7 +147,7 @@ void Compute_Total_ForceOMP( reax_system *system, control_params *control, reax_list *bonds = (*lists) + BONDS; #if defined(_OPENMP) -#pragma omp parallel default(shared) //default(none) +#pragma omp parallel default(shared) //LMP_DEFAULT_NONE #endif { int i, j, k, pj, pk, start_j, end_j; diff --git a/src/USER-OMP/reaxc_hydrogen_bonds_omp.cpp b/src/USER-OMP/reaxc_hydrogen_bonds_omp.cpp index d06966a92d8e62ba535585d7f216440b2efefbda..22d9df7702ca427508b15d2262ac67be36d0afbd 100644 --- a/src/USER-OMP/reaxc_hydrogen_bonds_omp.cpp +++ b/src/USER-OMP/reaxc_hydrogen_bonds_omp.cpp @@ -26,6 +26,7 @@ . ----------------------------------------------------------------------*/ +#include "omp_compat.h" #include "reaxc_hydrogen_bonds_omp.h" #include #include @@ -57,7 +58,7 @@ void Hydrogen_BondsOMP( reax_system *system, control_params *control, const int nthreads = control->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(shared) //default(none) +#pragma omp parallel default(shared) //LMP_DEFAULT_NONE #endif { int i, j, k, pi, pk; diff --git a/src/USER-OMP/respa_omp.cpp b/src/USER-OMP/respa_omp.cpp index 5add419253a2763a00461111604411166f235665..b5e5293aa42dd871ca69252283c3d32e717d651f 100644 --- a/src/USER-OMP/respa_omp.cpp +++ b/src/USER-OMP/respa_omp.cpp @@ -15,6 +15,7 @@ Contributing authors: Mark Stevens (SNL), Paul Crozier (SNL) ------------------------------------------------------------------------- */ +#include "omp_compat.h" #include "respa_omp.h" #include "neighbor.h" #include "comm.h" @@ -146,7 +147,7 @@ void RespaOMP::setup(int flag) const int nall = atom->nlocal + atom->nghost; const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -241,7 +242,7 @@ void RespaOMP::setup_minimal(int flag) const int nall = atom->nlocal + atom->nghost; const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) @@ -394,7 +395,7 @@ void RespaOMP::recurse(int ilevel) const int nall = atom->nlocal + atom->nghost; const int nthreads = comm->nthreads; #if defined(_OPENMP) -#pragma omp parallel default(none) +#pragma omp parallel LMP_DEFAULT_NONE #endif { #if defined(_OPENMP) diff --git a/src/USER-QTB/fix_qbmsst.cpp b/src/USER-QTB/fix_qbmsst.cpp index abbf1701b84865fd6240ca56211b518817a4e87b..5ac611b13eeae128542ac0dfe37048da2812eb4d 100644 --- a/src/USER-QTB/fix_qbmsst.cpp +++ b/src/USER-QTB/fix_qbmsst.cpp @@ -32,10 +32,12 @@ #include "memory.h" #include "error.h" #include "kspace.h" +#include "math_const.h" #include "utils.h" using namespace LAMMPS_NS; using namespace FixConst; +using namespace MathConst; /* ---------------------------------------------------------------------- read parameters @@ -45,13 +47,16 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : { if (narg < 5) error->all(FLERR,"Illegal fix qbmsst command"); - if ( strcmp(arg[3],"x") == 0 ) + if ( strcmp(arg[3],"x") == 0 ) { direction = 0; - else if ( strcmp(arg[3],"y") == 0 ) + box_change |= BOX_CHANGE_X; + } else if ( strcmp(arg[3],"y") == 0 ) { direction = 1; - else if ( strcmp(arg[3],"z") == 0 ) + box_change |= BOX_CHANGE_Y; + } else if ( strcmp(arg[3],"z") == 0 ) { direction = 2; - else { + box_change |= BOX_CHANGE_Z; + } else { error->all(FLERR,"Illegal fix qbmsst command"); } velocity = atof(arg[4]); @@ -64,7 +69,6 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : extvector = 0; nevery = 1; restart_global = 1; - box_change_size = 1; time_integrate = 1; scalar_flag = 1; vector_flag = 1; @@ -538,7 +542,7 @@ void FixQBMSST::initial_integrate(int /*vflag*/) } else { double energy_k= force->hplanck * fabs(f_k); omega_H[k]=sqrt( energy_k * (0.5+1.0/( exp(energy_k/(force->boltz * t_current)) - 1.0 )) ); - omega_H[k]*=alpha*sin((k-N_f)*M_PI/(2*alpha*N_f))/sin((k-N_f)*M_PI/(2*N_f)); + omega_H[k]*=alpha*sin((k-N_f)*MY_PI/(2*alpha*N_f))/sin((k-N_f)*MY_PI/(2*N_f)); } } @@ -547,7 +551,7 @@ void FixQBMSST::initial_integrate(int /*vflag*/) time_H[n] = 0; double t_n=(n-N_f); for (int k = 0; k < 2*N_f; k++) { - double omega_k=(k-N_f)*M_PI/N_f; + double omega_k=(k-N_f)*MY_PI/N_f; time_H[n] += omega_H[k]*(cos(omega_k*t_n)); } time_H[n]/=(2.0*N_f); diff --git a/src/USER-QTB/fix_qtb.cpp b/src/USER-QTB/fix_qtb.cpp index 593ca310068ac9d83471b3fd5738b8bdcbc7e7d1..fa15385859d92467b168f526816a25f02b99e91a 100644 --- a/src/USER-QTB/fix_qtb.cpp +++ b/src/USER-QTB/fix_qtb.cpp @@ -29,11 +29,13 @@ #include "respa.h" #include "comm.h" #include "random_mars.h" +#include "math_const.h" #include "memory.h" #include "error.h" using namespace LAMMPS_NS; using namespace FixConst; +using namespace MathConst; /* ---------------------------------------------------------------------- read parameters @@ -195,7 +197,7 @@ void FixQTB::init() } else { double energy_k= force->hplanck * fabs(f_k); omega_H[k]=sqrt( energy_k * (0.5+1.0/( exp(energy_k/(force->boltz * t_target)) - 1.0 )) ); - omega_H[k]*=alpha*sin((k-N_f)*M_PI/(2*alpha*N_f))/sin((k-N_f)*M_PI/(2*N_f)); + omega_H[k]*=alpha*sin((k-N_f)*MY_PI/(2*alpha*N_f))/sin((k-N_f)*MY_PI/(2*N_f)); } } @@ -204,7 +206,7 @@ void FixQTB::init() time_H[n] = 0; double t_n=(n-N_f); for (int k = 0; k < 2*N_f; k++) { - double omega_k=(k-N_f)*M_PI/N_f; + double omega_k=(k-N_f)*MY_PI/N_f; time_H[n] += omega_H[k]*(cos(omega_k*t_n)); } time_H[n]/=(2.0*N_f); diff --git a/src/USER-REACTION/fix_bond_react.cpp b/src/USER-REACTION/fix_bond_react.cpp index 44e2bd172eba0db5a30b8f93021c2278a104931e..39750dd7da5d8a39a6b1471f3fa983cb5bd432c9 100644 --- a/src/USER-REACTION/fix_bond_react.cpp +++ b/src/USER-REACTION/fix_bond_react.cpp @@ -39,6 +39,8 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu) #include "math_extra.h" #include "memory.h" #include "error.h" +#include "input.h" +#include "variable.h" #include @@ -61,6 +63,7 @@ static const char cite_fix_bond_react[] = #define DELTA 16 #define MAXGUESS 20 // max # of guesses allowed by superimpose algorithm #define MAXCONARGS 10 // max # of arguments for any type of constraint + rxnID +#define NUMVARVALS 4 // max # of keyword values that have variables as input // various statuses of superimpose algorithm: // ACCEPT: site successfully matched to pre-reacted template @@ -74,6 +77,9 @@ enum{ACCEPT,REJECT,PROCEED,CONTINUE,GUESSFAIL,RESTORE}; // types of available reaction constraints enum{DISTANCE,ANGLE,DIHEDRAL,ARRHENIUS}; +// keyword values that accept variables as input +enum{NEVERY,RMIN,RMAX,PROB}; + /* ---------------------------------------------------------------------- */ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : @@ -178,6 +184,8 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : memory->create(stabilize_steps_flag,nreacts,"bond/react:stabilize_steps_flag"); memory->create(update_edges_flag,nreacts,"bond/react:update_edges_flag"); memory->create(constraints,1,MAXCONARGS,"bond/react:constraints"); + memory->create(var_flag,NUMVARVALS,nreacts,"bond/react:var_flag"); + memory->create(var_id,NUMVARVALS,nreacts,"bond/react:var_id"); memory->create(iatomtype,nreacts,"bond/react:iatomtype"); memory->create(jatomtype,nreacts,"bond/react:jatomtype"); memory->create(ibonding,nreacts,"bond/react:ibonding"); @@ -201,6 +209,10 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : local_rxn_count[i] = 0; ghostly_rxn_count[i] = 0; reaction_count_total[i] = 0; + for (int j = 0; j < NUMVARVALS; j++) { + var_flag[j][i] = 0; + var_id[j][i] = 0; + } } char **files; @@ -221,19 +233,65 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : if (igroup == -1) error->all(FLERR,"Could not find fix group ID"); groupbits[rxn] = group->bitmask[igroup]; - nevery[rxn] = force->inumeric(FLERR,arg[iarg++]); - if (nevery[rxn] <= 0) error->all(FLERR,"Illegal fix bond/react command: " - "'Nevery' must be a positive integer"); + if (strncmp(arg[iarg],"v_",2) == 0) { + n = strlen(&arg[iarg][2]) + 1; + char *str = new char[n]; + strcpy(str,&arg[iarg][2]); + var_id[NEVERY][rxn] = input->variable->find(str); + if (var_id[NEVERY][rxn] < 0) + error->all(FLERR,"Bond/react: Variable name does not exist"); + if (!input->variable->equalstyle(var_id[NEVERY][rxn])) + error->all(FLERR,"Bond/react: Variable is not equal-style"); + var_flag[NEVERY][rxn] = 1; + delete [] str; + } else { + nevery[rxn] = force->inumeric(FLERR,arg[iarg]); + if (nevery[rxn] <= 0) error->all(FLERR,"Illegal fix bond/react command: " + "'Nevery' must be a positive integer"); + } + iarg++; - double cutoff = force->numeric(FLERR,arg[iarg++]); - if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command: " - "'Rmin' cannot be negative"); - cutsq[rxn][0] = cutoff*cutoff; + if (strncmp(arg[iarg],"v_",2) == 0) { + n = strlen(&arg[iarg][2]) + 1; + char *str = new char[n]; + strcpy(str,&arg[iarg][2]); + var_id[RMIN][rxn] = input->variable->find(str); + if (var_id[RMIN][rxn] < 0) + error->all(FLERR,"Bond/react: Variable name does not exist"); + if (!input->variable->equalstyle(var_id[RMIN][rxn])) + error->all(FLERR,"Bond/react: Variable is not equal-style"); + double cutoff = input->variable->compute_equal(var_id[RMIN][rxn]); + cutsq[rxn][0] = cutoff*cutoff; + var_flag[RMIN][rxn] = 1; + delete [] str; + } else { + double cutoff = force->numeric(FLERR,arg[iarg]); + if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command: " + "'Rmin' cannot be negative"); + cutsq[rxn][0] = cutoff*cutoff; + } + iarg++; - cutoff = force->numeric(FLERR,arg[iarg++]); - if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command:" - "'Rmax' cannot be negative"); - cutsq[rxn][1] = cutoff*cutoff; + if (strncmp(arg[iarg],"v_",2) == 0) { + n = strlen(&arg[iarg][2]) + 1; + char *str = new char[n]; + strcpy(str,&arg[iarg][2]); + var_id[RMAX][rxn] = input->variable->find(str); + if (var_id[RMAX][rxn] < 0) + error->all(FLERR,"Bond/react: Variable name does not exist"); + if (!input->variable->equalstyle(var_id[RMAX][rxn])) + error->all(FLERR,"Bond/react: Variable is not equal-style"); + double cutoff = input->variable->compute_equal(var_id[RMAX][rxn]); + cutsq[rxn][1] = cutoff*cutoff; + var_flag[RMAX][rxn] = 1; + delete [] str; + } else { + double cutoff = force->numeric(FLERR,arg[iarg]); + if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command:" + "'Rmax' cannot be negative"); + cutsq[rxn][1] = cutoff*cutoff; + } + iarg++; unreacted_mol[rxn] = atom->find_molecule(arg[iarg++]); if (unreacted_mol[rxn] == -1) error->all(FLERR,"Unreacted molecule template ID for " @@ -251,7 +309,23 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : if (strcmp(arg[iarg],"prob") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/react command: " "'prob' keyword has too few arguments"); - fraction[rxn] = force->numeric(FLERR,arg[iarg+1]); + // check if probability is a variable + if (strncmp(arg[iarg+1],"v_",2) == 0) { + int n = strlen(&arg[iarg+1][2]) + 1; + char *str = new char[n]; + strcpy(str,&arg[iarg+1][2]); + var_id[PROB][rxn] = input->variable->find(str); + if (var_id[PROB][rxn] < 0) + error->all(FLERR,"Bond/react: Variable name does not exist"); + if (!input->variable->equalstyle(var_id[PROB][rxn])) + error->all(FLERR,"Bond/react: Variable is not equal-style"); + fraction[rxn] = input->variable->compute_equal(var_id[PROB][rxn]); + var_flag[PROB][rxn] = 1; + delete [] str; + } else { + // otherwise probability should be a number + fraction[rxn] = force->numeric(FLERR,arg[iarg+1]); + } seed[rxn] = force->inumeric(FLERR,arg[iarg+2]); if (fraction[rxn] < 0.0 || fraction[rxn] > 1.0) error->all(FLERR,"Illegal fix bond/react command: " @@ -260,12 +334,12 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) : "probability seed must be positive"); iarg += 3; } else if (strcmp(arg[iarg],"max_rxn") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " - "'max_rxn' has too few arguments"); - max_rxn[rxn] = force->inumeric(FLERR,arg[iarg+1]); - if (max_rxn[rxn] < 0) error->all(FLERR,"Illegal fix bond/react command: " - "'max_rxn' cannot be negative"); - iarg += 2; + if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/react command: " + "'max_rxn' has too few arguments"); + max_rxn[rxn] = force->inumeric(FLERR,arg[iarg+1]); + if (max_rxn[rxn] < 0) error->all(FLERR,"Illegal fix bond/react command: " + "'max_rxn' cannot be negative"); + iarg += 2; } else if (strcmp(arg[iarg],"stabilize_steps") == 0) { if (stabilization_flag == 0) error->all(FLERR,"Stabilize_steps keyword " "used without stabilization keyword"); @@ -447,6 +521,8 @@ FixBondReact::~FixBondReact() memory->destroy(nlocalskips); memory->destroy(nghostlyskips); memory->destroy(limit_duration); + memory->destroy(var_flag); + memory->destroy(var_id); memory->destroy(stabilize_steps_flag); memory->destroy(update_edges_flag); @@ -628,36 +704,36 @@ void FixBondReact::post_constructor() i_statted_tags[i] = 1; } } else { - // sleeping code, for future capabilities - custom_exclude_flag = 1; - // first we have to find correct fix group reference - int n = strlen("GROUP_") + strlen(exclude_group) + 1; - char *fix_group = new char[n]; - strcpy(fix_group,"GROUP_"); - strcat(fix_group,exclude_group); - int ifix = modify->find_fix(fix_group); - Fix *fix = modify->fix[ifix]; - delete [] fix_group; - - // this returns names of corresponding property - int unused; - char * idprop; - idprop = (char *) fix->extract("property",unused); - if (idprop == NULL) - error->all(FLERR,"Exclude group must be a per-atom property group"); - - len = strlen(idprop) + 1; - statted_id = new char[len]; - strcpy(statted_id,idprop); - - // initialize per-atom statted_tags to 1 - // need to correct for smooth restarts - //int flag; - //int index = atom->find_custom(statted_id,flag); - //int *i_statted_tags = atom->ivector[index]; - //for (int i = 0; i < atom->nlocal; i++) - // i_statted_tags[i] = 1; - } + // sleeping code, for future capabilities + custom_exclude_flag = 1; + // first we have to find correct fix group reference + int n = strlen("GROUP_") + strlen(exclude_group) + 1; + char *fix_group = new char[n]; + strcpy(fix_group,"GROUP_"); + strcat(fix_group,exclude_group); + int ifix = modify->find_fix(fix_group); + Fix *fix = modify->fix[ifix]; + delete [] fix_group; + + // this returns names of corresponding property + int unused; + char * idprop; + idprop = (char *) fix->extract("property",unused); + if (idprop == NULL) + error->all(FLERR,"Exclude group must be a per-atom property group"); + + len = strlen(idprop) + 1; + statted_id = new char[len]; + strcpy(statted_id,idprop); + + // initialize per-atom statted_tags to 1 + // need to correct for smooth restarts + //int flag; + //int index = atom->find_custom(statted_id,flag); + //int *i_statted_tags = atom->ivector[index]; + //for (int i = 0; i < atom->nlocal; i++) + // i_statted_tags[i] = 1; + } // let's create a new nve/limit fix to limit newly reacted atoms @@ -720,6 +796,11 @@ void FixBondReact::post_integrate() // check if any reactions could occur on this timestep int nevery_check = 1; for (int i = 0; i < nreacts; i++) { + if (var_flag[NEVERY][i]) + nevery[i] = ceil(input->variable->compute_equal(var_id[NEVERY][i])); + if (nevery[i] <= 0) + error->all(FLERR,"Illegal fix bond/react command: " + "'Nevery' must be a positive integer"); if (!(update->ntimestep % nevery[i])) { nevery_check = 0; break; @@ -824,13 +905,17 @@ void FixBondReact::post_integrate() comm->reverse_comm_fix(this); } + // update reaction probability + if (var_flag[PROB][rxnID]) + fraction[rxnID] = input->variable->compute_equal(var_id[PROB][rxnID]); + // each atom now knows its winning partner // for prob check, generate random value for each atom with a bond partner // forward comm of partner and random value, so ghosts have it if (fraction[rxnID] < 1.0) { for (int i = 0; i < nlocal; i++) - if (partner[i]) probability[i] = random[rxnID]->uniform(); + if (partner[i]) probability[i] = random[rxnID]->uniform(); } commflag = 2; @@ -1003,6 +1088,14 @@ void FixBondReact::far_partner() domain->minimum_image(delx,dely,delz); // ghost location fix rsq = delx*delx + dely*dely + delz*delz; + if (var_flag[RMIN][rxnID]) { + double cutoff = input->variable->compute_equal(var_id[RMIN][rxnID]); + cutsq[rxnID][0] = cutoff*cutoff; + } + if (var_flag[RMAX][rxnID]) { + double cutoff = input->variable->compute_equal(var_id[RMAX][rxnID]); + cutsq[rxnID][1] = cutoff*cutoff; + } if (rsq >= cutsq[rxnID][1] || rsq <= cutsq[rxnID][0]) { continue; } @@ -1058,6 +1151,15 @@ void FixBondReact::close_partner() delz = x[i1][2] - x[i2][2]; domain->minimum_image(delx,dely,delz); // ghost location fix rsq = delx*delx + dely*dely + delz*delz; + + if (var_flag[RMIN][rxnID]) { + double cutoff = input->variable->compute_equal(var_id[RMIN][rxnID]); + cutsq[rxnID][0] = cutoff*cutoff; + } + if (var_flag[RMAX][rxnID]) { + double cutoff = input->variable->compute_equal(var_id[RMAX][rxnID]); + cutsq[rxnID][1] = cutoff*cutoff; + } if (rsq >= cutsq[rxnID][1] || rsq <= cutsq[rxnID][0]) continue; if (closeneigh[rxnID] == 0) { @@ -1770,7 +1872,7 @@ int FixBondReact::check_constraints() } else if (constraints[i][1] == ARRHENIUS) { t = get_temperature(); prrhob = constraints[i][3]*pow(t,constraints[i][4])* - exp(-constraints[i][5]/(force->boltz*t)); + exp(-constraints[i][5]/(force->boltz*t)); if (prrhob < rrhandom[(int) constraints[i][2]]->uniform()) return 0; } } @@ -1822,13 +1924,13 @@ double FixBondReact::get_temperature() for (i = 0; i < onemol->natoms; i++) { ilocal = atom->map(glove[i][1]); t += (v[ilocal][0]*v[ilocal][0] + v[ilocal][1]*v[ilocal][1] + - v[ilocal][2]*v[ilocal][2]) * rmass[ilocal]; + v[ilocal][2]*v[ilocal][2]) * rmass[ilocal]; } } else { for (i = 0; i < onemol->natoms; i++) { ilocal = atom->map(glove[i][1]); t += (v[ilocal][0]*v[ilocal][0] + v[ilocal][1]*v[ilocal][1] + - v[ilocal][2]*v[ilocal][2]) * mass[type[ilocal]]; + v[ilocal][2]*v[ilocal][2]) * mass[type[ilocal]]; } } @@ -1857,7 +1959,7 @@ int FixBondReact::get_chirality(double four_coords[12]) for (int i = 0; i < 3; i++) { mean3[i] = (four_coords[i] + four_coords[i+3] + - four_coords[i+6])/3; + four_coords[i+6])/3; vec4[i] = four_coords[i+9] - mean3[i]; } @@ -2005,7 +2107,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn) int ii = reverse_equiv[i][1][myrxn] - 1; for (int j = 0; j < twomol_nxspecial[ii][0]; j++) { if (delete_atoms[equivalences[twomol_xspecial[ii][j]-1][1][myrxn]-1][myrxn] == 0) { - error->all(FLERR,"Bond/react: A deleted atom cannot remain bonded to an atom that is not deleted"); + error->all(FLERR,"Bond/react: A deleted atom cannot remain bonded to an atom that is not deleted"); } } } @@ -2292,19 +2394,19 @@ void FixBondReact::glove_ghostcheck() // 'ghosts of another' indication taken from comm->sendlist int ghostly = 0; - #if !defined(MPI_STUBS) - if (comm->style == 0) { - for (int i = 0; i < onemol->natoms; i++) { - int ilocal = atom->map(glove[i][1]); - if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { - ghostly = 1; - break; - } +#if !defined(MPI_STUBS) + if (comm->style == 0) { + for (int i = 0; i < onemol->natoms; i++) { + int ilocal = atom->map(glove[i][1]); + if (ilocal >= atom->nlocal || localsendlist[ilocal] == 1) { + ghostly = 1; + break; } - } else { - ghostly = 1; } - #endif + } else { + ghostly = 1; + } +#endif if (ghostly == 1) { ghostly_mega_glove[0][ghostly_num_mega] = rxnID; @@ -2378,12 +2480,12 @@ void FixBondReact::ghost_glovecast() // let's send to root, dedup, then broadcast if (me == 0) { MPI_Gatherv(MPI_IN_PLACE, ghostly_num_mega, column, // Note: some values ignored for MPI_IN_PLACE - &(global_mega_glove[0][0]), allncols, allstarts, - column, 0, world); + &(global_mega_glove[0][0]), allncols, allstarts, + column, 0, world); } else { MPI_Gatherv(&(global_mega_glove[0][start]), ghostly_num_mega, column, - &(global_mega_glove[0][0]), allncols, allstarts, - column, 0, world); + &(global_mega_glove[0][0]), allncols, allstarts, + column, 0, world); } if (me == 0) dedup_mega_gloves(1); // global_mega_glove mode @@ -2990,7 +3092,7 @@ void FixBondReact::read(int myrxn) sscanf(line,"%d",&nequivalent); if (nequivalent != onemol->natoms) error->one(FLERR,"Bond/react: Number of equivalences in map file must " - "equal number of atoms in reaction templates"); + "equal number of atoms in reaction templates"); } else if (strstr(line,"customIDs")) sscanf(line,"%d",&ncustom); else if (strstr(line,"deleteIDs")) sscanf(line,"%d",&ndelete); @@ -3183,7 +3285,7 @@ void FixBondReact::Constraints(char *line, int myrxn) tmp[6] = 181.0; // impossible range tmp[7] = 182.0; sscanf(line,"%*s %lg %lg %lg %lg %lg %lg %lg %lg",&tmp[0],&tmp[1], - &tmp[2],&tmp[3],&tmp[4],&tmp[5],&tmp[6],&tmp[7]); + &tmp[2],&tmp[3],&tmp[4],&tmp[5],&tmp[6],&tmp[7]); if (tmp[0] > onemol->natoms || tmp[1] > onemol->natoms || tmp[2] > onemol->natoms || tmp[3] > onemol->natoms) error->one(FLERR,"Bond/react: Invalid template atom ID in map file"); @@ -3411,16 +3513,17 @@ void FixBondReact::unpack_reverse_comm(int n, int *list, double *buf) if (commflag != 1) { for (i = 0; i < n; i++) { j = list[i]; - if (closeneigh[rxnID] != 0) + if (closeneigh[rxnID] != 0) { if (buf[m+1] < distsq[j][1]) { - partner[j] = (tagint) ubuf(buf[m++]).i; + partner[j] = (tagint) ubuf(buf[m++]).i; distsq[j][1] = buf[m++]; } else m += 2; - else + } else { if (buf[m+1] > distsq[j][0]) { partner[j] = (tagint) ubuf(buf[m++]).i; distsq[j][0] = buf[m++]; } else m += 2; + } } } } @@ -3478,9 +3581,9 @@ double FixBondReact::memory_usage() void FixBondReact::print_bb() { - +#if 0 //fix bond/create cargo code. eg nbonds needs to be added - /* + for (int i = 0; i < atom->nlocal; i++) { // printf("TAG " TAGINT_FORMAT ": %d nbonds: ",atom->tag[i],atom->num_bond[i]); for (int j = 0; j < atom->num_bond[i]; j++) { @@ -3513,9 +3616,9 @@ for (int i = 0; i < atom->nlocal; i++) { // printf("TAG " TAGINT_FORMAT ": %d %d %d nspecial: ",atom->tag[i], atom->nspecial[i][0],atom->nspecial[i][1],atom->nspecial[i][2]); for (int j = 0; j < atom->nspecial[i][2]; j++) { - // printf(" " TAGINT_FORMAT,atom->special[i][j]); + printf(" " TAGINT_FORMAT,atom->special[i][j]); } // printf("\n"); } -*/ +#endif } diff --git a/src/USER-REACTION/fix_bond_react.h b/src/USER-REACTION/fix_bond_react.h index 84cb9401f8881cec402946f60af63b7b1cb3a789..722a533bbf91cfd1ec5ac99c5b24666819cb18cb 100644 --- a/src/USER-REACTION/fix_bond_react.h +++ b/src/USER-REACTION/fix_bond_react.h @@ -67,6 +67,7 @@ class FixBondReact : public Fix { int nconstraints; int narrhenius; double **constraints; + int **var_flag,**var_id; // for keyword values with variable inputs int status; int *groupbits; @@ -279,4 +280,12 @@ The number of bonds, angles etc per-atom created by a reaction exceeds the system setting. See the read_data or create_box command for how to specify this value. +E: Bond/react: Variable name does not exist + +Self-explanatory. + +E: Bond/react: Variable is not equal-style + +Self-explanatory. + */ diff --git a/src/USER-UEF/fix_nh_uef.cpp b/src/USER-UEF/fix_nh_uef.cpp index a3a2dc476c1b6253b4da9c4e44318e2ed1c5eb15..80866bbd56f8cb7b787065e55ca6193c985f609e 100644 --- a/src/USER-UEF/fix_nh_uef.cpp +++ b/src/USER-UEF/fix_nh_uef.cpp @@ -163,7 +163,7 @@ FixNHUef::FixNHUef(LAMMPS *lmp, int narg, char **arg) : // flag that I change the box here (in case of nvt) - box_change_shape = 1; + box_change |= BOX_CHANGE_SHAPE; // initialize the UEFBox class which computes the box at each step @@ -244,7 +244,7 @@ void FixNHUef::init() for (int i=0; i < modify->nfix; i++) { if (strcmp(modify->fix[i]->id,id) != 0) - if (modify->fix[i]->box_change_shape != 0) + if ((modify->fix[i]->box_change & BOX_CHANGE_SHAPE) != 0) error->all(FLERR,"Can't use another fix which changes box shape with fix/nvt/npt/uef"); } diff --git a/src/change_box.cpp b/src/change_box.cpp index 98119fb3bf0d9972e763c0f804fa1d4c7de9ff75..7ae49ca776516e6117b53e6539b1c82526cfa150 100644 --- a/src/change_box.cpp +++ b/src/change_box.cpp @@ -46,9 +46,6 @@ void ChangeBox::command(int narg, char **arg) if (domain->box_exist == 0) error->all(FLERR,"Change_box command before simulation box is defined"); if (narg < 2) error->all(FLERR,"Illegal change_box command"); - if (modify->nfix_restart_peratom) - error->all(FLERR,"Cannot change_box after " - "reading restart file with per-atom info"); if (comm->me == 0 && screen) fprintf(screen,"Changing box ...\n"); @@ -174,6 +171,21 @@ void ChangeBox::command(int narg, char **arg) if (nops == 0) error->all(FLERR,"Illegal change_box command"); + // move_atoms = 1 if need to move atoms to new procs after box changes + // anything other than ORTHO or TRICLINIC may cause atom movement + + int move_atoms = 0; + for (int m = 0; m < nops; m++) { + if (ops[m].style != ORTHO || ops[m].style != TRICLINIC) move_atoms = 1; + } + + // error if moving atoms and there is stored per-atom restart state + // disallowed b/c restart per-atom fix info will not move with atoms + + if (move_atoms && modify->nfix_restart_peratom) + error->all(FLERR,"Change_box parameter not allowed after " + "reading restart file with per-atom info"); + // read options from end of input line options(narg-iarg,&arg[iarg]); @@ -350,6 +362,10 @@ void ChangeBox::command(int narg, char **arg) if (domain->triclinic) domain->lamda2x(atom->nlocal); } + // done if don't need to move atoms + + if (!move_atoms) return; + // move atoms back inside simulation box and to new processors // use remap() instead of pbc() // in case box moved a long distance relative to atoms diff --git a/src/compute.cpp b/src/compute.cpp index cc92d2b5d32e34c9dc334599c3d9cd5c7628ce4f..4009396eb0099ad580054ee93096ed978082f6f7 100644 --- a/src/compute.cpp +++ b/src/compute.cpp @@ -102,6 +102,7 @@ Compute::Compute(LAMMPS *lmp, int narg, char **arg) : datamask_modify = ALL_MASK; copymode = 0; + kokkosable = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/compute.h b/src/compute.h index c28af32c26296477ddad286aeca48cbde7b5b8f9..66974bf106450f7036c6936906b14017f0ec75ba 100644 --- a/src/compute.h +++ b/src/compute.h @@ -91,7 +91,7 @@ class Compute : protected Pointers { ExecutionSpace execution_space; unsigned int datamask_read,datamask_modify; - int copymode; + int copymode,kokkosable; Compute(class LAMMPS *, int, char **); virtual ~Compute(); diff --git a/src/compute_orientorder_atom.cpp b/src/compute_orientorder_atom.cpp index 3dafd08a0f67f3928de606012d9b4d0df34f1e7e..f84798e5c307cca2fd546314446f2b65b86dcbd8 100644 --- a/src/compute_orientorder_atom.cpp +++ b/src/compute_orientorder_atom.cpp @@ -61,6 +61,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg wlflag = 0; wlhatflag = 0; qlcompflag = 0; + chunksize = 16384; // specify which orders to request @@ -143,6 +144,13 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg error->all(FLERR,"Illegal compute orientorder/atom command"); cutsq = cutoff*cutoff; iarg += 2; + } else if (strcmp(arg[iarg],"chunksize") == 0) { + if (iarg+2 > narg) + error->all(FLERR,"Illegal compute orientorder/atom command"); + chunksize = force->numeric(FLERR,arg[iarg+1]); + if (chunksize <= 0) + error->all(FLERR,"Illegal compute orientorder/atom command"); + iarg += 2; } else error->all(FLERR,"Illegal compute orientorder/atom command"); } @@ -162,6 +170,8 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg ComputeOrientOrderAtom::~ComputeOrientOrderAtom() { + if (copymode) return; + memory->destroy(qnarray); memory->destroy(distsq); memory->destroy(rlist); diff --git a/src/compute_orientorder_atom.h b/src/compute_orientorder_atom.h index 643875ccd01c805720d8a272daf6141652518216..4e5084bfcd9b37aa773a3c59f05215c26167ac24 100644 --- a/src/compute_orientorder_atom.h +++ b/src/compute_orientorder_atom.h @@ -28,16 +28,16 @@ class ComputeOrientOrderAtom : public Compute { public: ComputeOrientOrderAtom(class LAMMPS *, int, char **); ~ComputeOrientOrderAtom(); - void init(); + virtual void init(); void init_list(int, class NeighList *); - void compute_peratom(); + virtual void compute_peratom(); double memory_usage(); double cutsq; int iqlcomp, qlcomp, qlcompflag, wlflag, wlhatflag; int *qlist; int nqlist; - private: + protected: int nmax,maxneigh,ncol,nnn; class NeighList *list; double *distsq; @@ -59,9 +59,10 @@ class ComputeOrientOrderAtom : public Compute { static const int nmaxfactorial = 167; static const double nfac_table[]; double factorial(int); - void init_clebsch_gordan(); + virtual void init_clebsch_gordan(); double *cglist; // Clebsch-Gordan coeffs int idxcg_max; + int chunksize; }; } diff --git a/src/domain.cpp b/src/domain.cpp index e8946825569abb46ec311fb385f8e9cd353b41a9..e1a9744fde181d1703734577126cfd51ed3c5200 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include "style_region.h" #include "atom.h" #include "atom_vec.h" @@ -133,13 +134,39 @@ void Domain::init() box_change_size = box_change_shape = box_change_domain = 0; + // flags for detecting, if multiple fixes try to change the + // same box size or shape parameter + + int box_change_x=0, box_change_y=0, box_change_z=0; + int box_change_yz=0, box_change_xz=0, box_change_xy=0; + Fix **fixes = modify->fix; + if (nonperiodic == 2) box_change_size = 1; for (int i = 0; i < modify->nfix; i++) { - if (modify->fix[i]->box_change_size) box_change_size = 1; - if (modify->fix[i]->box_change_shape) box_change_shape = 1; - if (modify->fix[i]->box_change_domain) box_change_domain = 1; + if (fixes[i]->box_change & Fix::BOX_CHANGE_SIZE) box_change_size = 1; + if (fixes[i]->box_change & Fix::BOX_CHANGE_SHAPE) box_change_shape = 1; + if (fixes[i]->box_change & Fix::BOX_CHANGE_DOMAIN) box_change_domain = 1; + if (fixes[i]->box_change & Fix::BOX_CHANGE_X) box_change_x++; + if (fixes[i]->box_change & Fix::BOX_CHANGE_Y) box_change_y++; + if (fixes[i]->box_change & Fix::BOX_CHANGE_Z) box_change_z++; + if (fixes[i]->box_change & Fix::BOX_CHANGE_YZ) box_change_yz++; + if (fixes[i]->box_change & Fix::BOX_CHANGE_XZ) box_change_xz++; + if (fixes[i]->box_change & Fix::BOX_CHANGE_XY) box_change_xy++; } + std::string mesg = "Must not have multiple fixes change box parameter "; + +#define CHECK_BOX_FIX_ERROR(par) \ + if (box_change_ ## par > 1) error->all(FLERR,(mesg + #par).c_str()) + + CHECK_BOX_FIX_ERROR(x); + CHECK_BOX_FIX_ERROR(y); + CHECK_BOX_FIX_ERROR(z); + CHECK_BOX_FIX_ERROR(yz); + CHECK_BOX_FIX_ERROR(xz); + CHECK_BOX_FIX_ERROR(xy); +#undef CHECK_BOX_FIX_ERROR + box_change = 0; if (box_change_size || box_change_shape || box_change_domain) box_change = 1; @@ -1847,6 +1874,12 @@ void Domain::set_boundary(int narg, char **arg, int flag) if (boundary[2][0] == 0) zperiodic = 1; else zperiodic = 0; + // record if we changed a periodic boundary to a non-periodic one + int pflag=0; + if ((periodicity[0] && !xperiodic) + || (periodicity[1] && !yperiodic) + || (periodicity[2] && !zperiodic)) pflag = 1; + periodicity[0] = xperiodic; periodicity[1] = yperiodic; periodicity[2] = zperiodic; @@ -1858,6 +1891,24 @@ void Domain::set_boundary(int narg, char **arg, int flag) boundary[1][0] >= 2 || boundary[1][1] >= 2 || boundary[2][0] >= 2 || boundary[2][1] >= 2) nonperiodic = 2; } + if (pflag) { + pflag = 0; + for (int i=0; i < atom->nlocal; ++i) { + int xbox = (atom->image[i] & IMGMASK) - IMGMAX; + int ybox = (atom->image[i] >> IMGBITS & IMGMASK) - IMGMAX; + int zbox = (atom->image[i] >> IMG2BITS) - IMGMAX; + if (!xperiodic) { xbox = 0; pflag = 1; } + if (!yperiodic) { ybox = 0; pflag = 1; } + if (!zperiodic) { zbox = 0; pflag = 1; } + atom->image[i] = ((imageint) (xbox + IMGMAX) & IMGMASK) | + (((imageint) (ybox + IMGMAX) & IMGMASK) << IMGBITS) | + (((imageint) (zbox + IMGMAX) & IMGMASK) << IMG2BITS); + } + int flag_all; + MPI_Allreduce(&flag,&flag_all, 1, MPI_INT, MPI_SUM, world); + if ((flag_all > 0) && (comm->me == 0)) + error->warning(FLERR,"Reset image flags for non-periodic boundary"); + } } /* ---------------------------------------------------------------------- diff --git a/src/domain.h b/src/domain.h index a0bda8ae720e379384006cd27aefd04f48ffc595..0ce31a8b4adbd24c5d9c542410e48fe78050bdfe 100644 --- a/src/domain.h +++ b/src/domain.h @@ -282,6 +282,10 @@ E: Both sides of boundary must be periodic Cannot specify a boundary as periodic only on the lo or hi side. Must be periodic on both sides. +E: Must not have multiple fixes change box parameter ... + +Self-explanatory. + U: Box bounds are invalid The box boundaries specified in the read_data file are invalid. The diff --git a/src/fix.cpp b/src/fix.cpp index d86acf0ae46ba1cb46895393893bab235701993b..9c883a68977d30e900476421e824564a276801e6 100644 --- a/src/fix.cpp +++ b/src/fix.cpp @@ -58,7 +58,7 @@ Fix::Fix(LAMMPS *lmp, int /*narg*/, char **arg) : restart_global = restart_peratom = restart_file = 0; force_reneighbor = 0; - box_change_size = box_change_shape = box_change_domain = 0; + box_change = NO_BOX_CHANGE; thermo_energy = 0; thermo_virial = 0; rigid_flag = 0; diff --git a/src/fix.h b/src/fix.h index bcab6f289ef24e70bd72077186d6155203cdbe95..921778ae9813ac90098165d88f86578145b16fa1 100644 --- a/src/fix.h +++ b/src/fix.h @@ -30,9 +30,14 @@ class Fix : protected Pointers { int restart_file; // 1 if Fix writes own restart file, 0 if not int force_reneighbor; // 1 if Fix forces reneighboring, 0 if not - int box_change_size; // 1 if Fix changes box size, 0 if not - int box_change_shape; // 1 if Fix changes box shape, 0 if not - int box_change_domain; // 1 if Fix changes proc sub-domains, 0 if not + int box_change; // >0 if Fix changes box size, shape, or sub-domains, 0 if not + enum { + NO_BOX_CHANGE = 0, BOX_CHANGE_ANY = 1<<0, BOX_CHANGE_DOMAIN = 1<<1, + BOX_CHANGE_X = 1<<2, BOX_CHANGE_Y = 1<<3, BOX_CHANGE_Z = 1<<4, + BOX_CHANGE_YZ = 1<<5, BOX_CHANGE_XZ = 1<<6, BOX_CHANGE_XY = 1<<7, + BOX_CHANGE_SIZE = BOX_CHANGE_X | BOX_CHANGE_Y | BOX_CHANGE_Z, + BOX_CHANGE_SHAPE = BOX_CHANGE_YZ | BOX_CHANGE_XZ | BOX_CHANGE_XY + }; bigint next_reneighbor; // next timestep to force a reneighboring int thermo_energy; // 1 if fix_modify enabled ThEng, 0 if not diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp index 83973efab7d18a239ee95e2c1a4aebef590f2384..3695b9f0dd59d0da7c515612a72c17f9f48bdb28 100644 --- a/src/fix_balance.cpp +++ b/src/fix_balance.cpp @@ -39,7 +39,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : { if (narg < 6) error->all(FLERR,"Illegal fix balance command"); - box_change_domain = 1; + box_change = BOX_CHANGE_DOMAIN; scalar_flag = 1; extscalar = 0; vector_flag = 1; diff --git a/src/fix_box_relax.cpp b/src/fix_box_relax.cpp index c19ea918b4617de95a79571b712e9af09b6e4b6f..8d6111c0a04b8f8bb19b5870430382bee0216f1e 100644 --- a/src/fix_box_relax.cpp +++ b/src/fix_box_relax.cpp @@ -218,8 +218,13 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) : } else error->all(FLERR,"Illegal fix box/relax command"); } - if (p_flag[0] || p_flag[1] || p_flag[2]) box_change_size = 1; - if (p_flag[3] || p_flag[4] || p_flag[5]) box_change_shape = 1; + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + if (p_flag[3]) box_change |= BOX_CHANGE_YZ; + if (p_flag[4]) box_change |= BOX_CHANGE_XZ; + if (p_flag[5]) box_change |= BOX_CHANGE_XY; + if (allremap == 0) restart_pbc = 1; // error checks diff --git a/src/fix_deform.cpp b/src/fix_deform.cpp index 727065dafb89a3f7c0720111e5b8f941455b259d..f55ae53c1a85861dba6bda4dc2489fff343abd2c 100644 --- a/src/fix_deform.cpp +++ b/src/fix_deform.cpp @@ -211,8 +211,12 @@ rfix(NULL), irregular(NULL), set(NULL) if (set[i].style == NONE) dimflag[i] = 0; else dimflag[i] = 1; - if (dimflag[0] || dimflag[1] || dimflag[2]) box_change_size = 1; - if (dimflag[3] || dimflag[4] || dimflag[5]) box_change_shape = 1; + if (dimflag[0]) box_change |= BOX_CHANGE_X; + if (dimflag[1]) box_change |= BOX_CHANGE_Y; + if (dimflag[2]) box_change |= BOX_CHANGE_Z; + if (dimflag[3]) box_change |= BOX_CHANGE_YZ; + if (dimflag[4]) box_change |= BOX_CHANGE_XZ; + if (dimflag[5]) box_change |= BOX_CHANGE_XY; // no tensile deformation on shrink-wrapped dims // b/c shrink wrap will change box-length diff --git a/src/fix_heat.cpp b/src/fix_heat.cpp index 67d445df9252a857c681f35880cd4274a4b63e65..65ca47c46d89c196dbf1a8c69212bab668249f19 100644 --- a/src/fix_heat.cpp +++ b/src/fix_heat.cpp @@ -300,6 +300,7 @@ double FixHeat::compute_scalar() { double average_scale = scale; if (hstyle == ATOM) { + if (!vscale) return 1.0; double scale_sum = 0.0; int ncount = 0; int *mask = atom->mask; diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp index bb3fe7559cbe960599dbc30556c840942032cce4..e397e3367a539c3a513fa7547e9e5b612386157e 100644 --- a/src/fix_nh.cpp +++ b/src/fix_nh.cpp @@ -476,8 +476,12 @@ FixNH::FixNH(LAMMPS *lmp, int narg, char **arg) : if (p_flag[i]) pstat_flag = 1; if (pstat_flag) { - if (p_flag[0] || p_flag[1] || p_flag[2]) box_change_size = 1; - if (p_flag[3] || p_flag[4] || p_flag[5]) box_change_shape = 1; + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + if (p_flag[3]) box_change |= BOX_CHANGE_YZ; + if (p_flag[4]) box_change |= BOX_CHANGE_XZ; + if (p_flag[5]) box_change |= BOX_CHANGE_XY; no_change_box = 1; if (allremap == 0) restart_pbc = 1; diff --git a/src/fix_press_berendsen.cpp b/src/fix_press_berendsen.cpp index c090c554e2b6d19305dcffc9facab9ae84e4cd4e..184f02c440d0414d2378df6cce1525f79ca68a6e 100644 --- a/src/fix_press_berendsen.cpp +++ b/src/fix_press_berendsen.cpp @@ -40,8 +40,6 @@ FixPressBerendsen::FixPressBerendsen(LAMMPS *lmp, int narg, char **arg) : { if (narg < 5) error->all(FLERR,"Illegal fix press/berendsen command"); - box_change_size = 1; - // Berendsen barostat applied every step nevery = 1; @@ -204,6 +202,10 @@ FixPressBerendsen::FixPressBerendsen(LAMMPS *lmp, int narg, char **arg) : (p_flag[2] && p_period[2] <= 0.0)) error->all(FLERR,"Fix press/berendsen damping parameters must be > 0.0"); + if (p_flag[0]) box_change |= BOX_CHANGE_X; + if (p_flag[1]) box_change |= BOX_CHANGE_Y; + if (p_flag[2]) box_change |= BOX_CHANGE_Z; + // pstyle = ISO if XYZ coupling or XY coupling in 2d -> 1 dof // else pstyle = ANISO -> 3 dof diff --git a/src/fix_restrain.cpp b/src/fix_restrain.cpp index 5a0d4fb66241f4c955139e9eb976f7ea3b267921..f1032c1bc1d3f88eaf44f3f1b74a246874a67a72 100644 --- a/src/fix_restrain.cpp +++ b/src/fix_restrain.cpp @@ -34,7 +34,7 @@ using namespace LAMMPS_NS; using namespace FixConst; using namespace MathConst; -enum{BOND,ANGLE,DIHEDRAL}; +enum{BOND,LBOUND,ANGLE,DIHEDRAL}; #define TOLERANCE 0.05 #define SMALL 0.001 @@ -45,7 +45,7 @@ enum{BOND,ANGLE,DIHEDRAL}; FixRestrain::FixRestrain(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), rstyle(NULL), mult(NULL), ids(NULL), kstart(NULL), kstop(NULL), target(NULL), - cos_target(NULL), sin_target(NULL) + deqstart(NULL), deqstop(NULL), cos_target(NULL), sin_target(NULL) { if (narg < 4) error->all(FLERR,"Illegal fix restrain command"); @@ -72,6 +72,8 @@ FixRestrain::FixRestrain(LAMMPS *lmp, int narg, char **arg) : memory->grow(kstart,maxrestrain,"restrain:kstart"); memory->grow(kstop,maxrestrain,"restrain:kstop"); memory->grow(target,maxrestrain,"restrain:target"); + memory->grow(deqstart,maxrestrain,"restrain:deqstart"); + memory->grow(deqstop,maxrestrain,"restrain:deqstop"); memory->grow(cos_target,maxrestrain,"restrain:cos_target"); memory->grow(sin_target,maxrestrain,"restrain:sin_target"); } @@ -83,8 +85,29 @@ FixRestrain::FixRestrain(LAMMPS *lmp, int narg, char **arg) : ids[nrestrain][1] = force->inumeric(FLERR,arg[iarg+2]); kstart[nrestrain] = force->numeric(FLERR,arg[iarg+3]); kstop[nrestrain] = force->numeric(FLERR,arg[iarg+4]); - target[nrestrain] = force->numeric(FLERR,arg[iarg+5]); - iarg += 6; + deqstart[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + if (iarg+6 == narg) { + deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + iarg += 6; + } else { + deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+6]); + iarg += 7; + } + } else if (strcmp(arg[iarg],"lbound") == 0) { + if (iarg+6 > narg) error->all(FLERR,"Illegal fix restrain command"); + rstyle[nrestrain] = LBOUND; + ids[nrestrain][0] = force->inumeric(FLERR,arg[iarg+1]); + ids[nrestrain][1] = force->inumeric(FLERR,arg[iarg+2]); + kstart[nrestrain] = force->numeric(FLERR,arg[iarg+3]); + kstop[nrestrain] = force->numeric(FLERR,arg[iarg+4]); + deqstart[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + if (iarg+6 == narg) { + deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+5]); + iarg += 6; + } else { + deqstop[nrestrain] = force->numeric(FLERR,arg[iarg+6]); + iarg += 7; + } } else if (strcmp(arg[iarg],"angle") == 0) { if (iarg+7 > narg) error->all(FLERR,"Illegal fix restrain command"); rstyle[nrestrain] = ANGLE; @@ -139,6 +162,8 @@ FixRestrain::~FixRestrain() memory->destroy(kstart); memory->destroy(kstop); memory->destroy(target); + memory->destroy(deqstart); + memory->destroy(deqstop); memory->destroy(cos_target); memory->destroy(sin_target); } @@ -192,11 +217,13 @@ void FixRestrain::post_force(int /*vflag*/) energy = 0.0; ebond = 0.0; + elbound = 0.0; eangle = 0.0; edihed = 0.0; for (int m = 0; m < nrestrain; m++) if (rstyle[m] == BOND) restrain_bond(m); + else if (rstyle[m] == LBOUND) restrain_lbound(m); else if (rstyle[m] == ANGLE) restrain_angle(m); else if (rstyle[m] == DIHEDRAL) restrain_dihedral(m); } @@ -233,6 +260,7 @@ void FixRestrain::restrain_bond(int m) double delta = update->ntimestep - update->beginstep; if (delta != 0.0) delta /= update->endstep - update->beginstep; double k = kstart[m] + delta * (kstop[m] - kstart[m]); + double deq = deqstart[m] + delta * (deqstop[m] - deqstart[m]); i1 = atom->map(ids[m][0]); i2 = atom->map(ids[m][1]); @@ -269,7 +297,7 @@ void FixRestrain::restrain_bond(int m) rsq = delx*delx + dely*dely + delz*delz; r = sqrt(rsq); - dr = r - target[m]; + dr = r - deq; rk = k * dr; // force & energy @@ -277,7 +305,7 @@ void FixRestrain::restrain_bond(int m) if (r > 0.0) fbond = -2.0*rk/r; else fbond = 0.0; - ebond += rk*dr; + ebond += rk*dr; energy += rk*dr; // apply force to each of 2 atoms @@ -295,6 +323,94 @@ void FixRestrain::restrain_bond(int m) } } +/* ---------------------------------------------------------------------- + apply harmonic lower-bound bond restraints +---------------------------------------------------------------------- */ + +void FixRestrain::restrain_lbound(int m) +{ + int i1,i2; + double delx,dely,delz,fbond; + double rsq,r,dr,rk; + + double **x = atom->x; + double **f = atom->f; + int nlocal = atom->nlocal; + int newton_bond = force->newton_bond; + + double delta = update->ntimestep - update->beginstep; + if (delta != 0.0) delta /= update->endstep - update->beginstep; + double k = kstart[m] + delta * (kstop[m] - kstart[m]); + double deq = deqstart[m] + delta * (deqstop[m] - deqstart[m]); + + i1 = atom->map(ids[m][0]); + i2 = atom->map(ids[m][1]); + + // newton_bond on: only processor owning i2 computes restraint + // newton_bond off: only processors owning either of i1,i2 computes restraint + + if (newton_bond) { + if (i2 == -1 || i2 >= nlocal) return; + if (i1 == -1) { + char str[128]; + sprintf(str, + "Restrain atoms %d %d missing on proc %d at step " BIGINT_FORMAT, + ids[m][0],ids[m][1], + comm->me,update->ntimestep); + error->one(FLERR,str); + } + } else { + if ((i1 == -1 || i1 >= nlocal) && (i2 == -1 || i2 >= nlocal)) return; + if (i1 == -1 || i2 == -1) { + char str[128]; + sprintf(str, + "Restrain atoms %d %d missing on proc %d at step " BIGINT_FORMAT, + ids[m][0],ids[m][1], + comm->me,update->ntimestep); + error->one(FLERR,str); + } + } + + delx = x[i1][0] - x[i2][0]; + dely = x[i1][1] - x[i2][1]; + delz = x[i1][2] - x[i2][2]; + domain->minimum_image(delx,dely,delz); + + rsq = delx*delx + dely*dely + delz*delz; + r = sqrt(rsq); + dr = r - deq; + rk = k * dr; + + // force & energy + + if (dr < 0) { + if (r > 0.0) fbond = -2.0*rk/r; + else fbond = 0.0; + + elbound += rk*dr; + energy += rk*dr; + } else { + fbond = 0.0; + + elbound += 0.0; + energy += 0.0; + } + + // apply force to each of 2 atoms + + if (newton_bond || i1 < nlocal) { + f[i1][0] += delx*fbond; + f[i1][1] += dely*fbond; + f[i1][2] += delz*fbond; + } + + if (newton_bond || i2 < nlocal) { + f[i2][0] -= delx*fbond; + f[i2][1] -= dely*fbond; + f[i2][2] -= delz*fbond; + } +} + /* ---------------------------------------------------------------------- apply harmonic angle restraints ---------------------------------------------------------------------- */ @@ -655,9 +771,12 @@ double FixRestrain::compute_vector(int n) MPI_Allreduce(&ebond,&ebond_all,1,MPI_DOUBLE,MPI_SUM,world); return ebond_all; } else if (n == 1) { + MPI_Allreduce(&elbound,&elbound_all,1,MPI_DOUBLE,MPI_SUM,world); + return elbound_all; + } else if (n == 3) { MPI_Allreduce(&eangle,&eangle_all,1,MPI_DOUBLE,MPI_SUM,world); return eangle_all; - } else if (n == 2) { + } else if (n == 4) { MPI_Allreduce(&edihed,&edihed_all,1,MPI_DOUBLE,MPI_SUM,world); return edihed_all; } else { diff --git a/src/fix_restrain.h b/src/fix_restrain.h index 4572905d46e1ae298d876fe91fb9c94f05e05d09..3497b7daf5a0a83eb208a5f3739c8602d528cb84 100644 --- a/src/fix_restrain.h +++ b/src/fix_restrain.h @@ -44,14 +44,16 @@ class FixRestrain : public Fix { int *rstyle; int *mult; int **ids; - double *kstart,*kstop,*target; + double *kstart,*kstop,*deqstart,*deqstop,*target; double *cos_target,*sin_target; double energy,energy_all; double ebond,ebond_all; + double elbound,elbound_all; double eangle,eangle_all; double edihed,edihed_all; void restrain_bond(int); + void restrain_lbound(int); void restrain_angle(int); void restrain_dihedral(int); }; diff --git a/src/hashlittle.h b/src/hashlittle.h index 75380d366b0783f770ef5e6bed932e9f3222b6f4..aafde922b7580af70a1ff9b5e1764809cb8e18e5 100644 --- a/src/hashlittle.h +++ b/src/hashlittle.h @@ -6,7 +6,7 @@ #define LMP_HASHLITTLE_H #include -#include +#include namespace LAMMPS_NS { uint32_t hashlittle(const void *key, size_t length, uint32_t); diff --git a/src/info.cpp b/src/info.cpp index d6b5c508aa359686387923da628129784e64b6f1..9cb6528f7db4a5fda13d40a0dd9342cdf2ba42a2 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -53,7 +53,7 @@ #ifdef _WIN32 #define PSAPI_VERSION 1 #include -#include // requires C++-11 +#include #include #else #include @@ -1203,7 +1203,8 @@ char *Info::get_compiler_info() #if __clang__ snprintf(buf,_INFOBUF_SIZE,"Clang C++ %s", __VERSION__); #elif __INTEL_COMPILER - snprintf(buf,_INFOBUF_SIZE,"Intel C++ %s", __VERSION__); + double version = static_cast(__INTEL_COMPILER)*0.01; + snprintf(buf,_INFOBUF_SIZE,"Intel C++ %5.2f.%d / %s", version, __INTEL_COMPILER_UPDATE, __VERSION__); #elif __GNUC__ snprintf(buf,_INFOBUF_SIZE,"GNU C++ %s", __VERSION__); #else diff --git a/src/math_special.cpp b/src/math_special.cpp index d4abc36f25d9e665ac9fd11cb340ae7c3928adbd..c8aa2489109120d3cb8928248607f1fd7d7fc122 100644 --- a/src/math_special.cpp +++ b/src/math_special.cpp @@ -1,6 +1,6 @@ #include "math_special.h" #include -#include // IWYU pragma: keep +#include // IWYU pragma: keep using namespace LAMMPS_NS; diff --git a/src/min.cpp b/src/min.cpp index f8ed11375c3207a903f2a4bdeaf8cde439be0e06..4c20fdbf047aeeace6c55b8970672c128a0c67ce 100644 --- a/src/min.cpp +++ b/src/min.cpp @@ -341,7 +341,7 @@ void Min::setup(int flag) einitial = ecurrent; fnorm2_init = sqrt(fnorm_sqr()); - fnorminf_init = fnorm_inf(); + fnorminf_init = sqrt(fnorm_inf()); } /* ---------------------------------------------------------------------- @@ -422,7 +422,7 @@ void Min::setup_minimal(int flag) einitial = ecurrent; fnorm2_init = sqrt(fnorm_sqr()); - fnorminf_init = fnorm_inf(); + fnorminf_init = sqrt(fnorm_inf()); } /* ---------------------------------------------------------------------- @@ -477,7 +477,7 @@ void Min::cleanup() efinal = ecurrent; fnorm2_final = sqrt(fnorm_sqr()); - fnorminf_final = fnorm_inf(); + fnorminf_final = sqrt(fnorm_inf()); // reset reneighboring criteria @@ -902,13 +902,13 @@ double Min::fnorm_inf() double local_norm_inf = 0.0; for (i = 0; i < nvec; i++) - local_norm_inf = MAX(fabs(fvec[i]),local_norm_inf); + local_norm_inf = MAX(fvec[i]*fvec[i],local_norm_inf); if (nextra_atom) { for (int m = 0; m < nextra_atom; m++) { fatom = fextra_atom[m]; n = extra_nlen[m]; for (i = 0; i < n; i++) - local_norm_inf = MAX(fabs(fatom[i]),local_norm_inf); + local_norm_inf = MAX(fatom[i]*fatom[i],local_norm_inf); } } @@ -917,7 +917,7 @@ double Min::fnorm_inf() if (nextra_global) for (i = 0; i < nextra_global; i++) - norm_inf = MAX(fabs(fextra[i]),norm_inf); + norm_inf = MAX(fextra[i]*fextra[i],norm_inf); return norm_inf; } diff --git a/src/neigh_list.cpp b/src/neigh_list.cpp index 1c53b2f7a46e61ed3599f58ddc4796f1d1a58611..c01f8ca5952a44105d9db0a949ac05dd2fb99f78 100644 --- a/src/neigh_list.cpp +++ b/src/neigh_list.cpp @@ -80,6 +80,7 @@ NeighList::NeighList(LAMMPS *lmp) : Pointers(lmp) // Kokkos package kokkos = 0; + kk2cpu = 0; execution_space = Host; // USER-DPD package @@ -143,8 +144,11 @@ void NeighList::post_constructor(NeighRequest *nq) respainner = nq->respainner; copy = nq->copy; - if (nq->copy) + if (nq->copy) { listcopy = neighbor->lists[nq->copylist]; + if (listcopy->kokkos && !this->kokkos) + kk2cpu = 1; + } if (nq->skip) { listskip = neighbor->lists[nq->skiplist]; diff --git a/src/neigh_list.h b/src/neigh_list.h index 146a01e7b56f7797c8176974168ff8a15bd2a49b..501188a72439a9ec3f317ef27de3632dfb86507c 100644 --- a/src/neigh_list.h +++ b/src/neigh_list.h @@ -42,6 +42,7 @@ class NeighList : protected Pointers { int respamiddle; // 1 if there is also a rRespa middle list int respainner; // 1 if there is also a rRespa inner list int copy; // 1 if this list is copied from another list + int kk2cpu; // 1 if this list is copied from Kokkos to CPU int copymode; // 1 if this is a Kokkos on-device copy // data structs to store neighbor pairs I,J and associated values diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 3d1f37a03b1a30373093cf328abff2c9dc1fede3..5783c24d2d88c921efcbfb30e6274e6d8d3061a0 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -849,7 +849,8 @@ int Neighbor::init_pair() // allocate initial pages for each list, except if copy flag set for (i = 0; i < nlist; i++) { - if (lists[i]->copy) continue; + if (lists[i]->copy && !lists[i]->kk2cpu) + continue; lists[i]->setup_pages(pgsize,oneatom); } @@ -860,8 +861,10 @@ int Neighbor::init_pair() // also Kokkos list initialization int maxatom = atom->nmax; - for (i = 0; i < nlist; i++) - if (neigh_pair[i] && !lists[i]->copy) lists[i]->grow(maxatom,maxatom); + for (i = 0; i < nlist; i++) { + if (neigh_pair[i] && (!lists[i]->copy || lists[i]->kk2cpu)) + lists[i]->grow(maxatom,maxatom); + } // plist = indices of perpetual NPair classes // perpetual = non-occasional, re-built at every reneighboring @@ -1257,8 +1260,8 @@ void Neighbor::morph_copy() if (irq->history != jrq->history) continue; if (irq->bond != jrq->bond) continue; if (irq->intel != jrq->intel) continue; - if (irq->kokkos_host != jrq->kokkos_host) continue; - if (irq->kokkos_device != jrq->kokkos_device) continue; + if (irq->kokkos_host && !jrq->kokkos_host) continue; + if (irq->kokkos_device && !jrq->kokkos_device) continue; if (irq->ssa != jrq->ssa) continue; if (irq->cut != jrq->cut) continue; if (irq->cutoff != jrq->cutoff) continue; @@ -1789,8 +1792,12 @@ int Neighbor::choose_pair(NeighRequest *rq) if (rq->copy) { if (!(mask & NP_COPY)) continue; - if (!rq->kokkos_device != !(mask & NP_KOKKOS_DEVICE)) continue; - if (!rq->kokkos_host != !(mask & NP_KOKKOS_HOST)) continue; + if (rq->kokkos_device || rq->kokkos_host) { + if (!rq->kokkos_device != !(mask & NP_KOKKOS_DEVICE)) continue; + if (!rq->kokkos_host != !(mask & NP_KOKKOS_HOST)) continue; + } + if (!requests[rq->copylist]->kokkos_device != !(mask & NP_KOKKOS_DEVICE)) continue; + if (!requests[rq->copylist]->kokkos_host != !(mask & NP_KOKKOS_HOST)) continue; return i+1; } @@ -2102,7 +2109,8 @@ void Neighbor::build(int topoflag) for (i = 0; i < npair_perpetual; i++) { m = plist[i]; - if (!lists[m]->copy) lists[m]->grow(nlocal,nall); + if (!lists[i]->copy || lists[i]->kk2cpu) + lists[m]->grow(nlocal,nall); neigh_pair[m]->build_setup(); neigh_pair[m]->build(lists[m]); } @@ -2191,7 +2199,8 @@ void Neighbor::build_one(class NeighList *mylist, int preflag) // build the list - if (!mylist->copy) mylist->grow(atom->nlocal,atom->nlocal+atom->nghost); + if (!mylist->copy || mylist->kk2cpu) + mylist->grow(atom->nlocal,atom->nlocal+atom->nghost); np->build_setup(); np->build(mylist); } diff --git a/src/omp_compat.h b/src/omp_compat.h new file mode 100644 index 0000000000000000000000000000000000000000..d80d6f6f7f98845028a5010bce67b3021f5b16a2 --- /dev/null +++ b/src/omp_compat.h @@ -0,0 +1,35 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2020) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +// There is no way to annotate an OpenMP construct that +// (a) accesses const variables, (b) has default(none), +// and (c) is valid in both OpenMP 3.0 and 4.0. +// +// (in OpenMP 3.0, the const variables have a predetermined +// sharing attribute and are *forbidden* from being declared +// in the omp construct. In OpenMP 4.0, this predetermined +// sharing attribute is removed, and thus they are *required* +// to be declared in the omp construct) +// +// To date, most compilers still accept the OpenMP 3.0 form, +// so this is what LAMMPS primarily uses. For those compilers +// that strictly implement OpenMP 4.0 (such as GCC 9.0 and later +// or Clang 10.0 and later), we give up default(none). +#if LAMMPS_OMP_COMPAT == 4 +# define LMP_SHARED(...) +# define LMP_DEFAULT_NONE default(shared) +#else +# define LMP_SHARED(...) shared(__VA_ARGS__) +# define LMP_DEFAULT_NONE default(none) +#endif + diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index 4d8d6f69023e2f3414d264f97a519a2b0023a0ab..bbaa31181983af1517ec69929b21424b0f5a3a9e 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -1007,7 +1007,7 @@ void *PairHybrid::extract(const char *str, int &dim) for (int m = 0; m < nstyles; m++) { ptr = styles[m]->extract(str,dim); if (ptr && strcmp(str,"cut_coul") == 0) { - if (cutptr && dim != couldim) + if (couldim != -1 && dim != couldim) error->all(FLERR, "Coulomb styles of pair hybrid sub-styles do not match"); double *p_newvalue = (double *) ptr; diff --git a/src/replicate.cpp b/src/replicate.cpp index b3baf47c165740614c2c456df8d6735abf0ab02f..96125d4fe22ac5ee92f0cb5647ba9aeca5325d90 100644 --- a/src/replicate.cpp +++ b/src/replicate.cpp @@ -196,6 +196,12 @@ void Replicate::command(int narg, char **arg) atom->dihedral_per_atom = old->dihedral_per_atom; atom->improper_per_atom = old->improper_per_atom; + atom->extra_bond_per_atom = old->extra_bond_per_atom; + atom->extra_angle_per_atom = old->extra_angle_per_atom; + atom->extra_dihedral_per_atom = old->extra_dihedral_per_atom; + atom->extra_improper_per_atom = old->extra_improper_per_atom; + atom->maxspecial = old->maxspecial; + // store old simulation box int triclinic = domain->triclinic; diff --git a/src/timer.cpp b/src/timer.cpp index 0a5e56ab35b1c6e6932f1f994e6144ef9dc5d766..41a0166a8980d54b4de5902861811006b78f825c 100644 --- a/src/timer.cpp +++ b/src/timer.cpp @@ -21,7 +21,7 @@ #ifdef _WIN32 #include -#include // requires C++-11 +#include #else #include #include diff --git a/src/version.h b/src/version.h index 774a0a4b966a093f10c7a4460f2a15bc44a52f0f..65a0ca8e7d4df46e130a0a7b25bc492fe927ee5d 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define LAMMPS_VERSION "19 Mar 2020" +#define LAMMPS_VERSION "15 Apr 2020" diff --git a/tools/singularity/README.md b/tools/singularity/README.md index 9bd0c2fdcc134eb123f7587d21352feaa4fae73c..abef8b28866e445a646e4c4ada6be3814e332db6 100644 --- a/tools/singularity/README.md +++ b/tools/singularity/README.md @@ -49,8 +49,11 @@ make | centos7.def | CentOS 7.x with EPEL enabled, no LaTeX | | centos8.def | CentOS 8.x with EPEL enabled | | fedora30_mingw.def | Fedora 30 with MinGW cross-compiler toolchain | +| fedora32_mingw.def | Fedora 32 with MinGW cross-compiler toolchain | | ubuntu16.04.def | Ubuntu 16.04LTS with MPI == OpenMPI, no LaTeX | | ubuntu18.04.def | Ubuntu 18.04LTS with MPI == OpenMPI | | ubuntu18.04_amd_rocm.def | Ubuntu 18.04LTS with AMD ROCm toolkit | +| ubuntu18.04_gpu.def | Ubuntu 18.04LTS with -"- plus Nvidia CUDA 10.2 | | ubuntu18.04_nvidia.def | Ubuntu 18.04LTS with Nvidia CUDA 10.2 toolkit | | ubuntu18.04_intel_opencl.def | Ubuntu 18.04LTS with Intel OpenCL runtime | +| ubuntu20.04.def | Ubuntu 20.04LTS with MPI == OpenMPI | diff --git a/tools/singularity/centos7.def b/tools/singularity/centos7.def index e1ae6e6373bcc8cf965b12e0c57d60594845fb47..028823bc497675414f28f9a3136475b0ccefeb47 100644 --- a/tools/singularity/centos7.def +++ b/tools/singularity/centos7.def @@ -6,13 +6,17 @@ From: centos:7 yum -y update yum -y install vim-enhanced \ ccache gcc-c++ gcc-gfortran clang gdb valgrind-openmpi \ - make cmake cmake3 ninja-build patch which file git \ + make cmake cmake3 ninja-build patch which file git Lmod \ libpng-devel libjpeg-devel openmpi-devel mpich-devel python-devel \ python-virtualenv fftw-devel voro++-devel eigen3-devel gsl-devel openblas-devel enchant %environment LC_ALL=C export LC_ALL + unset LOADEDMODULES + . /etc/profile.d/z00_lmod.sh + module purge + module load mpi %labels Author akohlmey diff --git a/tools/singularity/centos8.def b/tools/singularity/centos8.def index 77a8964abb55caa163e9cbe371bf0377b621fee0..fff96c5c4aa6fef3701b9547ec9c2992abe67fb8 100644 --- a/tools/singularity/centos8.def +++ b/tools/singularity/centos8.def @@ -19,6 +19,10 @@ From: centos:8 %environment LC_ALL=C export LC_ALL + unset LOADEDMODULES + . /etc/profile.d/modules.sh + module purge + module load mpi %labels Author akohlmey diff --git a/tools/singularity/fedora30_mingw.def b/tools/singularity/fedora30_mingw.def index 2df658676c63097949194df93242b9d3d043489e..ab9ea7b7389b934e508ca6a0bbf54c339e776679 100644 --- a/tools/singularity/fedora30_mingw.def +++ b/tools/singularity/fedora30_mingw.def @@ -3,9 +3,11 @@ From: fedora:30 %post dnf -y update - dnf -y install vim-enhanced git file make cmake patch which file \ - dos2unix findutils rsync \ - ccache gcc-c++ gdb valgrind eigen3-devel \ + dnf -y install vim-enhanced git file make cmake patch which file Lmod \ + ninja-build clang libomp-devel libubsan libasan libtsan \ + dos2unix findutils rsync python-devel libjpeg-devel libpng-devel \ + ccache gcc-c++ gcc-gfortran gdb valgrind eigen3-devel openblas-devel \ + openmpi-devel mpich-devel fftw-devel voro++-devel gsl-devel \ mingw-filesystem-base mingw32-nsis mingw-binutils-generic \ mingw32-filesystem mingw32-pkg-config \ mingw64-filesystem mingw64-pkg-config \ @@ -36,6 +38,12 @@ From: fedora:30 %environment LC_ALL=C export LC_ALL + # we need to reset any module variables + # inherited from the host. + unset LOADEDMODULES + . /etc/profile.d/modules.sh + module purge + module load mpi %labels Author akohlmey diff --git a/tools/singularity/fedora32_mingw.def b/tools/singularity/fedora32_mingw.def new file mode 100644 index 0000000000000000000000000000000000000000..3f4ded6298ddfb2020453c97b0d71b4a4edbd8ae --- /dev/null +++ b/tools/singularity/fedora32_mingw.def @@ -0,0 +1,49 @@ +BootStrap: docker +From: fedora:32 + +%post + dnf -y update + dnf -y install vim-enhanced git file make cmake patch which file Lmod \ + ninja-build clang libomp-devel libubsan libasan libtsan \ + dos2unix findutils rsync python-devel libjpeg-devel libpng-devel \ + ccache gcc-c++ gcc-gfortran gdb valgrind eigen3-devel openblas-devel \ + openmpi-devel mpich-devel fftw-devel voro++-devel gsl-devel \ + mingw-filesystem-base mingw32-nsis mingw-binutils-generic \ + mingw32-filesystem mingw32-pkg-config \ + mingw64-filesystem mingw64-pkg-config \ + mingw32-crt mingw32-headers mingw32-binutils \ + mingw64-crt mingw64-headers mingw64-binutils \ + mingw32-cpp mingw32-gcc mingw32-gcc-gfortran mingw32-gcc-c++ \ + mingw64-cpp mingw64-gcc mingw64-gcc-gfortran mingw64-gcc-c++ \ + mingw32-libgomp mingw64-libgomp \ + mingw32-winpthreads mingw64-winpthreads \ + mingw32-winpthreads-static mingw64-winpthreads-static \ + mingw32-eigen3 mingw64-eigen3 \ + mingw32-libjpeg-turbo mingw64-libjpeg-turbo \ + mingw32-libjpeg-turbo-static mingw64-libjpeg-turbo-static \ + mingw32-libpng mingw64-libpng \ + mingw32-libpng-static mingw64-libpng-static \ + mingw32-zlib mingw64-zlib \ + mingw32-zlib-static mingw64-zlib-static \ + mingw32-expat mingw64-expat \ + mingw64-expat-static mingw32-expat-static \ + mingw32-sqlite-static mingw64-sqlite-static \ + enchant python3-virtualenv doxygen \ + texlive-latex-fonts texlive-pslatex texlive-collection-latexrecommended \ + texlive-latex texlive-latexconfig doxygen-latex texlive-collection-latex \ + texlive-latex-bin texlive-lualatex-math texlive-fncychap texlive-tabulary \ + texlive-framed texlive-wrapfig texlive-upquote texlive-capt-of \ + texlive-needspace texlive-titlesec texlive-anysize texlive-dvipng + +%environment + LC_ALL=C + export LC_ALL + # we need to reset any module variables + # inherited from the host. + unset LOADEDMODULES + . /etc/profile.d/modules.sh + module purge + module load mpi + +%labels + Author akohlmey diff --git a/tools/singularity/ubuntu16.04.def b/tools/singularity/ubuntu16.04.def index b6833707a285091537268d03e6d6a47093145e24..ea661cf0838ef4ffe3b9c1d9afbfed0f453f41e3 100644 --- a/tools/singularity/ubuntu16.04.def +++ b/tools/singularity/ubuntu16.04.def @@ -8,7 +8,7 @@ From: ubuntu:16.04 apt-get install --no-install-recommends -y \ bc build-essential curl doxygen vim-nox wget \ make cmake cmake-curses-gui ninja-build git \ - rsync ssh \ + rsync ssh less \ ccache gcc g++ gfortran \ mpi-default-bin mpi-default-dev \ libfftw3-dev libjpeg-dev libpng12-dev libblas-dev liblapack-dev \ diff --git a/tools/singularity/ubuntu18.04.def b/tools/singularity/ubuntu18.04.def index 4285f8d3a4b3ff57342dcb7040f84567aa72d6bd..31c14f6830f91d18aee5672a9dcc985fccfa10c1 100644 --- a/tools/singularity/ubuntu18.04.def +++ b/tools/singularity/ubuntu18.04.def @@ -20,15 +20,19 @@ From: ubuntu:18.04 gfortran \ git \ hdf5-tools \ + less \ libblas-dev \ libeigen3-dev \ libenchant-dev \ libfftw3-dev \ libgsl-dev \ libhdf5-serial-dev \ + libhwloc-dev \ libjpeg-dev \ liblapack-dev \ + libomp-dev \ libopenblas-dev \ + libnuma-dev \ libpng-dev \ libproj-dev \ libvtk6-dev \ diff --git a/tools/singularity/ubuntu18.04_amd_rocm.def b/tools/singularity/ubuntu18.04_amd_rocm.def index f653e651303bceef258378fce961600c947b8aac..ffb609a5c49d7ca2be83e5992d382c67fc2b9f64 100644 --- a/tools/singularity/ubuntu18.04_amd_rocm.def +++ b/tools/singularity/ubuntu18.04_amd_rocm.def @@ -24,14 +24,18 @@ From: rocm/dev-ubuntu-18.04 gfortran \ git \ hdf5-tools \ + kmod \ + less \ libblas-dev \ libeigen3-dev \ libenchant-dev \ libfftw3-dev \ libgsl-dev \ libhdf5-serial-dev \ + libhwloc-dev \ libjpeg-dev \ liblapack-dev \ + libomp-dev \ libopenblas-dev \ libnuma-dev \ libpng-dev \ diff --git a/tools/singularity/ubuntu18.04_amd_rocm_cuda.def b/tools/singularity/ubuntu18.04_amd_rocm_cuda.def index 601969dc8bd601008c9a0c3f8434dd7e6068e071..3ef7813a20b6c5476a523d0cf8948648193a42e9 100644 --- a/tools/singularity/ubuntu18.04_amd_rocm_cuda.def +++ b/tools/singularity/ubuntu18.04_amd_rocm_cuda.def @@ -9,7 +9,7 @@ From: lammps/default/lammps_development:ubuntu18.04_amd_rocm export LIBRARY_PATH=/usr/local/cuda/lib64/stubs %post - + export DEBIAN_FRONTEND=noninteractive wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub diff --git a/tools/singularity/ubuntu18.04_gpu.def b/tools/singularity/ubuntu18.04_gpu.def new file mode 100644 index 0000000000000000000000000000000000000000..999b69522da4a3e70cb62947f1351dbe1fea241c --- /dev/null +++ b/tools/singularity/ubuntu18.04_gpu.def @@ -0,0 +1,94 @@ +BootStrap: docker +From: rocm/dev-ubuntu-18.04 + +%environment + export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 + export CUDADIR=/usr/local/cuda + export CUDA_PATH=/usr/local/cuda + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/nvidia/lib:/usr/local/nvidia/lib64 + export LIBRARY_PATH=/usr/local/cuda/lib64/stubs +%post + export DEBIAN_FRONTEND=noninteractive + apt-get update + apt-get upgrade --no-install-recommends -y + apt-get install --no-install-recommends -y software-properties-common + apt-get install --no-install-recommends -y \ + bc \ + build-essential \ + ccache \ + clang \ + cmake \ + cmake-curses-gui \ + curl \ + doxygen \ + enchant \ + g++ \ + gcc \ + gfortran \ + git \ + hdf5-tools \ + kmod \ + less \ + libblas-dev \ + libeigen3-dev \ + libenchant-dev \ + libfftw3-dev \ + libgsl-dev \ + libhdf5-serial-dev \ + libhwloc-dev \ + libjpeg-dev \ + liblapack-dev \ + libomp-dev \ + libopenblas-dev \ + libnuma-dev \ + libpng-dev \ + libproj-dev \ + libvtk6-dev \ + make \ + mpi-default-bin \ + mpi-default-dev \ + ninja-build \ + python-dev \ + python-pip \ + python-pygments \ + python-virtualenv \ + python3-dev \ + python3-pip \ + python3-pkg-resources \ + python3-setuptools \ + python3-virtualenv \ + rocm-libs \ + rsync \ + ssh \ + vim-nox \ + virtualenv \ + voro++-dev \ + wget \ + xxd + wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin + mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub + add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" + apt-get update + apt-get install --no-install-recommends -y \ + cuda \ + cuda-compiler-10-2 \ + + export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 + git clone -b master-rocm-3.3 https://github.com/ROCmSoftwarePlatform/hipCUB.git + mkdir hipCUB/build + cd hipCUB/build + CXX=hcc cmake -D BUILD_TEST=off .. + make -j4 + make package + make install + + echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf + echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf + +%environment + LC_ALL=C + export LC_ALL + +%labels + Author rbberger diff --git a/tools/singularity/ubuntu18.04_intel_opencl.def b/tools/singularity/ubuntu18.04_intel_opencl.def index 389c75699c3d06f42aa34001428b119c542d4ec0..7f24fb0782255a2653c4c49178c33e2a3ea04bc0 100644 --- a/tools/singularity/ubuntu18.04_intel_opencl.def +++ b/tools/singularity/ubuntu18.04_intel_opencl.def @@ -22,15 +22,19 @@ From: ubuntu:18.04 gfortran \ git \ hdf5-tools \ + less \ libblas-dev \ libeigen3-dev \ libenchant-dev \ libfftw3-dev \ libgsl-dev \ libhdf5-serial-dev \ + libhwloc-dev \ libjpeg-dev \ liblapack-dev \ + libomp-dev \ libopenblas-dev \ + libnuma-dev \ libpng-dev \ libproj-dev \ libvtk6-dev \ diff --git a/tools/singularity/ubuntu18.04_nvidia.def b/tools/singularity/ubuntu18.04_nvidia.def index 9392821d7ededcd46e5bd59f499ccd86a018a815..6c24fb6d9cb5f58358f60285c523edabba38521a 100644 --- a/tools/singularity/ubuntu18.04_nvidia.def +++ b/tools/singularity/ubuntu18.04_nvidia.def @@ -22,15 +22,19 @@ From: nvidia/cuda:10.2-devel-ubuntu18.04 gfortran \ git \ hdf5-tools \ + less \ libblas-dev \ libeigen3-dev \ libenchant-dev \ libfftw3-dev \ libgsl-dev \ libhdf5-serial-dev \ + libhwloc-dev \ libjpeg-dev \ liblapack-dev \ + libomp-dev \ libopenblas-dev \ + libnuma-dev \ libpng-dev \ libproj-dev \ libvtk6-dev \ diff --git a/tools/singularity/ubuntu20.04.def b/tools/singularity/ubuntu20.04.def index 4ebc88447da7592f5697c56f47d80d6260c7ae08..028f5a09c778734aff5e4199ff65a4000358ccb9 100644 --- a/tools/singularity/ubuntu20.04.def +++ b/tools/singularity/ubuntu20.04.def @@ -20,15 +20,19 @@ From: ubuntu:20.04 gfortran \ git \ hdf5-tools \ + less \ libblas-dev \ libeigen3-dev \ libenchant-dev \ libfftw3-dev \ libgsl-dev \ libhdf5-serial-dev \ + libhwloc-dev \ libjpeg-dev \ liblapack-dev \ + libomp-dev \ libopenblas-dev \ + libnuma-dev \ libpng-dev \ libproj-dev \ libvtk6-dev \ @@ -45,7 +49,6 @@ From: ubuntu:20.04 ssh \ texlive \ texlive-latex-recommended \ - texlive-latex-extra \ texlive-pictures \ texlive-publishers \ texlive-science \